/* ==========================================================================
   LUXE layer - Tandoori Haus design system v2
   Heritage warmth meets modern restraint. Inspired by award-winning
   restaurant sites (amrit.de DNA): editorial serif display, generous
   whitespace, saffron-gold accents on deep espresso, subtle motion.
   ========================================================================== */

/* ---- tokens -------------------------------------------------------------- */
:root {
  --th-espresso: #1c120d;
  --th-brown: #2b1b16;
  --th-ember: #e36231;
  --th-gold: #c8974e;
  --th-gold-light: #ffcf87;
  --th-cream: #fffcf7;
  --th-sand: #f6ecdd;
  --th-wine: #7a2434;
  --th-serif: 'Cormorant Garamond', 'Times New Roman', serif;
  --th-sans: 'Urbanist', 'Poppins', sans-serif;
}

/* ---- typography ---------------------------------------------------------- */
.menu-experience h1,
.menu-experience h2,
.section-title-wrap .title,
.menu-rail__card h2 {
  font-family: var(--th-serif) !important;
  font-weight: 600 !important;
  letter-spacing: .2px;
  line-height: 1.12;
}
.menu-experience h1 { font-size: clamp(38px, 5.2vw, 64px); }
.menu-experience h2 { font-size: clamp(26px, 3vw, 40px); }

body { font-family: var(--th-sans); }

.menu-kicker {
  letter-spacing: 3px !important;
  text-transform: uppercase;
  font-size: 12px !important;
}

/* ornament divider under section titles */
.section-title-wrap { position: relative; padding-bottom: 26px; }
.section-title-wrap::after {
  content: '✦';
  position: absolute; bottom: 0; left: 50%; transform: translateX(-50%);
  color: var(--th-gold); font-size: 13px; letter-spacing: 8px;
}
.section-title-wrap::before {
  content: ''; position: absolute; bottom: 8px; left: calc(50% - 70px);
  width: 52px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--th-gold));
}
.section-title-wrap:not(:has(::after))::before {}
.section-title-wrap .title + .subtitle { margin-top: 10px !important; }
.section-title-wrap::after { left: 50%; }
.section-title-wrap > *:first-child { margin-bottom: 0; }
.section-title-wrap::after,
.section-title-wrap::before { pointer-events: none; }

/* ---- buttons -------------------------------------------------------------- */
.btn-custom,
.menu-primary-action,
.th-order,
.a-btn-custom {
  background: linear-gradient(135deg, var(--th-ember) 0%, #b9552b 60%, var(--th-gold) 130%) !important;
  border: none !important;
  box-shadow: 0 8px 22px rgba(227, 98, 49, .32);
  transition: transform .25s ease, box-shadow .25s ease, filter .25s ease !important;
  overflow: hidden; position: relative;
}
.btn-custom:hover,
.menu-primary-action:hover,
.th-order:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(227, 98, 49, .42);
  filter: brightness(1.06);
}
.btn-custom::after,
.menu-primary-action::after {
  content: ''; position: absolute; top: 0; left: -80%; width: 45%; height: 100%;
  background: linear-gradient(105deg, transparent, rgba(255,255,255,.35), transparent);
  transform: skewX(-20deg); transition: left .55s ease;
}
.btn-custom:hover::after,
.menu-primary-action:hover::after { left: 130%; }

.menu-secondary-action {
  border: 1px solid rgba(255,255,255,.65) !important;
  backdrop-filter: blur(6px); background: rgba(255,255,255,.08) !important;
  transition: all .25s ease !important;
}
.menu-secondary-action:hover { background: rgba(255,255,255,.2) !important; transform: translateY(-2px); }

/* ---- hero ------------------------------------------------------------------ */
.menu-hero { isolation: isolate; }
.menu-hero::after {
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    radial-gradient(ellipse at 18% 85%, rgba(227,98,49,.28), transparent 46%),
    radial-gradient(ellipse at 84% 16%, rgba(200,151,78,.22), transparent 44%),
    linear-gradient(180deg, rgba(20,12,8,.42) 0%, rgba(20,12,8,.12) 42%, rgba(20,12,8,.62) 100%);
}
.menu-hero__content { z-index: 3; }
.menu-hero__logo { filter: drop-shadow(0 10px 30px rgba(0,0,0,.45)); }
.menu-hero-badge {
  background: linear-gradient(135deg, rgba(227,98,49,.92), rgba(200,151,78,.92)) !important;
  box-shadow: 0 6px 18px rgba(227,98,49,.35) !important;
}

/* ---- product cards ---------------------------------------------------------- */
.menu-product .product {
  border-radius: 20px !important;
  transition: transform .3s cubic-bezier(.2,.7,.3,1), box-shadow .3s ease !important;
}
.menu-product .product:hover {
  transform: translateY(-5px);
  box-shadow: 0 22px 48px rgba(43,27,22,.16) !important;
}
.menu-product .product-thumb { border-radius: 20px 20px 0 0; overflow: hidden; }
.menu-product .product-thumb img { transition: transform .6s cubic-bezier(.2,.7,.3,1); }
.menu-product .product:hover .product-thumb img { transform: scale(1.06); }
.product-price { font-family: var(--th-sans); font-weight: 700; }
.order-item.product-add {
  border-radius: 40px !important;
  background: var(--th-brown) !important;
  transition: all .25s ease !important;
}
.order-item.product-add:hover:not([disabled]) { background: var(--th-ember) !important; box-shadow: 0 8px 18px rgba(227,98,49,.35); }

