/* JHS presentation for native WooCommerce product and customer screens. */
.woocommerce :is(a.button,button.button,input.button),
.woocommerce :is(a.button,button.button,input.button).alt,
.woocommerce #respond input#submit {
  background:var(--ink);
  border:1px solid var(--ink);
  border-radius:4px;
  color:#fff;
  font:700 13px/1.25 var(--font);
  min-height:46px;
  padding:13px 18px;
  transition:background .18s,border-color .18s,transform .18s;
}
.woocommerce :is(a.button,button.button,input.button):is(:hover,:focus-visible),
.woocommerce :is(a.button,button.button,input.button).alt:is(:hover,:focus-visible),
.woocommerce #respond input#submit:is(:hover,:focus-visible) {
  background:#353c2d;
  border-color:#353c2d;
  color:#fff;
}
.woocommerce :is(a.button,button.button,input.button):focus-visible,
.woocommerce :is(input,select,textarea,a):focus-visible {
  outline:3px solid #806b00;
  outline-offset:2px;
}
.woocommerce :is(a.button,button.button,input.button):disabled,
.woocommerce :is(a.button,button.button,input.button).disabled {
  background:#e9ebe5;
  border-color:#d4d8ce;
  color:#4e554b;
  opacity:1;
  cursor:not-allowed;
}

