/* EC Catering WooCommerce templates */

.ec-product-single,
.ec-shop-page {
  color: var(--ec-color-text, #222);
  font-family: "Mulish", Arial, sans-serif;
}

.ec-product-single__inner,
.ec-shop-products__inner,
.ec-shop-page__fallback-head {
  width: var(--ec-container);
  margin-inline: auto;
}

/* ------------------------------
   Single product
   ------------------------------ */
.ec-product-single {
  padding: 78rem 0 96rem;
}

.ec-product-single__main {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(430rem, .92fr);
  gap: 72rem;
  align-items: start;
}

.ec-product-single__gallery {
  min-width: 0;
}

.ec-product-single__gallery .onsale {
  position: absolute;
  z-index: 3;
  top: 18rem;
  left: 18rem;
  min-width: auto;
  min-height: auto;
  margin: 0;
  padding: 8rem 14rem;
  border-radius: 0;
  background: var(--ec-color-accent, #BB9C69);
  color: #fff;
  font-size: 13rem;
  font-weight: 700;
  line-height: 1.2;
}

.ec-product-single__gallery .woocommerce-product-gallery {
  float: none !important;
  width: 100% !important;
  margin: 0 !important;
}

.ec-product-single__gallery .woocommerce-product-gallery__wrapper {
  margin: 0;
}

.ec-product-single__gallery .woocommerce-product-gallery__image {
  background: #f7f7f7;
  overflow: hidden;
}

.ec-product-single__gallery .woocommerce-product-gallery__image a,
.ec-product-single__gallery .woocommerce-product-gallery__image img {
  display: block;
  width: 100%;
}

.ec-product-single__gallery .woocommerce-product-gallery__image img {
  aspect-ratio: 1 / .78;
  height: auto;
  object-fit: cover;
}

.ec-product-single__gallery .flex-control-thumbs {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12rem;
  margin: 14rem 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.ec-product-single__gallery .flex-control-thumbs li {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
}

.ec-product-single__gallery .flex-control-thumbs img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / .78;
  object-fit: cover;
  border: 1px solid transparent;
  opacity: .64;
  cursor: pointer;
  transition: opacity .2s ease, border-color .2s ease;
}

.ec-product-single__gallery .flex-control-thumbs img.flex-active,
.ec-product-single__gallery .flex-control-thumbs img:hover {
  border-color: var(--ec-color-accent, #BB9C69);
  opacity: 1;
}

.ec-product-single__summary {
  padding-top: 6rem;
}

.ec-product-single__summary .product_title {
  margin: 0 0 22rem;
  font-family: "Philosopher", Georgia, serif;
  font-size: 52rem;
  font-weight: 700;
  line-height: 1.08;
  color: var(--ec-color-text, #222);
}

.ec-product-single__summary .woocommerce-product-rating {
  display: flex;
  align-items: center;
  gap: 12rem;
  margin: 0 0 18rem;
}

.ec-product-single__summary .price {
  display: block;
  margin: 0 0 26rem;
  color: var(--ec-color-accent, #BB9C69) !important;
  font-size: 30rem;
  font-weight: 700;
  line-height: 1.2;
}

.ec-product-single__summary .price del {
  margin-right: 10rem;
  color: #999;
  font-size: .72em;
  font-weight: 500;
  opacity: .85;
}

.ec-product-single__summary .woocommerce-product-details__short-description {
  margin: 0 0 30rem;
  color: #444;
  font-size: 17rem;
  line-height: 1.65;
}

.ec-product-single__summary .woocommerce-product-details__short-description > * + * {
  margin-top: 12rem;
}

.ec-product-single__summary form.cart {
  display: flex;
  align-items: stretch;
  gap: 12rem;
  margin: 0 0 26rem !important;
}

.ec-product-single__summary form.cart .quantity {
  margin: 0 !important;
}

.ec-product-single__summary form.cart .qty {
  width: 92rem;
  height: 58rem;
  padding: 0 14rem;
  border: 1px solid #ddd;
  border-radius: 0;
  background: #fff;
  color: #222;
  text-align: center;
}

.ec-product-single__summary .single_add_to_cart_button {
  min-width: 250rem;
  min-height: 58rem;
  padding: 15rem 28rem !important;
  border: 1px solid var(--ec-color-accent, #BB9C69) !important;
  border-radius: 0 !important;
  background: var(--ec-color-accent, #BB9C69) !important;
  color: #fff !important;
  font-family: "Mulish", Arial, sans-serif;
  font-size: 14rem !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  letter-spacing: 1rem;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .2s ease, border-color .2s ease;
}

.ec-product-single__summary .single_add_to_cart_button:hover {
  border-color: var(--ec-color-accent-hover, #A9874D) !important;
  background: var(--ec-color-accent-hover, #A9874D) !important;
}

.ec-product-single__summary .product_meta {
  padding-top: 20rem;
  border-top: 1px solid var(--ec-color-line, #F0F0F0);
  color: #777;
  font-size: 14rem;
  line-height: 1.7;
}

.ec-product-single__summary .product_meta > span {
  display: block;
}

.ec-product-single__summary .product_meta a {
  color: inherit;
}

.ec-product-description {
  margin-top: 72rem;
  padding-top: 52rem;
  border-top: 1px solid var(--ec-color-line, #F0F0F0);
}

.ec-product-description h2,
.ec-related-products__title {
  margin: 0 0 30rem;
  font-family: "Philosopher", Georgia, serif;
  font-size: 42rem;
  font-weight: 700;
  line-height: 1.15;
}

.ec-product-description__content {
  max-width: 1120rem;
  color: #444;
  font-size: 17rem;
  line-height: 1.7;
}

.ec-product-description__content > * + * {
  margin-top: 16rem;
}

/* ------------------------------
   Product cards: related + shop
   ------------------------------ */
.ec-related-products {
  margin-top: 82rem;
  padding-top: 52rem;
  border-top: 1px solid var(--ec-color-line, #F0F0F0);
}

.ec-related-products ul.products,
.ec-shop-products ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28rem;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.ec-related-products ul.products::before,
.ec-related-products ul.products::after,
.ec-shop-products ul.products::before,
.ec-shop-products ul.products::after {
  display: none !important;
}

.ec-related-products ul.products li.product,
.ec-shop-products ul.products li.product {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 0 24rem;
  border: 1px solid #eee;
  background: #fff;
}

.ec-related-products ul.products li.product a.woocommerce-LoopProduct-link,
.ec-shop-products ul.products li.product a.woocommerce-LoopProduct-link {
  display: block;
  text-decoration: none;
}

.ec-related-products ul.products li.product img,
.ec-shop-products ul.products li.product img {
  display: block;
  width: 100% !important;
  aspect-ratio: 1 / .72;
  margin: 0 0 18rem !important;
  object-fit: cover;
}

.ec-related-products ul.products li.product .woocommerce-loop-product__title,
.ec-shop-products ul.products li.product .woocommerce-loop-product__title {
  margin: 0;
  padding: 0 20rem !important;
  font-family: "Mulish", Arial, sans-serif;
  font-size: 18rem !important;
  font-weight: 700;
  line-height: 1.3;
  color: #222;
}

.ec-related-products ul.products li.product .price,
.ec-shop-products ul.products li.product .price {
  display: block;
  margin: 12rem 0 0 !important;
  padding: 0 20rem;
  color: #222 !important;
  font-size: 18rem !important;
  font-weight: 700 !important;
}

.ec-related-products ul.products li.product .button,
.ec-shop-products ul.products li.product .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48rem;
  margin: 18rem 20rem 0 !important;
  padding: 12rem 20rem !important;
  border-radius: 0 !important;
  background: var(--ec-color-accent, #BB9C69) !important;
  color: #fff !important;
  font-size: 13rem !important;
  font-weight: 700 !important;
  letter-spacing: .7rem;
  text-transform: uppercase;
}

/* ------------------------------
   Shop archive
   ------------------------------ */
.ec-shop-page {
  min-height: 300rem;
}

/* On the WooCommerce Shop archive the EC product-tabs block acts as the
   complete catalog template. Give it the same page-level breathing room as
   the rest of the site without changing this block on landing pages. */
.ec-shop-page [data-eccb-layout="product_tabs"] > .eccb-product-tabs {
  padding: 72rem 0 100rem;
}

.ec-shop-page [data-eccb-layout="product_tabs"]:first-child > .eccb-product-tabs {
  padding-top: 72rem;
}

.ec-shop-page__fallback-head {
  padding: 62rem 0 34rem;
}

.ec-shop-page__fallback-head h1 {
  margin: 0;
  font-family: "Philosopher", Georgia, serif;
  font-size: 54rem;
  line-height: 1.1;
}

.ec-shop-products {
  padding: 58rem 0 88rem;
}

.ec-shop-products__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24rem;
  margin-bottom: 28rem;
}

.ec-shop-products__toolbar .woocommerce-result-count {
  margin: 0;
  color: #777;
  font-size: 14rem;
}

.ec-shop-products__toolbar .woocommerce-ordering {
  margin: 0;
}

.ec-shop-products__toolbar select {
  min-width: 230rem;
  height: 44rem;
  padding: 0 38rem 0 14rem;
  border: 1px solid #ddd;
  border-radius: 0;
  background: #fff;
}

.ec-shop-products .woocommerce-pagination {
  margin-top: 40rem;
}

.ec-shop-products .woocommerce-pagination ul.page-numbers {
  display: flex;
  justify-content: center;
  gap: 8rem;
  border: 0 !important;
}

.ec-shop-products .woocommerce-pagination ul.page-numbers li {
  border: 0 !important;
}

.ec-shop-products .woocommerce-pagination .page-numbers a,
.ec-shop-products .woocommerce-pagination .page-numbers span {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 42rem;
  height: 42rem;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid #ddd;
  background: #fff;
  color: #222;
}

.ec-shop-products .woocommerce-pagination .page-numbers .current {
  border-color: var(--ec-color-accent, #BB9C69);
  background: var(--ec-color-accent, #BB9C69);
  color: #fff;
}

@media (max-width: 1024px) {
  .ec-product-single__main {
    grid-template-columns: 1fr 1fr;
    gap: 40rem;
  }

  .ec-product-single__summary .product_title {
    font-size: 42rem;
  }

  .ec-related-products ul.products,
  .ec-shop-products ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .ec-product-single {
    padding: 32rem 0 54rem;
  }

  .ec-product-single__main {
    grid-template-columns: 1fr;
    gap: 30rem;
  }

  .ec-product-single__gallery {
    order: 1;
  }

  .ec-product-single__summary {
    order: 2;
    padding-top: 0;
  }

  .ec-product-single__gallery .flex-control-thumbs {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8rem;
  }

  .ec-product-single__summary .product_title {
    margin-bottom: 16rem;
    font-size: 34rem;
  }

  .ec-product-single__summary .price {
    margin-bottom: 20rem;
    font-size: 25rem;
  }

  .ec-product-single__summary .woocommerce-product-details__short-description {
    margin-bottom: 24rem;
    font-size: 15rem;
  }

  .ec-product-single__summary form.cart {
    gap: 8rem;
  }

  .ec-product-single__summary form.cart .qty {
    width: 72rem;
    height: 52rem;
  }

  .ec-product-single__summary .single_add_to_cart_button {
    min-width: 0;
    min-height: 52rem;
    flex: 1;
    padding-inline: 16rem !important;
    font-size: 12rem !important;
  }

  .ec-product-description {
    margin-top: 44rem;
    padding-top: 34rem;
  }

  .ec-product-description h2,
  .ec-related-products__title {
    margin-bottom: 22rem;
    font-size: 30rem;
  }

  .ec-product-description__content {
    font-size: 15rem;
  }

  .ec-related-products {
    margin-top: 48rem;
    padding-top: 34rem;
  }

  .ec-related-products ul.products,
  .ec-shop-products ul.products {
    grid-template-columns: 1fr;
    gap: 18rem;
  }

  .ec-shop-page__fallback-head {
    padding: 34rem 0 22rem;
  }

  .ec-shop-page__fallback-head h1 {
    font-size: 36rem;
  }

  .ec-shop-products {
    padding: 34rem 0 54rem;
  }

  .ec-shop-products__toolbar {
    align-items: flex-start;
    flex-direction: column;
    gap: 12rem;
    margin-bottom: 20rem;
  }

  .ec-shop-products__toolbar .woocommerce-ordering,
  .ec-shop-products__toolbar select {
    width: 100%;
  }
}

/* =========================================================
   Cart — compact catering order list
   ========================================================= */

body.woocommerce-cart .ec-woocommerce-shell,
body.woocommerce-checkout .ec-woocommerce-shell {
  padding-top: 58rem;
  padding-bottom: 86rem;
}

body.woocommerce-cart .woocommerce > h1,
body.woocommerce-checkout .woocommerce > h1,
body.woocommerce-checkout .woocommerce-billing-fields > h3,
body.woocommerce-checkout #order_review_heading {
  font-family: "Philosopher", Georgia, serif;
  color: #222;
}

body.woocommerce-cart .woocommerce-cart-form {
  margin-bottom: 42rem;
}

body.woocommerce-cart table.shop_table {
  width: 100%;
  margin: 0;
  border: 0;
  border-collapse: collapse;
  border-radius: 0;
  background: #fff;
}

body.woocommerce-cart table.shop_table thead th {
  padding: 0 14rem 14rem;
  border: 0;
  border-bottom: 1rem solid #eee8de;
  color: #222;
  font-size: 16rem;
  line-height: 1.25;
  font-weight: 700;
  text-transform: none;
}

body.woocommerce-cart table.shop_table tbody td {
  padding: 11rem 14rem;
  border: 0;
  border-bottom: 1rem solid #f1eee8;
  vertical-align: middle;
  color: #242424;
  font-size: 15rem;
  line-height: 1.35;
}

body.woocommerce-cart table.shop_table .product-remove {
  width: 42rem;
  padding-left: 4rem;
  padding-right: 6rem;
  text-align: center;
}

body.woocommerce-cart table.shop_table .product-remove a.remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28rem;
  height: 28rem;
  margin: 0 auto;
  border: 0;
  border-radius: 0;
  background: transparent !important;
  color: #d60000 !important;
  font: 400 28rem/1 Arial, sans-serif;
  text-decoration: none;
}

body.woocommerce-cart table.shop_table .product-remove a.remove:hover {
  color: #9e0000 !important;
  transform: scale(1.06);
}

body.woocommerce-cart table.shop_table .product-thumbnail {
  width: 58rem;
  padding-left: 4rem;
  padding-right: 8rem;
}

body.woocommerce-cart table.shop_table .product-thumbnail img {
  display: block;
  width: 42rem;
  height: 42rem;
  margin: 0;
  object-fit: cover;
  background: #f5f5f5;
}

body.woocommerce-cart table.shop_table .product-name {
  min-width: 360rem;
  font-weight: 500;
}

body.woocommerce-cart table.shop_table .product-name a {
  color: #222;
  text-decoration: none;
}

body.woocommerce-cart table.shop_table .product-name a:hover {
  color: var(--ec-color-accent-hover, #A9874D);
}

body.woocommerce-cart table.shop_table .product-price,
body.woocommerce-cart table.shop_table .product-subtotal {
  width: 190rem;
  white-space: nowrap;
  font-weight: 600;
}

body.woocommerce-cart table.shop_table .product-quantity {
  width: 170rem;
}

body.woocommerce-cart table.shop_table .quantity .qty {
  width: 72rem;
  height: 36rem;
  padding: 0 8rem;
  border: 1rem solid #dedede;
  border-radius: 0;
  background: #fff;
  color: #222;
  font-size: 14rem;
  text-align: center;
  box-shadow: none;
}

body.woocommerce-cart table.shop_table td.actions {
  padding: 20rem 0 0;
  border-bottom: 0;
}

body.woocommerce-cart table.shop_table td.actions .coupon {
  display: flex;
  gap: 10rem;
}

body.woocommerce-cart table.shop_table td.actions input.input-text {
  width: 230rem !important;
  height: 46rem;
  padding: 0 14rem;
  border: 1rem solid #d8d4cc;
  border-radius: 0;
}

body.woocommerce-cart .button,
body.woocommerce-cart a.button,
body.woocommerce-checkout .button,
body.woocommerce-checkout button.button,
body.woocommerce-checkout #payment #place_order {
  min-height: 46rem;
  padding: 13rem 22rem !important;
  border: 1rem solid var(--ec-color-accent, #BB9C69) !important;
  border-radius: 0 !important;
  background: var(--ec-color-accent, #BB9C69) !important;
  color: #fff !important;
  font-family: "Mulish", Arial, sans-serif;
  font-size: 13rem !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
  letter-spacing: 1rem;
  text-transform: uppercase;
  box-shadow: none !important;
}

body.woocommerce-cart .button:hover,
body.woocommerce-cart a.button:hover,
body.woocommerce-checkout .button:hover,
body.woocommerce-checkout button.button:hover,
body.woocommerce-checkout #payment #place_order:hover {
  border-color: var(--ec-color-accent-hover, #A9874D) !important;
  background: var(--ec-color-accent-hover, #A9874D) !important;
}

body.woocommerce-cart .cart-collaterals {
  display: flex;
  justify-content: flex-end;
  margin-top: 34rem;
}

body.woocommerce-cart .cart-collaterals .cart_totals {
  float: none;
  width: min(520rem, 100%);
  padding: 28rem 30rem 30rem;
  background: #f9f7f2;
}

body.woocommerce-cart .cart_totals h2 {
  margin: 0 0 20rem;
  font-family: "Philosopher", Georgia, serif;
  font-size: 30rem;
  line-height: 1.15;
  font-weight: 400;
}

body.woocommerce-cart .cart_totals table.shop_table th,
body.woocommerce-cart .cart_totals table.shop_table td {
  padding: 13rem 0;
  border-bottom: 1rem solid #e8e1d5;
}

body.woocommerce-cart .cart_totals table.shop_table td {
  text-align: right;
}

body.woocommerce-cart .wc-proceed-to-checkout {
  padding: 22rem 0 0;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 0;
}

/* =========================================================
   Checkout — payment/delivery data
   ========================================================= */

body.woocommerce-checkout form.checkout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(400rem, 0.62fr);
  column-gap: 56rem;
  align-items: start;
}

body.woocommerce-checkout #customer_details {
  grid-column: 1;
  grid-row: 1 / span 2;
  width: 100%;
  margin: 0;
}

body.woocommerce-checkout #customer_details .col-1 {
  float: none;
  width: 100%;
}

body.woocommerce-checkout #customer_details .col-2 {
  display: none;
}

body.woocommerce-checkout .woocommerce-billing-fields > h3 {
  margin: 0 0 34rem;
  font-size: 38rem;
  line-height: 1.1;
  font-weight: 700;
}

body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
  display: flow-root;
}

body.woocommerce-checkout .form-row {
  margin: 0 0 25rem;
  padding: 0;
}

body.woocommerce-checkout .form-row-first,
body.woocommerce-checkout .form-row-last {
  width: calc(50% - 16rem);
}

body.woocommerce-checkout .form-row-first {
  float: left;
  clear: left;
}

body.woocommerce-checkout .form-row-last {
  float: right;
  clear: right;
}

body.woocommerce-checkout .form-row-wide {
  clear: both;
  width: 100%;
}

body.woocommerce-checkout .form-row label {
  display: block;
  margin: 0 0 9rem;
  color: #161616;
  font-size: 18rem;
  line-height: 1.25;
  font-weight: 700;
}

body.woocommerce-checkout .form-row .required {
  color: #ad0000;
  text-decoration: none;
}

body.woocommerce-checkout .input-text,
body.woocommerce-checkout input[type="text"],
body.woocommerce-checkout input[type="tel"],
body.woocommerce-checkout input[type="email"],
body.woocommerce-checkout input[type="date"],
body.woocommerce-checkout input[type="time"],
body.woocommerce-checkout textarea,
body.woocommerce-checkout select,
body.woocommerce-checkout .select2-container .select2-selection--single {
  width: 100%;
  min-height: 56rem;
  margin: 0;
  padding: 0 16rem;
  border: 1rem solid transparent;
  border-radius: 0;
  background: #f7f7f7;
  color: #222;
  font-family: "Mulish", Arial, sans-serif;
  font-size: 16rem;
  line-height: 54rem;
  box-shadow: none;
  outline: none;
}

body.woocommerce-checkout textarea {
  min-height: 82rem;
  padding-top: 13rem;
  padding-bottom: 13rem;
  line-height: 1.45;
  resize: vertical;
}

body.woocommerce-checkout input[type="date"],
body.woocommerce-checkout input[type="time"] {
  color-scheme: light;
}

body.woocommerce-checkout .input-text:focus,
body.woocommerce-checkout input:focus,
body.woocommerce-checkout textarea:focus,
body.woocommerce-checkout select:focus,
body.woocommerce-checkout .select2-container--focus .select2-selection--single {
  border-color: var(--ec-color-accent, #BB9C69);
  background: #fff;
}

body.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered {
  padding: 0;
  line-height: 54rem;
}

body.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow {
  top: 50%;
  right: 10rem;
  transform: translateY(-50%);
}

body.woocommerce-checkout .ec-checkout-privacy {
  display: block;
  padding-top: 3rem;
}

body.woocommerce-checkout .ec-checkout-privacy label {
  display: grid;
  grid-template-columns: 16rem minmax(0, 1fr);
  align-items: start;
  gap: 8rem;
  margin: 0;
  font-size: 15rem;
  line-height: 1.4;
  font-weight: 400;
}

body.woocommerce-checkout .ec-checkout-privacy input[type="checkbox"] {
  width: 14rem;
  height: 14rem;
  margin: 3rem 0 0;
  accent-color: var(--ec-color-accent, #BB9C69);
}

body.woocommerce-checkout .ec-checkout-privacy a {
  color: var(--ec-color-accent, #BB9C69);
}

body.woocommerce-checkout #order_review_heading {
  grid-column: 2;
  grid-row: 1;
  margin: 0 0 18rem;
  font-size: 32rem;
  line-height: 1.1;
  font-weight: 700;
}

body.woocommerce-checkout #order_review {
  grid-column: 2;
  grid-row: 2;
  position: sticky;
  top: 24rem;
  padding: 26rem 28rem 30rem;
  background: #f9f7f2;
}

body.woocommerce-checkout #order_review table.shop_table {
  margin: 0 0 22rem;
  border: 0;
  border-collapse: collapse;
}

body.woocommerce-checkout #order_review table.shop_table th,
body.woocommerce-checkout #order_review table.shop_table td {
  padding: 12rem 0;
  border: 0;
  border-bottom: 1rem solid #e8e1d5;
  font-size: 14rem;
  line-height: 1.4;
}

body.woocommerce-checkout #order_review table.shop_table td.product-total,
body.woocommerce-checkout #order_review table.shop_table tfoot td {
  padding-left: 16rem;
  text-align: right;
  white-space: nowrap;
}

body.woocommerce-checkout #payment {
  border-radius: 0;
  background: transparent;
}

body.woocommerce-checkout #payment ul.payment_methods {
  padding: 0 0 18rem;
  border-bottom: 1rem solid #e8e1d5;
}

body.woocommerce-checkout #payment div.form-row {
  margin: 0;
  padding: 22rem 0 0;
}

body.woocommerce-checkout #payment #place_order {
  float: none;
  width: 100%;
  margin: 0;
}

body.woocommerce-checkout .woocommerce-privacy-policy-text,
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
  font-size: 13rem;
  line-height: 1.45;
}

body.woocommerce-checkout .woocommerce-error,
body.woocommerce-checkout .woocommerce-info,
body.woocommerce-checkout .woocommerce-message,
body.woocommerce-cart .woocommerce-error,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-message {
  border-top-color: var(--ec-color-accent, #BB9C69);
  background: #f9f7f2;
}

@media (max-width: 1024px) {
  body.woocommerce-checkout form.checkout {
    grid-template-columns: 1fr;
    row-gap: 34rem;
  }

  body.woocommerce-checkout #customer_details,
  body.woocommerce-checkout #order_review_heading,
  body.woocommerce-checkout #order_review {
    grid-column: 1;
    grid-row: auto;
  }

  body.woocommerce-checkout #order_review {
    position: static;
  }
}

@media (max-width: 767px) {
  body.woocommerce-cart .ec-woocommerce-shell,
  body.woocommerce-checkout .ec-woocommerce-shell {
    padding-top: 28rem;
    padding-bottom: 56rem;
  }

  body.woocommerce-cart table.shop_table_responsive thead {
    display: none;
  }

  body.woocommerce-cart table.shop_table_responsive tbody tr.cart_item {
    position: relative;
    display: grid;
    grid-template-columns: 38rem 58rem minmax(0, 1fr);
    gap: 0 8rem;
    padding: 14rem 0;
    border-bottom: 1rem solid #eee8de;
  }

  body.woocommerce-cart table.shop_table_responsive tbody tr.cart_item td {
    display: block;
    width: auto;
    min-width: 0;
    padding: 3rem 0;
    border: 0;
    text-align: left !important;
  }

  body.woocommerce-cart table.shop_table_responsive tbody tr.cart_item td::before {
    display: none;
  }

  body.woocommerce-cart table.shop_table .product-remove {
    grid-column: 1;
    grid-row: 1 / span 3;
    align-self: center;
  }

  body.woocommerce-cart table.shop_table .product-thumbnail {
    grid-column: 2;
    grid-row: 1 / span 3;
    align-self: start;
  }

  body.woocommerce-cart table.shop_table .product-thumbnail img {
    width: 52rem;
    height: 52rem;
  }

  body.woocommerce-cart table.shop_table .product-name,
  body.woocommerce-cart table.shop_table .product-price,
  body.woocommerce-cart table.shop_table .product-quantity,
  body.woocommerce-cart table.shop_table .product-subtotal {
    grid-column: 3;
  }

  body.woocommerce-cart table.shop_table .product-name {
    font-size: 14rem;
  }

  body.woocommerce-cart table.shop_table .product-price,
  body.woocommerce-cart table.shop_table .product-subtotal {
    width: auto;
    font-size: 13rem;
  }

  body.woocommerce-cart table.shop_table .product-quantity {
    width: auto;
  }

  body.woocommerce-cart table.shop_table td.actions .coupon {
    float: none;
    width: 100%;
  }

  body.woocommerce-cart table.shop_table td.actions input.input-text {
    flex: 1;
    width: auto !important;
    min-width: 0;
  }

  body.woocommerce-cart table.shop_table td.actions > .button {
    width: 100%;
    margin-top: 10rem;
  }

  body.woocommerce-cart .cart-collaterals,
  body.woocommerce-cart .cart-collaterals .cart_totals {
    width: 100%;
  }

  body.woocommerce-cart .cart-collaterals .cart_totals {
    padding: 22rem 18rem 24rem;
  }

  body.woocommerce-checkout .woocommerce-billing-fields > h3 {
    margin-bottom: 26rem;
    font-size: 30rem;
  }

  body.woocommerce-checkout .form-row-first,
  body.woocommerce-checkout .form-row-last {
    float: none;
    clear: both;
    width: 100%;
  }

  body.woocommerce-checkout .form-row {
    margin-bottom: 18rem;
  }

  body.woocommerce-checkout .form-row label {
    margin-bottom: 7rem;
    font-size: 15rem;
  }

  body.woocommerce-checkout .input-text,
  body.woocommerce-checkout input[type="text"],
  body.woocommerce-checkout input[type="tel"],
  body.woocommerce-checkout input[type="email"],
  body.woocommerce-checkout input[type="date"],
  body.woocommerce-checkout input[type="time"],
  body.woocommerce-checkout textarea,
  body.woocommerce-checkout select,
  body.woocommerce-checkout .select2-container .select2-selection--single {
    min-height: 52rem;
    padding-inline: 14rem;
    font-size: 15rem;
    line-height: 50rem;
  }

  body.woocommerce-checkout textarea {
    line-height: 1.45;
  }

  body.woocommerce-checkout #order_review_heading {
    font-size: 28rem;
  }

  body.woocommerce-checkout #order_review {
    padding: 22rem 18rem 24rem;
  }
}


