:root {
  --bg: #fff9f6;
  --bg-alt: #fff1ef;
  --text: #53344f;
  --heading: #7d3260;
  --pink: #f7c7d6;
  --pink-deep: #ef8fb6;
  --lavender: #d7c8ff;
  --peach: #ffc9a9;
  --butter: #f8e793;
  --mint: #dff2df;
  --white: #ffffff;
  --shadow: 0 18px 40px rgba(164, 83, 123, 0.15);
  --radius-xl: 32px;
  --radius-lg: 24px;
  --radius-md: 18px;
  --radius-sm: 12px;
  --container: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: 'Nunito', system-ui, sans-serif;
  background: radial-gradient(circle at top left, #fff4df 0, var(--bg) 30%), var(--bg);
  color: var(--text);
  line-height: 1.6;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
p { margin: 0 0 1rem; }
h1, h2, h3, h4 { font-family: 'Baloo 2', cursive; color: var(--heading); line-height: 1.05; margin: 0 0 0.75rem; }
h1 { font-size: clamp(2.8rem, 6vw, 5rem); }
h2 { font-size: clamp(2rem, 4vw, 3.1rem); }
h3 { font-size: 1.5rem; }

.container {
  width: min(calc(100% - 2rem), var(--container));
  margin: 0 auto;
}
.narrow { width: min(calc(100% - 2rem), 860px); }
.section { padding: 5rem 0; position: relative; }
.alt-section { background: linear-gradient(180deg, rgba(247, 199, 214, 0.22), rgba(255,255,255,0.92)); }
.announcement-bar {
  background: linear-gradient(90deg, var(--pink), var(--lavender), var(--peach));
  color: #5e3859;
  padding: 0.7rem 1rem;
  text-align: center;
  font-weight: 800;
  font-size: 0.95rem;
}
.announcement-bar p { margin: 0; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255, 249, 246, 0.88);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(125, 50, 96, 0.08);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.85rem 0;
}
.brand {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  min-width: 0;
}
.brand img {
  width: 66px;
  height: 66px;
  border-radius: 20px;
  object-fit: cover;
  box-shadow: var(--shadow);
}
.brand strong {
  display: block;
  font-family: 'Baloo 2', cursive;
  font-size: 1.45rem;
  line-height: 1;
}
.brand small {
  display: block;
  color: rgba(83, 52, 79, 0.82);
}
.site-nav {
  display: flex;
  gap: 1rem;
  align-items: center;
  font-weight: 700;
}
.site-nav a { padding: 0.4rem 0.2rem; }
.nav-toggle {
  display: none;
  border: 0;
  background: var(--pink);
  color: var(--heading);
  width: 48px;
  height: 48px;
  border-radius: 14px;
  font-size: 1.4rem;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--pink-deep), #f06ea5);
  color: white;
  padding: 0.95rem 1.4rem;
  font-weight: 800;
  box-shadow: var(--shadow);
  cursor: pointer;
}
.button:hover { transform: translateY(-1px); }
.button-small { padding: 0.7rem 1rem; }
.button-secondary {
  background: white;
  color: var(--heading);
  border: 2px solid rgba(125, 50, 96, 0.12);
  box-shadow: none;
}
.text-link {
  border: 0;
  background: none;
  color: var(--heading);
  font-weight: 800;
  cursor: pointer;
  padding: 0;
  font-size: 0.95rem;
}
.full-width { width: 100%; }

