.cart-page main {
  width: 100%;
  max-width: 86rem;
  margin-left: auto;
  margin-right: auto;
  padding-top: 4rem;
}
.cart-page main h1 {
  margin-bottom: 2rem;
  font-size: 1.4rem;
  line-height: 2;
}
.cart-page main .table {
  display: grid;
  grid-template-columns: 36rem 1fr 1fr 1fr;
}
@media (max-width: 768px) {
  .cart-page main .table {
    grid-template-columns: 100%;
    gap: 0.6rem;
  }
}
.cart-page main .table .head {
  display: flex;
  align-items: center;
  padding: 0 1.2rem;
  height: 4.5rem;
  background: #e6e6e6;
  font-size: 1.8rem;
  font-weight: bold;
}
@media (max-width: 768px) {
  .cart-page main .table .head {
    display: none;
  }
}
.cart-page main .table .product {
  display: grid;
  grid-template-columns: 8rem 1fr;
  gap: 0.8rem;
  height: 12rem;
  padding: 2rem;
}
.cart-page main .table .product .name {
  font-weight: bold;
}
.cart-page main .table .product .point {
  font-size: 1.2rem;
}
.cart-page main .table .price {
  padding: 1.6rem;
  font-size: 2.4rem;
  font-weight: bold;
}
@media (max-width: 768px) {
  .cart-page main .table .price {
    font-size: 1.6rem;
    text-align: right;
    padding: 0;
  }
}
.cart-page main .table .quantity {
  display: flex;
  align-items: center;
  gap: 1.2rem;
}
.cart-page main .table .quantity .input input {
  width: 4rem;
  height: 3.2rem;
  border: 0.1rem solid #222;
  border-radius: 0.3rem;
}
.cart-page main .table .quantity .update {
  font-size: 1.4rem;
  color: #222;
  text-decoration: underline;
}
.cart-page main .table .quantity .delete {
  font-size: 1.4rem;
  border: 0.1rem solid #222;
  border-radius: 0.3rem;
  padding: 0.2rem 0.4rem;
}
.cart-page main .table .subtotal {
  padding: 1.6rem;
  font-size: 2.4rem;
  font-weight: bold;
}
@media (max-width: 768px) {
  .cart-page main .table .subtotal {
    font-size: 1.6rem;
    text-align: right;
    padding: 0;
  }
}
.cart-page main .table .total {
  grid-column: 1/-1;
  display: flex;
  align-items: center;
  justify-content: end;
  gap: 2rem;
  height: 9.8rem;
  background: #e6e6e6;
  padding: 2rem;
}
.cart-page main .table .total .label {
  font-size: 1.8rem;
  font-weight: bold;
}
.cart-page main .table .total .price-wrap .total-price {
  font-size: 2.4rem;
  font-weight: bold;
}
.cart-page main .table .total .price-wrap .point {
  font-size: 1.2rem;
}
.cart-page main .until-free-shipping {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin-top: 2rem;
  padding: 1.6rem;
  background: #ffece7;
}
.cart-page main .until-free-shipping .lead {
  font-weight: bold;
  font-size: 1.4rem;
}
.cart-page main .until-free-shipping .lead span {
  font-size: 2.2rem;
  color: #f23e0c;
}
.cart-page main .until-free-shipping .sub {
  font-size: 1.2rem;
}
.cart-page main .rounded-button {
  margin-top: 4rem;
  width: 32rem;
  margin-left: auto;
}
.cart-page main .back-link {
  display: flex;
  justify-content: end;
  margin-top: 2rem;
}
.cart-page main .back-link a {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  text-decoration: underline;
}
.cart-page main .back-link a::before {
  content: "";
  width: 0.8rem;
  height: 1.4rem;
  background: url("https://gigaplus.makeshop.jp/tomsracing/renew/assets/img/cart/cart_back.svg") no-repeat center center/contain;
}
.cart-page aside {
  margin-top: 11rem;
}
.cart-page aside section {
  width: 100%;
  max-width: 86rem;
  margin-left: auto;
  margin-right: auto;
}
.cart-page aside section + section {
  margin-top: 11rem;
}
.cart-page .ranking-section {
  margin-top: 12rem;
  padding: 12rem 0;
  background: #f5f5f5;
}