/*-----------------------------------------------------------------------
   Typography
-----------------------------------------------------------------------*/
.woocommerce-cart form h2,
.woocommerce-cart form h3,
.woocommerce-checkout form h2,
.woocommerce-checkout form h3,
.woocommerce-checkout .woocommerce-order h2,
.woocommerce-checkout .woocommerce-order h3,
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3 {
   font-size: 30px;
   line-height: 40px;
   color: var(--navy-blue);
}

.woocommerce-products-header,
.woocommerce-cart .wysiwyg-content ul li:before,
.woocommerce-checkout .wysiwyg-content ul li:before {
   display: none !important;
}

.woocommerce-cart .wysiwyg-content ul li,
.woocommerce-checkout .wysiwyg-content ul li {
   padding: 0 !important;
}

/*-----------------------------------------------------------------------
   WooCommerce Price
-----------------------------------------------------------------------*/

.woocommerce .price ins,
.woocommerce .price del,
.woocommerce-Price-amount,
.woocommerce-Price-amount * {
   font-size: inherit !important;
   font-family: inherit !important;
   font-weight: inherit !important;
   text-underline-offset: 3px;
   text-decoration-thickness: 0.5px;
}

.woocommerce .price del {
   opacity: 50%;
}

/*-----------------------------------------------------------------------
   Shop Notices
-----------------------------------------------------------------------*/

.woocommerce-info,
.woocommerce-error,
.woocommerce-notice,
.woocommerce-message {
   display: block !important;
   padding: 10px 15px !important;
   margin: 0 0 15px !important;
   line-height: 1.5;
   list-style: none;
   border: 0;
   outline: none !important;
   clear: both;
}

.woocommerce-info:before,
.woocommerce-error:before,
.woocommerce-message:before {
   display: none;
}

.woocommerce-error li {
   margin: 0 !important;
}

.woocommerce-info,
.woocommerce-error,
.woocommerce-notice,
.woocommerce-message,
.woocommerce-thankyou-order-received {
   background: var(--white);
   border-top: 5px solid var(--bright-blue) !important;
}

.woocommerce .woocommerce-error a,
.woocommerce .woocommerce-info a,
.woocommerce .woocommerce-message a,
.woocommerce .woocommerce-error .button,
.woocommerce .woocommerce-info .button,
.woocommerce .woocommerce-message .button {
   float: right;
   min-width: auto;
   width: fit-content;
   padding: 0 !important;
   border: 0 !important;
   border-radius: 0 !important;
   font-size: inherit !important;
   font-family: inherit !important;
   color: inherit !important;
   letter-spacing: 0 !important;
   background: transparent !important;
   text-decoration: underline !important;
   text-decoration-thickness: 1px !important;
}

.woocommerce .woocommerce-NoticeGroup {
   width: 100%;
   flex: 100%;
}

.woocommerce .woocommerce-error li a {
   display: block;
   float: none;
}

/*-----------------------------------------------------------------------
   WooCommerce Forms
-----------------------------------------------------------------------*/

.woocommerce form,
.woocommerce form fieldset,
form.woocommerce-cart-form .coupon,
.woocommerce form .woocommerce-address-fields,
.woocommerce form *[class*='fields__field-wrapper'] {
   display: flex;
   flex-wrap: wrap;
   gap: 10px 15px;
}

.woocommerce form h1,
.woocommerce form h2,
.woocommerce form h3 {
   flex: 100%;
}

.woocommerce form .form-row,
.woocommerce form p.form-row {
   width: 100%;
   margin: 0 !important;
}

.woocommerce form .form-row.form-row-first,
.woocommerce form .form-row.form-row-last {
   width: calc(50% - (15px / 2));
}

.woocommerce form .form-row[class*='invalid-required-field'] input,
.woocommerce form .form-row[class*='invalid-required-field'] select,
.woocommerce form .form-row[class*='invalid-required-field'] textarea,
.woocommerce form .form-row[class*='invalid-required-field'] .select2-container .select2-selection {
   border-color: var(--red) !important;
}

.woocommerce form p a {
   text-decoration: underline;
}

.woocommerce form .clear,
.woocommerce form button.show-password-input {
   display: none;
}

/* Login / Register */

form.woocommerce-form-login,
form.woocommerce-form-register {
   width: 100%;
   margin: auto;
   flex-direction: column;
}

form.woocommerce-form-login button[type='submit'],
form.woocommerce-form-register button[type='submit'] {
   margin-top: 15px !important;
}

