/* Preserve the site's Bootstrap 4 grid spacing with Bootstrap 5. */
.row {
  --bs-gutter-x: 30px;
}
.container,
.container-fluid {
  --bs-gutter-x: 30px;
}
#navbar-main {
  --bs-navbar-padding-x: 16px;
}
/* These saved content classes were renamed in Bootstrap 5. */
.float-left {
  float: left !important;
}
.float-right {
  float: right !important;
}
.text-left {
  text-align: left !important;
}
.text-right {
  text-align: right !important;
}
@media (min-width: 1400px) {
  .container {
    max-width: 1140px;
  }
}

/* Keep the custom carousel tabs while using accessible Bootstrap 5 buttons. */
#views-bootstrap-view-relax-unwind-block-1 .carousel-indicators button {
  text-align: left;
}
.carousel-indicators {
  padding-left: 0;
}

/* Bootstrap 5 adds padding to every direct child of a row. */
.featured-top__inner,
.view-hero-carousel > .view-content.row > .carousel,
#views-bootstrap-view-relax-unwind-block-1 {
  padding-right: 0;
  padding-left: 0;
}

.paragraph--type--bp-columns > .paragraph__column > .row {
  margin-right: 0;
  margin-left: 0;
}

/* Plain Views rows had no column padding in the Live site's Bootstrap 4. */
.view > .view-content.row > .views-row:not([class*="col-"]):not(.col) {
  padding-right: 0;
  padding-left: 0;
}
.featured-bottom > .container-fluid > .row > .block {
  padding-right: 0;
  padding-left: 0;
}
@media (max-width: 1500px) {
  .appetizers-entrees-wrapper .col-lg-6 {
    width: 100%;
  }
}
@media (max-width: 1350px) {
  .view-daily-specials-wrapper .row.row-eq-height .col-lg-6 {
    width: 100%;
  }
}
@media (max-width: 991px) {
  .our-location-map-wrapper .container-fluid .row .col-md-6 {
    width: 100%;
  }
}

/* Keep field names available after visitors start typing. */
.webform-submission-form label {
  display: block;
  margin-bottom: 8px;
  color: #fff;
  font-size: 16px;
  line-height: 1.4;
}
.webform-submission-form label.visually-hidden {
  position: static !important;
  width: auto !important;
  height: auto !important;
  margin: 0 0 8px !important;
  overflow: visible !important;
  clip: auto !important;
  clip-path: none !important;
  white-space: normal !important;
}
.webform-submission-form input[type="file"] {
  width: 100%;
  height: auto !important;
  padding: 12px;
  color: #212529;
  background: #fff;
  font-size: 16px;
}

@media (max-width: 575.98px) {
  .paragraph--type--bp-webform .webform-flexbox {
    flex-direction: column;
    gap: 16px;
  }
  .webform-submission-form .webform-flex {
    flex: 1 1 auto;
    width: 100%;
  }
  .webform-submission-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
  .webform-submission-form select,
  .webform-submission-form select#edit-address-state-province,
  .webform-submission-form .form-textarea.form-control {
    height: 60px;
    min-height: 44px;
    padding: 12px;
    text-indent: 0 !important;
    font-size: 16px;
  }
  .webform-submission-form .form-textarea.form-control {
    height: 180px;
    min-height: 180px;
  }
}

@media (max-width: 575.98px) {
  .paragraph--id--4 h2,
  .paragraph--id--26 h2,
  .paragraph--id--8 .view-header h2 {
    font-size: clamp(40px, 12vw, 56px);
    line-height: 1.1;
  }
}

@media (max-width: 1199.98px) {
  body:not(.featured-top-has-carousel) .view-banner-image > .view-content.row {
    margin-right: 0;
    margin-left: 0;
  }
  body:not(.featured-top-has-carousel) .has-banners-image h1 {
    font-size: clamp(36px, 8vw, 90px);
  }
  body:not(.featured-top-has-carousel) .image-style-banner-slim {
    width: 100%;
  }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
  #navbar-main li.nav-item {
    margin-right: 28px;
  }
  #navbar-main a {
    font-size: 22px;
    letter-spacing: 1.8px !important;
  }
  header#header .navbar a img {
    max-width: 110px;
  }
}

@media (min-width: 768px) and (max-width: 1399.98px) {
  /* Give the welcome text a readable column beside the two photos. */
  .paragraph--id--4 > .paragraph__column {
    width: 100%;
    margin-left: 0;
    padding-right: 5vw;
    padding-left: 5vw;
  }
  .paragraph--id--4 > .paragraph__column > .row {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.3fr);
    gap: 80px 32px;
  }
  .paragraph--id--4 > .paragraph__column > .row > * {
    width: 100%;
    min-width: 0;
    padding: 0;
  }
  .paragraph--id--4 > .paragraph__column > .row > :nth-child(2) {
    grid-column: 2;
    grid-row: 1 / span 2;
  }
  .paragraph--id--4 > .paragraph__column > .row > :nth-child(3) {
    grid-column: 1;
    grid-row: 2;
  }
  .paragraph--id--4 .paragraph--id--2 {
    padding-right: 0;
  }
  .paragraph--id--4 h2 {
    font-size: clamp(40px, 4.6vw, 60px);
    line-height: 1.1;
  }
  .featured-top__inner .carousel-caption .hero-title {
    font-size: clamp(42px, 6vw, 70px);
    line-height: 1.1;
    margin-bottom: 18px;
  }
  .featured-top__inner .carousel-caption .hero-super-title-mini {
    font-size: 22px;
    line-height: 1.4;
    margin-bottom: 12px;
  }
  .featured-top__inner .carousel-caption .hero-content p {
    font-size: 20px !important;
    line-height: 1.4 !important;
    margin-bottom: 20px !important;
  }
}

