/* ====================================================================
   Rodeo Graphics — shop.css
   Styles every WooCommerce-rendered page (woocommerce.php): shop grid,
   single product, cart, checkout, my-account. Loaded instead of
   WooCommerce's bundled stylesheet (see woocommerce_enqueue_styles
   filter in functions.php) so there's no specificity fighting.
   ==================================================================== */

.shop-wrap { padding: 3rem 5% 5rem; }

/* ─── LIGHT BREADCRUMB BAR (product / cart / checkout / account) ─── */
.shop-breadcrumb-bar { background: var(--off-white); border-bottom: 1px solid var(--gray-100); padding: 1.1rem 5%; }
.shop-breadcrumb-bar .page-hero-breadcrumb { margin-bottom: 0; font-size: 0.8rem; color: var(--gray-500); }
.shop-breadcrumb-bar .page-hero-breadcrumb a { color: var(--gray-500); }
.shop-breadcrumb-bar .page-hero-breadcrumb a:hover { color: var(--red); }
.shop-breadcrumb-bar .page-hero-breadcrumb span { color: var(--gray-900); }
.shop-breadcrumb-bar .page-hero-breadcrumb .sep { color: var(--gray-200); }

/* ─── NOTICES ─── */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews {
  list-style: none; padding: 1rem 1.25rem; margin: 0 0 1.5rem; border-radius: var(--r-md);
  font-size: 0.9rem; background: var(--off-white); border: 1px solid var(--gray-100); color: var(--gray-800);
}
.woocommerce-message { border-color: var(--red-pale2); background: var(--red-pale); }
.woocommerce-error { border-color: var(--red-pale2); background: var(--red-pale); color: var(--red-dark); }
.woocommerce-message a.button, .woocommerce-error a.button { margin-left: 0.75rem; }

/* ─── GENERIC BUTTONS (cart/checkout/account share these everywhere) ─── */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit {
  background: var(--red); color: #fff; border: none; padding: 0.7rem 1.5rem;
  border-radius: var(--r-md); font-size: 0.9rem; font-weight: 700; font-family: 'Plus Jakarta Sans', 'Plus Jakarta Sans Fallback', sans-serif;
  cursor: pointer; text-decoration: none; display: inline-block; transition: background 0.15s, transform 0.1s;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover {
  background: var(--red-dark); color: #fff; transform: translateY(-1px);
}
.woocommerce a.button.disabled, .woocommerce button.button.disabled, .woocommerce button.button:disabled {
  background: var(--gray-200); color: var(--gray-500); cursor: not-allowed; transform: none;
}
.woocommerce a.added_to_cart { margin-left: 0.6rem; font-size: 0.85rem; font-weight: 700; color: var(--red); text-decoration: underline; }

/* ─── SHOP / CATEGORY GRID (also used for "Related products") ─── */
.woocommerce ul.products { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; list-style: none; margin: 0 0 2.5rem; }
.woocommerce ul.products li.product {
  background: var(--white); border: 1px solid var(--gray-100); border-radius: var(--r-lg);
  overflow: hidden; transition: box-shadow 0.2s, transform 0.2s; position: relative;
}
.woocommerce ul.products li.product:hover { box-shadow: 0 12px 32px rgba(0,0,0,0.08); transform: translateY(-2px); }
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display: block; text-decoration: none; color: inherit; }
.woocommerce ul.products li.product img {
  width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; height: auto;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: 'Sora', 'Sora Fallback', sans-serif; font-size: 0.98rem; font-weight: 700; color: var(--gray-900);
  margin: 1rem 1.1rem 0.3rem; line-height: 1.3;
}
.woocommerce ul.products li.product .price {
  display: block; margin: 0 1.1rem 1.1rem; font-size: 0.95rem; font-weight: 700; color: var(--red);
}
.woocommerce ul.products li.product .price del { color: var(--gray-400); font-weight: 500; margin-right: 0.4rem; }
.woocommerce ul.products li.product .button {
  margin: 0 1.1rem 1.25rem; width: calc(100% - 2.2rem); text-align: center;
  background: var(--white); color: var(--red); border: 1.5px solid var(--red-pale2);
}
.woocommerce ul.products li.product .button:hover { background: var(--red); color: #fff; }
.woocommerce ul.products li.product .button.add_to_cart_button { width: calc(100% - 2.2rem); }
.woocommerce span.onsale {
  position: absolute; top: 0.9rem; left: 0.9rem; background: var(--red); color: #fff;
  font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em;
  padding: 0.25rem 0.65rem; border-radius: var(--r-pill); z-index: 1;
}
.woocommerce .star-rating { color: var(--yellow); font-size: 0.85rem; margin: 0 1.1rem 0.3rem; }

/* Result count / ordering bar above the grid */
.woocommerce .woocommerce-result-count { color: var(--gray-500); font-size: 0.85rem; margin-bottom: 1.25rem; }
.woocommerce .woocommerce-ordering select {
  border: 1.5px solid var(--gray-200); border-radius: var(--r-md); padding: 0.5rem 0.75rem;
  font-size: 0.85rem; font-family: inherit; margin-bottom: 1.25rem;
}
.woocommerce .woocommerce-ordering, .woocommerce .woocommerce-result-count { display: inline-block; }

/* Pagination */
.woocommerce nav.woocommerce-pagination ul { display: flex; gap: 0.4rem; list-style: none; justify-content: center; border: none; }
.woocommerce nav.woocommerce-pagination ul li { border: none; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span {
  display: flex; align-items: center; justify-content: center; min-width: 38px; height: 38px;
  border-radius: var(--r-sm); border: 1.5px solid var(--gray-200); color: var(--gray-600);
  font-size: 0.85rem; font-weight: 600; text-decoration: none;
}
.woocommerce nav.woocommerce-pagination ul li a:hover, .woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--red); border-color: var(--red); color: #fff;
}

