/* ============================================
   THE MURLI — HOME PAGE STYLES (v4)
   ============================================ */

/* ── HERO ── */
.hero {
  position: relative;
  min-height: 92vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: var(--crimson-dark);
}
.hero-banner-bg {
  position: absolute;
  inset: 0;
  background-image: url('../assets/images/banner.jpg');
  background-size: cover;
  background-position: center;
  filter: brightness(0.45);
}
.hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(80,0,0,0.45) 0%, rgba(139,0,0,0.30) 50%, rgba(120,40,0,0.20) 100%);
}
.hero-deco {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(212,160,23,0.12);
  animation: pulse-ring 4s ease-in-out infinite;
}
.hero-deco-1 { width: 500px; height: 500px; right: -80px; top: -80px; animation-delay: 0s; }
.hero-deco-2 { width: 720px; height: 720px; right: -180px; top: -180px; animation-delay: 0.9s; }
.hero-deco-3 { width: 960px; height: 960px; right: -280px; top: -280px; animation-delay: 1.8s; }
@keyframes pulse-ring {
  0%, 100% { opacity: 0.1; transform: scale(1); }
  50%       { opacity: 0.22; transform: scale(1.02); }
}
.hero-content {
  position: relative;
  z-index: 2;
  max-width: 720px;
  padding: 80px 0 60px;
}
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(32px); }
  to   { opacity: 1; transform: translateY(0); }
}
.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(212,160,23,0.18);
  border: 1px solid rgba(212,160,23,0.45);
  color: var(--gold-bright);
  padding: 7px 20px;
  border-radius: 50px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-bottom: 28px;
  animation: fadeInUp 0.8s 0.1s ease both;
}
.hero-title {
  font-family: 'Playfair Display', 'Georgia', serif;
  font-size: clamp(2.2rem, 5vw, 3.8rem);
  font-weight: 900;
  color: var(--white);
  line-height: 1.1;
  margin-bottom: 8px;
  animation: fadeInUp 0.9s 0.2s ease both;
  letter-spacing: -1px;
}
.hero-title span {
  display: block;
  background: linear-gradient(135deg, #F0C040, #D4A017, #F5D060);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-style: italic;
}
.hero-subtitle {
  font-size: clamp(0.92rem, 2vw, 1.08rem);
  color: rgba(255,255,255,0.82);
  margin-bottom: 40px;
  margin-top: 18px;
  line-height: 1.8;
  max-width: 580px;
  font-weight: 400;
  animation: fadeInUp 0.9s 0.35s ease both;
}
.hero-buttons {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  animation: fadeInUp 0.9s 0.45s ease both;
}
.hero-buttons .btn-gold { padding: 15px 36px; font-size: 1rem; box-shadow: 0 6px 28px rgba(212,160,23,0.5); }
.hero-buttons .btn-outline { padding: 13px 32px; font-size: 1rem; color: white; border-color: rgba(255,255,255,0.45); }
.hero-buttons .btn-outline:hover { background: rgba(255,255,255,0.12); color: white; border-color: rgba(255,255,255,0.7); transform: translateY(-2px); }
.hero-badges {
  display: flex;
  gap: 24px;
  margin-top: 52px;
  flex-wrap: wrap;
  animation: fadeInUp 0.9s 0.55s ease both;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,0.1);
}
.hero-badge-item { display: flex; align-items: center; gap: 10px; color: rgba(255,255,255,0.8); font-size: 0.86rem; font-weight: 500; }
.hero-badge-item .icon-circle {
  width: 40px; height: 40px;
  background: rgba(212,160,23,0.2);
  border: 1.5px solid rgba(212,160,23,0.4);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.15rem; flex-shrink: 0; transition: var(--transition);
}
.hero-badge-item:hover .icon-circle { background: var(--gold); border-color: var(--gold); transform: scale(1.1); }
.hero-scroll {
  position: absolute;
  bottom: 28px; left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  display: flex; flex-direction: column; align-items: center;
  gap: 6px; color: rgba(255,255,255,0.45);
  font-size: 0.72rem; letter-spacing: 2px; text-transform: uppercase;
  animation: bounce-scroll 2.2s infinite;
}
@keyframes bounce-scroll {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50%       { transform: translateX(-50%) translateY(9px); }
}
.hero-scroll svg { width: 22px; height: 22px; }

