:root{
  --night:#1c110b; --ember:#e8662a; --flame:#f5a623; --gold:#ffd27a;
  --cream:#fff6e8; --bark:#5a3825; --berry:#a8324a; --honey:#f3c46b; --ink:#2a1a12;
  --radius:16px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Trebuchet MS",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--cream);line-height:1.55}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;line-height:1.15;margin:0 0 .4em}
h2{font-size:clamp(1.8rem,5vw,2.6rem)}
a{color:inherit}
img{max-width:100%;display:block}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
.narrow{max-width:720px}
.section{padding:64px 0}
.sub{opacity:.85;margin-top:-.2em;margin-bottom:28px}
.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:.78rem;color:var(--gold);margin:0 0 8px}
.eyebrow.dark{color:var(--berry)}

/* top bar */
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:rgba(28,17,11,.92);backdrop-filter:blur(6px);color:var(--cream)}
.brand{display:flex;align-items:center;gap:8px;font-family:Georgia,serif;font-weight:bold;text-decoration:none;font-size:1.1rem;white-space:nowrap}
.brand-logo{height:32px;width:auto}
.brand-logo + *{display:none}
.topbar nav{display:flex;gap:4px;overflow-x:auto}
.topbar nav a{text-decoration:none;padding:6px 10px;border-radius:999px;font-size:.9rem;white-space:nowrap}
.topbar nav a:hover{background:rgba(255,255,255,.1)}
.nav-cta{background:var(--ember)}
@media (max-width:560px){.topbar{flex-direction:column;align-items:flex-start;padding:8px 12px}.topbar nav{width:100%}}

