/* Notices & filters */
.woocommerce .widget_price_filter .ui-slider .ui-slider-handle,
.woocommerce .widget_price_filter .ui-slider .ui-slider-range {
  background-color: var(--color-primary);
}

.woocommerce-error,
.woocommerce-info,
.woocommerce-message {
  background-color: var(--color-primary);
  color: var(--color-dark-text);
}

.woocommerce-store-notice__dismiss-link {
  font-size: var(--font-size-large);
  font-weight: var(--font-weight-bold);
  position: relative;
  margin-left: var(--margin-small);
}


/* Buttons */
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.disabled,
.woocommerce #respond input#submit:disabled,
.woocommerce #respond input#submit:disabled[disabled],
.woocommerce a.button.disabled,
.woocommerce a.button:disabled,
.woocommerce a.button:disabled[disabled],
.woocommerce button.button.disabled,
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled],
.woocommerce input.button.disabled,
.woocommerce input.button:disabled,
.woocommerce input.button:disabled[disabled] {
  display: block;
  background-color: var(--color-primary) !important;
  border-radius: var(--border-radius-medium) !important;
  color: var(--color-dark-text) !important;
  font-size: var(--button-font-size) !important;
  line-height: inherit;
  padding: var(--button-padding) !important;
  text-align: center;
  text-decoration: none;
  margin-bottom: 0 !important;
  transition: transform var(--transition) ease-in-out, border var(--transition) ease-in-out, box-shadow var(--transition) ease-in-out;
  font-weight: normal;
}

.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
  background-color: var(--color-primary);
  transform: var(--button-hover-transform);
  box-shadow: var(--box-shadow);
}


/* Orders */
.woocommerce-order {
  margin: var(--margin-none) auto;
  padding: var(--padding-medium);
  border-radius: var(--border-radius);
  box-shadow: var(--box-shadow);
  background-color: var(--color-background);
}

.dark .woocommerce-order {
  background-color: var(--color-dark-background);
}

.woocommerce-order table {
  width: 100%;
  border-collapse: collapse;
}

.woocommerce-order table th {
  font-family: var(--font-family);
  font-size: var(--font-size-medium);
  font-weight: normal;
  padding: var(--padding);
  border-bottom: none;
}

.woocommerce-order table td {
  font-family: var(--font-family);
  font-size: var(--font-size-regular);
  padding: var(--padding);
  border-bottom: none;
}

.woocommerce-order table td a {
  color: var(--color-primary);
}

.woocommerce-order table td a:hover {
  color: var(--color-white);
  background-color: var(--color-primary);
}

.woocommerce-order .woocommerce-order-actions {
  display: flex;
  justify-content: center;
}

.woocommerce-order .woocommerce-order-actions button {
  font-family: var(--font-family);
  font-size: var(--font-size-medium);
  color: var(--color-white);
  background-color: var(--color-primary);
  padding: var(--padding);
  border: none;
  border-radius: var(--border-radius-medium);
}

.woocommerce-order .woocommerce-order-actions button:hover {
  transform: var(--button-hover-transform);
  transition-duration: var(--transition);
}


/* Addresses */
.woocommerce address {
  font-style: normal;
  margin-bottom: 0;
  text-align: left;
  width: 100%;
  background-color: var(--color-white);
  border: var(--border-width) solid var(--color-primary);
  border-radius: var(--border-radius);
  padding: var(--padding-small);
}

.dark .woocommerce address {
  background-color: var(--body-bg-color);
}


/* Customer details */
.woocommerce .woocommerce-customer-details p {
  margin-bottom: var(--margin-medium);
}

.woocommerce .woocommerce-customer-details,
.woocommerce .woocommerce-order-details,
.woocommerce .woocommerce-order-downloads {
  margin-bottom: 0em;
}


/* Checkout (blocks) */
.wc-block-checkout {
  width: 100%;
  margin: var(--margin-none) auto;
  padding: var(--padding-small);
  box-sizing: border-box;
}

.wp-block-woocommerce-checkout-order-summary-block,
.wc-block-checkout__main {
  padding: var(--padding-small) !important;
  border: 1px !important;
  border-style: solid !important;
  border-color: var(--color-primary) !important;
  border-radius: var(--border-radius);
  box-shadow: var(--box-shadow);
  margin-bottom: var(--margin-medium);
  font-family: var(--font-family);
  background-color: var(--color-background);
  color: var(--color-text);
}