/* ── ORDER STRIP — CREAM CARD ON CRIMSON BG ── */
.order-strip {
  background: var(--crimson-dark);
  padding: 48px 0;
  position: relative;
  border-bottom: 3px solid var(--gold);
}
.order-strip::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
}
.order-strip-inner {
  display: grid;
  grid-template-columns: 1fr 60px 1fr;
  align-items: center;
  background: var(--cream);
  border: 2px solid rgba(212,160,23,0.5);
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: 0 8px 40px rgba(0,0,0,0.35);
}
.order-option-wrapper {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 36px 40px;
  background: var(--cream);
  transition: var(--transition);
}
.order-option-wrapper:hover { background: var(--cream-dark); }
.order-option-icon-wrap {
  font-size: 2.4rem;
  width: 68px; height: 68px;
  background: var(--gold-pale);
  border: 2px solid rgba(212,160,23,0.3);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; transition: var(--transition);
}
.order-option-wrapper:hover .order-option-icon-wrap {
  background: var(--gold); border-color: var(--gold);
  transform: scale(1.1) rotate(-5deg);
}
.order-option-title { font-family: 'Playfair Display', serif; font-size: 1.45rem; font-weight: 800; color: var(--crimson); margin-bottom: 7px; }
.order-option-desc { font-size: 0.88rem; color: var(--text-muted); line-height: 1.6; margin-bottom: 2px; }
.order-strip-divider {
  display: flex; align-items: center; justify-content: center;
  height: 100%; padding: 20px 0;
  border-left: 2px dashed rgba(212,160,23,0.3);
  border-right: 2px dashed rgba(212,160,23,0.3);
  background: var(--cream-dark);
}
.order-strip-divider span {
  background: var(--gold-pale);
  color: var(--crimson);
  border: 2px solid rgba(212,160,23,0.4);
  width: 36px; height: 36px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%; font-size: 0.78rem; font-weight: 800;
}
.order-platform-btn {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 9px 18px;
  background: var(--cream-dark);
  border: 1.5px solid var(--border);
  border-radius: 50px;
  font-weight: 700; font-size: 0.82rem; color: var(--dark);
  transition: var(--transition);
}
.order-platform-btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-sm); }
.order-platform-btn.swiggy { border-color: #FF5200; color: #FF5200; background: #FFF0E8; }
.order-platform-btn.swiggy:hover { background: #FF5200; color: white; }
.order-platform-btn.zomato { border-color: #E23744; color: #E23744; background: #FFF0F1; }
.order-platform-btn.zomato:hover { background: #E23744; color: white; }

/* ── BANNER SLIDER — TALL ── */
.hero-slider-section {
  background: var(--crimson-dark);
  position: relative;
  overflow: hidden;
  display: block;
}
.slider-wrapper {
  position: relative;
  overflow: hidden;
  height: 580px; /* nice tall slider */
}
.slider-track {
  display: flex;
  height: 100%;
  transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: transform;
}
.slide {
  min-width: 100%;
  height: 100%;
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
}
.slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.slide-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
  text-align: center;
  padding: 40px;
}
.slide-placeholder h2 {
  font-family: 'Playfair Display', serif;
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 900;
  color: white;
}
.slide-placeholder p { color: rgba(255,255,255,0.75); font-size: 1rem; }
.slide-overlay {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.3) 50%, transparent 100%);
  padding: 60px 64px 44px;
}
.slide-caption span {
  display: inline-block;
  background: var(--gold);
  color: var(--dark);
  padding: 5px 18px;
  border-radius: 20px;
  font-size: 0.82rem;
  font-weight: 700;
  margin-bottom: 14px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}
.slide-caption h2 {
  font-family: 'Playfair Display', serif;
  font-size: clamp(2rem, 4.5vw, 3.4rem);
  font-weight: 900;
  color: white;
  line-height: 1.1;
  text-shadow: 0 2px 12px rgba(0,0,0,0.4);
}
.slider-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255,255,255,0.15);
  border: 1.5px solid rgba(255,255,255,0.3);
  color: white;
  width: 56px; height: 56px;
  border-radius: 50%;
  font-size: 1.2rem;
  cursor: pointer;
  transition: var(--transition);
  z-index: 10;
  display: flex; align-items: center; justify-content: center;
  backdrop-filter: blur(8px);
}
.slider-btn:hover { background: var(--crimson); border-color: var(--crimson); transform: translateY(-50%) scale(1.1); }
.slider-btn.prev { left: 24px; }
.slider-btn.next { right: 24px; }
.slider-dots {
  position: absolute;
  bottom: 22px; left: 50%;
  transform: translateX(-50%);
  display: flex; gap: 10px; z-index: 10;
}
.slider-dots .dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  background: rgba(255,255,255,0.4);
  cursor: pointer;
  transition: var(--transition);
  border: none;
}
.slider-dots .dot.active { background: var(--gold); transform: scale(1.35); }

