/* =========================================================
   GM Portal – woocommerce.css (cart · checkout · account · notices)
   ========================================================= */
.gm-wc { padding-block: 16px 48px; }
.gm-wc__main > h1, .gm-wc .entry-title { font-size: var(--fs-2xl); margin: 10px 0 18px; }
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner { list-style: none; padding: 14px 16px; border-radius: var(--r-md); margin-bottom: 16px; border: 1px solid var(--c-primary-100); background: var(--c-primary-50); color: var(--c-primary-700); font-weight: 600; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.woocommerce-message { background: var(--c-success-50); border-color: #bbf7d0; color: #166534; }
.woocommerce-error { background: #fef2f2; border-color: #fecaca; color: #991b1b; }
.woocommerce-message .button, .woocommerce-info .button { margin-inline-start: auto; }
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .woocommerce #respond input#submit, .wc-proceed-to-checkout a.checkout-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0 20px; border-radius: var(--r-md); border: 1.5px solid transparent; background: var(--c-primary); color: #fff; font-weight: 700; cursor: pointer; transition: background var(--t-fast); text-decoration: none; }
.woocommerce .button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover { background: var(--c-primary-600); color: #fff; }
.woocommerce .button:disabled, .woocommerce button.button:disabled { opacity: .5; cursor: not-allowed; }
.woocommerce .button.alt, .wc-proceed-to-checkout a.checkout-button, #place_order { background: var(--c-dark); font-size: var(--fs-lg); min-height: 54px; width: 100%; }
.woocommerce .button.alt:hover, #place_order:hover { background: var(--c-primary); }
.woocommerce button[name="update_cart"], .woocommerce button[name="apply_coupon"] { background: #fff; color: var(--c-ink); border-color: var(--c-line-2); }

/* Cart */
.woocommerce-cart-form { background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-xl); overflow: hidden; }
table.shop_table { width: 100%; }
table.shop_table thead { display: none; }
@media (min-width: 768px) { table.shop_table thead { display: table-header-group; } table.shop_table th { text-align: right; padding: 14px 16px; background: var(--c-surface-2); font-size: var(--fs-sm); color: var(--c-ink-2); border-bottom: 1px solid var(--c-line); } }
table.shop_table td { padding: 14px 16px; border-bottom: 1px solid var(--c-line); vertical-align: middle; }
table.shop_table tr.cart_item { display: grid; grid-template-columns: 80px 1fr auto; grid-template-areas: "thumb name remove" "thumb price price" "thumb qty subtotal"; gap: 4px 12px; padding: 12px; }
table.shop_table tr.cart_item td { padding: 0; border: 0; }
@media (min-width: 768px) { table.shop_table tr.cart_item { display: table-row; } table.shop_table tr.cart_item td { padding: 16px; border-bottom: 1px solid var(--c-line); } }
td.product-thumbnail { grid-area: thumb; }
td.product-thumbnail img { width: 80px; height: 80px; object-fit: contain; border-radius: var(--r-md); border: 1px solid var(--c-line); background: #fff; }
td.product-name { grid-area: name; }
td.product-name .gm-cart-item__title { font-weight: 800; color: var(--c-ink); display: block; }
td.product-name .gm-cart-item__sub { display: block; color: var(--c-ink-2); font-size: var(--fs-sm); direction: ltr; text-align: right; }
td.product-price { grid-area: price; font-weight: 700; }
td.product-price .gm-unit { color: var(--c-ink-3); font-weight: 600; }
td.product-quantity { grid-area: qty; }
td.product-subtotal { grid-area: subtotal; font-weight: 900; font-size: var(--fs-lg); text-align: left; }
td.product-remove { grid-area: remove; text-align: left; }
td.product-remove a.remove { display: inline-flex; width: 32px; height: 32px; border-radius: 50%; align-items: center; justify-content: center; color: var(--c-ink-3) !important; font-size: 22px; font-weight: 400; text-decoration: none; }
td.product-remove a.remove:hover { background: #fee2e2; color: var(--c-danger) !important; }
.woocommerce .quantity { display: inline-flex; align-items: center; border: 1.5px solid var(--c-line-2); border-radius: var(--r-md); overflow: hidden; height: 42px; }
.woocommerce .quantity .qty { width: 64px; height: 100%; border: 0; text-align: center; font-weight: 800; min-height: 0; padding: 0; }
.woocommerce .quantity .screen-reader-text { display: none; }
td.actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: space-between; align-items: center; background: var(--c-surface-2); }
td.actions .coupon { display: flex; gap: 8px; flex-wrap: wrap; }
td.actions .coupon .input-text { min-height: 46px; width: 180px; }
.cart-collaterals { margin-top: 24px; display: grid; gap: 20px; }
@media (min-width: 900px) { .cart-collaterals { grid-template-columns: 1fr 420px; } .cart-collaterals .cart_totals { grid-column: 2; } }
.cart_totals { background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-xl); padding: 20px; }
.cart_totals h2 { font-size: var(--fs-xl); margin-bottom: 10px; }
.cart_totals table th { text-align: right; padding: 10px 0; color: var(--c-ink-2); font-weight: 600; }
.cart_totals table td { text-align: left; padding: 10px 0; font-weight: 700; }
.cart_totals .order-total td { font-size: 1.4rem; font-weight: 900; }
.wc-proceed-to-checkout { margin-top: 14px; }
.cart-empty.woocommerce-info { flex-direction: column; align-items: center; text-align: center; padding: 48px 20px; font-size: var(--fs-lg); }
.return-to-shop { text-align: center; margin-top: 10px; }

/* Checkout */
.woocommerce-checkout .woocommerce { display: block; }
form.checkout { display: grid; gap: 24px; }
@media (min-width: 1024px) { form.checkout { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; } form.checkout #order_review_heading, form.checkout #order_review { grid-column: 2; } form.checkout #customer_details { grid-column: 1; grid-row: 1 / span 3; } }
#customer_details, #order_review { background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-xl); padding: 20px; }
#order_review_heading { font-size: var(--fs-xl); margin: 0; padding: 0 4px; }
@media (min-width: 1024px) { #order_review { position: sticky; top: calc(var(--header-h) + 16px); } }
@media (min-width: 1200px) { form.checkout { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); } }
.woocommerce-billing-fields h3, .woocommerce-shipping-fields h3, .woocommerce-additional-fields h3 { font-size: var(--fs-xl); margin-bottom: 12px; }
.woocommerce form .form-row { display: flex; flex-direction: column; gap: 6px; margin: 0 0 14px; padding: 0; width: 100%; }
.woocommerce form .form-row label { font-size: var(--fs-sm); font-weight: 700; color: var(--c-ink-2); }
.woocommerce form .form-row .required { color: var(--c-danger); text-decoration: none; }
.woocommerce form .form-row.gm-hidden, #billing_country_field, #shipping_country_field { display: none !important; }
@media (min-width: 640px) { .woocommerce form .form-row-first, .woocommerce form .form-row-last { width: calc(50% - 7px); float: right; } .woocommerce form .form-row-last { float: left; } .woocommerce form .form-row-wide { clear: both; } }
.woocommerce form .form-row.woocommerce-invalid .input-text { border-color: var(--c-danger); }
.woocommerce form .form-row.woocommerce-validated .input-text { border-color: var(--c-success); }
.select2-container .select2-selection--single { height: 48px; border: 1.5px solid var(--c-line-2); border-radius: var(--r-md); }
.select2-container .select2-selection--single .select2-selection__rendered { line-height: 46px; padding-right: 14px; }
.select2-container .select2-selection--single .select2-selection__arrow { height: 46px; }
.woocommerce-checkout-review-order-table th { text-align: right; padding: 10px 0; color: var(--c-ink-2); font-weight: 600; border-bottom: 1px solid var(--c-line); }
.woocommerce-checkout-review-order-table td { text-align: left; padding: 10px 0; border-bottom: 1px solid var(--c-line); font-weight: 700; }
.woocommerce-checkout-review-order-table .product-name { text-align: right; font-weight: 600; font-size: var(--fs-sm); }
.woocommerce-checkout-review-order-table .product-quantity { color: var(--c-ink-2); }
.woocommerce-checkout-review-order-table .order-total td, .woocommerce-checkout-review-order-table .order-total th { font-size: 1.3rem; font-weight: 900; border: 0; padding-top: 14px; }
#shipping_method { display: grid; gap: 8px; }
#shipping_method li { display: flex; align-items: center; gap: 8px; }
#shipping_method label { font-weight: 600; }
.woocommerce-shipping-totals td { text-align: right; }
#payment { background: var(--c-surface-2); border-radius: var(--r-lg); padding: 16px; margin-top: 16px; }
#payment ul.payment_methods { display: grid; gap: 8px; margin-bottom: 14px; }
#payment ul.payment_methods li { background: #fff; border: 1.5px solid var(--c-line); border-radius: var(--r-md); padding: 12px 14px; }
#payment ul.payment_methods li label { font-weight: 700; display: inline-flex; align-items: center; gap: 8px; }
#payment ul.payment_methods li img { max-height: 24px; }
#payment .payment_box { margin-top: 10px; font-size: var(--fs-sm); color: var(--c-ink-2); }
#payment .woocommerce-privacy-policy-text, .woocommerce-terms-and-conditions-wrapper { font-size: var(--fs-xs); color: var(--c-ink-3); margin: 10px 0; }
.woocommerce-terms-and-conditions-checkbox-text { font-size: var(--fs-sm); }
#ship-to-different-address label { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: var(--fs-md); }
.woocommerce-form-coupon-toggle .woocommerce-info { background: var(--c-surface-2); color: var(--c-ink-2); border-color: var(--c-line); }
.checkout_coupon { display: flex; gap: 8px; align-items: end; flex-wrap: wrap; margin-bottom: 16px; }
.checkout_coupon .form-row { margin: 0; width: auto; }

/* Thank you */
.woocommerce-order { display: grid; gap: 20px; }
.woocommerce-notice--success { font-size: var(--fs-xl); font-weight: 800; background: var(--c-success-50); border-color: #bbf7d0; color: #166534; padding: 20px; border-radius: var(--r-xl); }
.woocommerce-order-overview { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-xl); padding: 16px; }
.woocommerce-order-overview li { font-size: var(--fs-sm); color: var(--c-ink-2); }
.woocommerce-order-overview li strong { display: block; color: var(--c-ink); font-size: var(--fs-md); }
.woocommerce-order-details, .woocommerce-customer-details { background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-xl); padding: 20px; }
.woocommerce-order-details h2, .woocommerce-customer-details h2 { font-size: var(--fs-xl); }
.woocommerce-table--order-details th { text-align: right; padding: 10px 0; border-bottom: 1px solid var(--c-line); }
.woocommerce-table--order-details td { padding: 10px 0; border-bottom: 1px solid var(--c-line); text-align: left; }
.wc-item-meta { font-size: var(--fs-xs); color: var(--c-ink-2); margin-top: 4px; }
.wc-item-meta li { display: inline; }
address { font-style: normal; line-height: 1.7; }
.gm-thanks { background: var(--c-dark); color: #fff; border-radius: var(--r-xl); padding: 24px; display: grid; gap: 10px; }
.gm-thanks h3 { margin: 0; }
.gm-thanks .gm-btn { justify-self: start; }

/* My account */
.woocommerce-MyAccount-navigation ul { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 20px; }
.woocommerce-MyAccount-navigation a { display: inline-flex; padding: 8px 14px; border-radius: var(--r-pill); border: 1px solid var(--c-line); background: #fff; font-weight: 700; color: var(--c-ink-2); }
.woocommerce-MyAccount-navigation .is-active a { background: var(--c-dark); color: #fff; border-color: var(--c-dark); }
.woocommerce-MyAccount-content { background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-xl); padding: 20px; }
.woocommerce-form-login, .woocommerce-form-register, .woocommerce-ResetPassword { max-width: 440px; background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-xl); padding: 24px; margin-inline: auto; }
.woocommerce-orders-table th { text-align: right; padding: 10px; background: var(--c-surface-2); font-size: var(--fs-sm); }
.woocommerce-orders-table td { padding: 10px; border-bottom: 1px solid var(--c-line); }
.woocommerce-pagination { display: flex; gap: 6px; justify-content: center; margin-top: 16px; }

/* Generic WC bits */
.woocommerce-Price-amount { font-variant-numeric: tabular-nums; white-space: nowrap; direction: ltr; unicode-bidi: isolate; }
.blockUI.blockOverlay { border-radius: var(--r-xl); }
.woocommerce .blockUI.blockOverlay::before { content: ""; position: absolute; top: 50%; left: 50%; width: 28px; height: 28px; margin: -14px; border: 3px solid var(--c-line-2); border-top-color: var(--c-primary); border-radius: 50%; animation: gm-spin .7s linear infinite; }
