/* ================================================
   LUMI — Pages (pages.css)
   Page-specific styles for every HTML page
   Theme: #0e1416 (Dark Onyx), #001b48 (Royal Navy), #ffffff (Crisp White)
   ================================================ */

/* ==============================
   HOME PAGE
   ============================== */

/* Hero Section */
.hero-section {
  min-height: 92vh;
  background: linear-gradient(135deg, #0e1416 0%, #162024 50%, #001b48 100%);
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
  padding: 4rem 0;
}
.hero-section::before {
  content: '';
  position: absolute;
  top: -20%;
  right: -10%;
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgba(0,27,72,0.35) 0%, transparent 70%);
  border-radius: 50%;
}
.hero-section::after {
  content: '';
  position: absolute;
  bottom: -10%;
  left: -5%;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(75,131,230,0.15) 0%, transparent 70%);
  border-radius: 50%;
}
.hero-eyebrow {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--gold-dark);
  margin-bottom: 1rem;
  display: block;
}
.hero-title {
  font-family: var(--font-serif);
  font-weight: 400;
  color: var(--text-dark);
  line-height: 1.1;
  margin-bottom: 1.5rem;
}
.hero-title em { font-style: italic; color: var(--gold-dark); }
.hero-subtitle {
  font-size: 1rem;
  color: var(--text-muted);
  max-width: 440px;
  margin-bottom: 2.5rem;
  line-height: 1.75;
}
.hero-actions { display: flex; gap: 1rem; flex-wrap: wrap; }
.hero-img-wrap {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hero-img-wrap img {
  border-radius: 40% 60% 60% 40% / 40% 40% 60% 60%;
  width: 100%;
  max-width: 520px;
  object-fit: cover;
  box-shadow: 0 30px 80px rgba(0,0,0,0.6);
  border: 1px solid var(--beige);
}
.hero-stats {
  display: flex;
  gap: 2rem;
  margin-top: 2.5rem;
  padding-top: 2rem;
  border-top: 1px solid var(--beige);
}
.hero-stat-val { font-family: var(--font-serif); font-size: 1.6rem; font-weight: 600; color: var(--text-dark); line-height: 1; }
.hero-stat-label { font-size: 0.72rem; color: var(--text-muted); letter-spacing: 1px; text-transform: uppercase; margin-top: 2px; }

/* Best Sellers */
.bestsellers-section { background: var(--bg-dark); }

/* Collections */
.collections-section { background: var(--bg-surface); }
.collection-card {
  border-radius: 20px;
  overflow: hidden;
  position: relative;
  aspect-ratio: 3/4;
  cursor: pointer;
  border: 1px solid var(--beige);
}
.collection-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s cubic-bezier(0.4,0,0.2,1); }
.collection-card:hover img { transform: scale(1.06); }
.collection-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,27,72,0.85) 0%, transparent 60%);
  display: flex;
  align-items: flex-end;
  padding: 1.75rem;
}
.collection-card-title { font-family: var(--font-serif); font-size: 1.6rem; color: var(--white); font-weight: 500; }
.collection-card-sub { font-size: 0.8rem; color: rgba(255,255,255,0.7); letter-spacing: 1px; text-transform: uppercase; }
.collection-card-arrow { color: var(--gold-dark); font-size: 1rem; }

/* About Strip */
.about-strip { background: var(--bg-dark); }
.about-img { border-radius: 24px; width: 100%; max-height: 480px; object-fit: cover; box-shadow: var(--shadow-md); border: 1px solid var(--beige); }
.about-feature { display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 1.5rem; }
.about-feature-icon { width: 44px; height: 44px; background: var(--navy-accent); border: 1px solid var(--gold-dark); border-radius: 12px; display: flex; align-items: center; justify-content: center; color: var(--white); font-size: 1.1rem; flex-shrink: 0; }

