.tsfp{
  --tsfp-green:#2f6638;
  --tsfp-green-dark:#24502b;
  --tsfp-ink:#142019;
  --tsfp-muted:#657067;
  --tsfp-line:#e7e6e1;
  --tsfp-cream:#f8f4ec;
  max-width:1380px;
  margin:34px auto;
  padding:42px 34px 34px;
  border-radius:18px;
  background:var(--tsfp-cream);
  box-sizing:border-box;
}
.tsfp *{box-sizing:border-box}
.tsfp__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:28px;
  margin-bottom:30px;
}
.tsfp__kicker{
  margin-bottom:8px;
  color:var(--tsfp-green);
  font-size:13px;
  font-weight:800;
  letter-spacing:.08em;
}
.tsfp h2{
  margin:0;
  color:var(--tsfp-ink);
  font-size:36px;
  line-height:1.12;
  font-weight:800;
  text-transform:none;
}
.tsfp__head p{
  max-width:850px;
  margin:10px 0 0;
  color:var(--tsfp-muted);
  font-size:16px;
  line-height:1.5;
}
.tsfp__all{
  margin-top:31px;
  color:var(--tsfp-green)!important;
  font-size:16px;
  font-weight:700;
  text-decoration:none!important;
  white-space:nowrap;
  border-bottom:1px solid currentColor;
}
.tsfp__grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}
.tsfp-card{
  overflow:hidden;
  border:1px solid var(--tsfp-line);
  border-radius:13px;
  background:#fff;
  min-width:0;
  transition:transform .18s ease,box-shadow .18s ease;
}
.tsfp-card:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 25px rgba(31,45,36,.08);
}
.tsfp-card__image{
  position:relative;
  display:block;
  aspect-ratio:1.12/1;
  margin:12px 12px 0;
  overflow:hidden;
  border-radius:10px;
  background:#f8f7f4;
}
.tsfp-card__image img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.tsfp-card__badge{
  position:absolute;
  z-index:2;
  top:11px;
  left:11px;
  min-width:74px;
  padding:7px 10px 8px;
  border-radius:9px;
  background:#eef2e8;
  color:#1e5130;
  font-size:20px;
  line-height:1;
  font-weight:800;
  text-align:center;
}
.tsfp-card__badge small{
  display:block;
  margin-bottom:4px;
  font-size:9px;
  font-weight:800;
  line-height:1.1;
}
.tsfp-card__body{
  padding:15px 18px 16px;
}
.tsfp-card h3{
  min-height:48px;
  margin:0 0 12px;
  font-size:18px;
  line-height:1.28;
  font-weight:800;
  text-transform:none;
}
.tsfp-card h3 a{
  color:var(--tsfp-ink)!important;
  text-decoration:none!important;
}
.tsfp-card__facts{
  min-height:64px;
  display:grid;
  gap:8px;
  margin-bottom:14px;
}
.tsfp-card__fact{
  display:grid;
  grid-template-columns:22px 1fr;
  align-items:start;
  gap:7px;
  color:#59645d;
  font-size:14px;
  line-height:1.35;
}
.tsfp-card__icon{
  color:var(--tsfp-green);
  font-weight:800;
  text-align:center;
}
.tsfp-card__buyrow{
  padding-top:14px;
  border-top:1px solid var(--tsfp-line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.tsfp-card__price{
  color:var(--tsfp-ink);
  font-size:25px;
  line-height:1;
  font-weight:800;
  white-space:nowrap;
}
.tsfp-qty{
  display:grid;
  grid-template-columns:32px 36px 32px;
  height:40px;
  border:1px solid #dfe2de;
  border-radius:8px;
  overflow:hidden;
}
.tsfp-qty__btn{
  border:0;
  background:#fff;
  color:#39443c;
  font-size:18px;
  cursor:pointer;
}
.tsfp-qty input{
  width:100%;
  border:0;
  border-left:1px solid #eceeea;
  border-right:1px solid #eceeea;
  text-align:center;
  color:#273129;
  font-size:15px;
  appearance:textfield;
  -moz-appearance:textfield;
}
.tsfp-qty input::-webkit-outer-spin-button,
.tsfp-qty input::-webkit-inner-spin-button{
  margin:0;
  -webkit-appearance:none;
}
.tsfp-card__form{margin:12px 0 0}
.tsfp-card__cart{
  width:100%;
  min-height:48px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  border:0;
  border-radius:8px;
  background:var(--tsfp-green);
  color:#fff;
  font-size:16px;
  line-height:1;
  font-weight:800;
  cursor:pointer;
}
.tsfp-card__cart:hover{background:var(--tsfp-green-dark)}
.tsfp-card__details{
  display:block;
  margin-top:12px;
  color:var(--tsfp-green)!important;
  text-align:center;
  font-size:14px;
  font-weight:600;
  text-decoration:underline!important;
  text-underline-offset:3px;
}
@media(max-width:1199.98px){
  .tsfp{padding:36px 24px 28px}
  .tsfp h2{font-size:32px}
  .tsfp__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767.98px){
  .tsfp{
    margin:24px 12px;
    padding:24px 14px 20px;
    border-radius:14px;
    overflow:hidden;
  }
  .tsfp__head{
    display:block;
    margin-bottom:20px;
  }
  .tsfp h2{
    font-size:28px;
    line-height:1.08;
  }
  .tsfp__head p{
    margin-top:9px;
    font-size:15px;
    line-height:1.45;
  }
  .tsfp__all{
    display:inline-block;
    margin-top:13px;
    font-size:15px;
  }

  /* Mobile: swipeable product rail. One card + a visible hint of the next. */
  .tsfp__grid{
    display:flex;
    grid-template-columns:none;
    gap:12px;
    overflow-x:auto;
    overflow-y:hidden;
    margin:0 -14px;
    padding:0 14px 8px;
    scroll-snap-type:x mandatory;
    scroll-padding-left:14px;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .tsfp__grid::-webkit-scrollbar{display:none}

  .tsfp-card{
    flex:0 0 84%;
    min-width:0;
    scroll-snap-align:start;
    scroll-snap-stop:always;
    transform:none!important;
  }
  .tsfp-card:hover{box-shadow:none}
  .tsfp-card__image{
    aspect-ratio:1.22/1;
    margin:8px 8px 0;
  }
  .tsfp-card__body{padding:12px 12px 14px}
  .tsfp-card h3{
    min-height:0;
    margin-bottom:10px;
    font-size:17px;
    line-height:1.25;
  }
  .tsfp-card__facts{
    min-height:0;
    gap:7px;
    margin-bottom:12px;
  }
  .tsfp-card__fact{
    grid-template-columns:18px 1fr;
    gap:5px;
    font-size:14px;
    line-height:1.35;
  }
  .tsfp-card__price{font-size:23px}
  .tsfp-card__buyrow{
    display:flex;
    align-items:center;
  }
  .tsfp-qty{
    margin-top:0;
    grid-template-columns:32px 38px 32px;
    width:auto;
  }
  .tsfp-card__cart{
    min-height:48px;
    font-size:15px;
  }
  .tsfp-card__badge{
    min-width:64px;
    font-size:17px;
    padding:6px 8px;
  }
  .tsfp-card__details{
    margin-top:11px;
    font-size:14px;
  }
}

@media(max-width:389.98px){
  .tsfp h2{font-size:27px}
  .tsfp-card{flex-basis:86%}
  .tsfp-card__price{font-size:22px}
}

@media(max-width:339.98px){
  .tsfp-card{flex-basis:90%}
}
