/* ==========================================================================
   רבנו ספרים — WooCommerce skin (baseline; refined in Epic C)
   ========================================================================== */

.woo-wrap { padding-block: var(--sp-6); }
.woocommerce-products-header__title, .woo-main h1 { font-size: var(--fs-2xl); margin-bottom: var(--sp-2); }
.term-description, .woocommerce-products-header .term-description { color: var(--ink-2); max-width: 72ch; margin-bottom: var(--sp-5); }

.woocommerce-result-count { color: var(--ink-3); font-size: var(--fs-sm); }
.woocommerce-ordering select { border: 1px solid var(--line-2); border-radius: var(--r-md); padding: .5rem .8rem; background: #fff; }

/* product grid */
ul.products {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: var(--sp-5); margin: var(--sp-5) 0 0; padding: 0; list-style: none;
}
ul.products::before, ul.products::after { display: none !important; }
ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; text-align: start; }

/* category head + intro + facet + body + faq */
.cat-head { margin-bottom: var(--sp-4); }
.cat-head .page-title { font-size: var(--fs-2xl); margin-bottom: var(--sp-3); }
.cat-intro { max-width: 74ch; color: var(--ink-2); }
.cat-intro p + p { margin-top: var(--sp-3); }

.cat-facet { margin: var(--sp-4) 0 var(--sp-2); }
.cat-facet ul { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.cat-facet a { display: inline-flex; align-items: center; gap: var(--sp-2); padding: .45rem .9rem; border: 1px solid var(--line-2); border-radius: var(--r-pill); background: #fff; color: var(--brand-800); font-size: var(--fs-sm); font-weight: 600; }
.cat-facet a:hover { background: var(--brand-50); border-color: var(--brand-200); text-decoration: none; }
.cat-facet .chip-count { color: var(--ink-3); font-size: var(--fs-xs); font-weight: 400; }

.cat-body { max-width: 76ch; margin-top: var(--sp-7); }
.cat-body h2 { font-size: var(--fs-xl); margin-top: var(--sp-6); }
.cat-body h3 { font-size: var(--fs-lg); margin-top: var(--sp-5); }

.faq-section { max-width: 76ch; margin-top: var(--sp-7); }
.faq-section__title { font-size: var(--fs-xl); margin-bottom: var(--sp-4); padding-bottom: var(--sp-2); border-bottom: 2px solid var(--gold-500); display: inline-block; }
.faq-list { display: grid; gap: var(--sp-3); }
.faq-item { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
.faq-q { cursor: pointer; list-style: none; padding: var(--sp-4); font-family: var(--font-head); font-weight: 700; color: var(--brand-900); display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); }
.faq-q::-webkit-details-marker { display: none; }
.faq-q::after { content: '+'; font-size: 1.4em; color: var(--gold-700); line-height: 1; transition: transform .18s; }
.faq-item[open] .faq-q::after { content: '−'; }
.faq-a { padding: 0 var(--sp-4) var(--sp-4); color: var(--ink-2); }

/* archive header + toolbar */
.woo-archive-head { margin-bottom: var(--sp-4); }
.woo-toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); flex-wrap: wrap; margin-bottom: var(--sp-2); }
.woo-toolbar::after { content: none; }

