/* Holy Smash 1.3 — animated promotion, scoped independently of the old banner. */
.holy-promo {
  width:100%; min-width:0; margin-bottom:24px; container:holy-promo / inline-size;
  font-family:Arial,Helvetica,sans-serif; color:#f8f4e9;
}
.holy-promo,.holy-promo *,.holy-promo *::before,.holy-promo *::after { box-sizing:border-box; }
.holy-promo .holy-promo-card {
  position:relative; isolation:isolate; display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
  align-items:center; min-height:320px; overflow:hidden; background:#141710; border:1px solid #3e432b; border-radius:22px;
}
.holy-promo .holy-promo-card::before {
  content:""; position:absolute; right:-80px; top:-80px; width:430px; height:430px; border-radius:50%;
  background:radial-gradient(circle,#a88b2833 0,#a88b280c 52%,transparent 70%); z-index:-1; pointer-events:none;
}
.holy-promo .holy-promo-copy {
  min-width:0; padding:32px 0 30px 34px; position:relative; z-index:3;
  animation:holy-promo-enter-copy .6s ease-out both;
}
.holy-promo .holy-promo-kicker {
  display:flex; align-items:center; gap:9px; font-size:11px; line-height:1.4; font-weight:800;
  letter-spacing:2px; color:#ffca18; margin:0 0 15px;
}
.holy-promo .holy-promo-kicker::before { content:""; width:18px; height:3px; flex-shrink:0; background:currentColor; transform:rotate(-14deg); }
.holy-promo .holy-promo-copy h2 {
  font-family:Arial Black,Arial,sans-serif; font-size:clamp(38px,7.5cqi,64px); font-weight:950;
  line-height:.94; letter-spacing:-2.4px; margin:0; color:#fff7e6; text-transform:uppercase;
}
.holy-promo .holy-promo-copy h2 span { display:block; color:#ffc400; }
.holy-promo .holy-promo-description { font-size:15px; line-height:1.45; color:#c4c5b8; margin:17px 0 22px; }
.holy-promo .holy-promo-description small { display:block; color:#aeb398; font-size:12px; margin-top:3px; }
.holy-promo .holy-promo-cta {
  position:relative; overflow:hidden; display:inline-flex; align-items:center; justify-content:center; gap:22px;
  max-width:100%; border:0; border-radius:9px; min-height:48px; padding:13px 20px; color:#11150d; background:#ffc400;
  font-family:inherit; font-size:14px; line-height:1.35; font-weight:800; box-shadow:0 5px 0 #a37900;
  cursor:pointer; transition:transform .18s,box-shadow .18s;
}
.holy-promo .holy-promo-cta::after {
  content:""; position:absolute; inset:-100% auto -100% -70%; width:30%; background:#ffffff65;
  transform:rotate(22deg); animation:holy-promo-shine 8s 1.5s infinite; pointer-events:none;
}
.holy-promo .holy-promo-arrow { flex-shrink:0; transition:transform .2s; }
.holy-promo .holy-promo-cta:enabled:active { transform:translateY(3px); box-shadow:0 2px 0 #a37900; }
.holy-promo .holy-promo-cta:disabled { cursor:not-allowed; color:#d0d4c2; background:#383e2c; box-shadow:0 3px 0 #22261b; opacity:1; }
.holy-promo .holy-promo-cta:disabled::after { content:none; }
.holy-promo .holy-promo-art {
  position:relative; align-self:stretch; display:flex; align-items:center; justify-content:center; min-width:0;
  padding:35px 16px 15px 0; z-index:1; animation:holy-promo-enter-food .8s cubic-bezier(.17,.67,.29,1) both;
}
.holy-promo .holy-promo-art::before {
  content:""; position:absolute; inset:19% 4% 13% 2%; background-image:radial-gradient(#f8cf4740 1px,transparent 1px);
  background-size:11px 11px; transform:rotate(-12deg); border-radius:40%; pointer-events:none;
}
.holy-promo .holy-promo-orbit {
  position:relative; width:100%; max-width:300px; aspect-ratio:1.08;
  animation:holy-promo-float 6s ease-in-out infinite; will-change:transform;
}
.holy-promo .holy-promo-orbit::before {
  content:""; position:absolute; inset:8px 0 -8px -5px; border:2px solid #eabb21;
  border-radius:46% 54% 49% 51%; transform:rotate(-9deg); pointer-events:none;
}
.holy-promo .holy-promo-food {
  position:absolute; inset:0; background-color:#fff; background-image:url('/assets/menu/1.png');
  background-size:214% auto; background-position:100% 56.1%; border-radius:46% 54% 45% 55%;
  box-shadow:0 20px 26px #0006; transform:rotate(-7deg); transition:transform .35s;
}
.holy-promo .holy-promo-stamp {
  position:absolute; bottom:14px; left:-8px; z-index:2; background:#ffc400; color:#13170d; padding:14px 19px;
  border:3px solid #141710; border-radius:12px; transform:rotate(-7deg); box-shadow:0 6px 0 #0005; white-space:nowrap;
}
.holy-promo .holy-promo-stamp small { display:block; font-size:10px; line-height:1.4; letter-spacing:1.4px; font-weight:800; margin-bottom:3px; }
.holy-promo .holy-promo-stamp strong { display:block; font-size:29px; font-weight:900; line-height:1; }
.holy-promo .holy-promo-price-wide strong { font-size:24px; }
.holy-promo .holy-promo-motion {
  position:absolute; z-index:5; right:8px; top:3px; display:inline-flex; align-items:center; justify-content:center;
  gap:5px; min-height:44px; min-width:76px; padding:8px; border:0; border-radius:6px; background:transparent;
  color:#b8bea4; font-family:inherit; font-size:11px; line-height:1.3; letter-spacing:.2px; cursor:pointer;
}
.holy-promo button:focus-visible { outline:3px solid #fff4be; outline-offset:3px; }
/* Pause only repeating motion; the entrance always finishes so content stays visible. */
.holy-promo[data-paused="true"] .holy-promo-orbit,
.holy-promo[data-paused="true"] .holy-promo-cta::after { animation-play-state:paused; }
@keyframes holy-promo-float { 0%,100%{transform:translateY(2px) rotate(0)} 50%{transform:translateY(-6px) rotate(1deg)} }
@keyframes holy-promo-enter-copy { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:translateY(0)} }
@keyframes holy-promo-enter-food { from{opacity:0;transform:translateX(24px) rotate(3deg)} to{opacity:1;transform:translateX(0) rotate(0)} }
@keyframes holy-promo-shine { 0%,75%,100%{left:-70%;opacity:0} 78%{opacity:.65} 88%{left:130%;opacity:0} }
@media(hover:hover) {
  .holy-promo .holy-promo-card:hover .holy-promo-food { transform:rotate(-5deg) scale(1.025); }
  .holy-promo .holy-promo-cta:enabled:hover .holy-promo-arrow { transform:translateX(4px); }
  .holy-promo .holy-promo-motion:hover { color:#fff2ba; background:#343a2780; }
}
@container holy-promo (max-width:560px) {
  .holy-promo .holy-promo-card { min-height:270px; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); border-radius:17px; }
  .holy-promo .holy-promo-copy { padding:25px 0 24px 20px; }
  .holy-promo .holy-promo-copy h2 { font-size:clamp(29px,7.5cqi,43px); letter-spacing:-1.5px; }
  .holy-promo .holy-promo-kicker { font-size:11px; letter-spacing:.6px; gap:6px; margin-bottom:12px; }
  .holy-promo .holy-promo-kicker::before { width:11px; }
  .holy-promo .holy-promo-description { font-size:13px; margin:13px 0 17px; }
  .holy-promo .holy-promo-description small { font-size:11px; }
  .holy-promo .holy-promo-cta { font-size:12px; padding:11px 13px; gap:9px; min-height:46px; }
  .holy-promo .holy-promo-arrow { width:18px; height:18px; }
  .holy-promo .holy-promo-art { padding:40px 9px 35px 7px; }
  .holy-promo .holy-promo-stamp { left:0; bottom:-13px; padding:10px 12px; border-width:2px; }
  .holy-promo .holy-promo-stamp strong { font-size:23px; }
  .holy-promo .holy-promo-stamp small { font-size:11px; }
  .holy-promo .holy-promo-price-wide strong { font-size:19px; }
  .holy-promo .holy-promo-motion { top:0; right:5px; }
}
@container holy-promo (max-width:360px) {
  .holy-promo .holy-promo-copy { padding-left:14px; }
  .holy-promo .holy-promo-copy h2 { font-size:clamp(26px,9cqi,29px); letter-spacing:-1.4px; }
  .holy-promo .holy-promo-kicker::before { display:none; }
  .holy-promo .holy-promo-cta { font-size:11px; padding:10px; gap:5px; }
  .holy-promo .holy-promo-description { font-size:12px; }
  .holy-promo .holy-promo-stamp { left:auto; right:4px; bottom:6px; padding:9px; }
  .holy-promo .holy-promo-stamp strong { font-size:20px; }
  .holy-promo .holy-promo-price-wide { padding-inline:5px; right:2px; }
  .holy-promo .holy-promo-price-wide strong { font-size:17px; letter-spacing:-.3px; }
}
@media(prefers-reduced-motion:reduce) {
  .holy-promo *,.holy-promo *::before,.holy-promo *::after { animation:none!important; transition:none!important; }
  .holy-promo .holy-promo-orbit { will-change:auto; }
  .holy-promo .holy-promo-motion { display:none; }
}