.dark .wp-block-woocommerce-checkout-order-summary-block,
.dark .wc-block-checkout__main {
  background-color: var(--color-dark-background);
  color: var(--color-dark-text);
}

.dark .wc-block-checkout__main .p_Input {
  background-color: #000 !important;
}

.wc-block-components-panel__content .wc-block-components-totals-wrapper {
  box-shadow: none;
  border: none !important;
  border-radius: 0;
  padding: var(--padding-tiny) var(--padding-small) !important;
}

.wc-block-components-totals-wrapper:empty {
  display: none ;
}

.wc-block-components-order-summary__button-text {
  font-weight: var(--font-weight-bold);
  font-size: var(--font-size-medium);
  color: var(--color-text);
}

.dark .wc-block-components-order-summary__button-text {
  color: var(--color-dark-text);
}

.wc-block-components-panel__button {
  background-color: var(--color-dark-background);
  color: var(--color-white);
  padding: var(--padding-small) !important;
  border-radius: var(--border-radius-medium);
  cursor: pointer;
  transition: var(--transition);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-transform: uppercase;
  font-size: var(--button-font-size);
  box-shadow: var(--box-shadow);
}

.wc-block-components-panel__button:hover {
  background-color: var(--color-hover-info);
  box-shadow: var(--box-shadow);
}

.wc-block-components-order-summary-item {
  display: flex;
  align-items: center;
  background-color: var(--color-background-transparent-light) !important;
  border: var(--border-width-small) solid var(--color-primary);
  border-radius: var(--border-radius);
  padding: var(--padding-small) !important;
}

.dark .wc-block-components-order-summary-item {
  background-color: var(--color-dark-background-transparent-light) !important;
}

.wc-block-components-product-name {
  font-weight: var(--font-weight-bold);
  font-size: var(--font-size-medium);
  margin-bottom: var(--margin-small);
}

.wc-block-components-product-price__value {
  font-weight: var(--font-weight-bold);
  color: var(--color-primary);
}

.wc-block-components-product-price__regular {
  text-decoration: line-through;
  margin-right: var(--margin-small);
  color: var(--color-grey);
}

.wc-block-components-totals-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--padding-tiny) 0;
  font-size: var(--font-size-regular);
}

.wc-block-components-totals-footer-item {
  font-weight: var(--font-weight-bold);
}

.wcs-recurring-totals-panel__title {
  font-size: var(--font-size-medium);
  margin-bottom: var(--margin-medium);
}

.wcs-recurring-totals-panel__details {
  padding: var(--padding-small);
  border: 1px solid var(--color-primary);
  background-color: var(--color-background-transparent-light);
  border-radius: var(--border-radius);
  transition: var(--transition);
  font-family: var(--font-family);
  font-size: var(--font-size-regular);
  color: var(--color-text);
}

.dark .wcs-recurring-totals-panel__details {
  background-color: var(--color-dark-background-transparent-light);
  color: var(--color-dark-text);
}

.wcs-recurring-totals-panel__details a {
  color: var(--color-primary);
  transition: var(--transition);
  text-decoration: none;
  font-weight: var(--font-weight-bold);
}

.wc-block-components-panel__button-icon {
  margin-right: var(--margin-small);
  fill: var(--color-white);
}

.wcs-recurring-totals-panel {
  padding: 0;
}

.wc-block-components-totals-wrapper.slot-wrapper>*>* {
  padding: 0 !important;
  position: relative
}

.wcs-recurring-totals-panel__details .wc-block-components-panel__button,
.wcs-recurring-totals-panel__details .wc-block-components-panel__button:hover,
.wcs-recurring-totals-panel__details .wc-block-components-panel__button:focus {
  font-size: var(--font-size-regular);
}

.wp-block-woocommerce-checkout-order-summary-discount-block:empty {
  display: none ;
}

.wc-block-components-form .wc-block-components-checkout-step {
  padding: 0 !important;
}

.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox] {
  border: none !important;
  position: relative !important;
}

.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked {
  background: var(--color-primary) !important;
  border: 0 !important;
  position: relative;
}

.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:focus {
  border: 0 !important;
}

.wc-block-components-checkbox .wc-block-components-checkbox__mark {
  display: none !important;
}

