/* Container */
.joyd-fp-wrap { margin: 24px 0 8px; }
.joyd-fp-head h2 {
  font-size: clamp(20px, 2.2vw, 34px);
  line-height: 1.2;
  margin: 0 0 16px;
}

/* Grid */
.joyd-fp-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
@media (max-width: 1100px) {
  .joyd-fp-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 820px) {
  .joyd-fp-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
  .joyd-fp-grid { grid-template-columns: 1fr; }
}

/* Card */
.joyd-fp-card {
  border: 1px solid #eee;
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  transition: box-shadow .2s ease, transform .2s ease;
}
.joyd-fp-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0,0,0,.06);
}

/* Image */
.joyd-fp-thumb { display: block; position: relative; aspect-ratio: 4/3; background: #fafafa; }
.joyd-fp-thumb img { width: 100%; height: 100%; object-fit: contain; }

.joyd-fp-discount {
  position: absolute; top: 10px; right: 10px;
  background: #e53935; color: #fff; font-weight: 600;
  padding: 6px 8px; border-radius: 999px; font-size: 12px;
}

/* Text area */
.joyd-fp-info { padding: 12px 14px 16px; }
.joyd-fp-title { font-size: 15px; margin: 0 0 8px; }
.joyd-fp-title a { color: #111; text-decoration: none; }
.joyd-fp-title a:hover { text-decoration: underline; }

/* Price */
.joyd-fp-price { display: flex; align-items: baseline; gap: 8px; }
.joyd-fp-regular { color: #999; text-decoration: line-through; font-size: 13px; }
.joyd-fp-current { color: #000; font-weight: 700; font-size: 16px; }

/* Installments */
.joyd-fp-months { margin-top: 6px; color: #b71c1c; font-size: 12px; }

/* Badges */
.joyd-fp-badges { margin-top: 10px; display: flex; gap: 6px; flex-wrap: wrap; }
.joyd-fp-badge {
  background: #f3f3f3; border: 1px solid #e6e6e6; color: #333;
  font-size: 11px; padding: 4px 8px; border-radius: 999px;
}

/* Swiper nav */
.joyd-fp-nav {
  width: 36px; height: 36px; border-radius: 999px;
  border: 1px solid #e5e5e5; background:#fff;
  box-shadow: 0 4px 12px rgba(0,0,0,.06);
  position: absolute; top: -52px; right: 0;
  display: grid; place-items: center; cursor: pointer;
}
.joyd-fp-prev { right: 44px; }
.joyd-fp-nav::after {
  content: ''; display:block; width:8px; height:8px; border-right:2px solid #222; border-bottom:2px solid #222; transform: rotate(-45deg);
}
.joyd-fp-next::after { transform: rotate(135deg); }
.joyd-fp-head { position: relative; }
.joyd-fp-swiper { position: relative; }