/* ---- product card (custom content-product.php) ---- */
li.product.rabenu-card { position: relative; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; transition: box-shadow .15s, transform .15s; display: flex; flex-direction: column; }
li.product.rabenu-card:hover { box-shadow: var(--shadow-3); transform: translateY(-2px); }
.rabenu-card__link { display: block; padding: var(--sp-3) var(--sp-3) 0; color: inherit; }
.rabenu-card__link:hover { text-decoration: none; }
.rabenu-card__media { position: relative; }
.rabenu-card__media img { aspect-ratio: 3 / 4; object-fit: contain; width: 100%; background: var(--surface-2); border-radius: var(--r-md); }
.rabenu-card__title { font-family: var(--font-head); font-size: var(--fs-sm); font-weight: 700; color: var(--brand-900); line-height: var(--lh-snug); margin-top: var(--sp-3); min-height: 2.7em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rabenu-card__foot { margin-top: auto; padding: var(--sp-3); display: grid; gap: var(--sp-2); }
.rabenu-card__price { color: var(--gold-800); font-weight: 700; font-size: var(--fs-md); }
.rabenu-card__price del { color: var(--ink-3); font-weight: 400; font-size: var(--fs-sm); margin-inline-end: .4em; }
.rabenu-card__price ins { text-decoration: none; }
.rabenu-card__stock.low { color: var(--sale); font-size: var(--fs-xs); font-weight: 600; }
li.product .onsale { position: absolute; inset-block-start: var(--sp-2); inset-inline-end: var(--sp-2); background: var(--sale); color: #fff; font-size: var(--fs-xs); font-weight: 700; padding: .2rem .6rem; border-radius: var(--r-pill); min-height: auto; margin: 0; line-height: 1.5; z-index: 2; }
.oos-badge { position: absolute; inset-block-start: var(--sp-2); inset-inline-start: var(--sp-2); background: var(--ink-2); color: #fff; font-size: var(--fs-xs); font-weight: 700; padding: .2rem .6rem; border-radius: var(--r-pill); z-index: 2; }
li.product .button, li.product .added_to_cart { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .6rem 1rem; border-radius: var(--r-md); background: var(--brand-700); color: #fff; font-family: var(--font-head); font-weight: 700; font-size: var(--fs-sm); margin: 0; }
li.product .button:hover { background: var(--brand-800); }
li.product .added_to_cart { background: transparent; color: var(--brand-700); border: 1.5px solid var(--brand-700); }
li.product .button.loading { opacity: .7; }
/* fallback for any non-custom loop markup */
li.product a.woocommerce-LoopProduct-link { display: block; color: inherit; }
li.product .woocommerce-loop-product__title { font-family: var(--font-head); font-size: var(--fs-sm); font-weight: 700; color: var(--brand-900); padding: 0 var(--sp-3); }

/* pagination */
.woocommerce-pagination ul { display: flex; gap: var(--sp-2); justify-content: center; margin-top: var(--sp-6); border: 0; }
.woocommerce-pagination a, .woocommerce-pagination span { display: grid; place-items: center; min-width: 42px; min-height: 42px; border: 1px solid var(--line-2); border-radius: var(--r-md); background: #fff; }
.woocommerce-pagination .current { background: var(--brand-700); color: #fff; border-color: var(--brand-700); }

/* single product */
.single-product div.product { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--sp-7); align-items: start; }
/* neutralise WooCommerce's default 48% float layout so items fill the grid cells */
.single-product div.product > .woocommerce-product-gallery,
.single-product div.product > .summary { width: 100% !important; float: none !important; margin: 0 !important; }
.single-product .woocommerce-product-gallery { position: sticky; top: calc(var(--header-h) + 12px); }
.single-product .woocommerce-product-gallery__image img { border-radius: var(--r-lg); background: var(--surface-2); }
.single-product .flex-control-thumbs { display: flex; gap: var(--sp-2); margin-top: var(--sp-3); padding: 0; }
.single-product .flex-control-thumbs li { width: 72px; }
.single-product .flex-control-thumbs img { border-radius: var(--r-md); border: 1px solid var(--line); opacity: .7; }
.single-product .flex-control-thumbs img.flex-active, .single-product .flex-control-thumbs img:hover { opacity: 1; border-color: var(--brand-500); }

.single-product .product_title { font-size: var(--fs-2xl); margin-bottom: var(--sp-3); }
.single-product .summary .price { color: var(--gold-800); font-size: var(--fs-xl); font-weight: 800; margin-bottom: var(--sp-4); }
.single-product .summary .price del { color: var(--ink-3); font-weight: 400; font-size: var(--fs-md); }
.single-product .summary .price ins { text-decoration: none; }
.single-product .woocommerce-product-details__short-description { color: var(--ink-2); line-height: var(--lh-base); margin-bottom: var(--sp-4); }
.single-product .woocommerce-product-details__short-description ul { list-style: disc; padding-inline-start: 1.3em; }

.single-product form.cart { display: flex; align-items: stretch; gap: var(--sp-3); flex-wrap: wrap; margin-bottom: var(--sp-4); }
.single-product .quantity input.qty { width: 72px; height: 52px; text-align: center; border: 1px solid var(--line-2); border-radius: var(--r-md); font-weight: 700; }
.single-product .single_add_to_cart_button { background: var(--gold-500) !important; color: #1a1200 !important; min-height: 52px; padding-inline: var(--sp-6); font-size: var(--fs-base); border-radius: var(--r-md); flex: 1; min-width: 200px; }
.single-product .single_add_to_cart_button:hover { background: var(--gold-600) !important; }
.single-product table.variations { margin-bottom: var(--sp-4); }
.single-product table.variations td, .single-product table.variations th { padding: var(--sp-2) 0; }
.single-product .variations select { width: 100%; min-height: 48px; border: 1px solid var(--line-2); border-radius: var(--r-md); padding: 0 var(--sp-3); background: #fff; }

.single-product .product_meta { border-top: 1px solid var(--line); padding-top: var(--sp-4); margin-top: var(--sp-4); color: var(--ink-3); font-size: var(--fs-sm); }
.single-product .product_meta > span { display: block; margin-bottom: var(--sp-1); }
.single-product .product_meta a { color: var(--brand-700); }

.single-product .woocommerce-tabs { grid-column: 1 / -1; margin-top: var(--sp-7); }
.single-product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: var(--sp-2); border-bottom: 2px solid var(--line); padding: 0; margin-bottom: var(--sp-5); }
.single-product .woocommerce-tabs ul.tabs::before, .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 { background: none; border: 0; margin: 0; padding: 0; }
.single-product .woocommerce-tabs ul.tabs li a { display: inline-block; padding: var(--sp-2) var(--sp-4); color: var(--ink-2); font-family: var(--font-head); font-weight: 700; border-bottom: 3px solid transparent; margin-bottom: -2px; }
.single-product .woocommerce-tabs ul.tabs li.active a { color: var(--brand-900); border-bottom-color: var(--gold-500); }
.single-product .woocommerce-Tabs-panel { max-width: 76ch; }
.single-product .woocommerce-Tabs-panel h2 { font-size: var(--fs-lg); }
.single-product .related.products { grid-column: 1 / -1; margin-top: var(--sp-8); }
.single-product .related.products > h2 { font-size: var(--fs-xl); margin-bottom: var(--sp-4); padding-bottom: var(--sp-2); border-bottom: 2px solid var(--gold-500); display: inline-block; }

/* buttons global */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button { background: var(--brand-700); color: #fff; border-radius: var(--r-md); font-family: var(--font-head); font-weight: 700; }
.woocommerce a.button:hover, .woocommerce button.button:hover { background: var(--brand-800); }
.woocommerce .button.alt { background: var(--gold-500); color: #1a1200; }
.woocommerce .button.alt:hover { background: var(--gold-600); }

/* notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-radius: var(--r-md); border: 0; padding: var(--sp-3) var(--sp-4); }
.woocommerce-message { border-inline-start: 4px solid var(--success); background: #eef7ee; }
.woocommerce-info { border-inline-start: 4px solid var(--brand-600); background: var(--brand-50); }
.woocommerce-error { border-inline-start: 4px solid var(--sale); background: #fbeeed; }

/* ==========================================================================
   Cart / Checkout / My-Account  (classic shortcode pages, inside page.php)
   ========================================================================== */

/* shared form controls */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single {
  min-height: 48px; border: 1px solid var(--line-2); border-radius: var(--r-md);
  padding: .55rem .8rem; background: #fff; font-size: var(--fs-sm); width: 100%;
}
.woocommerce form .form-row textarea { min-height: 96px; }
.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 46px; padding: 0; }
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; }
.woocommerce form .form-row label { font-weight: 600; color: var(--brand-900); margin-bottom: .3rem; display: inline-block; }
.woocommerce .required { color: var(--sale); border: 0; }
.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(--brand-500); box-shadow: 0 0 0 3px var(--brand-100); }

/* ---- Cart ---- */
.woocommerce-cart-form table.shop_table {
  border: 1px solid var(--line); border-radius: var(--r-lg); border-collapse: separate;
  border-spacing: 0; overflow: hidden; width: 100%;
}
.woocommerce-cart-form table.shop_table thead th {
  background: var(--brand-900); color: #fff; font-family: var(--font-head);
  font-weight: 700; text-align: start; padding: var(--sp-3) var(--sp-4); font-size: var(--fs-sm);
}
.woocommerce-cart-form table.shop_table td { padding: var(--sp-4); border-top: 1px solid var(--line); vertical-align: middle; }
.woocommerce-cart-form .product-thumbnail img { width: 64px; height: auto; border-radius: var(--r-md); background: var(--surface-2); }
.woocommerce-cart-form .product-name a { color: var(--brand-900); font-weight: 700; }
.woocommerce-cart-form td.product-remove a.remove { color: var(--sale) !important; font-size: 1.4rem; width: 1.6em; height: 1.6em; line-height: 1.5em; border: 1px solid var(--line); border-radius: var(--r-pill); }
.woocommerce-cart-form td.product-remove a.remove:hover { background: var(--sale); color: #fff !important; }
.woocommerce .quantity input.qty { width: 76px; height: 48px; text-align: center; border: 1px solid var(--line-2); border-radius: var(--r-md); font-weight: 700; }
.woocommerce-cart-form .coupon { display: flex; gap: var(--sp-2); flex-wrap: wrap; }
.woocommerce-cart-form .coupon input#coupon_code { min-height: 48px; width: auto; min-width: 180px; border: 1px solid var(--line-2); border-radius: var(--r-md); padding: 0 .8rem; }
.woocommerce-cart-form .actions .button { min-height: 48px; }

.cart-collaterals { margin-top: var(--sp-6); }
.cart_totals h2 { font-size: var(--fs-xl); margin-bottom: var(--sp-4); padding-bottom: var(--sp-2); border-bottom: 2px solid var(--gold-500); display: inline-block; }
.cart_totals table.shop_table { border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; width: 100%; }
.cart_totals table.shop_table th { text-align: start; padding: var(--sp-3) var(--sp-4); font-family: var(--font-head); color: var(--brand-900); background: var(--surface-2); }
.cart_totals table.shop_table td { padding: var(--sp-3) var(--sp-4); text-align: end; }
.cart_totals .order-total .amount { color: var(--gold-800); font-size: var(--fs-lg); font-weight: 800; }
.wc-proceed-to-checkout { margin-top: var(--sp-4); }
.wc-proceed-to-checkout a.checkout-button { display: block; text-align: center; background: var(--gold-500) !important; color: #1a1200 !important; min-height: 56px; line-height: 56px; font-size: var(--fs-base); border-radius: var(--r-md); font-weight: 800; }
.wc-proceed-to-checkout a.checkout-button:hover { background: var(--gold-600) !important; }

/* ---- Checkout ---- */
.woocommerce-checkout .col2-set, .woocommerce-checkout #customer_details { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-6); }
.woocommerce-checkout #customer_details .col-1, .woocommerce-checkout #customer_details .col-2 { width: auto; float: none; }
.woocommerce-checkout h3 { font-size: var(--fs-lg); color: var(--brand-900); margin-bottom: var(--sp-4); padding-bottom: var(--sp-2); border-bottom: 1px solid var(--line); }
.woocommerce-checkout #order_review_heading { font-size: var(--fs-xl); margin-top: var(--sp-6); }
.woocommerce-checkout #order_review { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); padding: var(--sp-5); box-shadow: var(--shadow-1); }
.woocommerce-checkout #order_review table.shop_table th, .woocommerce-checkout #order_review table.shop_table td { padding: var(--sp-3) 0; text-align: start; }
.woocommerce-checkout #order_review .order-total .amount { color: var(--gold-800); font-size: var(--fs-lg); font-weight: 800; }
.woocommerce-checkout #payment { background: transparent; border-radius: var(--r-md); }
.woocommerce-checkout #payment ul.payment_methods { border: 1px solid var(--line); border-radius: var(--r-md); background: var(--paper); padding: var(--sp-4); }
.woocommerce-checkout #payment ul.payment_methods li { margin-bottom: var(--sp-2); }
.woocommerce-checkout #payment div.payment_box { background: #fff; border-radius: var(--r-md); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #fff; }
.woocommerce-checkout #place_order { width: 100%; background: var(--gold-500) !important; color: #1a1200 !important; min-height: 58px; font-size: var(--fs-md); border-radius: var(--r-md); font-weight: 800; margin-top: var(--sp-3); }
.woocommerce-checkout #place_order:hover { background: var(--gold-600) !important; }

/* ---- My Account ---- */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 240px 1fr; gap: var(--sp-6); align-items: start; }
.woocommerce-account .woocommerce-MyAccount-navigation { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--line); }
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: var(--sp-3) var(--sp-4); color: var(--brand-900); font-weight: 600; }
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--brand-50); text-decoration: none; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--brand-900); color: #fff; }
.woocommerce-account .woocommerce-MyAccount-content { min-width: 0; }
.woocommerce-account .woocommerce-MyAccount-content table.shop_table { border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; width: 100%; }
.woocommerce-account .woocommerce-MyAccount-content table.shop_table th { background: var(--surface-2); padding: var(--sp-3); text-align: start; }
.woocommerce-account .woocommerce-MyAccount-content table.shop_table td { padding: var(--sp-3); border-top: 1px solid var(--line); }

/* login / register (account + checkout-login) */
.woocommerce .col2-set.addresses .col-1, .woocommerce .col2-set.addresses .col-2 { width: auto; float: none; }
.woocommerce-account:not(.logged-in) .woocommerce > .u-columns, .woocommerce .customer-login-form,
.woocommerce-page form.login, .woocommerce-page form.register { max-width: 460px; margin-inline: auto; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); padding: var(--sp-6); box-shadow: var(--shadow-1); }
.woocommerce form.login .button, .woocommerce form.register .button { min-height: 50px; width: 100%; }

@media (max-width: 780px) {
  .single-product div.product { grid-template-columns: 1fr; gap: var(--sp-5); }
  .woocommerce-checkout .col2-set, .woocommerce-checkout #customer_details,
  .woocommerce-account .woocommerce { grid-template-columns: 1fr; gap: var(--sp-5); }
  .woocommerce-cart-form table.shop_table thead { display: none; }
}
