/* ============================================================
   Freshma Flora — WooCommerce loop styles
   Selectors are deliberately specific so WooCommerce's own
   `.woocommerce ul.products li.product ...` rules do not win.
   ============================================================ */

.woocommerce ul.products,
.lpr__grid{
  --c:#7D029B;
  --c-dark:#65027E;
  --plum:#32113B;
  --txt:#29212C;
  --mut:#7A6F7D;
  --line:#EFE3F2;
  --line-2:#F5EDF7;
  --soft:#FAF6FB;

  display:grid!important;
  grid-template-columns:repeat(5,1fr);
  gap:clamp(12px,1.05vw,20px);
  margin:0!important;
  padding:0!important;
  list-style:none!important;
  font-family:'Cabin',system-ui,-apple-system,sans-serif;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after{content:none!important;display:none!important}


/* ============================================================
   CARD SHELL
   ============================================================ */

.woocommerce ul.products li.product,
.lpr__card{
  box-sizing:border-box;
  position:relative;
  display:flex;
  flex-direction:column;
  float:none!important;
  clear:none!important;
  width:auto!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden;
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  text-align:left!important;
  transition:transform .5s cubic-bezier(.2,.7,.2,1),
             box-shadow .5s ease,
             border-color .4s ease;
}

.lpr__card *,
.lpr__card *::before,
.lpr__card *::after{box-sizing:border-box}

.lpr__card h3,
.lpr__card p{margin:0;padding:0;border:0}

.lpr__card a{text-decoration:none;box-shadow:none;color:inherit}
.lpr__card button{font-family:inherit}
.lpr__card :focus-visible{outline:2px solid var(--c);outline-offset:3px;border-radius:8px}

.lpr__card::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
  border-radius:inherit;
  border:1px solid transparent;
  transition:border-color .45s ease;
}

.lpr__card:hover{
  transform:translateY(-8px);
  border-color:transparent;
  box-shadow:0 2px 6px -2px rgba(50,17,59,.10),
             0 18px 28px -18px rgba(50,17,59,.24),
             0 38px 60px -30px rgba(125,2,155,.30);
}

.lpr__card:hover::after{border-color:rgba(125,2,155,.16)}


/* ============================================================
   MEDIA
   ============================================================ */

.woocommerce ul.products li.product a.lpr__media,
.lpr__card a.lpr__media{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:4/5;
  margin:0;
  padding:0;
  overflow:hidden;
  background:#fff;
}

.lpr__media::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:
    radial-gradient(78% 62% at 50% 34%,var(--tint,#F7F1FA) 0%,rgba(255,255,255,0) 72%),
    linear-gradient(180deg,rgba(0,0,0,.012) 0%,rgba(255,255,255,0) 40%);
  transition:transform .8s cubic-bezier(.2,.7,.2,1);
}

.lpr__card:hover .lpr__media::before{transform:scale(1.14)}

.woocommerce ul.products li.product a.lpr__media img,
.lpr__card .lpr__media img{
  position:relative;
  z-index:1;
  display:block;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:9% 11% 5%;
  border-radius:0!important;
  box-shadow:none!important;
  object-fit:contain;
  object-position:center;
  transition:transform .85s cubic-bezier(.2,.7,.2,1);
}

.lpr__card:hover .lpr__media img{transform:scale(1.07) translateY(-6px)}


/* ============================================================
   BADGES
   ============================================================ */

.lpr__card .lpr__code{
  position:absolute;
  top:12px;
  left:12px;
  z-index:3;
  padding:4.5px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.82);
  -webkit-backdrop-filter:blur(6px) saturate(1.4);
  backdrop-filter:blur(6px) saturate(1.4);
  border:1px solid rgba(125,2,155,.12);
  font-size:9.5px;
  font-weight:700;
  letter-spacing:.14em;
  color:var(--c);
}

