/* ============================================================
   KS GLOBAL — WooCommerce layer
   Maps WooCommerce markup (cart, checkout, account, notices,
   tabs, reviews, prices) onto the theme's design system.
   ============================================================ */

/* ---------- prices (Woo outputs its own spans) ---------- */
.price .woocommerce-Price-amount{font-family:var(--serif);font-weight:700}
.price .woocommerce-Price-currencySymbol{font-size:.72em;color:var(--muted);font-weight:500;
  font-family:var(--body);margin-inline-start:4px}
.price ins{text-decoration:none;background:none}
.price del{opacity:1}
.price del .woocommerce-Price-amount{font-family:var(--body);font-size:.82rem;color:var(--muted);font-weight:400}
.price .from{font-size:.72rem;color:var(--muted);font-family:var(--body);font-weight:500;margin-inline-end:5px}
.detail-price .price{font-size:2.2rem;line-height:1.2}
.detail-price .price del{display:inline-block;margin-inline-start:10px}

/* ---------- notices ---------- */
.woocommerce-notices-wrapper:empty{display:none}
.woocommerce-message,.woocommerce-info,.woocommerce-error,.woocommerce-noreviews,p.no-comments{
  list-style:none;margin:0 0 24px;padding:16px 20px;border-radius:3px;background:var(--cream);
  border:1px solid var(--line);border-inline-start:2px solid var(--ink);font-size:.94rem;color:var(--ink);
  display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.woocommerce-error{border-inline-start-color:#a3342b;color:#7d2820}
.woocommerce-error li{list-style:none}
.woocommerce-message .button,.woocommerce-info .button,.woocommerce-error .button{margin-inline-start:auto}

/* ---------- buttons ---------- */
.woocommerce .button,.woocommerce button.button,.woocommerce input.button,.woocommerce a.button,
.woocommerce #respond input#submit,.wc-block-components-button{
  display:inline-flex;align-items:center;gap:10px;padding:14px 28px;border-radius:2px;background:var(--ink);
  color:var(--cream);font-family:var(--body);font-weight:600;font-size:.92rem;border:1px solid var(--ink);
  cursor:pointer;transition:transform .35s var(--ease),background .3s,color .3s,box-shadow .3s;line-height:1.2}
.woocommerce .button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,
.woocommerce a.button:hover,.woocommerce #respond input#submit:hover{background:var(--ink);color:var(--cream);
  transform:translateY(-3px);box-shadow:var(--shadow-md)}
.woocommerce .button.alt,.woocommerce button.button.alt{background:var(--ink);color:var(--cream)}
.woocommerce a.button.wc-forward,.woocommerce .cart .button[name="update_cart"]{background:transparent;
  color:var(--ink);border-color:var(--ink)}
.woocommerce a.button.wc-forward:hover,.woocommerce .cart .button[name="update_cart"]:hover{
  background:var(--ink);color:var(--cream)}
.woocommerce .button:disabled,.woocommerce .button.disabled{opacity:.45;cursor:not-allowed;transform:none}
.single_add_to_cart_button{flex:1;justify-content:center;min-width:170px}