/* ── FEATURED CATS ── */
.featured-cats { padding: 80px 0; background: var(--cream); }
.featured-cats-header { text-align: center; margin-bottom: 44px; }

/* ── ITEM SLIDER SECTION ── */
.item-slider-section { padding: 80px 0; background: var(--white); overflow: hidden; }
.item-slider-header { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 36px; flex-wrap: wrap; gap: 16px; }
.item-slider-wrap { position: relative; }
.item-slider-track-outer { overflow: hidden; border-radius: var(--radius-lg); }
.item-slider-track {
  display: flex;
  gap: 20px;
  transition: transform 0.45s cubic-bezier(0.4,0,0.2,1);
  will-change: transform;
  /* KEY FIX: items in slider stretch to match tallest */
  align-items: stretch;
}
.item-slider-track .item-card { flex-shrink: 0; }
.item-slider-nav { display: flex; gap: 10px; justify-content: center; margin-top: 24px; }
.item-slider-nav button {
  width: 46px; height: 46px;
  border-radius: 50%;
  background: var(--white);
  border: 2px solid var(--border);
  color: var(--crimson);
  font-size: 1rem;
  cursor: pointer;
  transition: var(--transition);
  box-shadow: var(--shadow-sm);
  display: flex; align-items: center; justify-content: center;
}
.item-slider-nav button:hover { background: var(--crimson); color: white; border-color: var(--crimson); transform: scale(1.05); }
.item-slider-dots { display: flex; gap: 8px; justify-content: center; margin-top: 16px; }

/* ── BESTSELLERS ── */
.bestsellers { padding: 80px 0; background: var(--cream-dark); position: relative; }
.bestsellers::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
}

/* ─────────────────────────────────────────────────────────────
   ITEM CARD — FULLY FIXED ALIGNMENT
   The key: use CSS subgrid / fixed image height + flex column
   so ALL cards in a row are the same height automatically.
───────────────────────────────────────────────────────────── */
.items-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
  /* KEY FIX: align-items stretch means all cards in a row are same height */
  align-items: stretch;
}

.item-card {
  background: var(--white);
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1.5px solid var(--border);
  transition: var(--transition);
  box-shadow: var(--shadow-sm);
  position: relative;
  /* KEY FIX: flex column so body stretches, actions always at bottom */
  display: flex;
  flex-direction: column;
}
.item-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); border-color: rgba(212,160,23,0.55); }

/* FIXED HEIGHT IMAGE — all images same height so cards align */
.item-card-image {
  position: relative;
  width: 100%;
  height: 185px;          /* fixed — never changes */
  background: linear-gradient(135deg, #F5EAD0, #EFE0C0);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;          /* never compress */
}
.item-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.item-card:hover .item-card-image img { transform: scale(1.07); }

.item-card-image-placeholder {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 10px; color: var(--text-muted); text-align: center;
  padding: 20px; width: 100%; height: 100%; position: absolute; inset: 0;
}
.item-card-image-placeholder .ph-icon { font-size: 3.5rem; opacity: 0.45; line-height: 1; }
.item-card-image-placeholder span { font-size: 0.78rem; color: var(--text-muted); max-width: 130px; line-height: 1.35; }

.item-card-badges { position: absolute; top: 10px; left: 10px; display: flex; flex-direction: column; gap: 4px; z-index: 2; }
.item-card-veg    { position: absolute; top: 10px; right: 10px; z-index: 2; }

/* Body: flex-grow so it fills remaining height */
.item-card-body {
  padding: 16px 18px;
  flex: 1;               /* KEY FIX: fills remaining card height */
  display: flex;
  flex-direction: column;
}

.item-card-name {
  font-family: 'Playfair Display', serif;
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-main);
  margin-bottom: 5px;
  line-height: 1.3;
  /* Clamp to 2 lines so names don't push everything down */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.6em;      /* reserve space for 2 lines always */
}

.item-card-desc {
  font-size: 0.78rem;
  color: var(--text-muted);
  margin-bottom: 10px;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  /* Flex-grow: pushes prices+actions to bottom */
  flex: 1;
}

.item-card-avail { display: flex; gap: 5px; flex-wrap: wrap; margin-bottom: 10px; }

/* KEY FIX: Prices section — fixed min-height so cards with 1 price vs 3 prices still align */
.item-card-prices {
  margin-bottom: 12px;
  /* All price sections take the same min vertical space */
  min-height: 72px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.price-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 4px 0;
  border-bottom: 1px dashed rgba(0,0,0,0.07);
  font-size: 0.82rem;
}
.price-row:last-child { border-bottom: none; }
.price-qty { color: var(--text-muted); }
.price-amt { font-weight: 700; color: var(--crimson); }