.woocommerce ul.products li.product span.lpr__tag,
.lpr__card .lpr__tag{
  position:absolute;
  top:12px;
  left:12px;
  right:auto;
  z-index:3;
  min-width:0;
  min-height:0;
  width:auto;
  height:auto;
  margin:0;
  padding:5px 11px;
  border-radius:999px;
  background:var(--c);
  color:#fff;
  font-size:9.5px;
  font-weight:700;
  line-height:1.4;
  letter-spacing:.13em;
  text-transform:uppercase;
  box-shadow:0 6px 14px -6px rgba(125,2,155,.65);
}

.woocommerce ul.products li.product span.lpr__tag--soft,
.lpr__card .lpr__tag--soft{
  background:#fff;
  color:var(--c);
  border:1px solid rgba(125,2,155,.2);
  box-shadow:none;
}

/* WooCommerce's own sale flash is replaced by .lpr__tag */
.woocommerce ul.products li.product span.onsale{display:none!important}


/* ============================================================
   WISHLIST
   ============================================================ */

.lpr__card button.lpr__fav{
  position:absolute;
  top:10px;
  right:10px;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  min-height:0;
  margin:0;
  padding:0;
  border:1px solid var(--line);
  border-radius:50%;
  background:rgba(255,255,255,.9);
  -webkit-backdrop-filter:blur(6px);
  backdrop-filter:blur(6px);
  color:var(--mut);
  cursor:pointer;
  opacity:0;
  transform:translateY(-8px) scale(.92);
  box-shadow:none;
  transition:opacity .35s ease,
             transform .4s cubic-bezier(.2,.7,.2,1),
             background .3s ease,
             color .3s ease,
             border-color .3s ease;
}

.lpr__card:hover .lpr__fav{opacity:1;transform:translateY(0) scale(1)}
.lpr__card .lpr__fav svg{width:16px;height:16px;transition:transform .3s ease}
.lpr__card .lpr__fav:hover{background:var(--c);color:#fff;border-color:var(--c)}
.lpr__card .lpr__fav.on{
  opacity:1;transform:none;
  background:var(--c);color:#fff;border-color:var(--c);
}
.lpr__card .lpr__fav.on svg{fill:currentColor;transform:scale(1.14)}


/* ============================================================
   QUICK VIEW
   ============================================================ */

.lpr__card .lpr__quick{
  position:absolute;
  left:11px;
  right:11px;
  bottom:11px;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:40px;
  border-radius:11px;
  background:rgba(255,255,255,.88);
  -webkit-backdrop-filter:blur(8px) saturate(1.5);
  backdrop-filter:blur(8px) saturate(1.5);
  border:1px solid rgba(255,255,255,.9);
  box-shadow:0 8px 20px -12px rgba(50,17,59,.35);
  font-size:11.5px;
  font-weight:700;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--plum);
  opacity:0;
  transform:translateY(16px);
  transition:opacity .4s ease,
             transform .5s cubic-bezier(.2,.7,.2,1),
             color .3s ease;
}

.lpr__card:hover .lpr__quick{opacity:1;transform:translateY(0)}
.lpr__card:hover .lpr__quick:hover{color:var(--c)}
.lpr__card .lpr__quick svg{width:14px;height:14px;flex:none}


/* ============================================================
   BODY
   ============================================================ */

.lpr__card .lpr__body{
  display:flex;
  flex-direction:column;
  flex:1;
  padding:clamp(13px,1.05vw,17px) clamp(13px,1.05vw,17px) clamp(14px,1.15vw,18px);
}

.woocommerce ul.products li.product p.lpr__cat,
.lpr__card .lpr__cat{
  display:flex;
  align-items:center;
  gap:6px;
  margin:0;
  font-size:10px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--mut);
}

.lpr__card .lpr__cat::before{
  content:"";
  flex:none;
  width:4px;
  height:4px;
  border-radius:50%;
  background:var(--c);
  opacity:.5;
}

.woocommerce ul.products li.product h3.lpr__name,
.lpr__card h3.lpr__name{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:2.68em;
  margin:7px 0 0;
  padding:0;
  font-size:clamp(14px,1vw,16.5px);
  font-weight:600;
  line-height:1.34;
  color:var(--plum);
  transition:color .3s ease;
}

.lpr__card h3.lpr__name a{color:inherit}
.lpr__card:hover h3.lpr__name{color:var(--c)}

