.pf-scope, #pf-cart { font: inherit; color: inherit; }
.pf-scope *, #pf-cart * { box-sizing: border-box; }

:root{
--pf-primary:#0f8a3b;
--pf-text:#111;
--pf-muted:rgba(0,0,0,.62);
--pf-border:rgba(0,0,0,.10);
--pf-shadow:0 14px 34px rgba(0,0,0,.10);
--pf-progress-offset:94px;
--pf-desktop-cart-width:400px;
--pf-desktop-gap:16px;
}

.pf-scope #pf-progress{
position:fixed !important;
top:0 !important; left:0 !important; right:0 !important;
z-index:99999 !important;
background:rgba(255,255,255,.92) !important;
backdrop-filter:saturate(180%) blur(10px);
border-bottom:1px solid var(--pf-border) !important;
padding:10px 16px !important;
}

.pf-progress__row{
display:flex !important;
align-items:center !important;
justify-content:space-between !important;
gap:10px !important;
}

.pf-progress__label{
font-weight:600 !important;
color:var(--pf-text) !important;
}

.pf-progress__meta{
font-weight:800 !important;
color:var(--pf-muted) !important;
white-space:nowrap !important;
}

.pf-progress__bar{
height:14px !important;
border-radius:999px !important;
background:rgba(0,0,0,.08) !important;
overflow:hidden !important;
margin-top:8px !important;
}

.pf-progress__fill{
height:100% !important;
background:var(--pf-primary) !important;
transition:width .45s ease !important;
border-radius:999px !important;
}

.pf-scope #pf-app{
padding-top:78px !important;
}

.pf-toolbar{
display:flex !important;
align-items:center !important;
justify-content:space-between !important;
gap:12px !important;
margin:14px 0 18px !important;
}

.pf-search{
width: min(520px, 100%) !important;
display:flex !important;
gap:10px !important;
align-items:center !important;
border:1px solid var(--pf-border) !important;
background:#fff !important;
border-radius:14px !important;
padding:10px 12px !important;
box-shadow:0 10px 24px rgba(0,0,0,.06) !important;
}

.pf-search__icon{
width:18px !important;
height:18px !important;
opacity:.55 !important;
}

.pf-search__input{
border:0 !important;
outline:none !important;
width:100% !important;
font: inherit !important;
color:var(--pf-text) !important;
background:transparent !important;
}

.pf-count{
font-weight:800 !important;
color:var(--pf-muted) !important;
white-space:nowrap !important;
}

.pf-grid{
display:grid !important;
grid-template-columns:repeat(4, minmax(0,1fr)) !important;
gap:16px !important;
}

@media (max-width:1200px){
  .pf-grid{
    grid-template-columns:repeat(3, minmax(0,1fr)) !important;
  }
}

@media (max-width:900px){
  .pf-grid{
    grid-template-columns:repeat(2, minmax(0,1fr)) !important;
  }
}

@media (max-width:560px){
  .pf-grid{
    grid-template-columns:repeat(1, minmax(0,1fr)) !important;
  }
}

.pf-card{
background:#fff !important;
border:1px solid var(--pf-border) !important;
border-radius:18px !important;
overflow:hidden !important;
box-shadow:0 10px 24px rgba(0,0,0,.06) !important;
transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease, opacity .16s ease !important;
display:flex !important;
flex-direction:column !important;
position:relative !important;
}

.pf-card:hover{
transform:translateY(-2px) !important;
border-color:rgba(0,0,0,.14) !important;
box-shadow:var(--pf-shadow) !important;
}

.pf-card__img{
position:relative !important;
aspect-ratio:4 / 3 !important;
background:rgba(0,0,0,.03) !important;
overflow:hidden !important;
}

.pf-card__img img{
width:100% !important;
height:100% !important;
object-fit:cover !important;
display:block !important;
}

.pf-card__img::after{
content:"" !important;
position:absolute !important;
inset:0 !important;
background:rgba(0,0,0,0) !important;
transition:background .16s ease !important;
pointer-events:none !important;
}