/* =========================================================
   Cart / checkout page shell — project REM layout
   ========================================================= */
body.woocommerce-cart .ec-woocommerce-page,
body.woocommerce-checkout .ec-woocommerce-page {
  width: 100%;
  padding: 64rem 0 92rem;
  background: #fff;
}

body.woocommerce-cart .ec-woocommerce-page__inner,
body.woocommerce-checkout .ec-woocommerce-page__inner {
  width: min(1544rem, calc(100vw - 80rem));
  margin: 0 auto;
}

body.woocommerce-cart .ec-woocommerce-page__inner > .woocommerce,
body.woocommerce-checkout .ec-woocommerce-page__inner > .woocommerce {
  width: 100%;
  margin: 0;
}

/* Kill Gutenberg/Woo Blocks outer spacing if old page content or fragments
   accidentally leak in. The project uses the classic shortcode markup here. */
body.woocommerce-cart .wp-block-woocommerce-cart,
body.woocommerce-checkout .wp-block-woocommerce-checkout,
body.woocommerce-cart .wc-block-cart,
body.woocommerce-checkout .wc-block-checkout {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

/* Cart stays intentionally compact: one thin row per product. */
body.woocommerce-cart .ec-woocommerce-page table.shop_table {
  table-layout: auto;
}

body.woocommerce-cart .ec-woocommerce-page table.shop_table thead th {
  padding-top: 0;
  padding-bottom: 15rem;
}

body.woocommerce-cart .ec-woocommerce-page table.shop_table tbody tr.cart_item {
  min-height: 64rem;
}

body.woocommerce-cart .ec-woocommerce-page table.shop_table tbody tr.cart_item td {
  padding-top: 10rem;
  padding-bottom: 10rem;
}

body.woocommerce-cart .ec-woocommerce-page table.shop_table .product-thumbnail img {
  width: 44rem;
  height: 44rem;
}

body.woocommerce-cart .ec-woocommerce-page table.shop_table .quantity .qty {
  width: 68rem;
  height: 36rem;
}

/* Checkout: left data form + right order card, all dimensions in project rem. */
body.woocommerce-checkout .ec-woocommerce-page form.checkout {
  width: 100%;
  margin: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(390rem, 0.56fr);
  column-gap: 72rem;
  align-items: start;
}

body.woocommerce-checkout .ec-woocommerce-page #customer_details,
body.woocommerce-checkout .ec-woocommerce-page #order_review,
body.woocommerce-checkout .ec-woocommerce-page #order_review_heading {
  min-width: 0;
}