/* Testimonials */
.testimonials-section { background: var(--bg-surface); }
.testimonial-card { background: var(--bg-card); border-radius: var(--card-radius); padding: 2rem; border: 1px solid var(--beige); }
.testimonial-quote { font-family: var(--font-serif); font-size: 1.05rem; color: var(--text-dark); line-height: 1.7; font-style: italic; margin-bottom: 1.5rem; }
.testimonial-author { display: flex; align-items: center; gap: 0.75rem; }
.testimonial-avatar { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; border: 1px solid var(--gold-dark); }
.testimonial-name { font-weight: 600; font-size: 0.9rem; color: var(--text-dark); }
.testimonial-loc  { font-size: 0.78rem; color: var(--text-muted); }

/* Newsletter */
.newsletter-section {
  background: linear-gradient(135deg, #0e1416 0%, #001b48 100%);
  position: relative;
  overflow: hidden;
  border-top: 1px solid var(--beige);
  border-bottom: 1px solid var(--beige);
}
.newsletter-section::before {
  content: '';
  position: absolute;
  top: -30%;
  right: -5%;
  width: 350px;
  height: 350px;
  background: radial-gradient(circle, rgba(75,131,230,0.2) 0%, transparent 70%);
  border-radius: 50%;
}
.newsletter-title { font-family: var(--font-serif); font-size: 2.5rem; color: var(--white); font-weight: 400; }
.newsletter-sub { color: rgba(255,255,255,0.7); font-size: 0.95rem; margin-top: 0.5rem; }
.newsletter-form { display: flex; gap: 0.75rem; margin-top: 1.5rem; max-width: 480px; }
.newsletter-input {
  flex: 1; padding: 0.85rem 1.25rem;
  border: 1.5px solid var(--beige);
  border-radius: 50px;
  background: var(--bg-surface);
  color: var(--white);
  font-family: var(--font-sans);
  outline: none;
}
.newsletter-input::placeholder { color: var(--text-muted); }
.newsletter-input:focus { border-color: var(--gold-dark); }

/* ==============================
   SHOP PAGE
   ============================== */
.shop-hero {
  background: var(--bg-surface);
  padding: 3rem 0;
  text-align: center;
  border-bottom: 1px solid var(--beige);
}
.shop-filters { background: var(--bg-dark); border-bottom: 1px solid var(--beige); padding: 1rem 0; position: sticky; top: 72px; z-index: 100; }
.filter-pill {
  display: inline-block;
  padding: 0.45rem 1.2rem;
  border-radius: 50px;
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.5px;
  border: 1.5px solid var(--beige);
  color: var(--text-body);
  cursor: pointer;
  transition: var(--transition);
  background: var(--bg-surface);
}
.filter-pill:hover, .filter-pill.active { background: var(--navy-accent); color: var(--white); border-color: var(--gold-dark); }
.shop-search-wrap { position: relative; max-width: 380px; }
.shop-search-wrap input { padding-right: 3rem; }
.shop-search-wrap .search-icon { position: absolute; right: 1rem; top: 50%; transform: translateY(-50%); color: var(--text-muted); }
#products-grid { min-height: 300px; }
.no-products { text-align: center; padding: 4rem 1rem; color: var(--text-muted); }
.no-products i { font-size: 3rem; margin-bottom: 1rem; display: block; }

/* ==============================
   PRODUCT DETAIL PAGE
   ============================== */
.product-gallery-main {
  border-radius: 20px;
  overflow: hidden;
  aspect-ratio: 1/1;
  background: var(--bg-card);
  border: 1px solid var(--beige);
  padding: 0.5rem;
}
.product-gallery-main img { width: 100%; height: 100%; object-fit: contain; transition: var(--transition-slow); }
.gallery-thumbs { display: flex; gap: 0.75rem; margin-top: 0.75rem; }
.gallery-thumb {
  width: 72px; height: 72px; border-radius: 10px; overflow: hidden;
  border: 2px solid var(--beige); background: var(--bg-surface); cursor: pointer; transition: var(--transition);
}
.gallery-thumb:hover, .gallery-thumb.active { border-color: var(--gold-dark); }
.gallery-thumb img { width: 100%; height: 100%; object-fit: cover; }
.product-detail-category { font-size: 0.7rem; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--gold-dark); }
.product-detail-name { font-family: var(--font-serif); font-size: 2.5rem; font-weight: 500; color: var(--text-dark); line-height: 1.2; margin: 0.5rem 0; }
.product-detail-price { font-size: 1.6rem; font-weight: 600; color: var(--text-dark); font-family: var(--font-sans); }
.product-detail-price .compare { font-size: 1.1rem; color: var(--text-muted); text-decoration: line-through; margin-left: 0.5rem; font-weight: 400; }
.product-detail-desc { color: var(--text-body); font-size: 0.95rem; line-height: 1.8; margin: 1.5rem 0; }
.fragrance-notes { background: var(--bg-surface); border-radius: 14px; padding: 1.25rem; margin-bottom: 1.5rem; border: 1px solid var(--beige); }
.fragrance-notes h6 { font-size: 0.72rem; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--gold-dark); margin-bottom: 0.75rem; }
.note-tag { display: inline-block; background: var(--navy-accent); color: var(--white); border: 1px solid var(--gold-dark); font-size: 0.8rem; padding: 0.3em 0.9em; border-radius: 50px; margin: 0.2em; }
.product-actions { display: flex; gap: 0.75rem; align-items: center; flex-wrap: wrap; }