.wc-block-components-totals-coupon-link {
  font-size: var(--font-size-medium) !important;
  display: block;
  text-align: center;
  margin-left: auto;
  margin-right: auto;
  width: fit-content;
}

.wc-block-components-form .wc-block-components-text-input input[type=email],
.wc-block-components-form .wc-block-components-text-input input[type=number],
.wc-block-components-form .wc-block-components-text-input input[type=tel],
.wc-block-components-form .wc-block-components-text-input input[type=text],
.wc-block-components-form .wc-block-components-text-input input[type=url],
.wc-block-components-text-input input[type=email],
.wc-block-components-text-input input[type=number],
.wc-block-components-text-input input[type=tel],
.wc-block-components-text-input input[type=text],
.wc-block-components-text-input input[type=url] {
  padding: 2.5em 1em 1em 0.5em !important;
}

.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,
.wc-block-components-form .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input {
  padding: 2.5em 1em 1em 0.5em !important;
}

.dark .wc-block-components-form .wc-block-components-text-input input[type=email],
.dark .wc-block-components-form .wc-block-components-text-input input[type=number],
.dark .wc-block-components-form .wc-block-components-text-input input[type=tel],
.dark .wc-block-components-form .wc-block-components-text-input input[type=text],
.dark .wc-block-components-form .wc-block-components-text-input input[type=url],
.dark .wc-block-components-text-input input[type=email],
.dark .wc-block-components-text-input input[type=number],
.dark .wc-block-components-text-input input[type=tel],
.dark .wc-block-components-text-input input[type=text],
.dark .wc-block-components-text-input input[type=url] {
  color: #fff !important;
}

.dark .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,
.dark .wc-block-components-form .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input {
  color: #fff !important;
}

.wc-block-components-notice-banner.is-info {
  background-color: var(--color-background-transparent-light) !important;
  border-color: var(--color-primary) !important;
}

.dark .wc-block-components-notice-banner.is-info {
  background-color: var(--color-dark-background-transparent-light) !important;
}


/* Account: navigation */
.woocommerce-MyAccount-navigation {
  width: 100%;
  background-color: var(--color-background);
  box-shadow: var(--box-shadow);
  border-radius: var(--border-radius);
  padding: var(--padding-small);
  transition: box-shadow var(--transition);
  border: var(--border-width) solid var(--color-primary);
}

.dark .woocommerce-MyAccount-navigation {
  background-color: var(--color-dark-background);
}

.woocommerce-MyAccount-navigation ul {
  display: flex;
  flex-direction: column;
  gap: var(--gap-medium);
}

.woocommerce-MyAccount-navigation-link {
  display: block;
  background-color: var(--color-white);
  padding: var(--padding-tiny);
  border-radius: var(--border-radius-medium);
  transition: transform var(--transition);
  text-align: center;
}

.dark .woocommerce-MyAccount-navigation-link {
  background-color: var(--body-bg-color);
  color: var(--color-dark-text);
  padding: var(--padding-tiny);
  border-radius: var(--border-radius);
  transition: transform var(--transition), box-shadow var(--transition);
  text-align: center;
}

.woocommerce-MyAccount-navigation-link:hover,
.woocommerce-MyAccount-navigation-link:focus {
  background-color: var(--color-hover-bg-primary);
  transform: var(--scale-hover);
  box-shadow: var(--box-shadow);
}

.woocommerce-MyAccount-navigation-link.is-active {
  font-weight: var(--font-weight-bold);
  background-color: var(--color-dark-background);
  color: white;
  transform: var(--scale-hover);
}

.dark .woocommerce-MyAccount-navigation-link.is-active {
  background-color: var(--color-white);
}

.woocommerce-MyAccount-navigation-link a {
  padding: var(--padding-tiny) var(--padding-small);
  display: block;
  font-size: var(--font-size-regular);
  text-decoration: none;
  color: var(--color-text);
}

.woocommerce-MyAccount-navigation-link:hover a {
  color: var(--color-white);
}

.dark .woocommerce-MyAccount-navigation-link a {
  color: var(--color-dark-text);
}

.woocommerce-MyAccount-navigation-link.is-active a {
  color: var(--color-dark-text);
}

.dark .woocommerce-MyAccount-navigation-link.is-active a {
  color: var(--color-text);
}


