/* ============================================================
   CUSTOM — Per-store overrides for Template PT
   Add store-specific tweaks here. Loaded last so it wins
   over theme.css and style.css.
   ============================================================ */

/* Carrington's: the bright, busy dining-room photo (jerseys, lights) needs a
   stronger left-side scrim so the hero H1 and tagline stay readable. */
.hero-full::before {
  background:
    linear-gradient(90deg, rgba(0, 0, 0, 0.72) 0%, rgba(0, 0, 0, 0.5) 45%, rgba(0, 0, 0, 0.12) 75%, rgba(0, 0, 0, 0) 100%),
    linear-gradient(0deg, rgba(0, 0, 0, 0.62) 0%, rgba(0, 0, 0, 0.18) 55%, rgba(0, 0, 0, 0.05) 100%);
}
@media (max-width: 760px) {
  .hero-full::before {
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.78) 0%, rgba(0, 0, 0, 0.55) 55%, rgba(0, 0, 0, 0.35) 100%);
  }
}

/* ============================================================
   DAILY SPECIALS CAROUSEL (Rakesh 2026-10-18)
   Real HTML text, scroll-snap, prev/next + swipe, no autoplay.
   1 card on phones, 2 / 3 / 4 as the screen widens.
   JS in components.js: buttons, arrow keys, opens on today.
   ============================================================ */
.specials {
  padding: clamp(3rem, 6vw, 5rem) 0;
  background: var(--canvas);
}
.specials-track {
  --sp-gap: 1.25rem;
  --sp-cols: 1;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - (var(--sp-cols) - 1) * var(--sp-gap)) / var(--sp-cols));
  gap: var(--sp-gap);
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding: 0.5rem 0.15rem 1.25rem;
  scrollbar-width: none;
  border-radius: var(--r-lg);
}
.specials-track::-webkit-scrollbar { display: none; }
.specials-track:focus-visible { outline: 3px solid var(--brand); outline-offset: 4px; }
@media (min-width: 600px)  { .specials-track { --sp-cols: 2; } }
@media (min-width: 900px)  { .specials-track { --sp-cols: 3; } }
@media (min-width: 1200px) { .specials-track { --sp-cols: 4; } }
.sp-card {
  scroll-snap-align: start;
  min-width: 0;
  background: #fff;
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-sm);
  padding: 0.9rem 0.9rem 1.3rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  position: relative;
}
.sp-card .sp-media {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 5 / 4;
  object-fit: cover;
  border-radius: var(--r-lg);
}
.sp-card .sp-tile {
  background: var(--brand);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sp-card .sp-tile span {
  font-family: var(--font-display, inherit);
  font-size: clamp(1.6rem, 2.4vw, 2.1rem);
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.sp-card .sp-day {
  font-size: 1.3rem;
  padding: 0.3rem 0.35rem 0;
}
.sp-card .sp-food {
  list-style: none;
  margin: 0;
  padding: 0 0.35rem;
  display: grid;
  gap: 0.45rem;
  font-size: 0.95rem;
  color: var(--ink);
}
.sp-card .sp-food li {
  position: relative;
  padding-left: 1rem;
}
.sp-card .sp-food li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 50%;
  background: var(--brand);
}
.sp-card .sp-bar {
  margin: auto 0 0;
  padding: 0.75rem 0.35rem 0;
  border-top: 1px solid color-mix(in srgb, var(--ink) 12%, transparent);
  font-size: 0.86rem;
  color: color-mix(in srgb, var(--ink) 82%, #fff);
}
.sp-card .sp-bar strong { color: var(--ink); }
.sp-card.is-today { box-shadow: 0 0 0 3px var(--brand), var(--shadow-sm); }
.sp-card .sp-today {
  position: absolute;
  top: 1.4rem;
  left: 1.4rem;
  z-index: 1;
  background: var(--brand-2);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.3rem 0.65rem;
  border-radius: 999px;
}
.specials .sp-note {
  margin: 0.5rem 0 0;
  font-size: 0.9rem;
  color: var(--muted, #5a5350);
  text-align: center;
}
.specials .arrow-btn[disabled] { opacity: 0.4; pointer-events: none; }
@media (prefers-reduced-motion: reduce) {
  .specials-track { scroll-behavior: auto; }
}

/* ============================================================
   HOME HERO PHOTO SLIDESHOW (Rakesh 2026-10-18, Original Pizza 4c46bdd port)
   The project's own photos play like a video: each slide drifts
   with a slow Ken Burns zoom/pan (GPU transform only) and hands
   over with a long cross-fade. JS in components.js only switches
   classes; all motion is CSS. Reduced motion: first photo, still.
   ============================================================ */
.hero-slides {
  overflow: hidden;
  background: #181410;
}
.hero-slides .hero-slide,
.hero-slides .hero-slide img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.hero-slides .hero-slide {
  opacity: 0;
  transition: opacity 1.8s cubic-bezier(0.45, 0, 0.55, 1);
  will-change: opacity;
}
.hero-slides .hero-slide.is-active { opacity: 1; z-index: 2; }
.hero-slides .hero-slide.is-leaving { opacity: 0; z-index: 1; }
.hero-slides .hero-slide img {
  object-fit: cover;
  object-position: center;
  transform: scale(1.04);
  transform-origin: 50% 50%;
  backface-visibility: hidden;
  will-change: transform;
}
/* one continuous, linear drift per slide, long enough to cover the
   fade-in, the hold and the fade-out, so nothing ever snaps */
.hero-slides .kb-1 img { animation: heroKb1 9.6s linear both; }
.hero-slides .kb-2 img { animation: heroKb2 9.6s linear both; }
.hero-slides .kb-3 img { animation: heroKb3 9.6s linear both; }
.hero-slides .kb-4 img { animation: heroKb4 9.6s linear both; }
.hero-slides .kb-5 img { animation: heroKb5 9.6s linear both; }
@keyframes heroKb1 { from { transform: scale(1.02) translate3d(0, 0, 0); }      to { transform: scale(1.14) translate3d(-1.5%, -1%, 0); } }
@keyframes heroKb2 { from { transform: scale(1.14) translate3d(1.5%, 0, 0); }   to { transform: scale(1.03) translate3d(0, 0, 0); } }
@keyframes heroKb3 { from { transform: scale(1.08) translate3d(-2.5%, 0, 0); }  to { transform: scale(1.08) translate3d(2.5%, 0, 0); } }
@keyframes heroKb4 { from { transform: scale(1.03) translate3d(0, 1%, 0); }     to { transform: scale(1.15) translate3d(1%, -1.5%, 0); } }
@keyframes heroKb5 { from { transform: scale(1.12) translate3d(0, -1.5%, 0); }  to { transform: scale(1.02) translate3d(0, 0, 0); } }
@media (prefers-reduced-motion: reduce) {
  .hero-slides .hero-slide { transition: none; }
  .hero-slides .hero-slide img { animation: none !important; transform: none; }
}