.lpr__card .lpr__meta{
  margin-top:auto;
  padding-top:12px;
  border-top:1px solid var(--line-2);
}


/* ============================================================
   PRICE
   ============================================================ */

.woocommerce ul.products li.product p.lpr__price,
.woocommerce ul.products li.product .lpr__price,
.lpr__card .lpr__price{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:8px;
  margin:0;
  font-size:clamp(15px,1.12vw,18px);
  font-weight:700;
  letter-spacing:-.008em;
  color:var(--c);
}

.woocommerce ul.products li.product .lpr__price del,
.lpr__card .lpr__price del{
  order:2;
  font-size:.72em;
  font-weight:500;
  color:var(--mut);
  opacity:1;
  text-decoration-thickness:1px;
}

.woocommerce ul.products li.product .lpr__price ins,
.lpr__card .lpr__price ins{
  order:1;
  background:none;
  text-decoration:none;
  font-weight:700;
  color:inherit;
}

.lpr__card .lpr__price .woocommerce-Price-currencySymbol{
  font-size:.86em;
  font-weight:600;
}

.woocommerce ul.products li.product p.lpr__price.ask,
.lpr__card .lpr__price.ask{
  font-size:clamp(12.5px,.92vw,14px);
  font-weight:600;
  letter-spacing:.02em;
  color:var(--mut);
}


/* ============================================================
   BUTTON
   ============================================================ */

.woocommerce ul.products li.product a.lpr__btn,
.woocommerce ul.products li.product button.lpr__btn,
.lpr__card a.lpr__btn,
.lpr__card button.lpr__btn{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  float:none;
  width:100%;
  height:auto;
  min-height:46px;
  margin:11px 0 0;
  padding:0 12px;
  border:1px solid var(--c);
  border-radius:999px;
  background:var(--c);
  background-color:var(--c);
  color:#fff;
  font-family:inherit;
  font-size:12.5px;
  font-weight:700;
  line-height:1;
  letter-spacing:.03em;
  text-align:center;
  text-decoration:none;
  text-transform:none;
  cursor:pointer;
  overflow:hidden;
  box-shadow:0 8px 18px -10px rgba(125,2,155,.55);
  transition:color .35s ease,
             box-shadow .4s ease,
             border-color .35s ease;
}

.lpr__card .lpr__btn::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:var(--c-dark);
  transform:translateY(101%);
  transition:transform .5s cubic-bezier(.2,.7,.2,1);
}

.lpr__card .lpr__btn::after{content:none!important;display:none!important}

.lpr__card .lpr__btn span,
.lpr__card .lpr__btn svg{position:relative;z-index:1}

.lpr__card .lpr__btn svg{
  flex:none;
  width:15px;
  height:15px;
  transition:transform .35s ease;
}

.lpr__card:hover .lpr__btn::before,
.lpr__card .lpr__btn:hover::before{transform:translateY(0)}

.woocommerce ul.products li.product a.lpr__btn:hover,
.woocommerce ul.products li.product button.lpr__btn:hover,
.lpr__card:hover a.lpr__btn,
.lpr__card:hover button.lpr__btn{
  background:var(--c);
  background-color:var(--c);
  color:#fff;
  border-color:var(--c-dark);
  box-shadow:0 14px 26px -12px rgba(125,2,155,.7);
}

.lpr__card .lpr__btn:hover svg{transform:translateX(3px)}
.lpr__card .lpr__btn:active{transform:scale(.985)}

/* enquiry variant */
.woocommerce ul.products li.product a.lpr__btn--ghost,
.lpr__card a.lpr__btn--ghost,
.lpr__card button.lpr__btn--ghost{
  background:#fff;
  background-color:#fff;
  border-color:var(--line);
  color:var(--plum);
  box-shadow:none;
}

.lpr__card .lpr__btn--ghost::before{background:var(--plum)}

.woocommerce ul.products li.product a.lpr__btn--ghost:hover,
.lpr__card:hover a.lpr__btn--ghost,
.lpr__card:hover button.lpr__btn--ghost{
  background:#fff;
  background-color:#fff;
  color:#fff;
  border-color:var(--plum);
  box-shadow:0 12px 22px -12px rgba(50,17,59,.45);
}


