.page-layout {
  display: flex;
  gap: 24px;
}

.page-layout-left {
  width: 736px;
}

.page-layout-right {
  width: calc(100% - 736px - 24px);
}

.section-layout {
  padding: 24px 24px;
  background: #fff;
  border-radius: 16px;
  margin-bottom: 24px;
}

.section-product {
  position: sticky;
  top: 100px;
}

.slick-images {
  border-radius: 12px;
  overflow: hidden;
  height: 387px;
}
.slick-images img {
  touch-action: pan-x pan-y;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  -webkit-user-drag: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  cursor: pointer;
  image-rendering: auto;
  backface-visibility: hidden;
  width: 100%;
  height: 387px;
  -o-object-fit: contain;
     object-fit: contain;
}
.slick-images iframe, .slick-images video {
  width: 100%;
  height: 387px;
}

.slick-count {
  position: absolute;
  bottom: 16px;
  left: 24px;
  color: #fff;
}

.images-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.images-controls a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px;
  background: #F3F4F6;
  border: 1px solid #F3F4F6;
  border-radius: 12px;
  color: #6B7280;
  width: 88px;
  height: 88px;
  line-height: normal;
  transition: 0.15s ease-in-out;
}
.images-controls a img, .images-controls a svg {
  width: 40px;
  height: 40px;
  -o-object-fit: cover;
     object-fit: cover;
  transition: 0.15s ease-in-out;
}
.images-controls a span {
  text-align: center;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-line-clamp: 1;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  transition: 0.15s ease-in-out;
}
.images-controls a:hover, .images-controls a.active {
  box-shadow: 0 0 6px rgba(0, 0, 0, 0.2);
  color: #2D52A0;
  background: #fff;
  border-color: #2D52A0;
}
.images-controls a:hover span, .images-controls a.active span {
  -webkit-line-clamp: 2;
}
.images-controls a:hover svg, .images-controls a:hover img, .images-controls a.active svg, .images-controls a.active img {
  width: 26px;
  height: 26px;
}