/* Edit Account */

form.woocommerce-EditAccountForm p.form-row span em {
   display: none;
}

/* Responsive */

@media (max-width: 720px) {
   .woocommerce form .form-row.form-row-first,
   .woocommerce form .form-row.form-row-last {
      width: 100%;
   }
}

/*-----------------------------------------------------------------------
   Quantity Selector
-----------------------------------------------------------------------*/

.woocommerce .quantity {
   position: relative;
}

.woocommerce .quantity input::-webkit-outer-spin-button,
.woocommerce .quantity input::-webkit-inner-spin-button {
   appearance: none;
   -webkit-appearance: none;
}

.woocommerce .quantity input {
   padding-left: 45px !important;
   padding-right: 45px !important;
   text-align: center !important;
   z-index: 9;
}

.woocommerce .quantity span {
   width: 45px;
   height: 45px;
   line-height: 45px;
   text-align: center;
   position: absolute;
   top: 0;
   z-index: 99;
   cursor: pointer;
}

.woocommerce .quantity span.decrement {
   left: 0;
}

.woocommerce .quantity span.increment {
   right: 0;
}

/*-----------------------------------------------------------------------
   WooCommerce Tables
-----------------------------------------------------------------------*/

.woocommerce table thead {
   border-bottom: 1px dashed var(--silver);
}

.woocommerce table .product-remove {
   max-width: 10px;
}

.woocommerce table .product-remove a {
   text-decoration: none;
}

.woocommerce table .product-remove a:hover {
   color: var(--red);
}

.woocommerce table .product-name,
.woocommerce table .product-name a {
   font-family: var(--font-tertiary);
   font-size: 18px;
   font-weight: 400;
   line-height: 20px;
   letter-spacing: 1px;
   text-transform: uppercase;
}

.woocommerce table .product-name a {
   color: var(--black);
   text-decoration: underline;
}

.woocommerce table .product-name a:hover {
   color: var(--true-blue);
}

.woocommerce table .product-price,
.woocommerce table .product-total {
   max-width: 80px;
}

.woocommerce table tr .product-thumbnail,
.woocommerce table tr .product-quantity,
.woocommerce table tr .product-subtotal {
   display: none !important;
}

.woocommerce table .button,
.woocommerce table .button:hover,
.woocommerce table .button:focus {
   display: inline-block !important;
}

@media screen and (max-width: 720px) {
   .woocommerce table.shop_table_responsive,
   .woocommerce table.shop_table_responsive thead,
   .woocommerce table.shop_table_responsive tbody,
   .woocommerce table.shop_table_responsive tfoot,
   .woocommerce table.shop_table_responsive th,
   .woocommerce table.shop_table_responsive td,
   .woocommerce table.shop_table_responsive tr {
      position: relative;
      width: 100% !important;
      min-width: 100% !important;
      display: block;
   }

   .woocommerce table.shop_table_responsive tr,
   .woocommerce table.shop_table_responsive tr:first-of-type td:first-of-type {
      border: 0 !important;
   }

   .woocommerce table.shop_table_responsive td:not(.product-remove) {
      border-top: 1px dashed var(--silver) !important;
   }

   .woocommerce table.shop_table_responsive td[data-title] {
      padding-left: 100px;
   }

   .woocommerce table.shop_table_responsive td[data-title]:before {
      content: attr(data-title);
      font-family: var(--font-tertiary);
      font-size: 18px;
      font-weight: 400;
      line-height: 20px;
      letter-spacing: 1px;
      text-transform: uppercase;
      color: rgba(var(--black-rgb), 50%);
      position: absolute;
      top: 15px;
      left: 0;
   }

   .woocommerce table.shop_table_responsive thead,
   .woocommerce table.shop_table_responsive th {
      display: none;
   }
}

/*-----------------------------------------------------------------------
   Badges
-----------------------------------------------------------------------*/

span.onsale,
p.stock {
   display: inline-block;
   font-size: 10px !important;
   text-transform: uppercase;
   font-weight: 600;
   letter-spacing: 1px;
   color: var(--white);
   padding: 6px 10px !important;
   background: var(--black);
}

p.stock.out-of-stock {
   background: var(--red) !important;
}

/*-----------------------------------------------------------------------
   Tabs
-----------------------------------------------------------------------*/

.woocommerce-tabs ul {
   display: flex;
   flex-wrap: wrap;
}

.woocommerce-tabs ul li {
   border-bottom: 1px solid var(--black);
}

