/* TEKNOBE 1.1.8 — clean form focus and more breathable product purchase controls. */

/* The global red :focus-visible outline created a double red rectangle on checkout
   text fields. Keep a restrained, visible blue-grey focus cue instead. */
body :is(input[type='text'], input[type='email'], input[type='tel'],
         input[type='search'], input[type='number'], input[type='password'],
         input[type='url'], textarea, select):focus,
body :is(input[type='text'], input[type='email'], input[type='tel'],
         input[type='search'], input[type='number'], input[type='password'],
         input[type='url'], textarea, select):focus-visible {
  outline: 0 !important;
  outline-offset: 0 !important;
  border-color: #9aabbd !important;
  box-shadow: 0 0 0 1px #aab8c8 !important;
}

body.woocommerce-checkout .wc-block-checkout :is(
  .wc-block-components-text-input,
  .wc-block-components-combobox,
  .wc-block-components-combobox-control,
  .wc-block-components-select
):focus-within {
  outline: 0 !important;
  outline-offset: 0 !important;
  box-shadow: none !important;
}

body.woocommerce-checkout .wc-block-checkout :is(
  .wc-block-components-text-input input,
  .wc-block-components-combobox-control input,
  .wc-block-components-select select,
  textarea
):focus,
body.woocommerce-checkout .wc-block-checkout :is(
  .wc-block-components-text-input input,
  .wc-block-components-combobox-control input,
  .wc-block-components-select select,
  textarea
):focus-visible {
  border: 1px solid #9aabbd !important;
  outline: none !important;
  box-shadow: 0 0 0 1px #bfcbda !important;
}

body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__main .wc-block-components-checkout-step {
  margin-bottom: 16px !important;
}

/* Slightly more vertical breathing room through the purchase section. */
body.single-product .tk-woocommerce-main div.product .summary .product_title {
  margin-bottom: 7px !important;
}

body.single-product .tk-woocommerce-main div.product .summary .woocommerce-product-details__short-description {
  margin-bottom: 10px !important;
}

body.single-product .tk-woocommerce-main div.product .summary form.cart:not(.variations_form) {
  margin: 25px 0 14px !important;
  row-gap: 16px !important;
}

/* Simple products: the quantity must always start at the left edge. */
body.single-product .tk-woocommerce-main div.product .summary form.cart:not(.variations_form) > .quantity {
  grid-column: 1 !important;
  grid-row: 1 !important;
  justify-self: start !important;
  justify-content: start !important;
  margin: 0 !important;
}

/* Variable products: quantity LEFT, available boxed options RIGHT. */
body.single-product .tk-woocommerce-main div.product .summary form.cart.variations_form {
  position: relative !important;
  display: block !important;
  margin: 16px 0 14px !important;
  padding: 0 !important;
}

body.single-product .tk-woocommerce-main div.product .summary form.cart.variations_form table.variations {
  display: block !important;
  width: calc(100% - 144px) !important;
  max-width: none !important;
  margin: 0 0 15px 144px !important;
  padding: 0 !important;
  border: 0 !important;
}

body.single-product .tk-woocommerce-main div.product .summary form.cart.variations_form table.variations tbody {
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
}

body.single-product .tk-woocommerce-main div.product .summary form.cart.variations_form table.variations tr {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  width: 100% !important;
  margin: 0 !important;
}

body.single-product .tk-woocommerce-main div.product .summary form.cart.variations_form table.variations th,
body.single-product .tk-woocommerce-main div.product .summary form.cart.variations_form table.variations td {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
}

body.single-product .tk-woocommerce-main div.product .summary form.cart.variations_form table.variations label {
  display: block !important;
  margin: 0 0 2px !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  line-height: 16px !important;
}

/* Visually conceal only JS-enhanced selects. WooCommerce continues to read
   their names, option values and change events without interruption. */
body.single-product .tk-woocommerce-main div.product .summary form.cart.variations_form select.tk-variation-native-select {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  min-height: 1px !important;
  max-width: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  opacity: 0 !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  pointer-events: none !important;
}

body.single-product .tk-woocommerce-main .tk-variation-boxes {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 9px;
  min-width: 0;
  width: 100%;
}

body.single-product .tk-woocommerce-main .tk-variation-box {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  max-width: 100%;
  padding: 7px 13px;
  border: 1px solid #cdd4df;
  border-radius: 5px;
  background: #fff;
  color: #1d2530;
  font: inherit;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  white-space: normal;
  cursor: pointer;
  transition: border-color .15s, background-color .15s, color .15s;
}

body.single-product .tk-woocommerce-main .tk-variation-box:hover:not(:disabled) {
  border-color: #a91b24;
}

body.single-product .tk-woocommerce-main .tk-variation-box.is-selected {
  border-color: #e0000e;
  background: #fff3f4;
  color: #bb000a;
  box-shadow: inset 0 0 0 1px #e0000e;
}

body.single-product .tk-woocommerce-main .tk-variation-box:focus-visible {
  outline: 2px solid #8797a9;
  outline-offset: 2px;
}

body.single-product .tk-woocommerce-main .tk-variation-box:disabled {
  opacity: .4;
  cursor: not-allowed;
  text-decoration: line-through;
}

body.single-product .tk-woocommerce-main div.product .summary form.cart.variations_form
  .woocommerce-variation-add-to-cart > .quantity.tk-qty-stepper {
  position: absolute !important;
  left: 0 !important;
  top: 22px !important;
  right: auto !important;
  width: 122px !important;
  justify-content: start !important;
}

body.single-product .tk-woocommerce-main div.product .summary form.cart.variations_form .woocommerce-variation-add-to-cart {
  row-gap: 13px !important;
}

body.single-product .tk-woocommerce-main div.product .summary .tk-favorite-single,
body.single-product .tk-woocommerce-main div.product .summary .tk-compare-toggle {
  margin-top: 7px !important;
  margin-bottom: 7px !important;
}

body.single-product .tk-woocommerce-main div.product .summary .tk-product-assurances {
  margin: 12px 0 10px !important;
}

@media (max-width: 480px) {
  body.single-product .tk-woocommerce-main div.product .summary form.cart.variations_form table.variations {
    width: calc(100% - 108px) !important;
    max-width: none !important;
    margin-left: 108px !important;
  }
  body.single-product .tk-woocommerce-main div.product .summary form.cart.variations_form
    .woocommerce-variation-add-to-cart > .quantity.tk-qty-stepper {
    left: 0 !important;
    right: auto !important;
    width: 92px !important;
    grid-template-columns: 25px minmax(40px,1fr) 25px !important;
  }
  body.single-product .tk-woocommerce-main .tk-variation-boxes { gap: 6px; }
  body.single-product .tk-woocommerce-main .tk-variation-box {
    min-height: 34px;
    padding: 6px 9px;
    font-size: 10.5px;
  }
}
