/* JC Custom — side cart + shared total lines and code box */
.jc-no-scroll, .jc-no-scroll body { overflow: hidden; }

.jc-minicart { position: fixed; inset: 0; z-index: 200; }
.jc-minicart[hidden] { display: none; }
.jc-minicart__shade {
  position: absolute; inset: 0; opacity: 0; transition: opacity .3s var(--jc-ease);
  background: radial-gradient(600px 400px at 20% 20%, rgba(31,58,48,.45), transparent 70%), rgba(17,17,17,.38);
}
.jc-minicart__panel {
  position: absolute; top: calc(16px + var(--wp-admin--admin-bar--height, 0px)); right: 16px; bottom: 16px; width: min(440px, calc(100vw - 32px));
  display: flex; flex-direction: column; overflow: hidden; border-radius: var(--jc-radius-lg);
  background: linear-gradient(160deg, rgba(255,252,245,.94), rgba(241,236,226,.86));
  transform: translateX(calc(100% + 24px)); transition: transform .35s var(--jc-ease); outline: none;
}
.jc-minicart.is-open .jc-minicart__shade { opacity: 1; }
.jc-minicart.is-open .jc-minicart__panel { transform: none; }

.jc-minicart__head { display: flex; justify-content: space-between; align-items: center; padding: 22px 24px 14px; border-bottom: 1px solid var(--jc-line); }
.jc-minicart__head h2 { margin: 0; font-size: var(--jc-fs-h3); }
.jc-minicart__head h2 span { font-family: var(--jc-sans); font-size: var(--jc-fs-sm); color: var(--jc-muted); }
.jc-minicart__close { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--jc-line); background: transparent; color: var(--jc-black); display: flex; align-items: center; justify-content: center; }
.jc-minicart__note { margin: 0; font-size: var(--jc-fs-sm); }
.jc-minicart__note:not(:empty) { margin: 12px 24px 0; padding: 10px 14px; border-radius: var(--jc-radius-sm); }
.jc-minicart__note.is-ok { background: var(--jc-green-tint); color: var(--jc-green); }
.jc-minicart__note.is-error { background: #FBEDEC; color: #8E1F24; }

.jc-minicart__items { list-style: none; margin: 0; padding: 8px 24px; flex: 1; overflow-y: auto; overscroll-behavior: contain; }
.jc-minicart__loading { padding: 24px 0; color: var(--jc-muted); font-size: var(--jc-fs-sm); }
.jc-minicart__empty { padding: 32px 0; text-align: center; }
.jc-minicart__item { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--jc-line); }
.jc-minicart__item:last-child { border-bottom: 0; }
.jc-minicart__item .jc-photo { border-radius: 14px; }
.jc-minicart__info { display: flex; flex-direction: column; min-width: 0; }
.jc-minicart__name { font-size: 15px; line-height: 1.35; color: var(--jc-black); }
.jc-minicart__opts { font-size: var(--jc-fs-sm); color: var(--jc-muted); margin-top: 3px; }
.jc-minicart__row { display: flex; justify-content: space-between; align-items: center; margin-top: auto; padding-top: 8px; }
.jc-minicart__price { color: var(--jc-green); font-weight: 500; }
.jc-minicart__remove, .jc-minicart__codes button, .jc-remove {
  border: 0; background: none; padding: 4px 0; font-size: var(--jc-fs-xs); letter-spacing: .12em; text-transform: uppercase;
  color: var(--jc-muted); border-bottom: 1px solid var(--jc-line); cursor: pointer;
}
.jc-minicart__remove:hover, .jc-minicart__codes button:hover, .jc-remove:hover { color: #8E1F24; border-color: #C98A8A; }

.jc-minicart__foot { padding: 16px 24px 22px; border-top: 1px solid var(--jc-line); background: rgba(250,247,242,.6); }
.jc-minicart__foot > .jc-btn { width: 100%; min-height: 54px; margin-top: 16px; }
.jc-minicart__view { display: block; text-align: center; margin-top: 12px; font-size: var(--jc-fs-xs); letter-spacing: .16em; text-transform: uppercase; color: var(--jc-green); }
.jc-minicart__coupon summary { cursor: pointer; font-size: var(--jc-fs-sm); color: var(--jc-gold-dark); list-style: none; margin-bottom: 4px; }
.jc-minicart__coupon summary::-webkit-details-marker { display: none; }
.jc-minicart__coupon[open] summary { margin-bottom: 10px; }
.jc-minicart__codes { list-style: none; margin: 8px 0 0; padding: 0; }
.jc-minicart__codes li { display: flex; justify-content: space-between; align-items: center; font-size: var(--jc-fs-sm); }

/* code box (side cart + cart page) */
.jc-coupon { display: flex; gap: 8px; }
.jc-coupon input { min-height: 46px; flex: 1; min-width: 0; }
.jc-coupon .jc-btn { min-height: 46px; padding: 0 18px; flex-shrink: 0; }

/* total lines */
.jc-totals { margin: 12px 0 0; }
.jc-totals > div { display: flex; justify-content: space-between; gap: 12px; padding: 5px 0; font-size: 14px; }
.jc-totals > div[hidden] { display: none; }
.jc-totals dt { color: var(--jc-muted); }
.jc-totals dd { margin: 0; color: var(--jc-black); }
.jc-totals__free { color: var(--jc-green) !important; }
.jc-totals__total { border-top: 1px solid var(--jc-line); margin-top: 6px; padding-top: 12px !important; font-size: 17px !important; }
.jc-totals__total dt { color: var(--jc-black); }
.jc-totals__total dd { font-weight: 500; color: var(--jc-green); }

@media (max-width: 600px) {
  .jc-minicart__panel { top: auto; right: 8px; left: 8px; bottom: 8px; width: auto; max-height: calc(100dvh - 40px); transform: translateY(calc(100% + 24px)); border-radius: 24px; }
  .jc-minicart__head, .jc-minicart__items, .jc-minicart__foot { padding-inline: 18px; }
  .jc-minicart__note:not(:empty) { margin-inline: 18px; }
  .jc-minicart__item { grid-template-columns: 76px minmax(0, 1fr); gap: 14px; }
}