.pf-card:hover .pf-card__img::after{
background:rgba(0,0,0,.22) !important;
}

.pf-add{
position:absolute !important;
inset:0 !important;
display:flex !important;
align-items:center !important;
justify-content:center !important;
opacity:0 !important;
transform:scale(.98) !important;
transition:opacity .16s ease, transform .16s ease !important;
background:transparent !important;
border:0 !important;
cursor:pointer !important;
}

.pf-card:hover .pf-add{
opacity:1 !important;
transform:scale(1) !important;
}

.pf-add__circle{
width:52px !important;
height:52px !important;
border-radius:999px !important;
display:flex !important;
align-items:center !important;
justify-content:center !important;
background:rgba(255,255,255,.92) !important;
border:1px solid rgba(255,255,255,.55) !important;
box-shadow:0 12px 28px rgba(0,0,0,.22) !important;
transition:transform .18s ease !important;
}

.pf-add svg{
width:22px !important;
height:22px !important;
display:block !important;
color:white !important;
}

.pf-badge{
position:absolute !important;
top:12px !important;
left:12px !important;
background:rgba(15,138,59,.92) !important;
color:#fff !important;
padding:7px 12px !important;
border-radius:999px !important;
font-weight:600 !important;
font-size:13px !important;
border:1px solid rgba(255,255,255,.25) !important;
box-shadow:0 10px 24px rgba(15,138,59,.18) !important;
}

.pf-card__body{
padding:14px 14px 16px !important;
display:flex !important;
flex-direction:column !important;
gap:8px !important;
}

.pf-card__title{
font-size:16px !important;
font-weight:600 !important;
color:var(--pf-text) !important;
margin:0 !important;
}

.pf-card__desc{
font-size:13px !important;
line-height:1.35 !important;
color:var(--pf-muted) !important;
margin:0 !important;
display:-webkit-box !important;
-webkit-line-clamp:3 !important;
-webkit-box-orient:vertical !important;
overflow:hidden !important;
}

.pf-price{
display:flex !important;
align-items:baseline !important;
justify-content:space-between !important;
gap:10px !important;
margin-top:2px !important;
}

.pf-price__val{
font-weight:600 !important;
color:var(--pf-text) !important;
}

.pf-price__sub{
font-size:12px !important;
color:rgba(0,0,0,.45) !important;
font-weight:800 !important;
}

.pf-qty{
display:flex !important;
align-items:center !important;
justify-content:space-between !important;
gap:10px !important;
margin-top:6px !important;
}

.pf-stepper{
display:flex !important;
align-items:center !important;
gap:10px !important;
position:relative !important;
z-index:2 !important;
}

.pf-qty__btn{
width:34px !important;
height:34px !important;
border-radius:10px !important;
border:1px solid rgba(0,0,0,.12) !important;
background:#fff !important;
color:var(--pf-text) !important;
display:flex !important;
align-items:center !important;
justify-content:center !important;
font-size:18px !important;
font-weight:600 !important;
cursor:pointer !important;
transition:transform .12s ease, background .12s ease, opacity .12s ease !important;
}

.pf-qty__btn:hover{
transform:scale(1.04) !important;
background:rgba(15,138,59,.06) !important;
}

.pf-qty__val{
min-width:26px !important;
text-align:center !important;
font-weight:600 !important;
}

#pf-cart{
position:fixed !important;
right:16px !important;
bottom:16px !important;
z-index:100000 !important;
}

#pf-cart .pf-cart__box{
width:min(380px, calc(100vw - 32px)) !important;
background:#fff !important;
border:1px solid var(--pf-border) !important;
border-radius:18px !important;
box-shadow:0 18px 50px rgba(0,0,0,.18) !important;
overflow:hidden !important;
}

#pf-cart .pf-cart__head{
display:flex !important;
justify-content:space-between !important;
align-items:flex-start !important;
gap:12px !important;
padding:14px 14px !important;
border-bottom:1px solid rgba(0,0,0,.06) !important;
}

#pf-cart .pf-cart__title{
font-weight:700 !important;
color:var(--pf-text) !important;
}

