/* Joy Research Supply — hovers, transitions, responsive. Layout lives inline in render.php. */

.joy-body { margin: 0; background: #fbf7f2; font-family: 'Karla', sans-serif; color: #453b33; }
.joy-body * { box-sizing: border-box; }

/* hovers */
.joy-hover-dark { transition: background .15s ease; }
.joy-hover-dark:hover { background: #2f2822 !important; }
.joy-hover-peach { transition: background .15s ease; }
.joy-hover-peach:hover { background: #f2d9c4 !important; }
.joy-hover-cream { transition: background .15s ease; }
.joy-hover-cream:hover { background: #f6efe6 !important; }

.joy-navlink { transition: background .15s ease; }
.joy-navlink:hover { background: #fff; }
.joy-login-chip:hover, .joy-logout:hover { color: #a06a35 !important; }
.joy-cart-open { transition: background .15s ease; }
.joy-cart-open:hover { background: #eccdb0 !important; }

.joy-card { transition: transform .18s ease, box-shadow .18s ease; }
.joy-card:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(69, 59, 51, .09); }
.joy-tile { transition: transform .18s ease; }
.joy-tile:hover { transform: translateY(-3px); }
.joy-chip { transition: background .15s ease, color .15s ease; }
.joy-chip.is-on { background: #453b33 !important; color: #fff !important; }
.joy-coa-row { transition: background .12s ease; }
.joy-coa-row:hover { background: #fbf7f2; }
.joy-packitem { transition: border-color .15s ease; }
.joy-packitem.is-on { border-color: #453b33 !important; }
.joy-packitem.is-on .joy-packcheck { background: #453b33; color: #fff; }
.joy-pack-add.is-ready { background: #fff; color: #453b33; cursor: pointer; }
.joy-pack-add.is-ready:hover { background: #f2d9c4; }

/* drawer + modals */
.joy-drawer { animation: joySlideIn .25s ease; }
.joy-drawer-scrim, .joy-modal-scrim { animation: joyFade .2s ease; }
@keyframes joySlideIn { from { transform: translateX(100%); } to { transform: translateX(0); } }
@keyframes joyFade { from { opacity: 0; } to { opacity: 1; } }

.joy-qty-btn { width: 24px; height: 24px; border-radius: 99px; background: #f0e8dd; display: flex; align-items: center; justify-content: center; cursor: pointer; font-weight: 800; font-size: 13px; user-select: none; }
.joy-qty-btn:hover { background: #e2d5c2; }
.joy-line-remove { font-size: 11.5px; font-weight: 700; color: #c4938a; cursor: pointer; margin-left: auto; }

/* checkout inputs */
.joy-input { border: 1.5px solid #eee2d2; border-radius: 12px; padding: 13px 16px; font-size: 14px; outline: none; background: #fff; font-family: 'Karla', sans-serif; width: 100%; }
.joy-input:focus { border-color: #453b33; }

/* redeem toggle */
.joy-redeem { display: flex; justify-content: space-between; align-items: center; border-radius: 14px; padding: 13px 16px; margin-bottom: 16px; cursor: pointer; background: rgba(255,255,255,.1); color: #f2d9c4; transition: background .15s ease; }
.joy-redeem.is-on { background: #f2d9c4; color: #453b33; }

/* responsive */
@media (max-width: 1100px) {
  .joy-grid4 { grid-template-columns: repeat(2, 1fr) !important; }
  .joy-hero-grid { grid-template-columns: 1fr 1fr !important; grid-template-rows: auto !important; }
  .joy-hero-grid > div:first-child, .joy-hero-grid > a, .joy-hero-grid > div { grid-row: auto !important; }
  .joy-rw-cards, .joy-values { grid-template-columns: 1fr !important; }
  .joy-pack-layout { grid-template-columns: 1fr !important; }
  .joy-pack-summary { position: static !important; }
  .joy-about-hero, .joy-contact, .joy-checkout-body { grid-template-columns: 1fr !important; }
  .joy-packpromo { grid-template-columns: 1fr !important; }
  .joy-coa-head, .joy-coa-row { grid-template-columns: 1.5fr 1fr 1fr 1fr !important; }
  .joy-coa-head span:nth-child(5), .joy-coa-head span:nth-child(6),
  .joy-coa-row span:nth-child(5), .joy-coa-row span:nth-child(6) { display: none; }
}
@media (max-width: 700px) {
  .joy-header { padding: 14px 20px !important; }
  .joy-nav { display: none !important; }
  .joy-page, .joy-home > div { padding-left: 20px !important; padding-right: 20px !important; }
  .joy-grid4 { grid-template-columns: 1fr !important; }
  .joy-hero-grid { grid-template-columns: 1fr !important; padding: 16px 20px 32px !important; }
  .joy-footer { padding: 32px 20px !important; }
}