/* Account: content */
.woocommerce-MyAccount-content {
  padding: var(--padding-medium);
  padding-bottom: var(--padding-small);
  background-color: var(--color-background);
  border-radius: var(--border-radius);
  box-shadow: var(--box-shadow);
  max-width: 100%;
  border: var(--border-width) solid var(--color-primary);
  height: 100%;
}

.dark .woocommerce-MyAccount-content {
  color: var(--color-dark-text);
  background-color: var(--color-dark-background);
}

.woocommerce-MyAccount-content .button {
  background-color: white !important;
  padding: var(--padding-medium) !important;
  margin: var(--margin-small) !important;
  box-shadow: none !important;
  display: block;
}

.woocommerce-MyAccount-content a.edit {
  background-color: var(--color-primary);
  margin: var(--margin-small) !important;
  box-shadow: none !important;
  display: block;
  border-radius: var(--border-radius);
  max-width: fit-content;
  padding: var(--padding-tiny) var(--padding-medium) !important;
  color: white;
}

.woocommerce-MyAccount-content a.edit:hover {
  transform: var(--scale-hover);
  transition: 0.3s !important;
}

.dark .woocommerce-MyAccount-content .button {
  background-color: var(--color-primary) !important;
}

.woocommerce-MyAccount-content .button.cancel,
.woocommerce-MyAccount-content .button.delete {
  background-color: var(--color-error) !important;
}

.woocommerce-MyAccount-content .button:hover {
  transform: var(--scale-hover);
  transition: 0.3s !important;
}

.woocommerce-MyAccount-content p {
  margin-bottom: var(--margin-medium);
  line-height: 1.6;
  font-size: var(--font-size-regular);
}

.woocommerce-MyAccount-content strong {
  font-weight: var(--font-weight-bold);
}

.woocommerce-MyAccount-content p a {
  border-bottom: var(--border-width-small) solid var(--color-primary);
  transition: color var(--transition), border-bottom-color var(--transition);
  text-decoration: none;
}

.woocommerce-MyAccount-content p a:hover,
.woocommerce-MyAccount-content p a:focus {
  color: var(--color-link-hover);
  border-bottom-color: var(--color-link-hover);
}

.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-MyAccount-navigation {
  margin-bottom: var(--margin-medium);
}


/* Forms (edit account) */
.woocommerce-EditAccountForm {
  font-family: var(--font-family);
  max-width: var(--form-max-width);
  transition: var(--transition);
}

.woocommerce-EditAccountForm label {
  font-weight: var(--font-weight-bold);
  margin-bottom: var(--margin-small);
  color: var(--color-text);
  display: block;
}

.woocommerce-Input {
  width: 100%;
  color: var(--color-text) !important;
  font-size: var(--font-size-regular) !important;
  padding: var(--padding-small) !important;
  margin-bottom: var(--margin-medium) !important;
  border: var(--border-width) solid var(--color-grey) !important;
  border-radius: var(--border-radius) !important;
  background-color: var(--color-white) !important;
  transition: var(--transition) !important;
}

.dark .woocommerce-Input {
  color: var(--color-dark-text) !important;
}

.dark .woocommerce-EditAccountForm {
  background-color: var(--color-dark-background);
  color: var(--color-dark-text);
}

.dark .woocommerce-EditAccountForm label {
  color: var(--color-dark-text);
}

.dark .woocommerce-Input {
  background-color: var(--color-dark-background-transparent-light) !important;
  border-color: var(--color-dark-background-transparent-light) !important;
  color: var(--color-dark-text) !important;
}


/* Form rows and inputs */
.woocommerce-form-row--first,
.woocommerce-form-row--last {
  width: calc(50% - var(--gap-small) / 2);
  float: left;
}

.woocommerce-form-row--last {
  margin-left: var(--gap-small);
}

.woocommerce form .form-row .input-checkbox {
  display: inline-block;
}


/* Notices wrapper */
.woocommerce-notices-wrapper {
  margin-bottom: var(--margin-medium);
  padding: var(--padding-tiny);
}

.woocommerce-notices-wrapper:empty {
  display: none;
}


/* Tables & order details */
.woocommerce table.shop_table {
  background-color: var(--color-background-transparent-light) !important;
  border: var(--border-width-small) solid var(--color-primary);
  border-radius: var(--border-radius);
  padding: var(--padding-small) !important;
}

.dark .woocommerce table.shop_table {
  background-color: var(--color-dark-background-transparent-light) !important;
}