.hero { overflow: clip; }
.hero::before, .hero::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  z-index: -1;
}
.hero::before {
  width: 420px;
  height: 420px;
  right: -90px;
  top: -120px;
  background: rgba(247, 199, 214, 0.45);
}
.hero::after {
  width: 320px;
  height: 320px;
  left: -120px;
  bottom: -80px;
  background: rgba(215, 200, 255, 0.3);
}
.hero-grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 3rem;
  align-items: center;
}
.eyebrow {
  display: inline-flex;
  padding: 0.45rem 0.9rem;
  border-radius: 999px;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  font-size: 0.84rem;
  background: white;
  box-shadow: var(--shadow);
  color: var(--heading);
  margin-bottom: 1rem;
}
.hero-lead { font-size: 1.15rem; max-width: 58ch; }
.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
  margin: 2rem 0;
}
.hero-highlights {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  list-style: none;
  padding: 0;
  margin: 1.8rem 0 0;
}
.hero-highlights li {
  background: rgba(255,255,255,0.82);
  border: 1px solid rgba(125,50,96,0.08);
  border-radius: var(--radius-lg);
  padding: 1rem;
  box-shadow: var(--shadow);
}
.hero-highlights strong {
  display: block;
  font-size: 1.6rem;
  color: var(--heading);
}
.hero-highlights span {
  display: block;
  font-size: 0.95rem;
}
.hero-visual {
  position: relative;
  min-height: 620px;
}
.hero-card {
  position: absolute;
  overflow: hidden;
  background: white;
  padding: 0.65rem;
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow);
}
.hero-main-photo {
  width: min(80%, 420px);
  top: 0;
  right: 0;
}
.hero-accent-photo {
  width: min(54%, 250px);
  left: 0;
  bottom: 80px;
}
.hero-logo-card {
  width: min(42%, 180px);
  left: 40px;
  top: 80px;
  background: linear-gradient(180deg, #fff, #fff5f8);
}
.tilt-left { transform: rotate(-4deg); }
.tilt-right { transform: rotate(5deg); }
.hero-card img { width: 100%; height: 100%; object-fit: cover; border-radius: calc(var(--radius-xl) - 10px); }
.hero-logo-card img { object-fit: contain; }

.feature-strip { padding-top: 1rem; }
.feature-strip-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
.feature-strip-grid article {
  background: white;
  padding: 1.35rem 1.3rem;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
}
.feature-strip-grid h2 { font-size: 1.5rem; margin-bottom: 0.35rem; }

.section-heading { margin-bottom: 2rem; }
.section-heading.center { text-align: center; }
.card-grid,
.menu-grid,
.info-panels,
.steps-grid,
.contact-cards,
.footer-grid { display: grid; gap: 1.4rem; }
.favorites-grid { grid-template-columns: repeat(4, 1fr); }
.product-card {
  background: white;
  border-radius: 24px;
  box-shadow: var(--shadow);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.product-card img { aspect-ratio: 4 / 3; object-fit: cover; }
.product-card-body { padding: 1.2rem 1.2rem 1.35rem; display: grid; gap: 0.85rem; }
.product-card-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  font-weight: 800;
  color: var(--heading);
}

.menu-grid { grid-template-columns: repeat(2, 1fr); }
.menu-item {
  background: white;
  border-radius: 24px;
  padding: 1.4rem;
  box-shadow: var(--shadow);
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: start;
}
.menu-item strong { color: var(--heading); white-space: nowrap; }
.menu-item-wide { grid-column: 1 / -1; align-items: center; }

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  grid-auto-flow: dense;
}
.gallery-item {
  background: white;
  padding: 0.55rem;
  border-radius: 26px;
  box-shadow: var(--shadow);
}
.gallery-item img {
  width: 100%;
  height: 100%;
  border-radius: 20px;
  object-fit: cover;
  aspect-ratio: 1 / 1;
}
.gallery-item.large { grid-column: span 2; grid-row: span 2; }
.gallery-item.large img { aspect-ratio: 1 / 1; }
.gallery-item.tall { grid-row: span 2; }
.gallery-item.tall img { aspect-ratio: 3 / 4; }

.story-grid {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 2.5rem;
  align-items: center;
}
.story-photo-wrap { position: relative; }
.story-photo {
  border-radius: 34px;
  box-shadow: var(--shadow);
}
.floating-note {
  position: absolute;
  right: -10px;
  bottom: 24px;
  max-width: 260px;
  background: white;
  border-radius: 22px;
  padding: 1rem 1.1rem;
  font-weight: 800;
  box-shadow: var(--shadow);
}
.story-points {
  margin-top: 1.75rem;
  display: grid;
  gap: 1rem;
}
.story-points div {
  background: rgba(255,255,255,0.9);
  border-radius: 20px;
  padding: 1rem 1.1rem;
  box-shadow: var(--shadow);
}
.story-points strong { display: block; color: var(--heading); margin-bottom: 0.25rem; }
.story-points span { display: block; }