/* ==============================
   CART PAGE
   ============================== */
.cart-page { background: var(--bg-dark); min-height: 70vh; }
.cart-item {
  background: var(--bg-surface); border-radius: var(--card-radius); padding: 1.25rem;
  border: 1px solid var(--beige); display: flex; align-items: center; gap: 1.25rem;
  margin-bottom: 1rem; transition: var(--transition);
}
.cart-item:hover { box-shadow: var(--shadow-sm); border-color: var(--gold-dark); }
.cart-item-img { width: 88px; height: 88px; border-radius: 12px; object-fit: cover; background: var(--bg-dark); flex-shrink: 0; }
.cart-item-name { font-family: var(--font-serif); font-size: 1.1rem; color: var(--text-dark); font-weight: 500; }
.cart-item-cat { font-size: 0.72rem; color: var(--gold-dark); text-transform: uppercase; letter-spacing: 1.5px; font-weight: 600; }
.cart-item-price { font-weight: 600; color: var(--text-dark); font-size: 1.05rem; }
.cart-remove { background: none; border: none; color: var(--text-muted); cursor: pointer; font-size: 0.85rem; transition: var(--transition); }
.cart-remove:hover { color: var(--error); }
.cart-summary-card { background: var(--bg-surface); border-radius: var(--card-radius); padding: 1.75rem; border: 1px solid var(--beige); position: sticky; top: 90px; }
.summary-line { display: flex; justify-content: space-between; font-size: 0.9rem; color: var(--text-body); margin-bottom: 0.75rem; }
.summary-line.total { font-size: 1.1rem; font-weight: 600; color: var(--text-dark); border-top: 1px solid var(--beige); padding-top: 0.75rem; margin-top: 0.75rem; }
.empty-cart { text-align: center; padding: 5rem 1rem; }
.empty-cart i { font-size: 4rem; color: var(--text-muted); margin-bottom: 1.5rem; display: block; }

/* ==============================
   CHECKOUT PAGE
   ============================== */
.checkout-section { background: var(--bg-dark); min-height: 80vh; }
.checkout-step-label { font-size: 0.72rem; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--gold-dark); margin-bottom: 0.4rem; }
.checkout-card { background: var(--bg-surface); border-radius: var(--card-radius); padding: 2rem; border: 1px solid var(--beige); margin-bottom: 1.5rem; }
.order-summary-item { display: flex; gap: 1rem; align-items: center; margin-bottom: 1rem; }
.order-summary-img { width: 56px; height: 56px; border-radius: 10px; object-fit: cover; background: var(--bg-dark); flex-shrink: 0; }
.order-summary-name { font-size: 0.9rem; font-weight: 500; color: var(--text-dark); }
.order-summary-qty  { font-size: 0.8rem; color: var(--text-muted); }
.order-summary-price { font-weight: 600; font-size: 0.95rem; color: var(--text-dark); margin-left: auto; }