.woocommerce-tabs ul li a {
   position: relative;
   display: block;
   padding: 15px;
}

.woocommerce-tabs ul li a:after {
   content: '';
   display: block;
   position: absolute;
   left: 0;
   bottom: 0;
   width: 0;
   height: 3px;
   background: var(--black);
   transition: var(--transition);
   z-index: 9;
}

.woocommerce-tabs ul li a:hover:after,
.woocommerce-tabs ul li.active a:after {
   width: 100%;
}

.woocommerce-tabs .entry-content {
   margin-top: 20px;
}

.woocommerce-tabs .entry-content > * {
   margin: 15px 0 0;
}

/*-----------------------------------------------------------------------
   WooCommerce Archives
-----------------------------------------------------------------------*/

/* Filter */

.woocommerce-filter-header {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 15px;
   margin: 0 0 20px;
}

@media screen and (max-width: 720px) {
   .woocommerce-filter-header {
      flex-direction: column-reverse;
      align-items: flex-start;
   }
}

/* Pagination */

.woocommerce-pagination ul {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 15px;
   margin: 30px auto 0;
}

.woocommerce-pagination ul span,
.woocommerce-pagination ul a {
   display: block;
   width: 40px;
   height: 40px;
   text-align: center;
   line-height: 38px;
   background: transparent;
   border: 2px solid var(--black);
   border-radius: var(--border-radius-sm);
}

.woocommerce-pagination ul a:hover,
.woocommerce-pagination ul a:focus,
.woocommerce-pagination ul .current {
   background-color: rgba(var(--black-rgb), 5%);
}

.woocommerce-pagination ul .next,
.woocommerce-pagination ul .prev {
   font-size: 0;
   background-image: url(../img/icon-chevron-right.svg) !important;
   background-position: 50%;
   background-repeat: no-repeat;
   background-size: 14px !important;
}

.woocommerce-pagination ul .prev {
   background-image: url(../img/icon-chevron-left.svg) !important;
}

/*-----------------------------------------------------------------------
   Entry - Product
-----------------------------------------------------------------------*/

.entry-product {
   display: flex;
   flex-direction: column;
}

.entry-product h2,
.entry-product h2 * {
   font-size: 18px !important;
   letter-spacing: 0 !important;
   font-weight: 500;
}

.woocommerce .entry-product img {
   width: 100%;
   margin: 0 !important;
}

.entry-product span.onsale,
.entry-product p.stock {
   position: absolute;
   left: 10px;
   top: 10px;
}

.entry-product .button,
.woocommerce .item-post.entry-product a.wc-forward {
   margin: 15px 0 0 !important;
}

/*-----------------------------------------------------------------------
   Product Form
-----------------------------------------------------------------------*/

.woocommerce form.cart {
   margin-bottom: 10px;
   gap: 10px;
}

.woocommerce form.cart input,
.woocommerce form.cart select {
   background-color: var(--grey) !important;
}

.woocommerce form.cart input,
.woocommerce form.cart select,
.woocommerce form.cart button {
   width: 100% !important;
}

.woocommerce form.cart .quantity {
   display: none;
}

/* Addons */

.woocommerce form.cart .wc-pao-addons-container {
   width: 100%;
}

.woocommerce form.cart .wc-pao-addons-container label,
.woocommerce form.cart .wc-pao-addons-container label * {
   font-family: var(--font-tertiary);
   font-size: 18px !important;
   font-style: normal !important;
   line-height: 24px !important;
   letter-spacing: 1px !important;
   color: var(--black) !important;
}

.woocommerce form.cart .wc-pao-addons-container .wc-pao-validation-notice {
   font-size: 12px;
   margin-top: 5px;
}

.woocommerce form.cart .wc-pao-addons-container #product-addons-total,
.woocommerce form.cart .wc-pao-addons-container .validation_message {
   display: none !important;
}

/*-----------------------------------------------------------------------
   Cart
-----------------------------------------------------------------------*/

/* Coupon */

form.woocommerce-cart-form .coupon,
form.woocommerce-form-coupon {
   align-items: center;
}

form.woocommerce-cart-form .coupon input,
form.woocommerce-form-coupon .form-row input {
   line-height: 24px !important;
}

form.woocommerce-cart-form .coupon input,
form.woocommerce-cart-form .coupon *[type='submit'],
form.woocommerce-form-coupon input,
form.woocommerce-form-coupon *[type='submit'] {
   width: fit-content !important;
}