/* ─── SINGLE PRODUCT ─── */
.woocommerce div.product {
  display: grid; grid-template-columns: 1.05fr 1fr; gap: 3rem; align-items: start; margin-bottom: 3.5rem;
}
.woocommerce div.product div.images { position: relative; }
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { border-radius: var(--r-xl); overflow: hidden; background: var(--gray-50); }
.woocommerce div.product div.images img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.woocommerce div.product div.images .flex-control-thumbs {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 0.6rem; margin: 0.75rem 0 0; list-style: none;
}
.woocommerce div.product div.images .flex-control-thumbs li img {
  border-radius: var(--r-sm); aspect-ratio: 1/1; object-fit: cover; cursor: pointer;
  border: 1.5px solid transparent; opacity: 0.75; transition: opacity 0.15s, border-color 0.15s;
}
.woocommerce div.product div.images .flex-control-thumbs li img:hover,
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active { opacity: 1; border-color: var(--red); }
.woocommerce div.product .woocommerce-product-gallery__trigger {
  background: rgba(255,255,255,0.9); border-radius: 50%; width: 34px; height: 34px;
  display: flex; align-items: center; justify-content: center; top: 1rem; right: 1rem;
}

.woocommerce div.product div.summary { padding-top: 0.25rem; }
.woocommerce div.product .product_title {
  font-family: 'Sora', 'Sora Fallback', sans-serif; font-size: clamp(1.5rem, 2.6vw, 2.1rem); font-weight: 800;
  letter-spacing: -0.02em; line-height: 1.15; color: var(--gray-900); margin-bottom: 0.75rem;
}
.woocommerce div.product p.price, .woocommerce div.product span.price {
  font-family: 'Sora', 'Sora Fallback', sans-serif; font-size: 1.3rem; font-weight: 800; color: var(--red); margin-bottom: 1rem; display: block;
}
.woocommerce div.product p.price del, .woocommerce div.product span.price del { color: var(--gray-400); font-size: 1rem; font-weight: 500; margin-right: 0.5rem; }
.woocommerce div.product div.woocommerce-product-details__short-description {
  font-size: 0.975rem; color: var(--gray-600); line-height: 1.75; margin-bottom: 1.5rem;
}
.woocommerce div.product div.woocommerce-product-details__short-description p { margin-bottom: 0.9rem; }

