/* WooCommerce styling to match the premium landing-page aesthetic */

.woocommerce,
.woocommerce-page{
  font-family: var(--font-sans);
  color: var(--text);
}

.woocommerce a{ color: inherit; text-decoration: none; }
.woocommerce a:hover{ opacity: 1; }

/* Page header area (boutique composition) */
.woocommerce .woocommerce-breadcrumb{
  color: rgba(31,35,40,0.50);
  margin: 0 0 14px;
  font-size: 13px;
}

.woocommerce-products-header{
  margin: 0 0 14px;
}

.woocommerce-products-header__title,
.woocommerce h1.page-title{
  font-family: var(--font-serif);
  letter-spacing: -0.02em;
  font-weight: 650;
  font-size: clamp(30px, 3.3vw, 44px);
  margin: 0;
}

.woocommerce .term-description,
.woocommerce-products-header .term-description{
  color: rgba(31,35,40,0.62);
  font-size: 15px;
  margin: 10px 0 0;
  max-width: 70ch;
  line-height: 1.65;
}

/* Toolbar row: result count + sorting together */
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering{
  margin-top: 10px;
}

@media (min-width: 720px){
  .woocommerce .woocommerce-result-count{ float: none; display: inline-flex; align-items: center; }
  .woocommerce .woocommerce-ordering{ float: none; display: inline-flex; align-items: center; }

  .woocommerce .woocommerce-result-count,
  .woocommerce .woocommerce-ordering{
    margin-top: 14px;
  }
}

.woocommerce .woocommerce-result-count{
  color: rgba(31,35,40,0.55);
  font-size: 13px;
  font-weight: 650;
}

/* Gift Voucher (frontend styling) */
.lm-gv-wrap{ max-width: 860px; margin: 18px 0 24px; }

.single-product .lm-gv-wrap{ margin-top: 16px; }

/* Sorting controls */
.woocommerce .woocommerce-ordering{
  position: relative;
  width: 100%;
}

@media (min-width: 720px){
  .woocommerce .woocommerce-ordering{ width: auto; }
}

.woocommerce .woocommerce-ordering select{
  appearance: none;
  -webkit-appearance: none;
  width: 100%;

  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.12);
  padding: 11px 42px 11px 14px;
  background: rgba(255,255,255,.88);
  font-weight: 800;
  letter-spacing: 0.01em;
  box-shadow: 0 14px 30px -26px rgba(16, 24, 40, 0.22);
}

.woocommerce .woocommerce-ordering:after{
  content: "▾";
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: rgba(31,35,40,0.55);
  pointer-events: none;
  font-size: 12px;
}

/* Build a single toolbar layout without editing Woo templates */
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering{
  display: block;
}

@media (min-width: 720px){
  .woocommerce .woocommerce-result-count,
  .woocommerce .woocommerce-ordering{
    display: inline-flex;
    vertical-align: middle;
  }

  .woocommerce .woocommerce-result-count{ margin-right: 12px; }
}

/* Notices (premium toast) */
.woocommerce-notices-wrapper{ position: relative; }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error{
  border-radius: 18px;
  padding: 12px 14px;
  border: 1px solid rgba(0,0,0,.10);
  background:
    radial-gradient(140% 220% at 20% 0%, rgba(255,255,255,.72) 0%, rgba(255,255,255,.20) 55%, rgba(255,255,255,.12) 100%),
    rgba(16,18,22,.04);
  color: var(--text);
  margin: 0 0 18px;
  box-shadow:
    0 24px 70px rgba(0,0,0,.12),
    inset 0 1px 0 rgba(255,255,255,.65);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

/* Make "Added to cart" feel like a floating notice */
.woocommerce-notices-wrapper{ position: static; }

.single-product .woocommerce-notices-wrapper{
  position: fixed;
  top: 128px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 999;
  width: min(720px, calc(100% - 28px));
  pointer-events: none; /* only the notice itself should be clickable */
}

/* Error Notice Styling specifically for WooCommerce error lists */
.woocommerce-error {
  border-left: 4px solid #e2401c;
  padding: 16px 20px;
  list-style: none;
  margin-left: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  pointer-events: auto;
}

.woocommerce-error li {
  position: relative;
  padding-left: 24px;
  font-size: 15px;
  color: #ba2807;
  font-weight: 500;
  line-height: 1.4;
}

.woocommerce-error li::before {
  content: "!";
  position: absolute;
  left: 0;
  top: 1px;
  width: 16px;
  height: 16px;
  background: #e2401c;
  color: white;
  border-radius: 50%;
  font-size: 11px;
  font-weight: bold;
  display: flex;
  align-items: center;
  justify-content: center;
}

.woocommerce-message{
  position: relative;
  pointer-events: auto;

  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto auto;
  gap: 12px;
  align-items: center;

  width: 100% !important;
  max-width: 100%;
  min-width: 0 !important;

  border-radius: 22px;
  padding: 12px 12px 12px 14px;

  /* Absolute safeguard against letter-by-letter stacking */
  writing-mode: horizontal-tb;
  text-orientation: mixed;
  white-space: normal;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}

/* Wrap Woo's raw text node so it behaves */
.woocommerce-message{
  text-wrap: pretty;
}

/* When Woo prints the product name in <a>, keep it inline */
.woocommerce-message a{
  display: inline;
}

/* The message text should take the full available width */
.woocommerce-message{
  grid-template-columns: 18px minmax(0, 1fr) auto auto;
}

.woocommerce-message:before{
  align-self: start;
  margin-top: 2px;
}

/* keep message text from collapsing into a vertical column */
.woocommerce-message,
.woocommerce-message *{
  min-width: 0;
}

/* Force any stray text nodes to render in a normal flow */
.woocommerce-message{
  display: flex;
  align-items: center;
  gap: 12px;
}

.woocommerce-message:before{ flex: 0 0 auto; }
.woocommerce-message .lm-notice-text{ flex: 1 1 auto; min-width: 0; }
.woocommerce-message .button{ flex: 0 0 auto; }
.woocommerce-message .lm-notice-dismiss{ flex: 0 0 auto; }

/* Wrap the actual message text into a flexible span via pseudo wrapper using CSS only */
.woocommerce-message{
  position: relative;
}

.woocommerce-message{
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
  line-height: 1.35;
}

.woocommerce-message{
  white-space: normal;
}

.woocommerce-message{
  text-wrap: pretty;
}

.woocommerce-message{
  font-size: 14px;
}

/* Dismiss button */
.woocommerce-message .lm-notice-dismiss{
  appearance: none;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.55);
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display: inline-grid;
  place-items: center;
  cursor: pointer;
  box-shadow: 0 14px 30px -26px rgba(16, 24, 40, 0.22);
  transition: transform .15s ease, background .15s ease, border-color .15s ease;
}
.woocommerce-message .lm-notice-dismiss:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.75);
  border-color: rgba(0,0,0,.14);
}
.woocommerce-message .lm-notice-dismiss:focus{ outline: none; }