/* ==============================
   DASHBOARD PAGE
   ============================== */
.dashboard-page { background: var(--bg-dark); min-height: 80vh; }
.dashboard-profile-card { background: linear-gradient(135deg, #001b48 0%, #162024 100%); border-radius: 20px; padding: 2rem; color: var(--white); margin-bottom: 1.5rem; border: 1px solid var(--beige); }
.dashboard-avatar { width: 64px; height: 64px; border-radius: 50%; background: var(--navy-accent); border: 2px solid var(--gold-dark); display: flex; align-items: center; justify-content: center; font-size: 1.5rem; color: var(--white); font-family: var(--font-serif); font-weight: 600; margin-bottom: 0.75rem; }
.dashboard-name { font-family: var(--font-serif); font-size: 1.5rem; color: var(--white); }
.dashboard-email { font-size: 0.85rem; color: var(--text-muted); }
.order-history-row { background: var(--bg-surface); border-radius: var(--card-radius); padding: 1.25rem; border: 1px solid var(--beige); margin-bottom: 0.75rem; cursor: pointer; transition: var(--transition); }
.order-history-row:hover { box-shadow: var(--shadow-sm); border-color: var(--gold-dark); }
.order-id { font-size: 0.82rem; font-weight: 600; color: var(--gold-dark); }
.order-date { font-size: 0.82rem; color: var(--text-muted); }
.order-total { font-weight: 600; color: var(--text-dark); }

/* ==============================
   PAYMENT SUCCESS / FAILED
   ============================== */
.payment-result-page { min-height: 80vh; display: flex; align-items: center; justify-content: center; background: var(--bg-dark); }
.payment-result-card { background: var(--bg-surface); border-radius: 24px; padding: 3rem 2.5rem; text-align: center; border: 1px solid var(--beige); box-shadow: var(--shadow-md); max-width: 460px; width: 100%; }
.payment-icon { width: 80px; height: 80px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 2.2rem; margin: 0 auto 1.5rem; }
.payment-icon.success { background: #143823; color: var(--success); }
.payment-icon.failed  { background: #3d1418; color: var(--error); }
.payment-title { font-family: var(--font-serif); font-size: 2rem; color: var(--text-dark); margin-bottom: 0.5rem; }
.payment-sub { color: var(--text-muted); font-size: 0.95rem; margin-bottom: 2rem; }

/* ==============================
   AUTH BACKGROUND
   ============================== */
.auth-page {
  min-height: 100vh;
  background: linear-gradient(135deg, #0e1416 0%, #162024 50%, #001b48 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem 1rem;
  position: relative;
  overflow: hidden;
}
.auth-page::before {
  content: '';
  position: absolute;
  top: -20%;
  right: -10%;
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, rgba(0,27,72,0.35) 0%, transparent 70%);
  border-radius: 50%;
}
.auth-page::after {
  content: '';
  position: absolute;
  bottom: -15%;
  left: -8%;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(75,131,230,0.15) 0%, transparent 70%);
  border-radius: 50%;
}
.auth-container { width: 100%; max-width: 460px; position: relative; z-index: 1; }

/* ==============================
   RESPONSIVE TWEAKS
   ============================== */
@media (max-width: 991px) {
  .hero-section { min-height: auto; padding: 5rem 0; text-align: center; }
  .hero-subtitle, .hero-actions { margin-left: auto; margin-right: auto; justify-content: center; }
  .hero-stats { justify-content: center; }
  .hero-img-wrap { margin-top: 3rem; }
  .product-actions { justify-content: center; }
}
@media (max-width: 768px) {
  .shop-filters { overflow-x: auto; }
  .newsletter-form { flex-direction: column; }
  .hero-stats { flex-direction: column; gap: 1rem; }
  .cart-item { flex-wrap: wrap; }
}
