/* Site overrides — restore specificity lost when [data-v-*] scoping
   was stripped from the scraped CSS. Linked LAST so it wins ties. */

/* hero CTA: .btn-primary{margin-top:0} was overriding .hero_ctaBtn */
.hero_cta .hero_ctaBtn { margin-top: 40px; }
@media only screen and (max-width: 1023px) {
  .hero_cta .hero_ctaBtn { margin-top: 24px; }
}

/* fixed header — the original pins it via #headerBanner{position:fixed},
   the id was lost in the captured DOM. Keep it on screen while scrolling. */
header[role="banner"] {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 2000;
}
main[role="main"] { padding-top: 80px; }      /* .primaryBanner height >=768px */
@media only screen and (max-width: 767px) {
  main[role="main"] { padding-top: 75px; }    /* .primaryBanner height <768px */
}

/* Header layout fix — .header_content lost [data-v-330c4992] scope,
   so nav tabs (Menu/Locations/Careers/Catering) fell below the banner
   and were clipped by .primaryBanner{overflow:hidden}. */
.primaryBanner .header_content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 100%;
  position: relative;
  width: 100%;
}
.primaryBanner.primaryBanner-basic .header_content {
  justify-content: flex-end;
}
.primaryBanner .sidebar { display: none !important; }
.primaryBanner .navSite {
  display: flex !important;
  align-items: center;
  justify-content: center;
  height: 56px;
  margin-top: 0;
  padding: 0;
}
.primaryBanner .navControls_endJustify {
  display: flex;
  flex: 0 0 auto;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.primaryBanner .navControls_endJustify > li,
.primaryBanner .navControls_endJustify > ul {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}
.primaryBanner .navControls_endJustify .navControls_item,
.primaryBanner .navControls_endJustify #userProfileList,
.primaryBanner .navControls_endJustify #signInList {
  display: flex;
  align-items: center;
}

/* red search icon in the header */
.primaryBanner .navControls_search .icon-search,
.primaryBanner .navControls_search .icon-search svg,
.primaryBanner .navControls_search .inputGroup_btn-clear {
  color: #b81237;
  fill: #b81237;
}

/* desktop: move logo right and right controls left compared to full-bleed flex */
@media only screen and (min-width: 768px) {
  .primaryBanner .header_content { padding: 0 60px; }
  .primaryBanner .logo { flex: 0 0 auto; }
  .primaryBanner.primaryBanner-basic .logo { left: 60px; }
}

/* hide hamburger on desktop, show on mobile */
.burgerFlexStyle { display: none !important; }
@media only screen and (max-width: 767px) {
  .burgerFlexStyle { display: block !important; padding: 0 8px; position: relative; z-index: 10; }
  .primaryBanner .navSite { display: none !important; }
  /* mobile header: no ORDER NOW button, no search magnifier */
  html body .primaryBanner #orderNowList,
  html body .primaryBanner .navControls_search { display: none !important; }
  /* clearfix ::after is a third flex item; drop it so right controls reach the edge */
  .primaryBanner .header_content::after { display: none !important; }
  /* hide the scraped bag icon — the injected red cart button is used instead */
  html body .primaryBanner #cartList { display: none !important; }
  /* keep the account avatar, hide the "Hi, Name" text so it can't cover the cart */
  .primaryBanner #userProfileList #userFirstName { display: none !important; }
  .primaryBanner .header_content { justify-content: space-between; }
  .logo { z-index: 0; left: 60px; top: 18px; right: auto; }
  .burger-button { position: relative; z-index: 1000; height: 30px; width: 32px; display: block; background: transparent; border: 0; padding: 0; margin: 0; cursor: pointer; }
  .burger-button .burger-bar { display: block; position: absolute; left: 6px; right: 6px; height: 2px; background: #b81237; top: 50%; border-radius: 1px; z-index: 1001; }
  .burger-button .burger-bar--1 { top: calc(50% - 8px); }
  .burger-button .burger-bar--2 { top: 50%; }
  .burger-button .burger-bar--3 { top: calc(50% + 8px); }
}

/* profile / sign-in / cart cells */
#userProfileList,
#cartList {
  display: none;
}
#userProfileList, #signInList {
  margin: 0;
  padding: 0;
  list-style: none;
}
#userProfileList li, #signInList li {
  margin: 0;
  padding: 0;
  list-style: none;
}
.userProfileDesktop {
  display: flex;
  align-items: center;
  margin-left: 15px;
  text-decoration: none;
  color: inherit;
  background: none;
  border: none;
}
.userProfileDesktop div {
  display: flex;
  align-items: center;
}
.userProfileDesktop img {
  height: 32px;
  width: auto;
  display: block;
}
#userFirstName {
  font-size: 15px;
  font-weight: 700;
  margin-left: 6px;
  white-space: nowrap;
  text-transform: none;
}
#cartList a {
  display: flex;
  align-items: center;
}
#cartList img {
  width: 26px;
  height: 26px;
  display: block;
}

/* search icon should not be absolutely positioned inside its wrapper */
.navControls_flexStyle { display: flex !important; align-items: center; justify-content: center; position: relative; top: auto; right: auto; flex: none; }
.inputGroup_btn-clear { position: relative; right: auto; }

/* Header background — the scraped CSS points to /assets/... which doesn't exist locally,
   so the pinned header became transparent on scroll. Restore a solid white fallback
   and, for the main header, the local marble image. */
