/* Keep WooCommerce's own layout, scripts and hooks. These are visual overrides. */
.woocommerce, .woocommerce-page { --woocommerce: #174a45; --wc-primary: #174a45; }
.woocommerce :where(input.input-text, textarea, select),
.woocommerce-page :where(input.input-text, textarea, select) {
  font: inherit; font-size: 1rem; color: var(--zz-ink); background: #fff;
  border: 1px solid #a0aaa3; border-radius: 5px; min-height: 46px; padding: .7rem .8rem; max-width: 100%;
}
.woocommerce form .form-row label { font-weight: 600; line-height: 1.5; margin-bottom: .35rem; }
.woocommerce form .form-row .required { color: #a32323; }
.woocommerce form .form-row textarea { min-height: 110px; }
.woocommerce form .form-row :where(input[type=checkbox], input[type=radio]) { accent-color: var(--zz-sea); width: 18px; height: 18px; vertical-align: middle; }
.woocommerce .select2-container .select2-selection--single { min-height: 46px; height: auto; border: 1px solid #a0aaa3; border-radius: 5px; }
.woocommerce .select2-container .select2-selection--single .select2-selection__rendered { line-height: 44px; padding-left: .8rem; color: var(--zz-ink); }
.woocommerce .select2-container .select2-selection--single .select2-selection__arrow { height: 44px; }
.select2-dropdown { border-color: #a0aaa3; }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: #174a45; }
.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 {
  background: var(--zz-cta); color: #fff; border-radius: 6px; padding: .9rem 1.25rem;
  line-height: 1.4; font-family: inherit; font-size: .9375rem; font-weight: 700; border: 0; text-decoration: none;
}
.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: #963c09; color: #fff; }
.woocommerce button.button:disabled, .woocommerce button.button:disabled[disabled],
.woocommerce button.button.alt.disabled { opacity: .6; background: var(--zz-cta); color: #fff; cursor: not-allowed; }
.woocommerce div.product p.price, .woocommerce div.product span.price,
.woocommerce ul.products li.product .price { color: var(--zz-sea); font-weight: 700; }
.woocommerce span.onsale { background: var(--zz-sea); color: white; min-height: 0; line-height: 1.4; padding: .45rem .7rem; border-radius: 5px; }
.woocommerce ul.products li.product { background: white; border: 1px solid var(--zz-line); border-radius: 8px; padding: 0 1rem 1rem; overflow: hidden; }
.woocommerce ul.products li.product a img { width: calc(100% + 2rem); max-width: none; margin-inline: -1rem; aspect-ratio: 4/3; object-fit: cover; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: Georgia, serif; font-size: 1.25rem; color: var(--zz-sea); }
.woocommerce ul.products li.product .button { display: block; text-align: center; }
.woocommerce .quantity .qty { width: 5rem; }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.woocommerce div.product form.cart.variations_form, .woocommerce div.product form.cart.grouped_form { display: block; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { border-color: var(--zz-line); background: var(--zz-sand); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: white; }
.woocommerce .woocommerce-breadcrumb { color: var(--zz-muted); }
.woocommerce .stock.in-stock { color: #356b4c; }
.woocommerce .stock.out-of-stock { color: #a32323; }
.woocommerce-error, .woocommerce-info, .woocommerce-message { background: var(--zz-sand); color: var(--zz-ink); border-radius: 5px; }
.woocommerce-message { border-top-color: #356b4c; }
.woocommerce-message::before { color: #356b4c; }
.woocommerce-info { border-top-color: var(--zz-sea); }
.woocommerce-info::before { color: var(--zz-sea); }
.woocommerce-error { border-top-color: #a32323; }
.woocommerce table.shop_table { border: 1px solid var(--zz-line); border-radius: 8px; border-collapse: separate; background: white; }
.woocommerce table.shop_table th { color: var(--zz-sea); }
.woocommerce table.shop_table :where(th, td) { padding: 1rem; }
.woocommerce table.shop_table td { border-top-color: var(--zz-line); }
.woocommerce-cart .cart-collaterals .cart_totals { background: var(--zz-sand); padding: 1.5rem; border: 1px solid var(--zz-line); border-radius: 8px; }
.woocommerce-cart table.cart td.actions .coupon .input-text { width: 160px; }
.woocommerce form.checkout { margin-top: 2rem; }
.woocommerce-checkout #customer_details { padding: 1.5rem; border: 1px solid var(--zz-line); border-radius: 8px; margin-bottom: 2rem; background: #fff; }
.woocommerce-checkout #customer_details h3 { font-size: 1.6rem; }
.woocommerce-checkout #order_review { padding: 1.5rem; background: var(--zz-sand); border: 1px solid var(--zz-line); border-radius: 8px; }
.woocommerce-checkout #payment { background: transparent; }
.woocommerce-checkout #payment div.payment_box { background: white; color: var(--zz-ink); border: 1px solid var(--zz-line); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--zz-line); }
.woocommerce-checkout #payment ul.payment_methods { padding-inline: 0; border-bottom-color: var(--zz-line); }
.woocommerce-checkout #payment div.form-row { padding-inline: 0; }
.woocommerce-checkout #place_order { width: 100%; min-height: 52px; white-space: normal; }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { font-size: .9rem; }
.woocommerce ul#shipping_method li label { display: inline; }
.woocommerce ul#shipping_method li { margin-bottom: .8rem; }
.woocommerce .woocommerce-MyAccount-navigation ul { list-style: none; padding: .5rem 1rem; margin: 0 0 2rem; background: var(--zz-sand); border-radius: 8px; }
.woocommerce .woocommerce-MyAccount-navigation a { display: block; padding: .8rem; text-decoration: none; }
.woocommerce .woocommerce-MyAccount-navigation .is-active a { background: white; font-weight: 700; border-radius: 5px; }
/* Dynamic checkout fields keep their original IDs, names, visibility and order. */
.woocommerce-checkout .form-row :where(input[type=date], input[type=time], input[type=tel]) { width: 100%; }
.woocommerce-checkout .form-row .description { color: var(--zz-muted); font-size: .875rem; }
/* Core WooCommerce product blocks keep native data and add-to-cart behaviour. */
.wp-block-woocommerce-product-collection .wc-block-product-template { gap: 1.5rem; }
.wp-block-woocommerce-product-collection .wc-block-product { border: 1px solid var(--zz-line); border-radius: 8px; padding: 0 1rem 1rem; background: #fff; overflow: hidden; display: flex; flex-direction: column; }
.wp-block-woocommerce-product-collection .wc-block-product .wp-block-woocommerce-product-image { margin: 0 -1rem 1rem; }
.wp-block-woocommerce-product-collection .wc-block-product .wp-block-post-title { margin: 0 0 .6rem; }
.wp-block-woocommerce-product-collection .wc-block-product .wp-block-post-title a { text-decoration: none; }
.wp-block-woocommerce-product-collection .wc-block-product .wp-block-woocommerce-product-button { margin-top: auto; padding-top: 1rem; }
.wp-block-woocommerce-product-button .wp-block-button__link { width: 100%; }
.woocommerce.wc-block-catalog-sorting, .woocommerce .woocommerce-ordering { margin-bottom: 1.5rem; }
/* Checkout/account shortcodes are allowed the full page width. */
.wp-block-post-content > .woocommerce { max-width: var(--wp--style--global--wide-size, 1240px); width: 100%; }
@media (min-width: 960px) {
  .woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 0 2rem; align-items: start; }
  .woocommerce-checkout form.checkout > * { grid-column: 1 / -1; }
  .woocommerce-checkout form.checkout > #customer_details { grid-column: 1; grid-row: span 2; }
  .woocommerce-checkout form.checkout > #order_review_heading { grid-column: 2; margin: 0 0 1rem; }
  .woocommerce-checkout form.checkout > #order_review { grid-column: 2; }
  .woocommerce-checkout #customer_details .col-1, .woocommerce-checkout #customer_details .col-2 { float: none; width: 100%; }
}
@media (max-width: 781px) {
  .wp-block-woocommerce-product-collection .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .woocommerce-checkout #customer_details, .woocommerce-checkout #order_review { padding: 1rem; }
  .woocommerce table.shop_table :where(th, td) { padding: .75rem .5rem; }
  .woocommerce-checkout #customer_details .col-1, .woocommerce-checkout #customer_details .col-2 { width: 100%; float: none; }
}
@media (max-width: 480px) {
  .woocommerce form .form-row-first, .woocommerce form .form-row-last { float: none; width: 100%; }
  .wp-block-woocommerce-product-collection .wc-block-product-template { gap: .75rem; }
  .wp-block-woocommerce-product-collection .wc-block-product { padding-inline: .7rem; }
  .wp-block-woocommerce-product-collection .wc-block-product .wp-block-woocommerce-product-image { margin-inline: -.7rem; }
  .wp-block-woocommerce-product-button .wp-block-button__link { padding: .75rem .4rem; font-size: .8rem; }
  .woocommerce-cart table.cart td.actions .coupon .input-text { width: 48%; }
}
