@charset "UTF-8";
/* ==== design tokens ==== */
/* ==== global reset (unnamespaced, shared site-wide) ==== */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* Bootstrap ships its own `.breadcrumb { display: flex; ... }` component, and
   every page's breadcrumb div happens to share that class name. As a flex
   container, the leading/trailing whitespace around the "/" separator text
   collapses away, so "Trang chủ / Sản phẩm" renders as "Trang chủ/Sản phẩm".
   `.breadcrumb-section .breadcrumb` outranks Bootstrap's bare `.breadcrumb`
   on specificity, so this wins regardless of stylesheet load order. */
.breadcrumb-section .breadcrumb {
  display: block;
}

html,
body {
  font-size: 16px;
}

body {
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  color: #333;
  line-height: 1.6;
}

img {
  object-fit: cover;
  max-width: 100%;
}

/* ==== home page styles (unnamespaced, shared) ==== */
.header {
  background-color: #fff;
  box-shadow: 0 0.125rem 0.3125rem rgba(0, 0, 0, 0.1);
  position: sticky;
  top: 0;
  z-index: 1000;
}

.top-bar {
  background: #7cb342;
  color: white;
  padding: 0.5rem 0;
  font-size: 0.875rem;
}

.top-bar-content {
  max-width: 87.5rem;
  margin: 0 auto;
  padding: 0 1.25rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.contact-info {
  display: flex;
  gap: 1.25rem;
}

.account-links {
  display: flex;
  align-items: center;
  gap: 0.3125rem;
}

.account-links a {
  color: white;
  text-decoration: none;
  transition: opacity 0.3s;
}

.account-links a:hover {
  opacity: 0.85;
  text-decoration: underline;
}

.top-bar-right {
  display: flex;
  align-items: center;
  gap: 1.25rem;
}

.wishlist-link a {
  color: white;
  text-decoration: none;
  transition: opacity 0.3s;
}

.wishlist-link a:hover {
  opacity: 0.85;
  text-decoration: underline;
}

.cart-link-mobile {
  display: none;
}

.cart-link-mobile a {
  color: white;
  text-decoration: none;
  transition: opacity 0.3s;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}

.cart-link-mobile a:hover {
  opacity: 0.85;
  text-decoration: underline;
}

/* SVG line-art (stroke: currentColor) thay cho emoji 🛒 - emoji giữ màu gốc riêng nên
   trên nền xanh #7cb342 trông mờ/thiếu tương phản; SVG ăn theo color:white ở trên nên
   luôn trắng, sắc nét, đồng nhất trên mọi thiết bị/trình duyệt. */
.cart-link-mobile-icon {
  width: 1.125rem;
  height: 1.125rem;
  flex-shrink: 0;
  vertical-align: -0.2em;
}

.nav-container {
  max-width: 87.5rem;
  margin: 0 auto;
  padding: 0.9375rem 1.25rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
}

.logo {
  font-size: 2rem;
  font-weight: bold;
  color: #7cb342;
  text-decoration: none;
}

.nav-toggle {
  display: none;
  background: none;
  border: none;
  font-size: 1.75rem;
  line-height: 1;
  color: #7cb342;
  cursor: pointer;
}

.nav-menu {
  display: flex;
  gap: 2.1875rem;
  list-style: none;
  align-items: center;
}

.nav-menu a {
  text-decoration: none;
  color: #666;
  font-weight: 600;
  transition: color 0.3s;
  font-size: 0.9375rem;
}

.nav-menu a:hover {
  color: #7cb342;
}

@media (max-width: 992px) {
  .nav-toggle {
    display: block;
    margin-left: auto;
  }
  .cart-link-mobile {
    display: block;
  }
  /* Ở mobile top-bar-right dồn cart-link-mobile + wishlist-link + account-links vào
     chung 1 hàng, dễ vỡ layout - chỉ giữ icon + số lượng, ẩn chữ nhãn (Giỏ hàng/Yêu
     thích) cho gọn. */
  .top-bar-right .link-label {
    display: none;
  }
  .nav-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    background: #fff;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.12);
    padding: 0.3125rem 1.25rem 0.9375rem;
    z-index: 999;
  }
  .nav-menu.is-open {
    display: flex;
  }
  .nav-menu li {
    width: 100%;
    padding: 0.625rem 0;
    border-bottom: 0.0625rem solid #eee;
  }
  .nav-menu li:last-child {
    border-bottom: none;
    padding-top: 0.9375rem;
  }
}

@media (max-width: 576px) {
  .contact-info {
    display: none;
  }
  .top-bar-right {
    margin-left: auto;
  }
}

.cart-icon {
  background: #7cb342;
  color: white;
  padding: 0.625rem 1.25rem;
  border-radius: 1.5625rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.3s;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}

.cart-icon:hover {
  background: #689f38;
}

/* SVG line-art (stroke: currentColor) thay cho emoji 🛒 - cùng lý do với
   .cart-link-mobile-icon: emoji giữ màu gốc riêng nên trông mờ, SVG ăn theo
   color:white ở trên nên luôn trắng, sắc nét, đồng nhất mọi thiết bị. */
.cart-icon-svg {
  width: 1.125rem;
  height: 1.125rem;
  flex-shrink: 0;
}

/* ==== search trigger + popup (global, header) ==== */
.search-trigger {
  background: none;
  border: none;
  color: white;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  width: 1.125rem;
  height: 1.125rem;
  flex-shrink: 0;
  transition: opacity 0.3s;
}
.search-trigger:hover {
  opacity: 0.85;
}
.search-trigger svg {
  width: 100%;
  height: 100%;
}

.search-popup-overlay {
  position: fixed;
  inset: 0;
  background: rgba(20, 24, 20, 0.92);
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
  animation: search-popup-fade 0.2s ease;
}
@keyframes search-popup-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}
.search-popup-close {
  position: fixed;
  top: 1.5rem;
  right: 1.5rem;
  background: none;
  border: none;
  color: #fff;
  font-size: 1.75rem;
  line-height: 1;
  cursor: pointer;
  z-index: 2001;
}
.search-popup-content {
  width: 100%;
  max-width: 40rem;
  text-align: center;
}
.search-popup-title {
  color: #fff;
  font-size: 1.75rem;
  font-weight: 700;
  margin-bottom: 2rem;
  text-wrap: balance;
}
.search-popup-form {
  display: flex;
  align-items: center;
  background: #fff;
  border-radius: 3rem;
  padding: 0.375rem 0.375rem 0.375rem 1.5rem;
  gap: 0.75rem;
}
.search-popup-input {
  flex: 1;
  min-width: 0;
  border: none;
  outline: none;
  font-size: 1.0625rem;
  padding: 0.625rem 0;
  background: transparent;
}
.search-popup-submit {
  flex-shrink: 0;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  background: #7cb342;
  border: none;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.3s;
}
.search-popup-submit:hover {
  background: #689f38;
}
.search-popup-submit svg {
  width: 1.25rem;
  height: 1.25rem;
}
.search-popup-suggestions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.625rem;
  margin-top: 1.5rem;
}
.search-popup-tag {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.4);
  color: #fff;
  border-radius: 1.5rem;
  padding: 0.5rem 1.125rem;
  font-size: 0.875rem;
  cursor: pointer;
  transition: all 0.3s;
}
.search-popup-tag:hover {
  background: #7cb342;
  border-color: #7cb342;
}
@media (max-width: 576px) {
  .search-popup-title {
    font-size: 1.375rem;
  }
  .search-popup-close {
    top: 1rem;
    right: 1rem;
  }
}

/* Hero Slider */
.slider-wrapper {
  overflow: hidden;
}

.slider-wrapper .slide {
  height: 37.5rem;
  display: flex;
  align-items: center;
}

.slide-1 {
  background: linear-gradient(135deg, rgba(124, 179, 66, 0.9), rgba(104, 159, 56, 0.8)), url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 600"><rect fill="%237cb342" width="1200" height="600"/></svg>');
  background-size: cover;
  background-position: center;
}

.slide-2 {
  background: linear-gradient(135deg, rgba(104, 159, 56, 0.9), rgba(85, 139, 47, 0.8)), url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 600"><rect fill="%23689f38" width="1200" height="600"/></svg>');
  background-size: cover;
  background-position: center;
}

.slide-3 {
  background: linear-gradient(135deg, rgba(139, 195, 74, 0.9), rgba(124, 179, 66, 0.8)), url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 600"><rect fill="%238bc34a" width="1200" height="600"/></svg>');
  background-size: cover;
  background-position: center;
}

.slide-content {
  max-width: 87.5rem;
  margin: 0 auto;
  padding: 0 1.25rem;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.slide-text {
  color: white;
  max-width: 37.5rem;
}

.slide-text h1 {
  font-size: 3.5rem;
  margin-bottom: 1.25rem;
  line-height: 1.2;
  text-shadow: 0.125rem 0.125rem 0.25rem rgba(0, 0, 0, 0.2);
  font-weight: 600;
}

.slide-text p {
  font-size: 1.25rem;
  margin-bottom: 1.875rem;
  opacity: 0.95;
}

.btn-primary {
  background: white;
  color: #7cb342;
  padding: 0.9375rem 2.5rem;
  border: none;
  border-radius: 1.875rem;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
  text-decoration: none;
  display: inline-block;
}

.btn-primary:hover {
  transform: translateY(-0.1875rem);
  box-shadow: 0 0.625rem 1.5625rem rgba(0, 0, 0, 0.2);
}

.slider-nav {
  position: absolute;
  bottom: 1.875rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 0.9375rem;
}

.slider-dot {
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  transition: all 0.3s;
}

.slider-dot.active {
  background: white;
  width: 2.5rem;
  border-radius: 0.375rem;
}

/* Features Section */
.features {
  padding: 3.75rem 1.25rem;
  background: #f8f9fa;
}

.features-container {
  max-width: 87.5rem;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.875rem;
}

.feature-item {
  text-align: center;
  padding: 1.875rem;
  background: white;
  border-radius: 0.9375rem;
  box-shadow: 0 0.3125rem 0.9375rem rgba(0, 0, 0, 0.08);
  transition: transform 0.3s;
}

.feature-item:hover {
  transform: translateY(-0.625rem);
}

.feature-icon {
  font-size: 3.125rem;
  margin-bottom: 1.25rem;
}

.feature-item h3 {
  font-size: 1.125rem;
  margin-bottom: 0.625rem;
  color: #333;
}

.feature-item p {
  font-size: 0.875rem;
  color: #666;
}

/* Category Section */
.category-section {
  padding: 5rem 1.25rem;
  background: white;
}

.section-header {
  text-align: center;
  margin-bottom: 3.125rem;
}

.section-header h2 {
  font-size: 2.625rem;
  color: #333;
  margin-bottom: 0.9375rem;
  position: relative;
  display: inline-block;
}

.section-header h2::after {
  content: "";
  position: absolute;
  bottom: -0.625rem;
  left: 50%;
  transform: translateX(-50%);
  width: 5rem;
  height: 0.25rem;
  background: #7cb342;
  border-radius: 0.125rem;
}

.section-header p {
  font-size: 1rem;
  color: #666;
  margin-top: 1.25rem;
}

.category-icons {
  max-width: 87.5rem;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2.25rem 1.5rem;
}

.category-icon-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.875rem;
  width: 7.5rem;
  text-decoration: none;
  text-align: center;
}

.category-icon-circle {
  width: 5.5rem;
  height: 5.5rem;
  border-radius: 50%;
  background: #f2f2f2;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  transition: all 0.3s;
}

.category-icon-item:hover .category-icon-circle {
  background: #eef6e6;
  transform: translateY(-0.3125rem);
  box-shadow: 0 0.5rem 1.25rem rgba(124, 179, 66, 0.25);
}

.category-icon-circle img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.category-icon-circle svg {
  width: 3rem;
  height: 3rem;
}

.category-icon-label {
  font-size: 0.8125rem;
  font-weight: 700;
  color: #333;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  line-height: 1.4;
}

@media (max-width: 768px) {
  .category-icons {
    gap: 1.5rem 1rem;
  }
  .category-icon-item {
    width: 5.5rem;
  }
  .category-icon-circle {
    width: 4.5rem;
    height: 4.5rem;
  }
  .category-icon-circle svg {
    width: 2.25rem;
    height: 2.25rem;
  }
  .category-icon-label {
    font-size: 0.75rem;
  }
}

/* Products Section */
.products-section {
  padding: 5rem 1.25rem;
  background: #f8f9fa;
}

.tabs {
  display: flex;
  justify-content: center;
  gap: 1.25rem;
  margin-bottom: 3.125rem;
  flex-wrap: wrap;
}

.tab-btn {
  padding: 0.75rem 1.875rem;
  border: 0.125rem solid #e0e0e0;
  background: white;
  border-radius: 1.875rem;
  cursor: pointer;
  font-weight: 600;
  font-size: 0.9375rem;
  color: #666;
  transition: all 0.3s;
}

.tab-btn:hover, .tab-btn.active {
  background: #7cb342;
  color: white;
  border-color: #7cb342;
}

.products-grid {
  max-width: 87.5rem;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.875rem;
}

.product-card {
  background: white;
  border-radius: 0.9375rem;
  overflow: hidden;
  box-shadow: 0 0.3125rem 0.9375rem rgba(0, 0, 0, 0.08);
  transition: all 0.3s;
  position: relative;
}