/* Actions always pinned at bottom */
.item-card-actions {
  display: flex;
  gap: 7px;
  margin-top: auto;   /* pushes to very bottom of card */
}

/* ── STORY SECTION ── */
.story-inner { display: grid; grid-template-columns: 1fr 1.4fr; gap: 60px; align-items: center; }
.story-img-placeholder {
  background: linear-gradient(135deg, var(--cream-dark), var(--white));
  border: 2px solid var(--border);
  border-radius: var(--radius-xl);
  aspect-ratio: 4/3;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  box-shadow: var(--shadow-md);
}
.eyebrow-tag {
  display: inline-block;
  background: var(--gold-pale); color: var(--crimson);
  border: 1px solid rgba(212,160,23,0.3);
  padding: 5px 16px; border-radius: 30px;
  font-size: 0.8rem; font-weight: 700; letter-spacing: 1px;
}

/* ── FAMILY STORY STRIP (new section in index) ── */
.family-strip {
  background: linear-gradient(135deg, var(--crimson-dark), var(--crimson));
  border-radius: var(--radius-xl);
  padding: 52px 52px;
  margin-top: 56px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 40px;
  align-items: center;
  position: relative;
  overflow: hidden;
}
.family-strip::before {
  content: '🍮';
  position: absolute; right: -20px; top: 50%;
  transform: translateY(-50%);
  font-size: 200px; opacity: 0.06; pointer-events: none;
}
.family-avatar {
  width: 100px; height: 100px;
  background: rgba(255,255,255,0.12);
  border: 3px solid rgba(212,160,23,0.5);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Playfair Display', serif;
  font-size: 2.5rem; font-weight: 900;
  color: var(--gold-bright);
  flex-shrink: 0;
  position: relative;
}
.family-avatar::after {
  content: '👑'; position: absolute; bottom: -8px; right: -4px; font-size: 1.2rem;
}
.family-content { position: relative; }
.family-tag {
  display: inline-block;
  background: rgba(212,160,23,0.2); border: 1px solid rgba(212,160,23,0.4);
  color: var(--gold-bright); padding: 4px 14px; border-radius: 20px;
  font-size: 0.72rem; font-weight: 700; letter-spacing: 1.5px;
  text-transform: uppercase; margin-bottom: 10px;
}
.family-name {
  font-family: 'Playfair Display', serif;
  font-size: 1.7rem; font-weight: 900; color: white; margin-bottom: 6px;
}
.family-title { color: var(--gold-bright); font-weight: 600; font-size: 0.9rem; margin-bottom: 14px; }
.family-quote {
  color: rgba(255,255,255,0.82); font-style: italic;
  line-height: 1.7; font-size: 0.95rem;
  border-left: 3px solid var(--gold); padding-left: 16px;
}
.family-pills {
  display: flex; gap: 10px; flex-wrap: wrap; margin-top: 20px;
}
.family-pill {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2);
  color: rgba(255,255,255,0.9); border-radius: 50px;
  padding: 6px 16px; font-size: 0.8rem; font-weight: 600;
}

/* ── RESPONSIVE ── */
@media (max-width: 1100px) {
  .order-strip-inner { grid-template-columns: 1fr; }
  .order-strip-divider { display: none; }
  .story-inner { grid-template-columns: 1fr; }
  .items-grid { grid-template-columns: repeat(3, 1fr); }
  .family-strip { grid-template-columns: 1fr; text-align: center; padding: 40px 32px; }
  .family-avatar { margin: 0 auto; }
  .family-quote { border-left: none; border-top: 3px solid var(--gold); padding-left: 0; padding-top: 14px; }
  .family-pills { justify-content: center; }
}
@media (max-width: 900px) {
  .items-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .hero { min-height: 80vh; }
  .hero-content { padding: 50px 0 40px; }
  .hero-title { font-size: 2.2rem; letter-spacing: -0.5px; }
  .hero-badges { gap: 14px; }
  .order-option-wrapper { padding: 24px 22px; }
  .slider-wrapper { height: 380px; }
  .slide-overlay { padding: 32px 32px 28px; }
  .items-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .item-card-image { height: 155px; }
  .item-card-prices { min-height: 56px; }
}
@media (max-width: 540px) {
  .hero-title { font-size: 1.9rem; }
  .hero-buttons { flex-direction: column; }
  .items-grid { grid-template-columns: 1fr; }
  .slider-wrapper { height: 280px; }
  .slide-overlay { padding: 24px 22px 20px; }
}