/* hero */
.hero{position:relative;overflow:hidden;color:var(--cream);text-align:center;padding:72px 20px 150px;
  background:radial-gradient(ellipse at 50% 100%,#7a2e12 0%,#3b1d10 45%,var(--night) 80%)}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35}
.stars{position:absolute;inset:0;background-image:
  radial-gradient(1.5px 1.5px at 10% 20%,#fff 50%,transparent),radial-gradient(1px 1px at 30% 10%,#fff 50%,transparent),
  radial-gradient(1.5px 1.5px at 55% 25%,#fff 50%,transparent),radial-gradient(1px 1px at 75% 12%,#fff 50%,transparent),
  radial-gradient(1.5px 1.5px at 90% 30%,#fff 50%,transparent),radial-gradient(1px 1px at 20% 40%,#fff 50%,transparent),
  radial-gradient(1px 1px at 65% 45%,#fff 50%,transparent);opacity:.7}
.mountains{position:absolute;left:0;bottom:0;width:100%;height:160px}
.hero-inner{position:relative;max-width:760px;margin:0 auto}
.hero-logo{max-width:260px;margin:0 auto 12px}
.hero h1{font-size:clamp(2.6rem,10vw,5rem);color:var(--gold);text-shadow:0 0 30px rgba(245,166,35,.55)}
.tagline{font-size:clamp(1.05rem,3vw,1.3rem);opacity:.92}
.hero-buttons{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:8px}

/* campfire */
.campfire{position:relative;width:120px;height:110px;margin:20px auto 18px}
.flame{position:absolute;bottom:22px;left:50%;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;transform-origin:bottom center;animation:flicker 1.4s ease-in-out infinite alternate}
.f1{width:60px;height:90px;margin-left:-30px;background:radial-gradient(ellipse at 50% 80%,var(--gold),var(--ember) 60%,transparent 72%)}
.f2{width:38px;height:60px;margin-left:-34px;background:radial-gradient(ellipse at 50% 80%,var(--flame),var(--ember) 65%,transparent 75%);animation-delay:.3s}
.f3{width:34px;height:55px;margin-left:2px;background:radial-gradient(ellipse at 50% 80%,var(--flame),var(--ember) 65%,transparent 75%);animation-delay:.6s}
.log{position:absolute;bottom:10px;left:50%;width:100px;height:18px;margin-left:-50px;background:linear-gradient(#7a4a2c,#4a2c1a);border-radius:9px}
.l1{transform:rotate(12deg)}.l2{transform:rotate(-12deg)}
@keyframes flicker{0%{transform:scale(1,1) rotate(-2deg)}50%{transform:scale(.95,1.08) rotate(2deg)}100%{transform:scale(1.04,.94) rotate(-1deg)}}
@media (prefers-reduced-motion:reduce){.flame{animation:none}}

/* buttons */
.btn{display:inline-block;text-decoration:none;font-weight:bold;padding:12px 22px;border-radius:999px;transition:transform .15s}
.btn:hover{transform:translateY(-2px)}
.btn-fire{background:linear-gradient(135deg,var(--flame),var(--ember));color:#2a1200;box-shadow:0 6px 20px rgba(232,102,42,.45)}
.btn-ghost{border:2px solid var(--gold);color:var(--gold)}
.btn-ghost-dark{border:2px solid var(--bark);color:var(--bark)}
.btn-beary{background:var(--berry);color:#fff}
.btn-beary-outline{border:2px solid var(--berry);color:var(--berry)}

/* about */
.about{text-align:center}
.about-row{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:12px}
.about-photo{width:140px;height:140px;border-radius:50%;object-fit:cover;border:4px solid var(--honey)}

/* menu */
.menu{background:var(--night);color:var(--cream);background-image:radial-gradient(ellipse at top,#3b1d10,var(--night) 70%)}
.menu h2{color:var(--gold)}
.menu-grid{display:grid;gap:18px;grid-template-columns:1fr}
@media (min-width:760px){.menu-grid{grid-template-columns:repeat(3,1fr)}}
.menu-card{background:rgba(255,246,232,.06);border:1px solid rgba(255,210,122,.25);border-radius:var(--radius);padding:20px;overflow:hidden}
.menu-card h3{color:var(--flame)}
.item-photo{width:calc(100% + 40px);margin:-20px -20px 14px;aspect-ratio:4/3;object-fit:cover}
.menu-list{list-style:none;padding:0;margin:0}
.menu-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;padding:10px 0;border-bottom:1px dashed rgba(255,210,122,.2)}
.menu-list .dots{flex:1;border-bottom:2px dotted rgba(255,210,122,.35);min-width:20px}
.menu-list small{flex-basis:100%;margin-top:4px}
.note{margin-top:22px;font-size:.95rem}

/* bearylicious */
.beary{background:linear-gradient(180deg,#fde7ef,#fff1dc);}
.beary-head{display:flex;align-items:center;gap:18px;margin-bottom:12px}
.beary h2{color:var(--berry);margin:0}
.sub.dark{margin:2px 0 0;font-weight:bold;color:var(--bark)}
.bear-badge{flex:0 0 96px;width:96px;height:96px;background:#fff;border-radius:50%;padding:8px;box-shadow:0 6px 18px rgba(168,50,74,.2);display:grid;place-items:center}
.bear-badge img,.bear-badge svg{width:100%;height:100%;object-fit:contain}
.lead{font-size:1.1rem;max-width:760px}
.sweets-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin:24px 0}
.sweet{background:#fff;border-radius:var(--radius);padding:20px;box-shadow:0 4px 14px rgba(90,56,37,.1);overflow:hidden}
.sweet .emoji{font-size:2.2rem;display:block;margin-bottom:6px}
.sweet h3{color:var(--berry);font-size:1.2rem}
.beary-links{display:flex;flex-wrap:wrap;gap:12px}

/* schedule */
.cal-wrap{background:#fff;border-radius:var(--radius);padding:10px;box-shadow:0 4px 14px rgba(90,56,37,.12)}
.cal-wrap iframe{width:100%;height:480px;border:0;border-radius:10px}
.cal-note{margin:10px 6px 4px;display:inline-block}
.venue{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;margin-top:22px;padding:20px;border:2px dashed var(--honey);border-radius:var(--radius)}
.venue h3{font-size:1.15rem}
.venue p{margin:0}

/* order */
.order{background:linear-gradient(135deg,#3b1d10,var(--night));color:var(--cream)}
.order h2{color:var(--gold)}
.form-wrap iframe{width:100%;height:900px;border:0;border-radius:var(--radius);background:#fff}
.order-cards{display:grid;gap:16px;grid-template-columns:1fr}
@media (min-width:640px){.order-cards{grid-template-columns:1fr 1fr}}
.order-card{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;text-decoration:none;padding:26px;border-radius:var(--radius);background:rgba(255,246,232,.07);border:1px solid rgba(255,210,122,.3);transition:background .15s}
.order-card:hover{background:rgba(232,102,42,.2)}
.order-card .emoji{font-size:2rem}
.order-card strong{font-size:1.2rem;color:var(--gold)}

/* contact */
.contact{text-align:center}
.social{display:grid;gap:12px;grid-template-columns:1fr;max-width:640px;margin:0 auto 28px}
@media (min-width:640px){.social{grid-template-columns:1fr 1fr}}
.social-btn{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;padding:14px;border-radius:12px;color:#fff;text-decoration:none;font-weight:bold}
.social-btn svg{width:22px;height:22px}
.fb{background:#1877f2}
.ig{background:linear-gradient(45deg,#f58529,#dd2a7b,#8134af)}
.contact-box{max-width:520px;margin:0 auto;padding:20px;background:#fff;border-radius:var(--radius);box-shadow:0 4px 14px rgba(90,56,37,.1)}

.footer{background:var(--night);color:var(--cream);text-align:center;padding:28px 16px}
.footer p{margin:4px 0}
.tiny{font-size:.8rem;opacity:.7}

/* --- v2: graphics --- */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.brand-logo{height:40px;width:40px;object-fit:contain}
.hero{padding:40px 20px 70px;min-height:min(78vh,720px);display:grid;place-items:center;background:var(--night)}
.hero-bg{opacity:1;filter:brightness(.55) saturate(1.1)}
.hero-logo{width:min(320px,72vw);height:auto;margin:0 auto 10px;filter:drop-shadow(0 8px 24px rgba(0,0,0,.6))}
.hero .tagline{text-shadow:0 2px 8px rgba(0,0,0,.8)}
.hero .eyebrow{text-shadow:0 2px 6px rgba(0,0,0,.8)}
.menu{padding-top:0}
.menu-banner{height:220px;background-size:cover;background-position:center;display:grid;place-items:center;margin-bottom:28px;position:relative}
.menu-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(28,17,11,.35),var(--night))}
.menu-banner h2{position:relative;z-index:1;color:var(--gold);text-shadow:0 2px 10px #000;margin:0}
.beary-head{flex-direction:column;align-items:center;text-align:center;gap:10px}
.beary-logo{width:min(260px,70vw);height:auto;filter:drop-shadow(0 8px 18px rgba(168,50,74,.25))}
@media (min-width:760px){.beary-head{flex-direction:row;text-align:left;gap:32px}}
.flavors-title{color:var(--bark);margin-top:28px}
.sweets-grid{grid-template-columns:repeat(2,1fr);gap:14px;margin:14px 0 32px}
@media (min-width:860px){.sweets-grid{grid-template-columns:repeat(4,1fr)}}
.sweet{padding:0}
.sweet img{width:100%;aspect-ratio:4/3;object-fit:cover;height:auto}
.sweet-body{padding:12px 14px 14px}
.sweet-body h3{margin:0 0 4px;font-size:1.1rem}
.sweet-body p{margin:0}
.beary-order{display:grid;gap:20px;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:0 6px 20px rgba(90,56,37,.12)}
.beary-order img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.beary-order > div{padding:4px 22px 24px}
@media (min-width:760px){.beary-order{grid-template-columns:1fr 1fr;align-items:center}.beary-order > div{padding:24px}}
.beary-order h3{color:var(--berry);font-size:1.5rem}
.facts{list-style:none;padding:0;margin:0 0 18px}
.facts li{padding:6px 0;font-size:1.05rem}
.btn-beary{word-break:break-all}
.beary-links{margin-top:14px}
.beary-links a{color:var(--berry);font-weight:bold}
.order .note a{color:var(--gold)}

/* --- v3 --- */
.menu-card.photo{padding:0}
.menu-card.photo img{width:100%;aspect-ratio:4/3;object-fit:cover;height:auto}
.menu-card-body{padding:16px 18px 18px}
.menu-meta{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:0}
.menu-banner{height:280px}
.flavors-sub{margin:-4px 0 0;color:var(--bark)}
.cobbler-row{display:flex;align-items:center;gap:16px;background:#fff;border-radius:var(--radius);padding:12px;margin:0 0 28px;box-shadow:0 4px 14px rgba(90,56,37,.1)}
.cobbler-row img{width:120px;height:90px;object-fit:cover;border-radius:10px;flex:0 0 auto}
.cobbler-row h3{color:var(--berry);margin:0 0 4px}
.cobbler-row p{margin:0}
@media (min-width:860px){.sweets-grid{grid-template-columns:repeat(4,1fr)}}
.menu-banner{background-position:center 75%}.menu-banner::after{background:linear-gradient(rgba(28,17,11,.25) 40%,var(--night))}
/* --- v4: coming soon --- */
.soon-card{display:flex;flex-direction:column;justify-content:center;text-align:center;gap:6px}
.soon-card a{color:var(--gold)}
.soon-emoji{font-size:2.4rem}
.soon-box{text-align:center;background:#fff;border-radius:var(--radius);padding:40px 20px;box-shadow:0 4px 14px rgba(90,56,37,.12)}
.soon-box h3{font-size:1.5rem;color:var(--bark)}
.soon-box p{margin:0}
.soon-box a{color:var(--berry);font-weight:bold}
.ask{color:var(--bark);font-style:italic;font-size:.95rem}
.order-card span:last-child{opacity:.9}
.social{grid-template-columns:1fr}
@media (min-width:640px){.social{grid-template-columns:repeat(3,1fr);max-width:900px}}