.woocommerce ul.order_details {
  margin: 0 !important;
  list-style: none;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  border: none;
  border-radius: 5px;
  background-color: var(--color-background-transparent-light);
}

.dark .woocommerce ul.order_details {
  background-color: var(--color-dark-background-transparent-light);
}

.woocommerce ul.order_details li {
  flex: 1;
  padding: 10px 15px;
  text-transform: uppercase;
  font-size: 0.8em;
  line-height: 1.4;
  border: none;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  margin: 0;
}

.woocommerce ul.order_details li:last-of-type {
  border-right: none;
}

.woocommerce ul.order_details li strong {
  margin-top: 5px;
  font-size: 1.2em;
  text-transform: none;
  color: var(--color-text);
}

.dark .woocommerce ul.order_details li strong {
  color: var(--color-dark-text);
}

.woocommerce ul.order_details li:hover {
  background-color: var(--color-primary);
  color: white;
}

.woocommerce ul.order_details li:hover strong {
  color: white;
}


/* Product page */
.woocommerce #content div.product div.summary,
.woocommerce div.product div.summary,
.woocommerce-page #content div.product div.summary,
.woocommerce-page div.product div.summary {
  float: none;
  width: 48%;
  clear: none;
  font-size: var(--font-size-tiny);
  max-width: var(--form-max-width);
  margin: var(--margin-medium) auto;
  padding: var(--padding-medium);
  background-color: var(--color-background);
  border-radius: var(--border-radius);
  box-shadow: var(--box-shadow);
  color: var(--color-text);
  transition: box-shadow var(--transition), transform var(--transition);
}

.woocommerce div.product div.summary .input-class {
  width: 100%;
  padding: var(--padding);
  margin: var(--margin-medium) auto;
  border: var(--border-width) solid var(--color-grey);
  border-radius: var(--border-radius);
  transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}

.woocommerce div.product div.summary .input-class:focus,
.woocommerce div.product div.summary .input-class:hover {
  box-shadow: var(--box-shadow) !important;
  border: var(--form-input-focus-border) !important;
  transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}

.woocommerce div.product form.cart div.quantity {
  display: none !important;
}

.woocommerce .woocommerce-breadcrumb {
  display: none !important;
}


/* Cart */
.woocommerce-cart {
  background-color: #f9f9f9;
  padding: 20px;
  border-radius: 10px;
}


/* Layout helpers */
.wc-block-checkout,
.woocommerce-order {
  max-width: 700px;
}


/* Store notice / thank you */
.woocommerce-store-notice {
  display: none !important;
}

.woocommerce-thankyou-order-received {
  display: none;
}


/* Subscription toggles */
.subscription-auto-renew-toggle__i {
  border: 2px solid var(--color-success) !important;
  background-color: var(--color-success) !important;
}

.subscription-auto-renew-toggle--off .subscription-auto-renew-toggle__i {
  border-color: var(--color-error) !important;
  background-color: var(--color-error) !important;
}


/* Media: checkout loading */
@media only screen and (max-width: 700px) {
  .wp-block-woocommerce-checkout.is-loading {
    flex-direction: column;
    margin: 0 auto 16px
  }

  .wp-block-woocommerce-checkout.is-loading .wp-block-woocommerce-checkout-fields-block,
  .wp-block-woocommerce-checkout.is-loading .wp-block-woocommerce-checkout-totals-block {
    padding: 0;
    width: 100%
  }

  .wp-block-woocommerce-checkout.is-loading .wp-block-woocommerce-checkout-totals-block .wc-block-components-panel,
  .wp-block-woocommerce-checkout.is-loading .wp-block-woocommerce-checkout-totals-block .wc-block-components-totals-item {
    padding-left: 0;
    padding-right: 0
  }

  .wp-block-woocommerce-checkout.is-loading .wp-block-woocommerce-checkout-totals-block .wc-block-components-totals-coupon-link {
    margin-left: 0;
    margin-right: 0
  }
}


/* Media: reduced motion */
@media screen and (prefers-reduced-motion:reduce) {
  .is-loading .wc-block-components-product-price:before {
    animation: none
  }
}


/* Media: small screens */
@media (max-width: 767px) {
  .wc-block-checkout {
    width: calc(100% - var(--padding-medium));
    padding: var(--padding-small);
  }

  .woocommerce-order {
    max-width: 100%;
  }
}