/* ---- rail & offers ------------------------------------------------------------ */
.menu-rail__card { border-radius: 22px !important; }
.menu-offer {
  background: linear-gradient(135deg, #fdf3e0, #fbe8cf) !important;
  border: 1px solid rgba(200,151,78,.45) !important;
  border-radius: 18px !important;
}
.menu-rail__checkout {
  background: linear-gradient(135deg, var(--th-brown), #472e21) !important;
  border-radius: 14px !important;
  transition: all .25s ease !important;
}
.menu-rail__checkout:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(43,27,22,.35); }

/* ---- review cards --------------------------------------------------------------- */
.review-card { transition: transform .3s ease, box-shadow .3s ease; }
.review-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(43,27,22,.12); }
.review-card .star-rating i { animation: th-twinkle 2.6s infinite; }
.review-card .star-rating i:nth-child(2) { animation-delay: .2s; }
.review-card .star-rating i:nth-child(3) { animation-delay: .4s; }
.review-card .star-rating i:nth-child(4) { animation-delay: .6s; }
.review-card .star-rating i:nth-child(5) { animation-delay: .8s; }
@keyframes th-twinkle { 0%,100% { opacity: 1; } 50% { opacity: .55; } }

/* ---- catering dark section --------------------------------------------------------- */
section[style*="#2b1b16"] { position: relative; overflow: hidden; }
section[style*="#2b1b16"]::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(ellipse at 88% -10%, rgba(200,151,78,.18), transparent 52%);
  pointer-events: none;
}

/* ---- scroll reveal (progressive enhancement) ---------------------------------------- */
.reveal { opacity: 0; transform: translateY(26px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.3,1); }
.reveal.in-view { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  * { animation-duration: .001s !important; }
}

/* ---- header refinement ------------------------------------------------------------------ */
.th-strip { background: linear-gradient(90deg, #17100c, #33211a 55%, #17100c); }
.th-order { background: linear-gradient(135deg, var(--th-ember), var(--th-gold)) !important; color: #fff !important; }
.th-tabs a { position: relative; }
.th-tabs a::after {
  content: ''; position: absolute; left: 12px; right: 100%; bottom: 6px; height: 2px;
  background: linear-gradient(90deg, var(--th-ember), var(--th-gold));
  transition: right .28s cubic-bezier(.2,.7,.3,1); border-radius: 2px;
}
.th-tabs a:hover::after { right: 12px; }

/* ==========================================================================
   v2.1 fixes: full-view product cards + refined utility strip
   ========================================================================== */

/* ---- product cards: vertical, nothing clipped ---------------------------- */
.menu-product .product { display: block !important; overflow: visible !important; min-height: 0 !important; }
.menu-product .ajaxform { display: flex !important; flex-direction: column !important; width: 100%; }
.menu-product .product-thumb {
  aspect-ratio: 16 / 10 !important; height: auto !important;
  min-height: 0 !important; width: 100%; position: relative; overflow: hidden;
}
.menu-product .product-thumb img { position: static !important; width: 100%; height: 100% !important; object-fit: cover; }
.menu-product .product-body { display: flex !important; flex-direction: column; flex: 1 0 auto; padding: 18px 20px 20px !important; }
.menu-product .product-desc { display: block; }
.menu-product .product-description {
  display: block !important; overflow: visible !important;
  -webkit-line-clamp: unset !important; line-clamp: unset !important;
}
.menu-product .product-actions { margin-top: auto; }
.menu-product .product-price { white-space: nowrap; }

/* ---- utility strip: editorial ticker with live status --------------------- */
.th-strip { background: linear-gradient(90deg,#17100c,#2e1d15 50%,#17100c); position: relative; }
.th-strip::after { content:''; position:absolute; left:0; right:0; bottom:0; height:2px;
  background: linear-gradient(90deg, transparent, var(--th-gold) 30%, var(--th-ember) 55%, var(--th-gold) 75%, transparent);
  opacity:.85; }
.th-strip__inner { gap: 26px !important; letter-spacing:.2px; }
.th-utility a, .th-utility span { color:#e9dcc8; font-size:12.5px; align-items:center; transition: color .2s ease; }
.th-utility a:hover { color: var(--th-gold-light); }
.th-status {
  background: rgba(200,151,78,.14); border:1px solid rgba(200,151,78,.45);
  border-radius:50px; padding:3px 13px; font-size:11.5px; letter-spacing:1px;
  text-transform:uppercase; color: var(--th-gold-light) !important;
}
.th-status i { animation: th-pulse-dot 2s infinite; }
@keyframes th-pulse-dot { 0%,100%{opacity:1} 50%{opacity:.35} }
