.festive-catering {
  --festive-wine:#731c2e;
  --festive-gold:#e5c58b;
  --festive-ink:#201518;
  --festive-white:#fff;
  scroll-margin-top:100px;
  background:var(--festive-ink);
}
.festive-catering::before { content:''; position:absolute; inset:14px; border:1px solid #e5c58b80; z-index:1; pointer-events:none; }
.festive-catering::after { background:linear-gradient(0deg,#201518f5 0%,#201518ca 27%,#20151826 70%,#20151814 100%); }
.festive-catering > img { object-position:center 35%; }
.festive-tag { position:absolute; top:25px; left:26px; z-index:2; color:var(--festive-white); background:var(--festive-wine); border:1px solid var(--festive-gold); padding:9px 13px; font-size:10px; line-height:1.5; letter-spacing:.12em; font-weight:600; }
.festive-bow { position:absolute; top:0; right:2px; width:150px; height:145px; z-index:1; color:var(--festive-gold); pointer-events:none; }
.photo-link.festive-catering > .festive-copy { left:30px; right:30px; bottom:31px; z-index:2; }
.festive-catering .small-rule { border-color:var(--festive-gold); margin:14px 0 11px; }
.festive-catering .festive-copy p { display:block; max-width:350px; font-size:14px; line-height:1.75; margin:0 0 18px; }
.festive-action { display:inline-flex; justify-content:center; align-items:center; min-height:44px; padding:12px 17px; border:1px solid var(--festive-gold); background:var(--festive-wine); color:var(--festive-white); font-size:11px; font-weight:700; line-height:1.5; transition:background 180ms ease,color 180ms ease; }
.festive-catering:hover .festive-action,.festive-catering:focus-visible .festive-action { background:var(--festive-gold); color:var(--festive-ink); }
.festive-catering:hover .festive-bow,.festive-catering:focus-visible .festive-bow { animation:festive-light 900ms ease-out 1; }
.festive-draft-note { padding:7px 24px; background:#f4eee3; color:#39302a; font-size:10px; line-height:1.6; text-align:center; }
@keyframes festive-light { 50% { filter:drop-shadow(0 0 7px #e5c58bb3); } }
@media(min-width:581px) and (max-width:1050px) {
  .festive-tag { left:22px; top:22px; padding:7px 9px; font-size:8px; }
  .festive-bow { width:100px; height:110px; }
  .photo-link.festive-catering > .festive-copy { left:24px; right:24px; bottom:24px; }
  .festive-catering .festive-copy p { font-size:12px; line-height:1.7; margin-bottom:12px; }
  .festive-action { padding:10px; font-size:10px; }
}
@media(max-width:580px) {
  .entry-grid > .menu-entry { grid-column:1/-1; }
  .entry-grid > .photo-link.festive-catering { grid-column:1/-1; height:350px; min-height:350px; }
  .entry-grid > .photo-link.festive-catering > img { width:100%; height:100%; inset:0; object-fit:cover; object-position:center 30%; }
  .entry-grid > .photo-link.festive-catering::after { background:linear-gradient(0deg,#201518f5 0%,#201518c4 35%,#20151826 75%); }
  .entry-grid > .photo-link.festive-catering > .festive-copy { left:28px; right:28px; bottom:28px; }
  .entry-grid > .photo-link.festive-catering h2 { font-size:27px; }
  .entry-grid > .photo-link.festive-catering .small-rule { display:block; }
  .entry-grid > .photo-link.festive-catering p { display:block; font-size:14px; line-height:1.7; margin-bottom:16px; }
  .festive-action { min-height:46px; font-size:12px; padding:12px 16px; }
  .festive-bow { width:120px; height:125px; }
}
@media(prefers-reduced-motion:reduce) { .festive-action { transition:none; } .festive-catering:hover .festive-bow,.festive-catering:focus-visible .festive-bow { animation:none; } }