body.woocommerce-checkout .ec-woocommerce-page .woocommerce-billing-fields > h3 {
  margin-bottom: 38rem;
  font-size: 40rem;
}

body.woocommerce-checkout .ec-woocommerce-page .form-row label {
  margin-bottom: 9rem;
  font-size: 18rem;
}

body.woocommerce-checkout .ec-woocommerce-page .input-text,
body.woocommerce-checkout .ec-woocommerce-page input[type="text"],
body.woocommerce-checkout .ec-woocommerce-page input[type="tel"],
body.woocommerce-checkout .ec-woocommerce-page input[type="email"],
body.woocommerce-checkout .ec-woocommerce-page input[type="date"],
body.woocommerce-checkout .ec-woocommerce-page input[type="time"],
body.woocommerce-checkout .ec-woocommerce-page textarea,
body.woocommerce-checkout .ec-woocommerce-page select,
body.woocommerce-checkout .ec-woocommerce-page .select2-container .select2-selection--single {
  min-height: 56rem;
  padding-inline: 16rem;
  font-size: 16rem;
}

@media (max-width: 1100px) {
  body.woocommerce-cart .ec-woocommerce-page__inner,
  body.woocommerce-checkout .ec-woocommerce-page__inner {
    width: calc(100vw - 48rem);
  }

  body.woocommerce-checkout .ec-woocommerce-page form.checkout {
    grid-template-columns: 1fr;
    row-gap: 38rem;
  }
}

@media (max-width: 767px) {
  body.woocommerce-cart .ec-woocommerce-page,
  body.woocommerce-checkout .ec-woocommerce-page {
    padding: 28rem 0 64rem;
  }

  body.woocommerce-cart .ec-woocommerce-page__inner,
  body.woocommerce-checkout .ec-woocommerce-page__inner {
    width: calc(100vw - 40rem);
  }
}

/* =========================================================
   Checkout polish v27
   ========================================================= */

/* WooCommerce itself appends the optional marker. Keep it once and in one line. */
body.woocommerce-checkout .ec-telegram-field > label,
body.woocommerce-checkout .ec-delivery-date-field > label,
body.woocommerce-checkout .ec-delivery-time-field > label,
body.woocommerce-checkout #ec_order_note_field > label,
body.woocommerce-checkout #ec_payer_type_field > label {
  white-space: nowrap;
}

