/* Base card styles (shared) */
.gr-opc-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 20px;
}
.gr-opc-card {
  background: #F4EED8;
  border: 1px solid #E8DFC2;
  border-radius: 14px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  height: 100%;
  box-sizing: border-box;
}
.gr-opc-thumb {
  display: block;
  width: 100%;
  aspect-ratio: 4/3;
  border-radius: 10px;
  overflow: hidden;
  background: #ddd;
  border: 1px solid #e5e5e5;
}
/* Square thumb for carousel */
.gr-opc-thumb--square { aspect-ratio: 1/1; }
.gr-opc-thumb-img {
  display:block;
  width:100%;
  height:100%;
  background-size: cover;
  background-position: center;
}
.gr-opc-name { font-weight: 700; font-size: 18px; margin-top: 14px; }
.gr-opc-rating { margin-top: 4px; font-size: 14px; color: #7a6a2f; }
.gr-opc-star { color: #A58220; margin-right: 4px; }
.gr-opc-reviews { color: #7a7a7a; }
.gr-opc-prices {
  margin-top: 10px;
  display: grid;
  grid-template-columns: auto auto;
  grid-template-rows: auto auto;
  align-items: end;
  column-gap: 8px;
  row-gap: 2px;
}
.gr-opc-old { grid-column: 1 / span 1; text-decoration: line-through; color: #8b8b8b; }
.gr-opc-sale-badge { grid-column: 2 / span 1; justify-self: end; background: #E53935; color: #fff; font-size: 12px; padding: 2px 6px; border-radius: 4px; }
.gr-opc-price { grid-column: 1 / span 2; font-size: 20px; font-weight: 700; }
.gr-opc-actions { margin-top: 10px; }
.gr-opc-btn {
  display: inline-block; text-decoration: none; padding: 10px 14px;
  background: #5B6E3B; color: #fff; border-radius: 8px; text-align: center; font-weight: 600;
  transition: background 200ms ease, color 200ms ease;
}
.gr-opc-btn:hover { color: #fff; background: #495e2f; }

.gr-opc-schedule-wrap { margin-top: 12px; }
.gr-opc-schedule-title { font-size: 13px; color: #6d6d6d; text-align: center; margin-bottom: 8px; }
.gr-opc-schedule-item {
  display: block; width: 100%; text-align: center; padding: 10px 12px;
  border-radius: 10px; border: 1px solid #D7CDA9; background: #FFF8E7;
  text-decoration: none; color: #333; margin-bottom: 8px; font-weight: 600;
}
.gr-opc-schedule-empty { text-align: center; font-size: 13px; color: #888; }
.gr-opc-empty { text-align:center; padding: 12px; background: #fffbe6; border: 1px solid #ffe58f; border-radius: 8px; }

@media (max-width: 1200px) { .gr-opc-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 768px) { .gr-opc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .gr-opc-grid { grid-template-columns: repeat(1, minmax(0, 1fr)); } }