.primaryBanner {
  background-color: #fff !important;
  background-image: url('scraped_assets/images/marble_bg_medium-dOgoytJE.png') !important;
  background-size: 100% !important;
}
.primaryBanner.primaryBanner-basic {
  background-image: none !important;
}

/* "More ..." dropdown on the menu ribbon: keep the panel open while the
   pointer is anywhere inside li.moreNavItems (header OR the panel itself).
   The scraped css only had :hover on the header sibling, which closed the
   panel as soon as the mouse moved into it. */
/* overflow:hidden on the ul clips the dropdown; min-width:0 keeps the
   flex item shrinkable so overflow:visible doesn't push it off-screen */
.menuHeaderNav {
  min-width: 0;
  max-width: 100%;
  overflow: visible !important;
}
.menuHeaderNav li.moreNavItems { position: relative; }
.menuHeaderNav li.moreNavItems:hover .moreNavItems_content { display: block; }
.menuHeaderNav .moreNavItems_content a { color: #fff; }
.menuHeaderNav .moreNavItems_content a:hover { color: #000; }

/* The de-scoped rule `.menuCategoryContent .hero{display:none}` originally
   targeted `.hero[data-v-4ae1bc87]` and never matched the real catering
   hero (which carries data-v-5274a4d3). Restore it. */
.menuCategoryContent .hero { display: block; }

/* heroComponent/carouselComponent shipped scoped overrides
   `.placeholderImg{padding-top:0!important}` for their hero images; after
   data-v stripping they collapsed EVERY card image (cards get their aspect
   box from padding-top:66.6%). Restore it for card/media contexts only —
   hero/carousel placeholders keep their 0. */
.menuList_item .placeholderImg,
.media_img .placeholderImg,
.menuItemMedia .placeholderImg { padding-top: 66.6% !important; }

/* product detail images need to fill the 66.6% placeholder box */
.menuItemMedia .placeholderImg img,
.menuItemMedia .placeholderImg picture,
.menuList_item .placeholderImg img,
.media_img .placeholderImg img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* product page layout — leave unstyled for now (user requested revert) */

/* Mobile responsiveness fixes */

/* prevent any global body width/padding from breaking small screens */
html, body {
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
}

/* homepage hero / carousel: shrink title on phones; arrows stay visible so
   the hero and Farmhouse Kitchen Favorites slideshows can be switched */
@media only screen and (max-width: 767px) {
  .hero_ctaTitle {
    font-size: 22px !important;
    line-height: 1.1 !important;
    margin-bottom: 12px !important;
  }
  .carousel__prev,
  .carousel__next {
    display: flex !important;
    background: rgba(255,255,255,.85) !important;
    border-radius: 50% !important;
    box-shadow: 0 2px 6px rgba(0,0,0,.25);
  }
  .hero_cta {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  /* Farmhouse Kitchen Favorites: one dish per slide instead of 5 crammed */
  .carouselWidth .carousel__slide {
    width: 100% !important;
  }
  .carouselWidth .imageBtnContainer {
    width: 100%;
  }
  .carouselWidth .itemImg {
    width: 85%;
    max-width: 340px;
  }
}

/* menu landing: 1 column on phones, 2 columns on tablets, original otherwise */
@media only screen and (max-width: 480px) {
  .menuCategoryList {
    display: flex;
    flex-wrap: wrap;
  }
  .menuCategoryList .menuCategoryList_item,
  .menuCategoryList.grid-2 > .grid_item,
  .menuCategoryList.grid-3Small > .grid_item,
  .menuCategoryList.grid-4Large > .grid_item {
    width: 100% !important;
    padding-left: 16px;
    padding-right: 16px;
  }
  .menuCategoryList_item h2 {
    font-size: 16px;
  }
}

/* product page: smaller title and text on phones */
@media only screen and (max-width: 767px) {
  .menuItemContent h1 {
    font-size: 24px !important;
    line-height: 1.15 !important;
  }
  .menuItemContent .calories {
    font-size: 14px !important;
  }
  .menuItemContent .desc {
    font-size: 14px !important;
    line-height: 1.4 !important;
  }
  .menuItemInfo_btn .btn {
    width: 100%;
  }
}

/* make sure category cards stay 1 column on very small screens */
@media only screen and (max-width: 480px) {
  .menuList_item_group,
  .menuList {
    width: 100% !important;
  }
}

/* mobile hamburger navigation panel + pinned order footer */
.mobileNavPanel {
  position: fixed;
  top: 75px;
  bottom: 60px;
  left: 0;
  width: 85%;
  max-width: 320px;
  background: #f7f7f7;
  z-index: 3000;
  transform: translateX(-100%);
  transition: transform 0.3s ease;
  box-shadow: 2px 0 10px rgba(0, 0, 0, 0.2);
  overflow-y: auto;
}
.mobileNavPanel.open { transform: translateX(0); }

.mobileNavOverlay {
  position: fixed;
  top: 75px;
  right: 0;
  bottom: 60px;
  left: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 2990;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
}
.mobileNavOverlay.open { opacity: 1; visibility: visible; }

body.mobileNavOpen { overflow: hidden; }

.mobileNavPanelInner {
  padding: 20px;
  min-height: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
}

.mobileNavSearch {
  position: relative;
  margin-bottom: 20px;
}
.mobileNavSearch input {
  width: 100%;
  padding: 12px 40px 12px 14px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 14px;
  background: #fff;
}
.mobileNavSearch button {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: #999;
  font-size: 22px;
  cursor: pointer;
}

.mobileNavMain,
.mobileNavSub {
  list-style: none;
  padding: 0;
  margin: 0;
}
.mobileNavMain li a,
.mobileNavSub li a {
  display: block;
  padding: 8px 0;
  color: #000;
  text-decoration: none;
  font-weight: 700;
  font-size: 15px;
  text-transform: uppercase;
  border-bottom: 1px solid transparent;
}
.mobileNavSub li a {
  font-weight: 400;
  text-transform: none;
  color: #333;
}
/* only line between CATERING and About Us; add extra space around it */
.mobileNavMain li:last-child a {
  border-bottom-color: #e0e0e0;
  padding-bottom: 18px;
}
.mobileNavSub li:first-child a {
  padding-top: 18px;
}

.mobileNavButtons {
  margin-top: auto;
  padding-top: 30px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.mobileNavButtons .btn {
  display: inline-block;
  width: auto;
  min-width: 150px;
  text-align: center;
  padding: 12px 40px;
  border-radius: 20px;
  text-transform: uppercase;
  font-weight: 700;
  text-decoration: none;
  font-size: 14px;
}
.mobileNavButtons .btn-primary {
  background: #b81237;
  color: #fff;
  border: 1px solid #b81237;
}
.mobileNavButtons .btn-outline {
  background: #fff;
  color: #b81237;
  border: 1px solid #b81237;
}

.mobilePinnedFooter {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60px;
  box-sizing: border-box;
  background: #fff;
  z-index: 2995;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.1);
}
.mobilePinnedFooter .btn {
  flex: 0 0 auto;
  width: calc(50% - 8px);
  min-width: 120px;
  max-width: 180px;
  box-sizing: border-box;
  text-align: center;
  padding: 10px 24px;
  border-radius: 6px;
  background: #b81237;
  color: #fff;
  font-weight: 700;
  text-transform: none;
  text-decoration: none;
  font-size: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

@media only screen and (max-width: 767px) {
  body { padding-bottom: 60px; }
}

@media only screen and (min-width: 768px) {
  .mobileNavPanel,
  .mobileNavOverlay,
  .mobilePinnedFooter { display: none !important; }
  body { padding-bottom: 0; }
}

/* sweeps page product carousel — turn the clone carousel into a static grid */
.sweeps .carousel__viewport { overflow: visible !important; }
.sweeps .carousel__track {
  display: flex !important;
  justify-content: center !important;
  transform: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.sweeps .carousel__slide {
  padding: 10px !important;
  box-sizing: border-box !important;
}
.sweeps .carousel__slide .imageBtnContainer {
  width: 100%;
}
.sweeps .carousel__slide .itemImg {
  width: 100%;
  max-width: 100%;
  height: auto;
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.sweeps .carousel__slide .titleTxt {
  height: auto;
  min-height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* desktop: 5 items per row */
@media only screen and (min-width: 1024px) {
  .sweeps .carousel__track { flex-wrap: wrap !important; width: 100% !important; }
  .sweeps .carousel__slide { width: 20% !important; }
  .sweeps .carousel__prev,
  .sweeps .carousel__next,
  .sweeps .carousel__pagination { display: none !important; }
}

/* tablet: 3 items per row */
@media only screen and (min-width: 768px) and (max-width: 1023px) {
  .sweeps .carousel__track { flex-wrap: wrap !important; width: 100% !important; }
  .sweeps .carousel__slide { width: 33.3333% !important; }
  .sweeps .carousel__prev,
  .sweeps .carousel__next,
  .sweeps .carousel__pagination { display: none !important; }
}

/* mobile: 1 item per view, horizontal scroll with snap and dot indicators */
@media only screen and (max-width: 767px) {
  .sweeps .carousel__viewport {
    overflow-x: auto !important;
    overflow-y: visible !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch !important;
  }
  .sweeps .carousel__track {
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    width: auto !important;
  }
  .sweeps .carousel__slide {
    width: 100% !important;
    flex: 0 0 100% !important;
    scroll-snap-align: center !important;
  }
  .sweeps .carousel__prev,
  .sweeps .carousel__next { display: none !important; }
  .sweeps .carousel__pagination {
    display: flex !important;
    --vc-pgn-active-color: #b81237;
    --vc-pgn-background-color: #ccc;
  }
  .sweeps .carousel__viewport::-webkit-scrollbar { display: none; }
}

/* order page: make Special Instructions textarea the same width as Set Address button */
.delivery-address-input-container .grid_item {
  padding-left: 0;
  padding-right: 0;
}
.delivery-address-input-container .grid_item p {
  margin: 0 12px 8px;
}
.special_instructions {
  display: block;
  width: calc(100% - 24px);
  padding: 12px;
  margin: 0 12px 12px;
  box-sizing: border-box;
  border: 1px solid #c5bcb7;
  border-radius: 4px;
  font-family: inherit;
  font-size: 15px;
  line-height: 1.4;
  resize: vertical;
  min-height: 80px;
}

/* delivery address inputs: visible borders + red invalid state */
.delivery-address-input-container .form_inputWrapper .form_input {
  border: 1px solid #c5bcb7;
  border-radius: 4px;
  box-shadow: none;
}
.delivery-address-input-container .form_inputWrapper .form_input:hover,
.delivery-address-input-container .form_inputWrapper .form_input:focus {
  border-color: #7c665a;
  box-shadow: none;
}
.delivery-address-input-container .form_inputWrapper.has-error .form_input {
  border-color: #df3320;
  color: #df3320;
}
.delivery-address-input-container .form_inputWrapper.has-error .form_label {
  color: #df3320;
}
.delivery-address-input-container .form_inputWrapper .form_errorText {
  margin-left: 12px;
}

/* Menu header: order summary (Ordering from ... For ... at ...) */
#menuHeaderLocation.menuHeaderLocation,
#menuHeaderLocation.menuHeaderLocation:hover {
  align-items: center;
  text-decoration: none;
  flex: 0 0 auto;
  overflow: visible;
  padding-left: 16px;
}
#menuHeaderLocation .menuHeaderLocationWrapper,
#menuHeaderLocation .menuHeaderTimeWrapper {
  display: block;
}
#menuHeaderLocation .menuHeaderTimeWrapper {
  width: auto;
  min-width: 140px;
  max-width: 260px;
  white-space: nowrap;
}
#menuHeaderLocation .menuHeaderTimeWrapper p.time {
  margin: 0;
  display: block;
}
#menuHeaderLocation a.menuHeaderLocationLink:hover,
#menuHeaderLocation a.menuHeaderLocationLink:hover .label,
#menuHeaderLocation a.menuHeaderLocationLink:hover .name,
#menuHeaderLocation a.menuHeaderLocationLink:hover .time,
#menuHeaderLocation a.menuHeaderLocationLink:hover .nowrap {
  text-decoration: underline;
  text-decoration-color: #fff;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}
#menuHeaderLocation a.menuHeaderLocationLink:hover {
  color: #fff;
}

/* Locations page search suggestions and result list overrides */
.searchSuggestions {
  position: absolute;
  z-index: 100;
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 0 0 6px 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
}
.searchSuggestions ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.searchSuggestions li {
  padding: 10px 14px;
  cursor: pointer;
  border-bottom: 1px solid #eee;
  font-size: 15px;
  color: #333;
}
.searchSuggestions li:hover,
.searchSuggestions li:focus {
  background: #f5f5f5;
  outline: none;
}
.locationSearchForm {
  position: relative;
}
.searchError {
  display: none;
  color: #b81237;
  padding: 8px 0;
}
.searchError .link {
  color: #b81237;
  text-decoration: underline;
  background: none;
  border: none;
  cursor: pointer;
  font: inherit;
}

.locationsList_item.hidden {
  display: none !important;
}

.locationsShowMoreLink {
  text-align: center;
  padding: 16px 0;
}

#viewAllLocations {
  display: inline-block;
  margin-top: 8px;
  color: #b81237;
  text-decoration: underline;
  font-weight: 700;
  font-size: 16px;
}

/* Ensure the locations list map image doesn't overflow */
.locationsList_map img {
  display: block;
  margin: 0 auto;
  max-width: 160px;
  width: auto;
  height: auto;
  max-height: 120px;
  object-fit: contain;
}

/* all-locations list text fallback */
.allLocationsList .locationsList_map img {
  max-width: 120px;
}

/* Delivery car icon in location list cards */
.deliveryCarIcon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  align-self: center;
}