@media (min-width: 768px) and (max-width: 991.98px) {
  .view-hero-carousel .carousel-caption {
    top: 24px;
  }
  .view-hero-carousel img.image-style-banner-fat {
    height: 400px;
    object-fit: cover;
  }
}

@media (max-width: 991.98px) {
  #CollapsingNavbar.show {
    max-height: calc(100dvh - 16px);
    overflow-y: auto;
  }
  #views-bootstrap-view-relax-unwind-block-1 {
    height: auto;
    flex-direction: column;
  }
  #views-bootstrap-view-relax-unwind-block-1 .carousel-inner {
    order: 1;
  }
  #views-bootstrap-view-relax-unwind-block-1 .carousel-item {
    padding-bottom: 0;
  }
  #views-bootstrap-view-relax-unwind-block-1 img {
    margin-bottom: 24px;
  }
  #views-bootstrap-view-relax-unwind-block-1 .carousel-caption {
    display: block !important;
    position: static;
    width: auto;
    padding: 0 5.8vw;
  }
  #views-bootstrap-view-relax-unwind-block-1 .carousel-caption p {
    font-size: 18px;
    line-height: 1.5;
  }
  #views-bootstrap-view-relax-unwind-block-1 .carousel-indicators {
    order: 2;
    position: static;
    width: auto;
    height: auto;
    margin: 24px 5.8vw 0;
    overflow: visible;
  }
  #views-bootstrap-view-relax-unwind-block-1 .carousel-indicators button {
    box-sizing: border-box;
    height: auto;
    flex: 0 0 auto;
    min-height: 52px;
    padding: 14px 16px;
    font-size: clamp(20px, 3vw, 28px);
    line-height: 1.3;
    text-indent: 0;
  }
  #views-bootstrap-view-relax-unwind-block-1 .carousel-indicators button.active::before {
    display: none;
  }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
  #views-bootstrap-view-relax-unwind-block-1 .carousel-indicators button {
    box-sizing: border-box;
    height: auto;
    flex: 0 0 auto;
    padding: 22px 28px;
    font-size: 24px;
    line-height: 1.3;
    text-indent: 0;
  }
  #views-bootstrap-view-relax-unwind-block-1 .carousel-indicators button.active::before {
    top: calc(50% - 9.5px);
  }
}

@media (max-width: 767.98px) {
  .paragraph--id--4 .paragraph--id--2 {
    padding-right: 0;
  }
  .paragraph--id--4 .paragraph--id--2,
  .paragraph--id--26 .paragraph--id--24 {
    margin-bottom: 72px;
  }
  .paragraph--id--4 .paragraph--id--2 .field--type-text-long::before,
  .paragraph--id--26 .paragraph--id--24 .field--type-text-long::before {
    left: 50%;
    width: clamp(160px, 50vw, 200px);
    height: auto;
    aspect-ratio: 231.2 / 210.45;
    transform: translateX(-50%);
  }
  .paragraph--id--38 {
    padding-bottom: 0;
  }
  .paragraph--id--41 {
    padding-top: 0;
  }
  /* Leave enough room for the heading and call to action on narrow phones. */
  .view-hero-carousel .carousel-item {
    min-height: 340px;
  }
  .view-hero-carousel img.image-style-banner-fat {
    width: 100%;
    height: 340px;
    object-fit: cover;
  }
  .view-hero-carousel .carousel-caption.d-none.d-md-block {
    display: flex !important;
    align-items: center;
    justify-content: center;
    inset: 0;
    padding: 24px 16px;
  }
  .featured-top__inner .carousel-caption .hero-title {
    font-size: clamp(26px, 7vw, 40px);
    line-height: 1.15;
    margin-bottom: 16px;
  }
  .featured-top__inner .carousel-caption .hero-super-title-mini {
    font-size: clamp(15px, 4.5vw, 20px);
    line-height: 1.4;
    margin-bottom: 12px;
  }
  .featured-top__inner .carousel-caption .hero-content p {
    font-size: 16px !important;
    line-height: 1.4 !important;
  }
  .featured-top__inner .carousel-caption .hero-content .btn {
    min-height: 44px;
    font-size: 18px !important;
  }
}

/* Keep enlarged menu pages usable with touch and keyboard controls. */
.menu-image-viewer {
  width: calc(100% - 32px);
  max-width: 1100px;
  max-height: calc(100dvh - 32px);
  padding: 16px;
  border: 0;
}
.menu-image-viewer::backdrop {
  background: rgb(0 0 0 / 80%);
}
.menu-image-viewer-controls {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 16px;
}
.menu-image-viewer button {
  min-height: 44px;
  padding: 8px 16px;
  border: 2px solid #23294f;
  color: #23294f;
  background: #fff;
  font-size: 16px;
}
.menu-image-viewer-scroll {
  max-height: calc(100dvh - 150px);
  overflow: auto;
}
.menu-image-viewer img {
  display: block;
  width: 100%;
  height: auto;
}
.menu-image-viewer.is-zoomed img {
  width: 1100px;
  max-width: none;
}
.paragraph--id--38 img[role="button"],
.paragraph--id--41 img[role="button"] {
  cursor: zoom-in;
}
.menu-image-viewer button:focus-visible,
.menu-image-viewer-scroll:focus-visible,
.paragraph--id--38 img[role="button"]:focus-visible,
.paragraph--id--41 img[role="button"]:focus-visible,
#views-bootstrap-view-relax-unwind-block-1 .carousel-indicators button:focus-visible {
  outline: 3px solid #cf945b;
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .carousel-item,
  .btn {
    transition: none !important;
  }
  #CollapsingNavbar.show {
    animation: none !important;
  }
}
