/* Local replacements for Squarespace's layout and image initialization. */
.Index-page-image, .Intro-image, .Index-gallery, .sqs-gallery-design-grid-slide { opacity: 1 !important; }
.Index-page-image img, .Intro-image img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.Index-page--has-image { min-height: 70vh; }
.sqs-image-shape-container-element > img { position: absolute; inset: 0; }
.local-contact-form label, .local-contact-form legend { display: block; margin-bottom: 8px; }
.local-contact-form fieldset { border: 0; padding: 0; margin: 0 0 24px; }
.local-contact-form .name-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.local-contact-form input, .local-contact-form textarea { box-sizing: border-box; display: block; width: 100%; padding: 12px; margin: 5px 0 24px; border: 1px solid #ccc; background: #fafafa; border-radius: 0; color: #222; font: inherit; }
.local-contact-form .name-fields input { margin-bottom: 4px; }
.local-contact-form textarea { min-height: 130px; resize: vertical; }
.local-contact-form small { font-size: 12px; }
.local-contact-form button { background: #272727; color: white; border: 0; padding: 21px 34px; font: inherit; cursor: pointer; }
.local-contact-form .form-note { font-size: 13px; line-height: 1.6; }
:focus-visible { outline: 2px solid #947440; outline-offset: 4px; }
@media (max-width: 640px) {
  .Mobile-bar--top { display: flex; align-items: center; justify-content: space-between; }
  .Mobile-bar--bottom { display: none !important; }
  .Mobile-overlay { display: none !important; }
  body.local-menu-open { overflow: hidden; }
  body.local-menu-open .Mobile-overlay { display: block !important; opacity: 1; visibility: visible; transform: none; position: fixed; inset: 0; z-index: 9999; background: white; overflow: auto; }
  .Mobile-overlay-menu { transform: none !important; padding: 65px 25px; }
  .Mobile-overlay-close { position: absolute; top: 20px; right: 20px; }
  .Mobile-overlay-nav-item { display: block; }
  .Index-page--has-image { min-height: 70svh; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }

.form-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.local-contact-form button:disabled { opacity: .5; cursor: wait; }/* Keep the overlaid navigation above local hero images. */
.Header--overlay { z-index: 10; }
/* The original runtime fades these in; the independent site renders immediately. */
.enable-load-effects .Header [data-nc-container],
.enable-load-effects .Mobile-overlay-menu,
.enable-load-effects .Mobile-overlay-menu-main { opacity: 1 !important; }
@media (max-width: 640px) {
  body.local-menu-open .Mobile-overlay { opacity: 1 !important; transition: none !important; }
  body.local-menu-open .Mobile-overlay-menu,
  body.local-menu-open .Mobile-overlay-menu-main { box-sizing: border-box; position: relative; width: 100%; height: auto; padding: 0; }
  body.local-menu-open .Mobile-overlay-menu { padding-top: 60px; }
  .Mobile-overlay-close { z-index: 5; }
}
/* Replace gallery dimensions previously calculated by Squarespace JavaScript. */
.sqs-gallery-block-grid .sqs-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; width: 100%; height: auto; }
.sqs-gallery-block-grid .slide { float: none; width: auto !important; }
.sqs-gallery-block-grid .margin-wrapper { margin: 0 !important; }
.sqs-gallery-block-grid .image-slide-anchor { display: block; position: relative; width: 100%; height: auto; padding: 0 !important; aspect-ratio: 1; overflow: hidden; }
.sqs-gallery-block-grid .image-slide-anchor img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
@media (max-width: 767px) { .sqs-gallery-block-grid .sqs-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sqs-gallery-block-slider { container-type: inline-size; }
.sqs-gallery-block-slider .sqs-gallery { display: flex; justify-content: center; align-items: center; height: 50cqw; width: 100%; overflow: hidden; }
.sqs-gallery-block-slider .sqs-gallery > img { position: static; flex: 0 0 auto; display: block; height: 100%; width: auto; max-width: none; object-fit: contain; }
/* A solid header keeps the homepage navigation readable above food photos. */
.Header--overlay { position: relative; background: #fff !important; }
.Header--overlay .Header-inner--bottom { padding-bottom: 40px; }
.Header--overlay .Header-branding, .Header--overlay .Header-nav-item { color: #222 !important; }
.sqs-gallery-block-grid .image-slide-anchor { height: auto !important; }
.Site .Header.Header--bottom.Header--overlay { position: relative !important; background: #fff !important; }
.homepage .Content-outer { padding-top: 20px; }
@media (max-width: 640px) {
  .Mobile-bar--top { min-height: 54px; box-sizing: border-box; }
  .Site { padding-top: 54px; }
}
@media (max-width: 640px) {
  body.local-menu-open .Mobile-overlay-menu,
  body.local-menu-open .Mobile-overlay-menu-main,
  body.local-menu-open .Mobile-overlay-nav { background: #fff; }
  body.local-menu-open .Mobile-overlay-nav-item { color: #222; font-family: Cormorant, Georgia, serif; font-size: 25px; }
  body.local-menu-open .Mobile-overlay-close { display: block !important; position: fixed; top: 12px; right: 16px; width: 40px; height: 40px; padding: 0; z-index: 10001; opacity: 1 !important; visibility: visible; color: #222; background: #fff; border: 0; font: 32px/40px Arial, sans-serif; transform: none !important; cursor: pointer; }
}