.woocommerce-message .lm-notice-dismiss svg{ width: 16px; height: 16px; }

@media (max-width: 520px){
  .single-product .woocommerce-notices-wrapper{ top: 78px; }
  .woocommerce-message{ grid-template-columns: 18px minmax(0, 1fr) auto; }
  .woocommerce-message .lm-notice-dismiss{ grid-column: 3; }
}

/* On single product, align toast with the summary (buy box) */
.single-product .woocommerce-notices-wrapper{
  display: grid;
  grid-template-columns: 1fr;
  justify-items: end;
  margin: 0 0 14px;
  min-width: 0;
}

@media (min-width: 980px){
  .single-product .woocommerce-notices-wrapper{
    margin: 0 0 16px;
  }
}

.woocommerce-message:before{ display: none; }

.woocommerce-message{
  border-radius: 22px;
}

/* Button inside notice (View cart) */
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button{
  border-radius: 999px;
  padding: 4px 8px;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.55);
  font-weight: 850;
  letter-spacing: 0.01em;
  box-shadow: 0 14px 30px -26px rgba(16, 24, 40, 0.22);
  transition: transform .15s ease, background .15s ease, border-color .15s ease;
  white-space: nowrap;
  font-size: 11px;
  line-height: 1;
  height: 26px;
  display: inline-flex;
  align-items: center;
  width: auto !important;
  max-width: fit-content;
}

.woocommerce-message .button.wc-forward{
  flex: 0 0 auto;
}

.woocommerce-message .button:hover,
.woocommerce-info .button:hover,
.woocommerce-error .button:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.72);
  border-color: rgba(0,0,0,.14);
}

/* Remove Woo default icon spacing quirks */
.woocommerce-message:before,
.woocommerce-info:before,
.woocommerce-error:before{ margin: 0; }

/* Info notices (e.g. "No orders yet", "Returning customer?") */
.woocommerce-info {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  position: relative;
  padding-left: 50px; /* Space for icon */
}

/* Icon for info notices */
.woocommerce-info::before {
  content: "i";
  font-family: serif;
  font-style: italic;
  font-weight: 700;
  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--primary);
  color: var(--primary-ink);
  border-radius: 50%;
  font-size: 14px;
  margin: 0;
}

/* Ensure text doesn't overlap */
.woocommerce-info {
  color: var(--text);
  font-weight: 500;
  line-height: 1.5;
}

/* Button inside info notices (e.g. Browse Products) */
.woocommerce-info .button {
  border-radius: 999px;
  padding: 10px 20px;
  border: 1px solid rgba(0,0,0,0.1);
  background: var(--primary);
  color: var(--primary-ink);
  font-weight: 700;
  font-size: 14px;
  line-height: 1;
  text-decoration: none;
  height: auto;
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: auto; /* Push to right if flex */
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  transition: all 0.2s ease;
  width: auto;
  max-width: none;
}

.woocommerce-info .button:hover {
  transform: translateY(-1px);
  filter: brightness(0.95);
  box-shadow: 0 6px 16px rgba(0,0,0,0.12);
}