/* ============================================================
   AJAX STATES
   ============================================================ */

.lpr__card .lpr__btn.loading{opacity:.75;pointer-events:none}

.woocommerce ul.products li.product a.added_to_cart,
.lpr__card .added_to_cart{
  display:block;
  margin-top:9px;
  padding:0;
  text-align:center;
  font-size:11.5px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--c);
  text-decoration:underline;
}


/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width:1400px){
  .woocommerce ul.products,
  .lpr__grid{grid-template-columns:repeat(4,1fr)}
}

@media (max-width:1050px){
  .woocommerce ul.products,
  .lpr__grid{grid-template-columns:repeat(3,1fr)}
}

@media (max-width:760px){
  .woocommerce ul.products,
  .lpr__grid{grid-template-columns:repeat(2,1fr);gap:11px}

  .woocommerce ul.products li.product,
  .lpr__card{border-radius:15px}

  .lpr__card .lpr__quick{
    opacity:1;transform:none;
    min-height:36px;font-size:10.5px;
  }

  .lpr__card button.lpr__fav{
    opacity:1;transform:none;
    width:33px;height:33px;
  }

  .woocommerce ul.products li.product a.lpr__btn,
  .lpr__card a.lpr__btn,
  .lpr__card button.lpr__btn{
    min-height:43px;
    font-size:12px;
    gap:7px;
  }

  .lpr__card .lpr__code,
  .lpr__card .lpr__tag{font-size:9px;padding:3.5px 8px}
}

@media (max-width:420px){
  .lpr__card .lpr__body{padding:11px 11px 14px}
}

@media (prefers-reduced-motion:reduce){
  .lpr__card,
  .lpr__card *,
  .lpr__card *::before,
  .lpr__card *::after{
    animation:none!important;
    transition:none!important;
  }
}

/* ============================================================
   ARCHIVE WRAPPER
   ============================================================ */

.lpr{
  --c:#7D029B;
  --c-dark:#65027E;
  --plum:#32113B;
  --txt:#29212C;
  --mut:#7A6F7D;
  --line:#EFE3F2;
  --line-2:#F5EDF7;
  --soft:#FAF6FB;

  box-sizing:border-box;
  position:relative;
  width:100%;
  padding:clamp(34px,4vw,70px) clamp(12px,1.8vw,26px);
  font-family:'Cabin',system-ui,-apple-system,sans-serif;
  color:var(--txt);
  -webkit-font-smoothing:antialiased;
}

.lpr *,
.lpr *::before,
.lpr *::after{box-sizing:border-box}

.lpr__in{
  max-width:1760px;
  margin:0 auto;
  padding:clamp(24px,2.6vw,46px) clamp(16px,2vw,36px) clamp(30px,3vw,50px);
  background:
    radial-gradient(120% 60% at 50% 0%,rgba(125,2,155,.05) 0%,rgba(125,2,155,0) 60%),
    linear-gradient(180deg,var(--soft) 0%,#fff 58%);
  border:1px solid var(--line);
  border-radius:clamp(18px,2vw,30px);
}

/* ---- head ---- */

.lpr .lpr__head{margin-bottom:clamp(20px,2.4vw,32px)}

.lpr .lpr__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0;
  font-size:clamp(10.5px,.95vw,12px);
  font-weight:700;
  line-height:1.4;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--c);
}

.lpr .lpr__eyebrow::before{
  content:"";
  width:22px;
  height:1.5px;
  border-radius:2px;
  background:linear-gradient(90deg,transparent,var(--c));
}

.woocommerce .lpr h1.lpr__title,
.lpr .lpr__title{
  margin:12px 0 0;
  padding:0;
  font-family:'Cabin',system-ui,sans-serif;
  font-size:clamp(28px,3.6vw,52px);
  font-weight:700;
  line-height:1.08;
  letter-spacing:-.022em;
  color:var(--plum);
  text-transform:none;
}

.lpr .lpr__lead,
.lpr .lpr__lead p{
  margin:12px 0 0;
  max-width:54ch;
  font-size:clamp(14px,1.05vw,16.5px);
  line-height:1.65;
  color:var(--mut);
}