/* Variations form */
.woocommerce div.product form.cart { margin-bottom: 1.5rem; }
.woocommerce div.product table.variations { width: 100%; margin-bottom: 1.25rem; }
.woocommerce div.product table.variations td { padding: 0.5rem 0; vertical-align: middle; }
.woocommerce div.product table.variations th { text-align: left; font-weight: 700; font-size: 0.9rem; color: var(--gray-900); padding-right: 1rem; width: 1%; white-space: nowrap; }
.woocommerce div.product table.variations select {
  width: 100%; border: 1.5px solid var(--gray-200); border-radius: var(--r-md);
  padding: 0.6rem 0.9rem; font-size: 0.9rem; font-family: inherit; background: var(--white);
}
.woocommerce div.product table.variations select:focus { outline: none; border-color: var(--red); }
.woocommerce div.product .reset_variations { font-size: 0.78rem; color: var(--gray-500); margin-left: 0.6rem; }
.woocommerce div.product .woocommerce-variation-price .price { font-size: 1.2rem; margin: 0.75rem 0; }
.woocommerce div.product .woocommerce-variation-description p { font-size: 0.9rem; color: var(--gray-600); }
.woocommerce div.product .woocommerce-variation-add-to-cart { display: flex; align-items: center; gap: 0.75rem; margin-top: 0.5rem; }

.woocommerce div.product .quantity { display: inline-block; margin-right: 0.75rem; flex-shrink: 0; }
.woocommerce div.product .quantity .qty {
  width: 70px; border: 1.5px solid var(--gray-200); border-radius: var(--r-md);
  padding: 0.65rem 0.75rem; font-size: 0.95rem; font-family: inherit; text-align: center;
}
.woocommerce div.product .quantity .qty:focus { outline: none; border-color: var(--red); }
.woocommerce div.product .single_add_to_cart_button {
  background: var(--red); color: #fff; border: none; padding: 0.9rem 2rem;
  border-radius: var(--r-md); font-size: 1.02rem; font-weight: 700; cursor: pointer;
  font-family: 'Plus Jakarta Sans', 'Plus Jakarta Sans Fallback', sans-serif; transition: background 0.15s, transform 0.1s;
}
.woocommerce div.product .single_add_to_cart_button:hover { background: var(--red-dark); transform: translateY(-1px); }
.woocommerce div.product .single_add_to_cart_button.disabled { background: var(--gray-200); color: var(--gray-500); }

.woocommerce div.product .product_meta { font-size: 0.82rem; color: var(--gray-500); border-top: 1px solid var(--gray-100); padding-top: 1rem; margin-top: 1.5rem; }
.woocommerce div.product .product_meta > span { display: block; margin-bottom: 0.3rem; }
.woocommerce div.product .product_meta a { color: var(--red); text-decoration: none; }
.woocommerce div.product .product_meta a:hover { text-decoration: underline; }

/* Tabs */
.woocommerce div.product .woocommerce-tabs { margin-top: 1rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; gap: 2rem; list-style: none; border-bottom: 1px solid var(--gray-100); margin-bottom: 2rem; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  display: inline-block; padding: 0.85rem 0; font-size: 0.9rem; font-weight: 700; color: var(--gray-500);
  text-decoration: none; border-bottom: 2px solid transparent; margin-bottom: -1px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--red); border-color: var(--red); }