/* Responsive: stack on mobile */
@media (max-width: 600px) {
  .woocommerce-info {
    flex-direction: column;
    align-items: flex-start;
    padding-left: 20px;
    padding-top: 50px; /* Space for icon at top */
  }
  
  .woocommerce-info::before {
    top: 18px;
    left: 20px;
    transform: none;
  }
  
  .woocommerce-info .button {
    margin-left: 0;
    width: 100%;
  }
}

/* Product grid (boutique: slightly denser, consistent rhythm) */
.woocommerce ul.products{
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin: 18px 0 0;
  padding: 0;

  justify-content: flex-start;
  align-items: stretch;
  align-content: flex-start;

  list-style: none;
}

/* Some themes apply a left offset only to the first row (via row-clearing rules).
   Force the whole flex line-box to start flush left. */
.woocommerce ul.products::before,
.woocommerce ul.products::after{ display:none !important; content:none !important; }

/* Use fixed per-row counts so columns always line up */
.woocommerce ul.products > li.product{
  flex: 0 0 calc(50% - 8px);
  box-sizing: border-box;
}

@media (min-width: 720px){
  .woocommerce ul.products > li.product{ flex: 0 0 calc(33.333% - 11px); }
}

@media (min-width: 1100px){
  .woocommerce ul.products > li.product{ flex: 0 0 calc(25% - 12px); }
}

/* Neutralize Woo's legacy column rules that target .columns-* specifically */
.woocommerce ul.products[class*="columns-"] li.product{
  float: none !important;
  clear: none !important;
  margin-left: 0 !important;
  padding-left: 0 !important;
}

.woocommerce ul.products.columns-4 li.product.first,
.woocommerce ul.products.columns-4 li.product:nth-child(4n+1){
  clear: none !important;
  margin-left: 0 !important;
}

.woocommerce ul.products.columns-4 li.product{
  width: auto !important;
}

/* If the products grid is inside a centered wrapper, align that wrapper instead of shifting the whole site */
.woocommerce .lm-shop-main{ width: 100%; }
.woocommerce .lm-shop-main .products{ margin-left: 0; margin-right: 0; }

@media (min-width: 720px){
  .woocommerce ul.products{ grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
}
@media (min-width: 1100px){
  .woocommerce ul.products{ grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
}

.woocommerce ul.products li.product{
  list-style: none;
  float: none !important;
  width: auto !important;
  margin: 0 !important;

  border-radius: 22px;
  overflow: hidden;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(0,0,0,.07);
  box-shadow: 0 22px 60px rgba(0,0,0,.10);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  transform: translateZ(0);

  /* If a theme/plugin injects a hidden "first" item, it can look like a blank card.
     Ensure empty list items never render as a tile. */
  display: block;
}

.woocommerce ul.products li.product:empty{ display: none !important; }
.woocommerce ul.products li.product:not(:has(a.woocommerce-LoopProduct-link)):not(:has(.woocommerce-LoopProduct-link)){ display: none !important; }

.woocommerce ul.products li.product:hover{
  transform: translateY(-2px);
  box-shadow: 0 28px 80px rgba(0,0,0,.12);
  border-color: rgba(0,0,0,.10);
}

.woocommerce ul.products li.product a.woocommerce-LoopProduct-link{
  display: block;
  padding: 12px 12px 0;
}

.woocommerce ul.products li.product a img{
  width: 100%;
  height: 220px;
  object-fit: cover;
  border-radius: 18px;
  margin: 0;
}

@media (min-width: 720px){
  .woocommerce ul.products li.product a img{ height: 240px; }
}

.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family: var(--font-serif);
  font-size: 17px;
  font-weight: 650;
  margin: 12px 2px 6px;
  line-height: 1.15;
  letter-spacing: -0.01em;
}

.woocommerce ul.products li.product .price{
  color: rgba(31,35,40,0.62);
  font-weight: 800;
  margin: 0 2px 12px;
  letter-spacing: 0.01em;
}

.woocommerce ul.products li.product .price del{ opacity: .6; font-weight: 750; }
.woocommerce ul.products li.product .price ins{ text-decoration: none; }

/* Add to cart button (boutique: cleaner, quieter but premium) */
.woocommerce ul.products li.product a.button,
.woocommerce ul.products li.product a.add_to_cart_button{
  display: block;
  width: calc(100% - 24px);
  margin: 0 12px 12px;
  text-align: center;

  border-radius: 999px;
  padding: 12px 16px;
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,.92);
  color: rgba(17,17,17,0.92);
  font-weight: 800;
  letter-spacing: 0.01em;
  box-shadow: 0 14px 34px rgba(0,0,0,.10);
  transition: transform .16s ease, filter .16s ease, background .16s ease;
}

.woocommerce ul.products li.product:hover a.button,
.woocommerce ul.products li.product:hover a.add_to_cart_button{
  background: var(--primary);
  color: var(--primary-ink);
}