/* Location search component styles extracted and de-scoped */
.locationsList_item,.split,.grid-equalHeights>.grid_item,.grid{display:-webkit-box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:flex}
.form_input.search_input{padding-right:60px}
.pickUpLocationModal .currentLocation{padding-bottom:80px}
@media only screen and (max-width:767px){.pickUpLocationModal .currentLocation{padding-bottom:64px}}
.pickUpLocationModal .locationSearch{padding-bottom:40px}
.locationsModal .locationSearch{padding-bottom:200px}
.confirmMessage{position:absolute;inset:0;background-color:#f9f8f6f0;text-align:center;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;z-index:5000;justify-content:center;display:flex;flex-direction:column;align-items:center}
.confirmMessage .actionRow{display:flex}
.confirmMessage h3{margin-bottom:24px}
.confirmMessage.is-visible{opacity:1;visibility:visible}
.confirmMessage .btn{margin-right:4px;margin-left:4px}
.loading-dots span{opacity:0;animation:pulseInOut 2s ease-in-out infinite}
.loading-dots span:nth-child(2){animation-delay:.2s}
.loading-dots span:nth-child(3){animation-delay:.4s}
.locationSearch h3.searching{text-align:center;margin:1em}
@media only screen and (min-width:768px){.locationsPage .confirmMessage{border-left:1px solid #e2dfd8;border-right:1px solid #e2dfd8}}
.currentLocation{max-width:600px;margin:auto}
.currentLocation .locationsList{max-width:600px}
@media only screen and (max-width:767px){.currentLocation .locationsList_item{border:0;padding-top:0;margin-top:0}}
.currentLocation .locationsList_map img{width:auto;max-width:200px}
.currentLocation .locationsList_name{font-size:22px}
@media only screen and (max-width:767px){.currentLocation .locationsList_name{margin-bottom:0;font-size:18px;line-height:24px}}
.currentLocation .locationsList_hours{font-size:16px}
@media only screen and (max-width:767px){.currentLocation .locationsList_hours{margin-bottom:12px;font-size:14px}}
.currentLocation .locationsList_street{font-size:16px}
@media only screen and (max-width:767px){.currentLocation .locationsList_street{margin-bottom:8px;font-size:14px}}
.currentLocation .locationsList_link{font-size:16px}
@media only screen and (max-width:767px){.currentLocation .locationsList_link{margin-bottom:12px;font-size:14px}}
@media only screen and (min-width:768px){.currentLocation .locationsList_btn{padding:16px 24px;font-size:14px}}
@media only screen and (max-width:767px){.locationsList .locationsList_item{border-top:4px solid #f3f1ed}}
@media only screen and (max-width:767px){.locationsList div:first-child .locationsList_item{border-top:none}}
.locationsList_item{position:relative;width:100%}
@media only screen and (min-width:768px){.locationsList_item{margin-top:40px;background-color:#fff;border:1px solid #e2dfd8}}
@media only screen and (max-width:767px){.locationsList_item{padding-top:20px;padding-left:16px;padding-right:16px}}
.locationsList_content{flex-grow:1;padding:24px 32px;border-right:0}
@media only screen and (max-width:767px){.locationsList_content{padding:20px 0 0}}
.locationsList_name{font-family:brandon_grotesqueregular;font-weight:800;margin-bottom:4px}
@media only screen and (max-width:767px){.locationsList_name{margin-bottom:0}}
.locationsList_hours{margin-bottom:16px;font-size:15px;display:block}
@media only screen and (max-width:767px){.locationsList_hours{margin-bottom:12px;font-size:13px}}
.locationsList_street{margin-bottom:16px;font-size:14px;line-height:20px}
@media only screen and (max-width:767px){.locationsList_street{margin-bottom:8px;font-size:13px;line-height:18px}}
.locationsList_link{font-size:14px;margin-bottom:24px}
@media only screen and (max-width:767px){.locationsList_link{font-size:13px;margin-bottom:12px}}
.locationsList_map{position:relative;text-align:right;flex:0 0 50%}
.locationsList_map img{width:260px}
@media only screen and (max-width:767px){.locationsList_map img{max-width:100%;margin:20px 0}}
.locationsList_dist{position:absolute;right:0;bottom:0;padding-left:8px;padding-right:8px;font-size:15px;background-color:#f9f8f6b3}
@media only screen and (max-width:767px){.locationsList_dist{font-size:13px}}
.locationsList_notAvailable{color:#7c665a;font-size:14px}
.locationsList_message{color:#b81237}
.locationsList_customMessage{font-size:14px;font-weight:700;font-style:italic;margin-top:16px}
.locationsList_customMessage+.locationsList_btn{margin-top:16px}
.locationsList_features{font-weight:400;font-size:14px;margin-bottom:16px;display:flex}
@media only screen and (max-width:767px){.locationsList_features{margin-bottom:8px;font-size:13px;line-height:18px}}
.locationsList_features .locationsList_features_delivery{padding-left:6px}
.locationsShowMoreLink{text-align:center;margin-top:40px}
@media only screen and (max-width:767px){.locationsShowMoreLink{margin-top:20px;padding-top:20px;border-top:4px solid #f3f1ed}}
.locationSearchHeading{text-align:center;margin-bottom:32px}
#locationsList .locationSearchHeading{margin-top:40px}
.locationSearchHeading h1{font-size:32px!important;line-height:35px}
.locationSearchHeading h2,.pageTitle{font-size:30px;line-height:35px;font-family:brandon_grotesqueblack;font-weight:400;text-transform:uppercase;color:#b81237}
.locationSearchHeading span{margin-bottom:8px}
.locationSearchHeading p{margin-top:8px;font-family:brandon_grotesqueregular}
@media only screen and (min-width:768px){.locationSearchForm{margin-left:auto;margin-right:auto;max-width:400px}}
@media only screen and (max-width:767px){.locationSearchForm{padding-left:16px;padding-right:16px}}
.locationSearchForm .pac-container{left:0!important;top:55px!important}
@media only screen and (max-width:767px){.locationSearchForm .pac-container{left:16px!important}}
.locationSearchForm .search-nearby{margin:1em auto 0;text-align:center;min-width:250px}
.locationSearchForm .searchError{color:#df3320;margin:1em}
.locationsPage .locationSearchForm .searchError{display:block}
.locationsList_changeMessage{margin-bottom:32px}
.locationsList_cancelBtn{margin:0 16px}

/* Center logo image inside the right half of location cards */
.locationsList_map{
  display:flex!important;
  align-items:center;
  justify-content:center;
  text-align:center
}
.locationsList_map img{
  width:auto!important;
  max-width:160px;
  max-height:120px;
  margin:0
}
@media only screen and (max-width:767px){
  .locationsList_map img{
    max-width:120px;
    margin:0 auto;
    height:auto
  }
}

/* ================= ORDER PAGE ================= */

/* centered logo on the order page's basic (logo-only) banner */
.orderPage .primaryBanner .logo{
  position:absolute;
  left:50%!important;
  right:auto;
  transform:translateX(-50%)
}
@media only screen and (max-width:767px){
  .orderPage .primaryBanner .logo{top:18px;max-width:100px}
  .orderPage .primaryBanner .logo img{max-width:100px!important;height:auto}
  .orderPage .navControls_search{display:none!important}
  .orderPage #userFirstName{font-size:13px}
}

/* pick up location card — selected restaurant view */
.orderLocView{
  display:flex;
  gap:16px;
  align-items:stretch
}
.orderLocDetails{
  flex:1 1 auto;
  min-width:0
}
.orderLocMap{
  flex:0 0 40%;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative
}
.orderLocMap img{
  width:100%;
  max-width:220px;
  max-height:160px;
  height:auto;
  display:block;
  border-radius:4px;
  object-fit:contain
}
@media only screen and (max-width:767px){
  .orderLocView{flex-direction:column}
  .orderLocMap img{margin:0 auto;max-width:180px}
}

/* ================= PRICE DISPLAY ================= */

/* price text: black, normal weight, inline */
.itemPrice,
.menuItemPrice,
.cateringPrice {
  display: inline;
  color: #000;
  font-family: brandon_grotesqueblack, Arial, sans-serif;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.2;
  vertical-align: baseline;
  margin-right: 8px;
}

.itemPrice {
  font-size: 1.1rem;
}

/* price: black, normal weight, one-line with calories */
.itemMetadata .price,
.itemMetadata .price[data-v-6a34b3b7],
.menuItemInfo .price,
.menuItemInfo .price[data-v-6a34b3b7],
.menuItemDetails .price,
.menuItemDetails .price[data-v-6a34b3b7] {
  color: #000 !important;
  font-weight: 400 !important;
}

/* hide empty metadata block on no-price items */
.itemMetadata:empty {
  display: none !important;
}

/* calories: gray, no separator by default */
.itemMetadata .calories,
.menuItemDetails .calories {
  display: inline;
  color: #888 !important;
  font-weight: 400;
  border-left: none !important;
  vertical-align: baseline;
}

/* separator only when price is present */
.has-price .calories {
  border-left: 1px solid #000 !important;
  padding-left: 8px;
  margin-left: 0;
}

@media only screen and (max-width: 767px) {
  .itemPrice,
  .menuItemPrice,
  .cateringPrice {
    font-size: 1rem;
  }
}

/* pick up location card — "find a different location" search mode */
.orderLocSearch .locationSearchHeading{
  margin-bottom:20px;
  text-align:center
}
.orderLocSearch .locationSearchHeading .orderLocSearch_title{
  font-size:22px;
  margin-bottom:6px
}
.orderLocSearch .locationSearchForm{
  position:relative;
  margin-left:auto;
  margin-right:auto;
  max-width:400px
}
.orderLocSearch .searchError{display:none}
.orderLocSearch .locationsList{max-width:600px;margin:0 auto}
.orderLocSearch .locationsList .locationsList_item{
  border-top:none;
  margin-top:16px;
  background-color:#fff;
  border:1px solid #e2dfd8
}
.orderLocSearch .locationsList_item:first-child{margin-top:24px}
@media only screen and (max-width:767px){
  .orderLocSearch .locationSearchForm{padding-left:0;padding-right:0}
}

/* time card ("Choose when you would like your food") */
.orderTime_toggle{margin-bottom:0}
.orderTime_asap{padding:8px 0}
.orderTime_estimateBox{
  border:2px dashed #7c665a;
  border-radius:4px;
  padding:16px;
  text-align:center;
  margin:16px auto 8px;
  max-width:360px;
  background:#f9f8f6
}
.orderTime_estimateBox b{
  display:block;
  margin-top:6px;
  font-size:18px
}
.orderTime_later{padding-top:8px}
.orderCal{
  max-width:320px;
  margin:12px auto
}
.orderCal_header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:8px
}
.orderCal_month{
  font-weight:700;
  font-size:16px
}
.orderCal_nav{
  border:0;
  background:none;
  font-size:22px;
  line-height:1;
  cursor:pointer;
  padding:4px 12px;
  color:#b81237
}
.orderCal_nav:hover{background:#edeae7;border-radius:4px}
.orderCal_grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:2px;
  text-align:center
}
.orderCal_dow{
  font-size:12px;
  font-weight:700;
  color:#7c665a;
  padding:4px 0
}
.orderCal_day{
  padding:8px 0;
  border:1px solid transparent;
  background:none;
  cursor:pointer;
  border-radius:4px;
  font-size:14px;
  font-family:inherit;
  color:#351a0d
}
.orderCal_day:hover{background:#edeae7}
.orderCal_day.is-selected{background:#b81237;color:#fff}
.orderCal_day.is-disabled,
.orderCal_day:disabled{
  color:#d6ccc2;
  cursor:default;
  background:none
}
.orderCal_empty{padding:8px 0}
.orderTime_selectWrap{
  margin:12px auto;
  max-width:320px
}
.orderTime_select{
  width:100%;
  padding:10px 12px;
  border:1px solid #7c665a;
  border-radius:4px;
  font-size:15px;
  background:#fff;
  color:#351a0d
}
.orderTime_confirmWrap{
  text-align:center;
  margin-top:16px
}
.orderTime_confirm{min-width:200px}

/* ================= PRODUCT OPTIONS ================= */
.menuItemOrder { display: flex !important; flex-direction: column; gap: 12px; width: 100%; }
.modifierGroup { margin-bottom: 20px; }
.modifierGroupTitle { font-size: 1.1rem; font-weight: 700; color: #351a0d; margin-bottom: 8px; }
.btn-modifier { display: block; width: 100%; text-align: left; padding: 12px 16px; margin-bottom: 8px; border: 1px solid #7c665a; border-radius: 4px; background: #fff; color: #351a0d; font-size: 1rem; cursor: pointer; white-space: pre-line; }
.btn-modifier:hover { background: #f7f4f2; }
.btn-modifier.selected, .btn-modifier.is-selected { background: #997861 !important; color: #fff !important; border-color: #997861 !important; }
.btn-modifier.is-selected .btn_price { color: #fff; }
.childModifiers { padding-left: 24px; border-left: 3px solid #b81237; margin: 8px 0 16px 4px; }
.specialRequest textarea { width: 100%; padding: 10px; border: 1px solid #7c665a; border-radius: 4px; font-size: 1rem; }

/* ================= MENU HEADER / LOCATION RIBBON ================= */
.menuHeader {
  background-color: #b81237 !important;
  color: #fff !important;
  display: flex !important;
  align-items: center !important;
  height: 55px !important;
  position: sticky !important;
  top: 80px !important;
  z-index: 1000 !important;
}

.menuHeaderLocation {
  display: grid !important;
  grid-template-columns: minmax(120px, 1fr) minmax(180px, max-content) !important;
  align-items: start !important;
  gap: 15px !important;
  flex: 0 0 auto !important;
  max-width: 38% !important;
  color: #fff !important;
  padding: 3px 15px !important;
  text-decoration: none !important;
  box-sizing: border-box !important;
}

.menuHeaderLocation * {
  text-decoration: none !important;
}

.menuHeaderLocationWrapper,
.menuHeaderTimeWrapper {
  color: #fff !important;
  line-height: 1.2 !important;
}

.menuHeaderTimeWrapper {
  text-align: right !important;
  white-space: nowrap !important;
}

.menuHeaderLocationWrapper .icon-mapMarker {
  display: none !important;
}

.menuHeaderLocationWrapper .label,
.menuHeaderLocationWrapper .name,
.menuHeaderTimeWrapper .nowrap,
.menuHeaderTimeWrapper .time {
  color: #fff !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  line-height: 1.2 !important;
}

.menuHeaderLocationWrapper .label,
.menuHeaderLocationWrapper .name {
  display: block !important;
}

.menuHeaderTimeWrapper .nowrap {
  display: inline !important;
}

.menuHeaderTimeWrapper p.time {
  display: block !important;
  margin: 0 !important;
}

.menuHeaderBack {
  display: none !important;
}

.menuHeaderNav {
  flex: 1 1 auto !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  min-width: 0 !important;
  color: #fff !important;
}

.menuHeaderNav li {
  display: inline-block;
}

.menuHeaderNav li.hidden {
  display: none !important;
}

.menuHeaderNav li a,
.moreNavItems_header {
  color: #fff !important;
  display: inline-block !important;
  padding: 0 10px !important;
  line-height: 55px !important;
}

.moreNavItems {
  position: relative !important;
  z-index: 1000 !important;
  overflow: visible !important;
}

.menuHeader .moreNavItems .moreNavItems_content {
  display: none;
  position: fixed;
  top: 0;
  right: 0;
  width: 260px;
  max-height: calc(100vh - 150px);
  overflow-y: auto;
  padding: 12px 16px;
  white-space: normal;
  background-color: #b81237;
  box-shadow: 0 8px 16px rgba(0,0,0,.2);
  z-index: 10000 !important;
}

.menuHeader .moreNavItems:hover .moreNavItems_content,
.menuHeader .moreNavItems_header[aria-expanded="true"] + .moreNavItems_content {
  display: block !important;
}

.menuHeader .moreNavItems .moreNavItems_content a {
  display: block !important;
  line-height: 40px !important;
  color: #fff !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

@media only screen and (max-width: 767px) {
  .menuHeaderLocation {
    grid-template-columns: minmax(80px, 1fr) minmax(120px, max-content) !important;
    gap: 8px !important;
    padding: 3px 10px !important;
    max-width: 60% !important;
  }
  .menuHeaderNav li a,
  .moreNavItems_header {
    padding: 0 6px !important;
  }
}
.quantityControls { display: flex; align-items: center; gap: 16px; margin: 12px 0; }
.qtyBtn { width: 40px; height: 40px; border: 1px solid #7c665a; background: #fff; font-size: 1.2rem; cursor: pointer; }
.qtyText { font-size: 1.1rem; font-weight: 700; }
.addToBag { padding: 14px; font-size: 1.1rem; font-weight: 700; background: #b81237; color: #fff; border: none; border-radius: 4px; cursor: pointer; }

/* cart icon in header */
#cartList,
.navControls_cart {
  display: flex !important;
  align-items: center;
}
.navControls_cart.is-hidden {
  display: none !important;
}
.navControls_cart .cart-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background-color: #b81237 !important;
  color: #fff !important;
  border: none;
  border-radius: 6px;
  padding: 8px 14px !important;
  font-family: 'brandon_grotesqueblack', sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .5px;
  text-transform: none !important;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(0,0,0,.25);
}
.navControls_cart .cart-btn:hover {
  background-color: #9a0f2e !important;
}
.cart-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

/* cart panel */
.cart-panel {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10001;
  visibility: hidden;
  opacity: 0;
  transition: visibility 0s .3s, opacity .3s;
}
.cart-panel.is-open {
  visibility: visible;
  opacity: 1;
  transition-delay: 0s;
}
.cart-panel-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,.5);
}
.cart-panel-content {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  max-width: 520px;
  height: 100%;
  background: #fff;
  box-shadow: -4px 0 20px rgba(0,0,0,.2);
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform .3s ease-out;
  overflow-y: auto;
}
.cart-panel.is-open .cart-panel-content {
  transform: translateX(0);
}
.cart-panel-close {
  position: absolute;
  top: 16px;
  left: 20px;
  background: transparent;
  border: none;
  color: #b81237;
  font-size: 14px;
  cursor: pointer;
  z-index: 2;
}
.cart-panel-title {
  font-family: 'brandon_grotesqueblack', sans-serif;
  color: #b81237;
  text-align: center;
  margin: 0;
  padding: 48px 20px 20px;
  font-size: 24px;
  text-transform: uppercase;
  letter-spacing: .5px;
  position: sticky;
  top: 0;
  background: #fff;
  z-index: 10;
}
.cart-panel-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 80px 40px;
  text-align: center;
}
.cart-empty-icon {
  font-family: 'brandon_grotesqueblack', sans-serif;
  color: #b81237;
  font-size: 22px;
  margin-bottom: 10px;
}
.cart-panel-empty p { color: #555; margin: 0 0 20px; }
.cart-panel-items {
  padding: 0 24px;
  flex-shrink: 0;
}
.cart-item {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 16px 0 24px;
}
.cart-item-main { flex: 1; padding-right: 16px; }
.cart-item-name {
  font-family: 'brandon_grotesqueblack', sans-serif;
  font-weight: 700;
  color: #333;
  margin: 0 0 6px;
  font-size: 16px;
  text-decoration: underline;
}
.cart-item-qty {
  margin: 0 0 4px;
  color: #666;
  font-size: 13px;
}
.cart-item-summary {
  margin: 0 0 8px;
  color: #7c665a;
  font-size: 14px;
  font-style: italic;
  font-family: Georgia, 'Times New Roman', serif;
  line-height: 1.4;
}
.cart-item-actions { display: flex; gap: 14px; }
.cart-item-actions button {
  background: none;
  border: none;
  color: #0056b3;
  cursor: pointer;
  padding: 0;
  font-size: 14px;
  text-decoration: underline;
}
.cart-item-price {
  font-family: 'brandon_grotesqueblack', sans-serif;
  font-weight: 700;
  color: #333;
  white-space: nowrap;
  font-size: 16px;
}
.cart-panel-footer {
  padding: 20px 24px 30px;
  border-top: 1px solid #e5e5e5;
  background: #fafafa;
  margin-top: auto;
  flex-shrink: 0;
}
.cart-subtotal-row {
  display: flex;
  justify-content: space-between;
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 16px;
  color: #333;
}
.cart-actions {
  display: flex;
  gap: 12px;
}
.cart-actions .btn {
  flex: 1;
  text-align: center;
  padding: 14px;
  border-radius: 4px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  border: none;
}
.cart-actions .btn-primary {
  background: #b81237;
  color: #fff;
}
.cart-actions .btn-secondary {
  background: #fff;
  color: #b81237;
  border: 2px solid #b81237;
}

/* may we suggest */
.cart-panel-suggest {
  padding: 20px 24px;
  border-top: 1px solid #e5e5e5;
  flex-shrink: 0;
}
.cart-suggest-title {
  font-family: 'adobe_garamond_probold_italic', serif;
  font-style: italic;
  font-size: 18px;
  color: #333;
  margin: 0 0 12px;
}
.cart-suggest-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
}
.cart-suggest-card {
  text-decoration: none;
  color: #333;
  text-align: center;
  display: block;
}
.cart-suggest-card:hover .cart-suggest-name {
  color: #b81237;
}
.cart-suggest-img {
  width: 100%;
  aspect-ratio: 1/1;
  overflow: hidden;
  border-radius: 6px;
  background: #f4f4f4;
  margin-bottom: 6px;
}
.cart-suggest-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.cart-suggest-name {
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 2px;
  min-height: 2.4em;
}
.cart-suggest-price {
  font-size: 11px;
  color: #666;
}

/* remove confirmation */
.cart-confirm-overlay {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  max-width: 520px;
  height: 100%;
  background: rgba(255,255,255,.88);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 200;
}
.cart-confirm-dialog {
  background: #fff;
  border-radius: 8px;
  padding: 36px 32px;
  box-shadow: 0 8px 30px rgba(0,0,0,.2);
  text-align: center;
  min-width: 280px;
}
.cart-confirm-title {
  font-family: 'brandon_grotesqueblack', sans-serif;
  font-size: 20px;
  color: #333;
  margin: 0 0 24px;
}
.cart-confirm-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
}
.cart-confirm-actions button {
  padding: 12px 22px;
  border-radius: 6px;
  font-family: 'brandon_grotesqueblack', sans-serif;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  border: none;
  text-transform: uppercase;
}
.cart-confirm-keep {
  background: #fff;
  color: #333;
  border: 1px solid #ccc !important;
}
.cart-confirm-remove {
  background: #b81237;
  color: #fff;
}
.cart-confirm-remove:hover {
  background: #9a0f2e;
}

/* toast */
.bobevans-toast {
  position: fixed;
  top: 20px;
  right: 20px;
  background: #4caf50;
  color: #fff;
  padding: 14px 20px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  gap: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,.2);
  transform: translateY(-20px);
  opacity: 0;
  transition: transform .3s, opacity .3s;
  z-index: 10002;
  min-width: 220px;
  font-family: 'brandon_grotesqueregular', sans-serif;
}
.bobevans-toast.is-visible {
  transform: translateY(0);
  opacity: 1;
}
.bobevans-toast-icon {
  width: 22px;
  height: 22px;
  border: 2px solid #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 13px;
  flex-shrink: 0;
}
.bobevans-toast-text { flex: 1; font-size: 14px; }
.bobevans-toast-close {
  background: none;
  border: none;
  color: #fff;
  font-size: 20px;
  cursor: pointer;
  line-height: 1;
}