.woocommerce div.product .woocommerce-tabs .panel { font-size: 0.975rem; color: var(--gray-600); line-height: 1.85; max-width: 760px; }
.woocommerce div.product .woocommerce-tabs .panel h2 { font-family: 'Sora', 'Sora Fallback', sans-serif; font-size: 1.35rem; font-weight: 800; color: var(--gray-900); margin-bottom: 1rem; }
.woocommerce div.product .woocommerce-tabs .panel p { margin-bottom: 1rem; }
.woocommerce div.product .woocommerce-tabs .panel table.shop_attributes { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.woocommerce div.product .woocommerce-tabs .panel table.shop_attributes th { text-align: left; width: 30%; padding: 0.6rem 0; color: var(--gray-900); font-weight: 700; border-bottom: 1px solid var(--gray-100); }
.woocommerce div.product .woocommerce-tabs .panel table.shop_attributes td { padding: 0.6rem 0; border-bottom: 1px solid var(--gray-100); }

/* Related / upsell products */
.woocommerce div.product .related.products, .woocommerce div.product .upsells.products {
  margin-top: 3.5rem; padding-top: 2.5rem; border-top: 1px solid var(--gray-100);
}
.woocommerce div.product .related.products > h2, .woocommerce div.product .upsells.products > h2 {
  font-family: 'Sora', 'Sora Fallback', sans-serif; font-size: 1.4rem; font-weight: 800; color: var(--gray-900);
  margin-bottom: 1.5rem; display: flex; align-items: center; gap: 0.75rem;
}
.woocommerce div.product .related.products > h2::after, .woocommerce div.product .upsells.products > h2::after {
  content: ''; flex: 1; height: 1px; background: var(--gray-100);
}

/* ─── CART ─── */
.woocommerce table.shop_table { width: 100%; border-collapse: collapse; margin-bottom: 2rem; }
.woocommerce table.shop_table th { text-align: left; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--gray-500); padding: 0.9rem 0.75rem; border-bottom: 1px solid var(--gray-100); }
.woocommerce table.shop_table td { padding: 1rem 0.75rem; border-bottom: 1px solid var(--gray-100); font-size: 0.92rem; vertical-align: middle; }
.woocommerce table.shop_table td.product-thumbnail img { width: 64px; border-radius: var(--r-sm); }
.woocommerce table.shop_table td.product-name a { color: var(--gray-900); font-weight: 600; text-decoration: none; }
.woocommerce table.shop_table td.product-price, .woocommerce table.shop_table td.product-subtotal { color: var(--gray-900); font-weight: 700; }
.woocommerce table.shop_table td.product-remove a { color: var(--gray-400); font-size: 1.1rem; text-decoration: none; }
.woocommerce table.shop_table td.product-remove a:hover { color: var(--red); }
.woocommerce table.shop_table td.actions .input-text, .woocommerce .quantity .qty { font-family: inherit; }
.woocommerce .coupon .input-text {
  border: 1.5px solid var(--gray-200); border-radius: var(--r-md); padding: 0.65rem 0.9rem;
  font-size: 0.9rem; font-family: inherit; margin-right: 0.5rem;
}
.woocommerce .cart-collaterals { display: flex; justify-content: flex-end; }
.woocommerce .cart-collaterals .cart_totals { width: 100%; max-width: 380px; background: var(--off-white); border: 1px solid var(--gray-100); border-radius: var(--r-lg); padding: 1.5rem 1.75rem; }
.woocommerce .cart-collaterals .cart_totals h2 { font-family: 'Sora', 'Sora Fallback', sans-serif; font-size: 1.15rem; font-weight: 800; margin-bottom: 1rem; }
.woocommerce .cart-collaterals .cart_totals table { background: transparent; }
.woocommerce .cart-collaterals .cart_totals table th, .woocommerce .cart-collaterals .cart_totals table td { border-bottom: 1px solid var(--gray-100); }
.woocommerce .cart-collaterals .cart_totals .order-total .woocommerce-Price-amount { color: var(--red); font-weight: 800; font-size: 1.1rem; }
.woocommerce .wc-proceed-to-checkout a.checkout-button { display: block; text-align: center; padding: 1rem; font-size: 1rem; }

