/* WBR Theme Entry
   Composes the global WBR contract and app modules.
   Theme-specific overrides live in _overrides.scss.
*/
/* static/wbr/scss/_tokens.scss */
/* Foundation defaults (SCSS variables) */
/* Sizing */
/* Readability */
/* Spacing scale (keep small + practical) */
/* Radii */
/* Semantic colors (defaulting to Bootstrap CSS vars where possible) */
/* Focus ring: keep it explicit */
/* Bootstrap-ish default */
/* Status */
/* Emit CSS variables */
:root {
  --wbr-font-sans: var(--bs-body-font-family);
  --wbr-font-mono: var(--bs-font-monospace);
  --wbr-size-base: 1rem;
  --wbr-size-sm: 0.9375rem;
  --wbr-size-xs: 0.875rem;
  --wbr-line-body: 1.5;
  --wbr-line-tight: 1.25;
  --wbr-space-1: 0.25rem;
  --wbr-space-2: 0.5rem;
  --wbr-space-3: 0.75rem;
  --wbr-space-4: 1rem;
  --wbr-space-5: 1.5rem;
  --wbr-radius-1: 0.25rem;
  --wbr-radius-2: 0.5rem;
  --wbr-radius-3: 0.75rem;
  --wbr-color-text: var(--bs-body-color);
  --wbr-color-text-muted: var(--bs-secondary-color);
  --wbr-color-surface: var(--bs-body-bg);
  --wbr-color-surface-muted: var(--bs-tertiary-bg);
  --wbr-color-border: var(--bs-border-color);
  --wbr-color-link: var(--bs-link-color);
  --wbr-color-link-hover: var(--bs-link-hover-color);
  --wbr-color-focus-ring: rgba(13, 110, 253, 0.35);
  --wbr-color-success: var(--bs-success);
  --wbr-color-warning: var(--bs-warning);
  --wbr-color-danger: var(--bs-danger);
  --wbr-color-info: var(--bs-info);
}

/* static/wbr/scss/_type.scss */
.wbr-type {
  font-family: var(--wbr-font-sans);
  color: var(--wbr-color-text);
}

.wbr-type-body {
  font-size: var(--wbr-size-base);
  line-height: var(--wbr-line-body);
}

.wbr-type-small {
  font-size: var(--wbr-size-sm);
  line-height: var(--wbr-line-body);
}

.wbr-type-xs {
  font-size: var(--wbr-size-xs);
  line-height: var(--wbr-line-body);
}

.wbr-type-muted {
  color: var(--wbr-color-text-muted);
}

.wbr-type-strong {
  font-weight: 600;
}

.wbr-type-numeric {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* static/wbr/scss/_rhythm.scss */
.wbr-rhythm-section {
  margin-bottom: var(--wbr-space-5);
}

.wbr-rhythm-block {
  margin-bottom: var(--wbr-space-4);
}

.wbr-rhythm-item {
  margin-bottom: var(--wbr-space-3);
}

.wbr-rhythm-tight {
  margin-bottom: var(--wbr-space-2);
}

/* static/wbr/scss/_primitives.scss */
.wbr-surface {
  background: var(--wbr-color-surface);
}

.wbr-surface-muted {
  background: var(--wbr-color-surface-muted);
}

.wbr-rule {
  border: 0;
  border-top: 1px solid var(--wbr-color-border);
  margin: var(--wbr-space-4) 0;
}

.wbr-focus-ring:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 0.25rem var(--wbr-color-focus-ring);
}

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

.skip-link {
  position: absolute;
  top: -100%;
  left: 1rem;
  z-index: 10000;
  padding: 0.75rem 1rem;
  background: #000;
  color: #fff;
  text-decoration: none;
}