body.woocommerce-checkout .form-row label .optional {
  font-size: .9em;
  font-weight: 400;
  color: #5f5f5f;
}

/* Keep order heading and card together instead of letting CSS Grid create a tall empty row. */
body.woocommerce-checkout .ec-woocommerce-page #customer_details {
  grid-row: 1;
}

body.woocommerce-checkout .ec-woocommerce-page #order_review_heading {
  grid-column: 2;
  grid-row: 1;
  align-self: start;
  margin: 0;
}

body.woocommerce-checkout .ec-woocommerce-page #order_review {
  grid-column: 2;
  grid-row: 1;
  align-self: start;
  margin-top: 62rem;
}

/* Native HTML date/time controls, visually integrated with the site. */
body.woocommerce-checkout .ec-delivery-date-field .woocommerce-input-wrapper,
body.woocommerce-checkout .ec-delivery-time-field .woocommerce-input-wrapper {
  position: relative;
  display: block;
}

body.woocommerce-checkout .ec-delivery-date-field input[type="date"],
body.woocommerce-checkout .ec-delivery-time-field input[type="time"] {
  min-height: 58rem;
  padding: 0 54rem 0 16rem;
  border: 1rem solid #e4d6bf;
  background-color: #fbfaf7;
  color: #222;
  cursor: pointer;
  transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}

body.woocommerce-checkout .ec-delivery-date-field input[type="date"]:hover,
body.woocommerce-checkout .ec-delivery-time-field input[type="time"]:hover {
  border-color: #cdb184;
  background-color: #fff;
}

body.woocommerce-checkout .ec-delivery-date-field input[type="date"]:focus,
body.woocommerce-checkout .ec-delivery-time-field input[type="time"]:focus {
  border-color: var(--ec-color-accent, #BB9C69);
  background-color: #fff;
  box-shadow: 0 0 0 3rem rgba(187, 156, 105, .12);
}

body.woocommerce-checkout .ec-delivery-date-field input[type="date"]::-webkit-calendar-picker-indicator,
body.woocommerce-checkout .ec-delivery-time-field input[type="time"]::-webkit-calendar-picker-indicator {
  width: 22rem;
  height: 22rem;
  margin: 0;
  padding: 14rem 15rem;
  cursor: pointer;
  opacity: .72;
}

/* =========================================================
   Order received / customer order information
   ========================================================= */
body.woocommerce-order-received .ec-woocommerce-page {
  background: #fff;
}

body.woocommerce-order-received .ec-woocommerce-page__inner > .woocommerce {
  max-width: 1180rem;
  margin: 0 auto;
}

body.woocommerce-order-received .woocommerce-order {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 30rem;
}

body.woocommerce-order-received .woocommerce-thankyou-order-received {
  margin: 0;
  padding: 28rem 32rem;
  border-left: 4rem solid var(--ec-color-accent, #BB9C69);
  background: #f9f7f2;
  color: #222;
  font-size: 20rem;
  line-height: 1.45;
  font-weight: 600;
}

body.woocommerce-order-received .woocommerce-order-overview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin: 0 !important;
  padding: 1rem;
  border: 0;
  background: #eee7dc;
}

body.woocommerce-order-received .woocommerce-order-overview li {
  float: none;
  width: auto;
  min-width: 0;
  margin: 0;
  padding: 18rem 20rem;
  border: 0;
  background: #fff;
  color: #666;
  font-size: 12rem;
  line-height: 1.35;
  text-transform: uppercase;
}

body.woocommerce-order-received .woocommerce-order-overview li strong {
  display: block;
  margin-top: 7rem;
  color: #222;
  font-size: 16rem;
  line-height: 1.35;
  font-weight: 700;
  text-transform: none;
  overflow-wrap: anywhere;
}

body.woocommerce-order-received .woocommerce-order-details,
body.woocommerce-order-received .woocommerce-customer-details,
body.woocommerce-view-order .woocommerce-order-details,
body.woocommerce-view-order .woocommerce-customer-details,
.ec-order-delivery-card {
  margin: 0;
  padding: 30rem 32rem 34rem;
  border: 1rem solid #eee7dc;
  background: #fff;
}

body.woocommerce-order-received .woocommerce-order-details__title,
body.woocommerce-order-received .woocommerce-column__title,
body.woocommerce-view-order .woocommerce-order-details__title,
body.woocommerce-view-order .woocommerce-column__title,
.ec-order-delivery-card h2 {
  margin: 0 0 22rem;
  font-family: "Philosopher", Georgia, serif;
  font-size: 30rem;
  line-height: 1.15;
  font-weight: 400;
}

body.woocommerce-order-received table.woocommerce-table--order-details,
body.woocommerce-view-order table.woocommerce-table--order-details {
  width: 100%;
  margin: 0;
  border: 0;
  border-collapse: collapse;
}

body.woocommerce-order-received table.woocommerce-table--order-details th,
body.woocommerce-order-received table.woocommerce-table--order-details td,
body.woocommerce-view-order table.woocommerce-table--order-details th,
body.woocommerce-view-order table.woocommerce-table--order-details td {
  padding: 14rem 0;
  border: 0;
  border-bottom: 1rem solid #eee7dc;
  font-size: 15rem;
  line-height: 1.45;
}

body.woocommerce-order-received table.woocommerce-table--order-details td:last-child,
body.woocommerce-order-received table.woocommerce-table--order-details th:last-child,
body.woocommerce-view-order table.woocommerce-table--order-details td:last-child,
body.woocommerce-view-order table.woocommerce-table--order-details th:last-child {
  padding-left: 20rem;
  text-align: right;
}

body.woocommerce-order-received .woocommerce-customer-details address,
body.woocommerce-view-order .woocommerce-customer-details address {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 15rem;
  line-height: 1.65;
}

.ec-order-delivery-card {
  background: #f9f7f2;
}

.ec-order-delivery-card__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16rem 24rem;
  margin: 0;
}

.ec-order-delivery-card__grid > div {
  padding: 16rem 18rem;
  background: #fff;
}

.ec-order-delivery-card__grid dt {
  margin: 0 0 5rem;
  color: #777;
  font-size: 13rem;
  line-height: 1.35;
}

.ec-order-delivery-card__grid dd {
  margin: 0;
  color: #222;
  font-size: 16rem;
  line-height: 1.4;
  font-weight: 700;
}

.ec-order-delivery-card__note {
  margin-top: 18rem;
  padding: 18rem;
  background: #fff;
}

.ec-order-delivery-card__note strong {
  display: block;
  margin-bottom: 7rem;
  font-size: 14rem;
}

.ec-order-delivery-card__note p {
  margin: 0;
  font-size: 15rem;
  line-height: 1.55;
}

@media (max-width: 1100px) {
  body.woocommerce-checkout .ec-woocommerce-page #customer_details,
  body.woocommerce-checkout .ec-woocommerce-page #order_review_heading,
  body.woocommerce-checkout .ec-woocommerce-page #order_review {
    grid-column: 1;
    grid-row: auto;
  }

  body.woocommerce-checkout .ec-woocommerce-page #order_review {
    margin-top: 0;
  }

  body.woocommerce-order-received .woocommerce-order-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  body.woocommerce-checkout .ec-telegram-field > label,
  body.woocommerce-checkout .ec-delivery-date-field > label,
  body.woocommerce-checkout .ec-delivery-time-field > label,
  body.woocommerce-checkout #ec_order_note_field > label,
  body.woocommerce-checkout #ec_payer_type_field > label {
    white-space: normal;
  }

  body.woocommerce-order-received .woocommerce-thankyou-order-received {
    padding: 20rem 18rem;
    font-size: 16rem;
  }

  body.woocommerce-order-received .woocommerce-order-overview {
    grid-template-columns: 1fr;
  }

  body.woocommerce-order-received .woocommerce-order-details,
  body.woocommerce-order-received .woocommerce-customer-details,
  body.woocommerce-view-order .woocommerce-order-details,
  body.woocommerce-view-order .woocommerce-customer-details,
  .ec-order-delivery-card {
    padding: 22rem 18rem 24rem;
  }

  body.woocommerce-order-received .woocommerce-order-details__title,
  body.woocommerce-order-received .woocommerce-column__title,
  body.woocommerce-view-order .woocommerce-order-details__title,
  body.woocommerce-view-order .woocommerce-column__title,
  .ec-order-delivery-card h2 {
    font-size: 24rem;
  }

  .ec-order-delivery-card__grid {
    grid-template-columns: 1fr;
  }
}

/* Cart totals must read as one light card, not a white table inside a beige card. */
body.woocommerce-cart .cart-collaterals .cart_totals,
body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table,
body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table tbody,
body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table tr,
body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table th,
body.woocommerce-cart .cart-collaterals .cart_totals table.shop_table td {
  background: #f9f7f2 !important;
}

/* =========================================================
   EC checkout: custom date / time picker
   ========================================================= */
body.woocommerce-checkout .ec-picker-source {
  display: none !important;
}

body.woocommerce-checkout .ec-picker-control {
  position: relative;
  width: 100%;
}

body.woocommerce-checkout .ec-picker-display {
  width: 100%;
  min-height: 58rem;
  padding: 0 54rem 0 16rem !important;
  border: 1rem solid #e4d6bf !important;
  border-radius: 0 !important;
  background: #fbfaf7 !important;
  color: #222 !important;
  font: inherit;
  cursor: pointer;
  caret-color: transparent;
  transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}

body.woocommerce-checkout .ec-picker-display:hover {
  border-color: #cdb184 !important;
  background: #fff !important;
}