.product-link {
  position: absolute;
  z-index: 0;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.product-card .btn-add-cart,
.product-card .btn-wishlist {
  position: relative;
  z-index: 1;
}

.product-card:hover {
  transform: translateY(-0.625rem);
  box-shadow: 0 0.9375rem 1.875rem rgba(0, 0, 0, 0.15);
}

.product-badge {
  position: absolute;
  top: 0.9375rem;
  right: 0.9375rem;
  background: #e53935;
  color: white;
  padding: 0.375rem 0.75rem;
  border-radius: 1.25rem;
  font-weight: bold;
  font-size: 0.8125rem;
  z-index: 10;
}

.product-image {
  width: 100%;
  height: 17.5rem;
  overflow: hidden;
  object-fit: cover;
  background: linear-gradient(135deg, #7cb342, #8bc34a);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 5rem;
}

.product-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.product-info {
  padding: 1.5625rem;
}

.product-category {
  font-size: 0.8125rem;
  color: #7cb342;
  font-weight: 600;
  margin-bottom: 0.5rem;
  text-transform: uppercase;
}

.product-title {
  font-size: 1.0625rem;
  font-weight: 600;
  color: #333;
  margin-bottom: 0.9375rem;
  height: 2.8125rem;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.product-price {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}

.current-price {
  font-size: 1.375rem;
  font-weight: bold;
  color: #e53935;
}

.old-price {
  font-size: 1rem;
  color: #999;
  text-decoration: line-through;
}

.product-rating {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1.25rem;
  font-size: 0.875rem;
}

.stars {
  color: #ffc107;
}

.product-actions {
  display: flex;
  gap: 0.625rem;
}

.product-actions .btn-add-cart {
  flex: 1;
}

.btn-wishlist {
  width: 2.75rem;
  padding: 0.75rem;
  background: #f5f5f5;
  border: none;
  border-radius: 0.5rem;
  font-size: 1rem;
  cursor: pointer;
  transition: all 0.3s;
}

.btn-wishlist:hover {
  background: #7cb342;
  color: white;
}

.btn-add-cart {
  width: 100%;
  padding: 0.75rem;
  background: #7cb342;
  color: white;
  border: none;
  border-radius: 0.5rem;
  font-weight: 600;
  font-size: 0.9375rem;
  cursor: pointer;
  transition: all 0.3s;
}

.btn-add-cart:hover {
  background: #689f38;
}

.view-all {
  text-align: center;
  margin-top: 3.125rem;
}

.btn-view-all {
  padding: 0.9375rem 3.125rem;
  background: #7cb342;
  color: white;
  border: none;
  border-radius: 1.875rem;
  font-weight: 600;
  font-size: 1rem;
  cursor: pointer;
  transition: all 0.3s;
  text-decoration: none;
  display: inline-block;
}

.btn-view-all:hover {
  background: #689f38;
  transform: translateY(-0.1875rem);
  box-shadow: 0 0.625rem 1.5625rem rgba(124, 179, 66, 0.3);
}

/* News Section */
.news-section {
  padding: 5rem 1.25rem;
  background: white;
}

.news-grid {
  max-width: 87.5rem;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.875rem;
}

.news-card {
  background: white;
  border-radius: 0.9375rem;
  overflow: hidden;
  box-shadow: 0 0.3125rem 0.9375rem rgba(0, 0, 0, 0.08);
  transition: all 0.3s;
}

.news-card:hover {
  transform: translateY(-0.625rem);
  box-shadow: 0 0.9375rem 1.875rem rgba(0, 0, 0, 0.15);
}

.news-image {
  width: 100%;
  height: 12.5rem;
  object-fit: cover;
  display: block;
}

.news-content {
  padding: 1.5625rem;
}

.news-meta {
  font-size: 0.8125rem;
  color: #999;
  margin-bottom: 0.625rem;
}

.news-title {
  font-size: 1.0625rem;
  font-weight: 600;
  color: #333;
  margin-bottom: 0.625rem;
  height: 2.8125rem;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.news-title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.3s;
}

.news-title a:hover {
  color: #7cb342;
}

.news-excerpt {
  font-size: 0.875rem;
  color: #666;
  margin-bottom: 0.9375rem;
  height: 2.625rem;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.news-card .read-more {
  color: #7cb342;
  font-weight: 600;
  font-size: 0.875rem;
  text-decoration: none;
}

.news-card .read-more:hover {
  text-decoration: underline;
}

@media (max-width: 1200px) {
  .news-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 576px) {
  .news-grid {
    grid-template-columns: 1fr;
  }
}

/* Partners Section */
.partners-section {
  padding: 3rem 1.25rem;
  background: white;
}

.partners-grid {
  max-width: 56.25rem;
  margin: 2rem auto 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
  align-items: center;
}

.partner-logo {
  padding: 0;
  text-align: center;
  transition: all 0.3s;
  cursor: pointer;
  height: 5.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.partner-logo img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.partner-logo:hover {
  transform: translateY(-0.3125rem);
}

/* Newsletter Section */
.newsletter-section {
  padding: 5rem 1.25rem;
  background: linear-gradient(135deg, #7cb342, #8bc34a);
  color: white;
  position: relative;
  overflow: hidden;
}

.newsletter-section::before {
  content: "";
  position: absolute;
  top: -50%;
  right: -10%;
  width: 31.25rem;
  height: 31.25rem;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 50%;
}

.newsletter-section::after {
  content: "";
  position: absolute;
  bottom: -30%;
  left: -5%;
  width: 25rem;
  height: 25rem;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 50%;
}

.newsletter-container {
  max-width: 50rem;
  margin: 0 auto;
  text-align: center;
  position: relative;
  z-index: 1;
}

.newsletter-icon {
  font-size: 3.75rem;
  margin-bottom: 1.25rem;
}

.newsletter-container h2 {
  font-size: 2.625rem;
  margin-bottom: 0.9375rem;
}

.newsletter-container p {
  font-size: 1.125rem;
  margin-bottom: 2.5rem;
  opacity: 0.95;
}

.newsletter-form {
  display: flex;
  gap: 0.9375rem;
  max-width: 37.5rem;
  margin: 0 auto;
}

.newsletter-input {
  flex: 1;
  padding: 1.125rem 1.5625rem;
  border: none;
  border-radius: 1.875rem;
  font-size: 1rem;
  outline: none;
}

.btn-subscribe {
  padding: 1.125rem 2.5rem;
  background: #333;
  color: white;
  border: none;
  border-radius: 1.875rem;
  font-weight: 600;
  font-size: 1rem;
  cursor: pointer;
  transition: all 0.3s;
  white-space: nowrap;
}

.btn-subscribe:hover {
  background: #555;
  transform: translateY(-0.1875rem);
  box-shadow: 0 0.625rem 1.5625rem rgba(0, 0, 0, 0.3);
}

/* Footer */
.footer {
  background: #2c3e50;
  color: white;
  padding: 3.75rem 1.25rem 0;
}

.footer-container {
  max-width: 87.5rem;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: 3.125rem;
  margin-bottom: 2.5rem;
}

.footer-about {
  padding-right: 1.875rem;
}

.footer-about h3 {
  font-size: 2rem;
  color: #7cb342;
  margin-bottom: 1.25rem;
}

.footer-about p {
  line-height: 1.8;
  color: #bdc3c7;
  margin-bottom: 1.5625rem;
  font-size: 0.9375rem;
}

.social-links {
  display: flex;
  gap: 0.9375rem;
}

.social-link {
  width: 2.8125rem;
  height: 2.8125rem;
  background: #34495e;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  text-decoration: none;
  transition: all 0.3s;
  font-size: 1.25rem;
}

.social-link:hover {
  background: #7cb342;
  transform: translateY(-0.3125rem);
  box-shadow: 0 0.3125rem 0.9375rem rgba(124, 179, 66, 0.4);
}

.footer-links h4 {
  font-size: 1.25rem;
  margin-bottom: 1.5625rem;
  color: #7cb342;
  font-weight: 600;
}

.footer-links ul {
  list-style: none;
  padding-left: 0;
}

.footer-links li {
  margin-bottom: 0.875rem;
}

.footer-links a {
  color: #bdc3c7;
  text-decoration: none;
  transition: all 0.3s;
  font-size: 0.9375rem;
  display: inline-block;
}

.footer-links a:hover {
  color: #7cb342;
  padding-left: 0.3125rem;
}

.footer-contact {
  color: #bdc3c7;
}

.contact-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
  font-size: 0.9375rem;
}

.contact-item i {
  font-size: 1.25rem;
  color: #7cb342;
  margin-top: 0.125rem;
}

.footer-bottom {
  border-top: 0.0625rem solid #34495e;
  padding: 1.875rem 0;
  text-align: center;
  color: #bdc3c7;
}

.footer-bottom-content {
  max-width: 87.5rem;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1.25rem;
}

.payment-methods {
  display: flex;
  gap: 0.9375rem;
  align-items: center;
}

.payment-icon {
  border-radius: 0.5rem;
  font-weight: 600;
  color: #2c3e50;
  font-size: 0.8125rem;
}

.product-rating svg.active {
  fill: #ffc107;
}

/* Responsive */
@media (max-width: 1200px) {
  .products-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 992px) {
  .categories {
    grid-template-columns: repeat(2, 1fr);
  }
  .features-container {
    grid-template-columns: repeat(2, 1fr);
  }
  .footer-container {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 768px) {
  .hero-slider {
    height: 25rem;
  }
  .slide-text h1 {
    font-size: 2.25rem;
  }
  .products-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .categories {
    grid-template-columns: 1fr;
  }
  .partners-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .newsletter-form {
    flex-direction: column;
  }
  .footer-bottom-content {
    flex-direction: column;
    text-align: center;
  }
}
@media (max-width: 480px) {
  .products-grid {
    grid-template-columns: 1fr;
  }
  .features-container {
    grid-template-columns: 1fr;
  }
  .footer-container {
    grid-template-columns: 1fr;
  }
  .partners-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
/* ---- src/components/page/news/style.scss -> .pg-news ---- */
.pg-news {
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  color: #333;
  line-height: 1.6;
  background: #f8f9fa;
  /* .container's margin là con duy nhất nên collapse xuyên qua .pg-news, khiến background
     xám không chạm tới footer (xem .pg-contact bên dưới) - flow-root cô lập margin của con lại. */
  display: flow-root;
  /* Header */
  /* Page Header */
  /* Main Container */
  /* Sidebar */
  /* Main Content */
  /* Featured Post */
  /* Pagination */
  /* Footer */
  /* Responsive */
}
.pg-news * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.pg-news .header {
  background-color: #fff;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  position: sticky;
  top: 0;
  z-index: 1000;
}
.pg-news .top-bar {
  background: #7cb342;
  color: white;
  padding: 8px 0;
  font-size: 14px;
}
.pg-news .top-bar-content {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.pg-news .contact-info {
  display: flex;
  gap: 20px;
}
.pg-news .nav-container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 15px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.pg-news .logo {
  font-size: 32px;
  font-weight: bold;
  color: #7cb342;
  text-decoration: none;
}
.pg-news .nav-menu {
  display: flex;
  gap: 35px;
  list-style: none;
  align-items: center;
}
.pg-news .nav-menu a {
  text-decoration: none;
  color: #666;
  font-weight: 600;
  transition: color 0.3s;
  font-size: 15px;
}
.pg-news .nav-menu a:hover {
  color: #7cb342;
}
.pg-news .cart-icon {
  background: #7cb342;
  color: white;
  padding: 10px 20px;
  border-radius: 25px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.3s;
}
.pg-news .cart-icon:hover {
  background: #689f38;
}
.pg-news .breadcrumb-section {
  background: white;
  padding: 20px 0;
  border-bottom: 1px solid #e0e0e0;
}
.pg-news .breadcrumb {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  font-size: 14px;
  color: #666;
}
.pg-news .breadcrumb a {
  color: #666;
  text-decoration: none;
  transition: color 0.3s;
}
.pg-news .breadcrumb a:hover {
  color: #7cb342;
}
.pg-news .container {
  max-width: 1400px;
  margin: 50px auto;
  padding: 0 20px;
  display: flex;
  gap: 40px;
}
.pg-news .sidebar {
  width: 350px;
  flex-shrink: 0;
}
.pg-news .sidebar-section {
  background: white;
  border-radius: 15px;
  padding: 30px;
  margin-bottom: 30px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
}
.pg-news .sidebar-section h3 {
  font-size: 22px;
  margin-bottom: 25px;
  color: #333;
  border-bottom: 3px solid #7cb342;
  padding-bottom: 12px;
}
.pg-news .search-box {
  position: relative;
}
.pg-news .search-box input {
  width: 100%;
  padding: 12px 45px 12px 15px;
  border: 2px solid #e0e0e0;
  border-radius: 25px;
  font-size: 14px;
  outline: none;
  transition: border 0.3s;
}
.pg-news .search-box input:focus {
  border-color: #7cb342;
}
.pg-news .search-box button {
  position: absolute;
  right: 5px;
  top: 5px;
  background: #7cb342;
  border: none;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  color: white;
  cursor: pointer;
  font-size: 16px;
}
.pg-news .category-list {
  list-style: none;
}
.pg-news .category-list li {
  margin-bottom: 15px;
}
.pg-news .category-list a {
  color: #666;
  text-decoration: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px;
  border-radius: 8px;
  transition: all 0.3s;
}
.pg-news .category-list a:hover {
  background: #f8f9fa;
  color: #7cb342;
  padding-left: 15px;
}
.pg-news .category-count {
  background: #7cb342;
  color: white;
  padding: 4px 10px;
  border-radius: 15px;
  font-size: 12px;
  font-weight: 600;
}
.pg-news .recent-post {
  display: flex;
  gap: 15px;
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid #f0f0f0;
}
.pg-news .recent-post:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.pg-news .recent-post-img {
  width: 80px;
  height: 80px;
  border-radius: 10px;
  object-fit: cover;
  background: linear-gradient(135deg, #7cb342, #8bc34a);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
  flex-shrink: 0;
}
.pg-news .recent-post-info h4 {
  font-size: 14px;
  margin-bottom: 8px;
  line-height: 1.4;
}
.pg-news .recent-post-info a {
  color: #333;
  text-decoration: none;
  transition: color 0.3s;
}
.pg-news .recent-post-info a:hover {
  color: #7cb342;
}
.pg-news .post-date {
  font-size: 12px;
  color: #999;
}
.pg-news .tag-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.pg-news .tag {
  padding: 8px 15px;
  background: #f8f9fa;
  border-radius: 20px;
  color: #666;
  text-decoration: none;
  font-size: 13px;
  transition: all 0.3s;
}
.pg-news .tag:hover {
  background: #7cb342;
  color: white;
}
.pg-news .main-content {
  flex: 1;
}
.pg-news .news-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
  margin-bottom: 40px;
}
.pg-news .news-card {
  background: white;
  border-radius: 15px;
  overflow: hidden;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
  transition: all 0.3s;
}
.pg-news .news-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15);
}
.pg-news .news-image {
  width: 100%;
  height: 280px;
  object-fit: cover;
  background: linear-gradient(135deg, #7cb342, #8bc34a);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 80px;
}
.pg-news .news-content {
  padding: 25px;
}
.pg-news .news-meta {
  display: flex;
  gap: 20px;
  margin-bottom: 15px;
  font-size: 13px;
  color: #999;
}
.pg-news .news-meta span {
  display: flex;
  align-items: center;
  gap: 5px;
}
.pg-news .news-title {
  font-size: 22px;
  margin-bottom: 15px;
  line-height: 1.4;
  /* Trang chủ có 1 rule .news-title dùng chung (không namespace) tự giới hạn 2 dòng
     bằng height + -webkit-line-clamp, rò rỉ xuống đây vì .pg-news .news-title không
     tự khai báo các thuộc tính đó nên cascade lấy từ rule ít specificity hơn - làm
     tiêu đề bài viết bị cắt/che dù font-size/line-height ở đây lớn hơn hẳn.
     Reset lại để tiêu đề hiển thị đầy đủ trên trang danh sách tin tức. */
  height: auto;
  overflow: visible;
  display: block;
  -webkit-line-clamp: unset;
  -webkit-box-orient: unset;
}
.pg-news .news-title a {
  color: #333;
  text-decoration: none;
  transition: color 0.3s;
}
.pg-news .news-title a:hover {
  color: #7cb342;
}
.pg-news .news-excerpt {
  color: #666;
  margin-bottom: 20px;
  line-height: 1.8;
  /* cùng lý do với .pg-news .news-title ở trên - reset clamp 2 dòng bị rò rỉ từ rule
     .news-excerpt dùng chung ở trang chủ */
  height: auto;
  overflow: visible;
  display: block;
  -webkit-line-clamp: unset;
  -webkit-box-orient: unset;
}
.pg-news .news-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.pg-news .news-category {
  background: #7cb342;
  color: white;
  padding: 6px 15px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 600;
}
.pg-news .read-more {
  color: #7cb342;
  text-decoration: none;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 5px;
  transition: gap 0.3s;
}
.pg-news .read-more:hover {
  gap: 10px;
}
.pg-news .featured-post {
  background: white;
  border-radius: 15px;
  overflow: hidden;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1);
  margin-bottom: 40px;
  display: flex;
  gap: 30px;
}
.pg-news .featured-image {
  width: 50%;
  min-width: 0;
  max-width: 30rem;
  height: auto;
  min-height: 400px;
  align-self: stretch;
  object-fit: cover;
  background: linear-gradient(135deg, #7cb342, #8bc34a);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 120px;
}
.pg-news .featured-content {
  flex: 1;
  padding: 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.pg-news .featured-badge {
  background: #e53935;
  color: white;
  padding: 8px 20px;
  border-radius: 25px;
  font-size: 13px;
  font-weight: 600;
  display: inline-block;
  margin-bottom: 20px;
  width: fit-content;
}
.pg-news .featured-title {
  font-size: 32px;
  margin-bottom: 20px;
  line-height: 1.3;
}
.pg-news .featured-excerpt {
  font-size: 16px;
  color: #666;
  margin-bottom: 25px;
  line-height: 1.8;
}
.pg-news .btn-read {
  background: #7cb342;
  color: white;
  padding: 15px 40px;
  border-radius: 30px;
  text-decoration: none;
  font-weight: 600;
  display: inline-block;
  width: fit-content;
  transition: all 0.3s;
}
.pg-news .btn-read:hover {
  background: #689f38;
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(124, 179, 66, 0.3);
}
.pg-news .pagination {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 40px;
}
.pg-news .page-btn {
  padding: 12px 18px;
  border: 2px solid #e0e0e0;
  background: white;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.3s;
  font-weight: 600;
  color: #666;
}
.pg-news .page-btn:hover {
  border-color: #7cb342;
  color: #7cb342;
}
.pg-news .page-btn.active {
  background: #7cb342;
  color: white;
  border-color: #7cb342;
}
.pg-news .footer {
  background: #2c3e50;
  color: white;
  padding: 60px 20px 0;
  margin-top: 80px;
}
.pg-news .footer-container {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: 50px;
  margin-bottom: 40px;
}
.pg-news .footer-about h3 {
  font-size: 32px;
  color: #7cb342;
  margin-bottom: 20px;
}
.pg-news .footer-about p {
  line-height: 1.8;
  color: #bdc3c7;
  margin-bottom: 25px;
}
.pg-news .social-links {
  display: flex;
  gap: 15px;
}
.pg-news .social-link {
  width: 45px;
  height: 45px;
  background: #34495e;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  text-decoration: none;
  transition: all 0.3s;
}
.pg-news .social-link:hover {
  background: #7cb342;
  transform: translateY(-5px);
}
.pg-news .footer-links h4 {
  font-size: 20px;
  margin-bottom: 25px;
  color: #7cb342;
  font-weight: 600;
}
.pg-news .footer-links ul {
  list-style: none;
  padding-left: 0;
}
.pg-news .footer-links li {
  margin-bottom: 14px;
}
.pg-news .footer-links a {
  color: #bdc3c7;
  text-decoration: none;
  transition: all 0.3s;
}
.pg-news .footer-links a:hover {
  color: #7cb342;
  padding-left: 5px;
}
.pg-news .footer-bottom {
  border-top: 1px solid #34495e;
  padding: 30px 0;
  text-align: center;
  color: #bdc3c7;
}
@media (max-width: 1200px) {
  .pg-news .news-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 992px) {
  .pg-news .container {
    flex-direction: column;
  }
  .pg-news .sidebar {
    width: 100%;
  }
  .pg-news .featured-post {
    flex-direction: column;
  }
  .pg-news .featured-image {
    width: 100%;
    height: 300px;
  }
  .pg-news .footer-container {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 768px) {
  .pg-news .featured-title {
    font-size: 24px;
  }
}
@media (max-width: 480px) {
  .pg-news .footer-container {
    grid-template-columns: 1fr;
  }
}

/* ---- src/components/page/news-detail/style.scss -> .pg-news-detail ---- */
.pg-news-detail {
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  color: #333;
  line-height: 1.8;
  background: #f8f9fa;
  /* margin collapse qua wrapper - xem .pg-contact bên dưới */
  display: flow-root;
  /* Header */
  /* Breadcrumb */
  /* Container */
  /* Main Article */
  /* Article Content */
  /* Article Footer */
  /* Author Box */
  /* Comments Section */
  /* Sidebar */
  /* Footer */
  /* Responsive */
}
.pg-news-detail * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.pg-news-detail .header {
  background-color: #fff;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  position: sticky;
  top: 0;
  z-index: 1000;
}
.pg-news-detail .top-bar {
  background: #7cb342;
  color: white;
  padding: 8px 0;
  font-size: 14px;
}
.pg-news-detail .top-bar-content {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.pg-news-detail .contact-info {
  display: flex;
  gap: 20px;
}
.pg-news-detail .nav-container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 15px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.pg-news-detail .logo {
  font-size: 32px;
  font-weight: bold;
  color: #7cb342;
  text-decoration: none;
}
.pg-news-detail .nav-menu {
  display: flex;
  gap: 35px;
  list-style: none;
  align-items: center;
}
.pg-news-detail .nav-menu a {
  text-decoration: none;
  color: #666;
  font-weight: 600;
  transition: color 0.3s;
  font-size: 15px;
}
.pg-news-detail .nav-menu a:hover {
  color: #7cb342;
}
.pg-news-detail .cart-icon {
  background: #7cb342;
  color: white;
  padding: 10px 20px;
  border-radius: 25px;
  font-weight: 600;
  cursor: pointer;
}
.pg-news-detail .breadcrumb-section {
  background: white;
  padding: 20px 0;
  border-bottom: 1px solid #e0e0e0;
}
.pg-news-detail .breadcrumb {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  font-size: 14px;
  color: #666;
}
.pg-news-detail .breadcrumb a {
  color: #666;
  text-decoration: none;
  transition: color 0.3s;
}
.pg-news-detail .breadcrumb a:hover {
  color: #7cb342;
}
.pg-news-detail .container {
  max-width: 1400px;
  margin: 50px auto;
  padding: 0 20px;
  display: flex;
  gap: 40px;
}
.pg-news-detail .article-main {
  flex: 1;
}
.pg-news-detail .article-header {
  background: white;
  padding: 40px;
  border-radius: 15px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
  margin-bottom: 30px;
}
.pg-news-detail .article-category {
  display: inline-block;
  background: #7cb342;
  color: white;
  padding: 8px 20px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 20px;
}
.pg-news-detail .article-title {
  font-size: 42px;
  line-height: 1.3;
  margin-bottom: 25px;
  color: #333;
}
.pg-news-detail .article-meta {
  display: flex;
  gap: 30px;
  padding: 20px 0;
  border-top: 2px solid #f0f0f0;
  border-bottom: 2px solid #f0f0f0;
  color: #666;
  font-size: 15px;
}
.pg-news-detail .meta-item {
  display: flex;
  align-items: center;
  gap: 8px;
}
.pg-news-detail .author-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #7cb342;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-weight: bold;
  font-size: 18px;
}
.pg-news-detail .social-share {
  margin-top: 25px;
  display: flex;
  align-items: center;
  gap: 15px;
}
.pg-news-detail .social-share span {
  font-weight: 600;
  color: #666;
}
.pg-news-detail .share-btn {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: none;
  cursor: pointer;
  font-size: 18px;
  transition: all 0.3s;
}
.pg-news-detail .share-facebook {
  background: #3b5998;
  color: white;
}
.pg-news-detail .share-twitter {
  background: #1da1f2;
  color: white;
}
.pg-news-detail .share-linkedin {
  background: #0077b5;
  color: white;
}
.pg-news-detail .share-copy {
  background: #f0f0f0;
  color: #666;
}
.pg-news-detail .share-btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}
.pg-news-detail .article-content {
  background: white;
  padding: 50px;
  border-radius: 15px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
  margin-bottom: 30px;
}
.pg-news-detail .featured-image {
  width: 100%;
  max-width: 30rem;
  height: 500px;
  object-fit: cover;
  border-radius: 15px;
  background: linear-gradient(135deg, #7cb342, #8bc34a);
  margin-bottom: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 150px;
}
.pg-news-detail .article-content h2 {
  font-size: 32px;
  margin: 40px 0 20px;
  color: #333;
}
.pg-news-detail .article-content h3 {
  font-size: 24px;
  margin: 30px 0 15px;
  color: #333;
}
.pg-news-detail .article-content p {
  margin-bottom: 20px;
  font-size: 17px;
  line-height: 1.9;
  color: #555;
}
.pg-news-detail .article-content ul,
.pg-news-detail .article-content ol {
  margin: 20px 0 20px 30px;
  color: #555;
}
.pg-news-detail .article-content li {
  margin-bottom: 12px;
  font-size: 17px;
}
.pg-news-detail .article-content blockquote {
  border-left: 5px solid #7cb342;
  padding: 20px 30px;
  background: #f8f9fa;
  margin: 30px 0;
  font-style: italic;
  font-size: 18px;
  color: #666;
  border-radius: 8px;
}
.pg-news-detail .highlight-box {
  background: #e8f5e9;
  border-left: 5px solid #7cb342;
  padding: 25px;
  margin: 30px 0;
  border-radius: 8px;
}
.pg-news-detail .highlight-box h4 {
  color: #7cb342;
  font-size: 20px;
  margin-bottom: 15px;
}
.pg-news-detail .article-footer {
  background: white;
  padding: 30px 40px;
  border-radius: 15px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
  margin-bottom: 30px;
}
.pg-news-detail .article-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 25px;
}
.pg-news-detail .article-tags span {
  font-weight: 600;
  color: #666;
  margin-right: 10px;
}
.pg-news-detail .tag {
  padding: 8px 20px;
  background: #f8f9fa;
  border-radius: 20px;
  color: #666;
  text-decoration: none;
  font-size: 14px;
  transition: all 0.3s;
}
.pg-news-detail .tag:hover {
  background: #7cb342;
  color: white;
}
.pg-news-detail .author-box {
  background: white;
  padding: 30px;
  border-radius: 15px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
  margin-bottom: 30px;
  display: flex;
  gap: 25px;
}
.pg-news-detail .author-avatar-large {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: #7cb342;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-weight: bold;
  font-size: 40px;
  flex-shrink: 0;
}
.pg-news-detail .author-info h3 {
  font-size: 22px;
  margin-bottom: 10px;
}
.pg-news-detail .author-role {
  color: #7cb342;
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 15px;
}
.pg-news-detail .author-bio {
  color: #666;
  line-height: 1.8;
  font-size: 15px;
}
.pg-news-detail .comments-section {
  background: white;
  padding: 40px;
  border-radius: 15px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
  margin-bottom: 30px;
}
.pg-news-detail .comments-title {
  font-size: 28px;
  margin-bottom: 30px;
  color: #333;
}
.pg-news-detail .comment-form {
  background: #f8f9fa;
  padding: 30px;
  border-radius: 12px;
  margin-bottom: 40px;
}
.pg-news-detail .form-group {
  margin-bottom: 20px;
}
.pg-news-detail .form-group label {
  display: block;
  margin-bottom: 8px;
  font-weight: 600;
  color: #333;
}
.pg-news-detail .form-group input,
.pg-news-detail .form-group textarea {
  width: 100%;
  padding: 12px 15px;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  font-size: 15px;
  font-family: inherit;
  transition: border 0.3s;
}
.pg-news-detail .form-group input:focus,
.pg-news-detail .form-group textarea:focus {
  outline: none;
  border-color: #7cb342;
}
.pg-news-detail .form-group textarea {
  resize: vertical;
  min-height: 120px;
}
.pg-news-detail .btn-submit {
  background: #7cb342;
  color: white;
  padding: 15px 40px;
  border: none;
  border-radius: 30px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
}
.pg-news-detail .btn-submit:hover {
  background: #689f38;
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(124, 179, 66, 0.3);
}
.pg-news-detail .comment-item {
  padding: 25px;
  border: 1px solid #e0e0e0;
  border-radius: 12px;
  margin-bottom: 20px;
}
.pg-news-detail .comment-header {
  display: flex;
  gap: 15px;
  margin-bottom: 15px;
}
.pg-news-detail .commenter-avatar {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: #7cb342;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-weight: bold;
  font-size: 20px;
}
.pg-news-detail .commenter-info h4 {
  font-size: 16px;
  margin-bottom: 5px;
}
.pg-news-detail .comment-date {
  font-size: 13px;
  color: #999;
}
.pg-news-detail .comment-text {
  color: #666;
  line-height: 1.8;
  margin-bottom: 10px;
}
.pg-news-detail .comment-reply {
  color: #7cb342;
  text-decoration: none;
  font-weight: 600;
  font-size: 14px;
}
.pg-news-detail .sidebar {
  width: 350px;
  flex-shrink: 0;
}
.pg-news-detail .sidebar-widget {
  background: white;
  border-radius: 15px;
  padding: 30px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
  margin-bottom: 30px;
}
.pg-news-detail .widget-title {
  font-size: 22px;
  margin-bottom: 25px;
  color: #333;
  border-bottom: 3px solid #7cb342;
  padding-bottom: 12px;
}
.pg-news-detail .related-post {
  display: flex;
  gap: 15px;
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid #f0f0f0;
}
.pg-news-detail .related-post:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.pg-news-detail .related-post-img {
  width: 80px;
  height: 80px;
  border-radius: 10px;
  background: linear-gradient(135deg, #7cb342, #8bc34a);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
}
.pg-news-detail .related-post-info h4 {
  font-size: 14px;
  line-height: 1.4;
  margin-bottom: 8px;
}
.pg-news-detail .related-post-info a {
  color: #333;
  text-decoration: none;
  transition: color 0.3s;
}
.pg-news-detail .related-post-info a:hover {
  color: #7cb342;
}
.pg-news-detail .post-date {
  font-size: 12px;
  color: #999;
}
.pg-news-detail .footer {
  background: #2c3e50;
  color: white;
  padding: 60px 20px 30px;
  margin-top: 60px;
}
.pg-news-detail .footer-bottom {
  border-top: 1px solid #34495e;
  padding: 30px 0;
  text-align: center;
  color: #bdc3c7;
}
@media (max-width: 992px) {
  .pg-news-detail .container {
    flex-direction: column;
  }
  .pg-news-detail .sidebar {
    width: 100%;
  }
  .pg-news-detail .article-title {
    font-size: 32px;
  }
  .pg-news-detail .article-content {
    padding: 30px 25px;
  }
}
@media (max-width: 768px) {
  .pg-news-detail .article-header {
    padding: 25px;
  }
  .pg-news-detail .author-box {
    flex-direction: column;
    text-align: center;
  }
  .pg-news-detail .featured-image {
    height: 300px;
    font-size: 100px;
  }
}

/* ---- src/components/page/thank-page/style.scss -> .pg-thank-page ---- */
.pg-thank-page {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  background: linear-gradient(135deg, #f1f8e9 0%, #dcedc8 100%);
  color: #333;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  /* Success Card */
  /* Order Info */
  /* Products Summary */
  /* Next Steps */
  /* Buttons */
  /* Contact Info */
  /* Confetti Animation */
}
.pg-thank-page * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.pg-thank-page .top-bar {
  background-color: #7cb342;
  color: white;
  padding: 10px 0;
  font-size: 14px;
}
.pg-thank-page .top-bar-content {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.pg-thank-page .contact-info {
  display: flex;
  gap: 20px;
}
.pg-thank-page header {
  background-color: white;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
.pg-thank-page .header-content {
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.pg-thank-page .logo {
  font-size: 32px;
  font-weight: bold;
  color: #7cb342;
  text-decoration: none;
}
.pg-thank-page nav {
  display: flex;
  gap: 30px;
  align-items: center;
}
.pg-thank-page nav a {
  text-decoration: none;
  color: #666;
  font-weight: 600;
  transition: color 0.3s;
}
.pg-thank-page nav a:hover {
  color: #7cb342;
}
.pg-thank-page .cart-btn {
  background-color: #ef5350;
  color: white;
  padding: 10px 20px;
  border-radius: 25px;
  border: none;
  cursor: pointer;
  font-weight: 600;
}
.pg-thank-page .container {
  max-width: 800px;
  margin: 60px auto;
  padding: 0 20px;
  flex: 1;
}
.pg-thank-page .success-card {
  background: white;
  border-radius: 20px;
  padding: 50px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
  text-align: center;
  animation: slideUp 0.6s ease-out;
}
@keyframes slideUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.pg-thank-page .success-icon {
  width: 120px;
  height: 120px;
  background: linear-gradient(135deg, #7cb342, #9ccc65);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 60px;
  margin: 0 auto 30px;
  box-shadow: 0 8px 30px rgba(124, 179, 66, 0.3);
  animation: scaleIn 0.5s ease-out 0.3s both;
}
@keyframes scaleIn {
  from {
    transform: scale(0);
  }
  to {
    transform: scale(1);
  }
}
.pg-thank-page .success-title {
  font-size: 32px;
  font-weight: 700;
  color: #7cb342;
  margin-bottom: 15px;
}
.pg-thank-page .success-subtitle {
  font-size: 18px;
  color: #666;
  margin-bottom: 30px;
  line-height: 1.6;
}
.pg-thank-page .order-number {
  display: inline-block;
  padding: 15px 30px;
  background: linear-gradient(135deg, #f1f8e9, #dcedc8);
  border-radius: 12px;
  margin-bottom: 35px;
}
.pg-thank-page .order-number-label {
  font-size: 13px;
  color: #999;
  margin-bottom: 5px;
}
.pg-thank-page .order-number-value {
  font-size: 24px;
  font-weight: 700;
  color: #7cb342;
}
.pg-thank-page .order-info {
  background: #fafafa;
  border-radius: 15px;
  padding: 30px;
  margin-bottom: 30px;
  text-align: left;
}
.pg-thank-page .payment-qr-box {
  background: #fff;
  border: 2px dashed #7cb342;
  border-radius: 15px;
  padding: 25px;
  margin-bottom: 30px;
  text-align: center;
}
.pg-thank-page .payment-qr-title {
  font-size: 16px;
  font-weight: 600;
  color: #333;
  margin-bottom: 15px;
}
.pg-thank-page .payment-qr-image {
  display: block;
  width: 100%;
  max-width: 260px;
  border-radius: 10px;
  border: 1px solid #e0e0e0;
  margin: 0 auto 15px;
}
.pg-thank-page .payment-qr-note {
  font-size: 13px;
  color: #999;
  margin: 0 0 15px;
}
.pg-thank-page .payment-qr-details {
  margin-bottom: 0;
  padding: 20px;
}
.pg-thank-page .payment-status-success {
  border-style: solid;
  border-color: #43a047;
  background: #f1f8f2;
}
.pg-thank-page .payment-status-success .payment-qr-title {
  color: #2e7d32;
}
.pg-thank-page .payment-status-failed {
  border-style: solid;
  border-color: #e53935;
  background: #fdf2f2;
}
.pg-thank-page .payment-status-failed .payment-qr-title {
  color: #c62828;
}
.pg-thank-page .info-row {
  display: flex;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid #e0e0e0;
}
.pg-thank-page .info-row:last-child {
  border-bottom: none;
}
.pg-thank-page .info-label {
  font-size: 15px;
  color: #666;
}
.pg-thank-page .info-value {
  font-size: 15px;
  font-weight: 600;
  color: #333;
  text-align: right;
}
.pg-thank-page .info-value.highlight {
  color: #7cb342;
  font-size: 20px;
}
.pg-thank-page .products-summary {
  background: #fafafa;
  border-radius: 15px;
  padding: 25px;
  margin-bottom: 30px;
  text-align: left;
}
.pg-thank-page .products-title {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 15px;
  color: #333;
}
.pg-thank-page .product-item {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 12px 0;
  border-bottom: 1px solid #e0e0e0;
}
.pg-thank-page .product-item:last-child {
  border-bottom: none;
}
.pg-thank-page .product-icon {
  width: 50px;
  height: 50px;
  background: linear-gradient(135deg, #f5f5f5, #e0e0e0);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  flex-shrink: 0;
  object-fit: cover;
}
.pg-thank-page .product-details {
  flex: 1;
}
.pg-thank-page .product-name {
  font-size: 14px;
  font-weight: 600;
  color: #333;
  margin-bottom: 3px;
}
.pg-thank-page .product-qty {
  font-size: 13px;
  color: #999;
}
.pg-thank-page .product-price {
  font-size: 15px;
  font-weight: 600;
  color: #7cb342;
}
.pg-thank-page .next-steps {
  background: linear-gradient(135deg, #e3f2fd, #bbdefb);
  border-radius: 15px;
  padding: 25px;
  margin-bottom: 30px;
}
.pg-thank-page .next-steps-title {
  font-size: 18px;
  font-weight: 600;
  color: #1976d2;
  margin-bottom: 15px;
  text-align: center;
}
.pg-thank-page .steps-list {
  list-style: none;
  text-align: left;
}
.pg-thank-page .step-item {
  display: flex;
  gap: 15px;
  margin-bottom: 15px;
  font-size: 14px;
  color: #666;
  line-height: 1.6;
}
.pg-thank-page .step-number {
  width: 30px;
  height: 30px;
  background: #1976d2;
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  flex-shrink: 0;
}
.pg-thank-page .button-group {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 15px;
  margin-bottom: 30px;
}
.pg-thank-page .btn {
  padding: 16px 20px;
  border: none;
  border-radius: 12px;
  font-weight: 600;
  font-size: 15px;
  cursor: pointer;
  transition: all 0.3s;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
}
.pg-thank-page .btn-primary {
  background: linear-gradient(135deg, #7cb342, #9ccc65);
  color: white;
  box-shadow: 0 4px 15px rgba(124, 179, 66, 0.3);
}
.pg-thank-page .btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 25px rgba(124, 179, 66, 0.4);
}
.pg-thank-page .btn-secondary {
  background: white;
  color: #7cb342;
  border: 2px solid #7cb342;
}
.pg-thank-page .btn-secondary:hover {
  background: #7cb342;
  color: white;
}
.pg-thank-page .btn-outline {
  background: transparent;
  color: #1976d2;
  border: 2px solid #1976d2;
}
.pg-thank-page .btn-outline:hover {
  background: #1976d2;
  color: white;
}
.pg-thank-page .btn-full {
  grid-column: 1/-1;
  background: #f5f5f5;
  color: #666;
  border: none;
}
.pg-thank-page .btn-full:hover {
  background: #e0e0e0;
}
.pg-thank-page .contact-box {
  background: white;
  border: 2px solid #e0e0e0;
  border-radius: 12px;
  padding: 20px;
  text-align: center;
}
.pg-thank-page .contact-title {
  font-size: 16px;
  font-weight: 600;
  color: #333;
  margin-bottom: 15px;
}
.pg-thank-page .contact-methods {
  display: flex;
  justify-content: center;
  gap: 25px;
  flex-wrap: wrap;
}
.pg-thank-page .contact-method {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: #666;
}
.pg-thank-page .contact-method strong {
  color: #7cb342;
}
.pg-thank-page .confetti {
  position: fixed;
  width: 10px;
  height: 10px;
  background: #7cb342;
  position: absolute;
  animation: confetti-fall 3s linear infinite;
}
@keyframes confetti-fall {
  to {
    transform: translateY(100vh) rotate(360deg);
    opacity: 0;
  }
}
@media (max-width: 768px) {
  .pg-thank-page .success-card {
    padding: 30px 20px;
  }
  .pg-thank-page .success-title {
    font-size: 26px;
  }
  .pg-thank-page .success-subtitle {
    font-size: 16px;
  }
  .pg-thank-page .button-group {
    grid-template-columns: 1fr;
  }
  .pg-thank-page .contact-methods {
    flex-direction: column;
    gap: 12px;
  }
}

/* ---- src/components/checkout/style.scss -> .pg-checkout ---- */
.pg-checkout {
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  color: #333;
  line-height: 1.6;
  background: #f8f9fa;
  /* margin collapse qua wrapper - xem .pg-contact bên dưới */
  display: flow-root;
  /* Header */
  /* Page Header */
  /* Container */
  /* Cart Layout */
  /* Left Column */
  /* Cart Items */
  /* Checkout Form */
  /* Payment Methods */
  /* Right Column - Order Summary */
  /* Footer */
  /* Responsive */
}
.pg-checkout * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.pg-checkout .header {
  background-color: #fff;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  position: sticky;
  top: 0;
  z-index: 1000;
}
.pg-checkout .top-bar {
  background: #7cb342;
  color: white;
  padding: 8px 0;
  font-size: 14px;
}
.pg-checkout .top-bar-content {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.pg-checkout .contact-info {
  display: flex;
  gap: 20px;
}
.pg-checkout .nav-container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 15px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.pg-checkout .logo {
  font-size: 32px;
  font-weight: bold;
  color: #7cb342;
  text-decoration: none;
}
.pg-checkout .nav-menu {
  display: flex;
  gap: 35px;
  list-style: none;
  align-items: center;
}
.pg-checkout .nav-menu a {
  text-decoration: none;
  color: #666;
  font-weight: 600;
  transition: color 0.3s;
  font-size: 15px;
}
.pg-checkout .nav-menu a:hover {
  color: #7cb342;
}
.pg-checkout .cart-icon {
  background: #e53935;
  color: white;
  padding: 10px 20px;
  border-radius: 25px;
  font-weight: 600;
  cursor: pointer;
}
.pg-checkout .breadcrumb-section {
  background: white;
  padding: 20px 0;
  border-bottom: 1px solid #e0e0e0;
}
.pg-checkout .breadcrumb {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  font-size: 14px;
  color: #666;
}
.pg-checkout .breadcrumb a {
  color: #666;
  text-decoration: none;
  transition: color 0.3s;
}
.pg-checkout .breadcrumb a:hover {
  color: #7cb342;
}
.pg-checkout .container {
  max-width: 1400px;
  margin: 40px auto;
  padding: 0 20px;
}
.pg-checkout .cart-layout {
  display: grid;
  grid-template-columns: 1.8fr 1fr;
  gap: 30px;
}
.pg-checkout .cart-empty {
  background: white;
  border-radius: 12px;
  padding: 60px 20px;
  text-align: center;
  color: #666;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
}
.pg-checkout .cart-empty p {
  margin-bottom: 20px;
  font-size: 16px;
}
.pg-checkout .cart-empty .btn-cart {
  display: inline-block;
  padding: 12px 28px;
  background: #7cb342;
  color: white;
  border-radius: 6px;
  text-decoration: none;
  font-weight: 600;
  transition: background 0.3s;
}
.pg-checkout .cart-empty .btn-cart:hover {
  background: #689f38;
}
.pg-checkout .cart-left {
  display: flex;
  flex-direction: column;
  gap: 30px;
}
.pg-checkout .cart-items {
  background: white;
  border-radius: 15px;
  padding: 30px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
}
.pg-checkout .tchay-section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 25px;
  padding-bottom: 20px;
  border-bottom: 2px solid #f0f0f0;
}
.pg-checkout .section-title {
  font-size: 24px;
  color: #333;
  display: flex;
  align-items: center;
  gap: 10px;
}
.pg-checkout .item-count {
  color: #666;
  font-size: 15px;
}
.pg-checkout .cart-item {
  display: flex;
  gap: 20px;
  padding: 20px;
  border: 2px solid #f0f0f0;
  border-radius: 12px;
  margin-bottom: 15px;
  transition: all 0.3s;
}
.pg-checkout .cart-item:hover {
  border-color: #7cb342;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
}
.pg-checkout .item-image {
  width: 100px;
  height: 100px;
  border-radius: 10px;
  background: linear-gradient(135deg, #7cb342, #8bc34a);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 45px;
  flex-shrink: 0;
}
.pg-checkout .item-details {
  flex: 1;
}
.pg-checkout .item-name {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 5px;
  color: #333;
}
.pg-checkout .item-category {
  font-size: 12px;
  color: #7cb342;
  margin-bottom: 10px;
}
.pg-checkout .item-price-row {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  margin-bottom: 12px;
}
.pg-checkout .item-price {
  font-size: 18px;
  font-weight: bold;
  color: #e53935;
}
.pg-checkout .item-old-price {
  font-size: 14px;
  color: #999;
  text-decoration: line-through;
  margin-left: 8px;
}
.pg-checkout .item-actions {
  display: flex;
  align-items: center;
  gap: 15px;
}
.pg-checkout .quantity-control {
  display: flex;
  align-items: center;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  overflow: hidden;
}
.pg-checkout .qty-btn {
  width: 32px;
  height: 32px;
  border: none;
  background: #f8f9fa;
  cursor: pointer;
  font-size: 16px;
  font-weight: bold;
  transition: all 0.3s;
}
.pg-checkout .qty-btn:hover {
  background: #7cb342;
  color: white;
}
.pg-checkout .qty-display {
  width: 45px;
  text-align: center;
  font-weight: 600;
  font-size: 14px;
}
.pg-checkout .btn-remove {
  padding: 6px 12px;
  background: #fff;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  color: #e53935;
  cursor: pointer;
  font-weight: 600;
  font-size: 13px;
  transition: all 0.3s;
}
.pg-checkout .btn-remove:hover {
  background: #e53935;
  color: white;
  border-color: #e53935;
}
.pg-checkout .checkout-form {
  background: white;
  border-radius: 15px;
  padding: 30px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
}
.pg-checkout .form-section {
  margin-bottom: 25px;
}
.pg-checkout .form-group {
  margin-bottom: 18px;
}
.pg-checkout .form-group label {
  display: block;
  margin-bottom: 8px;
  font-weight: 600;
  color: #333;
  font-size: 14px;
}
.pg-checkout .required {
  color: #e53935;
}
.pg-checkout .form-group input,
.pg-checkout .form-group select,
.pg-checkout .form-group textarea {
  width: 100%;
  padding: 12px 15px;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  font-size: 14px;
  font-family: inherit;
  transition: border 0.3s;
}
.pg-checkout .form-group input:focus,
.pg-checkout .form-group select:focus,
.pg-checkout .form-group textarea:focus {
  outline: none;
  border-color: #7cb342;
}
.pg-checkout .form-group textarea {
  resize: vertical;
  min-height: 80px;
}
.pg-checkout .form-row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 15px;
}
.pg-checkout .payment-methods {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.pg-checkout .payment-option {
  display: flex;
  align-items: center;
  width: 100%;
  gap: 12px;
  padding: 15px;
  border: 2px solid #e0e0e0;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.3s;
}
.pg-checkout .payment-option:hover {
  border-color: #7cb342;
}
.pg-checkout .payment-option input[type=radio] {
  width: 18px;
  height: 18px;
  cursor: pointer;
}
.pg-checkout .payment-option label {
  flex: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
  font-size: 14px;
}
.pg-checkout .payment-icon {
  font-size: 1.5rem;
}
.pg-checkout .payment-icon img {
  width: 3rem;
}
.pg-checkout .order-summary {
  background: white;
  border-radius: 15px;
  padding: 30px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
  height: fit-content;
  position: sticky;
  top: 100px;
}
.pg-checkout .summary-title {
  font-size: 22px;
  margin-bottom: 20px;
  color: #333;
  border-bottom: 2px solid #f0f0f0;
  padding-bottom: 15px;
}
.pg-checkout .summary-row {
  display: flex;
  justify-content: space-between;
  margin-bottom: 15px;
  font-size: 15px;
}
.pg-checkout .summary-label {
  color: #666;
}
.pg-checkout .summary-value {
  font-weight: 600;
  color: #333;
}
.pg-checkout .summary-divider {
  border-top: 2px dashed #e0e0e0;
  margin: 20px 0;
}
.pg-checkout .summary-total {
  display: flex;
  justify-content: space-between;
  font-size: 18px;
  font-weight: bold;
  color: #333;
  padding: 20px;
  background: #f8f9fa;
  border-radius: 10px;
  margin-bottom: 25px;
}
.pg-checkout .total-amount {
  color: #e53935;
  font-size: 24px;
}
.pg-checkout .discount-code {
  margin-bottom: 20px;
}
.pg-checkout .discount-code label {
  font-weight: 600;
  margin-bottom: 10px;
  display: block;
  font-size: 14px;
}
.pg-checkout .discount-input {
  display: flex;
  gap: 10px;
}
.pg-checkout .discount-input input {
  flex: 1;
  padding: 10px 12px;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  font-size: 13px;
}
.pg-checkout .btn-apply {
  padding: 10px 20px;
  background: #7cb342;
  color: white;
  border: none;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
  font-size: 13px;
  transition: all 0.3s;
}
.pg-checkout .btn-apply:hover {
  background: #689f38;
}
.pg-checkout .btn-order {
  width: 100%;
  padding: 18px;
  background: #7cb342;
  color: white;
  border: none;
  border-radius: 10px;
  font-size: 18px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
  margin-bottom: 15px;
}
.pg-checkout .btn-order:hover {
  background: #689f38;
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(124, 179, 66, 0.3);
}
.pg-checkout .btn-continue {
  width: 100%;
  padding: 12px;
  background: white;
  color: #7cb342;
  border: 2px solid #7cb342;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
  text-decoration: none;
  display: block;
  text-align: center;
}
.pg-checkout .btn-continue:hover {
  background: #f8f9fa;
}
.pg-checkout .secure-checkout {
  text-align: center;
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid #e0e0e0;
  color: #666;
  font-size: 13px;
}
.pg-checkout .secure-checkout strong {
  color: #7cb342;
}
.pg-checkout .payment-logos {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 15px;
}
.pg-checkout .payment-badge {
  padding: 5px 10px;
  background: #f8f9fa;
  border-radius: 5px;
  font-size: 11px;
  font-weight: 600;
  color: #666;
}
.pg-checkout .footer {
  background: #2c3e50;
  color: white;
  padding: 60px 20px 30px;
  margin-top: 60px;
}
.pg-checkout .footer-container {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: 50px;
  margin-bottom: 40px;
}
.pg-checkout .footer-about h3 {
  font-size: 32px;
  color: #7cb342;
  margin-bottom: 20px;
}
.pg-checkout .footer-about p {
  line-height: 1.8;
  color: #bdc3c7;
  margin-bottom: 25px;
}
.pg-checkout .footer-bottom {
  border-top: 1px solid #34495e;
  padding: 30px 0;
  text-align: center;
  color: #bdc3c7;
  max-width: 1400px;
  margin: 0 auto;
}
@media (max-width: 1200px) {
  .pg-checkout .cart-layout {
    grid-template-columns: 1fr;
  }
  .pg-checkout .order-summary {
    position: static;
  }
  .pg-checkout .footer-container {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 768px) {
  .pg-checkout .item-count {
    display: none;
  }
  .pg-checkout .cart-item {
    flex-direction: column;
  }
  .pg-checkout .item-image {
    width: 100%;
    height: 150px;
  }
  .pg-checkout .form-row {
    grid-template-columns: 1fr;
  }
  .pg-checkout .footer-container {
    grid-template-columns: 1fr;
  }
}

/* ---- src/components/product/product-detail.scss -> .pg-product-detail ---- */
.pg-product-detail {
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  color: #333;
  line-height: 1.6;
  background: #f8f9fa;
  /* margin collapse qua wrapper - xem .pg-contact bên dưới */
  display: flow-root;
  /* Header */
  /* Breadcrumb */
  /* Main Container */
  /* Product Detail */
  /* Product Images */
  /* Color Swatch */
  /* Product Info */
  /* Quantity Selector */
  /* Action Buttons */
  /* Features */
  /* Tabs */
  /* Reviews */
  /* Related Products */
  /* Footer */
  /* Responsive */
}
.pg-product-detail * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.pg-product-detail .header {
  background-color: #fff;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  position: sticky;
  top: 0;
  z-index: 1000;
}
.pg-product-detail .top-bar {
  background: #7cb342;
  color: white;
  padding: 8px 0;
  font-size: 14px;
}
.pg-product-detail .top-bar-content {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.pg-product-detail .contact-info {
  display: flex;
  gap: 20px;
}
.pg-product-detail .nav-container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 15px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.pg-product-detail .logo {
  font-size: 32px;
  font-weight: bold;
  color: #7cb342;
  text-decoration: none;
}
.pg-product-detail .nav-menu {
  display: flex;
  gap: 35px;
  list-style: none;
  align-items: center;
}
.pg-product-detail .nav-menu a {
  text-decoration: none;
  color: #666;
  font-weight: 600;
  transition: color 0.3s;
  font-size: 15px;
}
.pg-product-detail .nav-menu a:hover {
  color: #7cb342;
}
.pg-product-detail .cart-icon {
  background: #7cb342;
  color: white;
  padding: 10px 20px;
  border-radius: 25px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.3s;
}
.pg-product-detail .cart-icon:hover {
  background: #689f38;
}
.pg-product-detail .breadcrumb-section {
  background: white;
  padding: 20px 0;
  border-bottom: 1px solid #e0e0e0;
}
.pg-product-detail .breadcrumb {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  font-size: 14px;
  color: #666;
}
.pg-product-detail .breadcrumb a {
  color: #666;
  text-decoration: none;
  transition: color 0.3s;
}
.pg-product-detail .breadcrumb a:hover {
  color: #7cb342;
}
.pg-product-detail .container {
  max-width: 1400px;
  margin: 40px auto;
  padding: 0 20px;
}
.pg-product-detail .product-detail {
  background: white;
  border-radius: 20px;
  padding: 50px;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);
  margin-bottom: 40px;
}
.pg-product-detail .product-main {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  margin-bottom: 60px;
}
.pg-product-detail .product-images {
  position: sticky;
  top: 100px;
  height: fit-content;
}
.pg-product-detail .main-image {
  width: 100%;
  height: 500px;
  border-radius: 15px;
  background: linear-gradient(135deg, #7cb342, #8bc34a);
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 150px;
  overflow: hidden;
  position: relative;
}
.pg-product-detail .main-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pg-product-detail .discount-badge {
  position: absolute;
  top: 20px;
  left: 20px;
  background: #e53935;
  color: white;
  padding: 10px 20px;
  border-radius: 30px;
  font-weight: bold;
  font-size: 18px;
}
.pg-product-detail .thumbnail-images {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 15px;
}
.pg-product-detail .thumbnail-images img {
  width: 100%;
}
.pg-product-detail .thumbnail {
  width: 100%;
  height: 120px;
  border-radius: 10px;
  background: linear-gradient(135deg, #8bc34a, #9ccc65);
  cursor: pointer;
  border: 3px solid transparent;
  transition: all 0.3s;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 50px;
  overflow: hidden;
}
.pg-product-detail .thumbnail:hover, .pg-product-detail .thumbnail.active {
  border-color: #7cb342;
}
.pg-product-detail .product-attributes {
  margin-bottom: 30px;
}
.pg-product-detail .attribute-group {
  margin-bottom: 25px;
}
.pg-product-detail .attribute-label {
  font-weight: 600;
  margin-bottom: 12px;
  font-size: 16px;
  color: #333;
}
.pg-product-detail .attribute-options {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.pg-product-detail .attribute-option {
  padding: 12px 20px;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  background: white;
  cursor: pointer;
  font-weight: 600;
  font-size: 14px;
  color: #666;
  transition: all 0.3s;
  position: relative;
}
.pg-product-detail .attribute-option:hover {
  border-color: #7cb342;
  color: #7cb342;
}
.pg-product-detail .attribute-option.active {
  border-color: #7cb342;
  background: #7cb342;
  color: white;
}
.pg-product-detail .attribute-option.disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.pg-product-detail .attribute-option .option-price {
  font-size: 12px;
  color: #999;
  display: block;
  margin-top: 3px;
}
.pg-product-detail .attribute-option.active .option-price {
  color: rgba(255, 255, 255, 0.9);
}
.pg-product-detail .color-option {
  width: 50px;
  height: 50px;
  border-radius: 8px;
  cursor: pointer;
  position: relative;
  transition: all 0.3s;
  border: 3px solid #e0e0e0;
}
.pg-product-detail .color-option.active {
  border-color: #7cb342;
  transform: scale(1.1);
}
.pg-product-detail .color-option.active::after {
  content: "✓";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: white;
  font-size: 20px;
  font-weight: bold;
}
.pg-product-detail .product-category {
  color: #7cb342;
  font-weight: 600;
  font-size: 14px;
  text-transform: uppercase;
  margin-bottom: 15px;
}
.pg-product-detail .product-title {
  font-size: 36px;
  margin-bottom: 20px;
  line-height: 1.3;
}
.pg-product-detail .product-info-section .product-rating {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 25px;
  padding-bottom: 25px;
  border-bottom: 2px solid #f0f0f0;
}
.pg-product-detail .product-info-section .stars {
  display: flex;
  align-items: center;
  gap: 2px;
}
.pg-product-detail .product-info-section .stars svg.active {
  fill: #ffc107;
}
.pg-product-detail .product-info-section .rating-text {
  color: #666;
  font-size: 14px;
}
.pg-product-detail .product-info-section .rating-text strong {
  color: #333;
  font-weight: 700;
}
.pg-product-detail .product-info-section .rating-divider {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #ccc;
}
.pg-product-detail .product-info-section .rating-text a {
  color: #7cb342;
  text-decoration: none;
  font-weight: 600;
}
.pg-product-detail .product-price {
  margin-bottom: 30px;
}
.pg-product-detail .current-price {
  font-size: 42px;
  font-weight: bold;
  color: #e53935;
  margin-right: 20px;
}
.pg-product-detail .old-price {
  font-size: 28px;
  color: #999;
  text-decoration: line-through;
}
.pg-product-detail .save-amount {
  display: inline-block;
  background: #fff3cd;
  color: #856404;
  padding: 8px 15px;
  border-radius: 20px;
  font-size: 14px;
  font-weight: 600;
  margin-left: 10px;
}
.pg-product-detail .product-description {
  color: #666;
  font-size: 16px;
  line-height: 1.8;
  margin-bottom: 30px;
}
.pg-product-detail .product-meta {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 15px;
  margin-bottom: 30px;
  padding: 25px;
  background: #f8f9fa;
  border-radius: 12px;
}
.pg-product-detail .meta-item {
  display: flex;
  align-items: center;
  gap: 10px;
}
.pg-product-detail .meta-label {
  font-weight: 600;
  color: #333;
}
.pg-product-detail .meta-value {
  color: #666;
}
.pg-product-detail .stock-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 15px;
  background: #d4edda;
  color: #155724;
  border-radius: 20px;
  font-weight: 600;
  font-size: 14px;
}
.pg-product-detail .quantity-section {
  margin-bottom: 30px;
}
.pg-product-detail .quantity-label {
  font-weight: 600;
  margin-bottom: 15px;
  font-size: 16px;
}
.pg-product-detail .quantity-selector {
  display: flex;
  align-items: center;
  gap: 15px;
}
.pg-product-detail .quantity-input {
  display: flex;
  align-items: center;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  overflow: hidden;
}
.pg-product-detail .qty-btn {
  width: 45px;
  height: 50px;
  border: none;
  background: #f8f9fa;
  cursor: pointer;
  font-size: 20px;
  font-weight: bold;
  transition: all 0.3s;
}
.pg-product-detail .qty-btn:hover {
  background: #7cb342;
  color: white;
}
.pg-product-detail .qty-input {
  width: 80px;
  height: 50px;
  border: none;
  text-align: center;
  font-size: 18px;
  font-weight: 600;
}
.pg-product-detail .action-buttons {
  display: flex;
  gap: 15px;
  margin-bottom: 30px;
}
.pg-product-detail .btn-add-cart {
  flex: 1;
  padding: 18px;
  background: #7cb342;
  color: white;
  border: none;
  border-radius: 10px;
  font-size: 18px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.pg-product-detail .btn-add-cart:hover {
  background: #689f38;
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(124, 179, 66, 0.3);
}
.pg-product-detail .btn-buy-now {
  flex: 1;
  padding: 18px;
  background: #ff6b6b;
  color: white;
  border: none;
  border-radius: 10px;
  font-size: 18px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
}
.pg-product-detail .btn-buy-now:hover {
  background: #ff5252;
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(255, 107, 107, 0.3);
}
.pg-product-detail .quantity-selector .btn-wishlist {
  width: 50px;
  height: 50px;
  padding: 0;
  flex-shrink: 0;
  background: white;
  border: 2px solid #e5e5e5;
  border-radius: 50%;
  font-size: 22px;
  line-height: 1;
  color: #999;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.05);
  transition: all 0.3s;
}
.pg-product-detail .quantity-selector .btn-wishlist:hover {
  border-color: #ff6b6b;
  color: #ff6b6b;
  transform: translateY(-3px);
  box-shadow: 0 0.5rem 1.25rem rgba(255, 107, 107, 0.25);
}
.pg-product-detail .product-features {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 40px;
}
.pg-product-detail .feature-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 30px 20px;
  background: white;
  border-radius: 15px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
  transition: transform 0.3s;
}
.pg-product-detail .feature-item:hover {
  transform: translateY(-10px);
}
.pg-product-detail .feature-icon {
  font-size: 50px;
  margin-bottom: 20px;
}
.pg-product-detail .feature-text {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.pg-product-detail .feature-title {
  font-weight: 600;
  font-size: 18px;
  color: #333;
  margin-bottom: 10px;
}
.pg-product-detail .feature-desc {
  font-size: 14px;
  color: #666;
}
.pg-product-detail .product-tabs {
  background: white;
  border-radius: 20px;
  padding: 40px;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);
  margin-bottom: 40px;
}
.pg-product-detail .tab-buttons {
  display: flex;
  gap: 10px;
  border-bottom: 2px solid #e0e0e0;
  margin-bottom: 30px;
}
.pg-product-detail .tab-btn {
  padding: 15px 30px;
  background: none;
  border: none;
  font-size: 16px;
  font-weight: 600;
  color: #666;
  cursor: pointer;
  position: relative;
  transition: color 0.3s;
}
.pg-product-detail .tab-btn.active {
  color: #7cb342;
}
.pg-product-detail .tab-btn.active::after {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 0;
  right: 0;
  height: 3px;
  background: #7cb342;
}
.pg-product-detail .tab-content {
  display: none;
}
.pg-product-detail .tab-content.active {
  display: block;
}
.pg-product-detail .tab-content h3 {
  font-size: 24px;
  margin-bottom: 20px;
  color: #333;
}
.pg-product-detail .tab-content p {
  color: #666;
  line-height: 1.8;
  margin-bottom: 15px;
}
.pg-product-detail .tab-content ul {
  margin-left: 20px;
  color: #666;
  line-height: 2;
}
.pg-product-detail .nutrition-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 20px;
}
.pg-product-detail .nutrition-table th,
.pg-product-detail .nutrition-table td {
  padding: 15px;
  text-align: left;
  border-bottom: 1px solid #e0e0e0;
}
.pg-product-detail .nutrition-table th {
  background: #f8f9fa;
  font-weight: 600;
  color: #333;
}
.pg-product-detail .nutrition-table tr:hover {
  background: #f8f9fa;
}
.pg-product-detail .reviews-section {
  margin-top: 30px;
}
.pg-product-detail .review-summary {
  display: flex;
  gap: 40px;
  padding: 30px;
  background: #f8f9fa;
  border-radius: 12px;
  margin-bottom: 30px;
}
.pg-product-detail .rating-overview {
  text-align: center;
}
.pg-product-detail .rating-number {
  font-size: 48px;
  font-weight: bold;
  color: #333;
  margin-bottom: 10px;
}
.pg-product-detail .rating-stars-large {
  font-size: 24px;
  color: #ffc107;
  margin-bottom: 10px;
}
.pg-product-detail .total-reviews {
  color: #666;
  font-size: 14px;
}
.pg-product-detail .rating-bars {
  flex: 1;
}
.pg-product-detail .rating-bar {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 12px;
}
.pg-product-detail .bar-label {
  font-size: 14px;
  color: #666;
  width: 50px;
}
.pg-product-detail .bar {
  flex: 1;
  height: 10px;
  background: #e0e0e0;
  border-radius: 5px;
  overflow: hidden;
}
.pg-product-detail .bar-fill {
  height: 100%;
  background: #ffc107;
}
.pg-product-detail .bar-count {
  font-size: 14px;
  color: #666;
  width: 50px;
  text-align: right;
}
.pg-product-detail .review-item {
  padding: 25px;
  border: 1px solid #e0e0e0;
  border-radius: 12px;
  margin-bottom: 20px;
}
.pg-product-detail .review-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 15px;
}
.pg-product-detail .reviewer-info {
  display: flex;
  align-items: center;
  gap: 15px;
}
.pg-product-detail .reviewer-avatar {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: #7cb342;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-weight: bold;
  font-size: 20px;
}
.pg-product-detail .reviewer-name {
  font-weight: 600;
  margin-bottom: 5px;
}
.pg-product-detail .review-date {
  font-size: 13px;
  color: #999;
}
.pg-product-detail .review-rating {
  color: #ffc107;
}
.pg-product-detail .review-text {
  color: #666;
  line-height: 1.8;
}
.pg-product-detail .related-products {
  background: white;
  border-radius: 20px;
  padding: 40px;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);
}
.pg-product-detail .section-title {
  font-size: 28px;
  margin-bottom: 30px;
  text-align: center;
}
.pg-product-detail .products-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 25px;
}
.pg-product-detail .related-products .product-card {
  background: white;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
  transition: all 0.3s;
  position: relative;
}
.pg-product-detail .related-products .product-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}
.pg-product-detail .related-products .product-image {
  width: 100%;
  height: 280px;
  overflow: hidden;
  background: #f5f5f5;
}
.pg-product-detail .related-products .product-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.pg-product-detail .related-products .product-info {
  padding: 20px;
}
.pg-product-detail .related-products .product-rating {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  font-size: 14px;
}
.pg-product-detail .related-products .product-rating .stars svg {
  width: 16px;
  height: 16px;
}
.pg-product-detail .related-products .product-title {
  font-size: 16px;
  font-weight: 600;
  color: #333;
  margin-bottom: 10px;
  height: 40px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.pg-product-detail .related-products .product-title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.3s;
}
.pg-product-detail .related-products .product-title a:hover {
  color: #7cb342;
}
.pg-product-detail .related-products .product-category {
  font-size: 13px;
  color: #7cb342;
  margin-bottom: 12px;
}
.pg-product-detail .related-products .product-price {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 15px;
}
.pg-product-detail .related-products .current-price {
  font-size: 20px;
  font-weight: bold;
  color: #e53935;
}
.pg-product-detail .related-products .old-price {
  font-size: 15px;
  color: #999;
  text-decoration: line-through;
}
.pg-product-detail .related-products .product-actions {
  display: flex;
  gap: 10px;
}
.pg-product-detail .related-products .btn-add-cart {
  flex: 1;
  width: auto;
  padding: 10px;
  border-radius: 6px;
  font-size: 14px;
}
.pg-product-detail .related-products .btn-wishlist {
  width: 40px;
  padding: 10px;
  background: #f5f5f5;
  border: none;
  border-radius: 6px;
  font-size: 16px;
}
.pg-product-detail .related-products .btn-wishlist:hover {
  background: #7cb342;
  border-color: transparent;
  color: white;
}
.pg-product-detail .footer {
  background: #2c3e50;
  color: white;
  padding: 60px 20px 30px;
  margin-top: 60px;
}
.pg-product-detail .footer-container {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: 50px;
  margin-bottom: 40px;
}
.pg-product-detail .footer-about h3 {
  font-size: 32px;
  color: #7cb342;
  margin-bottom: 20px;
}
.pg-product-detail .footer-about p {
  line-height: 1.8;
  color: #bdc3c7;
  margin-bottom: 25px;
}
.pg-product-detail .footer-bottom {
  border-top: 1px solid #34495e;
  padding-top: 30px;
  text-align: center;
  color: #bdc3c7;
}
@media (max-width: 1200px) {
  .pg-product-detail .products-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 992px) {
  .pg-product-detail .product-main {
    grid-template-columns: 1fr;
  }
  .pg-product-detail .product-images {
    position: static;
  }
  .pg-product-detail .product-features {
    grid-template-columns: 1fr;
  }
  .pg-product-detail .products-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 768px) {
  .pg-product-detail .product-detail {
    padding: 30px 20px;
  }
  .pg-product-detail .quantity-inventory {
    display: none;
  }
  .pg-product-detail .action-buttons {
    flex-direction: column;
  }
  .pg-product-detail .product-tabs {
    padding: 20px;
  }
  .pg-product-detail .thumbnail-images {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 480px) {
  .pg-product-detail .products-grid {
    grid-template-columns: 1fr;
  }
  .pg-product-detail .product-meta {
    grid-template-columns: 1fr;
  }
  .pg-product-detail .thumbnail-images {
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
  }
  .pg-product-detail .thumbnail {
    height: 70px;
  }
  .pg-product-detail .btn-add-cart {
    padding: 14px 10px;
    font-size: 15px;
    gap: 6px;
  }
}

/* ---- src/components/shop/style.css -> .shop-page ---- */
.shop-page {
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  background-color: #f8f9fa;
  color: #333;
  /* margin collapse qua wrapper - xem .pg-contact bên dưới */
  display: flow-root;
  /* Header */
  /* .header {
              background-color: #fff;
              box-shadow: 0 2px 5px rgba(0,0,0,0.1);
              padding: 15px 0;
              position: sticky;
              top: 0;
              z-index: 100;
          }

          .nav-container {
              max-width: 1400px;
              margin: 0 auto;
              padding: 0 20px;
              display: flex;
              justify-content: space-between;
              align-items: center;
          }

          .logo {
              font-size: 28px;
              font-weight: bold;
              color: #7cb342;
              text-decoration: none;
          }

          .nav-menu {
              display: flex;
              gap: 30px;
              list-style: none;
              align-items: center;
          }

          .nav-menu a {
              text-decoration: none;
              color: #666;
              font-weight: 500;
              transition: color 0.3s;
          }

          .nav-menu a:hover {
              color: #7cb342;
          } */
  /* Hero Banner */
  /* Main Container */
  /* Sidebar Filter */
  /* Main Content */
  /* Product Grid */
  /* Pagination */
  /* Responsive */
}
.shop-page * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.shop-page .cart {
  color: #666;
  font-weight: 600;
}
.shop-page .hero-banner {
  background: linear-gradient(135deg, #7cb342 0%, #689f38 100%);
  padding: 80px 20px;
  text-align: center;
  color: white;
  position: relative;
  overflow: hidden;
}
.shop-page .hero-banner::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="20" cy="20" r="2" fill="white" opacity="0.1"/><circle cx="80" cy="60" r="3" fill="white" opacity="0.1"/><circle cx="50" cy="80" r="2" fill="white" opacity="0.1"/></svg>');
  opacity: 0.3;
}
.shop-page .hero-content {
  position: relative;
  z-index: 1;
}
.shop-page .hero-banner h1 {
  font-size: 48px;
  margin-bottom: 10px;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
}
.shop-page .breadcrumb {
  font-size: 14px;
  opacity: 0.95;
  margin-top: 15px;
  color: #fff;
  text-align: center;
  width: 100%;
}
.shop-page .breadcrumb-section {
  background: white;
  padding: 20px 0;
  border-bottom: 1px solid #e0e0e0;
}
.shop-page .breadcrumb {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  font-size: 14px;
  color: #666;
  text-align: left;
}
.shop-page .breadcrumb a {
  color: #666;
  text-decoration: none;
  transition: color 0.3s;
}
.shop-page .breadcrumb a:hover {
  color: #7cb342;
}
.shop-page .search-result-banner {
  max-width: 1400px;
  margin: 20px auto 0;
  padding: 14px 20px;
  background: #eef6e6;
  border: 1px solid #cfe8bb;
  border-radius: 10px;
  color: #4a7c2a;
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.shop-page .search-result-clear {
  background: none;
  border: none;
  color: #4a7c2a;
  font-weight: 600;
  cursor: pointer;
  text-decoration: underline;
  padding: 0;
}
.shop-page .search-result-clear:hover {
  color: #2e5219;
}
.shop-page .container {
  max-width: 1400px;
  margin: 40px auto;
  padding: 0 20px;
  display: flex;
  gap: 30px;
}
.shop-page .sidebar {
  width: 280px;
  flex-shrink: 0;
}
.shop-page .filter-toggle-btn {
  display: none;
}
.shop-page .filter-section {
  background: white;
  border-radius: 12px;
  padding: 25px;
  margin-bottom: 20px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
}
.shop-page .filter-section h3 {
  font-size: 18px;
  margin-bottom: 20px;
  color: #333;
  border-bottom: 3px solid #7cb342;
  padding-bottom: 10px;
  font-weight: 600;
}
.shop-page .filter-option {
  margin-bottom: 12px;
  display: flex;
  align-items: center;
}
.shop-page .filter-option input[type=checkbox] {
  width: 18px;
  height: 18px;
  margin-right: 10px;
  cursor: pointer;
  accent-color: #7cb342;
}
.shop-page .filter-option label {
  cursor: pointer;
  font-size: 14px;
  color: #555;
}
.shop-page .filter-option label:hover {
  color: #7cb342;
}
.shop-page .filter-option a {
  cursor: pointer;
  font-size: 14px;
  color: #555;
  text-decoration: none;
}
.shop-page .filter-option a:hover {
  color: #7cb342;
}
.shop-page .price-range {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: 15px;
}
.shop-page .price-range input {
  width: 100%;
  padding: 8px;
  border: 1px solid #ddd;
  border-radius: 6px;
  font-size: 14px;
}
.shop-page .filter-buttons {
  display: flex;
  gap: 10px;
  margin-top: 20px;
}
.shop-page .btn-filter {
  flex: 1;
  padding: 10px;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 600;
  font-size: 14px;
  transition: all 0.3s;
}
.shop-page .btn-apply {
  background: #7cb342;
  color: white;
}
.shop-page .btn-apply:hover {
  background: #689f38;
}
.shop-page .btn-reset {
  background: #f5f5f5;
  color: #666;
}
.shop-page .btn-reset:hover {
  background: #e0e0e0;
}
.shop-page .main-content {
  flex: 1;
}
.shop-page .toolbar {
  background: white;
  padding: 18px 24px;
  border-radius: 12px;
  margin-bottom: 30px;
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  justify-content: space-between;
  align-items: center;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
}
.shop-page .result-count {
  font-size: 15px;
  color: #666;
}
.shop-page .result-count strong {
  color: #7cb342;
  font-weight: 700;
}
.shop-page .sort-options {
  display: flex;
  gap: 12px;
  align-items: center;
}
.shop-page .sort-options label {
  font-size: 14px;
  color: #666;
  font-weight: 500;
  white-space: nowrap;
}
.shop-page .sort-options select {
  appearance: none;
  -webkit-appearance: none;
  padding: 9px 36px 9px 16px;
  border: 0.09375rem solid #e5e5e5;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  color: #333;
  cursor: pointer;
  background: #fff url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="10" height="6" viewBox="0 0 10 6"><path d="M1 1l4 4 4-4" stroke="%23666" stroke-width="1.5" fill="none" stroke-linecap="round" stroke-linejoin="round"/></svg>') no-repeat right 14px center;
  transition: border-color 0.2s;
}
.shop-page .sort-options select:hover,
.shop-page .sort-options select:focus {
  border-color: #7cb342;
  outline: none;
}
@media (max-width: 576px) {
  .shop-page .toolbar {
    flex-direction: column;
    align-items: stretch;
  }
  .shop-page .sort-options {
    justify-content: space-between;
  }
  .shop-page .sort-options select {
    flex: 1;
  }
}
.shop-page .product-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 25px;
}
.shop-page .product-card {
  background: white;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
  transition: all 0.3s;
  cursor: pointer;
  position: relative;
}
.shop-page .product-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}
.shop-page .discount-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  background: #e53935;
  color: white;
  padding: 5px 10px;
  border-radius: 6px;
  font-weight: bold;
  font-size: 13px;
  z-index: 10;
}
.shop-page .product-image {
  width: 100%;
  height: 280px;
  object-fit: cover;
  background: #f5f5f5;
}
.shop-page .product-info {
  padding: 20px;
}
.shop-page .product-title {
  font-size: 16px;
  font-weight: 600;
  color: #333;
  margin-bottom: 10px;
  height: 40px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.shop-page .product-title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.3s;
}
.shop-page .product-title a:hover {
  color: #7cb342;
}
.shop-page .product-category {
  font-size: 13px;
  color: #7cb342;
  margin-bottom: 12px;
}
.shop-page .product-rating {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 20px;
  font-size: 14px;
}
.shop-page .product-price {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 15px;
}
.shop-page .current-price {
  font-size: 20px;
  font-weight: bold;
  color: #e53935;
}
.shop-page .old-price {
  font-size: 15px;
  color: #999;
  text-decoration: line-through;
}
.shop-page .product-actions {
  display: flex;
  gap: 10px;
}
.shop-page .btn-cart {
  flex: 1;
  padding: 10px;
  background: #7cb342;
  color: white;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 600;
  font-size: 14px;
  transition: all 0.3s;
}
.shop-page .btn-cart:hover {
  background: #689f38;
}
.shop-page .btn-wishlist {
  width: 40px;
  padding: 10px;
  background: #f5f5f5;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-size: 16px;
  transition: all 0.3s;
}
.shop-page .btn-wishlist:hover {
  background: #7cb342;
  color: white;
}
.shop-page .pagination {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 40px;
}
.shop-page .page-btn {
  padding: 10px 15px;
  border: 1px solid #ddd;
  background: white;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.3s;
  font-weight: 500;
}
.shop-page .page-btn:hover {
  border-color: #7cb342;
  color: #7cb342;
}
.shop-page .page-btn.active {
  background: #7cb342;
  color: white;
  border-color: #7cb342;
}
.shop-page .category-description {
  background: #fff;
  border-top: 1px solid #eee;
  margin-top: 50px;
  padding: 40px 0 50px;
}
.shop-page .category-description h2 {
  font-size: 20px;
  font-weight: 700;
  color: #333;
  margin-bottom: 14px;
}
.shop-page .category-description-content {
  color: #666;
  font-size: 14px;
  line-height: 1.9;
  max-width: 900px;
}
.shop-page .category-description-content p {
  margin-bottom: 12px;
}
.shop-page .category-description-content ul,
.shop-page .category-description-content ol {
  margin: 0 0 12px 20px;
}
.shop-page .category-description-content img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  margin: 10px 0;
}
.shop-page .category-description-content a {
  color: #7cb342;
}
@media (max-width: 1200px) {
  .shop-page .product-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 768px) {
  .shop-page .container {
    flex-direction: column;
  }
  .shop-page .sidebar {
    width: 100%;
  }
  .shop-page .filter-toggle-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    background: white;
    border: none;
    border-radius: 12px;
    padding: 15px 20px;
    margin-bottom: 15px;
    font-size: 16px;
    font-weight: 600;
    color: #333;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
    cursor: pointer;
  }
  .shop-page .filter-toggle-label {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #7cb342;
  }
  .shop-page .filter-body {
    display: none;
  }
  .shop-page .filter-body.is-open {
    display: block;
  }
  .shop-page .product-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .shop-page .hero-banner h1 {
    font-size: 32px;
  }
}
@media (max-width: 480px) {
  .shop-page .product-grid {
    grid-template-columns: 1fr;
  }
}

/* ---- src/app/template-account/style.scss -> .tpl-account ---- */
.tpl-account {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  background-color: #f5f5f5;
  color: #333;
}
.tpl-account * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.tpl-account .top-bar {
  background-color: #7cb342;
  color: white;
  padding: 10px 0;
  font-size: 14px;
}
.tpl-account .top-bar-content {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.tpl-account .contact-info {
  display: flex;
  gap: 20px;
}
.tpl-account header {
  background-color: white;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  position: sticky;
  top: 0;
  z-index: 100;
}
.tpl-account .header-content {
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.tpl-account .logo {
  font-size: 32px;
  font-weight: bold;
  color: #7cb342;
  text-decoration: none;
}
.tpl-account nav {
  display: flex;
  gap: 30px;
  align-items: center;
}
.tpl-account nav a {
  text-decoration: none;
  color: #666;
  font-weight: 600;
  transition: color 0.3s;
}
.tpl-account nav a:hover, .tpl-account nav a.active {
  color: #7cb342;
}
.tpl-account .cart-btn {
  background-color: #ef5350;
  color: white;
  padding: 10px 20px;
  border-radius: 25px;
  border: none;
  cursor: pointer;
  font-weight: 600;
}
.tpl-account .breadcrumb-section {
  background: white;
  padding: 20px 0;
  border-bottom: 1px solid #e0e0e0;
}
.tpl-account .breadcrumb {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  font-size: 14px;
  color: #666;
}
.tpl-account .breadcrumb a {
  color: #666;
  text-decoration: none;
  transition: color 0.3s;
}
.tpl-account .breadcrumb a:hover {
  color: #7cb342;
}
.tpl-account .container {
  max-width: 1400px;
  margin: -40px auto 40px;
  padding: 0 20px;
}
.tpl-account .account-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 30px;
}
.tpl-account .sidebar {
  background: white;
  border-radius: 10px;
  padding: 30px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
  height: fit-content;
}
.tpl-account .user-info {
  text-align: center;
  padding-bottom: 20px;
  border-bottom: 2px solid #f5f5f5;
  margin-bottom: 20px;
}
.tpl-account .user-avatar {
  width: 80px;
  height: 80px;
  background: linear-gradient(135deg, #7cb342 0%, #9ccc65 100%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  color: white;
  margin: 0 auto 15px;
  font-weight: bold;
}
.tpl-account .user-name {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 5px;
}
.tpl-account .user-email {
  font-size: 14px;
  color: #999;
}
.tpl-account .menu-list {
  list-style: none;
}
.tpl-account .menu-list li {
  margin-bottom: 5px;
}
.tpl-account .menu-list a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 15px;
  text-decoration: none;
  color: #666;
  border-radius: 8px;
  transition: all 0.3s;
  font-weight: 500;
}
.tpl-account .menu-list a:hover {
  background-color: #f5f5f5;
  color: #7cb342;
}
.tpl-account .menu-list a.active {
  background-color: #7cb342;
  color: white;
}
.tpl-account .menu-list .logout {
  color: #ef5350;
}
.tpl-account .menu-list .logout:hover {
  background-color: #ffebee;
}
.tpl-account .content-area {
  background: white;
  border-radius: 10px;
  padding: 40px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}
.tpl-account .section-title {
  font-size: 24px;
  font-weight: 600;
  margin-bottom: 25px;
  padding-bottom: 15px;
  border-bottom: 2px solid #f5f5f5;
}
.tpl-account .form-group {
  margin-bottom: 20px;
}
.tpl-account .form-group label {
  display: block;
  font-weight: 600;
  margin-bottom: 8px;
  color: #333;
}
.tpl-account .form-group input {
  width: 100%;
  padding: 12px 15px;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  font-size: 14px;
  transition: border-color 0.3s;
}
.tpl-account .form-group input:focus {
  outline: none;
  border-color: #7cb342;
}
.tpl-account .btn {
  padding: 12px 30px;
  border: none;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
  font-size: 14px;
}
.tpl-account .btn-primary {
  background-color: #7cb342;
  color: white;
}
.tpl-account .btn-primary:hover {
  background-color: #689f38;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(124, 179, 66, 0.3);
}
.tpl-account .btn-secondary {
  background-color: #f5f5f5;
  color: #666;
}
.tpl-account .btn-secondary:hover {
  background-color: #e0e0e0;
}
.tpl-account .order-list {
  margin-top: 20px;
}
.tpl-account .order-item {
  border: 2px solid #f5f5f5;
  border-radius: 10px;
  padding: 20px;
  margin-bottom: 15px;
  transition: all 0.3s;
}
.tpl-account .order-item:hover {
  border-color: #7cb342;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.tpl-account .order-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 15px;
  padding-bottom: 15px;
  border-bottom: 1px solid #f5f5f5;
}
.tpl-account .order-id {
  font-weight: 600;
  color: #333;
}
.tpl-account .order-date {
  font-size: 14px;
  color: #999;
}
.tpl-account .order-status {
  padding: 6px 15px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 600;
}
.tpl-account .status-pending {
  background-color: #fff3e0;
  color: #f57c00;
}
.tpl-account .status-shipping {
  background-color: #e3f2fd;
  color: #1976d2;
}
.tpl-account .status-completed {
  background-color: #e8f5e9;
  color: #388e3c;
}
.tpl-account .order-products {
  margin-bottom: 15px;
}
.tpl-account .product-row {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 10px 0;
}
.tpl-account .product-image {
  width: 60px;
  height: 60px;
  background-color: #f5f5f5;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
}
.tpl-account .product-info {
  flex: 1;
}
.tpl-account .product-name {
  font-weight: 600;
  margin-bottom: 5px;
}
.tpl-account .product-meta {
  font-size: 13px;
  color: #999;
}
.tpl-account .product-price {
  font-weight: 600;
  color: #7cb342;
}
.tpl-account .order-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 15px;
  border-top: 1px solid #f5f5f5;
}
.tpl-account .order-total {
  font-size: 18px;
  font-weight: 600;
  color: #ef5350;
}
.tpl-account .view-detail-btn {
  padding: 8px 20px;
  background-color: #7cb342;
  color: white;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 600;
  transition: all 0.3s;
}
.tpl-account .view-detail-btn:hover {
  background-color: #689f38;
}
.tpl-account .hidden {
  display: none;
}
@media (max-width: 768px) {
  .tpl-account .account-layout {
    grid-template-columns: 1fr;
  }
  .tpl-account .sidebar {
    order: 2;
  }
  .tpl-account .content-area {
    order: 1;
  }
  .tpl-account .order-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
}

/* ---- src/app/template-checkout/style.scss -> .tpl-checkout ---- */
.tpl-checkout {
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  color: #333;
  line-height: 1.6;
  background: #f8f9fa;
  /* Header */
  /* Page Header */
  /* Container */
  /* Cart Layout */
  /* Left Column */
  /* Cart Items */
  /* Checkout Form */
  /* Payment Methods */
  /* Right Column - Order Summary */
  /* Footer */
  /* Responsive */
}
.tpl-checkout * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.tpl-checkout .header {
  background-color: #fff;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  position: sticky;
  top: 0;
  z-index: 1000;
}
.tpl-checkout .top-bar {
  background: #7cb342;
  color: white;
  padding: 8px 0;
  font-size: 14px;
}
.tpl-checkout .top-bar-content {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.tpl-checkout .contact-info {
  display: flex;
  gap: 20px;
}
.tpl-checkout .nav-container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 15px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.tpl-checkout .logo {
  font-size: 32px;
  font-weight: bold;
  color: #7cb342;
  text-decoration: none;
}
.tpl-checkout .nav-menu {
  display: flex;
  gap: 35px;
  list-style: none;
  align-items: center;
}
.tpl-checkout .nav-menu a {
  text-decoration: none;
  color: #666;
  font-weight: 600;
  transition: color 0.3s;
  font-size: 15px;
}
.tpl-checkout .nav-menu a:hover {
  color: #7cb342;
}
.tpl-checkout .cart-icon {
  background: #e53935;
  color: white;
  padding: 10px 20px;
  border-radius: 25px;
  font-weight: 600;
  cursor: pointer;
}
.tpl-checkout .breadcrumb-section {
  background: white;
  padding: 20px 0;
  border-bottom: 1px solid #e0e0e0;
}
.tpl-checkout .breadcrumb {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  font-size: 14px;
  color: #666;
}
.tpl-checkout .breadcrumb a {
  color: #666;
  text-decoration: none;
  transition: color 0.3s;
}
.tpl-checkout .breadcrumb a:hover {
  color: #7cb342;
}
.tpl-checkout .container {
  max-width: 1400px;
  margin: 40px auto;
  padding: 0 20px;
}
.tpl-checkout .cart-layout {
  display: grid;
  grid-template-columns: 1.8fr 1fr;
  gap: 30px;
}
.tpl-checkout .cart-left {
  display: flex;
  flex-direction: column;
  gap: 30px;
}
.tpl-checkout .cart-items {
  background: white;
  border-radius: 15px;
  padding: 30px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
}
.tpl-checkout .section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 25px;
  padding-bottom: 20px;
  border-bottom: 2px solid #f0f0f0;
}
.tpl-checkout .section-title {
  font-size: 24px;
  color: #333;
  display: flex;
  align-items: center;
  gap: 10px;
}
.tpl-checkout .item-count {
  color: #666;
  font-size: 15px;
}
.tpl-checkout .cart-item {
  display: flex;
  gap: 20px;
  padding: 20px;
  border: 2px solid #f0f0f0;
  border-radius: 12px;
  margin-bottom: 15px;
  transition: all 0.3s;
}
.tpl-checkout .cart-item:hover {
  border-color: #7cb342;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
}
.tpl-checkout .item-image {
  width: 100px;
  height: 100px;
  border-radius: 10px;
  background: linear-gradient(135deg, #7cb342, #8bc34a);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 45px;
  flex-shrink: 0;
}
.tpl-checkout .item-details {
  flex: 1;
}
.tpl-checkout .item-name {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 5px;
  color: #333;
}
.tpl-checkout .item-category {
  font-size: 12px;
  color: #7cb342;
  margin-bottom: 10px;
}
.tpl-checkout .item-price-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}
.tpl-checkout .item-price {
  font-size: 18px;
  font-weight: bold;
  color: #e53935;
}
.tpl-checkout .item-old-price {
  font-size: 14px;
  color: #999;
  text-decoration: line-through;
  margin-left: 8px;
}
.tpl-checkout .item-actions {
  display: flex;
  align-items: center;
  gap: 15px;
}
.tpl-checkout .quantity-control {
  display: flex;
  align-items: center;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  overflow: hidden;
}
.tpl-checkout .qty-btn {
  width: 32px;
  height: 32px;
  border: none;
  background: #f8f9fa;
  cursor: pointer;
  font-size: 16px;
  font-weight: bold;
  transition: all 0.3s;
}
.tpl-checkout .qty-btn:hover {
  background: #7cb342;
  color: white;
}
.tpl-checkout .qty-display {
  width: 45px;
  text-align: center;
  font-weight: 600;
  font-size: 14px;
}
.tpl-checkout .btn-remove {
  padding: 6px 12px;
  background: #fff;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  color: #e53935;
  cursor: pointer;
  font-weight: 600;
  font-size: 13px;
  transition: all 0.3s;
}
.tpl-checkout .btn-remove:hover {
  background: #e53935;
  color: white;
  border-color: #e53935;
}
.tpl-checkout .checkout-form {
  background: white;
  border-radius: 15px;
  padding: 30px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
}
.tpl-checkout .form-section {
  margin-bottom: 25px;
}
.tpl-checkout .form-group {
  margin-bottom: 18px;
}
.tpl-checkout .form-group label {
  display: block;
  margin-bottom: 8px;
  font-weight: 600;
  color: #333;
  font-size: 14px;
}
.tpl-checkout .required {
  color: #e53935;
}
.tpl-checkout .form-group input,
.tpl-checkout .form-group select,
.tpl-checkout .form-group textarea {
  width: 100%;
  padding: 12px 15px;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  font-size: 14px;
  font-family: inherit;
  transition: border 0.3s;
}
.tpl-checkout .form-group input:focus,
.tpl-checkout .form-group select:focus,
.tpl-checkout .form-group textarea:focus {
  outline: none;
  border-color: #7cb342;
}
.tpl-checkout .form-group textarea {
  resize: vertical;
  min-height: 80px;
}
.tpl-checkout .form-row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 15px;
}
.tpl-checkout .payment-methods {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.tpl-checkout .payment-option {
  display: flex;
  align-items: flex-start;
  width: 100%;
  gap: 12px;
  padding: 15px;
  border: 2px solid #e0e0e0;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.3s;
}
.tpl-checkout .payment-option:hover {
  border-color: #7cb342;
  background: #f8f9fa;
}
.tpl-checkout .payment-option input[type=radio] {
  width: 18px;
  height: 18px;
  cursor: pointer;
  accent-color: #7cb342;
}
.tpl-checkout .payment-option label {
  flex: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
  font-size: 14px;
}
.tpl-checkout .payment-icon {
  font-size: 24px;
}
.tpl-checkout .order-summary {
  background: white;
  border-radius: 15px;
  padding: 30px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
  height: fit-content;
  position: sticky;
  top: 100px;
}
.tpl-checkout .summary-title {
  font-size: 22px;
  margin-bottom: 20px;
  color: #333;
  border-bottom: 2px solid #f0f0f0;
  padding-bottom: 15px;
}
.tpl-checkout .summary-row {
  display: flex;
  justify-content: space-between;
  margin-bottom: 15px;
  font-size: 15px;
}
.tpl-checkout .summary-label {
  color: #666;
}
.tpl-checkout .summary-value {
  font-weight: 600;
  color: #333;
}
.tpl-checkout .summary-divider {
  border-top: 2px dashed #e0e0e0;
  margin: 20px 0;
}
.tpl-checkout .summary-total {
  display: flex;
  justify-content: space-between;
  font-size: 18px;
  font-weight: bold;
  color: #333;
  padding: 20px;
  background: #f8f9fa;
  border-radius: 10px;
  margin-bottom: 25px;
}
.tpl-checkout .total-amount {
  color: #e53935;
  font-size: 24px;
}
.tpl-checkout .discount-code {
  margin-bottom: 20px;
}
.tpl-checkout .discount-code label {
  font-weight: 600;
  margin-bottom: 10px;
  display: block;
  font-size: 14px;
}
.tpl-checkout .discount-input {
  display: flex;
  gap: 10px;
}
.tpl-checkout .discount-input input {
  flex: 1;
  padding: 10px 12px;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  font-size: 13px;
}
.tpl-checkout .btn-apply {
  padding: 10px 20px;
  background: #7cb342;
  color: white;
  border: none;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
  font-size: 13px;
  transition: all 0.3s;
}
.tpl-checkout .btn-apply:hover {
  background: #689f38;
}
.tpl-checkout .btn-order {
  width: 100%;
  padding: 18px;
  background: #7cb342;
  color: white;
  border: none;
  border-radius: 10px;
  font-size: 18px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
  margin-bottom: 15px;
}
.tpl-checkout .btn-order:hover {
  background: #689f38;
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(124, 179, 66, 0.3);
}
.tpl-checkout .btn-continue {
  width: 100%;
  padding: 12px;
  background: white;
  color: #7cb342;
  border: 2px solid #7cb342;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
  text-decoration: none;
  display: block;
  text-align: center;
}
.tpl-checkout .btn-continue:hover {
  background: #f8f9fa;
}
.tpl-checkout .secure-checkout {
  text-align: center;
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid #e0e0e0;
  color: #666;
  font-size: 13px;
}
.tpl-checkout .secure-checkout strong {
  color: #7cb342;
}
.tpl-checkout .payment-logos {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 15px;
}
.tpl-checkout .payment-badge {
  padding: 5px 10px;
  background: #f8f9fa;
  border-radius: 5px;
  font-size: 11px;
  font-weight: 600;
  color: #666;
}
.tpl-checkout .footer {
  background: #2c3e50;
  color: white;
  padding: 60px 20px 30px;
  margin-top: 60px;
}
.tpl-checkout .footer-container {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: 50px;
  margin-bottom: 40px;
}
.tpl-checkout .footer-about h3 {
  font-size: 32px;
  color: #7cb342;
  margin-bottom: 20px;
}
.tpl-checkout .footer-about p {
  line-height: 1.8;
  color: #bdc3c7;
  margin-bottom: 25px;
}
.tpl-checkout .footer-bottom {
  border-top: 1px solid #34495e;
  padding: 30px 0;
  text-align: center;
  color: #bdc3c7;
  max-width: 1400px;
  margin: 0 auto;
}
@media (max-width: 1200px) {
  .tpl-checkout .cart-layout {
    grid-template-columns: 1fr;
  }
  .tpl-checkout .order-summary {
    position: static;
  }
  .tpl-checkout .footer-container {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 768px) {
  .tpl-checkout .cart-item {
    flex-direction: column;
  }
  .tpl-checkout .item-image {
    width: 100%;
    height: 150px;
  }
  .tpl-checkout .form-row {
    grid-template-columns: 1fr;
  }
  .tpl-checkout .footer-container {
    grid-template-columns: 1fr;
  }
}

/* ---- src/app/template-contact/style.scss -> .tpl-contact ---- */
.tpl-contact {
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  background-color: #f5f5f5;
  color: #333;
}
.tpl-contact * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.tpl-contact .top-bar {
  background-color: #7cb342;
  color: white;
  padding: 10px 0;
  font-size: 14px;
}
.tpl-contact .top-bar-content {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
}
.tpl-contact .contact-item {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 5px 10px;
}
.tpl-contact header {
  background-color: white;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  padding: 20px 0;
}
.tpl-contact .header-content {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.tpl-contact .logo {
  font-size: 32px;
  font-weight: bold;
  color: #7cb342;
}
.tpl-contact nav {
  display: flex;
  gap: 30px;
}
.tpl-contact nav a {
  text-decoration: none;
  color: #666;
  font-weight: 600;
  transition: color 0.3s;
}
.tpl-contact nav a:hover {
  color: #7cb342;
}
.tpl-contact .container {
  max-width: 1400px;
  margin: 40px auto;
  padding: 0 20px;
}
.tpl-contact .page-title {
  text-align: center;
  margin-bottom: 50px;
}
.tpl-contact .page-title h1 {
  font-size: 36px;
  color: #333;
  margin-bottom: 10px;
}
.tpl-contact .page-title p {
  color: #666;
  font-size: 16px;
}
.tpl-contact .contact-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
  margin-bottom: 40px;
}
.tpl-contact .contact-info-section {
  background: white;
  padding: 30px;
  border-radius: 10px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
.tpl-contact .contact-info-section h2 {
  color: #7cb342;
  margin-bottom: 25px;
  font-size: 24px;
  border-bottom: 3px solid #7cb342;
  padding-bottom: 10px;
}
.tpl-contact .info-item {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 15px;
  margin-bottom: 15px;
  background: #f9f9f9;
  border-radius: 8px;
  transition: all 0.3s;
}
.tpl-contact .info-item:hover {
  background: #e8f5e9;
  transform: translateX(5px);
}
.tpl-contact .info-icon {
  width: 40px;
  height: 40px;
  background: #7cb342;
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  flex-shrink: 0;
}
.tpl-contact .info-content h3 {
  font-size: 14px;
  color: #999;
  margin-bottom: 5px;
}
.tpl-contact .info-content p {
  font-size: 16px;
  color: #333;
  font-weight: 600;
}
.tpl-contact .info-content a {
  color: #333;
  text-decoration: none;
  transition: color 0.3s;
}
.tpl-contact .info-content a:hover {
  color: #7cb342;
}
.tpl-contact .form-section {
  background: white;
  padding: 30px;
  border-radius: 10px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
.tpl-contact .form-section h2 {
  color: #7cb342;
  margin-bottom: 25px;
  font-size: 24px;
  border-bottom: 3px solid #7cb342;
  padding-bottom: 10px;
}
.tpl-contact .form-tabs {
  display: flex;
  gap: 10px;
  margin-bottom: 25px;
}
.tpl-contact .tab-btn {
  flex: 1;
  padding: 12px 20px;
  background: #f5f5f5;
  border: none;
  border-radius: 5px;
  cursor: pointer;
  font-size: 16px;
  font-weight: 600;
  transition: all 0.3s;
}
.tpl-contact .tab-btn.active {
  background: #7cb342;
  color: white;
}
.tpl-contact .form-group {
  margin-bottom: 20px;
}
.tpl-contact .form-group label {
  display: block;
  margin-bottom: 8px;
  color: #555;
  font-weight: 600;
}
.tpl-contact .form-group input,
.tpl-contact .form-group textarea,
.tpl-contact .form-group select {
  width: 100%;
  padding: 12px;
  border: 1px solid #ddd;
  border-radius: 5px;
  font-size: 14px;
  transition: border-color 0.3s;
}
.tpl-contact .form-group input:focus,
.tpl-contact .form-group textarea:focus,
.tpl-contact .form-group select:focus {
  outline: none;
  border-color: #7cb342;
}
.tpl-contact .form-group textarea {
  resize: vertical;
  min-height: 120px;
}
.tpl-contact .submit-btn {
  width: 100%;
  padding: 15px;
  background: #7cb342;
  color: white;
  border: none;
  border-radius: 5px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.3s;
}
.tpl-contact .submit-btn:hover {
  background: #689f38;
}
.tpl-contact .map-section {
  background: white;
  padding: 30px;
  border-radius: 10px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  margin-bottom: 40px;
}
.tpl-contact .map-section h2 {
  color: #7cb342;
  margin-bottom: 20px;
  font-size: 24px;
  border-bottom: 3px solid #7cb342;
  padding-bottom: 10px;
}
.tpl-contact .map-container {
  width: 100%;
  height: 400px;
  border-radius: 10px;
  overflow: hidden;
  background: #e0e0e0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #999;
}
.tpl-contact footer {
  background: #333;
  color: white;
  padding: 20px 0;
  text-align: center;
}
@media (max-width: 768px) {
  .tpl-contact .contact-wrapper {
    grid-template-columns: 1fr;
  }
  .tpl-contact nav {
    display: none;
  }
  .tpl-contact .top-bar-content {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ---- src/app/template-flash-sale/style.scss -> .tpl-flash-sale ---- */
.tpl-flash-sale {
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  color: #333;
  line-height: 1.6;
  background: #f8f9fa;
  /* Header */
  /* Flash Sale Banner */
  /* Countdown Timer */
  /* Container */
  /* Filter Section */
  /* Category Filter */
  /* Sort Options */
  /* Products Grid */
  /* Flash Sale Badge */
  /* Stock Badge */
  /* Progress Bar */
  /* Empty State */
  /* Footer */
  /* Responsive */
}
.tpl-flash-sale * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.tpl-flash-sale .header {
  background-color: #fff;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  position: sticky;
  top: 0;
  z-index: 1000;
}
.tpl-flash-sale .top-bar {
  background: #7cb342;
  color: white;
  padding: 8px 0;
  font-size: 14px;
}
.tpl-flash-sale .top-bar-content {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.tpl-flash-sale .contact-info {
  display: flex;
  gap: 20px;
}
.tpl-flash-sale .nav-container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 15px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.tpl-flash-sale .logo {
  font-size: 32px;
  font-weight: bold;
  color: #7cb342;
  text-decoration: none;
}
.tpl-flash-sale .nav-menu {
  display: flex;
  gap: 35px;
  list-style: none;
  align-items: center;
}
.tpl-flash-sale .nav-menu a {
  text-decoration: none;
  color: #666;
  font-weight: 600;
  transition: color 0.3s;
  font-size: 15px;
}
.tpl-flash-sale .nav-menu a:hover {
  color: #7cb342;
}
.tpl-flash-sale .cart-icon {
  background: #7cb342;
  color: white;
  padding: 10px 20px;
  border-radius: 25px;
  font-weight: 600;
  cursor: pointer;
}
.tpl-flash-sale .flash-sale-banner {
  background: linear-gradient(135deg, #e53935, #ff6b6b);
  color: white;
  padding: 40px 20px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.tpl-flash-sale .flash-sale-banner::before {
  content: "⚡";
  position: absolute;
  font-size: 200px;
  opacity: 0.1;
  top: -50px;
  left: 10%;
  animation: pulse 2s infinite;
}
.tpl-flash-sale .flash-sale-banner::after {
  content: "🔥";
  position: absolute;
  font-size: 150px;
  opacity: 0.1;
  bottom: -30px;
  right: 10%;
  animation: pulse 2s infinite 1s;
}
@keyframes pulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
  }
}
.tpl-flash-sale .banner-content {
  position: relative;
  z-index: 1;
}
.tpl-flash-sale .flash-title {
  font-size: 48px;
  margin-bottom: 10px;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
}
.tpl-flash-sale .flash-subtitle {
  font-size: 20px;
  margin-bottom: 30px;
  opacity: 0.95;
}
.tpl-flash-sale .countdown-timer {
  display: flex;
  justify-content: center;
  gap: 20px;
  flex-wrap: wrap;
}
.tpl-flash-sale .countdown-item {
  background: rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(10px);
  padding: 20px 25px;
  border-radius: 15px;
  min-width: 100px;
  border: 2px solid rgba(255, 255, 255, 0.3);
}
.tpl-flash-sale .countdown-number {
  font-size: 42px;
  font-weight: bold;
  display: block;
  line-height: 1;
}
.tpl-flash-sale .countdown-label {
  font-size: 14px;
  margin-top: 8px;
  opacity: 0.9;
}
.tpl-flash-sale .container {
  max-width: 1400px;
  margin: 40px auto;
  padding: 0 20px;
}
.tpl-flash-sale .filter-section {
  background: white;
  border-radius: 15px;
  padding: 30px;
  margin-bottom: 30px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}
.tpl-flash-sale .filter-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 25px;
}
.tpl-flash-sale .filter-title {
  font-size: 20px;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 10px;
}
.tpl-flash-sale .result-count {
  color: #666;
  font-size: 15px;
}
.tpl-flash-sale .result-count strong {
  color: #e53935;
}
.tpl-flash-sale .category-filter {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.tpl-flash-sale .category-btn {
  padding: 12px 25px;
  border: 2px solid #e0e0e0;
  background: white;
  border-radius: 25px;
  cursor: pointer;
  font-weight: 600;
  font-size: 14px;
  color: #666;
  transition: all 0.3s;
  display: flex;
  align-items: center;
  gap: 8px;
}
.tpl-flash-sale .category-btn:hover {
  border-color: #e53935;
  color: #e53935;
}
.tpl-flash-sale .category-btn.active {
  background: #e53935;
  color: white;
  border-color: #e53935;
}
.tpl-flash-sale .category-icon {
  font-size: 18px;
}
.tpl-flash-sale .sort-section {
  display: flex;
  justify-content: flex-end;
  gap: 15px;
  align-items: center;
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid #f0f0f0;
}
.tpl-flash-sale .sort-label {
  color: #666;
  font-weight: 600;
  font-size: 14px;
}
.tpl-flash-sale .sort-select {
  padding: 10px 15px;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  font-size: 14px;
  cursor: pointer;
  font-weight: 600;
  color: #666;
}
.tpl-flash-sale .products-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 25px;
}
.tpl-flash-sale .product-card {
  background: white;
  border-radius: 15px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
  transition: all 0.3s;
  position: relative;
  cursor: pointer;
}
.tpl-flash-sale .product-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.15);
}
.tpl-flash-sale .flash-badge {
  position: absolute;
  top: 15px;
  left: 15px;
  background: #e53935;
  color: white;
  padding: 8px 15px;
  border-radius: 20px;
  font-weight: bold;
  font-size: 13px;
  z-index: 10;
  box-shadow: 0 3px 10px rgba(229, 57, 53, 0.4);
  animation: flashBadge 2s infinite;
}
@keyframes flashBadge {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.05);
  }
}
.tpl-flash-sale .stock-badge {
  position: absolute;
  top: 15px;
  right: 15px;
  background: rgba(0, 0, 0, 0.7);
  color: white;
  padding: 6px 12px;
  border-radius: 15px;
  font-size: 12px;
  font-weight: 600;
  z-index: 10;
}
.tpl-flash-sale .product-image {
  width: 100%;
  height: 250px;
  background: linear-gradient(135deg, #7cb342, #8bc34a);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 80px;
  position: relative;
}
.tpl-flash-sale .stock-progress {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.3);
  padding: 8px 15px;
}
.tpl-flash-sale .progress-label {
  font-size: 11px;
  color: white;
  margin-bottom: 5px;
  display: flex;
  justify-content: space-between;
}
.tpl-flash-sale .progress-bar {
  height: 6px;
  background: rgba(255, 255, 255, 0.3);
  border-radius: 3px;
  overflow: hidden;
}
.tpl-flash-sale .progress-fill {
  height: 100%;
  background: #ffc107;
  border-radius: 3px;
  transition: width 0.3s;
}
.tpl-flash-sale .product-info {
  padding: 20px;
}
.tpl-flash-sale .product-category {
  font-size: 12px;
  color: #7cb342;
  font-weight: 600;
  margin-bottom: 8px;
  text-transform: uppercase;
}
.tpl-flash-sale .product-title {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 12px;
  height: 40px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  color: #333;
}
.tpl-flash-sale .product-rating {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  font-size: 13px;
}
.tpl-flash-sale .stars {
  color: #ffc107;
}
.tpl-flash-sale .rating-count {
  color: #999;
}
.tpl-flash-sale .product-price-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}
.tpl-flash-sale .current-price {
  font-size: 22px;
  font-weight: bold;
  color: #e53935;
}
.tpl-flash-sale .old-price {
  font-size: 16px;
  color: #999;
  text-decoration: line-through;
}
.tpl-flash-sale .discount-percent {
  background: #e53935;
  color: white;
  padding: 4px 8px;
  border-radius: 5px;
  font-size: 12px;
  font-weight: bold;
}
.tpl-flash-sale .product-timer {
  background: #fff3cd;
  padding: 10px;
  border-radius: 8px;
  text-align: center;
  margin-bottom: 15px;
  font-size: 13px;
  color: #856404;
  font-weight: 600;
}
.tpl-flash-sale .btn-buy {
  width: 100%;
  padding: 12px;
  background: #e53935;
  color: white;
  border: none;
  border-radius: 8px;
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
  transition: all 0.3s;
}
.tpl-flash-sale .btn-buy:hover {
  background: #d32f2f;
  transform: translateY(-2px);
  box-shadow: 0 5px 15px rgba(229, 57, 53, 0.3);
}
.tpl-flash-sale .empty-state {
  text-align: center;
  padding: 80px 20px;
  background: white;
  border-radius: 15px;
}
.tpl-flash-sale .empty-icon {
  font-size: 100px;
  margin-bottom: 20px;
}
.tpl-flash-sale .empty-state h3 {
  font-size: 24px;
  margin-bottom: 10px;
  color: #333;
}
.tpl-flash-sale .empty-state p {
  color: #666;
  font-size: 16px;
}
.tpl-flash-sale .footer {
  background: #2c3e50;
  color: white;
  padding: 60px 20px 30px;
  margin-top: 80px;
}
.tpl-flash-sale .footer-bottom {
  border-top: 1px solid #34495e;
  padding: 30px 0;
  text-align: center;
  color: #bdc3c7;
  max-width: 1400px;
  margin: 0 auto;
}
@media (max-width: 1200px) {
  .tpl-flash-sale .products-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 992px) {
  .tpl-flash-sale .products-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .tpl-flash-sale .flash-title {
    font-size: 36px;
  }
  .tpl-flash-sale .countdown-item {
    min-width: 80px;
    padding: 15px 20px;
  }
  .tpl-flash-sale .countdown-number {
    font-size: 32px;
  }
}
@media (max-width: 768px) {
  .tpl-flash-sale .category-filter {
    justify-content: center;
  }
  .tpl-flash-sale .sort-section {
    justify-content: center;
  }
  .tpl-flash-sale .flash-title {
    font-size: 28px;
  }
  .tpl-flash-sale .flash-subtitle {
    font-size: 16px;
  }
}
@media (max-width: 480px) {
  .tpl-flash-sale .products-grid {
    grid-template-columns: 1fr;
  }
  .tpl-flash-sale .countdown-item {
    min-width: 70px;
    padding: 12px 15px;
  }
  .tpl-flash-sale .countdown-number {
    font-size: 28px;
  }
}

/* ---- src/app/template-news/style.scss -> .tpl-news ---- */
.tpl-news {
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  color: #333;
  line-height: 1.6;
  background: #f8f9fa;
  /* Header */
  /* Page Header */
  /* Main Container */
  /* Sidebar */
  /* Main Content */
  /* Featured Post */
  /* Pagination */
  /* Footer */
  /* Responsive */
}
.tpl-news * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.tpl-news .header {
  background-color: #fff;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  position: sticky;
  top: 0;
  z-index: 1000;
}
.tpl-news .top-bar {
  background: #7cb342;
  color: white;
  padding: 8px 0;
  font-size: 14px;
}
.tpl-news .top-bar-content {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.tpl-news .contact-info {
  display: flex;
  gap: 20px;
}
.tpl-news .nav-container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 15px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.tpl-news .logo {
  font-size: 32px;
  font-weight: bold;
  color: #7cb342;
  text-decoration: none;
}
.tpl-news .nav-menu {
  display: flex;
  gap: 35px;
  list-style: none;
  align-items: center;
}
.tpl-news .nav-menu a {
  text-decoration: none;
  color: #666;
  font-weight: 600;
  transition: color 0.3s;
  font-size: 15px;
}
.tpl-news .nav-menu a:hover {
  color: #7cb342;
}
.tpl-news .cart-icon {
  background: #7cb342;
  color: white;
  padding: 10px 20px;
  border-radius: 25px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.3s;
}
.tpl-news .cart-icon:hover {
  background: #689f38;
}
.tpl-news .breadcrumb-section {
  background: white;
  padding: 20px 0;
  border-bottom: 1px solid #e0e0e0;
}
.tpl-news .breadcrumb {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  font-size: 14px;
  color: #666;
}
.tpl-news .breadcrumb a {
  color: #666;
  text-decoration: none;
  transition: color 0.3s;
}
.tpl-news .breadcrumb a:hover {
  color: #7cb342;
}
.tpl-news .container {
  max-width: 1400px;
  margin: 50px auto;
  padding: 0 20px;
  display: flex;
  gap: 40px;
}
.tpl-news .sidebar {
  width: 350px;
  flex-shrink: 0;
}
.tpl-news .sidebar-section {
  background: white;
  border-radius: 15px;
  padding: 30px;
  margin-bottom: 30px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
}
.tpl-news .sidebar-section h3 {
  font-size: 22px;
  margin-bottom: 25px;
  color: #333;
  border-bottom: 3px solid #7cb342;
  padding-bottom: 12px;
}
.tpl-news .search-box {
  position: relative;
}
.tpl-news .search-box input {
  width: 100%;
  padding: 12px 45px 12px 15px;
  border: 2px solid #e0e0e0;
  border-radius: 25px;
  font-size: 14px;
  outline: none;
  transition: border 0.3s;
}
.tpl-news .search-box input:focus {
  border-color: #7cb342;
}
.tpl-news .search-box button {
  position: absolute;
  right: 5px;
  top: 5px;
  background: #7cb342;
  border: none;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  color: white;
  cursor: pointer;
  font-size: 16px;
}
.tpl-news .category-list {
  list-style: none;
}
.tpl-news .category-list li {
  margin-bottom: 15px;
}
.tpl-news .category-list a {
  color: #666;
  text-decoration: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px;
  border-radius: 8px;
  transition: all 0.3s;
}
.tpl-news .category-list a:hover {
  background: #f8f9fa;
  color: #7cb342;
  padding-left: 15px;
}
.tpl-news .category-count {
  background: #7cb342;
  color: white;
  padding: 4px 10px;
  border-radius: 15px;
  font-size: 12px;
  font-weight: 600;
}
.tpl-news .recent-post {
  display: flex;
  gap: 15px;
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid #f0f0f0;
}
.tpl-news .recent-post:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.tpl-news .recent-post-img {
  width: 80px;
  height: 80px;
  border-radius: 10px;
  object-fit: cover;
  background: linear-gradient(135deg, #7cb342, #8bc34a);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
  flex-shrink: 0;
}
.tpl-news .recent-post-info h4 {
  font-size: 14px;
  margin-bottom: 8px;
  line-height: 1.4;
}
.tpl-news .recent-post-info a {
  color: #333;
  text-decoration: none;
  transition: color 0.3s;
}
.tpl-news .recent-post-info a:hover {
  color: #7cb342;
}
.tpl-news .post-date {
  font-size: 12px;
  color: #999;
}
.tpl-news .tag-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.tpl-news .tag {
  padding: 8px 15px;
  background: #f8f9fa;
  border-radius: 20px;
  color: #666;
  text-decoration: none;
  font-size: 13px;
  transition: all 0.3s;
}
.tpl-news .tag:hover {
  background: #7cb342;
  color: white;
}
.tpl-news .main-content {
  flex: 1;
}
.tpl-news .news-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
  margin-bottom: 40px;
}
.tpl-news .news-card {
  background: white;
  border-radius: 15px;
  overflow: hidden;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
  transition: all 0.3s;
}
.tpl-news .news-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15);
}
.tpl-news .news-image {
  width: 100%;
  height: 280px;
  object-fit: cover;
  background: linear-gradient(135deg, #7cb342, #8bc34a);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 80px;
}
.tpl-news .news-content {
  padding: 25px;
}
.tpl-news .news-meta {
  display: flex;
  gap: 20px;
  margin-bottom: 15px;
  font-size: 13px;
  color: #999;
}
.tpl-news .news-meta span {
  display: flex;
  align-items: center;
  gap: 5px;
}
.tpl-news .news-title {
  font-size: 22px;
  margin-bottom: 15px;
  line-height: 1.4;
}
.tpl-news .news-title a {
  color: #333;
  text-decoration: none;
  transition: color 0.3s;
}
.tpl-news .news-title a:hover {
  color: #7cb342;
}
.tpl-news .news-excerpt {
  color: #666;
  margin-bottom: 20px;
  line-height: 1.8;
}
.tpl-news .news-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.tpl-news .news-category {
  background: #7cb342;
  color: white;
  padding: 6px 15px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 600;
}
.tpl-news .read-more {
  color: #7cb342;
  text-decoration: none;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 5px;
  transition: gap 0.3s;
}
.tpl-news .read-more:hover {
  gap: 10px;
}
.tpl-news .featured-post {
  background: white;
  border-radius: 15px;
  overflow: hidden;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1);
  margin-bottom: 40px;
  display: flex;
  gap: 30px;
}
.tpl-news .featured-image {
  width: 50%;
  max-width: 30rem;
  height: 400px;
  background: linear-gradient(135deg, #7cb342, #8bc34a);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 120px;
}
.tpl-news .featured-content {
  flex: 1;
  padding: 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.tpl-news .featured-badge {
  background: #e53935;
  color: white;
  padding: 8px 20px;
  border-radius: 25px;
  font-size: 13px;
  font-weight: 600;
  display: inline-block;
  margin-bottom: 20px;
  width: fit-content;
}
.tpl-news .featured-title {
  font-size: 32px;
  margin-bottom: 20px;
  line-height: 1.3;
}
.tpl-news .featured-excerpt {
  font-size: 16px;
  color: #666;
  margin-bottom: 25px;
  line-height: 1.8;
}
.tpl-news .btn-read {
  background: #7cb342;
  color: white;
  padding: 15px 40px;
  border-radius: 30px;
  text-decoration: none;
  font-weight: 600;
  display: inline-block;
  width: fit-content;
  transition: all 0.3s;
}
.tpl-news .btn-read:hover {
  background: #689f38;
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(124, 179, 66, 0.3);
}
.tpl-news .pagination {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 40px;
}
.tpl-news .page-btn {
  padding: 12px 18px;
  border: 2px solid #e0e0e0;
  background: white;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.3s;
  font-weight: 600;
  color: #666;
}
.tpl-news .page-btn:hover {
  border-color: #7cb342;
  color: #7cb342;
}
.tpl-news .page-btn.active {
  background: #7cb342;
  color: white;
  border-color: #7cb342;
}
.tpl-news .footer {
  background: #2c3e50;
  color: white;
  padding: 60px 20px 0;
  margin-top: 80px;
}
.tpl-news .footer-container {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: 50px;
  margin-bottom: 40px;
}
.tpl-news .footer-about h3 {
  font-size: 32px;
  color: #7cb342;
  margin-bottom: 20px;
}
.tpl-news .footer-about p {
  line-height: 1.8;
  color: #bdc3c7;
  margin-bottom: 25px;
}
.tpl-news .social-links {
  display: flex;
  gap: 15px;
}
.tpl-news .social-link {
  width: 45px;
  height: 45px;
  background: #34495e;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  text-decoration: none;
  transition: all 0.3s;
}
.tpl-news .social-link:hover {
  background: #7cb342;
  transform: translateY(-5px);
}
.tpl-news .footer-links h4 {
  font-size: 20px;
  margin-bottom: 25px;
  color: #7cb342;
  font-weight: 600;
}
.tpl-news .footer-links ul {
  list-style: none;
  padding-left: 0;
}
.tpl-news .footer-links li {
  margin-bottom: 14px;
}
.tpl-news .footer-links a {
  color: #bdc3c7;
  text-decoration: none;
  transition: all 0.3s;
}
.tpl-news .footer-links a:hover {
  color: #7cb342;
  padding-left: 5px;
}
.tpl-news .footer-bottom {
  border-top: 1px solid #34495e;
  padding: 30px 0;
  text-align: center;
  color: #bdc3c7;
}
@media (max-width: 1200px) {
  .tpl-news .news-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 992px) {
  .tpl-news .container {
    flex-direction: column;
  }
  .tpl-news .sidebar {
    width: 100%;
  }
  .tpl-news .featured-post {
    flex-direction: column;
  }
  .tpl-news .featured-image {
    width: 100%;
    height: 300px;
  }
  .tpl-news .footer-container {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 768px) {
  .tpl-news .featured-title {
    font-size: 24px;
  }
}
@media (max-width: 480px) {
  .tpl-news .footer-container {
    grid-template-columns: 1fr;
  }
}

/* ---- src/app/template-news-detail/style.scss -> .tpl-news-detail ---- */
.tpl-news-detail {
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  color: #333;
  line-height: 1.8;
  background: #f8f9fa;
  /* Header */
  /* Breadcrumb */
  /* Container */
  /* Main Article */
  /* Article Content */
  /* Article Footer */
  /* Author Box */
  /* Comments Section */
  /* Sidebar */
  /* Footer */
  /* Responsive */
}
.tpl-news-detail * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.tpl-news-detail .header {
  background-color: #fff;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  position: sticky;
  top: 0;
  z-index: 1000;
}
.tpl-news-detail .top-bar {
  background: #7cb342;
  color: white;
  padding: 8px 0;
  font-size: 14px;
}
.tpl-news-detail .top-bar-content {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.tpl-news-detail .contact-info {
  display: flex;
  gap: 20px;
}
.tpl-news-detail .nav-container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 15px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.tpl-news-detail .logo {
  font-size: 32px;
  font-weight: bold;
  color: #7cb342;
  text-decoration: none;
}
.tpl-news-detail .nav-menu {
  display: flex;
  gap: 35px;
  list-style: none;
  align-items: center;
}
.tpl-news-detail .nav-menu a {
  text-decoration: none;
  color: #666;
  font-weight: 600;
  transition: color 0.3s;
  font-size: 15px;
}
.tpl-news-detail .nav-menu a:hover {
  color: #7cb342;
}
.tpl-news-detail .cart-icon {
  background: #7cb342;
  color: white;
  padding: 10px 20px;
  border-radius: 25px;
  font-weight: 600;
  cursor: pointer;
}
.tpl-news-detail .breadcrumb-section {
  background: white;
  padding: 20px 0;
  border-bottom: 1px solid #e0e0e0;
}
.tpl-news-detail .breadcrumb {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  font-size: 14px;
  color: #666;
}
.tpl-news-detail .breadcrumb a {
  color: #666;
  text-decoration: none;
  transition: color 0.3s;
}
.tpl-news-detail .breadcrumb a:hover {
  color: #7cb342;
}
.tpl-news-detail .container {
  max-width: 1400px;
  margin: 50px auto;
  padding: 0 20px;
  display: flex;
  gap: 40px;
}
.tpl-news-detail .article-main {
  flex: 1;
}
.tpl-news-detail .article-header {
  background: white;
  padding: 40px;
  border-radius: 15px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
  margin-bottom: 30px;
}
.tpl-news-detail .article-category {
  display: inline-block;
  background: #7cb342;
  color: white;
  padding: 8px 20px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 20px;
}
.tpl-news-detail .article-title {
  font-size: 42px;
  line-height: 1.3;
  margin-bottom: 25px;
  color: #333;
}
.tpl-news-detail .article-meta {
  display: flex;
  gap: 30px;
  padding: 20px 0;
  border-top: 2px solid #f0f0f0;
  border-bottom: 2px solid #f0f0f0;
  color: #666;
  font-size: 15px;
}
.tpl-news-detail .meta-item {
  display: flex;
  align-items: center;
  gap: 8px;
}
.tpl-news-detail .author-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #7cb342;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-weight: bold;
  font-size: 18px;
}
.tpl-news-detail .social-share {
  margin-top: 25px;
  display: flex;
  align-items: center;
  gap: 15px;
}
.tpl-news-detail .social-share span {
  font-weight: 600;
  color: #666;
}
.tpl-news-detail .share-btn {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: none;
  cursor: pointer;
  font-size: 18px;
  transition: all 0.3s;
}
.tpl-news-detail .share-facebook {
  background: #3b5998;
  color: white;
}
.tpl-news-detail .share-twitter {
  background: #1da1f2;
  color: white;
}
.tpl-news-detail .share-linkedin {
  background: #0077b5;
  color: white;
}
.tpl-news-detail .share-copy {
  background: #f0f0f0;
  color: #666;
}
.tpl-news-detail .share-btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}
.tpl-news-detail .article-content {
  background: white;
  padding: 50px;
  border-radius: 15px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
  margin-bottom: 30px;
}
.tpl-news-detail .featured-image {
  width: 100%;
  max-width: 30rem;
  height: 500px;
  border-radius: 15px;
  background: linear-gradient(135deg, #7cb342, #8bc34a);
  margin-bottom: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 150px;
}
.tpl-news-detail .article-content h2 {
  font-size: 32px;
  margin: 40px 0 20px;
  color: #333;
}
.tpl-news-detail .article-content h3 {
  font-size: 24px;
  margin: 30px 0 15px;
  color: #333;
}
.tpl-news-detail .article-content p {
  margin-bottom: 20px;
  font-size: 17px;
  line-height: 1.9;
  color: #555;
}
.tpl-news-detail .article-content ul,
.tpl-news-detail .article-content ol {
  margin: 20px 0 20px 30px;
  color: #555;
}
.tpl-news-detail .article-content li {
  margin-bottom: 12px;
  font-size: 17px;
}
.tpl-news-detail .article-content blockquote {
  border-left: 5px solid #7cb342;
  padding: 20px 30px;
  background: #f8f9fa;
  margin: 30px 0;
  font-style: italic;
  font-size: 18px;
  color: #666;
  border-radius: 8px;
}
.tpl-news-detail .highlight-box {
  background: #e8f5e9;
  border-left: 5px solid #7cb342;
  padding: 25px;
  margin: 30px 0;
  border-radius: 8px;
}
.tpl-news-detail .highlight-box h4 {
  color: #7cb342;
  font-size: 20px;
  margin-bottom: 15px;
}
.tpl-news-detail .article-footer {
  background: white;
  padding: 30px 40px;
  border-radius: 15px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
  margin-bottom: 30px;
}
.tpl-news-detail .article-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 25px;
}
.tpl-news-detail .article-tags span {
  font-weight: 600;
  color: #666;
  margin-right: 10px;
}
.tpl-news-detail .tag {
  padding: 8px 20px;
  background: #f8f9fa;
  border-radius: 20px;
  color: #666;
  text-decoration: none;
  font-size: 14px;
  transition: all 0.3s;
}
.tpl-news-detail .tag:hover {
  background: #7cb342;
  color: white;
}
.tpl-news-detail .author-box {
  background: white;
  padding: 30px;
  border-radius: 15px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
  margin-bottom: 30px;
  display: flex;
  gap: 25px;
}
.tpl-news-detail .author-avatar-large {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: #7cb342;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-weight: bold;
  font-size: 40px;
  flex-shrink: 0;
}
.tpl-news-detail .author-info h3 {
  font-size: 22px;
  margin-bottom: 10px;
}
.tpl-news-detail .author-role {
  color: #7cb342;
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 15px;
}
.tpl-news-detail .author-bio {
  color: #666;
  line-height: 1.8;
  font-size: 15px;
}
.tpl-news-detail .comments-section {
  background: white;
  padding: 40px;
  border-radius: 15px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
  margin-bottom: 30px;
}
.tpl-news-detail .comments-title {
  font-size: 28px;
  margin-bottom: 30px;
  color: #333;
}
.tpl-news-detail .comment-form {
  background: #f8f9fa;
  padding: 30px;
  border-radius: 12px;
  margin-bottom: 40px;
}
.tpl-news-detail .form-group {
  margin-bottom: 20px;
}
.tpl-news-detail .form-group label {
  display: block;
  margin-bottom: 8px;
  font-weight: 600;
  color: #333;
}
.tpl-news-detail .form-group input,
.tpl-news-detail .form-group textarea {
  width: 100%;
  padding: 12px 15px;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  font-size: 15px;
  font-family: inherit;
  transition: border 0.3s;
}
.tpl-news-detail .form-group input:focus,
.tpl-news-detail .form-group textarea:focus {
  outline: none;
  border-color: #7cb342;
}
.tpl-news-detail .form-group textarea {
  resize: vertical;
  min-height: 120px;
}
.tpl-news-detail .btn-submit {
  background: #7cb342;
  color: white;
  padding: 15px 40px;
  border: none;
  border-radius: 30px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
}
.tpl-news-detail .btn-submit:hover {
  background: #689f38;
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(124, 179, 66, 0.3);
}
.tpl-news-detail .comment-item {
  padding: 25px;
  border: 1px solid #e0e0e0;
  border-radius: 12px;
  margin-bottom: 20px;
}
.tpl-news-detail .comment-header {
  display: flex;
  gap: 15px;
  margin-bottom: 15px;
}
.tpl-news-detail .commenter-avatar {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: #7cb342;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-weight: bold;
  font-size: 20px;
}
.tpl-news-detail .commenter-info h4 {
  font-size: 16px;
  margin-bottom: 5px;
}
.tpl-news-detail .comment-date {
  font-size: 13px;
  color: #999;
}
.tpl-news-detail .comment-text {
  color: #666;
  line-height: 1.8;
  margin-bottom: 10px;
}
.tpl-news-detail .comment-reply {
  color: #7cb342;
  text-decoration: none;
  font-weight: 600;
  font-size: 14px;
}
.tpl-news-detail .sidebar {
  width: 350px;
  flex-shrink: 0;
}
.tpl-news-detail .sidebar-widget {
  background: white;
  border-radius: 15px;
  padding: 30px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
  margin-bottom: 30px;
}
.tpl-news-detail .widget-title {
  font-size: 22px;
  margin-bottom: 25px;
  color: #333;
  border-bottom: 3px solid #7cb342;
  padding-bottom: 12px;
}
.tpl-news-detail .related-post {
  display: flex;
  gap: 15px;
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid #f0f0f0;
}
.tpl-news-detail .related-post:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.tpl-news-detail .related-post-img {
  width: 80px;
  height: 80px;
  border-radius: 10px;
  background: linear-gradient(135deg, #7cb342, #8bc34a);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
}
.tpl-news-detail .related-post-info h4 {
  font-size: 14px;
  line-height: 1.4;
  margin-bottom: 8px;
}
.tpl-news-detail .related-post-info a {
  color: #333;
  text-decoration: none;
  transition: color 0.3s;
}
.tpl-news-detail .related-post-info a:hover {
  color: #7cb342;
}
.tpl-news-detail .post-date {
  font-size: 12px;
  color: #999;
}
.tpl-news-detail .footer {
  background: #2c3e50;
  color: white;
  padding: 60px 20px 30px;
  margin-top: 60px;
}
.tpl-news-detail .footer-bottom {
  border-top: 1px solid #34495e;
  padding: 30px 0;
  text-align: center;
  color: #bdc3c7;
}
@media (max-width: 992px) {
  .tpl-news-detail .container {
    flex-direction: column;
  }
  .tpl-news-detail .sidebar {
    width: 100%;
  }
  .tpl-news-detail .article-title {
    font-size: 32px;
  }
  .tpl-news-detail .article-content {
    padding: 30px 25px;
  }
}
@media (max-width: 768px) {
  .tpl-news-detail .article-header {
    padding: 25px;
  }
  .tpl-news-detail .author-box {
    flex-direction: column;
    text-align: center;
  }
  .tpl-news-detail .featured-image {
    height: 300px;
    font-size: 100px;
  }
}

/* ---- src/app/template-order-tracking/style.scss -> .tpl-order-tracking ---- */
.tpl-order-tracking {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  background-color: #f5f5f5;
  color: #333;
  /* Search Box */
  /* Tracking Result */
  /* Timeline */
  /* Shipper Info */
  /* Order Summary */
}
.tpl-order-tracking * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.tpl-order-tracking .top-bar {
  background-color: #7cb342;
  color: white;
  padding: 10px 0;
  font-size: 14px;
}
.tpl-order-tracking .top-bar-content {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.tpl-order-tracking .contact-info {
  display: flex;
  gap: 20px;
}
.tpl-order-tracking header {
  background-color: white;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  position: sticky;
  top: 0;
  z-index: 100;
}
.tpl-order-tracking .header-content {
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.tpl-order-tracking .logo {
  font-size: 32px;
  font-weight: bold;
  color: #7cb342;
  text-decoration: none;
}
.tpl-order-tracking nav {
  display: flex;
  gap: 30px;
  align-items: center;
}
.tpl-order-tracking nav a {
  text-decoration: none;
  color: #666;
  font-weight: 600;
  transition: color 0.3s;
}
.tpl-order-tracking nav a:hover {
  color: #7cb342;
}
.tpl-order-tracking .cart-btn {
  background-color: #ef5350;
  color: white;
  padding: 10px 20px;
  border-radius: 25px;
  border: none;
  cursor: pointer;
  font-weight: 600;
}
.tpl-order-tracking .page-header {
  background: linear-gradient(135deg, #7cb342 0%, #9ccc65 100%);
  color: white;
  padding: 50px 20px;
  text-align: center;
}
.tpl-order-tracking .page-header h1 {
  font-size: 36px;
  margin-bottom: 10px;
}
.tpl-order-tracking .page-header p {
  font-size: 16px;
  opacity: 0.95;
}
.tpl-order-tracking .container {
  max-width: 1400px;
  margin: -40px auto 40px;
  padding: 0 20px;
}
.tpl-order-tracking .search-card {
  background: white;
  border-radius: 15px;
  padding: 35px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
  margin-bottom: 30px;
}
.tpl-order-tracking .search-title {
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 20px;
  text-align: center;
  color: #333;
}
.tpl-order-tracking .search-form {
  display: flex;
  gap: 15px;
}
.tpl-order-tracking .search-input {
  flex: 1;
  padding: 15px 20px;
  border: 2px solid #e0e0e0;
  border-radius: 10px;
  font-size: 15px;
  transition: border-color 0.3s;
}
.tpl-order-tracking .search-input:focus {
  outline: none;
  border-color: #7cb342;
}
.tpl-order-tracking .search-btn {
  padding: 15px 40px;
  background: linear-gradient(135deg, #7cb342, #9ccc65);
  color: white;
  border: none;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
}
.tpl-order-tracking .search-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(124, 179, 66, 0.3);
}
.tpl-order-tracking .tracking-result {
  display: none;
}
.tpl-order-tracking .tracking-result.active {
  display: block;
  animation: fadeIn 0.5s;
}
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.tpl-order-tracking .status-banner {
  background: white;
  border-radius: 15px;
  padding: 30px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
  margin-bottom: 30px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
}
.tpl-order-tracking .status-left h2 {
  font-size: 24px;
  color: #333;
  margin-bottom: 10px;
}
.tpl-order-tracking .status-left p {
  color: #666;
  font-size: 15px;
}
.tpl-order-tracking .status-right {
  text-align: right;
}
.tpl-order-tracking .status-badge {
  display: inline-block;
  padding: 12px 25px;
  border-radius: 25px;
  font-size: 16px;
  font-weight: 600;
  background: linear-gradient(135deg, #4caf50, #66bb6a);
  color: white;
  box-shadow: 0 4px 15px rgba(76, 175, 80, 0.3);
}
.tpl-order-tracking .estimated-time {
  margin-top: 10px;
  font-size: 14px;
  color: #666;
}
.tpl-order-tracking .timeline-card {
  background: white;
  border-radius: 15px;
  padding: 40px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
  margin-bottom: 30px;
}
.tpl-order-tracking .timeline-header {
  font-size: 22px;
  font-weight: 600;
  margin-bottom: 35px;
  color: #333;
  text-align: center;
}
.tpl-order-tracking .timeline {
  position: relative;
  padding: 20px 0;
}
.tpl-order-tracking .timeline::before {
  content: "";
  position: absolute;
  left: 30px;
  top: 0;
  bottom: 0;
  width: 3px;
  background: linear-gradient(to bottom, #7cb342 0%, #7cb342 75%, #e0e0e0 75%, #e0e0e0 100%);
}
.tpl-order-tracking .timeline-item {
  position: relative;
  padding-left: 80px;
  margin-bottom: 40px;
}
.tpl-order-tracking .timeline-item:last-child {
  margin-bottom: 0;
}
.tpl-order-tracking .timeline-icon {
  position: absolute;
  left: 0;
  top: 0;
  width: 60px;
  height: 60px;
  background: linear-gradient(135deg, #7cb342, #9ccc65);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  color: white;
  box-shadow: 0 4px 15px rgba(124, 179, 66, 0.3);
  border: 4px solid white;
}
.tpl-order-tracking .timeline-item.pending .timeline-icon {
  background: #e0e0e0;
  color: #999;
  box-shadow: none;
}
.tpl-order-tracking .timeline-content {
  background: #fafafa;
  padding: 20px 25px;
  border-radius: 12px;
  border-left: 4px solid #7cb342;
}
.tpl-order-tracking .timeline-item.pending .timeline-content {
  border-left-color: #e0e0e0;
  opacity: 0.6;
}
.tpl-order-tracking .timeline-time {
  font-size: 13px;
  color: #7cb342;
  font-weight: 600;
  margin-bottom: 8px;
}
.tpl-order-tracking .timeline-item.pending .timeline-time {
  color: #999;
}
.tpl-order-tracking .timeline-title {
  font-size: 18px;
  font-weight: 700;
  color: #333;
  margin-bottom: 8px;
}
.tpl-order-tracking .timeline-desc {
  font-size: 14px;
  color: #666;
  line-height: 1.6;
}
.tpl-order-tracking .timeline-location {
  display: inline-block;
  margin-top: 10px;
  padding: 6px 12px;
  background: white;
  border-radius: 6px;
  font-size: 13px;
  color: #7cb342;
  font-weight: 600;
}
.tpl-order-tracking .shipper-card {
  background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
  border-radius: 15px;
  padding: 30px;
  margin-bottom: 30px;
  display: flex;
  align-items: center;
  gap: 25px;
}
.tpl-order-tracking .shipper-avatar {
  width: 80px;
  height: 80px;
  background: linear-gradient(135deg, #1976d2, #2196f3);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 36px;
  color: white;
  flex-shrink: 0;
  box-shadow: 0 4px 15px rgba(25, 118, 210, 0.3);
}
.tpl-order-tracking .shipper-info {
  flex: 1;
}
.tpl-order-tracking .shipper-name {
  font-size: 20px;
  font-weight: 700;
  color: #1976d2;
  margin-bottom: 5px;
}
.tpl-order-tracking .shipper-role {
  font-size: 14px;
  color: #666;
  margin-bottom: 10px;
}
.tpl-order-tracking .shipper-contact {
  display: flex;
  gap: 20px;
  font-size: 14px;
  color: #1976d2;
  font-weight: 600;
}
.tpl-order-tracking .call-btn {
  padding: 12px 25px;
  background: #1976d2;
  color: white;
  border: none;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
  display: flex;
  align-items: center;
  gap: 8px;
}
.tpl-order-tracking .call-btn:hover {
  background: #1565c0;
  transform: translateY(-2px);
}
.tpl-order-tracking .summary-card {
  background: white;
  border-radius: 15px;
  padding: 30px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}
.tpl-order-tracking .summary-title {
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 20px;
  color: #333;
}
.tpl-order-tracking .summary-item {
  display: flex;
  justify-content: space-between;
  padding: 15px;
  background: #fafafa;
  border-radius: 8px;
  margin-bottom: 10px;
}
.tpl-order-tracking .summary-label {
  font-size: 15px;
  color: #666;
}
.tpl-order-tracking .summary-value {
  font-size: 15px;
  font-weight: 600;
  color: #333;
}
@media (max-width: 768px) {
  .tpl-order-tracking .search-form {
    flex-direction: column;
  }
  .tpl-order-tracking .status-banner {
    flex-direction: column;
    text-align: center;
  }
  .tpl-order-tracking .status-right {
    text-align: center;
  }
  .tpl-order-tracking .shipper-card {
    flex-direction: column;
    text-align: center;
  }
  .tpl-order-tracking .shipper-contact {
    flex-direction: column;
    gap: 10px;
  }
  .tpl-order-tracking .timeline::before {
    left: 20px;
  }
  .tpl-order-tracking .timeline-item {
    padding-left: 70px;
  }
  .tpl-order-tracking .timeline-icon {
    width: 50px;
    height: 50px;
    font-size: 22px;
  }
}

/* ---- src/app/template-product-detail/detail.scss -> .tpl-product-detail ---- */
.tpl-product-detail {
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  color: #333;
  line-height: 1.6;
  background: #f8f9fa;
  /* Header */
  /* Breadcrumb */
  /* Main Container */
  /* Product Detail */
  /* Product Images */
  /* Product Info */
  /* Quantity Selector */
  /* Action Buttons */
  /* Features */
  /* Tabs */
  /* Reviews */
  /* Related Products */
  /* Footer */
  /* Responsive */
}
.tpl-product-detail * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.tpl-product-detail .header {
  background-color: #fff;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  position: sticky;
  top: 0;
  z-index: 1000;
}
.tpl-product-detail .top-bar {
  background: #7cb342;
  color: white;
  padding: 8px 0;
  font-size: 14px;
}
.tpl-product-detail .top-bar-content {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.tpl-product-detail .contact-info {
  display: flex;
  gap: 20px;
}
.tpl-product-detail .nav-container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 15px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.tpl-product-detail .logo {
  font-size: 32px;
  font-weight: bold;
  color: #7cb342;
  text-decoration: none;
}
.tpl-product-detail .nav-menu {
  display: flex;
  gap: 35px;
  list-style: none;
  align-items: center;
}
.tpl-product-detail .nav-menu a {
  text-decoration: none;
  color: #666;
  font-weight: 600;
  transition: color 0.3s;
  font-size: 15px;
}
.tpl-product-detail .nav-menu a:hover {
  color: #7cb342;
}
.tpl-product-detail .cart-icon {
  background: #7cb342;
  color: white;
  padding: 10px 20px;
  border-radius: 25px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.3s;
}
.tpl-product-detail .cart-icon:hover {
  background: #689f38;
}
.tpl-product-detail .breadcrumb-section {
  background: white;
  padding: 20px 0;
  border-bottom: 1px solid #e0e0e0;
}
.tpl-product-detail .breadcrumb {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  font-size: 14px;
  color: #666;
}
.tpl-product-detail .breadcrumb a {
  color: #666;
  text-decoration: none;
  transition: color 0.3s;
}
.tpl-product-detail .breadcrumb a:hover {
  color: #7cb342;
}
.tpl-product-detail .container {
  max-width: 1400px;
  margin: 40px auto;
  padding: 0 20px;
}
.tpl-product-detail .product-detail {
  background: white;
  border-radius: 20px;
  padding: 50px;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);
  margin-bottom: 40px;
}
.tpl-product-detail .product-main {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  margin-bottom: 60px;
}
.tpl-product-detail .product-images {
  position: sticky;
  top: 100px;
  height: fit-content;
}
.tpl-product-detail .main-image {
  width: 100%;
  height: 500px;
  border-radius: 15px;
  background: linear-gradient(135deg, #7cb342, #8bc34a);
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 150px;
  overflow: hidden;
  position: relative;
}
.tpl-product-detail .discount-badge {
  position: absolute;
  top: 20px;
  left: 20px;
  background: #e53935;
  color: white;
  padding: 10px 20px;
  border-radius: 30px;
  font-weight: bold;
  font-size: 18px;
}
.tpl-product-detail .thumbnail-images {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 15px;
}
.tpl-product-detail .thumbnail {
  width: 100%;
  height: 120px;
  border-radius: 10px;
  background: linear-gradient(135deg, #8bc34a, #9ccc65);
  cursor: pointer;
  border: 3px solid transparent;
  transition: all 0.3s;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 50px;
}
.tpl-product-detail .thumbnail:hover, .tpl-product-detail .thumbnail.active {
  border-color: #7cb342;
}
.tpl-product-detail .product-category {
  color: #7cb342;
  font-weight: 600;
  font-size: 14px;
  text-transform: uppercase;
  margin-bottom: 15px;
}
.tpl-product-detail .product-title {
  font-size: 36px;
  margin-bottom: 20px;
  line-height: 1.3;
}
.tpl-product-detail .product-rating {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 25px;
  padding-bottom: 25px;
  border-bottom: 2px solid #f0f0f0;
}
.tpl-product-detail .stars {
  color: #ffc107;
  font-size: 20px;
}
.tpl-product-detail .rating-text {
  color: #666;
  font-size: 15px;
}
.tpl-product-detail .rating-text a {
  color: #7cb342;
  text-decoration: none;
  font-weight: 600;
}
.tpl-product-detail .product-price {
  margin-bottom: 30px;
}
.tpl-product-detail .current-price {
  font-size: 42px;
  font-weight: bold;
  color: #e53935;
  margin-right: 20px;
}
.tpl-product-detail .old-price {
  font-size: 28px;
  color: #999;
  text-decoration: line-through;
}
.tpl-product-detail .save-amount {
  display: inline-block;
  background: #fff3cd;
  color: #856404;
  padding: 8px 15px;
  border-radius: 20px;
  font-size: 14px;
  font-weight: 600;
  margin-left: 10px;
}
.tpl-product-detail .product-description {
  color: #666;
  font-size: 16px;
  line-height: 1.8;
  margin-bottom: 30px;
}
.tpl-product-detail .product-meta {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 15px;
  margin-bottom: 30px;
  padding: 25px;
  background: #f8f9fa;
  border-radius: 12px;
}
.tpl-product-detail .meta-item {
  display: flex;
  align-items: center;
  gap: 10px;
}
.tpl-product-detail .meta-label {
  font-weight: 600;
  color: #333;
}
.tpl-product-detail .meta-value {
  color: #666;
}
.tpl-product-detail .stock-status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 15px;
  background: #d4edda;
  color: #155724;
  border-radius: 20px;
  font-weight: 600;
  font-size: 14px;
}
.tpl-product-detail .quantity-section {
  margin-bottom: 30px;
}
.tpl-product-detail .quantity-label {
  font-weight: 600;
  margin-bottom: 15px;
  font-size: 16px;
}
.tpl-product-detail .quantity-selector {
  display: flex;
  align-items: center;
  gap: 15px;
}
.tpl-product-detail .quantity-input {
  display: flex;
  align-items: center;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  overflow: hidden;
}
.tpl-product-detail .qty-btn {
  width: 45px;
  height: 50px;
  border: none;
  background: #f8f9fa;
  cursor: pointer;
  font-size: 20px;
  font-weight: bold;
  transition: all 0.3s;
}
.tpl-product-detail .qty-btn:hover {
  background: #7cb342;
  color: white;
}
.tpl-product-detail .qty-input {
  width: 80px;
  height: 50px;
  border: none;
  text-align: center;
  font-size: 18px;
  font-weight: 600;
}
.tpl-product-detail .action-buttons {
  display: flex;
  gap: 15px;
  margin-bottom: 30px;
}
.tpl-product-detail .btn-add-cart {
  flex: 1;
  padding: 18px;
  background: #7cb342;
  color: white;
  border: none;
  border-radius: 10px;
  font-size: 18px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.tpl-product-detail .btn-add-cart:hover {
  background: #689f38;
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(124, 179, 66, 0.3);
}
.tpl-product-detail .btn-buy-now {
  flex: 1;
  padding: 18px;
  background: #ff6b6b;
  color: white;
  border: none;
  border-radius: 10px;
  font-size: 18px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
}
.tpl-product-detail .btn-buy-now:hover {
  background: #ff5252;
  transform: translateY(-3px);
  box-shadow: 0 10px 25px rgba(255, 107, 107, 0.3);
}
.tpl-product-detail .btn-wishlist {
  width: 60px;
  padding: 18px;
  background: white;
  border: 2px solid #e0e0e0;
  border-radius: 10px;
  font-size: 24px;
  cursor: pointer;
  transition: all 0.3s;
}
.tpl-product-detail .btn-wishlist:hover {
  border-color: #ff6b6b;
  color: #ff6b6b;
}
.tpl-product-detail .product-features {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  padding: 25px;
  background: #f8f9fa;
  border-radius: 12px;
}
.tpl-product-detail .feature-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 15px;
  background: white;
  border-radius: 8px;
}
.tpl-product-detail .feature-icon {
  font-size: 30px;
}
.tpl-product-detail .feature-text {
  flex: 1;
}
.tpl-product-detail .feature-title {
  font-weight: 600;
  font-size: 14px;
  margin-bottom: 3px;
}
.tpl-product-detail .feature-desc {
  font-size: 12px;
  color: #666;
}
.tpl-product-detail .product-tabs {
  background: white;
  border-radius: 20px;
  padding: 40px;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);
  margin-bottom: 40px;
}
.tpl-product-detail .tab-buttons {
  display: flex;
  gap: 10px;
  border-bottom: 2px solid #e0e0e0;
  margin-bottom: 30px;
}
.tpl-product-detail .tab-btn {
  padding: 15px 30px;
  background: none;
  border: none;
  font-size: 16px;
  font-weight: 600;
  color: #666;
  cursor: pointer;
  position: relative;
  transition: color 0.3s;
}
.tpl-product-detail .tab-btn.active {
  color: #7cb342;
}
.tpl-product-detail .tab-btn.active::after {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 0;
  right: 0;
  height: 3px;
  background: #7cb342;
}
.tpl-product-detail .tab-content {
  display: none;
}
.tpl-product-detail .tab-content.active {
  display: block;
}
.tpl-product-detail .tab-content h3 {
  font-size: 24px;
  margin-bottom: 20px;
  color: #333;
}
.tpl-product-detail .tab-content p {
  color: #666;
  line-height: 1.8;
  margin-bottom: 15px;
}
.tpl-product-detail .tab-content ul {
  margin-left: 20px;
  color: #666;
  line-height: 2;
}
.tpl-product-detail .nutrition-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 20px;
}
.tpl-product-detail .nutrition-table th,
.tpl-product-detail .nutrition-table td {
  padding: 15px;
  text-align: left;
  border-bottom: 1px solid #e0e0e0;
}
.tpl-product-detail .nutrition-table th {
  background: #f8f9fa;
  font-weight: 600;
  color: #333;
}
.tpl-product-detail .nutrition-table tr:hover {
  background: #f8f9fa;
}
.tpl-product-detail .reviews-section {
  margin-top: 30px;
}
.tpl-product-detail .review-summary {
  display: flex;
  gap: 40px;
  padding: 30px;
  background: #f8f9fa;
  border-radius: 12px;
  margin-bottom: 30px;
}
.tpl-product-detail .rating-overview {
  text-align: center;
}
.tpl-product-detail .rating-number {
  font-size: 48px;
  font-weight: bold;
  color: #333;
  margin-bottom: 10px;
}
.tpl-product-detail .rating-stars-large {
  font-size: 24px;
  color: #ffc107;
  margin-bottom: 10px;
}
.tpl-product-detail .total-reviews {
  color: #666;
  font-size: 14px;
}
.tpl-product-detail .rating-bars {
  flex: 1;
}
.tpl-product-detail .rating-bar {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 12px;
}
.tpl-product-detail .bar-label {
  font-size: 14px;
  color: #666;
  width: 50px;
}
.tpl-product-detail .bar {
  flex: 1;
  height: 10px;
  background: #e0e0e0;
  border-radius: 5px;
  overflow: hidden;
}
.tpl-product-detail .bar-fill {
  height: 100%;
  background: #ffc107;
}
.tpl-product-detail .bar-count {
  font-size: 14px;
  color: #666;
  width: 50px;
  text-align: right;
}
.tpl-product-detail .review-item {
  padding: 25px;
  border: 1px solid #e0e0e0;
  border-radius: 12px;
  margin-bottom: 20px;
}
.tpl-product-detail .review-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 15px;
}
.tpl-product-detail .reviewer-info {
  display: flex;
  align-items: center;
  gap: 15px;
}
.tpl-product-detail .reviewer-avatar {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: #7cb342;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-weight: bold;
  font-size: 20px;
}
.tpl-product-detail .reviewer-name {
  font-weight: 600;
  margin-bottom: 5px;
}
.tpl-product-detail .review-date {
  font-size: 13px;
  color: #999;
}
.tpl-product-detail .review-rating {
  color: #ffc107;
}
.tpl-product-detail .review-text {
  color: #666;
  line-height: 1.8;
}
.tpl-product-detail .related-products {
  background: white;
  border-radius: 20px;
  padding: 40px;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);
}
.tpl-product-detail .section-title {
  font-size: 28px;
  margin-bottom: 30px;
  text-align: center;
}
.tpl-product-detail .products-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 25px;
}
.tpl-product-detail .product-card {
  background: #f8f9fa;
  border-radius: 12px;
  overflow: hidden;
  transition: all 0.3s;
  cursor: pointer;
}
.tpl-product-detail .product-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
}
.tpl-product-detail .product-img {
  width: 100%;
  height: 200px;
  background: linear-gradient(135deg, #8bc34a, #9ccc65);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 60px;
}
.tpl-product-detail .product-card-info {
  padding: 20px;
}
.tpl-product-detail .product-card-title {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 10px;
  height: 40px;
  overflow: hidden;
}
.tpl-product-detail .product-card-price {
  font-size: 20px;
  font-weight: bold;
  color: #e53935;
}
.tpl-product-detail .footer {
  background: #2c3e50;
  color: white;
  padding: 60px 20px 30px;
  margin-top: 60px;
}
.tpl-product-detail .footer-container {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: 50px;
  margin-bottom: 40px;
}
.tpl-product-detail .footer-about h3 {
  font-size: 32px;
  color: #7cb342;
  margin-bottom: 20px;
}
.tpl-product-detail .footer-about p {
  line-height: 1.8;
  color: #bdc3c7;
  margin-bottom: 25px;
}
.tpl-product-detail .footer-bottom {
  border-top: 1px solid #34495e;
  padding-top: 30px;
  text-align: center;
  color: #bdc3c7;
}
@media (max-width: 1200px) {
  .tpl-product-detail .products-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 992px) {
  .tpl-product-detail .product-main {
    grid-template-columns: 1fr;
  }
  .tpl-product-detail .product-images {
    position: static;
  }
  .tpl-product-detail .product-features {
    grid-template-columns: 1fr;
  }
  .tpl-product-detail .products-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 768px) {
  .tpl-product-detail .product-detail {
    padding: 30px 20px;
  }
  .tpl-product-detail .action-buttons {
    flex-direction: column;
  }
  .tpl-product-detail .product-tabs {
    padding: 20px;
  }
}
@media (max-width: 480px) {
  .tpl-product-detail .products-grid {
    grid-template-columns: 1fr;
  }
  .tpl-product-detail .product-meta {
    grid-template-columns: 1fr;
  }
}

/* ---- src/app/template-products/style.scss -> .tpl-products ---- */
.tpl-products {
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  background-color: #f8f9fa;
  color: #333;
  /* Header */
  /* Hero Banner */
  /* Main Container */
  /* Sidebar Filter */
  /* Main Content */
  /* Product Grid */
  /* Pagination */
  /* Responsive */
}
.tpl-products * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.tpl-products .header {
  background-color: #fff;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  padding: 15px 0;
  position: sticky;
  top: 0;
  z-index: 100;
}
.tpl-products .nav-container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.tpl-products .logo {
  font-size: 28px;
  font-weight: bold;
  color: #7cb342;
  text-decoration: none;
}
.tpl-products .nav-menu {
  display: flex;
  gap: 30px;
  list-style: none;
  align-items: center;
}
.tpl-products .nav-menu a {
  text-decoration: none;
  color: #666;
  font-weight: 500;
  transition: color 0.3s;
}
.tpl-products .nav-menu a:hover {
  color: #7cb342;
}
.tpl-products .cart {
  color: #666;
  font-weight: 600;
}
.tpl-products .hero-banner {
  background: linear-gradient(135deg, #7cb342 0%, #689f38 100%);
  padding: 80px 20px;
  text-align: center;
  color: white;
  position: relative;
  overflow: hidden;
}
.tpl-products .hero-banner::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="20" cy="20" r="2" fill="white" opacity="0.1"/><circle cx="80" cy="60" r="3" fill="white" opacity="0.1"/><circle cx="50" cy="80" r="2" fill="white" opacity="0.1"/></svg>');
  opacity: 0.3;
}
.tpl-products .hero-content {
  position: relative;
  z-index: 1;
}
.tpl-products .hero-banner h1 {
  font-size: 48px;
  margin-bottom: 10px;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
}
.tpl-products .breadcrumb {
  font-size: 14px;
  opacity: 0.95;
  margin-top: 15px;
}
.tpl-products .container {
  max-width: 1400px;
  margin: 40px auto;
  padding: 0 20px;
  display: flex;
  gap: 30px;
}
.tpl-products .sidebar {
  width: 280px;
  flex-shrink: 0;
}
.tpl-products .filter-section {
  background: white;
  border-radius: 12px;
  padding: 25px;
  margin-bottom: 20px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
}
.tpl-products .filter-section h3 {
  font-size: 18px;
  margin-bottom: 20px;
  color: #333;
  border-bottom: 3px solid #7cb342;
  padding-bottom: 10px;
  font-weight: 600;
}
.tpl-products .filter-option {
  margin-bottom: 12px;
  display: flex;
  align-items: center;
}
.tpl-products .filter-option input[type=checkbox] {
  width: 18px;
  height: 18px;
  margin-right: 10px;
  cursor: pointer;
  accent-color: #7cb342;
}
.tpl-products .filter-option label {
  cursor: pointer;
  font-size: 14px;
  color: #555;
}
.tpl-products .filter-option label:hover {
  color: #7cb342;
}
.tpl-products .price-range {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: 15px;
}
.tpl-products .price-range input {
  width: 100%;
  padding: 8px;
  border: 1px solid #ddd;
  border-radius: 6px;
  font-size: 14px;
}
.tpl-products .filter-buttons {
  display: flex;
  gap: 10px;
  margin-top: 20px;
}
.tpl-products .btn-filter {
  flex: 1;
  padding: 10px;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 600;
  font-size: 14px;
  transition: all 0.3s;
}
.tpl-products .btn-apply {
  background: #7cb342;
  color: white;
}
.tpl-products .btn-apply:hover {
  background: #689f38;
}
.tpl-products .btn-reset {
  background: #f5f5f5;
  color: #666;
}
.tpl-products .btn-reset:hover {
  background: #e0e0e0;
}
.tpl-products .main-content {
  flex: 1;
}
.tpl-products .toolbar {
  background: white;
  padding: 20px;
  border-radius: 12px;
  margin-bottom: 30px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
}
.tpl-products .result-count {
  font-size: 15px;
  color: #666;
}
.tpl-products .result-count strong {
  color: #7cb342;
}
.tpl-products .sort-options {
  display: flex;
  gap: 15px;
  align-items: center;
}
.tpl-products .sort-options label {
  font-size: 14px;
  color: #666;
}
.tpl-products .sort-options select {
  padding: 8px 15px;
  border: 1px solid #ddd;
  border-radius: 6px;
  font-size: 14px;
  cursor: pointer;
  background: white;
}
.tpl-products .product-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 25px;
}
.tpl-products .product-card {
  background: white;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
  transition: all 0.3s;
  cursor: pointer;
  position: relative;
}
.tpl-products .product-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}
.tpl-products .discount-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  background: #e53935;
  color: white;
  padding: 5px 10px;
  border-radius: 6px;
  font-weight: bold;
  font-size: 13px;
  z-index: 10;
}
.tpl-products .product-image {
  width: 100%;
  height: 280px;
  object-fit: cover;
  background: #f5f5f5;
}
.tpl-products .product-info {
  padding: 20px;
}
.tpl-products .product-title {
  font-size: 16px;
  font-weight: 600;
  color: #333;
  margin-bottom: 10px;
  height: 40px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.tpl-products .product-category {
  font-size: 13px;
  color: #999;
  margin-bottom: 12px;
}
.tpl-products .product-price {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 15px;
}
.tpl-products .current-price {
  font-size: 20px;
  font-weight: bold;
  color: #e53935;
}
.tpl-products .old-price {
  font-size: 15px;
  color: #999;
  text-decoration: line-through;
}
.tpl-products .product-actions {
  display: flex;
  gap: 10px;
}
.tpl-products .btn-cart {
  flex: 1;
  padding: 10px;
  background: #7cb342;
  color: white;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 600;
  font-size: 14px;
  transition: all 0.3s;
}
.tpl-products .btn-cart:hover {
  background: #689f38;
}
.tpl-products .btn-wishlist {
  width: 40px;
  padding: 10px;
  background: #f5f5f5;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-size: 16px;
  transition: all 0.3s;
}
.tpl-products .btn-wishlist:hover {
  background: #7cb342;
  color: white;
}
.tpl-products .pagination {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 40px;
}
.tpl-products .page-btn {
  padding: 10px 15px;
  border: 1px solid #ddd;
  background: white;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.3s;
  font-weight: 500;
}
.tpl-products .page-btn:hover {
  border-color: #7cb342;
  color: #7cb342;
}
.tpl-products .page-btn.active {
  background: #7cb342;
  color: white;
  border-color: #7cb342;
}
@media (max-width: 1200px) {
  .tpl-products .product-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 768px) {
  .tpl-products .container {
    flex-direction: column;
  }
  .tpl-products .sidebar {
    width: 100%;
  }
  .tpl-products .product-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .tpl-products .hero-banner h1 {
    font-size: 32px;
  }
}
@media (max-width: 480px) {
  .tpl-products .product-grid {
    grid-template-columns: 1fr;
  }
}

/* ---- src/app/template-thank-page/style.scss -> .tpl-thank-page ---- */
.tpl-thank-page {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  background: linear-gradient(135deg, #f1f8e9 0%, #dcedc8 100%);
  color: #333;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  /* Success Card */
  /* Order Info */
  /* Products Summary */
  /* Next Steps */
  /* Buttons */
  /* Contact Info */
  /* Confetti Animation */
}
.tpl-thank-page * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.tpl-thank-page .top-bar {
  background-color: #7cb342;
  color: white;
  padding: 10px 0;
  font-size: 14px;
}
.tpl-thank-page .top-bar-content {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.tpl-thank-page .contact-info {
  display: flex;
  gap: 20px;
}
.tpl-thank-page header {
  background-color: white;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
.tpl-thank-page .header-content {
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.tpl-thank-page .logo {
  font-size: 32px;
  font-weight: bold;
  color: #7cb342;
  text-decoration: none;
}
.tpl-thank-page nav {
  display: flex;
  gap: 30px;
  align-items: center;
}
.tpl-thank-page nav a {
  text-decoration: none;
  color: #666;
  font-weight: 600;
  transition: color 0.3s;
}
.tpl-thank-page nav a:hover {
  color: #7cb342;
}
.tpl-thank-page .cart-btn {
  background-color: #ef5350;
  color: white;
  padding: 10px 20px;
  border-radius: 25px;
  border: none;
  cursor: pointer;
  font-weight: 600;
}
.tpl-thank-page .container {
  max-width: 800px;
  margin: 60px auto;
  padding: 0 20px;
  flex: 1;
}
.tpl-thank-page .success-card {
  background: white;
  border-radius: 20px;
  padding: 50px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
  text-align: center;
  animation: slideUp 0.6s ease-out;
}
@keyframes slideUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.tpl-thank-page .success-icon {
  width: 120px;
  height: 120px;
  background: linear-gradient(135deg, #7cb342, #9ccc65);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 60px;
  margin: 0 auto 30px;
  box-shadow: 0 8px 30px rgba(124, 179, 66, 0.3);
  animation: scaleIn 0.5s ease-out 0.3s both;
}
@keyframes scaleIn {
  from {
    transform: scale(0);
  }
  to {
    transform: scale(1);
  }
}
.tpl-thank-page .success-title {
  font-size: 32px;
  font-weight: 700;
  color: #7cb342;
  margin-bottom: 15px;
}
.tpl-thank-page .success-subtitle {
  font-size: 18px;
  color: #666;
  margin-bottom: 30px;
  line-height: 1.6;
}
.tpl-thank-page .order-number {
  display: inline-block;
  padding: 15px 30px;
  background: linear-gradient(135deg, #f1f8e9, #dcedc8);
  border-radius: 12px;
  margin-bottom: 35px;
}
.tpl-thank-page .order-number-label {
  font-size: 13px;
  color: #999;
  margin-bottom: 5px;
}
.tpl-thank-page .order-number-value {
  font-size: 24px;
  font-weight: 700;
  color: #7cb342;
}
.tpl-thank-page .order-info {
  background: #fafafa;
  border-radius: 15px;
  padding: 30px;
  margin-bottom: 30px;
  text-align: left;
}
.tpl-thank-page .info-row {
  display: flex;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid #e0e0e0;
}
.tpl-thank-page .info-row:last-child {
  border-bottom: none;
}
.tpl-thank-page .info-label {
  font-size: 15px;
  color: #666;
}
.tpl-thank-page .info-value {
  font-size: 15px;
  font-weight: 600;
  color: #333;
  text-align: right;
}
.tpl-thank-page .info-value.highlight {
  color: #7cb342;
  font-size: 20px;
}
.tpl-thank-page .products-summary {
  background: #fafafa;
  border-radius: 15px;
  padding: 25px;
  margin-bottom: 30px;
  text-align: left;
}
.tpl-thank-page .products-title {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 15px;
  color: #333;
}
.tpl-thank-page .product-item {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 12px 0;
  border-bottom: 1px solid #e0e0e0;
}
.tpl-thank-page .product-item:last-child {
  border-bottom: none;
}
.tpl-thank-page .product-icon {
  width: 50px;
  height: 50px;
  background: linear-gradient(135deg, #f5f5f5, #e0e0e0);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  flex-shrink: 0;
}
.tpl-thank-page .product-details {
  flex: 1;
}
.tpl-thank-page .product-name {
  font-size: 14px;
  font-weight: 600;
  color: #333;
  margin-bottom: 3px;
}
.tpl-thank-page .product-qty {
  font-size: 13px;
  color: #999;
}
.tpl-thank-page .product-price {
  font-size: 15px;
  font-weight: 600;
  color: #7cb342;
}
.tpl-thank-page .next-steps {
  background: linear-gradient(135deg, #e3f2fd, #bbdefb);
  border-radius: 15px;
  padding: 25px;
  margin-bottom: 30px;
}
.tpl-thank-page .next-steps-title {
  font-size: 18px;
  font-weight: 600;
  color: #1976d2;
  margin-bottom: 15px;
  text-align: center;
}
.tpl-thank-page .steps-list {
  list-style: none;
  text-align: left;
}
.tpl-thank-page .step-item {
  display: flex;
  gap: 15px;
  margin-bottom: 15px;
  font-size: 14px;
  color: #666;
  line-height: 1.6;
}
.tpl-thank-page .step-number {
  width: 30px;
  height: 30px;
  background: #1976d2;
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  flex-shrink: 0;
}
.tpl-thank-page .button-group {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 15px;
  margin-bottom: 30px;
}
.tpl-thank-page .btn {
  padding: 16px 20px;
  border: none;
  border-radius: 12px;
  font-weight: 600;
  font-size: 15px;
  cursor: pointer;
  transition: all 0.3s;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
}
.tpl-thank-page .btn-primary {
  background: linear-gradient(135deg, #7cb342, #9ccc65);
  color: white;
  box-shadow: 0 4px 15px rgba(124, 179, 66, 0.3);
}
.tpl-thank-page .btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 25px rgba(124, 179, 66, 0.4);
}
.tpl-thank-page .btn-secondary {
  background: white;
  color: #7cb342;
  border: 2px solid #7cb342;
}
.tpl-thank-page .btn-secondary:hover {
  background: #7cb342;
  color: white;
}
.tpl-thank-page .btn-outline {
  background: transparent;
  color: #1976d2;
  border: 2px solid #1976d2;
}
.tpl-thank-page .btn-outline:hover {
  background: #1976d2;
  color: white;
}
.tpl-thank-page .btn-full {
  grid-column: 1/-1;
  background: #f5f5f5;
  color: #666;
  border: none;
}
.tpl-thank-page .btn-full:hover {
  background: #e0e0e0;
}
.tpl-thank-page .contact-box {
  background: white;
  border: 2px solid #e0e0e0;
  border-radius: 12px;
  padding: 20px;
  text-align: center;
}
.tpl-thank-page .contact-title {
  font-size: 16px;
  font-weight: 600;
  color: #333;
  margin-bottom: 15px;
}
.tpl-thank-page .contact-methods {
  display: flex;
  justify-content: center;
  gap: 25px;
  flex-wrap: wrap;
}
.tpl-thank-page .contact-method {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: #666;
}
.tpl-thank-page .contact-method strong {
  color: #7cb342;
}
.tpl-thank-page .confetti {
  position: fixed;
  width: 10px;
  height: 10px;
  background: #7cb342;
  position: absolute;
  animation: confetti-fall 3s linear infinite;
}
@keyframes confetti-fall {
  to {
    transform: translateY(100vh) rotate(360deg);
    opacity: 0;
  }
}
@media (max-width: 768px) {
  .tpl-thank-page .success-card {
    padding: 30px 20px;
  }
  .tpl-thank-page .success-title {
    font-size: 26px;
  }
  .tpl-thank-page .success-subtitle {
    font-size: 16px;
  }
  .tpl-thank-page .button-group {
    grid-template-columns: 1fr;
  }
  .tpl-thank-page .contact-methods {
    flex-direction: column;
    gap: 12px;
  }
}

/* ---- dang-nhap / dang-ky (customer auth) ---- */
.pg-dang-nhap .breadcrumb-section,
.pg-dang-ky .breadcrumb-section {
  background: white;
  padding: 20px 0;
  border-bottom: 1px solid #e0e0e0;
}
.pg-dang-nhap .breadcrumb,
.pg-dang-ky .breadcrumb {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  font-size: 14px;
  color: #666;
}
.pg-dang-nhap .breadcrumb a,
.pg-dang-ky .breadcrumb a {
  color: #666;
  text-decoration: none;
  transition: color 0.3s;
}
.pg-dang-nhap .breadcrumb a:hover,
.pg-dang-ky .breadcrumb a:hover {
  color: #7cb342;
}

/* ---- src/app/template-contact/style.scss -> .pg-contact (used by src/components/contact/contact.component.js) ---- */
.pg-contact {
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  background-color: #f5f5f5;
  color: #333;
  /* .container's margin: 40px auto is its only child, so without this the
     margin collapses through .pg-contact and the gray background doesn't
     reach the top/bottom 40px - flow-root gives it its own block formatting
     context so the child's margin stays contained instead. */
  display: flow-root;
}
.pg-contact * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.pg-contact .breadcrumb-section {
  background: white;
  padding: 20px 0;
  border-bottom: 1px solid #e0e0e0;
}
.pg-contact .breadcrumb {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  font-size: 14px;
  color: #666;
}
.pg-contact .breadcrumb a {
  color: #666;
  text-decoration: none;
  transition: color 0.3s;
}
.pg-contact .breadcrumb a:hover {
  color: #7cb342;
}
.pg-contact .container {
  max-width: 1400px;
  margin: 40px auto;
  padding: 0 20px;
}
.pg-contact .page-title {
  text-align: center;
  margin-bottom: 50px;
}
.pg-contact .page-title h1 {
  font-size: 36px;
  color: #333;
  margin-bottom: 10px;
}
.pg-contact .page-title p {
  color: #666;
  font-size: 16px;
}
.pg-contact .contact-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
  margin-bottom: 40px;
}
.pg-contact .contact-info-section {
  background: white;
  padding: 30px;
  border-radius: 10px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
.pg-contact .contact-info-section h2 {
  color: #7cb342;
  margin-bottom: 25px;
  font-size: 24px;
  border-bottom: 3px solid #7cb342;
  padding-bottom: 10px;
}
.pg-contact .info-item {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 15px;
  margin-bottom: 15px;
  background: #f9f9f9;
  border-radius: 8px;
  transition: all 0.3s;
}
.pg-contact .info-item:hover {
  background: #e8f5e9;
  transform: translateX(5px);
}
.pg-contact .info-icon {
  width: 40px;
  height: 40px;
  background: #7cb342;
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  flex-shrink: 0;
}
.pg-contact .info-content h3 {
  font-size: 14px;
  color: #999;
  margin-bottom: 5px;
}
.pg-contact .info-content p {
  font-size: 16px;
  color: #333;
  font-weight: 600;
}
.pg-contact .info-content a {
  color: #333;
  text-decoration: none;
  transition: color 0.3s;
}
.pg-contact .info-content a:hover {
  color: #7cb342;
}
.pg-contact .form-section {
  background: white;
  padding: 30px;
  border-radius: 10px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
.pg-contact .form-section h2 {
  color: #7cb342;
  margin-bottom: 25px;
  font-size: 24px;
  border-bottom: 3px solid #7cb342;
  padding-bottom: 10px;
}
.pg-contact .form-tabs {
  display: flex;
  gap: 10px;
  margin-bottom: 25px;
}
.pg-contact .tab-btn {
  flex: 1;
  padding: 12px 20px;
  background: #f5f5f5;
  border: none;
  border-radius: 5px;
  cursor: pointer;
  font-size: 16px;
  font-weight: 600;
  transition: all 0.3s;
}
.pg-contact .tab-btn.active {
  background: #7cb342;
  color: white;
}
.pg-contact .form-group {
  margin-bottom: 20px;
}
.pg-contact .form-group label {
  display: block;
  margin-bottom: 8px;
  color: #555;
  font-weight: 600;
}
.pg-contact .form-group input,
.pg-contact .form-group textarea,
.pg-contact .form-group select {
  width: 100%;
  padding: 12px;
  border: 1px solid #ddd;
  border-radius: 5px;
  font-size: 14px;
  transition: border-color 0.3s;
}
.pg-contact .form-group input:focus,
.pg-contact .form-group textarea:focus,
.pg-contact .form-group select:focus {
  outline: none;
  border-color: #7cb342;
}
.pg-contact .form-group textarea {
  resize: vertical;
  min-height: 120px;
}
.pg-contact .submit-btn {
  width: 100%;
  padding: 15px;
  background: #7cb342;
  color: white;
  border: none;
  border-radius: 5px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.3s;
}
.pg-contact .submit-btn:hover {
  background: #689f38;
}
.pg-contact .map-section {
  background: white;
  padding: 30px;
  border-radius: 10px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  margin-bottom: 40px;
}
.pg-contact .map-section h2 {
  color: #7cb342;
  margin-bottom: 20px;
  font-size: 24px;
  border-bottom: 3px solid #7cb342;
  padding-bottom: 10px;
}
.pg-contact .map-container {
  width: 100%;
  height: 400px;
  border-radius: 10px;
  overflow: hidden;
  background: #e0e0e0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #999;
}
@media (max-width: 768px) {
  .pg-contact .contact-wrapper {
    grid-template-columns: 1fr;
  }
}

.pg-dang-nhap,
.pg-dang-ky {
  background: #f8f9fa;
  min-height: 60vh;
  /* .auth-container's margin: 50px auto là con cuối cùng nên margin dưới collapse xuyên qua
     wrapper, khiến background xám không chạm tới footer - xem .pg-contact bên dưới. */
  display: flow-root;
}
.pg-dang-nhap .auth-container,
.pg-dang-ky .auth-container {
  max-width: 1400px;
  margin: 50px auto;
  padding: 0 20px;
  display: flex;
  justify-content: center;
}
.pg-dang-nhap .auth-card,
.pg-dang-ky .auth-card {
  background: white;
  border-radius: 15px;
  box-shadow: 0 5px 15px rgba(0,0,0,0.08);
  padding: 40px;
  width: 100%;
  max-width: 480px;
}
.pg-dang-nhap .auth-title,
.pg-dang-ky .auth-title {
  font-size: 28px;
  margin-bottom: 8px;
  color: #333;
  text-align: center;
}
.pg-dang-nhap .auth-subtitle,
.pg-dang-ky .auth-subtitle {
  font-size: 14px;
  color: #666;
  text-align: center;
  margin-bottom: 30px;
}
.pg-dang-nhap .form-group,
.pg-dang-ky .form-group {
  margin-bottom: 18px;
}
.pg-dang-ky .form-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 15px;
}
.pg-dang-nhap .form-group label,
.pg-dang-ky .form-group label {
  display: block;
  margin-bottom: 8px;
  font-weight: 600;
  color: #333;
  font-size: 14px;
}
.pg-dang-nhap .form-group input,
.pg-dang-ky .form-group input {
  width: 100%;
  padding: 12px 15px;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  font-size: 14px;
  font-family: inherit;
  transition: border 0.3s;
}
.pg-dang-nhap .form-group input:focus,
.pg-dang-ky .form-group input:focus {
  outline: none;
  border-color: #7cb342;
}
.pg-dang-nhap .btn-auth-submit,
.pg-dang-ky .btn-auth-submit {
  width: 100%;
  padding: 16px;
  background: #7cb342;
  color: white;
  border: none;
  border-radius: 10px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
  margin-top: 8px;
}
.pg-dang-nhap .btn-auth-submit:hover,
.pg-dang-ky .btn-auth-submit:hover {
  background: #689f38;
}
.pg-dang-nhap .btn-auth-submit:disabled,
.pg-dang-ky .btn-auth-submit:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}
.pg-dang-nhap .auth-footer,
.pg-dang-ky .auth-footer {
  text-align: center;
  margin-top: 20px;
  font-size: 14px;
  color: #666;
}
.pg-dang-nhap .auth-footer a,
.pg-dang-ky .auth-footer a {
  color: #7cb342;
  font-weight: 600;
  text-decoration: none;
}
@media (max-width: 768px) {
  .pg-dang-nhap .auth-card,
  .pg-dang-ky .auth-card {
    padding: 25px;
  }
}

/* ---- tai-khoan (customer account) ---- */
.pg-tai-khoan .breadcrumb-section {
  background: white;
  padding: 20px 0;
  border-bottom: 1px solid #e0e0e0;
}
.pg-tai-khoan .breadcrumb {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  font-size: 14px;
  color: #666;
}
.pg-tai-khoan .breadcrumb a {
  color: #666;
  text-decoration: none;
  transition: color 0.3s;
}
.pg-tai-khoan .breadcrumb a:hover {
  color: #7cb342;
}
.pg-tai-khoan {
  background: #f5f5f5;
}
.pg-tai-khoan .container {
  max-width: 1400px;
  margin: 40px auto;
  padding: 0 20px;
}
.pg-tai-khoan .account-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 30px;
}
.pg-tai-khoan .sidebar {
  background: white;
  border-radius: 10px;
  padding: 30px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.05);
  height: fit-content;
}
.pg-tai-khoan .user-info {
  text-align: center;
  padding-bottom: 20px;
  border-bottom: 2px solid #f5f5f5;
  margin-bottom: 20px;
}
.pg-tai-khoan .user-avatar {
  width: 80px;
  height: 80px;
  background: linear-gradient(135deg, #7cb342 0%, #9ccc65 100%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  color: white;
  margin: 0 auto 15px;
  font-weight: bold;
}
.pg-tai-khoan .user-name {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 5px;
}
.pg-tai-khoan .user-email {
  font-size: 14px;
  color: #999;
}
.pg-tai-khoan .menu-list {
  list-style: none;
  padding-left: 0;
}
.pg-tai-khoan .menu-list li {
  margin-bottom: 5px;
}
.pg-tai-khoan .menu-list a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 15px;
  text-decoration: none;
  color: #666;
  border-radius: 8px;
  transition: all 0.3s;
  font-weight: 500;
  cursor: pointer;
}
.pg-tai-khoan .menu-list a:hover {
  background-color: #f5f5f5;
  color: #7cb342;
}
.pg-tai-khoan .menu-list a.active {
  background-color: #7cb342;
  color: white;
}
.pg-tai-khoan .menu-list .logout {
  color: #ef5350;
}
.pg-tai-khoan .menu-list .logout:hover {
  background-color: #ffebee;
  color: #ef5350;
}
.pg-tai-khoan .content-area {
  background: white;
  border-radius: 10px;
  padding: 40px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.pg-tai-khoan .section-title {
  font-size: 24px;
  font-weight: 600;
  margin-bottom: 25px;
  padding-bottom: 15px;
  border-bottom: 2px solid #f5f5f5;
}
.pg-tai-khoan .form-group {
  margin-bottom: 20px;
}
.pg-tai-khoan .form-group label {
  display: block;
  font-weight: 600;
  margin-bottom: 8px;
  color: #333;
}
.pg-tai-khoan .form-group input {
  width: 100%;
  padding: 12px 15px;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  font-size: 14px;
  transition: border-color 0.3s;
}
.pg-tai-khoan .form-group input:focus {
  outline: none;
  border-color: #7cb342;
}
.pg-tai-khoan .form-group input:disabled {
  background: #f5f5f5;
  color: #999;
}
.pg-tai-khoan .btn {
  padding: 12px 30px;
  border: none;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
  font-size: 14px;
}
.pg-tai-khoan .btn-primary {
  background-color: #7cb342;
  color: white;
}
.pg-tai-khoan .btn-primary:hover {
  background-color: #689f38;
}
.pg-tai-khoan .btn-primary:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}
.pg-tai-khoan .order-list {
  margin-top: 20px;
}
.pg-tai-khoan .order-item {
  border: 2px solid #f5f5f5;
  border-radius: 10px;
  padding: 20px;
  margin-bottom: 15px;
  transition: all 0.3s;
}
.pg-tai-khoan .order-item:hover {
  border-color: #7cb342;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.pg-tai-khoan .order-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 15px;
  padding-bottom: 15px;
  border-bottom: 1px solid #f5f5f5;
}
.pg-tai-khoan .order-id {
  font-weight: 600;
  color: #333;
}
.pg-tai-khoan .order-date {
  font-size: 14px;
  color: #999;
}
.pg-tai-khoan .order-status {
  padding: 6px 15px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 600;
}
.pg-tai-khoan .status-pending {
  background-color: #fff3e0;
  color: #f57c00;
}
.pg-tai-khoan .status-shipping {
  background-color: #e3f2fd;
  color: #1976d2;
}
.pg-tai-khoan .status-completed {
  background-color: #e8f5e9;
  color: #388e3c;
}
.pg-tai-khoan .order-products {
  margin-bottom: 15px;
}
.pg-tai-khoan .product-row {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 10px 0;
}
.pg-tai-khoan .product-image {
  width: 60px;
  height: 60px;
  background-color: #f5f5f5;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
  flex-shrink: 0;
}
.pg-tai-khoan .product-info {
  flex: 1;
}
.pg-tai-khoan .product-name {
  font-weight: 600;
  margin-bottom: 5px;
}
.pg-tai-khoan .product-meta {
  font-size: 13px;
  color: #999;
}
.pg-tai-khoan .product-price {
  font-weight: 600;
  color: #7cb342;
}
.pg-tai-khoan .order-footer {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding-top: 15px;
  border-top: 1px solid #f5f5f5;
}
.pg-tai-khoan .order-total {
  font-size: 18px;
  font-weight: 600;
  color: #ef5350;
}
@media (max-width: 768px) {
  .pg-tai-khoan .account-layout {
    grid-template-columns: 1fr;
  }
  .pg-tai-khoan .sidebar {
    order: 2;
  }
  .pg-tai-khoan .content-area {
    order: 1;
  }
  .pg-tai-khoan .order-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
}

/* ---- don-hang (customer order list/detail) ---- */
.pg-don-hang .breadcrumb-section {
  background: white;
  padding: 20px 0;
  border-bottom: 1px solid #e0e0e0;
}
.pg-don-hang .breadcrumb {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  font-size: 14px;
  color: #666;
}
.pg-don-hang .breadcrumb a {
  color: #666;
  text-decoration: none;
  transition: color 0.3s;
}
.pg-don-hang .breadcrumb a:hover {
  color: #7cb342;
}
.pg-don-hang {
  background: #f5f5f5;
}
.pg-don-hang .container {
  max-width: 1400px;
  margin: 40px auto;
  padding: 0 20px;
}
.pg-don-hang .account-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 30px;
}
.pg-don-hang .sidebar {
  background: white;
  border-radius: 10px;
  padding: 30px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.05);
  height: fit-content;
}
.pg-don-hang .user-info {
  text-align: center;
  padding-bottom: 20px;
  border-bottom: 2px solid #f5f5f5;
  margin-bottom: 20px;
}
.pg-don-hang .user-avatar {
  width: 80px;
  height: 80px;
  background: linear-gradient(135deg, #7cb342 0%, #9ccc65 100%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  color: white;
  margin: 0 auto 15px;
  font-weight: bold;
}
.pg-don-hang .user-name {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 5px;
}
.pg-don-hang .user-email {
  font-size: 14px;
  color: #999;
}
.pg-don-hang .menu-list {
  list-style: none;
  padding-left: 0;
}
.pg-don-hang .menu-list li {
  margin-bottom: 5px;
}
.pg-don-hang .menu-list a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 15px;
  text-decoration: none;
  color: #666;
  border-radius: 8px;
  transition: all 0.3s;
  font-weight: 500;
  cursor: pointer;
}
.pg-don-hang .menu-list a:hover {
  background-color: #f5f5f5;
  color: #7cb342;
}
.pg-don-hang .menu-list a.active {
  background-color: #7cb342;
  color: white;
}
.pg-don-hang .menu-list .logout {
  color: #ef5350;
}
.pg-don-hang .menu-list .logout:hover {
  background-color: #ffebee;
  color: #ef5350;
}
.pg-don-hang .content-area {
  background: white;
  border-radius: 10px;
  padding: 40px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.pg-don-hang .section-title {
  font-size: 24px;
  font-weight: 600;
  margin-bottom: 25px;
  padding-bottom: 15px;
  border-bottom: 2px solid #f5f5f5;
}
.pg-don-hang .form-group {
  margin-bottom: 20px;
}
.pg-don-hang .form-group label {
  display: block;
  font-weight: 600;
  margin-bottom: 8px;
  color: #333;
}
.pg-don-hang .form-group input {
  width: 100%;
  padding: 12px 15px;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  font-size: 14px;
  transition: border-color 0.3s;
}
.pg-don-hang .form-group input:focus {
  outline: none;
  border-color: #7cb342;
}
.pg-don-hang .form-group input:disabled {
  background: #f5f5f5;
  color: #999;
}
.pg-don-hang .btn {
  padding: 12px 30px;
  border: none;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
  font-size: 14px;
}
.pg-don-hang .btn-primary {
  background-color: #7cb342;
  color: white;
}
.pg-don-hang .btn-primary:hover {
  background-color: #689f38;
}
.pg-don-hang .btn-primary:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}
.pg-don-hang .order-list {
  margin-top: 20px;
}
.pg-don-hang .order-item {
  border: 2px solid #f5f5f5;
  border-radius: 10px;
  padding: 20px;
  margin-bottom: 15px;
  transition: all 0.3s;
}
.pg-don-hang .order-item:hover {
  border-color: #7cb342;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.pg-don-hang .order-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 15px;
  padding-bottom: 15px;
  border-bottom: 1px solid #f5f5f5;
}
.pg-don-hang .order-id {
  font-weight: 600;
  color: #333;
}
.pg-don-hang .order-date {
  font-size: 14px;
  color: #999;
}
.pg-don-hang .order-status {
  padding: 6px 15px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 600;
}
.pg-don-hang .status-pending {
  background-color: #fff3e0;
  color: #f57c00;
}
.pg-don-hang .status-shipping {
  background-color: #e3f2fd;
  color: #1976d2;
}
.pg-don-hang .status-completed {
  background-color: #e8f5e9;
  color: #388e3c;
}
.pg-don-hang .order-products {
  margin-bottom: 15px;
}
.pg-don-hang .product-row {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 10px 0;
}
.pg-don-hang .product-image {
  width: 60px;
  height: 60px;
  background-color: #f5f5f5;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
  flex-shrink: 0;
}
.pg-don-hang .product-info {
  flex: 1;
}
.pg-don-hang .product-name {
  font-weight: 600;
  margin-bottom: 5px;
}
.pg-don-hang .product-meta {
  font-size: 13px;
  color: #999;
}
.pg-don-hang .product-price {
  font-weight: 600;
  color: #7cb342;
}
.pg-don-hang .order-footer {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding-top: 15px;
  border-top: 1px solid #f5f5f5;
}
.pg-don-hang .order-total {
  font-size: 18px;
  font-weight: 600;
  color: #ef5350;
}
@media (max-width: 768px) {
  .pg-don-hang .account-layout {
    grid-template-columns: 1fr;
  }
  .pg-don-hang .sidebar {
    order: 2;
  }
  .pg-don-hang .content-area {
    order: 1;
  }
  .pg-don-hang .order-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
}
.pg-don-hang .order-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 15px;
  padding: 16px 20px;
  border: 2px solid #f5f5f5;
  border-radius: 10px;
  margin-bottom: 12px;
  transition: all 0.3s;
  text-decoration: none;
  color: inherit;
}
.pg-don-hang a.order-row:hover {
  border-color: #7cb342;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.pg-don-hang .order-row-info {
  flex: 1;
  min-width: 160px;
}
.pg-don-hang .order-row-badges {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.pg-don-hang .order-row-price {
  font-weight: 700;
  color: #7cb342;
  white-space: nowrap;
}
.pg-don-hang .order-detail-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 20px;
  color: #666;
  text-decoration: none;
  font-weight: 600;
  font-size: 14px;
  transition: color 0.3s;
}
.pg-don-hang .order-detail-back:hover {
  color: #7cb342;
}
.pg-don-hang .order-detail-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 15px;
  background: linear-gradient(135deg, #7cb342 0%, #689f38 100%);
  border-radius: 12px;
  padding: 22px 26px;
  margin-bottom: 24px;
  color: #fff;
}
.pg-don-hang .order-detail-title {
  font-size: 20px;
  font-weight: 700;
}
.pg-don-hang .order-detail-date {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.85);
  margin-top: 4px;
}
.pg-don-hang .order-detail-header .order-row-badges .badge {
  font-size: 12px;
  padding: 6px 12px;
  border-radius: 20px;
}
.pg-don-hang .order-detail-payment-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  background: #eef6e6;
  border: 1px solid #cfe8bb;
  border-radius: 10px;
  padding: 14px 18px;
  margin-bottom: 24px;
  color: #4a7c2a;
  font-weight: 600;
  font-size: 14px;
  text-decoration: none;
  transition: all 0.3s;
}
.pg-don-hang .order-detail-payment-link:hover {
  background: #e2f1d6;
  border-color: #7cb342;
}
.pg-don-hang .order-detail-payment-link .arrow {
  font-size: 16px;
}
.pg-don-hang .order-detail-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.pg-don-hang .order-detail-section {
  margin-bottom: 24px;
}
.pg-don-hang .order-detail-section.no-margin {
  margin-bottom: 0;
}
.pg-don-hang .order-detail-section-title {
  font-size: 15px;
  font-weight: 700;
  color: #333;
  margin-bottom: 14px;
}
.pg-don-hang .order-detail-table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid #f0f0f0;
  border-radius: 10px;
  overflow: hidden;
}
.pg-don-hang .order-detail-table th {
  background: #fafafa;
  padding: 12px 14px;
  text-align: left;
  font-size: 12px;
  font-weight: 700;
  color: #888;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.pg-don-hang .order-detail-table td {
  padding: 14px;
  border-top: 1px solid #f5f5f5;
  text-align: left;
  font-size: 14px;
}
.pg-don-hang .order-detail-table th:not(:first-child),
.pg-don-hang .order-detail-table td:not(:first-child) {
  text-align: right;
}
.pg-don-hang .order-detail-table .product-cell-name {
  font-weight: 600;
  color: #333;
}
.pg-don-hang .order-detail-box {
  background: #fafafa;
  border-radius: 10px;
  padding: 18px 20px;
}
.pg-don-hang .order-detail-info-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 0;
}
.pg-don-hang .order-detail-info-row:not(:last-child) {
  border-bottom: 1px solid #e9e9e9;
}
.pg-don-hang .order-detail-info-icon {
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
}
.pg-don-hang .order-detail-info-content {
  flex: 1;
  min-width: 0;
}
.pg-don-hang .order-detail-info-label {
  font-size: 12px;
  color: #999;
  margin-bottom: 3px;
}
.pg-don-hang .order-detail-info-value {
  font-size: 14px;
  color: #333;
  font-weight: 600;
  line-height: 1.5;
  word-break: break-word;
}
.pg-don-hang .order-summary-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 7px 0;
  font-size: 14px;
  color: #555;
}
.pg-don-hang .order-summary-row span:last-child {
  text-align: right;
  color: #333;
}
.pg-don-hang .order-summary-row.discount span:last-child {
  color: #e53935;
}
.pg-don-hang .order-summary-row.total {
  font-weight: 700;
  font-size: 17px;
  border-top: 2px solid #e6e6e6;
  padding-top: 14px;
  margin-top: 8px;
  color: #333;
}
.pg-don-hang .order-summary-row.total span:last-child {
  color: #7cb342;
}
@media (max-width: 768px) {
  .pg-don-hang .order-detail-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 600px) {
  .pg-don-hang .order-row {
    flex-direction: column;
    align-items: flex-start;
  }
  .pg-don-hang .order-detail-header {
    flex-direction: column;
    align-items: flex-start;
  }
}
/* ---- doi-mat-khau (change password) ---- */
.pg-doi-mat-khau .breadcrumb-section {
  background: white;
  padding: 20px 0;
  border-bottom: 1px solid #e0e0e0;
}
.pg-doi-mat-khau .breadcrumb {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  font-size: 14px;
  color: #666;
}
.pg-doi-mat-khau .breadcrumb a {
  color: #666;
  text-decoration: none;
  transition: color 0.3s;
}
.pg-doi-mat-khau .breadcrumb a:hover {
  color: #7cb342;
}
.pg-doi-mat-khau {
  background: #f5f5f5;
}
.pg-doi-mat-khau .container {
  max-width: 1400px;
  margin: 40px auto;
  padding: 0 20px;
}
.pg-doi-mat-khau .account-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 30px;
}
.pg-doi-mat-khau .sidebar {
  background: white;
  border-radius: 10px;
  padding: 30px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.05);
  height: fit-content;
}
.pg-doi-mat-khau .user-info {
  text-align: center;
  padding-bottom: 20px;
  border-bottom: 2px solid #f5f5f5;
  margin-bottom: 20px;
}
.pg-doi-mat-khau .user-avatar {
  width: 80px;
  height: 80px;
  background: linear-gradient(135deg, #7cb342 0%, #9ccc65 100%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  color: white;
  margin: 0 auto 15px;
  font-weight: bold;
}
.pg-doi-mat-khau .user-name {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 5px;
}
.pg-doi-mat-khau .user-email {
  font-size: 14px;
  color: #999;
}
.pg-doi-mat-khau .menu-list {
  list-style: none;
  padding-left: 0;
}
.pg-doi-mat-khau .menu-list li {
  margin-bottom: 5px;
}
.pg-doi-mat-khau .menu-list a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 15px;
  text-decoration: none;
  color: #666;
  border-radius: 8px;
  transition: all 0.3s;
  font-weight: 500;
  cursor: pointer;
}
.pg-doi-mat-khau .menu-list a:hover {
  background-color: #f5f5f5;
  color: #7cb342;
}
.pg-doi-mat-khau .menu-list a.active {
  background-color: #7cb342;
  color: white;
}
.pg-doi-mat-khau .menu-list .logout {
  color: #ef5350;
}
.pg-doi-mat-khau .menu-list .logout:hover {
  background-color: #ffebee;
  color: #ef5350;
}
.pg-doi-mat-khau .content-area {
  background: white;
  border-radius: 10px;
  padding: 40px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.pg-doi-mat-khau .section-title {
  font-size: 24px;
  font-weight: 600;
  margin-bottom: 25px;
  padding-bottom: 15px;
  border-bottom: 2px solid #f5f5f5;
}
.pg-doi-mat-khau .form-group {
  margin-bottom: 20px;
}
.pg-doi-mat-khau .form-group label {
  display: block;
  font-weight: 600;
  margin-bottom: 8px;
  color: #333;
}
.pg-doi-mat-khau .form-group input {
  width: 100%;
  padding: 12px 15px;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  font-size: 14px;
  transition: border-color 0.3s;
}
.pg-doi-mat-khau .form-group input:focus {
  outline: none;
  border-color: #7cb342;
}
.pg-doi-mat-khau .form-group input:disabled {
  background: #f5f5f5;
  color: #999;
}
.pg-doi-mat-khau .btn {
  padding: 12px 30px;
  border: none;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
  font-size: 14px;
}
.pg-doi-mat-khau .btn-primary {
  background-color: #7cb342;
  color: white;
}
.pg-doi-mat-khau .btn-primary:hover {
  background-color: #689f38;
}
.pg-doi-mat-khau .btn-primary:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}
.pg-doi-mat-khau .order-list {
  margin-top: 20px;
}
.pg-doi-mat-khau .order-item {
  border: 2px solid #f5f5f5;
  border-radius: 10px;
  padding: 20px;
  margin-bottom: 15px;
  transition: all 0.3s;
}
.pg-doi-mat-khau .order-item:hover {
  border-color: #7cb342;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.pg-doi-mat-khau .order-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 15px;
  padding-bottom: 15px;
  border-bottom: 1px solid #f5f5f5;
}
.pg-doi-mat-khau .order-id {
  font-weight: 600;
  color: #333;
}
.pg-doi-mat-khau .order-date {
  font-size: 14px;
  color: #999;
}
.pg-doi-mat-khau .order-status {
  padding: 6px 15px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 600;
}
.pg-doi-mat-khau .status-pending {
  background-color: #fff3e0;
  color: #f57c00;
}
.pg-doi-mat-khau .status-shipping {
  background-color: #e3f2fd;
  color: #1976d2;
}
.pg-doi-mat-khau .status-completed {
  background-color: #e8f5e9;
  color: #388e3c;
}
.pg-doi-mat-khau .order-products {
  margin-bottom: 15px;
}
.pg-doi-mat-khau .product-row {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 10px 0;
}
.pg-doi-mat-khau .product-image {
  width: 60px;
  height: 60px;
  background-color: #f5f5f5;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
  flex-shrink: 0;
}
.pg-doi-mat-khau .product-info {
  flex: 1;
}
.pg-doi-mat-khau .product-name {
  font-weight: 600;
  margin-bottom: 5px;
}
.pg-doi-mat-khau .product-meta {
  font-size: 13px;
  color: #999;
}
.pg-doi-mat-khau .product-price {
  font-weight: 600;
  color: #7cb342;
}
.pg-doi-mat-khau .order-footer {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding-top: 15px;
  border-top: 1px solid #f5f5f5;
}
.pg-doi-mat-khau .order-total {
  font-size: 18px;
  font-weight: 600;
  color: #ef5350;
}
@media (max-width: 768px) {
  .pg-doi-mat-khau .account-layout {
    grid-template-columns: 1fr;
  }
  .pg-doi-mat-khau .sidebar {
    order: 2;
  }
  .pg-doi-mat-khau .content-area {
    order: 1;
  }
  .pg-doi-mat-khau .order-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
}

/* ==== wishlist page (.pg-wishlist) ==== */
.pg-wishlist .breadcrumb-section {
  background: white;
  padding: 20px 0;
  border-bottom: 1px solid #e0e0e0;
}
.pg-wishlist .breadcrumb {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  font-size: 14px;
  color: #666;
}
.pg-wishlist .breadcrumb a {
  color: #666;
  text-decoration: none;
  transition: color 0.3s;
}
.pg-wishlist .breadcrumb a:hover {
  color: #7cb342;
}
.pg-wishlist .container {
  max-width: 1400px;
  margin: 40px auto;
  padding: 0 20px;
}
.pg-wishlist .wishlist-title {
  font-size: 26px;
  font-weight: 700;
  color: #333;
  margin-bottom: 30px;
}
.pg-wishlist .wishlist-empty {
  background: white;
  border-radius: 12px;
  padding: 60px 20px;
  text-align: center;
  color: #666;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
}
.pg-wishlist .wishlist-empty p {
  margin-bottom: 20px;
  font-size: 16px;
}
.pg-wishlist .wishlist-empty .btn-cart {
  display: inline-block;
  padding: 12px 28px;
  background: #7cb342;
  color: white;
  border-radius: 6px;
  text-decoration: none;
  font-weight: 600;
  transition: background 0.3s;
}
.pg-wishlist .wishlist-empty .btn-cart:hover {
  background: #689f38;
}
.pg-wishlist .product-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 25px;
}
.pg-wishlist .product-card {
  background: white;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
  transition: all 0.3s;
  position: relative;
}
.pg-wishlist .product-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}
.pg-wishlist .product-image {
  width: 100%;
  height: 280px;
  object-fit: cover;
  background: #f5f5f5;
}
.pg-wishlist .product-info {
  padding: 20px;
}
.pg-wishlist .product-title {
  font-size: 16px;
  font-weight: 600;
  color: #333;
  margin-bottom: 10px;
  height: 40px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.pg-wishlist .product-title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.3s;
}
.pg-wishlist .product-title a:hover {
  color: #7cb342;
}
.pg-wishlist .product-category {
  font-size: 13px;
  color: #7cb342;
  margin-bottom: 12px;
}
.pg-wishlist .product-price {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 15px;
}
.pg-wishlist .current-price {
  font-size: 20px;
  font-weight: bold;
  color: #e53935;
}
.pg-wishlist .old-price {
  font-size: 15px;
  color: #999;
  text-decoration: line-through;
}
.pg-wishlist .product-actions {
  display: flex;
  gap: 10px;
}
.pg-wishlist .btn-cart {
  flex: 1;
  padding: 10px;
  background: #7cb342;
  color: white;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 600;
  font-size: 14px;
  transition: all 0.3s;
}
.pg-wishlist .btn-cart:hover {
  background: #689f38;
}
.pg-wishlist .btn-wishlist {
  width: 40px;
  padding: 10px;
  background: #fdecea;
  color: #e53935;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-size: 16px;
  transition: all 0.3s;
}
.pg-wishlist .btn-wishlist:hover {
  background: #e53935;
  color: white;
}
@media (max-width: 1200px) {
  .pg-wishlist .product-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 768px) {
  .pg-wishlist .product-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 480px) {
  .pg-wishlist .product-grid {
    grid-template-columns: 1fr;
  }
}

/* ==== wishlist heart "active" state (filled), shared across pages ==== */
.btn-wishlist.active {
  background: #7cb342;
  color: white;
}
.shop-page .btn-wishlist.active {
  background: #7cb342;
  color: white;
}
.shop-page .btn-wishlist.active:hover {
  background: #e53935;
}
.pg-product-detail .quantity-selector .btn-wishlist.active {
  background: #ff6b6b;
  border-color: #ff6b6b;
  color: white;
  box-shadow: 0 0.5rem 1.25rem rgba(255, 107, 107, 0.3);
}
.pg-product-detail .related-products .btn-wishlist.active {
  background: #7cb342;
  color: white;
}
.pg-product-detail .related-products .btn-wishlist.active:hover {
  background: #e53935;
}

/* ---- src/components/share/backToTop.component.js -> nút "lên đầu trang" (dùng chung mọi trang
   storefront, gắn ở src/app/layout.js nên KHÔNG namespace theo .pg-x như phần còn lại của file
   này, cùng kiểu với .header/.nav-container global ở đầu file) ---- */
.back-to-top {
  position: fixed;
  right: 25px;
  bottom: 25px;
  width: 48px;
  height: 48px;
  border: none;
  border-radius: 50%;
  background: #7cb342;
  color: #fff;
  font-size: 20px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
  z-index: 999;
  transition: background 0.3s, transform 0.2s;
}
.back-to-top:hover {
  background: #689f38;
  transform: translateY(-3px);
}
@media (max-width: 768px) {
  .back-to-top {
    right: 15px;
    bottom: 15px;
    width: 42px;
    height: 42px;
    font-size: 18px;
  }
}