.skip-link:focus {
  top: 1rem;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
:focus-visible {
  outline: 3px solid var(--wbr-color-accent, #005fcc);
  outline-offset: 2px;
}

.not-sr-only {
  position: static !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  overflow: visible !important;
  clip: auto !important;
  white-space: normal !important;
}

.wbr-nav__list {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  justify-content: center;
  margin: 0;
  padding: 0;
  list-style: none;
}

.wbr-nav__item {
  margin: 0;
  padding: 0;
}

.wbr-nav__link {
  text-decoration: none;
}

.menu-item {
  display: block;
}

.menu-item__description {
  margin: 0;
}

.menu-category__title {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: var(--wbr-line-tight);
}

.menu-category__note {
  font-size: var(--wbr-size-sm);
  color: var(--wbr-color-text-muted);
  line-height: var(--wbr-line-body);
}

.menu-rhythm-section {
  margin-bottom: var(--wbr-space-5);
}

/* ------------------------------------------------------------
   Centered menu presentation
------------------------------------------------------------ */
.menu-type__header--centered {
  text-align: center;
}

.menu-type-items--centered {
  justify-content: center;
}

.menu-type-items__item--centered {
  text-align: center;
}

.menu-type-items__item--centered .menu-type-item--centered {
  max-width: 14rem;
  margin-left: auto;
  margin-right: auto;
}

.menu-type-item--centered .menu-type-item-name {
  margin: 0;
  text-align: center;
}

.menu-type-item--centered .menu-type-item-desc {
  margin-top: var(--wbr-space-1);
  margin-bottom: 0;
  text-align: center;
}

.menu-type-item--centered .menu-type-item-price-wrap {
  margin-top: var(--wbr-space-2);
  text-align: center;
}

/* ------------------------------------------------------------
   Centered multicolumn layouts
   - Uses flexbox so incomplete final rows center naturally
------------------------------------------------------------ */
.menu-type-items--centered {
  --menu-column-gap-x: 2rem;
  --menu-column-gap-y: 1.25rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--menu-column-gap-y) var(--menu-column-gap-x);
}

.menu-type-items--centered > .menu-type-items__item {
  width: 100%;
}

/* Three-column centered */
.menu-type-items--three-column.menu-type-items--centered > .menu-type-items__item {
  flex: 0 1 calc((100% - 2 * var(--menu-column-gap-x)) / 3);
  max-width: calc((100% - 2 * var(--menu-column-gap-x)) / 3);
}

/* Four-column centered */
.menu-type-items--four-column.menu-type-items--centered > .menu-type-items__item {
  flex: 0 1 calc((100% - 3 * var(--menu-column-gap-x)) / 4);
  max-width: calc((100% - 3 * var(--menu-column-gap-x)) / 4);
}

/* Tablet */
@media (max-width: 991.98px) {
  .menu-type-items--three-column.menu-type-items--centered > .menu-type-items__item,
  .menu-type-items--four-column.menu-type-items--centered > .menu-type-items__item {
    flex: 0 1 calc((100% - var(--menu-column-gap-x)) / 2);
    max-width: calc((100% - var(--menu-column-gap-x)) / 2);
  }
}
/* Mobile */
@media (max-width: 767.98px) {
  .menu-type-items--three-column.menu-type-items--centered > .menu-type-items__item,
  .menu-type-items--four-column.menu-type-items--centered > .menu-type-items__item {
    flex: 0 1 100%;
    max-width: 100%;
  }
}
/* ------------------------------------------------------------
   Menu category column layouts (shared geometry)
------------------------------------------------------------ */
.menu-category__items--two-column {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem 2rem;
}

.menu-category__items--three-column {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem 2rem;
}

.menu-category__items--four-column {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem 2rem;
}

@media (max-width: 1199.98px) {
  .menu-category__items--four-column {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 991.98px) {
  .menu-category__items--three-column,
  .menu-category__items--four-column {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 767.98px) {
  .menu-category__items--two-column,
  .menu-category__items--three-column,
  .menu-category__items--four-column {
    grid-template-columns: 1fr;
  }
}
/* Theme overrides last so they win */
/*
  - THEME: DragonFlyEye (DFE)
  - AUTHOR: Tom Belknap
  - URL: https://dragonflyeye.net
 */
/* Theme overrides
   - Global tokens
   - Bootstrap variable mappings
   - Light global styling (no markup changes)
*/
/* ------------------------------------------------------------
   Global theme tokens
------------------------------------------------------------ */
:root {
  /* Fonts
     IBM Plex Sans gives us a cooler, more technical body voice.
     Merriweather Sans provides headline presence without feeling
     overly traditional or literary.
  */
  --wbr-font-sans: "IBM Plex Sans", ui-sans-serif, system-ui, -apple-system,
    "Segoe UI", Roboto, Arial, sans-serif;
  --wbr-font-display: "Merriweather Sans", ui-sans-serif, system-ui,
    -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  /* Core colors */
  --wbr-bg: #f7f3ec;
  --wbr-ink: #1c1c1c;
  --wbr-muted: #5a5a5a;
  /* Brand accents */
  --wbr-primary: #3e5c76;
  --wbr-link: var(--wbr-primary);
  /* Subtle surfaces */
  --wbr-panel: rgba(226, 221, 213, 0.42);
  --wbr-line: #d8d6d0;
  /* Bootstrap mappings */
  --bs-body-font-family: var(--wbr-font-sans);
  --bs-body-color: var(--wbr-ink);
  --bs-body-bg: var(--wbr-bg);
  --bs-link-color: var(--wbr-link);
  --bs-link-hover-color: #2d455a;
  --bs-primary: var(--wbr-primary);
}

/* ------------------------------------------------------------
   Global typography + baseline polish
------------------------------------------------------------ */
body {
  font-family: var(--bs-body-font-family);
  color: var(--bs-body-color);
  background: var(--bs-body-bg);
}

h1, h2, h3, h4, h5, h6,
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
  font-family: var(--wbr-font-display);
  color: var(--wbr-ink);
}

.text-muted,
small,
.small {
  color: var(--wbr-muted) !important;
}

a {
  color: var(--wbr-link);
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
}

a:hover,
a:focus {
  color: var(--bs-link-hover-color);
}

/* ------------------------------------------------------------
   DragonFlyEye Landing Page
------------------------------------------------------------ */
.dfe-landing {
  min-height: 100vh;
  display: grid;
  align-items: center;
  padding-block: clamp(4rem, 8vw, 8rem);
}

/* ------------------------------------------------------------
   Hero
------------------------------------------------------------ */
.dfe-hero {
  width: min(100% - 3rem, 56rem);
  margin-inline: auto;
}

.dfe-hero__brand {
  margin: 0;
  font-family: var(--wbr-font-display);
  font-size: clamp(3rem, 8vw, 6rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.04em;
  text-wrap: balance;
  overflow-wrap: break-word;
}

.dfe-hero__tagline {
  max-width: 44rem;
  margin: 1.5rem 0 0;
  font-family: var(--wbr-font-sans);
  font-size: clamp(1.35rem, 2.5vw, 2rem);
  font-weight: 600;
  line-height: 1.35;
  color: var(--wbr-primary);
}

.dfe-hero__lede {
  max-width: 38rem;
  margin: 3rem 0 0;
  font-size: clamp(1.1rem, 1.7vw, 1.35rem);
  line-height: 1.7;
  color: var(--wbr-ink);
}

.dfe-hero__status {
  max-width: 38rem;
  margin: 1rem 0 0;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--wbr-muted);
}

.dfe-hero__body {
  max-width: 38rem;
  margin: 1rem 0 0;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--wbr-muted);
}

/* ------------------------------------------------------------
   Responsive tweaks
------------------------------------------------------------ */
@media (max-width: 768px) {
  .dfe-landing {
    align-items: start;
  }
  .dfe-hero {
    width: min(100% - 2rem, 56rem);
  }
  .dfe-hero__brand {
    font-size: clamp(3.25rem, 18vw, 5rem);
    letter-spacing: -0.045em;
  }
}

/*# sourceMappingURL=theme.css.map */