.section-description .description-main {
  overflow: hidden;
  margin: auto;
}
.section-description .description-main * {
  max-width: 100% !important;
  font-family: inherit !important;
}
.section-description .description-main img {
  max-width: 100% !important;
  display: block;
  margin-right: auto;
  margin-left: auto;
  width: auto !important;
  height: auto !important;
}
.section-description .description-main video, .section-description .description-main iframe {
  max-width: 100% !important;
}
.section-description .description-main.less {
  max-height: 250px;
  -webkit-mask-image: -webkit-linear-gradient(top, #000 60%, transparent);
}
.section-description .btn-more-less {
  color: #2D52A0;
  background: transparent;
  border: 1px solid #2D52A0;
  padding: 15px 30px;
  font-weight: 500;
  border-radius: 12px;
  transition: 0.15s ease-in-out;
}
.section-description .btn-more-less span:nth-child(2) {
  display: none;
}
.section-description .btn-more-less.less i {
  transform: scale(1, -1);
}
.section-description .btn-more-less.less span:nth-child(1) {
  display: none;
}
.section-description .btn-more-less.less span:nth-child(2) {
  display: block;
}
.section-description .btn-more-less:hover {
  background: #203A72;
  color: #fff;
}

.grid-products-related {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 8px;
}
.grid-products-related .product-item-layout .product-image img {
  height: 200px;
}

.slick-products-related .slick-track {
  padding: 6px 0;
}
.slick-products-related .product-item-layout {
  margin: 0 8px;
}
.slick-products-related .product-item-layout .product-image img {
  height: 156px;
}

.section-filter .group-filter {
  margin-bottom: 12px;
}
.section-filter .group-filter:last-child {
  margin-bottom: 0;
}
.section-filter .group-filter-body {
  border: 1px solid #E5E7EB;
  border-top: none;
  border-radius: 0 0 12px 12px;
  padding: 0 16px;
}
.section-filter .group-filter-name {
  padding: 8px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: #F3F4F6;
  border: 1px solid #F3F4F6;
  border-radius: 12px;
  transition: 0.15s ease-in-out;
}
.section-filter .group-filter-name svg {
  transition: 0.15s ease-in-out;
}
.section-filter .group-filter-name[aria-expanded=true] {
  background: #fff;
  border-color: #E5E7EB;
  border-bottom: none;
  border-radius: 12px 12px 0 0;
}
.section-filter .group-filter-name[aria-expanded=true] svg {
  transform: scale(1, -1);
}
.section-filter .filter-item {
  padding: 14px 0;
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 12px;
  border-top: 1px solid #E5E7EB;
}
.section-filter .filter-item:first-child {
  border-top: 1px solid #2E2E38;
}
.section-filter .filter-item p:last-child {
  margin-bottom: 0;
}

.section-product .product-compare a {
  display: flex;
  align-items: center;
  gap: 4px;
  color: #2D52A0;
}
.section-product .product-price-wrapper {
  padding: 16px;
  border-radius: 12px 12px 0 0;
  background: linear-gradient(0deg, rgb(255, 255, 255) 0%, rgb(253, 231, 231) 100%);
}
.section-product .product-price-wrapper .product-price {
  font-weight: 600;
  font-size: 24px;
  color: #E71313;
}
.section-product .product-promotion {
  border: 1px solid #EAEEF6;
  padding: 16px;
  border-radius: 12px;
  background: linear-gradient(0deg, rgb(255, 255, 255) 0%, #EAEEF6 100%);
}
.section-product .product-buy {
  display: flex;
  align-items: center;
  gap: 8px;
}

.product-add-cart {
  color: #2D52A0;
  border: 1px solid #2D52A0;
  width: 56px;
  height: 56px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: 0.15s ease-in-out;
}
.product-add-cart:hover {
  color: #fff;
  background: #2D52A0;
}

.product-buy-now {
  color: #fff;
  background: #E71313;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: 0.15s ease-in-out;
  width: calc((100% - 56px - 16px) / 2);
  height: 56px;
  font-size: 16px;
  font-weight: 600;
}
.product-buy-now:hover {
  background: #A40D0D;
}

.product-buy-installment {
  color: #fff;
  background: #2D52A0;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: 0.15s ease-in-out;
  width: calc((100% - 56px - 16px) / 2);
  height: 56px;
  font-size: 16px;
  font-weight: 600;
}
.product-buy-installment:hover {
  background: #203A72;
}

.product-option {
  display: grid;
  grid-template-columns: 1fr 3.5fr;
  gap: 24px;
  color: #2E2E38;
  margin-bottom: 24px;
}
.product-option .product-opiton-item {
  padding: 4px 12px;
  display: flex;
  align-items: center;
  gap: 4px;
  justify-content: center;
  height: 40px;
  border-radius: 8px;
  border: 1px solid #E5E7EB;
  color: #2E2E38;
  transition: 0.15s ease-in-out;
}
.product-option .product-opiton-item img {
  width: 32px;
  height: 32px;
  -o-object-fit: contain;
     object-fit: contain;
}
.product-option .product-opiton-item:hover {
  border-color: #2D52A0;
}
.product-option .product-opiton-item.active {
  border-color: #2D52A0;
  background: url("data:image/svg+xml,%3csvg width='20' height='12' viewBox='0 0 20 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M0 0H20V12H8C3.58172 12 0 8.41828 0 4V0Z' fill='%232D52A0'/%3e%3cpath d='M6 6.16353L8.66353 8.82706L14 3.5' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e") right top no-repeat;
}
.product-option .product-attribute-item {
  width: auto;
}

.label-product-attribute-item, .label-product-attribute-item-mb {
  cursor: pointer;
  position: relative;
}
.label-product-attribute-item input, .label-product-attribute-item-mb input {
  position: absolute;
  width: 0;
  height: 0;
  top: 0;
  left: 0;
  display: none;
}
.label-product-attribute-item input:checked ~ .product-attribute-item, .label-product-attribute-item-mb input:checked ~ .product-attribute-item {
  border-color: #2D52A0;
  background: url("data:image/svg+xml,%3csvg width='20' height='12' viewBox='0 0 20 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M0 0H20V12H8C3.58172 12 0 8.41828 0 4V0Z' fill='%232D52A0'/%3e%3cpath d='M6 6.16353L8.66353 8.82706L14 3.5' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e") right top no-repeat;
}
.label-product-attribute-item.out-of-stock, .label-product-attribute-item-mb.out-of-stock {
  pointer-events: none;
  opacity: 0.6;
}
.label-product-attribute-item.out-of-stock .product-opiton-item, .label-product-attribute-item-mb.out-of-stock .product-opiton-item {
  background: #E5E7EB;
}

.news-list .news-item {
  margin: 10px 0;
}

.news-item-layout {
  gap: 12px;
}
.news-item-layout .news-img img {
  height: 100px;
}
.news-item-layout .news-content .news-name {
  margin-bottom: 0;
}
.news-item-layout .news-content .news-summary {
  display: none;
}
.news-item-layout .news-content .news-time-category {
  display: none;
}

.grid-viewed {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
}

.btn-pre-order {
  background: #2D52A0;
  color: #fff;
  border-radius: 12px;
  padding: 12px 24px;
  font-weight: 600;
  transition: 0.15s ease-in-out;
}
.btn-pre-order:hover {
  background: #203A72;
  color: #fff;
}

#rateModal {
  --bs-modal-width: 640px;
}
#rateModal .rate-star {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
}
#rateModal .rating-item {
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: center;
  font-size: 11px;
  color: #DEDEDE;
}
#rateModal .rating-item svg {
  width: 24px;
  height: 24px;
}
#rateModal .rating-item.active {
  color: #F8B52B;
}
#rateModal .rating-image {
  color: #2D52A0;
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  border-radius: 12px;
  padding: 12px;
  border: 1px dashed #2D52A0;
  color: #2D52A0;
  transition: 0.15s ease-in-out;
}
#rateModal .rating-image:hover {
  background: #2D52A0;
  color: #fff;
}
#rateModal .rating-image.active {
  margin-top: 16px;
}
#rateModal .list-image-review {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
#rateModal .list-image-review img {
  width: 80px;
  height: 80px;
  border-radius: 8px;
  -o-object-fit: cover;
     object-fit: cover;
}
#rateModal .btn-rate {
  height: 48px;
  width: 100%;
  background: #2D52A0;
  color: #fff;
  border-radius: 12px;
  transition: 0.15s ease-in-out;
}
#rateModal .btn-rate:hover {
  background: #203A72;
}