#pf-cart .pf-cart__hint{
font-size:13px !important;
line-height:1.4 !important;
color:var(--pf-muted) !important;
margin-top:4px !important;
}

#pf-cart .pf-cart__meta{
font-weight:800 !important;
color:var(--pf-muted) !important;
white-space:nowrap !important;
}

#pf-cart .pf-cart__inner{
padding:12px !important;
}

#pf-cart .pf-cart__lines{
max-height:220px !important;
overflow:auto !important;
padding:8px 0 !important;
border-top:1px solid rgba(0,0,0,.06) !important;
border-bottom:1px solid rgba(0,0,0,.06) !important;
}

#pf-cart .pf-cart__line{
display:flex !important;
justify-content:space-between !important;
gap:10px !important;
padding:8px 0 !important;
}

#pf-cart .pf-cart__empty{
opacity:.7 !important;
padding:10px 0 !important;
}

#pf-cart .pf-cart__actions{
display:flex !important;
align-items:center !important;
gap:10px !important;
margin-top:12px !important;
}

#pf-cart .pf-btn{
display:inline-flex !important;
align-items:center !important;
justify-content:center !important;
height:46px !important;
padding:0 14px !important;
border-radius:14px !important;
border:1px solid rgba(0,0,0,.12) !important;
background:#fff !important;
font-weight:600 !important;
text-decoration:none !important;
color:var(--pf-text) !important;
cursor:pointer !important;
flex:1 !important;
}

#pf-cart .pf-btn--primary{
background:var(--pf-primary) !important;
color:#fff !important;
border-color:transparent !important;
}

#pf-cart .pf-clearlink{
height:46px !important;
padding:0 12px !important;
border-radius:14px !important;
border:1px solid rgba(0,0,0,.12) !important;
background:rgba(0,0,0,.02) !important;
font-weight:500 !important;
cursor:pointer !important;
white-space:nowrap !important;
color:var(--pf-text) !important;
font-size:0.8rem !important;
}

#pf-cart .pf-clearlink:hover{
background:rgba(0,0,0,.06) !important;
}

.pf-toast{
position:fixed;
left:50%;
bottom:24px;
transform:translateX(-50%);
background:#111;
color:#fff;
padding:12px 14px;
border-radius:14px;
opacity:0;
pointer-events:none;
transition:opacity .2s;
z-index:100002;
}

.pf-toast.is-visible{
opacity:1;
}

.pf-add.is-added .pf-add__circle{
transform:scale(1.08) rotate(90deg) !important;
}

.pf-add.is-added.pf-add svg{
color:rgb(3, 125, 25) !important;
}

.pf-card.is-hidden{
display:none !important;
}

@media (min-width: 1024px) {
  .pf-scope{
    padding-right:calc(var(--pf-desktop-cart-width) + var(--pf-desktop-gap) + 20px) !important;
  }

  .pf-scope #pf-app{
    padding-top:var(--pf-progress-offset) !important;
    padding-right:0 !important;
  }

  .pf-grid{
    grid-template-columns:repeat(3, minmax(0,1fr)) !important;
  }

  #pf-cart{
    top:calc(var(--pf-progress-offset) + 10px) !important;
    right:16px !important;
    bottom:16px !important;
    width:var(--pf-desktop-cart-width) !important;
    z-index:100000 !important;
  }

  #pf-cart .pf-cart__box{
    width:100% !important;
    height:100% !important;
    max-height:calc(100vh - var(--pf-progress-offset) - 44px) !important;
  }

  #pf-cart .pf-cart__inner{
    flex:1 1 auto !important;
    display:flex !important;
    flex-direction:column !important;
    min-height:0 !important;
  }

  #pf-cart .pf-cart__lines{
    flex:1 1 auto !important;
    max-height:none !important;
    min-height:0 !important;
  }
}

@media (min-width: 1024px) and (max-width: 1250px) {
  :root{
    --pf-desktop-cart-width:360px;
  }
}

.pf-size-row{
display:flex !important;
align-items:center !important;
justify-content:space-between !important;
gap:10px !important;
margin-top:6px !important;
}

