:root {
  --mustard: #f6b23c;
  --mustard-deep: #db7b1f;
  --ketchup: #d83a2e;
  --relish: #2f8f68;
  --ink: #2d1d14;
  --cream: #fff7e8;
  --paper: #fffdf7;
  --brown: #7a4527;
  --muted: #775f50;
  --shadow: 0 22px 70px rgba(84, 45, 19, 0.18);
  --radius: 28px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:
    radial-gradient(circle at top left, rgba(246, 178, 60, 0.28), transparent 34rem),
    linear-gradient(180deg, #fff3d5 0%, var(--cream) 42%, #fff 100%);
  line-height: 1.6;
}

a { color: inherit; }
img { max-width: 100%; }

.skip-link {
  position: absolute;
  left: 1rem;
  top: -4rem;
  z-index: 20;
  padding: .7rem 1rem;
  border-radius: 999px;
  background: var(--ink);
  color: white;
  transition: top .2s ease;
}
.skip-link:focus { top: 1rem; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 10;
  backdrop-filter: blur(16px);
  background: rgba(255, 247, 232, 0.82);
  border-bottom: 1px solid rgba(122, 69, 39, 0.12);
}
.nav {
  width: min(1120px, calc(100% - 2rem));
  margin: 0 auto;
  min-height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  font-family: Fredoka, Inter, sans-serif;
  font-size: 1.35rem;
  font-weight: 700;
  text-decoration: none;
}
.brand-mark {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  color: white;
  background: linear-gradient(135deg, var(--ketchup), var(--mustard-deep));
  border: 3px solid white;
  border-radius: 16px;
  box-shadow: 0 8px 20px rgba(216, 58, 46, .25);
}
.nav-menu { display: flex; align-items: center; gap: .35rem; }
.nav-menu a {
  padding: .65rem .9rem;
  border-radius: 999px;
  color: var(--brown);
  font-weight: 800;
  text-decoration: none;
}
.nav-menu a:hover, .nav-menu a:focus-visible {
  background: rgba(246, 178, 60, .22);
  color: var(--ink);
}
.nav-menu a[aria-current="page"] {
  background: var(--ink);
  color: white;
}
.nav-toggle {
  display: none;
  border: 0;
  background: var(--paper);
  border-radius: 14px;
  padding: .7rem;
  box-shadow: 0 8px 24px rgba(84, 45, 19, .12);
}
.nav-toggle span:not(.sr-only) {
  display: block;
  width: 24px;
  height: 3px;
  margin: 4px 0;
  border-radius: 99px;
  background: var(--ink);
}

.section {
  width: min(1120px, calc(100% - 2rem));
  margin: 0 auto;
  padding: 5rem 0;
}
.hero {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(280px, .92fr);
  align-items: center;
  gap: 3rem;
  min-height: calc(100vh - 76px);
}
.eyebrow {
  margin: 0 0 .75rem;
  color: var(--ketchup);
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: .78rem;
}
h1, h2, h3 {
  font-family: Fredoka, Inter, sans-serif;
  line-height: 1.02;
  margin: 0;
}
h1 { font-size: clamp(3rem, 8vw, 6.8rem); max-width: 9ch; letter-spacing: -.05em; }
h2 { font-size: clamp(2.2rem, 5vw, 4rem); letter-spacing: -.035em; }
h3 { font-size: 1.45rem; }
.hero-text {
  max-width: 62ch;
  color: var(--muted);
  font-size: clamp(1.05rem, 2vw, 1.25rem);
}
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.7rem; }
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: .85rem 1.15rem;
  border-radius: 999px;
  font-weight: 900;
  text-decoration: none;
  box-shadow: 0 14px 34px rgba(84, 45, 19, .13);
}
.button.primary { background: var(--ketchup); color: white; }
.button.secondary { background: white; color: var(--brown); }
.button:hover { transform: translateY(-1px); }
.hero-card {
  position: relative;
  overflow: hidden;
  min-height: 520px;
  display: grid;
  place-items: center;
  padding: 2rem;
  border: 8px solid white;
  border-radius: 42px;
  background: linear-gradient(145deg, #ffd779, #f7903a 48%, #d83a2e);
  box-shadow: var(--shadow);
  isolation: isolate;
}
.hero-card p {
  position: absolute;
  bottom: 1.3rem;
  left: 1.3rem;
  right: 1.3rem;
  margin: 0;
  padding: .9rem 1rem;
  border-radius: 18px;
  background: rgba(255, 255, 255, .86);
  color: var(--brown);
  font-weight: 900;
  text-align: center;
}
.sunburst {
  position: absolute;
  inset: -20%;
  z-index: -1;
  background: repeating-conic-gradient(from 10deg, rgba(255,255,255,.28) 0 10deg, transparent 10deg 20deg);
  animation: spin 36s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.food-illo { position: relative; width: 300px; height: 330px; }
.corn-dog {
  position: absolute;
  width: 72px;
  height: 250px;
  border-radius: 44px;
  background: linear-gradient(90deg, #b7622a, #f2a545, #b7622a);
  border: 5px solid #7a4527;
  box-shadow: inset 0 0 0 6px rgba(255,255,255,.2), 0 18px 24px rgba(45,29,20,.22);
}
.corn-dog::after {
  content: "";
  position: absolute;
  left: 28px;
  bottom: -92px;
  width: 14px;
  height: 110px;
  border-radius: 99px;
  background: #9c5b30;
}
.dog-one { left: 52px; top: 16px; transform: rotate(-16deg); }
.dog-two { right: 52px; top: 8px; transform: rotate(14deg); }
.fries-cup {
  position: absolute;
  left: 72px;
  bottom: 0;
  width: 160px;
  height: 145px;
  border-radius: 20px 20px 40px 40px;
  background: linear-gradient(180deg, #fef3d1, #e33128);
  border: 5px solid #7a4527;
  box-shadow: 0 20px 30px rgba(45,29,20,.22);
}
.fries-cup i {
  position: absolute;
  bottom: 102px;
  width: 18px;
  height: 112px;
  border-radius: 8px;
  background: #ffd45e;
  border: 3px solid #c98228;
}
.fries-cup i:nth-child(1) { left: 18px; transform: rotate(-12deg); }
.fries-cup i:nth-child(2) { left: 47px; height: 135px; }
.fries-cup i:nth-child(3) { left: 75px; transform: rotate(8deg); height: 126px; }
.fries-cup i:nth-child(4) { right: 34px; transform: rotate(18deg); }
.fries-cup i:nth-child(5) { right: 12px; transform: rotate(6deg); height: 122px; }

.section-heading { max-width: 760px; margin-bottom: 2rem; }
.menu-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.menu-card, .story-card, .visit-card, .vibe {
  border: 1px solid rgba(122, 69, 39, .12);
  border-radius: var(--radius);
  background: rgba(255, 253, 247, .86);
  box-shadow: 0 12px 40px rgba(84, 45, 19, .09);
}
.menu-card {
  padding: 1.4rem;
  display: flex;
  flex-direction: column;
  gap: .65rem;
  min-height: 230px;
}
.menu-card.featured {
  background: linear-gradient(145deg, var(--ink), #5d2a1c);
  color: white;
}
.menu-card p { margin: 0; color: var(--muted); }
.menu-card.featured p { color: rgba(255,255,255,.78); }
.menu-card strong { margin-top: auto; font-size: 1.5rem; color: var(--ketchup); }
.menu-card.featured strong { color: var(--mustard); }
.tag {
  align-self: flex-start;
  padding: .3rem .65rem;
  border-radius: 999px;
  background: rgba(246, 178, 60, .25);
  color: var(--brown);
  font-size: .78rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.featured .tag { background: rgba(255,255,255,.14); color: var(--mustard); }

.vibe {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  align-items: center;
  padding: 3rem;
  background:
    linear-gradient(135deg, rgba(47,143,104,.12), rgba(246,178,60,.18)),
    rgba(255,253,247,.9);
}
.vibe p { color: var(--muted); }
.vibe-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: .85rem;
}
.vibe-list li {
  display: flex;
  gap: .8rem;
  align-items: flex-start;
  padding: 1rem;
  border-radius: 18px;
  background: white;
  font-weight: 800;
}
.vibe-list span { font-size: 1.4rem; }

.story-card {
  position: relative;
  overflow: hidden;
  padding: clamp(2rem, 6vw, 4rem);
  background:
    radial-gradient(circle at 90% 20%, rgba(216, 58, 46, .16), transparent 18rem),
    linear-gradient(135deg, #fffdf7, #fff0cf);
}
.story-card::after {
  content: "♥";
  position: absolute;
  right: 2rem;
  bottom: -1.5rem;
  color: rgba(216, 58, 46, .12);
  font-size: 12rem;
  font-family: Fredoka, sans-serif;
}
.story-card p { max-width: 760px; color: var(--muted); font-size: 1.06rem; }
.story-link {
  position: relative;
  z-index: 1;
  display: inline-flex;
  margin-top: .5rem;
  color: var(--ketchup);
  font-weight: 900;
  text-decoration: none;
}
.story-link:hover, .story-link:focus-visible { text-decoration: underline; }

.about-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(260px, .7fr);
  align-items: center;
  gap: 2rem;
  min-height: calc(78vh - 76px);
}
.about-hero h1 { max-width: 11ch; font-size: clamp(2.8rem, 7vw, 6rem); }
.about-poster {
  position: relative;
  overflow: hidden;
  min-height: 430px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 1rem;
  padding: clamp(1.5rem, 4vw, 2.4rem);
  border: 8px solid white;
  border-radius: 42px;
  color: white;
  background:
    radial-gradient(circle at 22% 20%, rgba(255,255,255,.4), transparent 9rem),
    repeating-linear-gradient(135deg, rgba(255,255,255,.12) 0 14px, transparent 14px 28px),
    linear-gradient(145deg, var(--ketchup), var(--mustard-deep) 55%, var(--ink));
  box-shadow: var(--shadow);
}
.about-poster::before {
  content: "BD";
  position: absolute;
  top: 1.3rem;
  right: 1.3rem;
  display: grid;
  place-items: center;
  width: 5rem;
  height: 5rem;
  border: 4px solid rgba(255,255,255,.78);
  border-radius: 28px;
  font-family: Fredoka, Inter, sans-serif;
  font-size: 1.8rem;
  font-weight: 900;
}
.about-poster strong {
  max-width: 8ch;
  font-family: Fredoka, Inter, sans-serif;
  font-size: clamp(3rem, 7vw, 5.6rem);
  line-height: .92;
  letter-spacing: -.05em;
}
.about-poster p { max-width: 24ch; margin: 0; font-weight: 800; }
.poster-label {
  align-self: flex-start;
  padding: .4rem .75rem;
  border-radius: 999px;
  background: rgba(255,255,255,.2);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .78rem;
}
.about-story-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(260px, .85fr);
  gap: 1rem;
  align-items: stretch;
}
.about-story-card { height: 100%; }
.about-values {
  display: grid;
  gap: 1rem;
}
.about-values article {
  padding: 1.4rem;
  border: 1px solid rgba(122, 69, 39, .12);
  border-radius: 24px;
  background: rgba(255, 253, 247, .9);
  box-shadow: 0 12px 40px rgba(84, 45, 19, .08);
}
.about-values span { font-size: 2rem; }
.about-values h3 { margin-top: .75rem; }
.about-values p { margin-bottom: 0; color: var(--muted); }
.about-manifesto {
  padding: clamp(2rem, 6vw, 4rem);
  margin-bottom: 4rem;
  border-radius: var(--radius);
  background:
    radial-gradient(circle at 85% 20%, rgba(47, 143, 104, .16), transparent 18rem),
    linear-gradient(135deg, #fffdf7, #ffe8b4);
  box-shadow: var(--shadow);
}
.about-manifesto p:not(.eyebrow) {
  max-width: 780px;
  color: var(--muted);
  font-size: 1.08rem;
}
.about-manifesto .button { margin-top: .8rem; }

.visit-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.visit-card { padding: 1.5rem; }
.visit-card p { color: var(--muted); }
.visit-card a { color: var(--ketchup); font-weight: 800; }
.muted { font-size: .92rem; color: #90786a !important; }
.footer {
  width: min(1120px, calc(100% - 2rem));
  margin: 0 auto;
  padding: 2rem 0 3rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1rem;
  color: var(--muted);
  border-top: 1px solid rgba(122, 69, 39, .14);
}
.footer a { font-weight: 900; color: var(--brown); text-decoration: none; }

@media (max-width: 880px) {
  .nav-toggle { display: inline-block; }
  .nav-menu {
    position: absolute;
    top: 76px;
    left: 1rem;
    right: 1rem;
    display: grid;
    padding: .65rem;
    border-radius: 22px;
    background: rgba(255,253,247,.98);
    box-shadow: var(--shadow);
    transform-origin: top;
    transform: scaleY(0.9);
    opacity: 0;
    pointer-events: none;
    transition: opacity .18s ease, transform .18s ease;
  }
  .nav-menu.open { opacity: 1; pointer-events: auto; transform: scaleY(1); }
  .nav-menu a { padding: .9rem 1rem; }
  .hero { grid-template-columns: 1fr; padding-top: 3rem; min-height: auto; }
  .about-hero { grid-template-columns: 1fr; padding-top: 3rem; min-height: auto; }
  h1 { max-width: 11ch; }
  .hero-card { min-height: 430px; }
  .about-poster { min-height: 340px; }
  .menu-grid, .visit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vibe { grid-template-columns: 1fr; padding: 2rem; }
  .about-story-grid { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .section { width: min(100% - 1.1rem, 1120px); padding: 3.2rem 0; }
  .nav { width: min(100% - 1.1rem, 1120px); min-height: 68px; }
  .nav-menu { top: 68px; left: .55rem; right: .55rem; }
  .brand { font-size: 1.15rem; }
  .brand-mark { width: 40px; height: 40px; border-radius: 14px; }
  .hero { gap: 2rem; }
  .about-hero { gap: 1.5rem; }
  .hero-actions .button { width: 100%; }
  .hero-card { border-width: 5px; border-radius: 30px; min-height: 360px; }
  .about-poster { border-width: 5px; border-radius: 30px; min-height: 300px; }
  .about-poster::before { width: 4rem; height: 4rem; border-radius: 22px; }
  .food-illo { transform: scale(.78); }
  .menu-grid, .visit-grid { grid-template-columns: 1fr; }
  .menu-card { min-height: auto; }
  .vibe { padding: 1.4rem; border-radius: 22px; }
  .footer { padding-bottom: 2rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
