/* ============================================================
   Nitya Chikankari — Serif/Roman Typography & Brand Logo Palette
   - Roman / Serif typeface throughout site-wide ('Cormorant Garamond', Georgia, serif)
   - Plain White background (#FFFFFF) throughout
   - Brand Logo Crimson Maroon (#660019 / #540014) for headings & key text
   ============================================================ */

html {
  font-size: 112.5% !important; /* Scaled up root base font-size site-wide from 16px to 18px (+2pt / +2px) */
}

body {
  background-color: #FFFFFF !important;
  color: #2D0A10 !important;
  font-family: 'Cormorant Garamond', Georgia, 'Times New Roman', serif !important;
  font-size: 1.18rem !important;
  line-height: 1.6;
}

/* Serif font enforcement across all typography elements */
h1, h2, h3, h4, h5, h6, .font-display, .font-body, p, a, button, input, select, textarea, span, label, td, th {
  font-family: 'Cormorant Garamond', Georgia, 'Times New Roman', serif !important;
}

/* Brand Logo Crimson Maroon Headings & Key Text */
h1, h2, h3, h4, .text-brand-heading {
  color: #660019 !important;
  font-weight: 700;
}

/* Adaptive Focus & Outline Rules */
:focus-visible {
  outline: 2.5px solid #660019 !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 4px rgba(102, 0, 25, 0.15) !important;
}

/* Custom scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #FFFFFF; }
::-webkit-scrollbar-thumb { background: #660019; border-radius: 10px; border: 2px solid #FFFFFF; }
::-webkit-scrollbar-thumb:hover { background: #400010; }

/* High contrast Logo helper for dark backgrounds */
.logo-dark-bg {
  filter: brightness(0) invert(1) drop-shadow(0 2px 8px rgba(0,0,0,0.3));
}

/* Flash auto-dismiss */
.flash-alert { animation: fadeInDown 0.4s ease-out both; }
@keyframes fadeInDown {
  from { opacity: 0; transform: translateY(-10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Hero decorative petals */
.petal {
  position: absolute;
  pointer-events: none;
  opacity: 0.12;
  animation: floatPetal linear infinite;
}
@keyframes floatPetal {
  0%   { transform: translateY(0) rotate(0deg);   opacity: 0.12; }
  50%  { opacity: 0.18; }
  100% { transform: translateY(-120px) rotate(360deg); opacity: 0; }
}

/* Shimmer loading skeleton */
.shimmer-bg {
  background: linear-gradient(90deg, #F5E6E8 25%, #FFFFFF 50%, #F5E6E8 75%);
  background-size: 200% 100%;
  animation: shimmerAnim 1.5s infinite;
}
@keyframes shimmerAnim {
  0%   { background-position: -200% 0; }
  100% { background-position:  200% 0; }
}

/* Price display helpers */
.price-current  { color: #660019 !important; font-weight: 700; font-size: 1.28rem; }
.price-original { text-decoration: line-through; color: #7A6066; font-size: 1.02rem; margin-left: 6px; }
.price-off      { color: #047857; font-size: 0.92rem; margin-left: 4px; font-weight: 600; background: #ECFDF5; padding: 2px 8px; border-radius: 9999px; border: 1px solid #A7F3D0; }

/* Status badges for order table */
.status-tag { display: inline-block; padding: 3px 10px; border-radius: 20px; font-size: 15px; font-weight: 600; }
.status-paid, .status-delivered { background: #ECFDF5; color: #065F46; border: 1px solid #A7F3D0; }
.status-pending, .status-placed { background: #FFFBEB; color: #92400E; border: 1px solid #FDE68A; }
.status-failed, .status-cancelled { background: #FEF2F2; color: #991B1B; border: 1px solid #FECACA; }

/* Size button base */
.size-btn { transition: all 0.2s ease; border: 2px solid #EBC7CE; background: #FFFFFF; color: #660019; font-weight: 600; }
.size-btn:hover { border-color: #660019; color: #660019; background: #FFF5F7; }
.size-btn.active {
  background: #660019 !important;
  color: #FFFFFF !important;
  border-color: #660019 !important;
  box-shadow: 0 4px 14px rgba(102, 0, 25, 0.25);
}

/* Cart count pulse on update */
.cart-count { transition: transform 0.2s; }
.cart-count.bump { transform: scale(1.5); }

/* Admin sidebar & main workspace */
.admin-body { background: #FFFFFF; color: #2D0A10; }
.admin-wrapper { display: flex; min-height: 100vh; }
.admin-sidebar { width: 250px; background: #660019; color: #FFFFFF; padding: 24px 0; border-right: 1px solid #400010; }
.admin-sidebar h2 { padding: 0 24px 20px; font-size: 22px; color: #FFFFFF; font-weight: 700; }
.admin-sidebar a { display: block; padding: 12px 24px; color: #F5E6E8; font-size: 17px; text-decoration: none; transition: all 0.2s; }
.admin-sidebar a:hover, .admin-sidebar a.active { background: #400010; color: #FFFFFF; border-left: 4px solid #D4AF37; font-weight: 600; }
.admin-main { flex: 1; padding: 30px; background: #FFFFFF; color: #2D0A10; }
.admin-topbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; }
.stat-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 18px; margin-bottom: 30px; }
.stat-card { background: #FFFFFF; border-radius: 16px; padding: 20px; box-shadow: 0 4px 20px rgba(102,0,25,0.06); border: 1px solid #F4E3E6; }
.stat-card .num { font-size: 32px; font-weight: 700; color: #660019; }
.stat-card .label { font-size: 16px; color: #7A6066; font-weight: 500; }
.admin-table { width: 100%; border-collapse: collapse; background: #FFFFFF; border-radius: 16px; overflow: hidden; box-shadow: 0 4px 20px rgba(102,0,25,0.06); border: 1px solid #F4E3E6; color: #2D0A10; }
.admin-table th, .admin-table td { padding: 14px 16px; border-bottom: 1px solid #F4E3E6; font-size: 16px; text-align: left; }
.admin-table th { background: #FFF0F2; color: #660019; font-weight: 700; }

@media (max-width: 768px) {
  .admin-wrapper { flex-direction: column; }
  .admin-sidebar { width: 100%; }
}

/* Nishorama Hero Carousel Custom Utilities */
.scale-103 { transform: scale(1.03); }
.carousel-slide img {
  will-change: transform;
}
#hero-carousel-container:hover #carousel-prev,
#hero-carousel-container:hover #carousel-next {
  opacity: 1;
}

/* Nishorama-Inspired Dual Marquee Scrolling Collage Keyframes */
@keyframes marqueeLeft {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

@keyframes marqueeRight {
  0% { transform: translateX(-50%); }
  100% { transform: translateX(0); }
}

.animate-marquee-left {
  animation: marqueeLeft 35s linear infinite;
  will-change: transform;
}

.animate-marquee-right {
  animation: marqueeRight 35s linear infinite;
  will-change: transform;
}

.scale-108 { transform: scale(1.08); }