/* ---- toolbar: count + sorting ---- */

.lpr .lpr__bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  margin-bottom:clamp(18px,2vw,28px);
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
}

.woocommerce .lpr .woocommerce-result-count{
  float:none;
  margin:0;
  font-size:13px;
  font-weight:500;
  letter-spacing:.02em;
  color:var(--mut);
}

.woocommerce .lpr .woocommerce-ordering{
  float:none;
  margin:0;
}

.woocommerce .lpr .woocommerce-ordering select{
  height:44px;
  min-width:210px;
  padding:0 40px 0 16px;
  border:1px solid var(--line);
  border-radius:999px;
  background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237D029B' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 15px center;
  background-size:15px;
  font-family:inherit;
  font-size:13px;
  font-weight:600;
  color:var(--plum);
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
  transition:border-color .3s ease,box-shadow .3s ease;
}

.woocommerce .lpr .woocommerce-ordering select:hover,
.woocommerce .lpr .woocommerce-ordering select:focus{
  border-color:var(--c);
  outline:none;
  box-shadow:0 0 0 3px rgba(125,2,155,.10);
}

/* ---- notices ---- */

.woocommerce .lpr .woocommerce-message,
.woocommerce .lpr .woocommerce-info,
.woocommerce .lpr .woocommerce-error{
  margin:0 0 22px;
  padding:16px 20px;
  border:1px solid var(--line);
  border-top:none;
  border-left:3px solid var(--c);
  border-radius:12px;
  background:#fff;
  font-size:14px;
  color:var(--txt);
  list-style:none;
}

.woocommerce .lpr .woocommerce-message::before,
.woocommerce .lpr .woocommerce-info::before,
.woocommerce .lpr .woocommerce-error::before{content:none}

.woocommerce .lpr .woocommerce-message .button,
.woocommerce .lpr .woocommerce-info .button{
  float:right;
  height:auto;
  min-height:38px;
  padding:0 20px;
  border:1px solid var(--c);
  border-radius:999px;
  background:var(--c);
  color:#fff;
  font-size:12.5px;
  font-weight:700;
  line-height:38px;
  letter-spacing:.03em;
  text-transform:none;
  transition:background .3s ease;
}

.woocommerce .lpr .woocommerce-message .button:hover,
.woocommerce .lpr .woocommerce-info .button:hover{
  background:var(--c-dark);
  color:#fff;
}

/* ---- pagination ---- */

.woocommerce .lpr nav.woocommerce-pagination{
  margin:clamp(28px,3.2vw,46px) 0 0;
  text-align:center;
}

.woocommerce .lpr nav.woocommerce-pagination ul{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin:0;
  padding:0;
  border:none;
  list-style:none;
}

.woocommerce .lpr nav.woocommerce-pagination ul li{
  display:block;
  margin:0;
  padding:0;
  overflow:visible;
  border:none;
}

.woocommerce .lpr nav.woocommerce-pagination ul li a,
.woocommerce .lpr nav.woocommerce-pagination ul li span{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  height:44px;
  padding:0 14px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  font-size:14px;
  font-weight:700;
  color:var(--plum);
  transition:background .3s ease,color .3s ease,border-color .3s ease;
}

.woocommerce .lpr nav.woocommerce-pagination ul li a:hover{
  background:var(--soft);
  border-color:var(--c);
  color:var(--c);
}

.woocommerce .lpr nav.woocommerce-pagination ul li span.current{
  background:var(--c);
  border-color:var(--c);
  color:#fff;
  box-shadow:0 8px 18px -10px rgba(125,2,155,.6);
}

/* ---- empty state ---- */

.woocommerce .lpr .woocommerce-no-products-found{
  padding:clamp(40px,5vw,70px) 20px;
  text-align:center;
}

/* ---- responsive ---- */

@media (max-width:760px){
  .lpr__in{padding:22px 14px 30px}

  .lpr .lpr__bar{
    flex-direction:column;
    align-items:stretch;
    gap:12px;
  }

  .woocommerce .lpr .woocommerce-ordering select{width:100%}
}