/*
 * ThaiNguyenPC Homepage Styles (TTG Clone)
 */

/* ========================================
   HERO SECTION
   ======================================== */

.hero-section {
  background-color: var(--color-bg);
  padding: var(--space-4) 0;
}

.hero-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: var(--space-2); /* Tighter gap */
}

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

/* Main Hero Slider */
.hero-main {
  position: relative;
  background-color: var(--color-secondary);
  border-radius: var(--radius-lg);
  overflow: hidden;
  height: 480px; /* Taller fixed height */
}

.hero-slides {
  position: relative;
  height: 100%;
}

.hero-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--transition-base), visibility var(--transition-base);
}

.hero-slide.is-active {
  opacity: 1;
  visibility: visible;
}

/* Full Image Slide */
.hero-link {
  display: block;
  width: 100%;
  height: 100%;
}

.hero-link img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* Cover for banners */
}

/* Slider Controls */
.hero-prev,
.hero-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 40px;
  height: 40px;
  background-color: rgba(0, 0, 0, 0.3);
  border: none;
  color: var(--color-white);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  transition: all var(--transition-fast);
}

.hero-prev { left: 0; }
.hero-next { right: 0; }

.hero-prev:hover,
.hero-next:hover {
  background-color: var(--color-primary);
}

.hero-dots {
  position: absolute;
  bottom: var(--space-4);
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: var(--space-2);
  z-index: 10;
}

.hero-dot {
  width: 10px;
  height: 10px;
  background-color: rgba(255, 255, 255, 0.5);
  border: none;
  border-radius: var(--radius-full);
  padding: 0;
  cursor: pointer;
}

.hero-dot.is-active {
  background-color: var(--color-primary);
  transform: scale(1.2);
}

/* Side Banners */
.hero-side {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.hero-banner {
  flex: 1;
  overflow: hidden;
  border-radius: var(--radius-lg);
  position: relative;
}

.banner-link-wrapper {
  display: block;
  width: 100%;
  height: 100%;
}

.banner-link-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-slow);
}

.banner-link-wrapper:hover img {
  transform: scale(1.05);
}

/* ========================================
   CATEGORIES SECTION
   ======================================== */

.categories-section {
  padding: var(--space-6) 0;
  background-color: var(--color-bg);
}

.category-tabs-wrapper {
  overflow-x: auto;
}

.category-tabs {
  display: flex;
  justify-content: space-between;
  gap: var(--space-2);
  background-color: var(--color-white);
}

.category-tab {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-4) var(--space-2);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  text-decoration: none;
  color: var(--color-text);
  transition: all var(--transition-fast);
  min-width: 100px;
}

.category-tab:hover,
.category-tab.is-active {
  border-color: var(--color-primary);
  box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

.category-tab__icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-secondary);
  transition: color var(--transition-fast);
}

.category-tab:hover .category-tab__icon {
  color: var(--color-primary);
}

.category-tab__label {
  font-size: var(--text-sm);
  font-weight: var(--font-bold);
  text-align: center;
  text-transform: uppercase;
}

/* ========================================
   FLASH SALE (TTG Block Style)
   ======================================== */

.flash-sale-section {
  background-color: var(--color-bg-alt);
  padding: var(--space-8) 0;
}

.flash-sale-section .products-grid {
  overflow: visible;
  width: 100%;
}