form.woocommerce-form-coupon p,
form.woocommerce-cart-form .coupon p {
   width: 100%;
}

@media screen and (min-width: 720px) {
   form.woocommerce-cart-form .coupon {
      float: left;
   }

   form.woocommerce-cart-form button[name='update_cart'] {
      float: right;
   }
}

@media screen and (max-width: 720px) {
   form.woocommerce-cart-form .coupon,
   form.woocommerce-form-coupon {
      flex-direction: column;
      margin-bottom: 10px !important;
   }

   form.woocommerce-cart-form .coupon input,
   form.woocommerce-cart-form .coupon *[type='submit'],
   form.woocommerce-form-coupon input,
   form.woocommerce-form-coupon *[type='submit'],
   form.woocommerce-cart-form button[name='update_cart'] {
      width: 100% !important;
      margin: 0 !important;
   }

   form.woocommerce-cart-form button[name='update_cart'] {
      background: var(--navy-blue) !important;
      border-color: var(--navy-blue) !important;
   }
}

/* Cart Items */

form[class*='woocommerce'] table .product-name .variation,
.woocommerce table .wc-item-meta {
   margin: 15px 0 0 !important;
}

.woocommerce table .wc-item-meta li,
.woocommerce table .wc-item-meta li strong {
   margin: 0 !important;
}

form[class*='woocommerce'] table .product-name .variation dt,
form[class*='woocommerce'] table .product-name .variation dd,
form[class*='woocommerce'] table .product-name .variation p,
.woocommerce table .wc-item-meta li,
.woocommerce table .wc-item-meta li * {
   font-family: var(--font-primary) !important;
   font-weight: 400;
   letter-spacing: 0;
   text-transform: none;
   font-size: 12px !important;
}

form[class*='woocommerce'] table .product-name .variation dt,
.woocommerce table .wc-item-meta li strong {
   float: left;
   margin-right: 5px;
   display: block;
   font-weight: 600 !important;
}

/* Totals */

.wc-proceed-to-checkout,
.woocommerce-cart .cart-collaterals {
   margin-top: 30px;
}

.woocommerce-cart .wc-proceed-to-checkout .ppc-button-wrapper,
.woocommerce-cart .wc-proceed-to-checkout .ppcp-messages {
   display: none !important;
}

.woocommerce-cart .cross-sells {
   margin-bottom: 30px;
}

.wc-proceed-to-checkout .checkout-button {
   max-width: fit-content;
   margin: 0 0 0 auto !important;
   float: none;
}

.woocommerce-cart table .includes_tax,
.woocommerce-checkout table .includes_tax {
   opacity: 50%;
}

.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot {
   border-top: 1px dashed var(--silver);
}

/* Empty Message */

.woocommerce-cart .return-to-shop .button {
   transition: var(--transition);
   font-style: normal !important;
   text-decoration: none !important;
   display: inline-block !important;
}

/*-----------------------------------------------------------------------
   Checkout
-----------------------------------------------------------------------*/

.woocommerce-checkout .wysiwyg-content form h3 {
   color: var(--navy-blue);
   margin: 30px 0 15px !important;
}

.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper {
   margin: 15px 0 !important;
}

.woocommerce-checkout form #consent_mailing_list_field {
   margin-top: 20px !important;
}

/* Accounts */

.woocommerce-checkout form.woocommerce-form-login {
   max-width: 100% !important;
}

/* Shipping */

.woocommerce ul.woocommerce-shipping-methods li {
   display: flex;
}

.woocommerce ul.woocommerce-shipping-methods li label * {
   font-weight: inherit !important;
}

/* Review / Payment */

.woocommerce-checkout .woocommerce-checkout-review-order {
   width: 100%;
}

.woocommerce-checkout .woocommerce-checkout-payment {
   margin-top: 15px;
   border-radius: var(--border-radius-sm);
   border: 1px solid var(--silver);
   background: var(--white);
   padding: 15px;
}

.woocommerce-checkout ul.wc_payment_methods {
   width: 100%;
   margin: 0 !important;
}

.woocommerce-checkout ul.wc_payment_methods li {
   margin: 0 0 15px !important;
}

.woocommerce-checkout ul.wc_payment_methods .wc_payment_method > input,
.woocommerce-checkout ul.wc_payment_methods .wc_payment_method > label {
   display: inline-block !important;
   vertical-align: middle;
}

.woocommerce-checkout ul.wc_payment_methods .payment_box {
   display: block;
   width: 100%;
   padding: 15px;
   margin: 15px 0;
   border-radius: var(--border-radius-sm);
   background: rgba(var(--silver-rgb), 30%);
}

