Curbside Dark Logo

Curbside

Curbside Dark Logo

Curbside

/* ========== PAGE TRANSITION ========== */
.w-page-transition {
  position: fixed;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: -9999;
}

/* --- Dark layer --- */
.w-page-transition-dark {
  position: absolute;
  height: 100vh;
  inset: 0;
  background: var(--bg-dark, #000);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  opacity: 0;
  transition: opacity 0.8s cubic-bezier(0.77, 0, 0.175, 1);
   z-index: 1;
}

.w-page-transition-dark.active {
  opacity: 1;
}

/* --- Dark - Logo wrapper --- */
.w-page-transition-dark__logo-wrapper {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) translateY(50%);
  display: flex;
  flex-direction: row;
  justify-content: center;
  gap: 20px;
  opacity: 0;
  transition: transform 0.8s ease, opacity 0.8s ease;
  z-index: 2;
}

.w-page-transition-dark__logo-wrapper.active {
  transform: translate(-50%, -50%) translateY(0);
  opacity: 1;
}

.w-page-transition-dark__text {
  color: var(--text-title-contrast, #fff);
  font-size: clamp(32px, 4vw, 100px);
}

.w-page-transition-dark__favicon {
  opacity: 0;
  width: 80px;
  height: 80px;
}

/* --- Light layer --- */
.w-page-transition-light {
  position: absolute;
  height: 100vh;
  inset: 0;
  background: var(--bg-body, #fff);
  display: flex;
  align-items: center;
  justify-content: center;
  transform: translateY(100%);
  transition: transform 1s cubic-bezier(0.77, 0, 0.175, 1);
  z-index: 3;
}

.w-page-transition-light.active {
  transform: translateY(0);
}

/* --- Light - Logo wrapper --- */
.w-page-transition-light__logo-wrapper {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) translateY(0);
  display: flex;
  flex-direction: row;
  justify-content: center;
  gap: 20px;
  opacity: 0;
  transition: opacity 0.6s ease 0.3s, transform 0.6s ease 0.3s;
  z-index: 4;
}

.w-page-transition-light__logo-wrapper.active {
  opacity: 1;
  transform: translate(-50%, -50%) translateY(0);
}

.w-page-transition-light__text {
  color: var(--text-title, #000);
  font-size: clamp(32px, 4vw, 100px);
}

.w-page-transition-light__favicon {
  width: 80px;
  height: 80px;
  opacity: 0;
  transform: scale(0) rotate(-90deg);
  transition: all 0.6s ease 0.3s;
}

.w-page-transition-light__favicon.appear {
  opacity: 1;
  transform: scale(1) rotate(0);
}


document.addEventListener("DOMContentLoaded", () => {
  const dark = document.querySelector(".w-page-transition-dark");
  const darkWrapper = document.querySelector(".w-page-transition-dark__logo-wrapper");
  const light = document.querySelector(".w-page-transition-light");
  const lightWrapper = document.querySelector(".w-page-transition-light__logo-wrapper");
  const favicon = document.querySelector(".w-page-transition-light__favicon");
  const pageTransition = document.querySelector(".w-page-transition");

  if (!dark || !light || !pageTransition) return;

  /** Helper delay */
  function wait(ms) {
    return new Promise((res) => setTimeout(res, ms));
  }

  /** PAGE LEAVE (trước khi chuyển trang) **/
  function startLeave() {
    pageTransition.style.zIndex = "9999";
    dark.classList.add("active");
  }

  /** PAGE ENTER (hiệu ứng khi vào trang) **/
  async function startEnter() {
    // Luôn đảm bảo z-index cao khi bắt đầu
    pageTransition.style.zIndex = "9999";

    // Step 1: Dark layer fade in
    dark.classList.add("active");
    await wait(600);

    // Step 2: Logo/text dark xuất hiện
    darkWrapper.classList.add("active");
    await wait(800);

    // Step 3: Light layer trượt lên
    light.classList.add("active");
    lightWrapper.classList.add("active");
    await wait(1000);

    // Step 4: Logo favicon hiện ra
    favicon.classList.add("appear");
    await wait(1200);

    // Step 5: Toàn bộ transition fade out nhanh
    pageTransition.style.transition = "opacity 0.6s ease";
    pageTransition.style.opacity = "0";
    await wait(1200);

    // Step 6: Reset trạng thái cho lần sau
    dark.classList.remove("active");
    darkWrapper.classList.remove("active");
    light.classList.remove("active");
    lightWrapper.classList.remove("active");
    favicon.classList.remove("appear");

    // Reset style sau khi đã ẩn hẳn
    pageTransition.style.opacity = "";
    pageTransition.style.transition = "";

    // Đưa z-index xuống thấp để không che nội dung
    pageTransition.style.zIndex = "-9999";
  }

  /** Run on initial load **/
  startEnter();

  /** Trigger transition khi click link **/
  document.querySelectorAll("a[href]").forEach((link) => {
    link.addEventListener("click", (e) => {
      const url = link.href;
      if (
        url.includes("#") ||
        url.startsWith("mailto:") ||
        url.startsWith("tel:") ||
        link.target === "_blank"
      )
        return;

      e.preventDefault();
      startLeave();
      setTimeout(() => {
        window.location.href = url;
      }, 600);
    });
  });
});
We Don't Just Market Restaurants. We Fill Them.

Marketing That Moves At The Speed Of Hospitality

We Create and AmplifyGreat food deserves great marketing. We help hospitality businesses turn buzz into bookings and first-timers into regulars

Why Partner With Curbside?

We’re not your typical marketing agency. We’re hospitality specialists who understand the unique rhythm of restaurants, cafes, and food businesses. From the Friday dinner rush to the art of perfecting your signature dish, we get it.

That’s why we’ve built our services around what matters most to you: filling tables, driving orders, and building a brand that keeps customers coming back. Every strategy we create is designed to deliver real, measurable results for your business.

Hospitality-First Expertise - We specialize exclusively in restaurants, cafes, bakeries, and food businesses. Your industry is our only focus.
Results You Can Measure - We track what matters: reservations booked, orders placed, foot traffic increased, and revenue grown.
Full-Service Partnership - From branding to websites, social media to advertising, we handle everything under one roof so you don't have to juggle multiple vendors.
Real Restaurant Experience - Our team includes people who've worked in kitchens, managed dining rooms, and lived the hospitality grind. We speak your language.
Local Market Knowledge - We understand your community, your competitors, and what makes your local diners tick.
Transparent Communication - No jargon, no surprises. We give you clear reports, honest timelines, and straightforward advice you can actually use.

Branding

Your Flavor, Your Identity

We craft brand identities that capture the soul of your hospitality business—from logos that pop on takeout bags to menus that make mouths water. Every element is designed to reflect your unique vibe and keep customers coming back for more.

Let’s Talk
1.Logo Design
2.Brand Identity Systems
3.Menu Design (Print & Digital)
4.Packaging Design
5.Social Brand Guidelines
6.Printed Collateral (brochures, flyers, business cards)

Creative Production

Content That Makes People Crave

We create scroll-stopping photos, mouth-watering videos, and compelling copy that showcases what makes your spot special. From behind-the-scenes kitchen shots to styled food photography, we produce content that fills seats.

Let’s Talk
1.Video Production & Editing
2.Photography (Product, Lifestyle, Food & Beverage)
3. Copywriting & Storytelling
4.Graphic Design for Print & Digital Asset Production

Social Media

Where buzz becomes bookings

We manage your social presence with content that gets people talking, sharing, and reserving. From daily stories to influencer collaborations, we build communities around your brand and turn followers into regulars.

Let’s Talk
1.Social Media Strategy
2.Content Creation (photo, video, graphics)
3.Social-Led Campaigns
4.Influencer Collaborations
5.Community Management
6.Paid Social Advertising

Marketing & Advertising

Campaigns that fill tables

Marketing is more than reach—it's resonance. We design campaigns that connect on an emotional level, backed by strategy and data that ensure your message doesn't just show up, but sticks.

Let’s Talk
1.Campaign Strategy & Development
2.Public Relations & Media Outreach
3.Event Marketing & Activations
4. Search Engine Marketing (SEM/Google Ads)
5.Local SEO & Google Business Profile Optimization
6.Review Management & Reputation Marketing

Website & Solutions

Your online storefront

We build websites that are as inviting as your dining room—mobile-friendly, easy to navigate, and optimized for reservations. From seamless booking systems to mouthwatering galleries, we create digital experiences that convert browsers into diners

Let’s Talk
1.Web Design (UI/UX)
2.CMS Development (WordPress/Shopify)
3.Booking/E-Commerce Solutions
4.Landing Pages & SEO
5.Website Maintenance & Support