.woocommerce ul.products li.product a.button:hover{
  transform: translateY(-1px);
  filter: brightness(0.99);
}

/* Single product (premium boutique) */
.woocommerce div.product{
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
}

@media (min-width: 980px){
  /* One composed block: the product itself becomes the shared glass panel */
  .woocommerce div.product{
    /* Smaller photo block so the summary pulls closer */
    grid-template-columns: minmax(380px, 460px) 1fr;
    align-items: start;
    gap: 0;

    border-radius: 34px;
    padding: 18px;
    background:
      radial-gradient(120% 170% at 18% 12%, rgba(255,255,255,.66) 0%, rgba(255,255,255,.22) 55%, rgba(255,255,255,.14) 100%),
      radial-gradient(140% 210% at 80% 10%, rgba(210,176,70,.12) 0%, rgba(210,176,70,0) 60%),
      rgba(16,18,22,.02);
    border: 1px solid rgba(0,0,0,.10);
    box-shadow:
      0 48px 120px rgba(0,0,0,.12),
      inset 0 1px 0 rgba(255,255,255,.70);
  }

  /* Tight internal rhythm */
  .woocommerce div.product .woocommerce-product-gallery{ padding: 12px; }
  .woocommerce div.product .summary{ padding: 18px 18px 16px; }

  /* Remove the "two separate cards" look */
  .woocommerce div.product .woocommerce-product-gallery,
  .woocommerce div.product .summary{
    background: transparent;
    border: 0;
    box-shadow: none;
  }

  /* Soft divider between image and buy box */
  .woocommerce div.product .summary{
    border-left: 1px solid rgba(0,0,0,.08);
    margin-left: 0;
  }

  /* Keep the image area compact and centered */
  .woocommerce div.product .woocommerce-product-gallery{ align-self: start; }
}

@media (min-width: 1200px){
  .woocommerce div.product{
    grid-template-columns: minmax(420px, 520px) 1fr;
    padding: 22px;
  }
}

.woocommerce div.product .woocommerce-product-gallery{
  border-radius: 26px;
  overflow: hidden;
  padding: 14px;

  /* Slight inset within box 1 */
  width: 90% !important;
  max-width: none !important;
  justify-self: center;

  height: auto;
  align-self: flex-start;

  display: grid;
  place-items: center;
}

/* Keep the image itself feeling like a framed piece within the shared panel */
@media (min-width: 980px){
  .woocommerce div.product .woocommerce-product-gallery{
    background: rgba(255,255,255,.18);
    border: 1px solid rgba(0,0,0,.08);
    box-shadow: 0 22px 60px rgba(0,0,0,.08);
  }
}

.woocommerce div.product .woocommerce-product-gallery img{
  border-radius: 18px;
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
}

.woocommerce div.product .summary{
  border-radius: 26px;
  padding: 18px 18px 16px;
}

/* In the shared panel layout, the summary becomes a clean right-side column */
@media (min-width: 980px){
  .woocommerce div.product .summary{
    border-radius: 0 26px 26px 0;
  }
}

@media (min-width: 980px){
  .woocommerce div.product .summary{
    position: static;
    top: auto;
    max-width: none;
    width: 100%;
    justify-self: stretch;
    margin-left: 0;
  }

  /* Make buy box fill its column */
  .woocommerce div.product .summary.entry-summary{
    width: 100%;
    height: 100%;
    align-self: stretch;
    justify-self: stretch;
  }
}

.woocommerce div.product .product_title{
  font-family: var(--font-serif);
  font-weight: 650;
  letter-spacing: -0.02em;
  margin: 0;
  font-size: clamp(26px, 2.6vw, 36px);
  line-height: 1.05;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price{
  margin: 10px 0 0;
  color: rgba(31,35,40,0.66);
  font-weight: 850;
  font-size: 18px;
  letter-spacing: 0.01em;
}

.woocommerce div.product .woocommerce-product-details__short-description{
  margin-top: 12px;
  color: rgba(31,35,40,0.64);
  line-height: 1.65;
}

/* Trust bullets (uses existing Woo markup if present) */
.woocommerce div.product .summary .product_meta{
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(0,0,0,.08);
  color: rgba(31,35,40,0.60);
  font-size: 13px;
}

.woocommerce div.product form.cart{
  margin-top: 14px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  align-items: center;
  justify-items: center;
}

@media (max-width: 420px){
  .woocommerce div.product form.cart{ grid-template-columns: 1fr; }
}

.woocommerce div.product form.cart .quantity{
  margin: 0;
}

.woocommerce div.product form.cart .quantity input.qty{
  width: min(100%, 320px);
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.12);
  padding: 12px 14px;
  background: rgba(255,255,255,.92);
  font-weight: 800;
  text-align: center;
}

.woocommerce div.product form.cart button.single_add_to_cart_button{
  width: min(50%, 260px);
  border-radius: 999px;
  padding: 13px 18px;
  border: 1px solid rgba(0,0,0,.10);
  background: var(--primary);
  color: var(--primary-ink);
  font-weight: 900;
  letter-spacing: 0.01em;
  box-shadow: 0 18px 44px rgba(0,0,0,.12);
  transition: transform .16s ease, filter .16s ease;
  justify-self: center;
}