.section-rate {
  display: grid;
  grid-template-columns: 1fr 3fr 1fr;
  gap: 30px;
  align-items: center;
}
.section-rate .rate-average {
  font-size: 36px;
  color: #2D52A0;
}
.section-rate .rate-list {
  padding: 0 30px;
  border-left: 1px solid #E5E7EB;
  border-right: 1px solid #E5E7EB;
}
.section-rate .rate-action-btn {
  background: #2D52A0;
  color: #fff;
  font-weight: 500;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  transition: 0.15s ease-in-out;
}
.section-rate .rate-action-btn:hover {
  background: #203A72;
}
.section-rate .rate-item {
  display: grid;
  grid-template-columns: 100px 1fr auto;
  gap: 8px;
  align-items: center;
}
.section-rate .rate-item .progress {
  height: 6px;
  border-radius: 4px;
  background-color: #F3F4F6;
}
.section-rate .rate-item .progress .progress-bar {
  background-color: #2D52A0;
}

.item-comment {
  display: grid;
  grid-template-columns: 40px auto;
  gap: 12px;
  margin-bottom: 24px;
  padding-bottom: 24px;
  border-bottom: 1px solid #E5E7EB;
}
.item-comment .rate-description {
  margin-left: 20px;
  color: #2D52A0;
  font-weight: 500;
}
.item-comment .comment-avatar img {
  width: 24px;
  height: 24px;
  border-radius: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.item-comment .comment-content * {
  max-width: 100% !important;
}
.item-comment .comment-content p:last-child {
  margin-bottom: 0;
}
.item-comment .comment-image {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.item-comment .comment-image img {
  width: 72px;
  height: 72px;
  -o-object-fit: cover;
     object-fit: cover;
}
.item-comment .comment-helpfull.active {
  color: #2D52A0;
  pointer-events: none;
}
.item-comment .comment-admin {
  display: grid;
  grid-template-columns: 24px auto;
  gap: 12px;
  padding: 12px;
  background: #F3F4F6;
  border-radius: 8px;
}

.more-comments {
  display: flex;
  width: -moz-fit-content;
  width: fit-content;
  margin: auto;
  color: #2D52A0;
  border: 1px solid #2D52A0;
  padding: 12px 24px;
  font-weight: 500;
  border-radius: 12px;
  transition: 0.15s ease-in-out;
}
.more-comments:hover {
  background: #203A72;
  color: #fff;
}

#offcanvasBuy {
  border-radius: 12px 12px 0 0;
  height: auto;
}
#offcanvasBuy .offcanvas-header-title {
  width: calc(100vw - 3rem - 70px - 30px);
}
#offcanvasBuy .offcanvas-title {
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-line-clamp: 1;
  display: -webkit-box;
  -webkit-box-orient: vertical;
}
#offcanvasBuy .product-add-cart {
  height: 44px;
  width: 44px;
}
#offcanvasBuy .product-buy-now {
  height: 44px;
}
#offcanvasBuy .product-buy-installment {
  height: 44px;
}