/* single product add-to-cart form laid out like the design CTA row */
.detail-info form.cart{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:8px}
.detail-info form.cart.variations_form{display:block}
.detail-info form.cart .button{flex:1;justify-content:center;min-width:170px}
.detail-info .stock{font-size:.86rem;color:var(--muted);width:100%;margin:0}
.detail-info .stock.out-of-stock{color:#a3342b}
.detail-info .product_meta{margin-top:22px;padding-top:20px;border-top:1px solid var(--line);
  font-size:.86rem;color:var(--muted);display:flex;flex-direction:column;gap:8px}
.detail-info .product_meta>span{display:block}
.detail-info .product_meta a{color:var(--ink)}
.detail-info .product_meta a:hover{color:var(--stone)}
.woocommerce-variation-price .price{font-size:1.5rem;margin-bottom:14px}

/* variations table */
.variations{width:100%;border-collapse:collapse;margin-bottom:18px}
.variations th,.variations td{padding:10px 0;text-align:start;vertical-align:middle}
.variations th{width:130px;font-weight:600;font-size:.92rem}
.variations select,.woocommerce-ordering select,.ks-field select,select.ks-select{
  font-family:var(--body);padding:11px 16px;border-radius:2px;border:1px solid var(--line);
  background:var(--white);font-size:.9rem;color:var(--ink);cursor:pointer;min-width:180px}
.reset_variations{font-size:.84rem;color:var(--stone)}

/* ---------- quantity ---------- */
.qty-wrap{display:flex;align-items:center;border:1px solid var(--line);border-radius:2px;overflow:hidden;
  background:var(--white)}
.qty-wrap button{width:44px;height:48px;border:none;background:var(--white);font-size:1.2rem;cursor:pointer;
  color:var(--ink);transition:.2s;line-height:1;font-family:var(--body)}
.qty-wrap button:hover{background:var(--cream)}
.qty-wrap input.qty{width:56px;height:48px;border:none;text-align:center;font-family:var(--body);font-weight:600;
  font-size:1rem;color:var(--ink);background:transparent;-moz-appearance:textfield}
.qty-wrap input.qty::-webkit-outer-spin-button,.qty-wrap input.qty::-webkit-inner-spin-button{
  -webkit-appearance:none;margin:0}
.qty-wrap input.qty:focus{outline:none}

/* ---------- product tabs ---------- */
.woocommerce-tabs{margin-top:8px}
.woocommerce-tabs ul.tabs{list-style:none;margin:0 0 34px;padding:0 0 0;display:flex;gap:6px;flex-wrap:wrap;
  border-bottom:1px solid var(--line)}
.woocommerce-tabs ul.tabs li{margin:0}
.woocommerce-tabs ul.tabs li a{display:inline-block;padding:14px 24px;font-weight:600;font-size:.94rem;
  color:var(--muted);border:1px solid transparent;border-bottom:none;border-radius:3px 3px 0 0;transition:.25s;
  margin-bottom:-1px}
.woocommerce-tabs ul.tabs li.active a{color:var(--ink);background:var(--white);border-color:var(--line);
  border-bottom-color:var(--white)}
.woocommerce-tabs ul.tabs li a:hover{color:var(--ink)}
.woocommerce-tabs .panel{max-width:820px}
.woocommerce-tabs .panel h2{font-size:1.4rem;margin-bottom:16px}
.woocommerce-tabs .panel p{color:var(--muted);line-height:2;margin-bottom:14px}
.woocommerce-tabs .panel ul{list-style:none;padding-inline-start:0;display:flex;flex-direction:column;gap:10px}
.woocommerce-tabs .panel ul li{position:relative;padding-inline-start:24px;color:var(--muted)}
.woocommerce-tabs .panel ul li::before{content:"";position:absolute;inset-inline-start:6px;top:.72em;width:6px;
  height:6px;border-radius:50%;background:var(--stone)}
.shop_attributes{width:100%;border-collapse:collapse;font-size:.94rem}
.shop_attributes th,.shop_attributes td{padding:12px 14px;border:1px solid var(--line);text-align:start}
.shop_attributes th{background:var(--cream);font-weight:600;width:220px}
.shop_attributes p{margin:0;color:var(--muted)}

/* ---------- reviews ---------- */
#reviews .commentlist{list-style:none;margin:0 0 34px;padding:0;display:flex;flex-direction:column;gap:20px}
#reviews .commentlist li{background:var(--cream);border:1px solid var(--line);border-radius:4px;padding:22px 24px}
#reviews .comment_container{display:flex;gap:16px;align-items:flex-start}
#reviews .comment_container img.avatar{border-radius:50%;width:52px;height:52px;flex-shrink:0}
#reviews .comment-text{flex:1}
#reviews .meta{font-size:.86rem;margin-bottom:8px}
#reviews .meta strong{font-size:1rem}
#reviews .meta time{color:var(--stone)}
#reviews .description p{color:var(--muted);font-size:.95rem;line-height:1.9}
#review_form_wrapper{max-width:680px}
#review_form .comment-form{display:grid;gap:16px}
.comment-form-rating label{display:block;margin-bottom:8px;font-weight:600;font-size:.9rem}
.woocommerce .star-rating,.woocommerce p.stars{color:var(--ink)}
.woocommerce-review-link{color:var(--stone);font-size:.82rem}

/* our own star rendering */
.stars-wrap{display:inline-flex;gap:2px}
.stars-wrap svg{width:14px;height:14px;color:var(--ink)}
.stars-wrap svg.empty{color:var(--nude)}

/* ---------- shop toolbar ---------- */
.woocommerce-ordering{margin:0}
.woocommerce-result-count{margin:0;color:var(--muted);font-size:.9rem}
.ks-chip-link{padding:9px 20px;border-radius:2px;border:1px solid var(--line);background:var(--white);
  font-size:.88rem;font-weight:500;transition:.3s;color:var(--ink);display:inline-block}
.ks-chip-link:hover{border-color:var(--ink)}
.ks-chip-link.active{background:var(--ink);color:var(--cream);border-color:var(--ink)}

/* ---------- cart page ---------- */
.woocommerce-cart-form{margin-bottom:40px}
.shop_table{width:100%;border-collapse:collapse;background:var(--white);border:1px solid var(--line);
  border-radius:4px;overflow:hidden;font-size:.94rem}
.shop_table th,.shop_table td{padding:16px 18px;border-bottom:1px solid var(--line);text-align:start;
  vertical-align:middle}
.shop_table thead th{background:var(--cream);font-weight:600;font-size:.86rem;letter-spacing:.02em}
.shop_table tbody tr:last-child td{border-bottom:none}
.shop_table .product-thumbnail img{width:78px;height:auto;border-radius:3px}
.shop_table .product-name a{font-weight:600}
.shop_table .product-name a:hover{color:var(--stone)}
.shop_table td.product-remove a.remove{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;
  background:var(--cream);color:var(--ink);font-size:1rem;line-height:1;text-decoration:none}
.shop_table td.product-remove a.remove:hover{background:var(--ink);color:#fff}
.shop_table .actions{padding:18px}
.shop_table .coupon{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.shop_table .coupon input[type=text]{padding:13px 16px;border:1px solid var(--line);border-radius:2px;
  font-family:var(--body);min-width:200px;background:var(--white)}
.cart-collaterals{display:grid;grid-template-columns:1fr;gap:24px;max-width:520px;margin-inline-start:auto}
.cart_totals h2,.cross-sells h2{font-size:1.35rem;margin-bottom:18px}
.cart_totals .shop_table{background:var(--cream)}
.cart_totals .order-total .amount{font-family:var(--serif);font-size:1.3rem}
.wc-proceed-to-checkout{margin-top:18px}
.wc-proceed-to-checkout .checkout-button{width:100%;justify-content:center;padding:17px 30px;font-size:1rem}
.cross-sells{margin-top:56px}
.wc-block-cart,.wc-block-checkout{--wp--preset--color--contrast:var(--ink)}

/* ---------- checkout ---------- */
.woocommerce-checkout .col2-set{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.woocommerce-checkout .col2-set .col-1,.woocommerce-checkout .col2-set .col-2{width:auto;float:none}
#customer_details h3,#order_review_heading{font-size:1.3rem;margin-bottom:20px}
.woocommerce-billing-fields__field-wrapper,.woocommerce-shipping-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper{display:grid;gap:14px}
.form-row{display:flex;flex-direction:column;gap:7px;margin:0}
.form-row label{font-size:.88rem;font-weight:600}
.form-row .required{color:#a3342b;text-decoration:none}
.form-row input.input-text,.form-row textarea,.form-row select,.select2-container .select2-selection--single{
  width:100%;font-family:var(--body);font-size:.95rem;padding:14px 16px;border:1px solid var(--line);
  border-radius:2px;background:var(--white);color:var(--ink);height:auto}
.select2-container--default .select2-selection--single .select2-selection__rendered{line-height:1.5;
  padding-inline:0;color:var(--ink)}
.select2-container--default .select2-selection--single .select2-selection__arrow{height:100%}
.form-row textarea{min-height:120px;resize:vertical}
#order_review{background:var(--cream);border:1px solid var(--line);border-radius:4px;padding:26px}
#order_review .shop_table{background:transparent;border:none}
.woocommerce-checkout-payment{background:transparent;margin-top:18px}
.wc_payment_methods{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:10px}
.wc_payment_method label{display:inline-flex;align-items:center;gap:9px;font-weight:600;font-size:.94rem;cursor:pointer}
.payment_box{background:var(--white);border:1px solid var(--line);border-radius:3px;padding:14px 16px;
  margin-top:10px;font-size:.88rem;color:var(--muted)}
#place_order{width:100%;justify-content:center;padding:17px 30px;font-size:1rem;margin-top:8px}
.woocommerce-terms-and-conditions-wrapper{font-size:.88rem;color:var(--muted);margin-bottom:14px}
.woocommerce-thankyou-order-details{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:18px;padding:26px;background:var(--cream);border:1px solid var(--line);border-radius:4px;margin-bottom:34px}
.woocommerce-thankyou-order-details li{font-size:.82rem;color:var(--muted);display:flex;flex-direction:column;gap:5px}
.woocommerce-thankyou-order-details li strong{font-size:1.02rem;color:var(--ink)}

/* ---------- my account ---------- */
.woocommerce-account .woocommerce{display:grid;grid-template-columns:250px 1fr;gap:36px;align-items:start}
.woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;background:var(--white);
  border:1px solid var(--line);border-radius:4px;overflow:hidden}
.woocommerce-MyAccount-navigation li a{display:block;padding:14px 20px;font-size:.94rem;font-weight:500;
  border-bottom:1px solid var(--line);transition:.25s}
.woocommerce-MyAccount-navigation li:last-child a{border-bottom:none}
.woocommerce-MyAccount-navigation li.is-active a,.woocommerce-MyAccount-navigation li a:hover{
  background:var(--ink);color:var(--cream)}
.woocommerce-MyAccount-content{min-width:0}
.woocommerce-form-login,.woocommerce-form-register{background:var(--white);border:1px solid var(--line);
  border-radius:4px;padding:30px;display:grid;gap:16px;max-width:520px}
.woocommerce-form-login__rememberme{display:inline-flex;align-items:center;gap:8px;font-size:.9rem}
.lost_password a{font-size:.86rem;color:var(--stone)}

/* ---------- misc ---------- */
.woocommerce-breadcrumb{display:none}
.onsale{position:absolute;top:14px;inset-inline-start:14px;z-index:3;background:var(--stone);color:#fff;
  font-size:.72rem;font-weight:700;padding:5px 12px;border-radius:2px}
.added_to_cart{display:none}
.blockUI.blockOverlay{background:var(--paper)!important}
.woocommerce-loop-product__title{font-size:1.22rem}
.wc-empty-cart-message{text-align:center;max-width:520px;margin-inline:auto}

@media(max-width:1080px){
  .woocommerce-checkout .col2-set{grid-template-columns:1fr;gap:28px}
  .woocommerce-account .woocommerce{grid-template-columns:1fr}
}
@media(max-width:720px){
  .shop_table thead{display:none}
  .shop_table,.shop_table tbody,.shop_table tr,.shop_table td{display:block;width:100%}
  .shop_table tr{border-bottom:1px solid var(--line);padding:12px 0}
  .shop_table td{border:none;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:9px 16px}
  .shop_table td::before{content:attr(data-title);font-weight:600;font-size:.84rem;color:var(--muted)}
  .shop_table td.product-remove::before,.shop_table td.product-thumbnail::before{content:none}
  .cart-collaterals{max-width:none}
  .woocommerce-tabs ul.tabs{gap:0}
  .woocommerce-tabs ul.tabs li a{padding:12px 16px;font-size:.88rem}
}

/* ---------- summary blocks added by the theme ---------- */
.detail-info .woocommerce-product-details__short-description{color:var(--muted);font-size:1.02rem;
  line-height:1.95;margin-bottom:24px}
.detail-info .woocommerce-product-details__short-description p{margin-bottom:12px}
.detail-info .qty-note{color:var(--muted);font-size:.88rem;align-self:center}
.detail-info .detail-cta{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:4px}
.detail-info .detail-cta form.cart{flex:1 1 320px;margin:0}
.detail-info .detail-cta .ks-inquiry{flex:1 1 200px;justify-content:center}
.detail-info .woocommerce-product-rating{margin-bottom:0}
.ks-single-product .section.listing{padding-top:0}
.ks-single-product .related.products{padding-top:56px;border-top:1px solid var(--line);margin-top:56px}
.ks-single-product .related.products .section-head{margin-bottom:40px}

/* shortcode-driven WooCommerce pages (cart / checkout / account) run full width */
.ks-wc-page{max-width:none}
.ks-wc-page .entry-content{font-size:1rem;line-height:1.8}
.ks-wc-page .entry-content>*+*{margin-top:18px}
.ks-wc-page .entry-content ul,.ks-wc-page .entry-content ol{gap:0}
.ks-wc-page .entry-content ul li{padding-inline-start:0}
.ks-wc-page .entry-content ul li::before{content:none}