.woocommerce div.product form.cart button.single_add_to_cart_button:hover{
  transform: translateY(-1px);
  filter: brightness(0.99);
}

/* Tabs / long description */
.woocommerce div.product .woocommerce-tabs{
  display: block;
  margin-top: 18px;
}

/* On desktop, push tabs below the combined image+buy panel */
@media (min-width: 980px){
  .woocommerce div.product .woocommerce-tabs{
    grid-column: 1 / -1;
    margin-top: 18px;

    border-radius: 28px;
    padding: 16px;
    background:
      radial-gradient(120% 170% at 18% 12%, rgba(255,255,255,.66) 0%, rgba(255,255,255,.22) 55%, rgba(255,255,255,.14) 100%),
      rgba(16,18,22,.02);
    border: 1px solid rgba(0,0,0,.10);
    box-shadow:
      0 36px 90px rgba(0,0,0,.10),
      inset 0 1px 0 rgba(255,255,255,.70);
  }
}

/* Make attributes table feel premium + readable */
.woocommerce table.woocommerce-product-attributes{
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 18px;
  overflow: hidden;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 18px 44px rgba(0,0,0,.06);
}

.woocommerce table.woocommerce-product-attributes th,
.woocommerce table.woocommerce-product-attributes td{
  padding: 12px 14px;
  border-top: 1px solid rgba(0,0,0,.08);
  vertical-align: top;
}

.woocommerce table.woocommerce-product-attributes tr:first-child th,
.woocommerce table.woocommerce-product-attributes tr:first-child td{
  border-top: 0;
}

.woocommerce table.woocommerce-product-attributes th{
  width: 38%;
  color: rgba(31,35,40,0.66);
  font-weight: 850;
  letter-spacing: 0.01em;
}

.woocommerce table.woocommerce-product-attributes td{
  color: rgba(31,35,40,0.78);
}

/* Cart & Checkout (premium flow surfaces) */
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce{
  padding-top: 6px;
}

.woocommerce table.shop_table{
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 22px;
  overflow: hidden;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(0,0,0,.07);
  box-shadow: 0 22px 60px rgba(0,0,0,.08);
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td{
  padding: 14px 14px;
  border-color: rgba(0,0,0,.07);
}

.woocommerce table.shop_table th{
  font-weight: 850;
  color: rgba(31,35,40,0.78);
}

.woocommerce .cart_totals,
.woocommerce .woocommerce-checkout-review-order,
.woocommerce-checkout #order_review,
.woocommerce-checkout #customer_details{
  border-radius: 26px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(0,0,0,.07);
  box-shadow: 0 24px 70px rgba(0,0,0,.10);
  padding: 16px;
}

.woocommerce form .form-row{
  margin-bottom: 14px;
}

.woocommerce form .form-row label{
  font-weight: 800;
  color: rgba(31,35,40,0.75);
  margin-bottom: 6px;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select{
  border-radius: 16px;
  border: 1px solid rgba(0,0,0,.12);
  padding: 12px 12px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 12px 30px rgba(0,0,0,.06);
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus{
  outline: none;
  border-color: rgba(0,0,0,.18);
}

.woocommerce #payment{
  border-radius: 26px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(0,0,0,.07);
  box-shadow: 0 24px 70px rgba(0,0,0,.10);
  padding: 16px;
}

.woocommerce-checkout #place_order{
  border-radius: 999px;
  padding: 13px 18px;
  border: 1px solid rgba(0,0,0,.10);
  background: var(--primary);
  color: var(--primary-ink);
  font-weight: 900;
  letter-spacing: 0.01em;
  box-shadow: 0 18px 44px rgba(0,0,0,.12);
}

.woocommerce-checkout #place_order:hover{
  filter: brightness(0.99);
}

/* Notices (more premium) */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error{
  border-radius: 20px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 18px 44px rgba(0,0,0,.08);
}


/* Shop layout */
.lm-woo-container{ padding: 42px 0 90px; }
.lm-shop-layout{
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 22px;
  align-items: start;

  /* Ensure the main column starts at the left edge of its own track */
  justify-items: stretch;
}

/* In case any template wraps products in a centered flex/flow layout */
.lm-shop-main,
.woocommerce .lm-shop-main{
  text-align: left;
  justify-content: start;
}

.woocommerce .lm-shop-main ul.products{
  margin-left: 0;
  margin-right: 0;
  justify-content: start;
  justify-items: start;
}

.woocommerce .lm-shop-main ul.products li.product{
  justify-self: start;
}
@media (max-width: 980px){
  .lm-shop-layout{ grid-template-columns: 1fr; }
  .lm-shop-sidebar{ order: 2; }
  .lm-shop-main{ order: 1; }
}

