@charset "UTF-8";

/* Keep the existing float/position rules; constrain the old 550px cart width
   to the description column without introducing another fixed width. */
#cart_box_pctab {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 20px 0;
  padding: 24px;
  border: 1px solid #dfe3e8;
  border-radius: 8px;
  background: #fff;
  color: #303740;
  text-align: left;
  font-size: 14px;
  line-height: 1.6;
  overflow-wrap: anywhere;
  scroll-margin-top: 80px;
}
@media (min-width: 1051px) {
  #cart_box_pctab { max-width: 650px; }
}
#cart_box_pctab *, #cart_box_pctab *::before, #cart_box_pctab *::after { box-sizing: border-box; }
#cart_box_pctab [hidden] { display: none !important; }
#cart_box_pctab > hr { display: none; }
#cart_box_pctab p { margin: 10px 0; font-size: 13px; line-height: 1.6; }
#cart_box_pctab .ems-model { display: flex; align-items: baseline; gap: 12px; margin: 0 0 20px; }
#cart_box_pctab .ems-label { flex: 0 0 auto; color: #68717c; font-size: 13px; font-weight: 400; }
#cart_box_pctab .item_number { min-width: 0; color: #303740; font-size: 17px; font-weight: 650; overflow-wrap: anywhere; }
#cart_box_pctab .ems-embed { min-width: 0; max-width: 100%; }
#cart_box_pctab :is(.item_attribute_1, .item_attribute_2, .item_attribute_3) {
  display: grid; grid-template-columns: 6em minmax(0, 1fr); gap: 8px 12px;
  margin: 8px 0; font-size: 14px; line-height: 1.6;
}
#cart_box_pctab .item_textinfo_ttl { color: #68717c; }
#cart_box_pctab .item_textinfo_val { min-width: 0; overflow-wrap: anywhere; }
#cart_box_pctab .item_price { margin: 24px 0 10px; }
#cart_box_pctab :is(.item_normal_price, .item_sale_price, .merry-price-panel) {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px;
  margin: 0; padding: 0; background: transparent; border: 0;
}
#cart_box_pctab :is(.normal_price_ttl, .sale_price_ttl) { color: #68717c; font-size: 13px; font-weight: 400; }
#cart_box_pctab :is(.normal_price_main, .sale_price_main, .ems-price-amount) {
  display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 4px; min-width: 0; max-width: 100%;
}
#cart_box_pctab :is(.normal_price_val, .sale_price_val, .merry-price-main) {
  color: #c62828; font-size: 36px; font-weight: 800; line-height: 1.2;
  font-variant-numeric: tabular-nums; overflow-wrap: anywhere;
}
#cart_box_pctab :is(.item_price_unit, .ems-price-unit) { color: #c62828; font-size: 19px; font-weight: 700; white-space: nowrap; }
#cart_box_pctab :is(.price_unit_sub, .ems-price-tax) { color: #68717c; font-size: 13px; font-weight: 400; white-space: nowrap; }
/* If a sale price is supplied, its normal/reference price is secondary. */
#cart_box_pctab .item_price:has(.item_sale_price) .item_normal_price { margin-bottom: 8px; }
#cart_box_pctab .item_price:has(.item_sale_price) .item_normal_price :is(.normal_price_val, .item_price_unit),
#cart_box_pctab .item_normal_price:is(.strike, .line-through) :is(.normal_price_val, .item_price_unit) {
  color: #68717c; font-size: 14px; font-weight: 400; text-decoration: line-through;
}
#cart_box_pctab .item_point { margin: 12px 0; padding: 8px 10px; border-radius: 4px; background: #f5f7f9; color: #46535f; font-size: 13px; }
#cart_box_pctab .item_point_ttl { margin-right: 12px; color: #68717c; }
#cart_box_pctab .item_point_val { font-weight: 600; }
#cart_box_pctab .item_count { margin: 20px 0 16px; font-size: 14px; }
#cart_box_pctab .item_count_ttl { display: inline-block; min-width: 6em; margin-right: 12px; color: #68717c; }
#cart_box_pctab :is(.item_count_select, .item_count_number) {
  min-height: 40px; max-width: 100%; padding: 6px 12px; border: 1px solid #adb6c1;
  border-radius: 4px; background: #fff; color: #303740; font: inherit;
}
#cart_box_pctab .item_count_select { min-width: 80px; }
/* Do not set display on spinner_area: the provider controls its visibility. */
#cart_box_pctab .cart_form { margin: 0 0 12px; max-width: 100%; }
#cart_box_pctab .cart_form .cart_button {
  width: 100%; max-width: 100%; min-height: 50px; height: auto; margin: 0; padding: 12px 16px;
  border: 1px solid #215e9e; border-radius: 5px; background: #286db3; box-shadow: none;
  color: #fff; font-size: 16px; font-weight: 700; line-height: 1.5; white-space: normal; cursor: pointer;
}
#cart_box_pctab .cart_button:not(:disabled):not([aria-disabled="true"]):hover { background: #20588f; }
#cart_box_pctab .cart_button:disabled, #cart_box_pctab .cart_button[aria-disabled="true"] {
  border-color: #c9cfd6; background: #e7ebef; color: #66717d; cursor: not-allowed;
}
#cart_box_pctab .bookmark_area { margin: 12px 0 20px; padding: 0; list-style: none; font-size: 13px; }
#cart_box_pctab .ems-action {
  display: block; max-width: 100%; margin: 12px 0; padding: 10px 14px; border: 1px solid #aeb8c3;
  border-radius: 4px; background: #fff; color: #344b63; text-align: center;
  text-decoration: none; font-size: 14px; font-weight: 600; line-height: 1.6;
}
#cart_box_pctab .ems-action:hover { border-color: #547291; background: #f2f6fa; color: #244d77; }
#cart_box_pctab :is(a, button, select, input, [tabindex]):focus-visible { outline: 3px solid #2467a9; outline-offset: 3px; }
#cart_box_pctab > .ems-action { margin-top: 20px; }
#cart_box_pctab .ems-corporate { margin-top: 24px; padding: 16px; border-top: 1px solid #dfe3e8; border-radius: 4px; background: #f6f7f9; }
#cart_box_pctab .ems-corporate > strong { font-size: 14px; font-weight: 650; }
#cart_box_pctab #merry-ems-fallback .merry-price-panel { margin: 20px 0 16px; }
#cart_box_pctab #merry-ems-fallback { padding: 16px 0; }
#cart_box_pctab .ems-status-title { color: #303740; font-size: 17px; font-weight: 700; }
#cart_box_pctab .ems-loading-dots {
  display: inline-block;
  width: 3ch;
  margin-left: 0.15em;
  font-family: monospace;
  vertical-align: baseline;
}
#cart_box_pctab .ems-loading-dots > span {
  display: inline-block;
  overflow: hidden;
  width: 1ch;
  vertical-align: bottom;
  white-space: nowrap;
  animation: merry-ems-loading-dots 1.5s steps(1, end) infinite;
}
#cart_box_pctab[data-ems-state]:not([data-ems-state="loading"]) .ems-loading-dots { display: none; }
@keyframes merry-ems-loading-dots {
  0% { width: 1ch; }
  33.333% { width: 2ch; }
  66.667%, 100% { width: 3ch; }
}
@media (prefers-reduced-motion: reduce) {
  #cart_box_pctab .ems-loading-dots > span { animation: none; width: 3ch; }
}
@media (max-width: 600px) {
  #cart_box_pctab { padding: 16px; border-radius: 6px; }
  #cart_box_pctab :is(.normal_price_val, .sale_price_val, .merry-price-main) { font-size: 30px; }
  #cart_box_pctab :is(.item_attribute_1, .item_attribute_2, .item_attribute_3) { grid-template-columns: 5em minmax(0, 1fr); font-size: 13px; }
  #cart_box_pctab .ems-corporate { padding: 12px; }
}
