/* ─────────────────────────────────────────────────────────────
   The product card, taken from the design file with a CSS parser rather
   than by hand, so nothing is left behind. Every rule is scoped under
   .pc-card: Elementor's kit styles links, headings and images at one class
   plus one element, and this puts the card above that without !important.
   ───────────────────────────────────────────────────────────── */
ul.products{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:clamp(18px,2.3vw,32px)}
ul.products li.product{margin:0;padding:0;width:auto;float:none;clear:none}
ul.products li.product::before,ul.products li.product::after{display:none}

/* The design draws the card in Figtree with Fraunces for display type. Loading
   them here means the card looks right whether or not the site's global fonts
   have been set. */
.pc-card,.pc-card a,.pc-card button,.pc-card span,.pc-card p{
  font-family:Figtree,"Helvetica Neue",Arial,sans-serif}

.pc-card .arch,ul.products li.product .pc-card .arch{display:block;position:relative;overflow:hidden;border-radius:50% 50% 16px 16px / 40% 40% 3% 3%;background:var(--pc-glass-2);aspect-ratio:4/5}
.pc-card .arch>img,ul.products li.product .pc-card .arch>img{width:100%;height:100%;object-fit:cover}
.pc-card .arch--tall,ul.products li.product .pc-card .arch--tall{aspect-ratio:3/4.4;border-radius:50% 50% 16px 16px / 30% 30% 2% 2%}
.pc-card .arch--wide,ul.products li.product .pc-card .arch--wide{aspect-ratio:1/1}
.pc-card .arch__fb,ul.products li.product .pc-card .arch__fb{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(165deg,#DCE7CE,var(--pc-on-dark) 60%,#9FBE8A)}
.pc-card .flag,ul.products li.product .pc-card .flag{position:absolute;left:12px;bottom:12px;z-index:3;padding:6px 13px;border-radius:100px;font-size:var(--pc-fs-xs);font-weight:700;letter-spacing:var(--pc-ls-wide);box-shadow:0 6px 18px -6px rgba(10,25,14,.55)}
.pc-card .flag--sale,ul.products li.product .pc-card .flag--sale{background:var(--pc-flag);color:#fff}
.pc-card .flag--new,ul.products li.product .pc-card .flag--new{background:var(--pc-sprout);color:var(--pc-on-sprout)}
.pc-card .flag--out,ul.products li.product .pc-card .flag--out{background:var(--pc-muted-badge);color:#fff}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:clamp(18px,2.3vw,32px)}
.pgrid--4{grid-template-columns:repeat(4,1fr)}
.pgrid--samp{grid-template-columns:repeat(4,1fr)}
.pc-card.prod,ul.products li.product .pc-card.prod{position:relative;display:flex;flex-direction:column}
.pc-card .prod__media,ul.products li.product .pc-card .prod__media{position:relative;margin-bottom:14px;transition:transform .35s cubic-bezier(.2,.7,.3,1)}
.pc-card:hover .prod__media,ul.products li.product .pc-card:hover .prod__media{transform:translateY(-5px)}
.pc-card .arch,ul.products li.product .pc-card .arch{box-shadow:inset 0 0 0 1px rgba(22,53,31,.09);transition:box-shadow .35s cubic-bezier(.2,.7,.3,1)}
.pc-card:hover .arch,ul.products li.product .pc-card:hover .arch{box-shadow:inset 0 0 0 1px rgba(22,53,31,.09),0 18px 36px -20px rgba(22,53,31,.5)}
.pc-card .arch img,ul.products li.product .pc-card .arch img{filter:saturate(1.04);transition:transform .65s cubic-bezier(.2,.7,.3,1)}
.pc-card:hover .arch img,ul.products li.product .pc-card:hover .arch img{transform:scale(1.05)}
.pc-card .arch::after,ul.products li.product .pc-card .arch::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(241,244,234,.16))}
.pc-card .prod__fav,ul.products li.product .pc-card .prod__fav{width:38px;height:38px;border-radius:100px;flex:none;display:grid;place-items:center;border:1px solid var(--pc-line);background:var(--pc-white);color:var(--pc-ink-60);transition:color .16s,border-color .16s,background .16s}
.pc-card .prod__fav:hover,ul.products li.product .pc-card .prod__fav:hover{color:var(--pc-flag);border-color:var(--pc-flag-line)}
.pc-card .prod__fav.on,ul.products li.product .pc-card .prod__fav.on{color:var(--pc-flag);border-color:var(--pc-flag-line);background:var(--pc-flag-bg)}
.pc-card .prod__acts,ul.products li.product .pc-card .prod__acts{display:flex;align-items:center;gap:8px;flex:none}
.pc-card .prod__meta,ul.products li.product .pc-card .prod__meta{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:5px}
.pc-card .prod__cat,ul.products li.product .pc-card .prod__cat{font-size:var(--pc-fs-xs);color:var(--pc-ink-40);font-weight:500;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-card .prod__rate,ul.products li.product .pc-card .prod__rate{display:inline-flex;align-items:center;gap:4px;font-size:var(--pc-fs-xs);font-weight:600;color:var(--pc-ink);flex:none}
.pc-card .prod__rate svg,ul.products li.product .pc-card .prod__rate svg{width:13px;height:13px;color:var(--pc-star)}
.pc-card .prod__rate i,ul.products li.product .pc-card .prod__rate i{font-style:normal;color:var(--pc-ink-40);font-weight:500}
.pc-card .prod__name,ul.products li.product .pc-card .prod__name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-family:'Figtree',sans-serif;font-size:var(--pc-fs-base);font-weight:600;line-height:var(--pc-lh-snug);margin-bottom:10px;min-height:2.68em}
.pc-card .prod__name:hover,ul.products li.product .pc-card .prod__name:hover{color:var(--pc-leaf)}
.pc-card .prod__care,ul.products li.product .pc-card .prod__care{display:flex;gap:5px 14px;flex-wrap:wrap;margin-bottom:14px}
.pc-card .prod__care span,ul.products li.product .pc-card .prod__care span{display:inline-flex;align-items:center;gap:5px;font-size:var(--pc-fs-xs);color:var(--pc-ink-60)}
.pc-card .prod__care svg,ul.products li.product .pc-card .prod__care svg{width:14px;height:14px;color:var(--pc-leaf);flex:none}
.pc-card .prod__care span+span svg,ul.products li.product .pc-card .prod__care span+span svg{color:var(--pc-reservoir)}
.pc-card .prod__care span.nw svg,ul.products li.product .pc-card .prod__care span.nw svg{color:var(--pc-leaf)}
.pc-card .prod__foot,ul.products li.product .pc-card .prod__foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:13px;border-top:1px solid var(--pc-line-2)}
.pc-card .prod__price,ul.products li.product .pc-card .prod__price{min-width:0}
.pc-card .prod__price s,ul.products li.product .pc-card .prod__price s{font-size:var(--pc-fs-sm);color:var(--pc-ink-40);margin-left:8px}
.pc-card .prod__split,ul.products li.product .pc-card .prod__split{display:block;font-size:var(--pc-fs-xs);color:var(--pc-ink-40);margin-top:4px}
.pc-card .price,ul.products li.product .pc-card .price{font-weight:700;font-size:var(--pc-fs-lg);letter-spacing:var(--pc-ls-tight);white-space:nowrap}
.pc-card .prod__price,ul.products li.product .pc-card .prod__price{min-width:0;flex:0 1 auto}
.pc-card .prod__price .price--range,ul.products li.product .pc-card .prod__price .price--range{font-size:var(--pc-fs-base)}
.pc-card .prod__price .price--range em,ul.products li.product .pc-card .prod__price .price--range em{font-style:normal;font-weight:500;color:var(--pc-ink-40);font-size:var(--pc-fs-xs);display:block;letter-spacing:0;line-height:1.2;margin-bottom:1px}
.pc-card .price--sale,ul.products li.product .pc-card .price--sale{color:var(--pc-flag)}
.pc-card .prod__buy,ul.products li.product .pc-card .prod__buy{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:0 1 auto;min-width:0;background:var(--pc-canopy);color:#fff;border-radius:100px;padding:10px 16px;font-size:var(--pc-fs-sm);font-weight:600;transition:background .16s cubic-bezier(.2,.7,.3,1),transform .12s cubic-bezier(.2,.7,.3,1)}
.pc-card .prod__buy:hover,ul.products li.product .pc-card .prod__buy:hover{background:var(--pc-leaf)}
.pc-card .prod__buy:active,ul.products li.product .pc-card .prod__buy:active{transform:scale(.96)}
.pc-card .prod__buy.done,ul.products li.product .pc-card .prod__buy.done{background:var(--pc-sprout);color:var(--pc-on-sprout)}
.pc-card .prod__buy svg,ul.products li.product .pc-card .prod__buy svg{width:15px;height:15px}
.pc-card .prod__cap,ul.products li.product .pc-card .prod__cap{font-size:var(--pc-fs-sm);color:var(--pc-ink-60);line-height:var(--pc-lh-snug);margin:0 0 9px;min-height:calc(2em * 1.34);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pc-card .prod__sw,ul.products li.product .pc-card .prod__sw{display:flex;align-items:center;gap:5px;margin:0 0 11px}
.pc-card .prod__sw i,ul.products li.product .pc-card .prod__sw i{width:13px;height:13px;border-radius:100px;display:block;box-shadow:inset 0 0 0 1px rgba(22,53,31,.2)}
.pc-card .prod__sw em,ul.products li.product .pc-card .prod__sw em{font-style:normal;font-size:var(--pc-fs-xs);color:var(--pc-ink-40)}
.pc-card .prod__buy--opts,ul.products li.product .pc-card .prod__buy--opts{background:var(--pc-white);color:var(--pc-ink);border:1px solid var(--pc-line)}
.pc-card .prod__buy--opts:hover,ul.products li.product .pc-card .prod__buy--opts:hover{background:var(--pc-white);border-color:var(--pc-leaf);color:var(--pc-leaf)}
.pc-card .arch__fb,ul.products li.product .pc-card .arch__fb{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--pc-leaf-dk);font-size:var(--pc-fs-xs);font-weight:600;text-align:center;padding:10px}

@media (max-width:1080px){
  .pgrid--4{grid-template-columns:repeat(3,1fr)}
  .pgrid--samp{grid-template-columns:repeat(2,1fr)}
}

@media (max-width:640px){
  .pgrid{grid-template-columns:repeat(2,1fr);gap:18px 14px}
  .pgrid--4{grid-template-columns:repeat(2,1fr)}
  .pgrid--samp{grid-template-columns:1fr;max-width:420px;margin-inline:auto}
  .pc-card .prod__name,ul.products li.product .pc-card .prod__name{font-size:var(--pc-fs-base)}
  .pc-card .prod__care,ul.products li.product .pc-card .prod__care{gap:3px 10px;margin-bottom:11px}
  .pc-card .prod__care span,ul.products li.product .pc-card .prod__care span{font-size:var(--pc-fs-xs)}
  .pc-card .prod__foot,ul.products li.product .pc-card .prod__foot{flex-direction:column;align-items:stretch;gap:10px}
  .pc-card .prod__acts,ul.products li.product .pc-card .prod__acts{display:flex}
  .pc-card .prod__buy,ul.products li.product .pc-card .prod__buy{flex:1}
  .pc-card .prod__fav,ul.products li.product .pc-card .prod__fav{width:40px;height:40px}
  .pc-card .price,ul.products li.product .pc-card .price{font-size:var(--pc-fs-lg)}
}

/* WooCommerce sets height:auto and a bottom margin on every loop image, at a
   specificity our plain .pc-card rules cannot reach. This is the one place a
   long selector is the honest answer. */
.pc-card .arch img,
ul.products li.product .pc-card .arch img,
.woocommerce ul.products li.product .pc-card .arch img{
  display:block;width:100%;height:100%;object-fit:cover;margin:0;box-shadow:none}

/* the same applies to the price, which WooCommerce colours green */
.pc-card .price,
ul.products li.product .pc-card .price,
.woocommerce ul.products li.product .pc-card .price{
  display:inline;color:var(--pc-ink);font-size:var(--pc-fs-lg);margin:0}
.pc-card .price--range,
ul.products li.product .pc-card .price--range{font-size:var(--pc-fs-base)}

.pc-card .prod__name{color:var(--pc-ink);text-decoration:none}
.pc-card .prod__name:hover{color:var(--pc-leaf)}
.pc-card .prod__cat{color:var(--pc-ink-40)}
.pc-card .prod__cap{color:var(--pc-ink-60)}
.pc-card .prod__buy,.pc-card .prod__fav{text-decoration:none;cursor:pointer}

/* An image that must be read rather than admired: a label, a spec sheet, a
   pack shot with writing on it. Cropping those removes the part that matters,
   so the whole image is shown, sitting on the card's own background with a
   little room so the arch does not clip the corners. The long selectors are
   there for the same reason as above: WooCommerce sets object-fit and height
   on loop images at a specificity a short rule cannot reach. */
.pc-card .arch--whole,
ul.products li.product .pc-card .arch--whole{background:var(--pc-glass)}
.pc-card .arch--whole img,
ul.products li.product .pc-card .arch--whole img,
.woocommerce ul.products li.product .pc-card .arch--whole img{
  object-fit:contain;padding:9% 9% 7%;background:transparent}
/* the hover zoom reads as a wobble on a flat graphic */
.pc-card:hover .arch--whole img,
ul.products li.product .pc-card:hover .arch--whole img{transform:none}

/* ── frame shapes ──
   The arch is drawn tall because a plant is tall. A wide picture inside a tall
   arch leaves half the frame empty, which looks worse than the crop it was
   meant to avoid. One shape for the whole shop keeps the rows level. */
.pc-card .arch--arch-sq,ul.products li.product .pc-card .arch--arch-sq{aspect-ratio:1/1}
.pc-card .arch--soft-sq,ul.products li.product .pc-card .arch--soft-sq{
  aspect-ratio:1/1;border-radius:16px}
.pc-card .arch--soft-wide,ul.products li.product .pc-card .arch--soft-wide{
  aspect-ratio:4/3;border-radius:16px}

/* With no dome overhead there is nothing to clip the corners, so the picture
   can use more of the frame. */
.pc-card .arch--soft-sq.arch--whole img,
.pc-card .arch--soft-wide.arch--whole img,
ul.products li.product .pc-card .arch--soft-sq.arch--whole img,
ul.products li.product .pc-card .arch--soft-wide.arch--whole img,
.woocommerce ul.products li.product .pc-card .arch--soft-sq.arch--whole img,
.woocommerce ul.products li.product .pc-card .arch--soft-wide.arch--whole img{padding:5%}