.lm-sidebar-card{
  border-radius: 24px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.44), rgba(255,255,255,.16)),
    radial-gradient(120% 160% at 20% 10%, rgba(210,176,70,.10) 0%, rgba(210,176,70,0) 55%),
    rgba(16,18,22,.03);
  border: 1px solid rgba(0,0,0,.10);
  box-shadow:
    0 26px 70px rgba(0,0,0,.12),
    inset 0 1px 0 rgba(255,255,255,.55);
  padding: 14px;
  position: sticky;
  top: 86px; /* below header */
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

/* Hard override: keep sidebar from being bleached by global styles */
.woocommerce .lm-shop-sidebar .lm-sidebar-card{
  background:
    linear-gradient(180deg, rgba(255,255,255,.44), rgba(255,255,255,.16)),
    radial-gradient(120% 160% at 20% 10%, rgba(210,176,70,.10) 0%, rgba(210,176,70,0) 55%),
    rgba(16,18,22,.03) !important;
}
@media (max-width: 980px){
  .lm-sidebar-card{ position: static; }
}

.lm-sidebar-title{
  margin: 0 0 12px;
  font: 800 11px/1.1 var(--font-sans);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(17,19,22,.55);
}

/* Fix Gallery Slider Overlap */
.woocommerce-product-gallery {
  position: relative;
  margin-bottom: 24px !important;
  /* Allow container to grow with thumbnails */
  height: auto !important;
  overflow: visible !important;
  padding-bottom: 20px !important; /* Extra space for thumbnails */
}

/* Ensure main image viewport is clear */
.woocommerce-product-gallery__viewport {
  margin-bottom: 16px !important;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,0.06);
}

/* Push thumbnails down and reset flex container */
.flex-control-nav.flex-control-thumbs {
  position: relative !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  margin-top: 10px !important;
  padding: 0 4px !important; /* Slight padding to prevent edge clipping */
  overflow: visible !important;
  /* Reset any absolute positioning from Woo/FlexSlider */
  top: auto !important;
  bottom: auto !important;
  left: auto !important;
  right: auto !important;
}

.flex-control-nav.flex-control-thumbs li {
  width: 22% !important; /* show roughly 4 in a row */
  flex: 0 0 22% !important;
  margin: 0 !important;
  float: none !important;
  cursor: pointer;
}

.flex-control-nav.flex-control-thumbs img {
  border-radius: 8px !important;
  opacity: 0.7;
  transition: opacity 0.2s ease, transform 0.2s ease;
  width: 100% !important;
  height: auto !important;
  display: block;
}

.flex-control-nav.flex-control-thumbs img.flex-active,
.flex-control-nav.flex-control-thumbs img:hover {
  opacity: 1;
  transform: scale(1.02);
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.lm-catlist{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}

.lm-catitem{ margin: 0; padding: 0; }

.lm-catitem--parent{
  padding: 0;
  border-radius: 16px;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.16);
  overflow: hidden;
}

.lm-catlink{
  position: relative;
  display: block;
  padding: 10px 12px 10px 14px;
  border-radius: 0;
  font: 800 14px/1.15 var(--font-sans);
  letter-spacing: -0.01em;
  color: rgba(17,19,22,.86);
  background: transparent;
  border: 0;
  transition: background .15s ease, color .15s ease, padding .15s ease;
}

/* Thin gold top border = "tab" */
.lm-catlink:before{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 2px;
  background: rgba(210,176,70,0);
  transition: background .15s ease;
}

.lm-catlink:hover{
  background: rgba(255,255,255,.26);
}

.lm-catlink.is-active{
  background: rgba(255,255,255,.34);
  color: rgba(17,19,22,.98);
}

.lm-catlink.is-active:before{
  background: linear-gradient(90deg, rgba(210,176,70,0), rgba(210,176,70,1), rgba(210,176,70,0));
}

/* Child list = compact stacked links, no pills, no chips */
.lm-catlist--child{
  margin: 0;
  padding: 8px;
  display: grid;
  gap: 6px;
  border-top: 1px solid rgba(0,0,0,.08);
  background: rgba(16,18,22,.02);
}

.lm-catitem--child .lm-catlink{
  padding: 9px 10px;
  border-radius: 12px;
  font: 750 13px/1.15 var(--font-sans);
  color: rgba(17,19,22,.72);
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(0,0,0,.08);
}

.lm-catitem--child .lm-catlink:hover{ background: rgba(255,255,255,.28); }

.lm-catitem--child .lm-catlink.is-active{
  color: rgba(17,19,22,.98);
  border-color: rgba(210,176,70,.45);
  background: rgba(210,176,70,.14);
}

.lm-catlist--child:not(.is-open){ display:none; }

/* Ensure shop content is left-aligned */
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering,
.woocommerce-products-header{
  text-align: left;
}

/* Product grid alignment: never center single items */
.woocommerce ul.products{
  justify-content: start;
  justify-items: stretch;
  align-items: stretch;
}
.woocommerce ul.products li.product{
  justify-self: stretch;
}


/* Category tile strip on shop/category pages (showcase-first, still boutique) */
.lm-cat-tiles{
  margin: 0 0 30px;
}