/* Native sale marker, catalogue labels and purchase controls. */
.woocommerce ul.products li.product {position:relative;}
.woocommerce span.onsale,
.woocommerce ul.products li.product span.onsale,
.woocommerce div.product span.onsale {
  position:absolute;
  z-index:3;
  top:16px;
  left:16px;
  right:auto;
  min-width:0;
  min-height:0;
  margin:0;
  padding:8px 12px;
  border:1px solid #d6b900;
  border-radius:3px;
  background:var(--yellow);
  box-shadow:0 2px 10px #14161512;
  color:var(--ink);
  font:800 10px/1.2 var(--font);
  letter-spacing:.08em;
  text-transform:uppercase;
}
.woocommerce div.product div.images {position:relative;}
.woocommerce div.product div.images span.onsale {top:16px;left:16px;}
.woocommerce ul.products li.product .jhs-loop-image {position:relative;overflow:hidden;}
.woocommerce ul.products li.product .jhs-alarm-tags {margin-top:11px;}
.woocommerce .jhs-alarm-tags span {
  border-color:#ded8a8;
  background:#fff9d9;
  color:#3d391e;
}
.woocommerce .jhs-alarm-tags span::before {background:#e1be00;}
.woocommerce ul.products li.product .jhs-stock-state.in-stock {
  background:#f3f5ed;
  color:#455443;
}
.woocommerce ul.products li.product .jhs-stock-state.in-stock::before {background:#607653;}
.woocommerce ul.products li.product .button {align-items:center;min-height:42px;}
.woocommerce ul.products li.product .button:hover {background:#353c2d;border-color:#353c2d;}
.woocommerce div.product .summary .price del,
.woocommerce ul.products li.product .price del {color:#727a70;font-weight:400;opacity:1;}
.woocommerce div.product .summary .price ins,
.woocommerce ul.products li.product .price ins {color:var(--ink);text-decoration:none;}
.woocommerce div.product .summary .price ins {border-bottom:3px solid var(--yellow);}
.woocommerce div.product form.cart {align-items:stretch;gap:10px;flex-wrap:wrap;}
.woocommerce div.product form.cart .quantity .qty {
  min-height:50px;
  border-color:#8d9689;
  border-radius:4px;
  font:700 15px var(--font);
}
.woocommerce div.product form.cart .single_add_to_cart_button {
  min-height:50px;
  padding-inline:24px;
  background:var(--yellow);
  border-color:#d6b900;
  color:var(--ink);
}
.woocommerce div.product form.cart .single_add_to_cart_button:is(:hover,:focus-visible) {
  background:#e8c300;
  border-color:#bc9f00;
  color:var(--ink);
}
.woocommerce div.product form.cart .single_add_to_cart_button:disabled {background:#e9ebe5;border-color:#d4d8ce;color:#4e554b;}
.woocommerce div.product .summary .jhs-product-enquiry .button {min-height:46px;}

/* Basket: keep coupon, quantities, update control and totals legible. */
.woocommerce-cart .woocommerce-cart-form {margin-bottom:34px;}
.woocommerce-cart table.cart {border:1px solid var(--line);border-radius:5px;overflow:hidden;}
.woocommerce-cart table.cart thead th {background:var(--paper);color:var(--ink);font-size:12px;padding:16px;}
.woocommerce-cart table.cart td {border-top:1px solid var(--line);padding:14px 16px;vertical-align:middle;}
.woocommerce-cart table.cart td.product-thumbnail img {width:62px;height:62px;object-fit:contain;background:var(--paper);border-radius:3px;}
.woocommerce-cart table.cart td.product-name a {color:var(--ink);font-weight:700;text-decoration:none;}
.woocommerce-cart table.cart td.product-name a:hover {text-decoration:underline;text-decoration-color:#a88e00;}
.woocommerce-cart table.cart td.product-remove a.remove {color:#772f29!important;border:1px solid transparent;}
.woocommerce-cart table.cart td.product-remove a.remove:hover {background:#f7e5e2;color:#772f29!important;border-color:#e1beb9;}
.woocommerce-cart table.cart td.product-quantity .qty {width:70px;height:46px;border:1px solid #92998e;border-radius:4px;font:700 14px var(--font);text-align:center;}
.woocommerce-cart table.cart td.actions {padding:18px!important;}
.woocommerce-cart table.cart td.actions .coupon {display:flex;gap:8px;float:left;align-items:stretch;max-width:100%;}
.woocommerce-cart table.cart td.actions .coupon .input-text {float:none;width:190px;min-height:46px;margin:0;padding:10px 12px;border:1px solid #92998e;border-radius:4px;font-size:13px;}
.woocommerce-cart table.cart td.actions .button[name="update_cart"] {float:right;min-width:125px;}
.woocommerce-cart .cart-collaterals .cart_totals {width:min(100%,540px);float:right;}
.woocommerce-cart .cart_totals h2 {font-size:26px;letter-spacing:-.03em;margin:0 0 16px;}
.woocommerce-cart .cart_totals table {border:1px solid var(--line);border-radius:5px;overflow:hidden;}
.woocommerce-cart .cart_totals th,.woocommerce-cart .cart_totals td {padding:15px!important;}
.woocommerce-cart .cart_totals th {background:var(--paper);color:var(--ink);}
.woocommerce-cart .cart_totals .order-total th,.woocommerce-cart .cart_totals .order-total td {border-top:2px solid var(--yellow);font-size:16px;}
.woocommerce-cart .cart_totals .wc-proceed-to-checkout a.checkout-button {display:flex;align-items:center;justify-content:center;min-height:54px;margin:0;background:var(--yellow);border-color:#d6b900;color:var(--ink);font-size:15px;}
.woocommerce-cart .cart_totals .wc-proceed-to-checkout a.checkout-button:is(:hover,:focus-visible) {background:#e8c300;border-color:#bc9f00;color:var(--ink);}

/* Checkout: keep native fields and Stripe controls inside the JHS palette. */
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {margin-bottom:25px;}
.woocommerce-checkout form.checkout {display:flow-root;}
.woocommerce-checkout form.checkout :is(h3,#order_review_heading) {font-size:25px;letter-spacing:-.03em;margin:0 0 18px;}
.woocommerce-checkout form.checkout .form-row {margin-bottom:16px;}
.woocommerce-checkout form.checkout .form-row label {font-size:12px;font-weight:700;color:var(--ink);margin-bottom:6px;}
.woocommerce-checkout form.checkout .form-row :is(input.input-text,textarea) {min-height:46px;border:1px solid #92998e;border-radius:4px;background:#fff;color:var(--ink);font-size:14px;}
.woocommerce-checkout form.checkout .form-row textarea {min-height:115px;}
.woocommerce-checkout .select2-container--default .select2-selection--single {min-height:46px;border:1px solid #92998e;border-radius:4px;}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {line-height:44px;}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {height:44px;}
.woocommerce-checkout #order_review table.shop_table {border:1px solid var(--line);border-radius:5px;overflow:hidden;}
.woocommerce-checkout #order_review table.shop_table th,.woocommerce-checkout #order_review table.shop_table td {padding:14px 15px;}
.woocommerce-checkout #order_review table.shop_table thead th,
.woocommerce-checkout #order_review table.shop_table tfoot th {background:var(--paper);color:var(--ink);}
.woocommerce-checkout #order_review table.shop_table tfoot .order-total th,
.woocommerce-checkout #order_review table.shop_table tfoot .order-total td {border-top:2px solid var(--yellow);font-size:16px;}
.woocommerce-checkout #payment {border:1px solid var(--line);border-top:4px solid var(--yellow);border-radius:5px;background:var(--paper);color:var(--ink);}
.woocommerce-checkout #payment ul.payment_methods {border-bottom:1px solid var(--line);padding:18px;}
.woocommerce-checkout #payment ul.payment_methods li > label {color:var(--ink);font-weight:700;}
.woocommerce-checkout #payment div.payment_box {border:1px solid #daddd4;border-radius:4px;background:#fff;color:var(--ink);box-shadow:none;margin:14px 0 0;padding:15px;}
.woocommerce-checkout #payment div.payment_box::before {border-bottom-color:#fff;}
.woocommerce-checkout #payment div.form-row.place-order {display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:18px;margin:0;}
.woocommerce-checkout #payment div.form-row.place-order .woocommerce-privacy-policy-text {width:100%;font-size:12px;line-height:1.6;}
.woocommerce-checkout #payment div.form-row.place-order .form-row.validate-required {width:100%;margin:0;}
.woocommerce-checkout #payment #place_order {float:none;margin-left:auto;min-width:180px;min-height:50px;background:var(--yellow);border-color:#d6b900;color:var(--ink);}
.woocommerce-checkout #payment #place_order:is(:hover,:focus-visible) {background:#e8c300;border-color:#bc9f00;color:var(--ink);}
/* A fixed support bubble must never cover checkout or basket controls. */
body.woocommerce-checkout .jhs-help-widget,body.woocommerce-cart .jhs-help-widget {display:none;}

/* Account: navigation, cards and forms behave as a coherent customer area. */
.woocommerce-account .woocommerce-MyAccount-navigation {width:27%;}
.woocommerce-account .woocommerce-MyAccount-content {width:71%;}
.woocommerce-account .woocommerce-MyAccount-navigation ul {margin:0;padding:0;border:1px solid var(--line);border-radius:5px;overflow:hidden;}
.woocommerce-account .woocommerce-MyAccount-navigation li + li {border-top:1px solid var(--line);}
.woocommerce-account .woocommerce-MyAccount-navigation a {border:0;padding:15px 16px;color:var(--ink);font-weight:600;text-decoration:none;}
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a {background:#fff8cf;border-left:4px solid var(--yellow);padding-left:12px;}
.woocommerce-account .woocommerce-MyAccount-navigation a:hover {background:var(--paper);}
.woocommerce-account .woocommerce-MyAccount-content a:not(.button) {text-decoration-color:#b49800;text-underline-offset:3px;}
.woocommerce-account .woocommerce-MyAccount-content .jhs-account-card {text-decoration:none;}
.woocommerce-account .woocommerce-MyAccount-content .jhs-account-card :is(strong,b,span) {text-decoration:none;}
.woocommerce-account .woocommerce-MyAccount-content :is(.woocommerce-Address,.woocommerce-EditAccountForm,form.login,form.register) {border:1px solid var(--line);border-top:4px solid var(--yellow);border-radius:5px;background:#fff;padding:22px;}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table {border:1px solid var(--line);border-radius:5px;overflow:hidden;}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table th {background:var(--paper);padding:14px;}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table td {padding:14px;}
.woocommerce-account :is(form.woocommerce-form-login,form.woocommerce-form-register,form.woocommerce-ResetPassword,form.woocommerce-form-login.login) {
  max-width:680px;
  border:1px solid var(--line);
  border-top:4px solid var(--yellow);
  border-radius:5px;
  background:#fff;
  padding:25px;
}
.woocommerce-account :is(form.woocommerce-form-login,form.woocommerce-form-register,form.woocommerce-ResetPassword) .form-row label,
.woocommerce-account .woocommerce-MyAccount-content .form-row label {font-size:12px;font-weight:700;color:var(--ink);}
.woocommerce-account :is(form.woocommerce-form-login,form.woocommerce-form-register,form.woocommerce-ResetPassword) .form-row input.input-text,
.woocommerce-account .woocommerce-MyAccount-content .form-row input.input-text {min-height:46px;border:1px solid #92998e;border-radius:4px;font-size:14px;}
.woocommerce-account .woocommerce-MyAccount-content :is(.woocommerce-address-fields,.woocommerce-EditAccountForm) {border:1px solid var(--line);border-top:4px solid var(--yellow);border-radius:5px;padding:22px;}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-address-fields :is(input,select,textarea) {max-width:100%;}

@media(max-width:767px) {
  .woocommerce span.onsale,.woocommerce ul.products li.product span.onsale,.woocommerce div.product span.onsale {top:10px;left:10px;padding:6px 9px;font-size:9px;}
  .woocommerce div.product div.images span.onsale {top:10px;left:10px;}
  .woocommerce ul.products li.product .jhs-alarm-tags {padding-inline:11px;}
  .woocommerce-cart table.cart td {padding:12px!important;}
  .woocommerce-cart table.cart td.actions {display:grid;gap:12px;}
  .woocommerce-cart table.cart td.actions .coupon {float:none;width:100%;}
  .woocommerce-cart table.cart td.actions .coupon .input-text {flex:1;min-width:0;width:auto;}
  .woocommerce-cart table.cart td.actions .button[name="update_cart"] {float:none;width:100%;}
  .woocommerce-cart .cart-collaterals .cart_totals {float:none;width:100%;}
  .woocommerce-checkout #payment div.form-row.place-order {display:block;}
  .woocommerce-checkout #payment #place_order {width:100%;margin-top:15px;}
  .woocommerce-account .woocommerce-MyAccount-navigation,
  .woocommerce-account .woocommerce-MyAccount-content {float:none;width:100%;}
  .woocommerce-account .woocommerce-MyAccount-navigation {margin-bottom:25px;}
  .woocommerce-account .woocommerce-MyAccount-navigation ul {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
  .woocommerce-account .woocommerce-MyAccount-navigation li + li {border-top:0;}
  .woocommerce-account .woocommerce-MyAccount-navigation li {border-bottom:1px solid var(--line);}
  .woocommerce-account .woocommerce-MyAccount-navigation li:nth-child(even) {border-left:1px solid var(--line);}
  .woocommerce-account .woocommerce-MyAccount-navigation a {min-height:48px;padding:12px;font-size:11px;}
  .woocommerce-account .woocommerce-MyAccount-navigation .is-active a {padding-left:8px;}
}
@media(max-width:480px) {
  .woocommerce div.product form.cart .quantity .qty {width:65px;}
  .woocommerce div.product form.cart .single_add_to_cart_button {flex:1;}
  .woocommerce-cart table.cart td.actions .coupon {display:grid;grid-template-columns:minmax(0,1fr);gap:8px;}
  .woocommerce-cart table.cart td.actions .coupon::before,
  .woocommerce-cart table.cart td.actions .coupon::after {display:none;}
  .woocommerce-cart table.cart td.actions .coupon .input-text,
  .woocommerce-cart table.cart td.actions .coupon .button {float:none!important;width:100%!important;min-width:0;margin:0;}
  .woocommerce-account .woocommerce-MyAccount-navigation ul {grid-template-columns:1fr;}
  .woocommerce-account .woocommerce-MyAccount-navigation li:nth-child(even) {border-left:0;}
}

/* Keep stock information readable and make breadcrumb links identifiable without colour alone. */
.woocommerce div.product p.stock.in-stock {color:#41601a;}
.woocommerce .woocommerce-breadcrumb a {text-decoration:underline;text-underline-offset:3px;}
/* WooCommerce hides the main image until gallery JavaScript initialises; show the
   already-sized image immediately so the product remains visible while JS loads. */
body.single-product .woocommerce div.product .woocommerce-product-gallery:has(.woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:only-child) {opacity:1!important;transition:none!important;}
