/*
 * Greenflame — WooCommerce & site skin
 * Loads on top of any theme. Uses the same tokens as the Elementor kit.
 */

:root {
  --gf-green:  #022B1F;
  --gf-cream:  #F3EFE7;
  --gf-sage:   #7B8D83;
  --gf-olive:  #7B8357;
  --gf-ember:  #D96C2C;
  --gf-ember-d:#C25A1E;
  --gf-ink:    #101913;
  --gf-line:   rgba(123,141,131,.28);
  --gf-radius: 6px;
  --gf-shadow: 0 1px 2px rgba(2,43,31,.04), 0 8px 24px rgba(2,43,31,.06);
  --gf-shadow-h: 0 4px 12px rgba(2,43,31,.08), 0 18px 44px rgba(2,43,31,.12);
  --gf-sans:   'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --gf-head:   'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* ------------------------------------------------------------ typography */

.woocommerce, .woocommerce-page { font-family: var(--gf-sans); color: var(--gf-ink); }
.woocommerce h1, .woocommerce h2, .woocommerce h3,
.woocommerce-page h1, .woocommerce-page h2, .woocommerce-page h3 {
  font-family: var(--gf-head); color: var(--gf-green); font-weight: 700; letter-spacing: -.4px;
}

/* --------------------------------------------------------- product grid */

.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid;
  gap: 26px;
  margin: 0 0 40px;
  padding: 0;
  list-style: none;
}
.woocommerce ul.products.columns-2 { grid-template-columns: repeat(2, 1fr); }
.woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, 1fr); }
.woocommerce ul.products.columns-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1024px) { .woocommerce ul.products[class*="columns-"] { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .woocommerce ul.products[class*="columns-"] { grid-template-columns: 1fr; gap: 20px; } }

.woocommerce ul.products li.product {
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
  clear: none !important;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--gf-line);
  border-radius: var(--gf-radius);
  overflow: hidden;
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.woocommerce ul.products li.product:hover {
  transform: translateY(-4px);
  box-shadow: var(--gf-shadow-h);
  border-color: rgba(2,43,31,.16);
}

/* Card image */
.woocommerce ul.products li.product a img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  margin: 0;
  display: block;
  background: var(--gf-cream);
  transition: transform .5s cubic-bezier(.2,.7,.3,1);
}
.woocommerce ul.products li.product:hover a img { transform: scale(1.045); }
.woocommerce ul.products li.product > a:first-of-type { display: block; overflow: hidden; }

/* Card body */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--gf-head);
  font-size: 17px !important;
  font-weight: 600;
  line-height: 1.35;
  color: var(--gf-green);
  padding: 20px 20px 0;
  margin: 0;
}
.woocommerce ul.products li.product .price {
  display: block;
  padding: 8px 20px 0;
  margin: 0;
  font-family: var(--gf-head);
  font-size: 20px;
  font-weight: 700;
  color: var(--gf-green);
}
.woocommerce ul.products li.product .price del {
  opacity: .45; font-size: 15px; font-weight: 500; margin-right: 7px;
}
.woocommerce ul.products li.product .price ins {
  text-decoration: none; color: var(--gf-ember);
}
.woocommerce ul.products li.product .star-rating { margin: 10px 20px 0; font-size: 13px; color: var(--gf-ember); }

/* Push the button to the bottom so cards align */
.woocommerce ul.products li.product .button {
  margin: auto 20px 20px !important;
  align-self: stretch;
  text-align: center;
}