.pf-size-label{
font-size:13px !important;
font-weight:700 !important;
color:rgba(0,0,0,.62) !important;
}

.pf-size{
height:36px !important;
border-radius:12px !important;
border:1px solid rgba(0,0,0,.12) !important;
background:#fff !important;
padding:0 10px !important;
font:inherit !important;
color:#111 !important;
font-weight:600 !important;
outline:none !important;
cursor:pointer !important;
}

.pf-size:focus{
border-color:rgba(15,138,59,.45) !important;
box-shadow:0 0 0 3px rgba(15,138,59,.10) !important;
}

.pf-cart__pill{
display:inline-flex !important;
align-items:center !important;
height:20px !important;
padding:0 8px !important;
border-radius:999px !important;
margin-left:8px !important;
border:1px solid rgba(0,0,0,.10) !important;
background:rgba(0,0,0,.03) !important;
font-size:12px !important;
font-weight:800 !important;
color:rgba(0,0,0,.62) !important;
}

.pf-opt-row{
display:flex !important;
align-items:center !important;
justify-content:space-between !important;
gap:10px !important;
margin-top:6px !important;
}

.pf-opt-label{
font-size:13px !important;
font-weight:700 !important;
color:rgba(0,0,0,.62) !important;
}

.pf-opt{
height:36px !important;
border-radius:12px !important;
border:1px solid rgba(0,0,0,.12) !important;
background:#fff !important;
padding:0 10px !important;
font:inherit !important;
color:#111 !important;
font-weight:600 !important;
outline:none !important;
cursor:pointer !important;
min-width:110px !important;
}

.pf-opt:focus{
border-color:rgba(15,138,59,.45) !important;
box-shadow:0 0 0 3px rgba(15,138,59,.10) !important;
}

.pf-card.is-budget-blocked{
opacity:.62 !important;
}

.pf-card.is-budget-blocked .pf-card__img::after{
background:rgba(255,255,255,.22) !important;
}

.pf-card.is-budget-exhausted{
opacity:.62 !important;
}

.pf-card.is-budget-exhausted .pf-card__img::after{
background:rgba(255,255,255,.22) !important;
}

.pf-card.is-budget-exhausted .pf-card__body > *{
opacity:.68 !important;
}

.pf-card.is-budget-exhausted .pf-stepper,
.pf-card.is-budget-exhausted .pf-stepper *{
opacity:1 !important;
}

.pf-card.is-budget-exhausted .pf-qty__btn--minus:not(:disabled){
background:#fff !important;
border-color:rgba(0,0,0,.16) !important;
color:#111 !important;
box-shadow:0 0 0 1px rgba(0,0,0,.02) inset !important;
}

.pf-card.is-budget-exhausted .pf-qty__btn--minus:not(:disabled):hover{
background:rgba(15,138,59,.06) !important;
transform:scale(1.04) !important;
}

.pf-budget-note{
margin-top:2px !important;
font-size:12px !important;
line-height:1.35 !important;
color:#8a6b00 !important;
font-weight:700 !important;
background:rgba(255,193,7,.10) !important;
border:1px solid rgba(255,193,7,.25) !important;
border-radius:10px !important;
padding:8px 10px !important;
}

.pf-vrow{
display:flex !important;
align-items:center !important;
justify-content:space-between !important;
gap:10px !important;
border:1px solid rgba(0,0,0,.08) !important;
border-radius:14px !important;
padding:10px !important;
background:rgba(0,0,0,.015) !important;
transition:opacity .16s ease, background .16s ease !important;
}

.pf-vrow.is-budget-blocked{
opacity:.62 !important;
background:rgba(0,0,0,.03) !important;
}

.pf-vrow.is-budget-exhausted{
opacity:.62 !important;
background:rgba(0,0,0,.03) !important;
}

.pf-vrow.is-budget-exhausted .pf-stepper,
.pf-vrow.is-budget-exhausted .pf-stepper *{
opacity:1 !important;
}

