
:root {
  --primary: #c0392b;
  --primary-dark: #182226;
  --secondary: #e67e22;
  --secondary-gold: #f0c705;
  --secondary-brown: #68580b;
  --accent-green: #4d592b;
  --accent-cream: #fbf5f2;
  --bg: #ffffff;
  --text: #414536;
  --gray: #555555;
  --border: #dbdfd0;
  --surface: #f9f9f7;
  --page: #ffffff;
  --font-heading: 'Lora', serif;
  --font-body: 'Manrope', sans-serif;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
/* User-defined header/footer overrides */
header { background: #772727 !important; }
header nav a, header nav a:hover, header .logo, header .logo-img-wrap { color: #252323 !important; }
footer { background: #8f7070 !important; }
footer, footer p, footer a, .footer-brand, .footer-copy, .footer-meta { color: #612323 !important; }
/* Template-specific styles */
/* ============================================================
   BISTRO BLISS — template.css
   Exact color/size values extracted from fine-dining.pen design
   ============================================================ */

/* ── Base ─────────────────────────────────────────────────── */
body {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  color: #414536;
  background: #ffffff;
  overflow-wrap: break-word;
}

img {
  max-width: 100%;
  display: block;
}

/* ── Shared helpers ───────────────────────────────────────── */
.section-eyebrow-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 24px;
  font-weight: 400;
  line-height: 1.1667;
  color: #2c2f24;
  margin: 0 0 10px;
}

.section-heading-bistro-bliss {
  font-family: var(--font-heading, 'Playfair Display', serif);
  font-size: clamp(36px, 4.5vw, 55px);
  font-weight: 500;
  line-height: 1.1;
  color: #2c2f24;
  margin: 0;
}

.section-header-bistro-bliss {
  margin-bottom: 48px;
}

.section-header-center-bistro-bliss {
  text-align: center;
}

/* Primary yellow button */
.btn-primary-bistro-bliss {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 20px 32px;
  background: #ffd40d;
  color: #ffffff;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
  border-radius: 118px;
  border: none;
  cursor: pointer;
  transition: background 0.2s ease, opacity 0.2s ease;
  white-space: nowrap;
}
.btn-primary-bistro-bliss:hover {
  background: #f0c705;
  opacity: 0.95;
}
.btn-primary-bistro-bliss:focus-visible {
  outline: 3px solid #ffd40d;
  outline-offset: 3px;
}

/* Outline dark button */
.btn-outline-dark-bistro-bliss {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 20px 32px;
  background: transparent;
  color: #182226;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
  border-radius: 118px;
  border: 1.5px solid #2c2f24;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
  white-space: nowrap;
}
.btn-outline-dark-bistro-bliss:hover {
  background: #2c2f24;
  color: #ffffff;
}
.btn-outline-dark-bistro-bliss:focus-visible {
  outline: 3px solid #2c2f24;
  outline-offset: 3px;
}

/* Accent red button */
.btn-accent-bistro-bliss {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 20px 32px;
  background: #ad343e;
  color: #ffffff;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
  border-radius: 118px;
  border: none;
  cursor: pointer;
  transition: background 0.2s ease;
  white-space: nowrap;
  flex-shrink: 0;
}
.btn-accent-bistro-bliss:hover {
  background: #8c2830;
}
.btn-accent-bistro-bliss:focus-visible {
  outline: 3px solid #ad343e;
  outline-offset: 3px;
}

/* Back link */
.back-link-bistro-bliss {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #2c2f24;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  font-weight: 500;
  text-decoration: none;
  margin-bottom: 32px;
}
.back-link-bistro-bliss:hover { text-decoration: underline; }

/* ── Header ────────────────────────────────────────────────── */
.site-header-bistro-bliss {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  transition: background 0.3s ease, box-shadow 0.3s ease;
}
.site-header-bistro-bliss.is-scrolled {
  background: #ffffff;
  box-shadow: 0 2px 16px rgba(0,0,0,0.08);
}

/* Top bar */
.header-topbar-bistro-bliss {
  background: transparent;
  padding: 0 88px;
}
.header-topbar-inner-bistro-bliss {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 45px;
  gap: 24px;
}
.topbar-contacts-bistro-bliss {
  display: flex;
  align-items: center;
  gap: 25px;
}
.topbar-item-bistro-bliss {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #f9f9f7;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  text-decoration: none;
  transition: opacity 0.2s;
}
.topbar-item-bistro-bliss:hover { opacity: 0.8; }
.topbar-item-bistro-bliss svg { stroke: #f9f9f7; flex-shrink: 0; }
.topbar-social-bistro-bliss {
  display: flex;
  align-items: center;
  gap: 4px;
}
.topbar-social-link-bistro-bliss {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 27px;
  height: 27px;
  border-radius: 50%;
  background: rgba(249,249,247,0.12);
  color: #f9f9f7;
  transition: background 0.2s;
}
.topbar-social-link-bistro-bliss:hover { background: rgba(249,249,247,0.25); }
.topbar-social-link-bistro-bliss svg { stroke: #f9f9f7; }

/* Main nav */
.site-nav-bistro-bliss {
  padding: 0 88px;
}
.nav-inner-bistro-bliss {
  display: flex;
  align-items: center;
  height: 55px;
  gap: 16px;
}

/* Logo */
.site-logo-bistro-bliss {
  display: flex;
  align-items: center;
  text-decoration: none;
  flex-shrink: 0;
}
.site-logo-img-bistro-bliss {
  width: 56px;
  height: 55px;
  object-fit: contain;
}
.site-logo-text-bistro-bliss {
  font-family: var(--font-heading, 'Playfair Display', serif);
  font-size: 32px;
  font-style: italic;
  font-weight: 600;
  color: #4d592b;
  letter-spacing: -0.3px;
  line-height: 0.6875;
}

/* Nav links */
.nav-links-bistro-bliss {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}
.nav-link-bistro-bliss {
  display: inline-flex;
  align-items: center;
  padding: 4px 16px;
  border-radius: 34px;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
  color: #ffffff;
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
  white-space: nowrap;
}
.nav-link-bistro-bliss.is-active {
  background: #dbdfd0;
  color: #2c2f24;
}
.nav-link-bistro-bliss:hover:not(.is-active) {
  background: rgba(219,223,208,0.2);
}
.site-header-bistro-bliss.is-scrolled .nav-link-bistro-bliss {
  color: #2c2f24;
}
.site-header-bistro-bliss.is-scrolled .nav-link-bistro-bliss:hover:not(.is-active) {
  background: #dbdfd0;
}
.site-header-bistro-bliss.is-scrolled .topbar-item-bistro-bliss { color: #414536; }
.site-header-bistro-bliss.is-scrolled .topbar-item-bistro-bliss svg { stroke: #414536; }
.site-header-bistro-bliss.is-scrolled .topbar-social-link-bistro-bliss { background: rgba(44,47,36,0.08); }
.site-header-bistro-bliss.is-scrolled .topbar-social-link-bistro-bliss svg { stroke: #2c2f24; }

/* Reserve button */
.nav-reserve-bistro-bliss {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 12px 24px;
  border-radius: 118px;
  border: 1.5px solid #ffffff;
  color: #182226;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
  background: transparent;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
  white-space: nowrap;
  flex-shrink: 0;
}
.nav-reserve-bistro-bliss:hover {
  background: #ffffff;
}
.site-header-bistro-bliss.is-scrolled .nav-reserve-bistro-bliss {
  border-color: #2c2f24;
  color: #2c2f24;
}
.site-header-bistro-bliss.is-scrolled .nav-reserve-bistro-bliss:hover {
  background: #2c2f24;
  color: #ffffff;
}

/* Mobile nav toggle */
.nav-toggle-bistro-bliss {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  background: transparent;
  border: none;
  cursor: pointer;
  margin-left: auto;
  padding: 0;
}
.nav-toggle-bar-bistro-bliss {
  display: block;
  width: 24px;
  height: 2px;
  background: #ffffff;
  border-radius: 2px;
  transition: background 0.2s, transform 0.25s, opacity 0.25s;
}
.site-header-bistro-bliss.is-scrolled .nav-toggle-bar-bistro-bliss { background: #2c2f24; }
.nav-toggle-bistro-bliss.is-open .nav-toggle-bar-bistro-bliss:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle-bistro-bliss.is-open .nav-toggle-bar-bistro-bliss:nth-child(2) { opacity: 0; }
.nav-toggle-bistro-bliss.is-open .nav-toggle-bar-bistro-bliss:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.nav-toggle-bistro-bliss:focus-visible { outline: 2px solid #ffd40d; outline-offset: 2px; }

/* ── Hero ──────────────────────────────────────────────────── */
.hero-bistro-bliss {
  position: relative;
  min-height: 951px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* Background layer */
.hero-bg-bistro-bliss {
  position: absolute;
  inset: 0;
  z-index: 0;
}

/* Engine injects <img class="hero-media-image"> inside _media */
.hero-media-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 0;
  max-width: 100%;
}

/* Fallback direct img inside hero-bg */
.hero-bg-bistro-bliss > img:not(.hero-media-image) {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hero-overlay-bistro-bliss {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.4);
}

/* Content layer */
.hero-inner-bistro-bliss {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 400px;
  gap: clamp(32px, 4vw, 80px);
  align-items: center;
  padding: 200px 88px clamp(60px, 6vw, 120px);
  min-height: 951px;
  max-width: 1600px;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box;
}

/* Copy */
.hero-copy-bistro-bliss {
  display: flex;
  flex-direction: column;
  gap: 32px;
  max-width: 667px;
}
.hero-headline-bistro-bliss {
  font-family: var(--font-heading, 'Playfair Display', serif);
  font-size: clamp(40px, 6vw, 80px);
  font-weight: 400;
  line-height: 1.2;
  color: #ffffff;
  margin: 0;
}
.hero-subheadline-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: clamp(16px, 1.8vw, 20px);
  font-weight: 400;
  line-height: 1.6;
  color: #ffffff;
  margin: 0;
  max-width: 546px;
}
.hero-btns-bistro-bliss {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
}

/* Hero primary button */
.hero-btn-primary-bistro-bliss {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 20px 32px;
  background: #ffd40d;
  color: #ffffff;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  font-weight: 700;
  border-radius: 118px;
  text-decoration: none;
  transition: background 0.2s;
  white-space: nowrap;
}
.hero-btn-primary-bistro-bliss:hover { background: #f0c705; }
.hero-btn-primary-bistro-bliss:focus-visible { outline: 3px solid #ffd40d; outline-offset: 3px; }

/* Hero outline button */
.hero-btn-outline-bistro-bliss {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 20px 32px;
  background: transparent;
  color: #ffffff;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  font-weight: 700;
  border-radius: 118px;
  border: 1px solid #ffffff;
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
  white-space: nowrap;
}
.hero-btn-outline-bistro-bliss:hover { background: rgba(255,255,255,0.15); }
.hero-btn-outline-bistro-bliss:focus-visible { outline: 3px solid #ffffff; outline-offset: 3px; }

/* Reservation panel */
.hero-reservation-bistro-bliss {
  background: rgba(0,0,0,0.5);
  backdrop-filter: blur(13px);
  -webkit-backdrop-filter: blur(13px);
  border-top: 10px solid #ffd40d;
  border-radius: 0;
  padding: 39px 40px 40px;
  width: 400px;
  flex-shrink: 0;
  box-sizing: border-box;
}
.reservation-heading-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 32px;
  font-weight: 700;
  color: #ffffff;
  letter-spacing: 2px;
  margin: 0 0 28px;
}
.reservation-form-bistro-bliss {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.reservation-field-bistro-bliss {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.reservation-label-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 20px;
  font-weight: 600;
  color: #ffffff;
  letter-spacing: 2px;
}
.reservation-control-bistro-bliss {
  position: relative;
}
.reservation-input-bistro-bliss,
.reservation-select-bistro-bliss {
  width: 100%;
  height: 48px;
  padding: 12px 20px;
  background: transparent;
  border: 1px solid #a0a0a0;
  border-radius: 6px;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  font-weight: 400;
  color: #ffffff;
  letter-spacing: 2px;
  box-sizing: border-box;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
}
.reservation-input-bistro-bliss::placeholder { color: rgba(255,255,255,0.6); }
.reservation-input-bistro-bliss:focus,
.reservation-select-bistro-bliss:focus {
  outline: 2px solid #ffd40d;
  outline-offset: 1px;
}
.reservation-input-bistro-bliss::-webkit-calendar-picker-indicator {
  filter: invert(1);
  opacity: 0.7;
  cursor: pointer;
}
.reservation-select-bistro-bliss option { background: #222; color: #fff; }
.reservation-submit-bistro-bliss {
  width: 100%;
  height: 48px;
  background: #ffd40d;
  color: #000000;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 1px;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  transition: background 0.2s;
  margin-top: 4px;
}
.reservation-submit-bistro-bliss:hover { background: #f0c705; }
.reservation-submit-bistro-bliss:focus-visible { outline: 3px solid #ffd40d; outline-offset: 3px; }

/* ── Menu Preview ──────────────────────────────────────────── */
.menu-preview-bistro-bliss {
  background: #fbf5f2;
  padding: clamp(56px, 6vw, 93px) 88px;
}
.menu-preview-inner-bistro-bliss {
  max-width: 1439px;
  margin: 0 auto;
}
.menu-preview-cards-bistro-bliss {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  overflow: hidden;
}
.menu-preview-card-bistro-bliss {
  display: flex;
  flex-direction: column;
}
.menu-preview-card-img-bistro-bliss {
  width: 100%;
  aspect-ratio: 463 / 320;
  overflow: hidden;
  border-radius: 0;
}
.menu-preview-card-img-bistro-bliss img,
.menu-preview-card-img-bistro-bliss .hero-media-image,
.menu-preview-card-img-el-bistro-bliss {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0;
  max-width: 100%;
}
.menu-preview-card-body-bistro-bliss {
  padding: 16px 0 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.menu-preview-card-name-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.25;
  color: #2c2f24;
  letter-spacing: -0.72px;
  margin: 0;
}
.menu-preview-card-desc-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  color: #414536;
  margin: 0;
}
.menu-preview-card-price-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 18px;
  font-weight: 600;
  color: #2c2f24;
  margin: 0;
}
.menu-preview-cta-bistro-bliss {
  margin-top: 40px;
  text-align: center;
}

/* ── About Preview ────────────────────────────────────────── */
.about-preview-bistro-bliss {
  background: #f9f9f7;
  padding: clamp(56px, 6vw, 90px) 88px;
}
.about-preview-inner-bistro-bliss {
  max-width: 1441px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 672px 1fr;
  gap: 80px;
  align-items: center;
}
.about-preview-image-bistro-bliss { flex-shrink: 0; }
.about-preview-image-frame-bistro-bliss {
  background: #dbeafe;
  border: 1px solid #000000;
  width: 100%;
  max-width: 672px;
  aspect-ratio: 672 / 566;
  overflow: hidden;
}
.about-preview-img-bistro-bliss {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.about-preview-text-bistro-bliss {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.about-preview-body-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.5556;
  color: #414536;
  margin: 0;
}
.about-preview-badges-bistro-bliss {
  display: flex;
  align-items: center;
  gap: 32px;
  flex-wrap: wrap;
  padding-top: 8px;
}
.about-preview-badge-bistro-bliss {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.5556;
  color: #414536;
}
.about-preview-badge-bistro-bliss::before {
  content: "";
  display: inline-block;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 2px solid #414536;
  flex-shrink: 0;
}

/* ── Featured Dishes ──────────────────────────────────────── */
.featured-dishes-bistro-bliss {
  background: #ffffff;
  padding: clamp(56px, 6vw, 90px) 88px;
}
.featured-dishes-inner-bistro-bliss {
  max-width: 1441px;
  margin: 0 auto;
}
.featured-dishes-header-bistro-bliss {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
  margin-bottom: 48px;
}
.featured-dishes-title-bistro-bliss {
  flex-shrink: 0;
}
.featured-dishes-subtitle-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.5556;
  color: #2c2f24;
  margin: 0;
  max-width: 661px;
}
.featured-dishes-cards-bistro-bliss {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  overflow: hidden;
}
.featured-dish-card-bistro-bliss {
  display: flex;
  flex-direction: column;
}
.featured-dish-img-bistro-bliss {
  width: 100%;
  aspect-ratio: 425 / 409;
  overflow: hidden;
  border-radius: 0;
}
.featured-dish-img-bistro-bliss img,
.featured-dish-img-bistro-bliss .hero-media-image,
.featured-dish-img-el-bistro-bliss {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0;
  max-width: 100%;
}
.featured-dish-body-bistro-bliss {
  padding: 15px 0 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.featured-dish-name-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.25;
  color: #2c2f24;
  letter-spacing: -0.72px;
  margin: 0;
}
.featured-dish-desc-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  color: #414536;
  margin: 0;
}
.featured-dish-meta-bistro-bliss {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.featured-dish-price-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 18px;
  font-weight: 600;
  color: #2c2f24;
}

/* ── CTA Banner ───────────────────────────────────────────── */
.cta-banner-bistro-bliss {
  background: #ffffff;
  padding: clamp(48px, 5vw, 80px) 88px;
}
.cta-banner-inner-bistro-bliss {
  max-width: 1600px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 620px 1fr;
  min-height: 622px;
  border-radius: 16px 0 0 16px;
  overflow: hidden;
  box-shadow: 0 2px 52.5px rgba(0,0,0,0.1);
}
.cta-banner-card-bistro-bliss {
  background: #ffffff;
  padding: clamp(48px, 5vw, 80px) 56px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 24px;
}
.cta-banner-heading-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 400;
  line-height: 1.1667;
  color: #000000;
  margin: 0;
  text-align: center;
}
.cta-banner-body-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.5556;
  color: #414536;
  margin: 0;
  text-align: center;
}
.cta-banner-link-bistro-bliss {
  align-self: center;
  font-family: var(--font-heading, 'Playfair Display', serif);
  font-size: 24px;
  font-style: italic;
  font-weight: 600;
  color: #3d85dd;
  text-decoration: none;
  transition: opacity 0.2s;
}
.cta-banner-link-bistro-bliss:hover { opacity: 0.75; }
.cta-banner-image-bistro-bliss {
  overflow: hidden;
  flex: 1;
}
.cta-banner-img-bistro-bliss {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ── Special Events ────────────────────────────────────────── */
.special-events-bistro-bliss {
  background: #f9f9f7;
  padding: clamp(56px, 6vw, 90px) 88px;
}
.special-events-inner-bistro-bliss {
  max-width: 1600px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 662px 1fr;
  gap: clamp(40px, 5vw, 74px);
  align-items: start;
}
.special-events-image-bistro-bliss {
  width: 100%;
  max-width: 662px;
  aspect-ratio: 662 / 809;
  overflow: hidden;
  border-radius: 0;
}
.special-events-img-bistro-bliss {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.special-events-content-bistro-bliss {
  display: flex;
  flex-direction: column;
  gap: 40px;
  padding-top: 16px;
}
.special-events-title-bistro-bliss { display: flex; flex-direction: column; gap: 10px; }
.special-events-list-bistro-bliss {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.special-event-item-bistro-bliss {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.special-event-number-bistro-bliss {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 4px;
}
.event-number-text-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 24px;
  font-weight: 400;
  color: #2c2f24;
  line-height: 1.1667;
  flex-shrink: 0;
}
.event-number-line-bistro-bliss {
  height: 1px;
  background: #000000;
  flex: 1;
}
.special-event-title-bistro-bliss {
  font-family: var(--font-heading, 'Playfair Display', serif);
  font-size: clamp(28px, 3.5vw, 48px);
  font-weight: 500;
  line-height: 1.25;
  color: #2c2f24;
  margin: 0;
}
.special-event-schedule-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 24px;
  font-weight: 400;
  line-height: 1;
  color: #6e5b3a;
  margin: 0;
}
.special-event-desc-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 18px;
  font-weight: 400;
  line-height: 2.2222;
  color: #000000;
  margin: 0;
  max-width: 521px;
}

/* ── Testimonials Preview ─────────────────────────────────── */
.testimonials-bistro-bliss {
  background: #ffffff;
  padding: clamp(56px, 6vw, 98px) 88px;
}
.testimonials-inner-bistro-bliss {
  max-width: 1296px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 64px;
}
.testimonials-cards-bistro-bliss {
  display: grid;
  grid-template-columns: repeat(3, 416px);
  gap: 24px;
  width: 100%;
  justify-content: center;
}
.testimonial-card-bistro-bliss {
  background: #f9f9f7;
  border-radius: 12px;
  overflow: hidden;
}
.testimonial-card-body-bistro-bliss {
  padding: 45px 35px;
  display: flex;
  flex-direction: column;
  gap: 24px;
  height: 100%;
  box-sizing: border-box;
}
.testimonial-quote-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.25;
  color: #ad343e;
  letter-spacing: -0.72px;
  margin: 0;
  quotes: none;
}
.testimonial-divider-bistro-bliss {
  border: none;
  border-top: 1px solid rgba(219,223,208,0.7);
  margin: 8px 0;
}
.testimonial-author-bistro-bliss {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: auto;
}
.testimonial-avatar-bistro-bliss {
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background: #dbdfd0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 20px;
  font-weight: 700;
  color: #2c2f24;
  flex-shrink: 0;
  overflow: hidden;
}
.testimonial-author-info-bistro-bliss {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.testimonial-author-name-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  color: #2c2f24;
  margin: 0;
}
.testimonial-author-location-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  color: #414536;
  margin: 0;
}

/* ── Blog Preview ─────────────────────────────────────────── */
.blog-preview-bistro-bliss {
  background: #f9f9f7;
  padding: clamp(56px, 6vw, 120px) 88px;
}
.blog-preview-inner-bistro-bliss {
  max-width: 1296px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 64px;
}
.blog-preview-titlebar-bistro-bliss {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  flex-wrap: wrap;
}
.blog-preview-grid-bistro-bliss {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 24px;
}
.blog-card-featured-bistro-bliss {
  grid-row: 1 / 3;
}
.blog-card-bistro-bliss {
  background: #ffffff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2.978px 52px rgba(0,0,0,0.08);
  display: flex;
  flex-direction: column;
}
.blog-card-img-bistro-bliss {
  width: 100%;
  overflow: hidden;
}
.blog-card-featured-bistro-bliss .blog-card-img-bistro-bliss {
  aspect-ratio: 636 / 420;
}
.blog-card-bistro-bliss:not(.blog-card-featured-bistro-bliss) .blog-card-img-bistro-bliss {
  aspect-ratio: 306 / 200;
}
.blog-card-img-el-bistro-bliss {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.blog-card-bistro-bliss:hover .blog-card-img-el-bistro-bliss {
  transform: scale(1.03);
}
.blog-card-body-bistro-bliss {
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}
.blog-card-cat-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
  color: #ad343e;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin: 0;
}
.blog-card-title-bistro-bliss {
  font-family: var(--font-heading, 'Playfair Display', serif);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.3;
  color: #2c2f24;
  margin: 0;
}
.blog-card-featured-bistro-bliss .blog-card-title-bistro-bliss {
  font-size: 26px;
}
.blog-card-excerpt-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.6;
  color: #414536;
  margin: 0;
}
.blog-card-date-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 13px;
  color: #555555;
  margin: 0;
  margin-top: auto;
}

/* ── Map Section ──────────────────────────────────────────── */
.map-section-bistro-bliss {
  background: #f9f9f7;
  padding: clamp(40px, 5vw, 38px) 152px clamp(40px, 5vw, 60px);
}
.map-inner-bistro-bliss {
  max-width: 1296px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 64px;
}
.map-title-bistro-bliss { }
.map-tabs-bistro-bliss {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.map-tab-bistro-bliss {
  padding: 16px 32px;
  background: #f6f5f6;
  border: 1px solid transparent;
  border-radius: 70px;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
  color: #555555;
  cursor: pointer;
  transition: border-color 0.2s, color 0.2s;
}
.map-tab-bistro-bliss.is-active {
  border-color: #848484;
  color: #000000;
}
.map-tab-bistro-bliss:hover:not(.is-active) {
  border-color: rgba(132,132,132,0.4);
  color: #333;
}
.map-tab-bistro-bliss:focus-visible { outline: 2px solid #2c2f24; outline-offset: 2px; }
.map-layout-bistro-bliss {
  position: relative;
  background: #ffffff;
  border-radius: 24px;
  border: 1px solid #e1e1e1;
  height: 567px;
  overflow: hidden;
  display: flex;
}
.map-info-sidebar-bistro-bliss {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 534px;
  background: #68580b;
  border-radius: 24px 0 0 24px;
  padding: 50px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 20px;
  z-index: 1;
}
.map-sidebar-name-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 24px;
  font-weight: 600;
  color: #ffffff;
  letter-spacing: -0.4px;
  line-height: 1.2222;
  margin: 0;
}
.map-sidebar-address-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 24px;
  font-weight: 400;
  color: #ffffff;
  line-height: 1.3333;
  margin: 0;
}
.map-sidebar-link-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 24px;
  font-weight: 400;
  color: #ffffff;
  text-decoration: none;
  display: block;
}
.map-sidebar-link-bistro-bliss:hover { text-decoration: underline; }
.map-order-btn-bistro-bliss {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 70px;
  background: #f0c705;
  border-radius: 16px;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 30px;
  font-weight: 600;
  color: #000000;
  text-decoration: none;
  letter-spacing: -0.4px;
  margin-top: auto;
  transition: background 0.2s;
}
.map-order-btn-bistro-bliss:hover { background: #ffd40d; }
.map-order-btn-bistro-bliss:focus-visible { outline: 3px solid #ffd40d; outline-offset: 2px; }
.map-embed-bistro-bliss {
  flex: 1;
  min-height: 0;
  margin-left: 534px;
}
.map-embed-bistro-bliss iframe {
  width: 100%;
  height: 100%;
  display: block;
  border: none;
}
.map-placeholder-bistro-bliss {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #e8e8e4;
  color: #555555;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 18px;
}

/* ── Contact Details ───────────────────────────────────────── */
.contact-details-bistro-bliss {
  background: #f9f9f7;
  padding: clamp(56px, 6vw, 90px) 88px;
}
.contact-details-inner-bistro-bliss {
  max-width: 1296px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
}
.contact-details-items-bistro-bliss {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin-top: 32px;
}
.contact-detail-item-bistro-bliss {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.contact-icon-bistro-bliss { flex-shrink: 0; color: #ad343e; margin-top: 2px; }
.contact-detail-item-bistro-bliss p,
.contact-link-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.5;
  color: #414536;
  margin: 0;
  text-decoration: none;
}
.contact-link-bistro-bliss:hover { color: #2c2f24; text-decoration: underline; }
.contact-form-heading-bistro-bliss {
  font-family: var(--font-heading, 'Playfair Display', serif);
  font-size: 28px;
  font-weight: 500;
  color: #2c2f24;
  margin: 0 0 24px;
}
.contact-form-fields-bistro-bliss { display: flex; flex-direction: column; gap: 20px; }
.form-row-bistro-bliss { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.form-field-bistro-bliss { display: flex; flex-direction: column; gap: 6px; }
.form-label-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 14px;
  font-weight: 600;
  color: #2c2f24;
}
.form-input-bistro-bliss,
.form-textarea-bistro-bliss {
  padding: 12px 16px;
  background: #ffffff;
  border: 1.5px solid #dbdfd0;
  border-radius: 8px;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  color: #2c2f24;
  width: 100%;
  box-sizing: border-box;
  transition: border-color 0.2s;
}
.form-input-bistro-bliss:focus,
.form-textarea-bistro-bliss:focus {
  outline: none;
  border-color: #2c2f24;
}
.form-textarea-bistro-bliss { resize: vertical; min-height: 120px; }

/* ── Full Menu ────────────────────────────────────────────── */
.full-menu-bistro-bliss {
  background: #f9f9f7;
  padding: clamp(56px, 6vw, 90px) 88px;
}
.full-menu-inner-bistro-bliss {
  max-width: 1296px;
  margin: 0 auto;
}
.full-menu-header-bistro-bliss { margin-bottom: 40px; }
.full-menu-nav-bistro-bliss {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 48px;
  padding-bottom: 20px;
  border-bottom: 1px solid #8b8b8b;
}
.full-menu-nav-link-bistro-bliss {
  padding: 8px 20px;
  background: #f6f5f6;
  border-radius: 70px;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  font-weight: 600;
  color: #2c2f24;
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
}
.full-menu-nav-link-bistro-bliss:hover {
  background: #2c2f24;
  color: #ffffff;
}
.full-menu-categories-bistro-bliss { display: flex; flex-direction: column; gap: 56px; }
.full-menu-category-bistro-bliss { display: flex; flex-direction: column; gap: 24px; }
.full-menu-cat-name-bistro-bliss {
  font-family: var(--font-heading, 'Playfair Display', serif);
  font-size: 32px;
  font-weight: 500;
  color: #2c2f24;
  margin: 0;
  padding-bottom: 16px;
  border-bottom: 1px solid #dbdfd0;
}
.full-menu-cat-desc-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  color: #414536;
  margin: 0;
}
.full-menu-items-bistro-bliss { display: flex; flex-direction: column; gap: 0; }
.full-menu-item-bistro-bliss {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 16px;
  padding: 20px 0;
  border-bottom: 1px solid #dbdfd0;
  align-items: start;
}
.full-menu-item-img-bistro-bliss {
  width: 80px;
  height: 80px;
  border-radius: 8px;
  overflow: hidden;
  flex-shrink: 0;
}
.full-menu-item-img-bistro-bliss img,
.full-menu-item-img-el-bistro-bliss {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.full-menu-item-body-bistro-bliss { display: flex; flex-direction: column; gap: 6px; }
.full-menu-item-top-bistro-bliss {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
}
.full-menu-item-name-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 20px;
  font-weight: 700;
  color: #2c2f24;
  margin: 0;
}
.full-menu-item-price-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 18px;
  font-weight: 600;
  color: #2c2f24;
  white-space: nowrap;
  flex-shrink: 0;
}
.full-menu-item-desc-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.5;
  color: #414536;
  margin: 0;
}
.full-menu-item-bistro-bliss:has(.full-menu-item-img-bistro-bliss:empty) {
  grid-template-columns: 1fr;
}

/* ── Hours Table ──────────────────────────────────────────── */
.hours-table-bistro-bliss {
  background: #f9f9f7;
  padding: clamp(56px, 6vw, 90px) 88px;
}
.hours-inner-bistro-bliss {
  max-width: 800px;
  margin: 0 auto;
}
.hours-locations-bistro-bliss { display: flex; flex-direction: column; gap: 48px; }
.hours-location-name-bistro-bliss {
  font-family: var(--font-heading, 'Playfair Display', serif);
  font-size: 28px;
  font-weight: 500;
  color: #2c2f24;
  margin: 0 0 20px;
}
.hours-table-el-bistro-bliss { width: 100%; border-collapse: collapse; }
.hours-table-single-bistro-bliss { margin-top: 32px; }
.hours-row-bistro-bliss {
  border-bottom: 1px solid #dbdfd0;
}
.hours-day-bistro-bliss,
.hours-time-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 18px;
  line-height: 1.5;
  color: #414536;
  padding: 16px 0;
}
.hours-day-bistro-bliss { font-weight: 600; color: #2c2f24; width: 45%; }
.hours-time-bistro-bliss { font-weight: 400; }
.hours-note-bistro-bliss {
  margin-top: 24px;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 15px;
  color: #555555;
  font-style: italic;
}

/* ── About Story ──────────────────────────────────────────── */
.about-story-bistro-bliss {
  background: #f9f9f7;
  padding: clamp(56px, 6vw, 90px) 88px;
}
.about-story-inner-bistro-bliss {
  max-width: 1441px;
  margin: 0 auto;
}
.about-story-layout-bistro-bliss {
  display: grid;
  grid-template-columns: 1fr 672px;
  gap: 80px;
  align-items: start;
}
.about-story-text-bistro-bliss {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.about-story-body-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.5556;
  color: #414536;
  margin: 0;
}
.about-story-values-bistro-bliss {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.about-story-values-bistro-bliss li {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  font-weight: 400;
  color: #414536;
  padding-left: 20px;
  position: relative;
}
.about-story-values-bistro-bliss li::before {
  content: "→";
  position: absolute;
  left: 0;
  color: #ad343e;
}
.about-story-image-bistro-bliss {
  flex-shrink: 0;
}
.about-story-image-frame-bistro-bliss {
  background: #dbeafe;
  border: 1px solid #000000;
  width: 100%;
  aspect-ratio: 672 / 566;
  overflow: hidden;
}
.about-story-img-bistro-bliss {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ── Gallery Grid ─────────────────────────────────────────── */
.gallery-grid-bistro-bliss {
  background: #ffffff;
  padding: clamp(56px, 6vw, 90px) 88px;
}
.gallery-inner-bistro-bliss {
  max-width: 1296px;
  margin: 0 auto;
}
.gallery-grid-el-bistro-bliss {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 40px;
}
.gallery-item-bistro-bliss {
  margin: 0;
  overflow: hidden;
  border-radius: 4px;
  aspect-ratio: 4 / 3;
}
.gallery-img-bistro-bliss,
.gallery-item-bistro-bliss img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.gallery-item-bistro-bliss:hover img,
.gallery-item-bistro-bliss:hover .gallery-img-bistro-bliss {
  transform: scale(1.04);
}
.gallery-caption-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 13px;
  color: #555555;
  padding: 8px 0 0;
  text-align: center;
}

/* ── SEO / Dish Page ──────────────────────────────────────── */
.dish-page-bistro-bliss {
  background: #f9f9f7;
  padding: clamp(40px, 5vw, 80px) 88px;
}
.dish-page-inner-bistro-bliss {
  max-width: 1200px;
  margin: 0 auto;
}
.dish-page-layout-bistro-bliss {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: start;
  margin-bottom: 64px;
}
.dish-page-image-wrap-bistro-bliss {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 12px;
}
.dish-page-image-bistro-bliss {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.dish-page-details-bistro-bliss {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding-top: 8px;
}
.dish-page-name-bistro-bliss {
  font-family: var(--font-heading, 'Playfair Display', serif);
  font-size: clamp(28px, 4vw, 48px);
  font-weight: 500;
  color: #2c2f24;
  margin: 0;
}
.dish-page-desc-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 18px;
  line-height: 1.6;
  color: #414536;
  margin: 0;
}
.dish-page-price-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 28px;
  font-weight: 700;
  color: #2c2f24;
  margin: 0;
}
.dish-related-bistro-bliss { border-top: 1px solid #dbdfd0; padding-top: 48px; }
.dish-related-heading-bistro-bliss {
  font-family: var(--font-heading, 'Playfair Display', serif);
  font-size: 28px;
  font-weight: 500;
  color: #2c2f24;
  margin: 0 0 32px;
}
.dish-related-grid-bistro-bliss {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.dish-related-image-wrap-bistro-bliss {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 8px;
}
.dish-related-image-bistro-bliss { width: 100%; height: 100%; object-fit: cover; }
.dish-related-body-bistro-bliss { padding: 12px 0 0; }
.dish-related-name-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 18px;
  font-weight: 700;
  color: #2c2f24;
  margin: 0 0 4px;
}
.dish-related-price-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  font-weight: 600;
  color: #414536;
  margin: 0;
}
.dish-page-diet-bistro-bliss {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

/* ── Menu Category Page ───────────────────────────────────── */
.menu-cat-bistro-bliss {
  background: #f9f9f7;
  padding: clamp(40px, 5vw, 80px) 88px;
}
.menu-cat-inner-bistro-bliss { max-width: 1200px; margin: 0 auto; }
.menu-cat-header-bistro-bliss { margin-bottom: 40px; }
.menu-cat-title-bistro-bliss {
  font-family: var(--font-heading, 'Playfair Display', serif);
  font-size: clamp(32px, 4vw, 48px);
  font-weight: 500;
  color: #2c2f24;
  margin: 0 0 12px;
}
.menu-cat-desc-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 18px;
  line-height: 1.6;
  color: #414536;
  margin: 0;
}
.menu-cat-items-bistro-bliss { display: flex; flex-direction: column; gap: 0; }
.menu-cat-item-bistro-bliss {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 20px;
  padding: 24px 0;
  border-bottom: 1px solid #dbdfd0;
  align-items: start;
}
.menu-cat-item-img-wrap-bistro-bliss {
  width: 120px;
  height: 90px;
  border-radius: 8px;
  overflow: hidden;
}
.menu-cat-item-img-bistro-bliss { width: 100%; height: 100%; object-fit: cover; }
.menu-cat-item-name-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 20px;
  font-weight: 700;
  color: #2c2f24;
  margin: 0 0 6px;
}
.menu-cat-item-desc-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 15px;
  line-height: 1.5;
  color: #414536;
  margin: 0 0 8px;
}
.menu-cat-item-price-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 18px;
  font-weight: 600;
  color: #2c2f24;
  margin: 0;
}

/* ── Footer ───────────────────────────────────────────────── */
.site-footer-bistro-bliss {
  background: #f9f9f7;
  padding: 0;
}
.footer-inner-bistro-bliss {
  max-width: 1296px;
  margin: 0 auto;
  padding: 64px 152px 0;
}
.footer-columns-bistro-bliss {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr;
  gap: 48px;
  padding-bottom: 40px;
  border-bottom: 1px solid #8b8b8b;
}
.footer-brand-bistro-bliss {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.footer-logo-bistro-bliss { display: inline-flex; text-decoration: none; }
.footer-logo-img-bistro-bliss { width: 48px; height: auto; }
.footer-logo-text-bistro-bliss {
  font-family: var(--font-heading, 'Playfair Display', serif);
  font-size: 28px;
  font-style: italic;
  font-weight: 600;
  color: #4d592b;
}
.footer-tagline-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  color: #414536;
  margin: 0;
}
.footer-social-bistro-bliss {
  display: flex;
  gap: 8px;
  margin-top: 4px;
}
.footer-social-link-bistro-bliss {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(44,47,36,0.08);
  color: #2c2f24;
  transition: background 0.2s;
}
.footer-social-link-bistro-bliss:hover { background: rgba(44,47,36,0.2); }
.footer-col-heading-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 18px;
  font-weight: 700;
  color: #2c2f24;
  margin: 0 0 16px;
}
.footer-nav-list-bistro-bliss {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.footer-nav-link-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  color: #414536;
  text-decoration: none;
  transition: color 0.2s;
}
.footer-nav-link-bistro-bliss:hover { color: #2c2f24; }
.footer-contact-bistro-bliss { display: flex; flex-direction: column; gap: 12px; }
.footer-contact-item-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  color: #414536;
  margin: 0;
}
.footer-contact-link-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  color: #414536;
  text-decoration: none;
  display: block;
  transition: color 0.2s;
}
.footer-contact-link-bistro-bliss:hover { color: #2c2f24; }
.footer-reserve-btn-bistro-bliss {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 8px;
  padding: 10px 24px;
  background: #ffd40d;
  color: #2c2f24;
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 14px;
  font-weight: 700;
  border-radius: 118px;
  text-decoration: none;
  transition: background 0.2s;
}
.footer-reserve-btn-bistro-bliss:hover { background: #f0c705; }
.footer-bottom-bistro-bliss {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 0 32px;
  gap: 16px;
  flex-wrap: wrap;
}
.footer-copy-bistro-bliss,
.footer-powered-bistro-bliss {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 16px;
  font-weight: 400;
  line-height: 1;
  color: #000000;
  margin: 0;
}

/* ── Diet Badge (required) ────────────────────────────────── */
.diet-badge-veg .diet-badge-icon { border-color: #16a34a; }
.diet-badge-veg .diet-badge-icon span { background: #16a34a; }
.diet-badge-egg .diet-badge-icon { border-color: #ca8a04; }
.diet-badge-egg .diet-badge-icon span { background: #ca8a04; }
.diet-badge-non-veg .diet-badge-icon { border-color: #dc2626; }
.diet-badge-non-veg .diet-badge-icon span { background: #dc2626; }

.diet-badge-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  border: 1.5px solid;
  border-radius: 2px;
  flex-shrink: 0;
}
.diet-badge-icon span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  display: block;
}
.diet-badge-label {
  font-family: var(--font-body, 'DM Sans', sans-serif);
  font-size: 12px;
  font-weight: 500;
  color: #414536;
  text-transform: capitalize;
}

/* ── Page-top padding (compensates for fixed header ~129px) ─ */
.hero-bistro-bliss {
  padding-top: 0;
}
.menu-preview-bistro-bliss,
.about-preview-bistro-bliss,
.featured-dishes-bistro-bliss,
.cta-banner-bistro-bliss,
.special-events-bistro-bliss,
.testimonials-bistro-bliss,
.blog-preview-bistro-bliss,
.map-section-bistro-bliss,
.contact-details-bistro-bliss,
.full-menu-bistro-bliss,
.hours-table-bistro-bliss,
.about-story-bistro-bliss,
.gallery-grid-bistro-bliss {
  scroll-margin-top: 129px;
}
.dish-page-bistro-bliss,
.menu-cat-bistro-bliss {
  padding-top: clamp(80px, 8vw, 160px);
}

/* ============================================================
   RESPONSIVE
   ============================================================ */

/* ── Tablet (768px – 1023px) ──────────────────────────────── */
@media (max-width: 1023px) {
  /* Header */
  .header-topbar-bistro-bliss,
  .site-nav-bistro-bliss {
    padding-left: 32px;
    padding-right: 32px;
  }
  .header-topbar-inner-bistro-bliss {
    height: auto;
    padding: 8px 0;
    flex-wrap: wrap;
    gap: 12px;
  }
  .topbar-contacts-bistro-bliss { flex-wrap: wrap; gap: 12px; }

  /* Hero */
  .hero-inner-bistro-bliss {
    grid-template-columns: 1fr;
    padding: 160px 32px 60px;
    min-height: 700px;
    gap: 40px;
  }
  .hero-reservation-bistro-bliss {
    width: 100%;
    max-width: 480px;
  }

  /* Sections */
  .menu-preview-bistro-bliss,
  .about-preview-bistro-bliss,
  .featured-dishes-bistro-bliss,
  .cta-banner-bistro-bliss,
  .special-events-bistro-bliss,
  .testimonials-bistro-bliss,
  .blog-preview-bistro-bliss,
  .contact-details-bistro-bliss,
  .full-menu-bistro-bliss,
  .hours-table-bistro-bliss,
  .about-story-bistro-bliss,
  .gallery-grid-bistro-bliss {
    padding-left: 32px;
    padding-right: 32px;
  }
  .map-section-bistro-bliss { padding-left: 32px; padding-right: 32px; }
  .footer-inner-bistro-bliss { padding-left: 32px; padding-right: 32px; }

  .menu-preview-cards-bistro-bliss {
    grid-template-columns: repeat(2, 1fr);
  }

  .about-preview-inner-bistro-bliss {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .about-preview-image-frame-bistro-bliss {
    max-width: 100%;
  }

  .featured-dishes-cards-bistro-bliss {
    grid-template-columns: repeat(2, 1fr);
  }
  .featured-dishes-header-bistro-bliss {
    flex-direction: column;
    align-items: flex-start;
  }

  .cta-banner-inner-bistro-bliss {
    grid-template-columns: 1fr;
    min-height: auto;
    border-radius: 16px;
  }

  .special-events-inner-bistro-bliss {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .special-events-image-bistro-bliss {
    max-width: 100%;
    aspect-ratio: 16 / 9;
  }

  .testimonials-cards-bistro-bliss {
    grid-template-columns: repeat(2, 1fr);
  }
  .testimonials-inner-bistro-bliss { gap: 40px; }

  .blog-preview-grid-bistro-bliss {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
  }
  .blog-card-featured-bistro-bliss { grid-row: auto; grid-column: 1 / 3; }

  .map-inner-bistro-bliss { gap: 32px; }
  .map-layout-bistro-bliss { height: auto; min-height: 500px; flex-direction: column; }
  .map-info-sidebar-bistro-bliss {
    position: static;
    width: 100%;
    border-radius: 24px 24px 0 0;
  }
  .map-embed-bistro-bliss {
    margin-left: 0;
    height: 300px;
    flex-shrink: 0;
  }

  .contact-details-inner-bistro-bliss {
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .about-story-layout-bistro-bliss {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .about-story-image-bistro-bliss { order: -1; }

  .dish-page-layout-bistro-bliss { grid-template-columns: 1fr; }

  .footer-columns-bistro-bliss {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }
  .footer-brand-bistro-bliss { grid-column: 1 / 3; }
}

/* ── Mobile (≤ 767px) ─────────────────────────────────────── */
@media (max-width: 767px) {
  /* Header */
  .header-topbar-bistro-bliss,
  .site-nav-bistro-bliss {
    padding-left: 20px;
    padding-right: 20px;
  }
  .header-topbar-bistro-bliss { display: none; }
  .nav-inner-bistro-bliss { position: relative; }
  .nav-toggle-bistro-bliss { display: flex; }
  .nav-links-bistro-bliss {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.12);
    flex-direction: column;
    gap: 4px;
    padding: 12px;
    z-index: 50;
    margin-left: 0;
  }
  .nav-links-bistro-bliss.is-open { display: flex; }
  .nav-link-bistro-bliss { color: #2c2f24; padding: 10px 16px; border-radius: 8px; }
  .nav-link-bistro-bliss.is-active { background: #dbdfd0; }
  .nav-link-bistro-bliss:hover:not(.is-active) { background: #f9f9f7; }
  .nav-reserve-bistro-bliss { display: none; }

  /* Hero */
  .hero-bistro-bliss { min-height: auto; }
  .hero-inner-bistro-bliss {
    grid-template-columns: 1fr;
    padding: 140px 20px 48px;
    min-height: auto;
    gap: 32px;
    align-items: flex-start;
  }
  .hero-headline-bistro-bliss { font-size: clamp(32px, 8vw, 56px); }
  .hero-subheadline-bistro-bliss { font-size: 16px; }
  .hero-reservation-bistro-bliss { width: 100%; }

  /* Common section padding */
  .menu-preview-bistro-bliss,
  .about-preview-bistro-bliss,
  .featured-dishes-bistro-bliss,
  .cta-banner-bistro-bliss,
  .special-events-bistro-bliss,
  .testimonials-bistro-bliss,
  .blog-preview-bistro-bliss,
  .contact-details-bistro-bliss,
  .full-menu-bistro-bliss,
  .hours-table-bistro-bliss,
  .about-story-bistro-bliss,
  .gallery-grid-bistro-bliss {
    padding-left: 20px;
    padding-right: 20px;
  }
  .map-section-bistro-bliss { padding-left: 20px; padding-right: 20px; }
  .footer-inner-bistro-bliss { padding-left: 20px; padding-right: 20px; }
  .dish-page-bistro-bliss,
  .menu-cat-bistro-bliss { padding-left: 20px; padding-right: 20px; }

  /* Menu preview – single column */
  .menu-preview-cards-bistro-bliss { grid-template-columns: 1fr; }

  /* About preview – single column */
  .about-preview-inner-bistro-bliss { gap: 32px; }

  /* Featured dishes – single column */
  .featured-dishes-cards-bistro-bliss { grid-template-columns: 1fr; }

  /* CTA banner – stacked */
  .cta-banner-inner-bistro-bliss {
    grid-template-columns: 1fr;
    border-radius: 12px;
  }
  .cta-banner-card-bistro-bliss { padding: 32px 24px; }

  /* Testimonials – single column */
  .testimonials-cards-bistro-bliss { grid-template-columns: 1fr; }

  /* Blog – single column */
  .blog-preview-grid-bistro-bliss {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }
  .blog-card-featured-bistro-bliss { grid-column: auto; grid-row: auto; }
  .blog-preview-titlebar-bistro-bliss { flex-direction: column; align-items: flex-start; }

  /* Map */
  .map-tabs-bistro-bliss { gap: 8px; }
  .map-tab-bistro-bliss { padding: 10px 20px; font-size: 16px; }
  .map-info-sidebar-bistro-bliss { padding: 28px 24px; }
  .map-sidebar-name-bistro-bliss,
  .map-sidebar-address-bistro-bliss,
  .map-sidebar-link-bistro-bliss { font-size: 16px; }
  .map-order-btn-bistro-bliss { font-size: 18px; height: 52px; }

  /* Gallery */
  .gallery-grid-el-bistro-bliss { grid-template-columns: repeat(2, 1fr); }

  /* Footer */
  .footer-columns-bistro-bliss { grid-template-columns: 1fr; }
  .footer-brand-bistro-bliss { grid-column: auto; }
  .footer-bottom-bistro-bliss { flex-direction: column; align-items: flex-start; }

  /* Dish page */
  .dish-page-layout-bistro-bliss { grid-template-columns: 1fr; }
  .dish-related-grid-bistro-bliss { grid-template-columns: repeat(2, 1fr); }

  /* Form */
  .form-row-bistro-bliss { grid-template-columns: 1fr; }

  /* Section headings */
  .section-heading-bistro-bliss { font-size: clamp(28px, 7vw, 40px); }
  .section-eyebrow-bistro-bliss { font-size: 18px; }
}

/* ── Wide (≥ 1440px) ──────────────────────────────────────── */
@media (min-width: 1440px) {
  .hero-inner-bistro-bliss,
  .menu-preview-inner-bistro-bliss,
  .about-preview-inner-bistro-bliss,
  .featured-dishes-inner-bistro-bliss,
  .testimonials-inner-bistro-bliss,
  .blog-preview-inner-bistro-bliss,
  .map-inner-bistro-bliss,
  .contact-details-inner-bistro-bliss,
  .full-menu-inner-bistro-bliss,
  .hours-inner-bistro-bliss,
  .about-story-inner-bistro-bliss,
  .gallery-inner-bistro-bliss,
  .dish-page-inner-bistro-bliss,
  .menu-cat-inner-bistro-bliss,
  .special-events-inner-bistro-bliss,
  .footer-inner-bistro-bliss {
    max-width: 1440px;
  }
}