.steps-grid { grid-template-columns: repeat(3, 1fr); margin-bottom: 1.6rem; }
.step-card,
.info-panel,
.contact-card,
.order-form,
.faq-list details {
  background: white;
  border-radius: 24px;
  box-shadow: var(--shadow);
}
.step-card { padding: 1.4rem; position: relative; }
.step-card span {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  background: var(--butter);
  border-radius: 50%;
  font-family: 'Baloo 2', cursive;
  color: var(--heading);
  font-size: 1.4rem;
  margin-bottom: 0.75rem;
}
.info-panels { grid-template-columns: repeat(3, 1fr); }
.info-panel { padding: 1.35rem; }
.info-panel ul { margin: 0; padding-left: 1.1rem; }

.faq-list { display: grid; gap: 1rem; }
details { padding: 1rem 1.2rem; }
summary {
  list-style: none;
  cursor: pointer;
  font-weight: 800;
  color: var(--heading);
  position: relative;
  padding-right: 2rem;
}
summary::-webkit-details-marker { display: none; }
summary::after {
  content: '+';
  position: absolute;
  right: 0;
  top: -0.1rem;
  font-size: 1.4rem;
}
details[open] summary::after { content: '−'; }
details p { margin-top: 0.75rem; }

.contact-grid {
  display: grid;
  grid-template-columns: 0.86fr 1.14fr;
  gap: 2rem;
  align-items: start;
}
.contact-cards { grid-template-columns: 1fr; margin-top: 1.5rem; }
.contact-card {
  padding: 1rem 1.1rem;
  transition: transform 0.2s ease;
}
.contact-card:hover { transform: translateY(-2px); }
.contact-card strong { display: block; color: var(--heading); }
.contact-card span { display: block; color: var(--text); }
.order-form { padding: 1.35rem; }
.form-row { display: grid; gap: 0.9rem; margin-bottom: 1rem; }
.two-up { grid-template-columns: repeat(2, 1fr); }
.order-form label { display: grid; gap: 0.35rem; }
.order-form span { font-weight: 800; color: var(--heading); }
.order-form input,
.order-form select,
.order-form textarea {
  width: 100%;
  border: 1px solid rgba(125,50,96,0.14);
  border-radius: 16px;
  padding: 0.95rem 1rem;
  font: inherit;
  color: var(--text);
  background: #fffdfd;
}
.order-form input:focus,
.order-form select:focus,
.order-form textarea:focus {
  outline: 3px solid rgba(239, 143, 182, 0.16);
  border-color: rgba(239, 143, 182, 0.6);
}
.order-form small { color: rgba(83,52,79,0.72); }
.form-check label { grid-template-columns: auto 1fr; align-items: start; }
.form-check input { width: auto; margin-top: 0.25rem; }
.form-footnote { margin-top: 0.8rem; font-size: 0.92rem; color: rgba(83,52,79,0.75); }
.hidden-field { display: none; }

.site-footer {
  background: #6b3156;
  color: #fff2f6;
  padding: 2.5rem 0;
}
.footer-grid {
  grid-template-columns: 1.2fr 1fr 1fr;
  align-items: start;
}
.site-footer a { display: block; margin-bottom: 0.45rem; }
.site-footer strong { font-family: 'Baloo 2', cursive; font-size: 1.6rem; display: block; margin-bottom: 0.3rem; }

