.cart-row { display:grid; gap:10px; min-width:0; padding:12px 0; border-bottom:1px solid #c8d9d6; font-size:13px; }
.cart-row label { display:flex; gap:8px; align-items:center; }
.cart-row select { min-width:0; max-width:100%; font:inherit; }
.cart-row p { margin:0; }
.cart-quantity { display:flex; flex-wrap:wrap; gap:7px; align-items:center; }
.cart-quantity input { width:62px; min-height:34px; font:inherit; text-align:center; }
.cart-quantity button { min-width:32px; min-height:34px; cursor:pointer; font:inherit; }
.cart-quantity button:disabled { opacity:.45; cursor:not-allowed; }
.cart-review-note { font-size:12px; line-height:1.6; overflow-wrap:anywhere; }
.order-summary { max-height:calc(100vh - 40px); overflow-y:auto; }
@media(max-width:960px) { .order-summary { max-height:none; overflow:visible; } }
.review-pack-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.review-pack-card { display:flex; flex-direction:column; gap:12px; padding:20px; background:#fff; border:1px solid var(--line); min-width:0; }
.review-pack-card img { width:100%; aspect-ratio:4/3; object-fit:contain; }
.review-pack-card h3, .review-pack-card p { margin:0; }
.review-pack-card h3 { font-size:20px; }
.review-pack-card p { font-size:13px; line-height:1.5; }
.review-pack-card label, .cart-suggestion label { display:grid; gap:6px; font-size:13px; }
.review-pack-card select, .cart-suggestion select { width:100%; min-height:36px; font:inherit; }
.review-pack-card .pack-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:46px;
  margin-top:auto;
  padding:10px 18px;
  border:1px solid #0b817e;
  border-radius:7px;
  color:#fff;
  background:#0b817e;
  box-shadow:0 7px 16px rgba(8,70,72,.14);
  font-size:14px;
  font-weight:700;
  line-height:1.2;
  text-align:center;
  cursor:pointer;
  transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.review-pack-card .pack-button:hover:not(:disabled) {
  border-color:#086b69;
  background:#086b69;
  box-shadow:0 9px 20px rgba(8,70,72,.2);
  transform:translateY(-1px);
}
.review-pack-card .pack-button:focus-visible {
  outline:3px solid #081b36;
  outline-offset:3px;
}
.review-pack-card .pack-button:disabled {
  border-color:#9ebfbd;
  color:#fff;
  background:#9ebfbd;
  box-shadow:none;
  opacity:.7;
  cursor:not-allowed;
  transform:none;
}
.product-card .product-bottom {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-items:stretch;
  gap:14px;
}
.product-reading-badge {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  min-height:28px;
  margin-top:14px;
  padding:6px 10px;
  color:#fff;
  border-radius:999px;
  background:#0b817e;
  font-size:11px;
  font-weight:700;
  line-height:1;
  letter-spacing:.02em;
}
.product-card .add-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:46px;
  padding:10px 14px;
  border:1px solid #0b817e;
  border-radius:7px;
  color:#fff;
  background:#0b817e;
  box-shadow:0 7px 16px rgba(8,70,72,.14);
  font-size:13px;
  font-weight:700;
  line-height:1.2;
  text-align:center;
  cursor:pointer;
  transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.product-card .add-button:hover:not(:disabled) {
  border-color:#086b69;
  background:#086b69;
  box-shadow:0 9px 20px rgba(8,70,72,.2);
  transform:translateY(-1px);
}
.product-card .add-button:focus-visible {
  outline:3px solid #081b36;
  outline-offset:3px;
}
.product-card .add-button:disabled {
  border-color:#9ebfbd;
  color:#fff;
  background:#9ebfbd;
  box-shadow:none;
  opacity:.7;
  cursor:not-allowed;
  transform:none;
}
.bracelet-reading-note,
.pack-reading-note {
  display:flex;
  align-items:flex-start;
  gap:11px;
  color:#123f4a;
  border:1px solid #9bd8d3;
  border-radius:8px;
  background:#eaf8f6;
}
.bracelet-reading-note {
  display:grid;
  margin:14px 0;
  padding:12px;
}
.pack-reading-note {
  margin:0 0 22px;
  padding:14px 16px;
}
.nfc-mark {
  display:inline-grid;
  place-items:center;
  flex:0 0 auto;
  min-width:38px;
  min-height:28px;
  padding:4px 6px;
  color:#fff;
  border-radius:6px;
  background:#0b817e;
  font-family:'DM Mono',monospace;
  font-size:10px;
  font-weight:700;
  letter-spacing:.06em;
}
.bracelet-reading-note strong {
  display:block;
  margin-bottom:5px;
  font-size:13px;
  line-height:1.35;
}
.bracelet-reading-note p,
.pack-reading-note p {
  min-height:0;
  margin:0;
  color:#315d65;
  font-size:12px;
  line-height:1.55;
}
.pack-reading-note strong { color:#123f4a; }
@media(max-width:660px) {
  .product-card .add-button {
    min-height:46px;
    padding-inline:4px;
    font-size:11px;
    white-space:nowrap;
  }
  .bracelet-reading-note { padding:10px; }
  .product-reading-badge { margin-top:12px; }
  .pack-reading-note { padding:12px; }
  .product-card[data-product="bracelet"] { grid-template-columns:minmax(0,1fr); }
  .product-card[data-product="bracelet"] .product-photo img {
    height:auto;
    aspect-ratio:1/1;
    object-fit:cover;
  }
}
.cart-pricing, .cart-suggestion { font-size:12px; line-height:1.6; overflow-wrap:anywhere; }
.cart-pricing { margin-top:16px; padding-top:12px; border-top:1px solid var(--line); }
.cart-suggestion:not([hidden]) { margin:16px 0; padding:20px; border:3px solid #ad0020; background:#ad0020; color:#fff; }
.cart-suggestion > strong { display:block; font-size:24px; line-height:1.2; }
.cart-suggestion p { font-size:15px; }
.pack-offer-reopen { display:block; width:100%; background:#fff; color:#ad0020; border:2px solid #fff; padding:12px; font:inherit; font-size:16px; font-weight:800; cursor:pointer; }
.pack-offer-dialog { box-sizing:border-box; position:fixed; inset:0; margin:auto; width:min(1040px,calc(100% - 24px)); max-width:none; max-height:calc(100vh - 24px); max-height:calc(100dvh - 24px); overflow-y:auto; overscroll-behavior:contain; border:3px solid #ad0020; border-radius:16px; padding:28px; background:#fff; color:#ad0020; font-family:inherit; text-align:center; overflow-wrap:anywhere; }
.pack-offer-dialog::backdrop { background:rgba(0,0,0,.76); }
.pack-offer-dialog h2 { margin:0 28px 24px; font-size:32px; line-height:1.2; color:#ad0020; }
.pack-offer-close { position:absolute; top:8px; right:8px; min-width:44px; min-height:44px; border:0; background:#fff; color:#ad0020; font-size:30px; cursor:pointer; }
.pack-offer-saving { margin:22px 0 0; font-size:24px; line-height:1.4; font-weight:800; }
.pack-offer-choices { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:14px; }
.pack-offer-choice { display:flex; flex-direction:column; gap:18px; min-width:0; min-height:180px; padding:22px 16px; border:3px solid #ad0020; border-radius:10px; background:#ad0020; color:#fff; font:inherit; text-align:center; cursor:pointer; }
.pack-offer-choice > strong { font-size:25px; line-height:1.3; }
.pack-offer-amounts { display:grid; gap:10px; margin:0; font-size:18px; line-height:1.4; }
.pack-offer-amounts strong { font-size:22px; }
.pack-offer-pack-name { display:block; font-size:14px; line-height:1.4; }
.pack-offer-color-summary { font-size:24px; font-weight:800; }
.pack-offer-totals { margin:16px 0; font-size:14px; line-height:1.5; color:#59101d; }
.pack-offer-subscription { margin:18px 0; padding:14px 0; border-block:2px solid #ad0020; font-size:20px; font-weight:800; line-height:1.4; }
.pack-offer-dialog label { display:block; margin:16px 0 8px; font-size:18px; font-weight:700; }
.pack-offer-dialog select { width:100%; min-height:48px; padding:8px; background:#fff; color:#59101d; border:2px solid #ad0020; font:inherit; }
.pack-offer-accept, .pack-offer-dismiss { display:block; width:100%; min-height:48px; padding:14px 12px; font:inherit; cursor:pointer; }
.pack-offer-accept { margin-top:18px; background:#ad0020; color:#fff; border:2px solid #ad0020; border-radius:8px; font-size:22px; font-weight:800; }
.pack-offer-accept:disabled { background:#eee; border-color:#767676; color:#555; cursor:not-allowed; }
.pack-offer-dismiss { margin-top:6px; background:#fff; color:#ad0020; border:0; font-size:18px; text-decoration:underline; text-underline-offset:4px; }
.pack-offer-dialog :focus-visible, .pack-offer-reopen:focus-visible { outline:3px solid #111; outline-offset:3px; }
@media(max-width:480px) {
  .pack-offer-dialog { padding:20px 16px; }
  .pack-offer-dialog h2 { font-size:22px; }
  .pack-offer-choices { grid-template-columns:minmax(0,1fr); }
  .pack-offer-choice { gap:12px; padding:18px 14px; min-height:0; }
  .pack-offer-choice > strong { font-size:22px; }
  .pack-offer-saving { font-size:21px; }
  .pack-offer-subscription { font-size:18px; }
}
@media(max-width:660px) { .review-pack-grid { grid-template-columns:1fr; } }