.woocommerce-checkout .checkout-inline-error-message {
   display: none !important;
}

/* Place Order */

form.woocommerce-checkout button#place_order {
   margin-top: 15px;
}

/*-----------------------------------------------------------------------
   Thank You
-----------------------------------------------------------------------*/

.woocommerce ul.woocommerce-order-overview {
   display: flex !important;
   align-items: center;
   flex-wrap: wrap;
}

.woocommerce ul.woocommerce-order-overview li:not(:last-child) {
   padding: 0 20px 0 0 !important;
   margin: 5px 20px 5px 0 !important;
   border-right: 1px dashed var(--sky-blue);
}

.woocommerce ul.woocommerce-order-overview .wc-payment-gateway-method-logo-wrapper {
   display: inline-flex !important;
}
.woocommerce ul.woocommerce-order-overview .wc-payment-gateway-method-logo-wrapper img {
   margin: 0 5px 0 0 !important;
}

.woocommerce table .wc-item-meta,
.woocommerce table .wc-item-meta li {
   padding: 0;
}

.woocommerce table .wc-item-meta li:before {
   display: none;
}

.woocommerce table .wc-item-meta {
   display: block;
}

.woocommerce table .wc-item-meta li {
   display: flex;
   gap: 5px;
}

.woocommerce .woocommerce-customer-details {
   margin-top: 30px;
}

.woocommerce .woocommerce-customer-details dl dt {
   float: left;
   margin-right: 5px;
   display: block;
   font-weight: 600 !important;
}

.woocommerce .woocommerce-customer-details dl dt,
.woocommerce .woocommerce-customer-details dl dd {
   margin-bottom: 5px;
}

/*-----------------------------------------------------------------------
   Account
-----------------------------------------------------------------------*/

.woocommerce-account h1,
.woocommerce-account h2,
.woocommerce-account h3 {
   margin: 20px 0 !important;
}

.woocommerce-account .section-woocommerce > .flex-layout {
   gap: 60px;
}

.woocommerce-account .woocommerce-MyAccount-navigation {
   width: 200px;
   margin-right: 80px;
}

.woocommerce-account .woocommerce-MyAccount-content {
   flex: 1;
}

.woocommerce-account .woocommerce-MyAccount-content > *:not(.woocommerce-notices-wrapper) {
   margin: 0 0 15px !important;
}

@media screen and (max-width: 720px) {
   .woocommerce-account .woocommerce-MyAccount-navigation,
   .woocommerce-account .woocommerce-MyAccount-content {
      flex: 100%;
      width: 100%;
   }

   .woocommerce-account .woocommerce-MyAccount-navigation {
      margin: 0 0 40px 0;
   }
}

/* Navigation */

.woocommerce-MyAccount-navigation ul li a {
   position: relative;
   display: block;
   padding: 15px;
   background: var(--white);
}

.woocommerce-MyAccount-navigation ul li a:after {
   content: '';
   display: block;
   position: absolute;
   width: 5px;
   top: 0;
   left: 0;
   height: 0;
   background: var(--bright-blue);
   transition: var(--transition);
}

.woocommerce-MyAccount-navigation ul li:hover a:after,
.woocommerce-MyAccount-navigation ul li.is-active a:after {
   height: 100%;
}

/* Orders */

.woocommerce table.account-orders-table th,
.woocommerce table.account-orders-table td {
   vertical-align: middle !important;
}

.woocommerce ol.woocommerce-OrderUpdates {
   margin: 0;
}

.woocommerce ol.woocommerce-OrderUpdates li {
   padding: 15px;
   border: 1px solid rgba(var(--black-rgb), 15%);
   margin-bottom: 10px;
}

.woocommerce ol.woocommerce-OrderUpdates li p.meta {
   font-size: 12px !important;
   opacity: 50%;
   margin-bottom: 10px;
}

.woocommerce-order-details .order-again {
   margin: 30px 0;
}

/* Addresses */

.woocommerce address {
   padding: 15px;
   background: var(--white);
   border-radius: var(--border-radius-sm);
   border: 1px solid var(--silver);
}

.ace-theme .woocommerce address *,
.ace-theme .woocommerce .wysiwyg-content address * {
   margin: 0 !important;
}

.woocommerce-Address-title > * {
   display: block;
   margin: 0 0 15px !important;
}

.woocommerce-Address-title a {
   text-decoration: underline;
}