/* ─── CHECKOUT ─── */
.woocommerce-checkout #customer_details, .woocommerce-checkout #order_review { margin-bottom: 2rem; }
.woocommerce-checkout h3 { font-family: 'Sora', 'Sora Fallback', sans-serif; font-size: 1.2rem; font-weight: 800; color: var(--gray-900); margin-bottom: 1.25rem; }
.woocommerce form .form-row label { font-size: 0.85rem; font-weight: 600; color: var(--gray-800); margin-bottom: 0.3rem; display: block; }
.woocommerce form .form-row .required { color: var(--red); text-decoration: none; }
.woocommerce form .input-text, .woocommerce form select, .woocommerce form textarea {
  width: 100%; border: 1.5px solid var(--gray-200); border-radius: var(--r-md);
  padding: 0.7rem 0.9rem; font-size: 0.92rem; font-family: inherit; background: var(--white);
}
.woocommerce form .input-text:focus, .woocommerce form select:focus, .woocommerce form textarea:focus { outline: none; border-color: var(--red); }
.woocommerce form .select2-container .select2-selection--single { height: 44px; border: 1.5px solid var(--gray-200); border-radius: var(--r-md); padding: 0.45rem 0.5rem; }
#order_review table.shop_table { background: var(--off-white); border-radius: var(--r-lg); padding: 0.5rem 1.25rem; }
.woocommerce-checkout #payment { background: var(--off-white); border-radius: var(--r-lg); padding: 1.5rem 1.75rem; margin-top: 1.5rem; }
.woocommerce-checkout #payment ul.payment_methods { list-style: none; border-bottom: 1px solid var(--gray-100); padding-bottom: 1rem; margin-bottom: 1rem; }
.woocommerce-checkout #payment .payment_box { background: var(--white); border-radius: var(--r-md); padding: 1rem; margin-top: 0.75rem; font-size: 0.88rem; color: var(--gray-600); }
.woocommerce-checkout #place_order { width: 100%; padding: 1rem; font-size: 1.02rem; }

/* ─── MY ACCOUNT ─── */
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; border: 1px solid var(--gray-100); border-radius: var(--r-lg); overflow: hidden; }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--gray-100); }
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: none; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 0.85rem 1.1rem; font-size: 0.9rem; font-weight: 600; color: var(--gray-600); text-decoration: none; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { color: var(--red); background: var(--red-pale); }
.woocommerce-account .woocommerce-MyAccount-content { font-size: 0.95rem; color: var(--gray-600); }
.woocommerce-account .woocommerce-MyAccount-content table.shop_table th,
.woocommerce-account .woocommerce-MyAccount-content table.shop_table td { font-size: 0.85rem; }
.woocommerce-account fieldset { border: 1px solid var(--gray-100); border-radius: var(--r-lg); padding: 1.25rem 1.5rem; margin-top: 1.5rem; }
.woocommerce-account fieldset legend { font-weight: 700; font-size: 0.95rem; padding: 0 0.4rem; }

/* ─── RESPONSIVE ─── */
@media (max-width: 960px) {
  .woocommerce div.product { grid-template-columns: 1fr; gap: 1.75rem; }
  .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); }
  .woocommerce .cart-collaterals { justify-content: stretch; }
  .woocommerce .cart-collaterals .cart_totals { max-width: 100%; }
}
@media (max-width: 600px) {
  .woocommerce ul.products { grid-template-columns: 1fr; }
  .woocommerce div.product div.images .flex-control-thumbs { grid-template-columns: repeat(4, 1fr); }
  .woocommerce div.product .woocommerce-tabs ul.tabs { gap: 1.25rem; overflow-x: auto; }
  table.shop_table { display: block; overflow-x: auto; }
}