@media (max-width: 1040px) {
  .hero-grid,
  .story-grid,
  .contact-grid,
  .favorites-grid,
  .feature-strip-grid,
  .steps-grid,
  .info-panels,
  .footer-grid,
  .menu-grid { grid-template-columns: 1fr 1fr; }
  .favorites-grid { grid-template-columns: repeat(2, 1fr); }
  .hero-visual { min-height: 560px; }
  .gallery-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 780px) {
  .nav-toggle { display: inline-grid; place-items: center; }
  .site-nav {
    position: absolute;
    left: 1rem;
    right: 1rem;
    top: calc(100% + 0.5rem);
    background: rgba(255,255,255,0.98);
    border-radius: 24px;
    box-shadow: var(--shadow);
    padding: 1rem;
    display: none;
    flex-direction: column;
    align-items: stretch;
  }
  .site-nav.open { display: flex; }
  .hero-grid,
  .story-grid,
  .contact-grid,
  .favorites-grid,
  .feature-strip-grid,
  .steps-grid,
  .info-panels,
  .footer-grid,
  .menu-grid,
  .hero-highlights,
  .two-up { grid-template-columns: 1fr; }
  .hero-visual {
    min-height: auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
  }
  .hero-card {
    position: static;
    transform: none;
    width: auto;
  }
  .hero-main-photo { grid-column: 1 / -1; }
  .hero-logo-card img { max-height: 180px; }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .gallery-item.large { grid-column: span 2; grid-row: span 1; }
  .contact-cards { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
  .section { padding: 4rem 0; }
  .brand img { width: 56px; height: 56px; }
  .brand small { display: none; }
  .gallery-grid { grid-template-columns: 1fr; }
  .gallery-item.large { grid-column: span 1; }
  .gallery-item.tall { grid-row: span 1; }
  .menu-item { flex-direction: column; }
}

/* V2 retro polish */
.retro-ticker {
  overflow: hidden;
  background: #7d3260;
  color: #fff4f8;
  border-block: 5px solid #f8e793;
  transform: rotate(-0.5deg);
}
.retro-ticker-track {
  display: flex;
  gap: 1.1rem;
  align-items: center;
  width: max-content;
  padding: 0.8rem 0;
  font-family: 'Baloo 2', cursive;
  font-weight: 800;
  font-size: 1.05rem;
  letter-spacing: 0.08em;
  animation: ticker 22s linear infinite;
}
.retro-ticker-track b { color: #f8e793; font-size: 1.2rem; }
@keyframes ticker { from { transform: translateX(0); } to { transform: translateX(-35%); } }
.split-heading { display:flex; align-items:end; justify-content:space-between; gap:2rem; }
.visual-menu-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.35rem; }
.visual-menu-card { background:white; border-radius:28px; overflow:hidden; box-shadow:var(--shadow); border:1px solid rgba(125,50,96,.08); }
.visual-menu-card img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.visual-menu-copy { padding:1.25rem; }
.menu-price { display:inline-flex; background:var(--butter); color:var(--heading); font-weight:900; padding:.35rem .7rem; border-radius:999px; margin-bottom:.7rem; }
.no-photo-card { min-height:100%; background:linear-gradient(145deg,#ffd2df,#ffe9bf); display:flex; flex-direction:column; justify-content:center; }
.lavender-card { background:linear-gradient(145deg,#ddd0ff,#ffd8e6); }
.blob-icon { width:100px; height:100px; display:grid; place-items:center; margin:1.4rem 1.4rem 0; border-radius:46% 54% 60% 40% / 40% 45% 55% 60%; background:white; color:var(--heading); font-size:2.6rem; transform:rotate(-8deg); box-shadow:var(--shadow); }
.custom-flavor-banner { margin-top:1.5rem; padding:1.5rem; background:linear-gradient(120deg,#f8e793,#ffc9a9,#d7c8ff); border-radius:28px; display:flex; justify-content:space-between; align-items:center; gap:1.5rem; box-shadow:var(--shadow); }
.custom-flavor-copy { display:flex; align-items:center; gap:1rem; }
.mini-star { font-size:3rem; color:#7d3260; }
.seasonal-section { overflow:hidden; background:radial-gradient(circle at 80% 20%,rgba(215,200,255,.9),transparent 35%),linear-gradient(135deg,#fff5c9,#ffd5df); }
.seasonal-grid { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:center; }
.seasonal-chips { display:flex; flex-wrap:wrap; gap:.65rem; margin:1.4rem 0 1.8rem; }
.seasonal-chips span { background:white; border-radius:999px; padding:.5rem .8rem; font-weight:800; box-shadow:0 8px 20px rgba(125,50,96,.08); }
.seasonal-collage { position:relative; min-height:470px; }
.seasonal-collage img { position:absolute; border:10px solid white; border-radius:32px; box-shadow:var(--shadow); object-fit:cover; }
.seasonal-one { width:58%; left:0; top:20px; transform:rotate(-6deg); }
.seasonal-two { width:55%; right:0; bottom:15px; transform:rotate(6deg); }
.seasonal-badge { position:absolute; left:42%; top:43%; width:120px; height:120px; display:grid; place-items:center; text-align:center; font-family:'Baloo 2'; font-weight:900; line-height:.9; background:#7d3260; color:#fff; border-radius:50%; border:6px solid #f8e793; transform:rotate(8deg); box-shadow:var(--shadow); }
.event-section { background:#fffaf7; }
.event-grid { display:grid; grid-template-columns:.95fr 1.05fr; gap:3rem; align-items:center; }
.event-photo-stack { position:relative; min-height:530px; }
.event-photo-stack img { position:absolute; border:10px solid white; border-radius:30px; box-shadow:var(--shadow); object-fit:cover; }
.event-photo-stack img:first-child { width:70%; left:0; top:0; transform:rotate(-4deg); }
.event-photo-stack img:last-child { width:58%; right:0; bottom:0; transform:rotate(6deg); }
.party-packages { display:grid; grid-template-columns:repeat(3,1fr); gap:.8rem; margin:1.4rem 0; }
.party-packages div { background:white; border-radius:20px; padding:1rem; box-shadow:var(--shadow); text-align:center; }
.party-packages strong { display:block; font-family:'Baloo 2'; color:var(--heading); font-size:1.4rem; }
.party-packages span { font-size:.9rem; }
.small-note { font-size:.93rem; opacity:.85; }
.gift-section { padding-top:1rem; }
.gift-card-cta { display:grid; grid-template-columns:1.3fr .7fr; gap:2rem; align-items:center; border-radius:34px; padding:2rem; background:linear-gradient(135deg,#f7c7d6,#ffc9a9,#f8e793); box-shadow:var(--shadow); }
.gift-art { min-height:210px; border:5px dashed rgba(125,50,96,.32); border-radius:28px; display:flex; align-items:center; justify-content:center; gap:.8rem; font-family:'Baloo 2'; font-weight:900; color:#7d3260; font-size:2rem; transform:rotate(2deg); background:rgba(255,255,255,.35); }
.review-placeholder-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.review-placeholder-grid article { background:white; border-radius:24px; padding:1.4rem; box-shadow:var(--shadow); position:relative; overflow:hidden; }
.review-placeholder-grid article::after { content:'✦'; position:absolute; right:14px; top:10px; color:#ef8fb6; font-size:2rem; }
.stars { color:#eaa53c; letter-spacing:.1em; margin-bottom:.8rem; }
.review-placeholder-grid span { display:block; font-weight:800; color:var(--heading); font-size:.9rem; }
.hero-copy h1 { text-wrap:balance; }
.hero-card, .product-card, .visual-menu-card, .gallery-item { transition:transform .25s ease, box-shadow .25s ease; }
.product-card:hover, .visual-menu-card:hover, .gallery-item:hover { transform:translateY(-4px) rotate(.3deg); box-shadow:0 22px 50px rgba(164,83,123,.2); }
@media(max-width:1040px){ .visual-menu-grid{grid-template-columns:repeat(2,1fr)} .seasonal-grid,.event-grid{grid-template-columns:1fr 1fr} }
@media(max-width:780px){ .split-heading{align-items:flex-start;flex-direction:column}.visual-menu-grid,.seasonal-grid,.event-grid,.gift-card-cta,.review-placeholder-grid{grid-template-columns:1fr}.custom-flavor-banner{align-items:flex-start;flex-direction:column}.seasonal-collage,.event-photo-stack{min-height:420px}.party-packages{grid-template-columns:1fr 1fr 1fr}.gift-art{min-height:140px} }
@media(max-width:520px){ .visual-menu-grid{grid-template-columns:1fr}.party-packages{grid-template-columns:1fr}.seasonal-collage,.event-photo-stack{min-height:360px}.seasonal-badge{width:95px;height:95px;font-size:.85rem}.retro-ticker-track{font-size:.9rem} }

.form-status {
  min-height: 1.5rem;
  margin-top: 0.9rem;
  padding: 0;
  font-size: 0.96rem;
}
.form-status.success,
.form-status.error {
  padding: 0.9rem 1rem;
  border-radius: 16px;
}
.form-status.success {
  background: rgba(223, 242, 223, 0.9);
  color: #365c3d;
}
.form-status.error {
  background: rgba(255, 201, 169, 0.55);
  color: #7d3260;
}
.form-status a { font-weight: 800; text-decoration: underline; }
#submit-order:disabled { opacity: 0.65; cursor: wait; }