body.woocommerce-checkout .ec-picker-display:focus {
  border-color: var(--ec-color-accent, #BB9C69) !important;
  background: #fff !important;
  box-shadow: 0 0 0 3rem rgba(187, 156, 105, .12) !important;
  outline: 0;
}

body.woocommerce-checkout .ec-picker-trigger {
  position: absolute;
  top: 50%;
  right: 14rem;
  width: 30rem;
  height: 30rem;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  color: #2a2a2a;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: none;
}

body.woocommerce-checkout .ec-picker-trigger:hover,
body.woocommerce-checkout .ec-picker-trigger:focus,
body.woocommerce-checkout .ec-picker-trigger:active {
  background: transparent;
  color: var(--ec-color-accent, #BB9C69);
  outline: 0;
  box-shadow: none;
}

body.woocommerce-checkout .ec-picker-trigger svg {
  width: 21rem;
  height: 21rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ec-checkout-picker-backdrop {
  position: fixed;
  inset: 0;
  z-index: 100050;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: default;
}

.ec-checkout-picker {
  position: fixed;
  z-index: 100060;
  padding: 18rem;
  border: 1rem solid #e7dcc9;
  background: #fffdf9;
  color: #222;
  box-shadow: 0 14rem 46rem rgba(28, 24, 18, .18);
  font-family: inherit;
}

.ec-checkout-picker button {
  font-family: inherit;
}

.ec-checkout-picker__head {
  display: grid;
  grid-template-columns: 38rem 1fr 38rem;
  align-items: center;
  gap: 8rem;
  margin-bottom: 15rem;
}

.ec-checkout-picker__title {
  text-align: center;
  font-size: 18rem;
  line-height: 1.2;
  font-weight: 700;
}

.ec-checkout-picker__nav {
  width: 38rem;
  height: 38rem;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 50%;
  background: #f7f3ec;
  color: #222;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.ec-checkout-picker__nav:hover,
.ec-checkout-picker__nav:focus {
  background: #eee5d7;
  outline: 0;
}

.ec-checkout-picker__nav:disabled {
  opacity: .3;
  cursor: default;
}

.ec-checkout-picker__nav svg {
  width: 20rem;
  height: 20rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ec-checkout-picker__week,
.ec-checkout-picker__days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4rem;
}

.ec-checkout-picker__week {
  margin-bottom: 5rem;
}

.ec-checkout-picker__week span {
  text-align: center;
  color: #8a8277;
  font-size: 12rem;
  line-height: 1;
  font-weight: 600;
}

.ec-checkout-picker__day {
  aspect-ratio: 1 / 1;
  min-width: 0;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #222;
  font-size: 14rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: none;
}

.ec-checkout-picker__day:hover,
.ec-checkout-picker__day:focus {
  background: #f2ece2;
  outline: 0;
}

.ec-checkout-picker__day.is-outside {
  color: #b8b1a8;
}

.ec-checkout-picker__day.is-today {
  box-shadow: inset 0 0 0 1rem var(--ec-color-accent, #BB9C69);
}

.ec-checkout-picker__day.is-selected {
  background: var(--ec-color-accent, #BB9C69);
  color: #fff;
}

.ec-checkout-picker__day.is-disabled,
.ec-checkout-picker__day:disabled {
  color: #d9d5cf;
  background: transparent;
  cursor: default;
  box-shadow: none;
}

.ec-checkout-picker__footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 12rem;
  padding-top: 12rem;
  border-top: 1rem solid #eee6d9;
}

.ec-checkout-picker__link {
  padding: 7rem 10rem;
  border: 0;
  background: transparent;
  color: var(--ec-color-accent-hover, #A9874D);
  font-size: 14rem;
  font-weight: 600;
  cursor: pointer;
}

.ec-checkout-picker__time-title {
  margin-bottom: 15rem;
  font-size: 18rem;
  line-height: 1.2;
  font-weight: 700;
}

.ec-checkout-picker__time-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12rem;
}

.ec-checkout-picker__time-label {
  margin-bottom: 7rem;
  color: #837a6e;
  font-size: 12rem;
  line-height: 1.2;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.ec-checkout-picker__time-list {
  max-height: 216rem;
  padding: 4rem;
  overflow-y: auto;
  background: #faf7f2;
  scrollbar-width: thin;
  scrollbar-color: #d2c1a5 transparent;
}

.ec-checkout-picker__time-list--minutes {
  max-height: none;
}

.ec-checkout-picker__time-option {
  width: 100%;
  min-height: 40rem;
  padding: 8rem 10rem;
  margin: 0;
  border: 0;
  background: transparent;
  color: #222;
  font-size: 15rem;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  box-shadow: none;
}

.ec-checkout-picker__time-option:hover,
.ec-checkout-picker__time-option:focus {
  background: #efe7db;
  outline: 0;
}

.ec-checkout-picker__time-option.is-selected {
  background: var(--ec-color-accent, #BB9C69);
  color: #fff;
}

.ec-checkout-picker__time-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10rem;
  margin-top: 15rem;
  padding-top: 15rem;
  border-top: 1rem solid #eee6d9;
}

.ec-checkout-picker__time-cancel,
.ec-checkout-picker__time-done {
  min-height: 44rem;
  padding: 9rem 14rem;
  border: 1rem solid #d9cab3;
  font-size: 14rem;
  font-weight: 600;
  cursor: pointer;
}

.ec-checkout-picker__time-cancel {
  background: #fff;
  color: #333;
}

.ec-checkout-picker__time-done {
  border-color: var(--ec-color-accent, #BB9C69);
  background: var(--ec-color-accent, #BB9C69);
  color: #fff;
}

.ec-checkout-picker__time-done:hover,
.ec-checkout-picker__time-done:focus {
  border-color: var(--ec-color-accent-hover, #A9874D);
  background: var(--ec-color-accent-hover, #A9874D);
  outline: 0;
}

@media (max-width: 767px) {
  html.ec-checkout-picker-open,
  body.ec-checkout-picker-open {
    overflow: hidden;
  }

  .ec-checkout-picker-backdrop {
    background: rgba(0, 0, 0, .28);
  }

  .ec-checkout-picker {
    left: 0 !important;
    right: 0;
    top: auto !important;
    bottom: 0;
    width: 100% !important;
    max-height: 78dvh;
    padding: 20rem 18rem calc(20rem + env(safe-area-inset-bottom));
    overflow-y: auto;
    border: 0;
    border-radius: 20rem 20rem 0 0;
    box-shadow: 0 -12rem 40rem rgba(0, 0, 0, .17);
  }

  .ec-checkout-picker__title,
  .ec-checkout-picker__time-title {
    font-size: 20rem;
  }

  .ec-checkout-picker__week span {
    font-size: 13rem;
  }

  .ec-checkout-picker__day {
    font-size: 15rem;
  }

  .ec-checkout-picker__time-list {
    max-height: 260rem;
  }
}

@media (max-width: 767px) {
  .ec-shop-page [data-eccb-layout="product_tabs"] > .eccb-product-tabs {
    padding: 38rem 0 56rem;
  }
}

/* =========================================================
   Default Shop / product-category template = EC product tabs
   ========================================================= */
.ec-shop-catalog-tabs {
  width: 100%;
  padding: 72rem 0 100rem;
  background: #fff;
}

.ec-shop-catalog-tabs > .eccb-product-tabs__inner {
  width: var(--ec-container);
  max-width: 100%;
  margin: 0 auto;
}

/* The common renderer is the catalog; suppress any accidental archive title,
   native ordering or pagination injected by Woo extensions around it. */
.ec-shop-page > .woocommerce-products-header,
.ec-shop-page > .woocommerce-result-count,
.ec-shop-page > .woocommerce-ordering,
.ec-shop-page > nav.woocommerce-pagination {
  display: none !important;
}

@media (max-width: 767px) {
  .ec-shop-catalog-tabs {
    padding: 38rem 0 56rem;
  }
}


/* =========================================================
   Shop archive: real category URLs + same catalog renderer
   ========================================================= */
.ec-shop-category-tabs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10rem;
  margin: 0 0 30rem;
}

.ec-shop-category-tabs .ec-shop-category-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46rem;
  padding: 10rem 20rem;
  border: 1rem solid rgba(187, 156, 105, 0.34);
  border-radius: 999rem;
  background: #fff;
  color: var(--ec-color-text, #222);
  font-family: "Mulish", Arial, sans-serif;
  font-size: 16rem;
  font-weight: 600;
  line-height: 1.15;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}

.ec-shop-category-tabs .ec-shop-category-tab:hover,
.ec-shop-category-tabs .ec-shop-category-tab:focus-visible,
.ec-shop-category-tabs .ec-shop-category-tab.is-active,
.ec-shop-category-tabs .ec-shop-category-tab.active,
.ec-shop-category-tabs .ec-shop-category-tab[aria-current="page"] {
  border-color: var(--ec-color-accent, #BB9C69);
  background: var(--ec-color-accent, #BB9C69);
  color: #fff;
  outline: none;
}

.ec-shop-catalog-renderer .custom-products-tab,
.ec-shop-catalog-renderer .ec-shop-internal-tabs-hidden {
  display: none !important;
}

/* Product quick view: real product-page link between description and cart UI. */
.ec-quick-view-details-link {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin: 14rem 0 18rem;
  color: var(--ec-color-accent, #BB9C69);
  font-family: "Mulish", Arial, sans-serif;
  font-size: 15rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: underline;
  text-decoration-thickness: 1rem;
  text-underline-offset: 4rem;
  cursor: pointer;
}

.ec-quick-view-details-link:hover,
.ec-quick-view-details-link:focus-visible {
  color: var(--ec-color-accent-hover, #A9874D);
  outline: none;
}

@media (max-width: 767px) {
  .ec-shop-category-tabs {
    flex-wrap: nowrap;
    gap: 8rem;
    margin-bottom: 22rem;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 4rem;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .ec-shop-category-tabs::-webkit-scrollbar {
    display: none;
  }

  .ec-shop-category-tabs .ec-shop-category-tab {
    flex: 0 0 auto;
    min-height: 40rem;
    padding: 9rem 16rem;
    font-size: 14rem;
  }
}

/* v0.1.38 — compact mobile cart, coupon disclosure, category-tab centering */
#catalog,
.ec-shop-catalog-tabs{
  scroll-margin-top:40rem;
}

@media (max-width: 767px) {
  .ec-shop-category-tabs{
    padding-left:20rem;
    padding-right:20rem;
    scroll-padding-inline:40vw;
  }

  body.woocommerce-cart table.shop_table_responsive tbody tr.cart_item{
    grid-template-columns:26rem 58rem minmax(54rem,.8fr) 86rem minmax(66rem,1fr);
    grid-template-rows:auto auto;
    gap:7rem 7rem;
    padding:12rem 0;
    align-items:center;
  }

  body.woocommerce-cart table.shop_table_responsive tbody tr.cart_item td{
    padding:0;
  }

  body.woocommerce-cart table.shop_table .product-remove{
    grid-column:1;
    grid-row:1 / 3;
    align-self:center;
    width:26rem;
    padding:0;
  }

  body.woocommerce-cart table.shop_table .product-remove a.remove{
    width:24rem;
    height:24rem;
    font-size:25rem;
  }

  body.woocommerce-cart table.shop_table .product-thumbnail{
    display:block!important;
    grid-column:2;
    grid-row:1 / 3;
    width:58rem;
    padding:0;
    align-self:start;
  }

  body.woocommerce-cart table.shop_table .product-thumbnail img{
    display:block!important;
    width:54rem;
    height:54rem;
    border-radius:4rem;
    object-fit:cover;
  }

  body.woocommerce-cart table.shop_table .product-name{
    grid-column:3 / 6;
    grid-row:1;
    min-width:0;
    padding-bottom:1rem;
    font-size:14rem;
    line-height:1.28;
  }

  body.woocommerce-cart table.shop_table .product-price{
    grid-column:3;
    grid-row:2;
    width:auto;
    min-width:0;
    font-size:12rem;
    line-height:1.15;
    font-weight:600;
    white-space:nowrap;
  }

  body.woocommerce-cart table.shop_table .product-quantity{
    grid-column:4;
    grid-row:2;
    width:86rem;
    min-width:86rem;
  }

  body.woocommerce-cart table.shop_table .product-subtotal{
    grid-column:5;
    grid-row:2;
    width:auto;
    min-width:0;
    font-size:13rem;
    line-height:1.15;
    font-weight:800;
    text-align:right!important;
    white-space:nowrap;
  }

  body.woocommerce-cart .ec-cart-qty{
    display:grid;
    grid-template-columns:26rem 34rem 26rem;
    align-items:center;
    width:86rem;
    height:30rem;
    border:1rem solid #dedede;
    background:#fff;
  }

  body.woocommerce-cart .ec-cart-qty__button{
    display:flex;
    align-items:center;
    justify-content:center;
    width:26rem;
    height:28rem;
    padding:0;
    border:0;
    background:transparent;
    color:#222;
    font:600 18rem/1 "Mulish",Arial,sans-serif;
    cursor:pointer;
  }

  body.woocommerce-cart .ec-cart-qty .qty{
    width:34rem!important;
    height:28rem!important;
    min-height:0;
    padding:0!important;
    border:0!important;
    border-left:1rem solid #eee!important;
    border-right:1rem solid #eee!important;
    background:#fff;
    font-size:12rem!important;
    line-height:28rem;
    -moz-appearance:textfield;
  }
  body.woocommerce-cart .ec-cart-qty .qty::-webkit-outer-spin-button,
  body.woocommerce-cart .ec-cart-qty .qty::-webkit-inner-spin-button{
    margin:0;
    -webkit-appearance:none;
  }

  body.woocommerce-cart table.shop_table td.actions{
    display:flex!important;
    flex-wrap:wrap;
    align-items:center;
    gap:8rem;
    padding:14rem 0 0;
  }

  body.woocommerce-cart .ec-cart-coupon-toggle{
    min-height:38rem;
    padding:9rem 16rem;
    border:1rem solid var(--ec-color-accent,#BB9C69);
    border-radius:0;
    background:#fff;
    color:#8e713f;
    font:700 12rem/1.1 "Mulish",Arial,sans-serif;
    letter-spacing:.5rem;
    text-transform:uppercase;
    white-space:nowrap;
    cursor:pointer;
  }

  body.woocommerce-cart table.shop_table td.actions .coupon.ec-cart-coupon{
    display:none;
    flex:1 1 100%;
    gap:8rem;
    width:100%;
  }

  body.woocommerce-cart table.shop_table td.actions .coupon.ec-cart-coupon.is-open{
    display:flex;
  }

  body.woocommerce-cart table.shop_table td.actions .coupon.ec-cart-coupon input.input-text{
    flex:1 1 auto;
    width:auto!important;
    min-width:0;
    height:40rem;
    padding:0 12rem;
    font-size:13rem;
  }

  body.woocommerce-cart table.shop_table td.actions .coupon.ec-cart-coupon .button{
    flex:0 0 auto;
    min-height:40rem;
    padding:10rem 14rem!important;
    font-size:11rem!important;
    line-height:1!important;
    letter-spacing:.45rem;
    white-space:nowrap;
  }

  body.woocommerce-cart table.shop_table td.actions > [name="update_cart"]{
    position:absolute!important;
    width:1rem!important;
    height:1rem!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    clip:rect(0 0 0 0)!important;
    clip-path:inset(50%)!important;
    overflow:hidden!important;
    white-space:nowrap!important;
  }

  body.woocommerce-cart .cart-collaterals{
    margin-top:22rem;
  }

  body.woocommerce-cart .cart_totals h2{
    margin-bottom:15rem;
    font-size:28rem;
  }
}
@media (max-width: 767px) {
  body.woocommerce-cart table.shop_table .product-price::before,
  body.woocommerce-cart table.shop_table .product-subtotal::before{
    display:block;
    margin-bottom:2rem;
    color:#8b8b8b;
    font-size:9rem;
    line-height:1;
    font-weight:500;
    text-transform:none;
  }
  body.woocommerce-cart table.shop_table .product-price::before{content:"Цена"}
  body.woocommerce-cart table.shop_table .product-subtotal::before{content:"Итого"}
}

/* =========================================================
   Checkout mobile order summary v41.1
   CSS-only patch on top of verified v40 theme.
   ========================================================= */
@media (max-width: 767px) {
  body.woocommerce-checkout #order_review table.shop_table tfoot th,
  body.woocommerce-checkout #order_review table.shop_table tfoot td {
    box-sizing: border-box;
    width: 50%;
    max-width: 50%;
    vertical-align: top;
  }

  body.woocommerce-checkout #order_review table.shop_table tfoot th {
    padding-right: 10rem;
  }

  body.woocommerce-checkout #order_review table.shop_table tfoot td {
    padding-left: 10rem;
    text-align: right;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  body.woocommerce-checkout #order_review table.shop_table tfoot tr.cart-subtotal th,
  body.woocommerce-checkout #order_review table.shop_table tfoot tr.order-total th {
    text-align: right;
  }

  body.woocommerce-checkout #order_review table.shop_table tr.woocommerce-shipping-totals.shipping th {
    text-align: left;
  }

  body.woocommerce-checkout #order_review table.shop_table tr.woocommerce-shipping-totals.shipping td,
  body.woocommerce-checkout #order_review table.shop_table tr.woocommerce-shipping-totals.shipping td * {
    white-space: normal;
  }

  body.woocommerce-checkout #order_review #shipping_method {
    margin: 0;
    padding: 0;
    text-align: right;
  }

  body.woocommerce-checkout #order_review #shipping_method li {
    margin: 0;
    line-height: 1.35;
  }
}

/* =========================================================
   v0.1.43 — mobile checkout summary + catalog tab alignment
   ========================================================= */
@media (max-width: 767px) {
  /* Keep the first category tab on the same left edge as product cards.
     The parent catalog container already supplies the 20rem page gutter. */
  .ec-shop-category-tabs {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* The product column header already names the row. The repeated
     "Подытог" beside it adds noise on a narrow screen, so keep the cell
     for table geometry but hide only its label. */
  body.woocommerce-checkout #order_review table.shop_table thead th.product-total,
  body.woocommerce-checkout .woocommerce-checkout-review-order-table thead th.product-total {
    font-size: 0 !important;
    line-height: 0 !important;
    color: transparent !important;
  }

  /* Footer summary labels read as a vertical list: label on the left,
     amount on the right. */
  body.woocommerce-checkout #order_review table.shop_table tfoot tr.cart-subtotal th,
  body.woocommerce-checkout #order_review table.shop_table tfoot tr.order-total th {
    text-align: left !important;
  }
}

/* =========================================================
   v0.1.44 — checkout fields matched to EC popup form styling
   ========================================================= */
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-additional-fields__field-wrapper {
  --ec-checkout-field-border: var(--ec-color-accent, #BB9C69);
}

body.woocommerce-checkout .form-row {
  margin-bottom: 15rem;
}

body.woocommerce-checkout .form-row label,
body.woocommerce-checkout .woocommerce-additional-fields .form-row label {
  margin: 0 0 6rem;
  color: #202020;
  font-size: 16rem;
  line-height: 1.2;
  font-weight: 400;
}

body.woocommerce-checkout .form-row label .optional {
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
}

body.woocommerce-checkout .input-text,
body.woocommerce-checkout input[type="text"],
body.woocommerce-checkout input[type="tel"],
body.woocommerce-checkout input[type="email"],
body.woocommerce-checkout input[type="date"],
body.woocommerce-checkout input[type="time"],
body.woocommerce-checkout input[type="number"],
body.woocommerce-checkout textarea,
body.woocommerce-checkout select,
body.woocommerce-checkout .select2-container .select2-selection--single {
  width: 100%;
  min-height: 58rem;
  margin: 0;
  padding: 0 14rem;
  border: 1rem solid var(--ec-checkout-field-border, #BB9C69);
  border-radius: 0;
  background: #fff;
  color: #202020;
  font-family: "Mulish", Arial, sans-serif;
  font-size: 16rem;
  line-height: 56rem;
  box-shadow: none;
  outline: none;
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

body.woocommerce-checkout textarea {
  min-height: 112rem;
  padding-top: 12rem;
  padding-bottom: 12rem;
  line-height: 1.4;
}

body.woocommerce-checkout .input-text::placeholder,
body.woocommerce-checkout input::placeholder,
body.woocommerce-checkout textarea::placeholder {
  color: #aaa;
  opacity: 1;
}

body.woocommerce-checkout .input-text:focus,
body.woocommerce-checkout input[type="text"]:focus,
body.woocommerce-checkout input[type="tel"]:focus,
body.woocommerce-checkout input[type="email"]:focus,
body.woocommerce-checkout input[type="date"]:focus,
body.woocommerce-checkout input[type="time"]:focus,
body.woocommerce-checkout input[type="number"]:focus,
body.woocommerce-checkout textarea:focus,
body.woocommerce-checkout select:focus,
body.woocommerce-checkout .select2-container--focus .select2-selection--single,
body.woocommerce-checkout .select2-container--open .select2-selection--single {
  border-color: var(--ec-color-accent-hover, #A9874D);
  background: #fff;
  box-shadow: 0 0 0 1rem rgba(187, 156, 105, .12);
}

body.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered {
  padding: 0;
  color: #202020;
  line-height: 56rem;
}

body.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__placeholder {
  color: #aaa;
}

body.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow {
  height: 58rem;
  top: 0;
  right: 10rem;
  transform: none;
}

/* Keep browser autofill from painting checkout fields blue/yellow. */
body.woocommerce-checkout input:-webkit-autofill,
body.woocommerce-checkout input:-webkit-autofill:hover,
body.woocommerce-checkout input:-webkit-autofill:focus,
body.woocommerce-checkout textarea:-webkit-autofill,
body.woocommerce-checkout select:-webkit-autofill {
  -webkit-text-fill-color: #202020;
  -webkit-box-shadow: 0 0 0 1000rem #fff inset;
  box-shadow: 0 0 0 1000rem #fff inset;
  transition: background-color 9999s ease-out 0s;
}

/* Woo validation remains obvious without changing the EC field geometry. */
body.woocommerce-checkout .woocommerce-invalid .input-text,
body.woocommerce-checkout .woocommerce-invalid input,
body.woocommerce-checkout .woocommerce-invalid select,
body.woocommerce-checkout .woocommerce-invalid .select2-selection--single {
  border-color: #b42318;
}

body.woocommerce-checkout .woocommerce-validated .input-text,
body.woocommerce-checkout .woocommerce-validated input,
body.woocommerce-checkout .woocommerce-validated select,
body.woocommerce-checkout .woocommerce-validated .select2-selection--single {
  border-color: var(--ec-checkout-field-border, #BB9C69);
}

@media (max-width: 767px) {
  body.woocommerce-checkout .form-row {
    margin-bottom: 15rem;
  }

  body.woocommerce-checkout .form-row label,
  body.woocommerce-checkout .woocommerce-additional-fields .form-row label {
    margin-bottom: 6rem;
    font-size: 16rem;
  }

  body.woocommerce-checkout .input-text,
  body.woocommerce-checkout input[type="text"],
  body.woocommerce-checkout input[type="tel"],
  body.woocommerce-checkout input[type="email"],
  body.woocommerce-checkout input[type="date"],
  body.woocommerce-checkout input[type="time"],
  body.woocommerce-checkout input[type="number"],
  body.woocommerce-checkout textarea,
  body.woocommerce-checkout select,
  body.woocommerce-checkout .select2-container .select2-selection--single {
    min-height: 58rem;
    padding-inline: 14rem;
    font-size: 16rem;
    line-height: 56rem;
  }

  body.woocommerce-checkout textarea {
    min-height: 104rem;
    padding-top: 12rem;
    padding-bottom: 12rem;
    line-height: 1.4;
  }

  body.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered {
    line-height: 56rem;
  }

  body.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow {
    height: 58rem;
  }
}

/* =========================================================
   v0.1.45 — checkout form visual parity + mobile date/time row
   ========================================================= */
body.woocommerce-checkout .ec-woocommerce-page .form-row > label,
body.woocommerce-checkout .ec-woocommerce-page .form-row label {
  margin: 0 0 7rem !important;
  color: #202020;
  font-size: 15rem !important;
  line-height: 1.28 !important;
  font-weight: 400 !important;
}

/* Keep regular and successfully validated fields in the EC gold outline.
   Only actual invalid fields should become red. */
body.woocommerce-checkout .ec-woocommerce-page .input-text,
body.woocommerce-checkout .ec-woocommerce-page input[type="text"],
body.woocommerce-checkout .ec-woocommerce-page input[type="tel"],
body.woocommerce-checkout .ec-woocommerce-page input[type="email"],
body.woocommerce-checkout .ec-woocommerce-page input[type="number"],
body.woocommerce-checkout .ec-woocommerce-page textarea,
body.woocommerce-checkout .ec-woocommerce-page select,
body.woocommerce-checkout .ec-woocommerce-page .select2-container .select2-selection--single,
body.woocommerce-checkout .ec-woocommerce-page .ec-picker-display,
body.woocommerce-checkout .ec-woocommerce-page .woocommerce-validated .input-text,
body.woocommerce-checkout .ec-woocommerce-page .woocommerce-validated input,
body.woocommerce-checkout .ec-woocommerce-page .woocommerce-validated select,
body.woocommerce-checkout .ec-woocommerce-page .woocommerce-validated .select2-selection--single {
  border: 1rem solid var(--ec-color-accent, #BB9C69) !important;
  border-radius: 0 !important;
  background: #fff !important;
  box-shadow: none !important;
}

body.woocommerce-checkout .ec-woocommerce-page .ec-picker-display {
  min-height: 58rem;
  padding: 0 48rem 0 14rem !important;
  color: #202020 !important;
  font-family: "Mulish", Arial, sans-serif !important;
  font-size: 16rem !important;
  line-height: 56rem !important;
}

body.woocommerce-checkout .ec-woocommerce-page .ec-picker-display::placeholder {
  color: #aaa !important;
  opacity: 1;
}

body.woocommerce-checkout .ec-woocommerce-page .input-text:focus,
body.woocommerce-checkout .ec-woocommerce-page input:focus,
body.woocommerce-checkout .ec-woocommerce-page textarea:focus,
body.woocommerce-checkout .ec-woocommerce-page select:focus,
body.woocommerce-checkout .ec-woocommerce-page .ec-picker-display:focus,
body.woocommerce-checkout .ec-woocommerce-page .select2-container--focus .select2-selection--single,
body.woocommerce-checkout .ec-woocommerce-page .select2-container--open .select2-selection--single {
  border-color: var(--ec-color-accent-hover, #A9874D) !important;
  background: #fff !important;
  box-shadow: 0 0 0 1rem rgba(187, 156, 105, .14) !important;
}

body.woocommerce-checkout .ec-woocommerce-page .woocommerce-invalid .input-text,
body.woocommerce-checkout .ec-woocommerce-page .woocommerce-invalid input,
body.woocommerce-checkout .ec-woocommerce-page .woocommerce-invalid select,
body.woocommerce-checkout .ec-woocommerce-page .woocommerce-invalid .select2-selection--single,
body.woocommerce-checkout .ec-woocommerce-page .woocommerce-invalid .ec-picker-display {
  border-color: #b42318 !important;
}

@media (max-width: 767px) {
  body.woocommerce-checkout .ec-woocommerce-page .form-row > label,
  body.woocommerce-checkout .ec-woocommerce-page .form-row label {
    margin-bottom: 6rem !important;
    font-size: 14rem !important;
    line-height: 1.3 !important;
  }

  /* Date and time belong to one compact row on mobile. */
  body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .ec-delivery-date-field,
  body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .ec-delivery-time-field {
    clear: none !important;
    width: calc(50% - 7.5rem) !important;
    margin-bottom: 15rem !important;
  }

  body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .ec-delivery-date-field {
    float: left !important;
  }

  body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .ec-delivery-time-field {
    float: right !important;
  }

  body.woocommerce-checkout #ec_order_note_field,
  body.woocommerce-checkout #ec_payer_type_field,
  body.woocommerce-checkout .ec-checkout-privacy {
    clear: both !important;
  }

  body.woocommerce-checkout .ec-woocommerce-page .ec-delivery-date-field > label,
  body.woocommerce-checkout .ec-woocommerce-page .ec-delivery-time-field > label {
    white-space: nowrap !important;
    font-size: 13.5rem !important;
  }

  body.woocommerce-checkout .ec-woocommerce-page .ec-delivery-date-field .ec-picker-display,
  body.woocommerce-checkout .ec-woocommerce-page .ec-delivery-time-field .ec-picker-display {
    min-height: 56rem;
    padding-left: 11rem !important;
    padding-right: 38rem !important;
    font-size: 13.5rem !important;
    line-height: 54rem !important;
  }

  body.woocommerce-checkout .ec-delivery-date-field .ec-picker-trigger,
  body.woocommerce-checkout .ec-delivery-time-field .ec-picker-trigger {
    right: 7rem;
    width: 27rem;
    height: 27rem;
  }

  body.woocommerce-checkout .ec-delivery-date-field .ec-picker-trigger svg,
  body.woocommerce-checkout .ec-delivery-time-field .ec-picker-trigger svg {
    width: 19rem;
    height: 19rem;
  }
}


/* =========================================================
   v0.1.46 — checkout consent UX, archive category links, cart cleanup
   ========================================================= */
body.woocommerce-checkout .ec-checkout-privacy {
  margin-top: 3rem;
  padding: 0;
}
body.woocommerce-checkout .ec-checkout-privacy label.checkbox,
body.woocommerce-checkout .ec-checkout-privacy label.woocommerce-form__label-for-checkbox {
  display: grid !important;
  grid-template-columns: 18rem minmax(0, 1fr) !important;
  column-gap: 9rem !important;
  align-items: start !important;
  margin: 0 !important;
  font-size: 14rem !important;
  line-height: 1.42 !important;
  font-weight: 400 !important;
  cursor: pointer;
}
body.woocommerce-checkout .ec-checkout-privacy label.checkbox > input[type="checkbox"],
body.woocommerce-checkout .ec-checkout-privacy label.woocommerce-form__label-for-checkbox > input[type="checkbox"] {
  grid-column: 1 !important;
  grid-row: 1 !important;
  width: 16rem !important;
  height: 16rem !important;
  min-height: 0 !important;
  margin: 2rem 0 0 !important;
  accent-color: var(--ec-color-accent, #BB9C69);
}
body.woocommerce-checkout .ec-checkout-privacy label.checkbox > span,
body.woocommerce-checkout .ec-checkout-privacy label.woocommerce-form__label-for-checkbox > span {
  grid-column: 2 !important;
  grid-row: 1 !important;
  min-width: 0;
}
body.woocommerce-checkout .ec-checkout-privacy label.checkbox > span::after,
body.woocommerce-checkout .ec-checkout-privacy label.woocommerce-form__label-for-checkbox > span::after {
  content: " *";
  color: #b42318;
  font-weight: 700;
}
body.woocommerce-checkout .ec-checkout-privacy label.checkbox > abbr.required,
body.woocommerce-checkout .ec-checkout-privacy label.woocommerce-form__label-for-checkbox > abbr.required {
  display: none !important;
}
body.woocommerce-checkout .ec-checkout-privacy.ec-checkout-client-invalid,
body.woocommerce-checkout .ec-checkout-privacy.woocommerce-invalid {
  margin-left: -8rem;
  margin-right: -8rem;
  padding: 9rem 8rem 10rem;
  border-left: 3rem solid #b42318;
  background: rgba(180, 35, 24, .065);
}
body.woocommerce-checkout .ec-checkout-privacy.ec-checkout-client-invalid input[type="checkbox"],
body.woocommerce-checkout .ec-checkout-privacy.woocommerce-invalid input[type="checkbox"] {
  outline: 2rem solid #b42318;
  outline-offset: 2rem;
}
body.woocommerce-checkout .ec-checkout-field-error {
  margin: 6rem 0 0 27rem;
  color: #b42318;
  font-size: 12rem;
  line-height: 1.35;
  font-weight: 700;
}
body.woocommerce-checkout .form-row.ec-checkout-client-invalid:not(.ec-checkout-privacy) .input-text,
body.woocommerce-checkout .form-row.ec-checkout-client-invalid:not(.ec-checkout-privacy) select,
body.woocommerce-checkout .form-row.ec-checkout-client-invalid:not(.ec-checkout-privacy) textarea,
body.woocommerce-checkout .form-row.ec-checkout-client-invalid:not(.ec-checkout-privacy) .ec-picker-display {
  border-color: #b42318 !important;
}
body.woocommerce-checkout .ec-checkout-attention {
  animation: ec-checkout-attention .7s cubic-bezier(.36,.07,.19,.97) 1;
}
@keyframes ec-checkout-attention {
  0%,100% { transform: translateX(0); }
  20% { transform: translateX(-4rem); }
  40% { transform: translateX(4rem); }
  60% { transform: translateX(-2rem); }
  80% { transform: translateX(2rem); }
}

/* Shop/category archive uses one category row only. These are real links but
   visually match the product-category controls used in the delivery catalog. */
.ec-shop-category-tabs {
  gap: 10rem !important;
  margin-bottom: 28rem !important;
}
.ec-shop-category-tabs .ec-shop-category-tab {
  min-height: 46rem !important;
  padding: 11rem 22rem !important;
  border: 1rem solid rgba(187,156,105,.62) !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: #202020 !important;
  font-size: 15rem !important;
  font-weight: 600 !important;
  line-height: 1.1 !important;
}
.ec-shop-category-tabs .ec-shop-category-tab:hover,
.ec-shop-category-tabs .ec-shop-category-tab:focus-visible,
.ec-shop-category-tabs .ec-shop-category-tab.is-active,
.ec-shop-category-tabs .ec-shop-category-tab.active,
.ec-shop-category-tabs .ec-shop-category-tab[aria-current="page"] {
  border-color: var(--ec-color-accent, #BB9C69) !important;
  background: var(--ec-color-accent, #BB9C69) !important;
  color: #fff !important;
}
.ec-shop-catalog-renderer .custom-products-tabs,
.ec-shop-catalog-renderer .custom-products-tabs-nav,
.ec-shop-catalog-renderer .ec-wct-tabs,
.ec-shop-catalog-renderer .custom-products-tab,
.ec-shop-catalog-renderer .ec-wct-tab,
.ec-shop-catalog-renderer [role="tab"] {
  display: none !important;
}

/* Coupons are not used in this project. Keep a CSS fallback in case an
   extension injects its own coupon markup despite the WooCommerce filter. */
body.woocommerce-cart table.shop_table td.actions .coupon,
body.woocommerce-cart .ec-cart-coupon-toggle {
  display: none !important;
}

@media (max-width: 767px) {
  body.woocommerce-checkout .ec-checkout-privacy label.checkbox,
  body.woocommerce-checkout .ec-checkout-privacy label.woocommerce-form__label-for-checkbox {
    font-size: 13rem !important;
    line-height: 1.4 !important;
  }
  .ec-shop-category-tabs .ec-shop-category-tab {
    min-height: 40rem !important;
    padding: 9rem 15rem !important;
    font-size: 13rem !important;
  }
}

/* =========================================================
   v0.1.47 — mini-cart item alignment + checkout consent layout
   ========================================================= */

/* Mini-cart: keep thumbnail, product text, quantity and remove control in a
   compact, predictable grid. WooCommerce places the thumbnail inside the
   product link, so styling the link as a nested grid avoids overlap. */
.ec-mini-cart__content .woocommerce-mini-cart-item {
  display: grid !important;
  grid-template-columns: 56rem minmax(0, 1fr) 24rem;
  column-gap: 12rem;
  row-gap: 4rem;
  align-items: start;
  min-height: 0;
  padding: 12rem 0 !important;
}

.ec-mini-cart__content .woocommerce-mini-cart-item > a:not(.remove) {
  grid-column: 1 / 3;
  grid-row: 1;
  display: grid !important;
  grid-template-columns: 56rem minmax(0, 1fr);
  column-gap: 12rem;
  align-items: start;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
}

.ec-mini-cart__content .woocommerce-mini-cart-item > a:not(.remove) img {
  position: static !important;
  grid-column: 1;
  grid-row: 1 / span 2;
  display: block !important;
  float: none !important;
  width: 56rem !important;
  height: 56rem !important;
  margin: 0 !important;
  object-fit: cover;
}

.ec-mini-cart__content .woocommerce-mini-cart-item > a:not(.remove) {
  font-size: 14rem;
  line-height: 1.3;
  font-weight: 600;
}

.ec-mini-cart__content .woocommerce-mini-cart-item .quantity {
  grid-column: 2;
  grid-row: 2;
  align-self: start;
  margin: -2rem 0 0 !important;
  min-width: 0;
  color: #77736d;
  font-size: 12.5rem;
  line-height: 1.25;
}

.ec-mini-cart__content .woocommerce-mini-cart-item a.remove,
.ec-mini-cart__content .woocommerce-mini-cart-item a.remove_from_cart_button {
  position: static !important;
  grid-column: 3;
  grid-row: 1 / span 2;
  align-self: center;
  justify-self: end;
  margin: 0 !important;
}

/* Checkout privacy consent: WooCommerce renders a checkbox label differently
   from ordinary field labels. Override the generic checkout label rules so the
   checkbox remains at the left and the full sentence occupies the remaining
   width instead of collapsing to a narrow column. */
body.woocommerce-checkout #ec_privacy_accept_field,
body.woocommerce-checkout .ec-checkout-privacy {
  clear: both !important;
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  margin: 4rem 0 15rem !important;
  padding: 0 !important;
}

body.woocommerce-checkout #ec_privacy_accept_field > label,
body.woocommerce-checkout #ec_privacy_accept_field label.checkbox,
body.woocommerce-checkout #ec_privacy_accept_field label.woocommerce-form__label-for-checkbox,
body.woocommerce-checkout .ec-checkout-privacy > label,
body.woocommerce-checkout .ec-checkout-privacy label.checkbox,
body.woocommerce-checkout .ec-checkout-privacy label.woocommerce-form__label-for-checkbox {
  display: grid !important;
  grid-template-columns: 18rem minmax(0, 1fr) !important;
  column-gap: 10rem !important;
  align-items: start !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  white-space: normal !important;
  color: #202020 !important;
  font-size: 14rem !important;
  line-height: 1.45 !important;
  font-weight: 400 !important;
  text-align: left !important;
}

body.woocommerce-checkout #ec_privacy_accept_field input[type="checkbox"],
body.woocommerce-checkout .ec-checkout-privacy input[type="checkbox"] {
  position: static !important;
  grid-column: 1 !important;
  grid-row: 1 !important;
  flex: none !important;
  width: 16rem !important;
  height: 16rem !important;
  min-width: 16rem !important;
  min-height: 16rem !important;
  max-width: 16rem !important;
  margin: 2rem 0 0 !important;
  padding: 0 !important;
}

body.woocommerce-checkout #ec_privacy_accept_field label > span:not(.required),
body.woocommerce-checkout .ec-checkout-privacy label > span:not(.required) {
  grid-column: 2 !important;
  grid-row: 1 !important;
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}

/* WooCommerce versions differ in the required marker markup. Hide the native
   marker and render exactly one star after the consent text. */
body.woocommerce-checkout #ec_privacy_accept_field label > .required,
body.woocommerce-checkout #ec_privacy_accept_field label > abbr.required,
body.woocommerce-checkout .ec-checkout-privacy label > .required,
body.woocommerce-checkout .ec-checkout-privacy label > abbr.required {
  display: none !important;
}

body.woocommerce-checkout #ec_privacy_accept_field label > span:not(.required)::after,
body.woocommerce-checkout .ec-checkout-privacy label > span:not(.required)::after {
  content: " *";
  color: #b42318;
  font-weight: 700;
}

body.woocommerce-checkout #ec_privacy_accept_field.ec-checkout-client-invalid,
body.woocommerce-checkout #ec_privacy_accept_field.woocommerce-invalid,
body.woocommerce-checkout .ec-checkout-privacy.ec-checkout-client-invalid,
body.woocommerce-checkout .ec-checkout-privacy.woocommerce-invalid {
  margin-left: -8rem !important;
  margin-right: -8rem !important;
  width: calc(100% + 16rem) !important;
  padding: 9rem 8rem 10rem !important;
}

@media (max-width: 767px) {
  .ec-mini-cart__content .woocommerce-mini-cart-item {
    grid-template-columns: 50rem minmax(0, 1fr) 22rem;
    column-gap: 10rem;
    padding: 10rem 0 !important;
  }

  .ec-mini-cart__content .woocommerce-mini-cart-item > a:not(.remove) {
    grid-template-columns: 50rem minmax(0, 1fr);
    column-gap: 10rem;
    font-size: 13rem;
  }

  .ec-mini-cart__content .woocommerce-mini-cart-item > a:not(.remove) img {
    width: 50rem !important;
    height: 50rem !important;
  }

  body.woocommerce-checkout #ec_privacy_accept_field > label,
  body.woocommerce-checkout #ec_privacy_accept_field label.checkbox,
  body.woocommerce-checkout #ec_privacy_accept_field label.woocommerce-form__label-for-checkbox,
  body.woocommerce-checkout .ec-checkout-privacy > label,
  body.woocommerce-checkout .ec-checkout-privacy label.checkbox,
  body.woocommerce-checkout .ec-checkout-privacy label.woocommerce-form__label-for-checkbox {
    grid-template-columns: 18rem minmax(0, 1fr) !important;
    column-gap: 9rem !important;
    font-size: 13rem !important;
    line-height: 1.4 !important;
  }
}

/* =========================================================
   v0.1.48 — deterministic checkout consent + payer select arrow
   ========================================================= */

/* Privacy consent: use the stable markup emitted by inc/woocommerce.php.
   Flex is intentional here: it prevents the label text from collapsing into
   a narrow grid column on WooCommerce versions with different checkbox HTML. */
body.woocommerce-checkout #ec_privacy_accept_field {
  clear: both !important;
  float: none !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 4rem 0 15rem !important;
  padding: 0 !important;
}

body.woocommerce-checkout #ec_privacy_accept_field .ec-checkout-privacy__label {
  display: flex !important;
  flex-flow: row nowrap !important;
  align-items: flex-start !important;
  gap: 9rem !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #202020 !important;
  font-size: 14rem !important;
  line-height: 1.45 !important;
  font-weight: 400 !important;
  text-align: left !important;
  white-space: normal !important;
  cursor: pointer;
}

body.woocommerce-checkout #ec_privacy_accept_field .ec-checkout-privacy__label > input[type="checkbox"] {
  position: static !important;
  display: block !important;
  flex: 0 0 16rem !important;
  width: 16rem !important;
  height: 16rem !important;
  min-width: 16rem !important;
  min-height: 16rem !important;
  max-width: 16rem !important;
  margin: 2rem 0 0 !important;
  padding: 0 !important;
  accent-color: var(--ec-color-accent, #BB9C69);
}

body.woocommerce-checkout #ec_privacy_accept_field .ec-checkout-privacy__text {
  display: block !important;
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}

/* Exactly one required marker; the custom markup contains no native Woo abbr. */
body.woocommerce-checkout #ec_privacy_accept_field .ec-checkout-privacy__text::after {
  content: " *" !important;
  color: #b42318;
  font-weight: 700;
}

body.woocommerce-checkout #ec_privacy_accept_field .ec-checkout-privacy__text a {
  color: var(--ec-color-accent, #BB9C69) !important;
  text-decoration: underline;
  text-underline-offset: 2rem;
}

body.woocommerce-checkout #ec_privacy_accept_field.ec-checkout-client-invalid,
body.woocommerce-checkout #ec_privacy_accept_field.woocommerce-invalid {
  margin-left: -8rem !important;
  margin-right: -8rem !important;
  width: calc(100% + 16rem) !important;
  padding: 9rem 8rem 10rem !important;
  border-left: 3rem solid #b42318;
  background: rgba(180, 35, 24, .065);
}

body.woocommerce-checkout #ec_privacy_accept_field.ec-checkout-client-invalid input[type="checkbox"],
body.woocommerce-checkout #ec_privacy_accept_field.woocommerce-invalid input[type="checkbox"] {
  outline: 2rem solid #b42318;
  outline-offset: 2rem;
}

/* Plain Woo select can lose the browser arrow after checkout normalization.
   Draw the payer-type chevron explicitly so it is always visible. */
body.woocommerce-checkout #ec_payer_type {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  padding-right: 46rem !important;
  background-color: #fff !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' viewBox='0 0 16 10'%3E%3Cpath d='M2 2l6 6 6-6' fill='none' stroke='%23202020' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 16rem center !important;
  background-size: 16rem 10rem !important;
}

@media (max-width: 767px) {
  body.woocommerce-checkout #ec_privacy_accept_field .ec-checkout-privacy__label {
    gap: 9rem !important;
    font-size: 13rem !important;
    line-height: 1.4 !important;
  }

  body.woocommerce-checkout #ec_payer_type {
    padding-right: 42rem !important;
    background-position: right 13rem center !important;
    background-size: 14rem 9rem !important;
  }
}