.offcanvas-backdrop {
  -webkit-backdrop-filter: blur(2px);
          backdrop-filter: blur(2px);
  background-color: rgba(0, 0, 0, 0.4);
}
.offcanvas-backdrop.show {
  opacity: 1;
}

@media (max-width: 1024px) {
  .section-product {
    position: unset;
  }
  .page-layout {
    flex-wrap: wrap;
    gap: 16px;
  }
  .page-layout-left {
    width: 100%;
  }
  .page-layout-right {
    width: 100%;
  }
  .section-layout {
    padding: 10px;
    margin-bottom: 16px;
  }
  .slick-images {
    height: auto;
  }
  .slick-images img {
    height: auto;
  }
  .slick-products-related .product-item-layout .product-image img {
    height: 208px;
  }
  .grid-viewed {
    grid-template-columns: repeat(2, 1fr);
  }
  .section-rate {
    grid-template-columns: 1fr 3fr;
    gap: 16px;
  }
  .section-rate .rate-list {
    padding: 0 0 0 16px;
    border-right: 0;
  }
  .section-rate .rate-action {
    grid-column: span 2;
  }
  #rateModal .form-star {
    flex-wrap: wrap;
  }
  #rateModal .form-star br {
    display: none;
  }
  #rateModal .form-star .form-star-title {
    width: 100%;
  }
  #rateModal .form-star .form-star-action {
    width: 100%;
  }
  .news-item-layout .news-img img {
    height: 20vw;
  }
  .images-controls {
    flex-wrap: nowrap;
    overflow: auto;
    justify-content: unset;
    white-space: nowrap;
  }
  .images-controls a img, .images-controls a svg {
    width: 72px !important;
    max-width: 72px;
    -o-object-fit: contain;
       object-fit: contain;
  }
  .images-controls a span {
    white-space: normal;
  }
  .section-product .product-buy {
    display: none;
  }
  .section-product .product-buy-mb {
    margin: 0 !important;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 10px;
    border-radius: 12px 12px 0 0;
    background: #fff;
    z-index: 999;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
  }
  .section-product .product-buy-mb .product-add-cart {
    height: 44px;
    width: 44px;
  }
  .section-product .product-buy-mb .product-buy-now {
    height: 44px;
  }
  .section-product .product-buy-mb .product-buy-installment {
    height: 44px;
  }
  .product-option {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .product-option .fw-semibold.pt-2 {
    padding-top: 0 !important;
  }
  .product-option .product-attribute-item {
    width: -moz-max-content;
    width: max-content;
  }
}
@media (max-width: 400px) {
  .section-rate {
    grid-template-columns: 1fr;
  }
  .section-rate .rate-action {
    grid-column: span 1;
  }
  .section-rate .rate-list {
    padding: 0;
    border: none;
  }
}