/* Sale flash */
.woocommerce span.onsale {
  position: absolute;
  top: 14px; left: 14px; right: auto;
  min-height: 0; min-width: 0; line-height: 1;
  padding: 8px 13px;
  margin: 0;
  border-radius: 3px;
  background: var(--gf-ember);
  color: #fff;
  font-family: var(--gf-sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
}
.woocommerce ul.products li.product { position: relative; }

/* ----------------------------------------------------------- buttons */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt {
  font-family: var(--gf-sans);
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  line-height: 1.2;
  padding: 14px 24px;
  border: 0;
  border-radius: 4px;
  background: var(--gf-green);
  color: var(--gf-cream);
  transition: background .22s ease, color .22s ease, transform .22s ease;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
  background: var(--gf-ember);
  color: #fff;
  transform: translateY(-1px);
}
.woocommerce button.button.alt.single_add_to_cart_button,
.woocommerce .checkout-button.button.alt {
  background: var(--gf-ember);
  color: #fff;
  padding: 17px 34px;
  font-size: 14px;
}
.woocommerce button.button.alt.single_add_to_cart_button:hover,
.woocommerce .checkout-button.button.alt:hover { background: var(--gf-ember-d); }
.woocommerce a.added_to_cart {
  display: block; padding: 0 20px 18px; margin-top: -8px;
  font-size: 12px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 1px; color: var(--gf-ember);
}

/* -------------------------------------------------------- single product */

.woocommerce div.product .product_title {
  font-family: var(--gf-head);
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 700;
  color: var(--gf-green);
  line-height: 1.12;
  letter-spacing: -.8px;
  margin-bottom: 14px;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-family: var(--gf-head);
  font-size: 30px;
  font-weight: 700;
  color: var(--gf-green);
  margin-bottom: 22px;
}
.woocommerce div.product p.price ins { text-decoration: none; color: var(--gf-ember); }
.woocommerce div.product p.price del { opacity: .45; font-size: 20px; font-weight: 500; }

.woocommerce div.product .woocommerce-product-details__short-description {
  font-size: 17px; line-height: 1.75; color: rgba(16,25,19,.78); margin-bottom: 26px;
}
.woocommerce div.product div.images img { border-radius: var(--gf-radius); }
.woocommerce div.product div.images .flex-control-thumbs li img { border-radius: 4px; }

.woocommerce div.product form.cart { margin-bottom: 30px; }
.woocommerce div.product form.cart div.quantity { margin-right: 12px; }
.woocommerce .quantity .qty {
  height: 52px; width: 82px; padding: 0 10px;
  border: 1px solid var(--gf-line); border-radius: 4px;
  font-family: var(--gf-sans); font-size: 16px; font-weight: 600; color: var(--gf-green);
  background: #fff;
}

/* Tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 26px; border-bottom: 1px solid var(--gf-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: transparent; border: 0; border-radius: 0; margin: 0 26px 0 0; padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-family: var(--gf-sans); font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 1.2px;
  color: rgba(16,25,19,.5); padding: 14px 0; display: block;
  border-bottom: 2px solid transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
  color: var(--gf-green); border-bottom-color: var(--gf-ember);
}
.woocommerce div.product .woocommerce-tabs .panel { font-size: 16px; line-height: 1.8; color: rgba(16,25,19,.78); }
.woocommerce div.product .woocommerce-tabs .panel h2 { font-size: 22px; margin-bottom: 14px; }

.woocommerce table.shop_attributes th { font-family: var(--gf-sans); font-weight: 700; color: var(--gf-green); font-size: 14px; }
.woocommerce table.shop_attributes td { font-style: normal; color: rgba(16,25,19,.75); }

/* Related / upsells */
.woocommerce .related > h2, .woocommerce .upsells > h2, .woocommerce .cross-sells > h2 {
  font-size: 28px; margin-bottom: 26px;
}

/* ------------------------------------------------------ cart & checkout */

.woocommerce table.shop_table {
  border: 1px solid var(--gf-line); border-radius: var(--gf-radius); border-collapse: separate;
}
.woocommerce table.shop_table th {
  font-family: var(--gf-sans); font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 1.2px; color: var(--gf-green);
  padding: 16px 14px;
}
.woocommerce table.shop_table td { padding: 18px 14px; border-top: 1px solid var(--gf-line); }
.woocommerce-cart table.cart img { width: 74px; border-radius: 4px; }
.woocommerce-cart .cart-collaterals .cart_totals > h2,
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout .woocommerce-billing-fields > h3 { font-size: 22px; margin-bottom: 16px; }

.woocommerce form .form-row label {
  font-family: var(--gf-sans); font-size: 13px; font-weight: 600; color: var(--gf-green); margin-bottom: 6px;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single {
  font-family: var(--gf-sans); font-size: 15px;
  padding: 13px 14px; height: auto;
  border: 1px solid var(--gf-line); border-radius: 4px; background: #fff; color: var(--gf-ink);
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
  outline: none; border-color: var(--gf-olive); box-shadow: 0 0 0 3px rgba(123,131,87,.14);
}

/* Notices */
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error {
  border-top: 0; border-left: 3px solid var(--gf-olive);
  background: var(--gf-cream); color: var(--gf-green);
  font-family: var(--gf-sans); font-size: 15px;
  border-radius: 4px; padding: 16px 18px 16px 20px;
}
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before { color: var(--gf-olive); top: 17px; left: 20px; }
.woocommerce .woocommerce-error { border-left-color: #B3261E; background: #FDF2F1; color: #7A1D17; }
.woocommerce .woocommerce-error::before { color: #B3261E; }

/* Pagination */
.woocommerce nav.woocommerce-pagination ul { border: 0; gap: 6px; display: flex; justify-content: center; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  font-family: var(--gf-sans); font-size: 14px; font-weight: 600;
  min-width: 42px; line-height: 42px; padding: 0 10px;
  border: 1px solid var(--gf-line); border-radius: 4px; color: var(--gf-green);
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
  background: var(--gf-green); border-color: var(--gf-green); color: var(--gf-cream);
}

/* Result count / ordering */
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering select {
  font-family: var(--gf-sans); font-size: 14px; color: rgba(16,25,19,.6);
}

/* Breadcrumb */
.woocommerce .woocommerce-breadcrumb {
  font-family: var(--gf-sans); font-size: 13px; color: rgba(16,25,19,.5); margin-bottom: 24px;
}
.woocommerce .woocommerce-breadcrumb a { color: var(--gf-olive); }

/* ------------------------------------------------------- misc / helpers */

/* Grid used by the [products] shortcode blocks inside Elementor pages */
.gf-products ul.products { margin-bottom: 0 !important; }

/* Elementor sticky header polish */
#gf-header.elementor-sticky--effects {
  box-shadow: 0 2px 18px rgba(2,43,31,.1);
  backdrop-filter: saturate(1.2);
}

/* Side cart (Elementor Pro) */
.elementor-menu-cart__main { font-family: var(--gf-sans); }
.elementor-menu-cart__toggle .elementor-button { background: transparent !important; }

/* Skip-link friendly focus states */
.woocommerce a:focus-visible, .woocommerce button:focus-visible {
  outline: 2px solid var(--gf-ember); outline-offset: 2px;
}

@media (max-width: 600px) {
  .woocommerce div.product .product_title { font-size: 27px; }
  .woocommerce div.product p.price { font-size: 25px; }
}