.pf-vrow.is-budget-exhausted .pf-qty__btn--minus:not(:disabled){
background:#fff !important;
border-color:rgba(0,0,0,.16) !important;
color:#111 !important;
}

.pf-vrow__label{
font-weight:900 !important;
color:#111 !important;
}

.pf-vrow__hint{
margin-top:4px !important;
font-size:12px !important;
color:#8a6b00 !important;
font-weight:700 !important;
}

.pf-qty__btn:disabled,
.pf-add:disabled{
opacity:.42 !important;
cursor:not-allowed !important;
transform:none !important;
}

.pf-qty__btn:disabled:hover,
.pf-add:disabled:hover{
transform:none !important;
background:#fff !important;
}

.pf-add.is-disabled{
opacity:1 !important;
}

.pf-add.is-disabled .pf-add__circle{
background:rgba(255,255,255,.84) !important;
}

.pf-card__desc-wrap{
display:flex !important;
flex-direction:column !important;
align-items:flex-start !important;
gap:6px !important;
}

.pf-card__desc{
font-size:13px !important;
line-height:1.45 !important;
color:var(--pf-muted) !important;
margin:0 !important;
display:-webkit-box !important;
-webkit-line-clamp:3 !important;
-webkit-box-orient:vertical !important;
overflow:hidden !important;
max-height:none !important;
}

.pf-card__desc.is-expanded{
display:block !important;
-webkit-line-clamp:unset !important;
-webkit-box-orient:unset !important;
overflow:visible !important;
}

.pf-desc-toggle{
border:0 !important;
background:transparent !important;
padding:0 !important;
margin:0 !important;
color:var(--pf-primary) !important;
font-weight:700 !important;
font-size:13px !important;
cursor:pointer !important;
text-decoration:underline !important;
}

.pf-desc-toggle:hover{
opacity:.82 !important;
}

.pf-cart__line span{
display:flex !important;
align-items:center !important;
flex-wrap:wrap !important;
gap:6px !important;
}

@media (max-width: 767px) {
  #pf-cart{
    position:static !important;
    right:auto !important;
    bottom:auto !important;
    z-index:auto !important;
    width:auto !important;
    top:auto !important;
  }

  #pf-cart .pf-cart__box{
    display:none !important;
  }

  #pf-cart.is-mobile-open .pf-cart__box{
    display:block !important;
    position:fixed !important;
    left:12px !important;
    right:12px !important;
    bottom:12px !important;
    width:auto !important;
    max-height:calc(100vh - 120px) !important;
    overflow:auto !important;
    z-index:100000 !important;
    border-radius:18px !important;
  }

  #pf-cart-backdrop{
    position:fixed !important;
    inset:0 !important;
    background:rgba(0,0,0,.45) !important;
    z-index:99999 !important;
    display:none !important;
  }

  #pf-cart-backdrop.is-visible{
    display:block !important;
  }

  #pf-cart-fab{
    position:fixed !important;
    right:14px !important;
    bottom:14px !important;
    z-index:100001 !important;
    display:inline-flex !important;
    align-items:center !important;
    gap:12px !important;
    border:0 !important;
    border-radius:999px !important;
    padding:16px 18px !important;
    min-height:58px !important;
    background:#111 !important;
    color:#fff !important;
    cursor:pointer !important;
    box-shadow:0 14px 34px rgba(0,0,0,.22) !important;
    -webkit-tap-highlight-color:transparent !important;
  }

  #pf-cart-fab svg{
    width:26px !important;
    height:26px !important;
    display:block !important;
  }

  #pf-cart-fab-badge{
    display:inline-flex !important;
    align-items:center !important;
    gap:9px !important;
    font-weight:800 !important;
    font-size:15px !important;
    line-height:1 !important;
    white-space:nowrap !important;
  }

  #pf-cart-fab-badge .pf-cart-fab__dot{
    width:5px !important;
    height:5px !important;
    border-radius:999px !important;
    background:rgba(255,255,255,.7) !important;
    display:inline-block !important;
  }
}

@media (min-width: 768px) {
  #pf-cart-fab,
  #pf-cart-backdrop{
    display:none !important;
  }
}