.lm-cat-tiles__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin: 8px 0 16px;
}

.lm-cat-tiles__title{
  font-family: var(--font-serif);
  font-weight: 650;
  letter-spacing: -0.02em;
  font-size: 18px;
}

.lm-cat-tiles__sub{
  color: rgba(31,35,40,0.55);
  font-size: 13px;
  font-weight: 650;
}

/* My pick: slightly larger tiles on mobile for instant “wow” */
.lm-cat-tiles__grid{
  gap: 14px;
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

@media (min-width: 560px){
  .lm-cat-tiles__grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 720px){
  .lm-cat-tiles__grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 1100px){
  .lm-cat-tiles__grid{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Make single-item grids align left */
.woocommerce ul.products{ justify-content: start; }

/* My Account (premium, consistent with boutique surfaces) */
.woocommerce-account .woocommerce{
  padding-top: 6px;
}

.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content{
  border-radius: 26px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(0,0,0,.07);
  box-shadow: 0 24px 70px rgba(0,0,0,.10);
}

.woocommerce-account .woocommerce-MyAccount-navigation{
  padding: 12px;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}

.woocommerce-account .woocommerce-MyAccount-navigation li{
  margin: 0;
  padding: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation a{
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 11px 12px;
  border-radius: 16px;
  font-weight: 850;
  color: rgba(31,35,40,0.78);
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(0,0,0,.06);
}

.woocommerce-account .woocommerce-MyAccount-navigation a:hover{
  background: rgba(255,255,255,.85);
  color: rgba(31,35,40,0.95);
}

.woocommerce-account .woocommerce-MyAccount-navigation .is-active a{
  background: rgba(255,255,255,.92);
  color: rgba(31,35,40,0.98);
  border-color: rgba(0,0,0,.10);
}

.woocommerce-account .woocommerce-MyAccount-content{
  padding: 16px;
}

@media (min-width: 980px){
  .woocommerce-account .woocommerce-MyAccount-content{
    padding: 18px;
  }
}

.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3{
  font-family: var(--font-serif);
  letter-spacing: -0.02em;
  margin-top: 0;
}

/* Login/Register forms */
.woocommerce-account .woocommerce form.login,
.woocommerce-account .woocommerce form.register,
.woocommerce-account .woocommerce form.lost_reset_password{
  border-radius: 26px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(0,0,0,.07);
  box-shadow: 0 24px 70px rgba(0,0,0,.10);
  padding: 16px;
}

.woocommerce-account .woocommerce form .form-row{
  margin-bottom: 14px;
}

.woocommerce-account .woocommerce .button{
  border-radius: 999px;
  padding: 12px 16px;
  border: 1px solid rgba(0,0,0,.10);
  background: var(--primary);
  color: var(--primary-ink);
  font-weight: 900;
  letter-spacing: 0.01em;
  box-shadow: 0 18px 44px rgba(0,0,0,.12);
}

.woocommerce-account .woocommerce .button:hover{
  filter: brightness(0.99);
}

/* Tables in account area */
.woocommerce-account table.shop_table{
  border-radius: 22px;
  overflow: hidden;
}

/* Responsive layout: stacked on mobile, 2-col on desktop */
.woocommerce-account .woocommerce {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

@media (min-width: 980px) {
  .woocommerce-account .woocommerce {
    flex-direction: row;
    align-items: flex-start;
    gap: 40px;
  }
  
  .woocommerce-MyAccount-navigation {
    flex: 0 0 280px;
    width: 280px;
  }
  
  .woocommerce-MyAccount-content {
    flex: 1;
    min-width: 0; /* Prevent flex overflow */
  }
}

/* My Account Navigation Styling */
.woocommerce-MyAccount-navigation {
  background: #fff;
  border-radius: 20px;
  padding: 0;
  box-shadow: var(--shadow-sm);
  border: 1px solid rgba(0,0,0,0.08);
  overflow: hidden;
}

.woocommerce-MyAccount-navigation ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.woocommerce-MyAccount-navigation ul li {
  margin: 0;
  border-bottom: 1px solid rgba(0,0,0,0.06);
}

.woocommerce-MyAccount-navigation ul li:last-child {
  border-bottom: none;
}

.woocommerce-MyAccount-navigation ul li a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 24px;
  color: var(--text);
  font-weight: 600;
  font-size: 15px;
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
}

.woocommerce-MyAccount-navigation ul li.is-active a {
  background: rgba(245, 240, 230, 0.5); /* secondary color faint */
  color: var(--primary-ink);
  font-weight: 700;
  border-left: 4px solid var(--primary);
  padding-left: 20px; /* Compensate for border */
}

.woocommerce-MyAccount-navigation ul li a:hover {
  background: rgba(0,0,0,0.02);
  color: var(--primary-ink);
}

/* My Account Content Styling */
.woocommerce-MyAccount-content {
  background: #fff;
  border-radius: 20px;
  padding: 40px;
  box-shadow: var(--shadow-elevated);
  border: 1px solid rgba(0,0,0,0.06);
}

/* Fix floating issues inside content */
.woocommerce-MyAccount-content::after {
  content: "";
  display: table;
  clear: both;
}

.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 {
  font-family: var(--font-serif);
  margin-top: 0;
  margin-bottom: 24px;
  font-size: 26px;
  color: var(--primary-ink);
  border-bottom: 1px solid rgba(0,0,0,0.08);
  padding-bottom: 16px;
}

.woocommerce-MyAccount-content p {
  line-height: 1.65;
  color: rgba(31,35,40,0.8);
  margin-bottom: 20px;
  font-size: 15px;
}

.woocommerce-MyAccount-content a {
  color: var(--primary-ink);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  font-weight: 600;
}
.woocommerce-MyAccount-content a:hover {
  text-decoration-thickness: 2px;
}

/* Form Styles Override for Account */
.woocommerce-account form .form-row {
  margin-bottom: 20px;
}

.woocommerce-account form .form-row label {
  display: block;
  margin-bottom: 8px;
  color: var(--text);
}

.woocommerce-account form .input-text {
  background: rgba(250, 250, 250, 0.5);
}

.woocommerce-account legend {
  font-size: 20px;
  font-weight: 700;
  font-family: var(--font-serif);
  margin-bottom: 20px;
  display: block;
  width: 100%;
  border-bottom: 1px solid rgba(0,0,0,0.08);
  padding-bottom: 10px;
}

/* Address Box Grid */
.woocommerce-MyAccount-content .u-columns,
.woocommerce-MyAccount-content .col2-set {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 24px !important;
  width: 100% !important;
  margin: 0 !important;
}

@media (min-width: 768px) {
  .woocommerce-MyAccount-content .u-columns,
  .woocommerce-MyAccount-content .col2-set {
    flex-wrap: nowrap !important;
  }
}

/* Force WooCommerce columns to behave inside our grid */
.woocommerce-MyAccount-content .u-columns .woocommerce-Address,
.woocommerce-MyAccount-content .col2-set .u-column1,
.woocommerce-MyAccount-content .col2-set .u-column2 {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  flex: 1 1 0 !important; /* Force equal width */
  margin: 0 !important;
  padding: 0 !important;
}

.woocommerce-Address-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  margin-bottom: 12px;
}

.woocommerce-Address-title h3 {
  border-bottom: none;
  padding-bottom: 0;
  font-size: 20px;
  margin: 0;
  text-align: left;
}

/* Hide the default edit link if we are using the one inside title, 
   but usually Woo puts it inside title. 
   We want to make sure it doesn't break layout */
.woocommerce-Address-title .edit {
  margin: 0 !important;
  position: static !important;
}

.woocommerce-Address {
  background: var(--bg);
  padding: 24px;
  border-radius: 16px;
  border: 1px solid rgba(0,0,0,0.06);
  height: auto;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  text-align: left;
  align-items: flex-start;
  box-sizing: border-box;
}

.woocommerce-Address address {
  font-style: normal;
  line-height: 1.6;
  color: rgba(31,35,40,0.7);
  flex-grow: 1;
  width: 100%;
  text-align: left;
  margin-bottom: 16px; /* Space before button if button is below */
}

/* If the edit button is NOT in the title but after address (some themes) */
.woocommerce-Address > .edit {
  margin-top: auto; 
}

.woocommerce-MyAccount-content .edit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 16px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  color: var(--primary-ink);
  background: #fff;
  padding: 10px 20px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,0.12);
  align-self: flex-start;
  box-shadow: 0 2px 5px rgba(0,0,0,0.05);
  transition: all 0.2s ease;
}

.woocommerce-MyAccount-content .edit:hover {
  background: var(--primary);
  color: var(--primary-ink);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  border-color: rgba(0,0,0,0.05);
}

/* Sale Badge Override */
span.onsale {
    background-color: #ab8027 !important;
    color: #fff !important;
    padding: 6px 14px !important;
    border-radius: 40px !important;
    font-size: 0.85em !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    display: inline-block !important;
    min-height: auto !important;
    min-width: auto !important;
    line-height: 1.5 !important;
    box-shadow: 0 4px 10px rgba(171, 128, 39, 0.4) !important;
    position: absolute !important;
    top: 15px !important;
    left: 15px !important;
    z-index: 9 !important;
    /* Remove any previous glassmorphism/text effects */
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    text-shadow: none !important;
    border: none !important;
}
.woocommerce span.onsale {
    background-color: #ab8027 !important;
    color: #fff !important;
    padding: 6px 14px !important;
    border-radius: 40px !important;
    font-size: 0.85em !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    display: inline-block !important;
    min-height: auto !important;
    min-width: auto !important;
    line-height: 1.5 !important;
    box-shadow: 0 4px 10px rgba(171, 128, 39, 0.4) !important;
    position: absolute !important;
    top: 15px !important;
    left: 15px !important;
    z-index: 9 !important;
    /* Remove any previous glassmorphism/text effects */
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    text-shadow: none !important;
    border: none !important;
}