.flash-sale-header {
  display: flex;
  align-items: center;
  justify-content: space-between; /* Ensure separation */
  padding: var(--space-4) var(--space-6);
  background: linear-gradient(90deg, #D21F1F 0%, #B01815 100%); /* Deep Red Gradient */
  border-radius: var(--radius-sm); /* Sharp corners */
  color: var(--color-white);
  gap: var(--space-4);
  flex-wrap: wrap; /* Handle mobile */
  box-shadow: var(--shadow-md);
}

.flash-sale-title {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.flash-sale-title h2 {
  font-size: var(--text-2xl);
  font-weight: var(--font-extrabold);
  text-transform: uppercase;
  margin: 0;
  letter-spacing: 1px;
  font-family: var(--font-heading);
}

/* Countdown */
.countdown {
    display: flex;
    align-items: center;
    gap: var(--space-4);
}

.countdown-timer {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.countdown-unit {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.countdown__value {
  background-color: var(--color-white);
  color: var(--color-primary); /* Red text on white for visibility */
  font-weight: var(--font-extrabold);
  font-size: var(--text-xl);
  font-family: var(--font-heading);
  padding: 8px 12px;
  border-radius: var(--radius-sm);
  min-width: 50px;
  text-align: center;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  line-height: 1;
}

.countdown__label {
  font-size: var(--text-xs);
  color: var(--color-white);
  text-transform: uppercase;
  font-weight: var(--font-medium);
}

.countdown-sep {
    font-weight: bold;
    opacity: 0.8;
}

.flash-sale-section .view-all-link {
  color: var(--color-white);
  font-weight: var(--font-bold);
  text-transform: uppercase;
  font-size: var(--text-sm);
  background: rgba(0,0,0,0.2);
  padding: 6px 12px;
  border-radius: var(--radius-sm);
}

.flash-sale-section .view-all-link:hover {
  background: rgba(0,0,0,0.4);
  color: var(--color-white);
}

/* ========================================
   CATEGORY TABS (Sharp Box Style)
   ======================================== */

.category-tabs {
  display: grid;
  grid-template-columns: repeat(6, 1fr); /* Force 6 cols */
  gap: var(--space-4);
  background-color: transparent;
  padding: 0;
  box-shadow: none;
}

@media (max-width: 1023px) {
  .category-tabs {
    grid-template-columns: repeat(3, 1fr);
  }
}

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

.category-tab {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  padding: var(--space-6) var(--space-2);
  background-color: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  text-decoration: none;
  color: var(--color-text);
  transition: all var(--transition-fast);
  height: 100%;
}

.category-tab:hover {
  border-color: var(--color-primary);
  box-shadow: 0 4px 12px rgba(238, 39, 36, 0.15); /* Red shadow glow */
  z-index: 5;
}

/* Remove active state with teal background */
.category-tab.is-active {
  border-color: var(--color-primary);
  background-color: var(--color-white);
}

.category-tab__icon {
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-secondary);
  transition: color var(--transition-base);
  background-color: var(--color-bg-alt);
  border-radius: var(--radius-sm);
}

.category-tab:hover .category-tab__icon {
  color: var(--color-white);
  background-color: var(--color-primary);
}

.category-tab__label {
  font-size: var(--text-sm);
  font-weight: var(--font-bold);
  text-align: center;
  text-transform: uppercase;
}

/* ========================================
   PARTNERS (Dark Brand Grid)
   ======================================== */

.partners-section {
  background-color: var(--color-bg-dark); /* Force Black Background */
  padding: var(--space-8) 0;
  border-top: 1px solid var(--color-border-dark);
}

.partners-label {
  display: block;
  text-align: center;
  font-family: var(--font-heading);
  font-size: var(--text-xl);
  font-weight: var(--font-bold);
  color: var(--color-text-inverse); /* White text */
  margin-bottom: var(--space-6);
  text-transform: uppercase;
  letter-spacing: 2px;
  position: relative;
}

.partners-label::after {
  content: '';
  display: block;
  width: 60px;
  height: 3px;
  background-color: var(--color-primary);
  margin: var(--space-2) auto 0;
}

.partners-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: var(--space-4);
}

.partner-item {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 80px;
  background-color: rgba(255, 255, 255, 0.05); /* Subtle Glass */
  border: 1px solid var(--color-border-dark);
  border-radius: var(--radius-sm);
  transition: all var(--transition-base);
  user-select: none;
}

.partner-item:hover {
  background-color: var(--color-primary);
  border-color: var(--color-primary);
  box-shadow: 0 0 20px rgba(215, 25, 32, 0.4); /* Glow effect */
}

.partner-name {
  color: var(--color-text-inverse);
  font-family: var(--font-heading);
  font-weight: var(--font-extrabold);
  font-size: var(--text-lg);
  text-transform: uppercase;
  letter-spacing: 1px;
}

/* ========================================
   PRODUCT CARD (Sharp & Clean)
   ======================================== */

.products-grid {
  display: grid;
  gap: var(--space-4);
  background-color: transparent;
  border: none;
}

.products-grid-4 {
  grid-template-columns: repeat(4, 1fr);
}

.products-grid-5 {
  grid-template-columns: repeat(5, 1fr);
}

/* Category sections: responsive auto-fit grid */
.home-category-products .products-grid {
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

.product-card {
  background-color: var(--color-white);
  padding: var(--space-4);
  position: relative;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
  border: var(--border-width) solid var(--color-border);
  border-radius: var(--radius-md);
  cursor: pointer;
}

.product-card:hover {
  box-shadow: var(--shadow-md);
  z-index: 10;
}

.product-card__image {
  margin-bottom: var(--space-4);
  position: relative;
  min-height: 200px;
  background-color: var(--color-bg-alt);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.product-card__image img {
  width: 100%;
  height: auto;
  aspect-ratio: 1/1;
  object-fit: contain;
  display: block;
}

.product-card__title {
  font-size: var(--text-sm);
  font-weight: var(--font-medium);
  margin-bottom: var(--space-2);
  line-height: 1.4;
  height: 2.8em;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.product-card__title a:hover {
  color: var(--color-primary);
}

.product-card__price {
  margin-top: auto;
}

.price-current {
  color: var(--color-primary);
  font-weight: var(--font-bold);
  font-size: var(--text-lg);
}

.price-original {
  font-size: var(--text-xs);
  text-decoration: line-through;
  color: var(--color-text-light);
  margin-left: var(--space-2);
}

/* Products grid responsive: see responsive.css for breakpoints */
