/* ============================================================
   Eat Pages – Huckleberry CRO improvements
   New content builder block styles for /eat, /eat/dinner, /eat/lunch
   ============================================================ */

/* Smooth scroll for anchor jump links */
html {
  scroll-behavior: smooth;
}

/* Give anchor targets a little breathing room at the top */
#booking-widget,
#menus {
  scroll-margin-top: 24px;
}

/* ----------------------------------------------------------
   Left-align body text on eat/dinner/lunch pages.
   Only target the content blocks that should read left —
   plain text/copy blocks and the before-you-book body text.
   Everything else (centred sections) is untouched.
   ---------------------------------------------------------- */
.eat-page .cmsblock p:not(.menu-showcase__intro):not(.booking-widget__intro),
.eat-page .cmsblock li,
.eat-page .cmsblock h2:not(.page-title):not(.menu-showcase__heading):not(.booking-widget__heading),
.eat-page .cmsblock h3:not(.before-you-book__heading),
.eat-page .cmsblock h4,
.eat-page .two-col-copy-details p,
.eat-page .two-col-copy-details li,
.eat-page .before-you-book__list li,
.eat-page .before-you-book__unable-heading,
.eat-page .before-you-book__closing {
  text-align: left;
}

/* Undo the large teal first-paragraph treatment on eat pages. */
.eat-page .content p:first-of-type,
.eat-page .content-main p:first-of-type {
  color: inherit;
  font-family: inherit;
}

@media screen and (min-width: 850px) {
  .eat-page .content p:first-of-type,
  .eat-page .content-main p:first-of-type {
    color: inherit;
    font-family: inherit;
    font-size: 1.125rem;
    line-height: 1.5;
  }
}

/* ----------------------------------------------------------
   Meal CTA Banner
   Full-width hero image with CTA buttons overlaid at the bottom
   ---------------------------------------------------------- */
/* Remove the default 60px top margin when a CTA Banner is the first block */
.page-content-block--no-top {
  margin-top: 0;
}

/* Restore breathing room between the banner and the first content block below it */
.page-content-block--no-top .meal-cta-banner {
  margin-bottom: 40px;
}

.meal-cta-banner {
  position: relative;
  margin-bottom: 0;
  /* Break out of .wrapper's max-width/padding to achieve full-bleed */
  width: 100vw;
  margin-left: calc(-50vw + 50%);
}

.meal-cta-banner .slides {
  margin-bottom: 0;
}

/* Video variant — overlay sits on top of the video-banner section */
.meal-cta-banner--video {
  position: relative;
}

.meal-cta-banner--video .video-banner {
  margin-bottom: 0;
}

@media (min-width: 601px) {
  .meal-cta-banner .fluid-width-video-wrapper {
    max-height: 80vh;
    overflow: hidden;
  }

  .meal-cta-banner img {
    max-height: 80vh;
    width: 100%;
    object-fit: cover;
    display: block;
  }
}

.meal-cta-banner__overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0) 100%);
  padding: 32px 20px 60px;
  z-index: 10;
  text-align: center;
}

@media (min-width: 601px) {
  .meal-cta-banner__overlay {
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
}

/* Optional heading + subheading overlaid on the banner */
.meal-cta-banner__heading {
  font-family: "MillerDisplay", "Georgia", "Cambria", "Times New Roman", "Times", serif;
  color: #fff;
  font-size: 2em;
  font-weight: normal;
  margin: 0 0 8px;
  text-shadow: 0 1px 4px rgba(0,0,0,0.5);
  line-height: 1.2;
}

.meal-cta-banner__subheading {
  color: rgba(255,255,255,0.9);
  font-size: 1.25em;
  margin: 0 0 18px;
  text-shadow: 0 1px 3px rgba(0,0,0,0.4);
  font-style: normal;
  line-height: 1.5;
}

@media (max-width: 600px) {
  .meal-cta-banner__heading {
    font-size: 1.4em;
  }
  .meal-cta-banner__subheading {
    font-size: 0.9em;
    margin-bottom: 12px;
  }
}

.meal-cta-bar {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 12px 14px;
}

/* Buttons inside the banner use a lighter/white treatment */
.meal-cta-banner .meal-cta-bar .button {
  background-color: transparent;
  border: 2px solid #fff;
  color: #fff;
  margin: 0;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.meal-cta-banner .meal-cta-bar .button:hover {
  background-color: #fff;
  color: #101E33;
}

.meal-cta-bar__tertiary {
  display: inline-block;
  color: #fff;
  font-size: 0.875em;
  text-decoration: none;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border: 1px solid rgba(255,255,255,0.5);
  padding: 0.75em 1em;
  line-height: 1;
  vertical-align: middle;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

.meal-cta-bar__tertiary:hover {
  background-color: rgba(255,255,255,0.15);
  border-color: #fff;
  color: #fff;
}

/* Fallback strip when no image is set */
.meal-cta-bar-section .content-main {
  text-align: center;
}

.meal-cta-bar-section .meal-cta-bar {
  padding: 16px 0 8px;
}

.meal-cta-bar-section .button {
  margin: 0;
}

.meal-cta-bar-section .meal-cta-bar__tertiary {
  color: #538a8e;
  border-color: #7caeb2;
}

.meal-cta-bar-section .meal-cta-bar__tertiary:hover {
  color: #101E33;
  border-color: #101E33;
}

@media (max-width: 600px) {
  /* Force the banner tall enough to accommodate heading + buttons on mobile */
  .meal-cta-banner img {
    height: 480px;
    width: 100%;
    object-fit: cover;
    display: block;
  }

  /* Override the 56.25% aspect-ratio trick — cover-fit the video on mobile */
  .meal-cta-banner .video-container,
  .meal-cta-banner .fluid-width-video-wrapper {
    padding-top: 0 !important;
    height: 480px;
    position: relative;
    overflow: hidden;
  }

  .meal-cta-banner .fluid-width-video-wrapper iframe {
    position: absolute;
    top: 50%;
    left: 50%;
    /* Same cover technique as .video-wrapper iframe in screen.css */
    width: 100vw;
    height: 56.25vw;
    min-height: 480px;
    min-width: 177.77vh;
    transform: translate(-50%, -50%);
  }

  .meal-cta-banner__overlay {
    padding: 60px 16px 20px;
    background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.2) 80%, rgba(0,0,0,0) 100%);
  }

  .meal-cta-banner__heading {
    font-size: 1.3em;
    margin-bottom: 6px;
  }

  .meal-cta-banner__subheading {
    font-size: 1.05em;
    margin-bottom: 14px;
  }

  .meal-cta-bar {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }

  .meal-cta-banner .meal-cta-bar .button,
  .meal-cta-bar-section .button {
    text-align: center;
    width: 100%;
  }

  /* Never let menu showcase buttons go full width */
  .menu-showcase__btn {
    width: auto !important;
    display: inline-block !important;
  }

  .meal-cta-bar__tertiary {
    text-align: center;
    display: block;
    width: 100%;
    box-sizing: border-box;
  }
}

/* ----------------------------------------------------------
   Menu Showcase
   Dark-toned band with heading, intro and menu PDF buttons
   ---------------------------------------------------------- */
.menu-showcase-section {
  background: #101E33;
  margin-left: calc(-50vw + 50%);
  width: 100vw;
  padding: 0;
  margin-bottom: 0;
}

.menu-showcase-section .content-main {
  text-align: center !important;
}

.menu-showcase {
  padding: 40px 24px;
  max-width: 1060px;
  margin: 0 auto;
}

.menu-showcase__heading {
  font-family: "MillerDisplay", "Georgia", "Cambria", "Times New Roman", "Times", serif;
  font-size: 1.5em;
  font-weight: normal;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #fff;
  margin: 0 0 10px;
  text-align: center;
}

.menu-showcase__heading::after {
  content: '';
  display: block;
  width: 40px;
  height: 1px;
  background: rgba(255,255,255,0.5);
  margin: 10px auto 0;
}

.menu-showcase__intro {
  color: #fff !important;
  font-size: 1.125rem;
  line-height: 1.5;
  margin: 0 0 24px;
  font-style: normal;
  text-align: center;
}

.menu-showcase__buttons {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  justify-content: center;
  gap: 12px;
}

.menu-showcase__btn {
  background: #fff;
  border: 1px solid #fff;
  color: #101E33;
  letter-spacing: 0.06em;
  display: inline-block;
  width: auto;
  flex: 0 0 auto;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.menu-showcase__btn:hover {
  background: transparent;
  border-color: #fff;
  color: #fff;
}

/* Also give Before You Book a light band */
.before-you-book-section {
  background: #fff;
  margin-left: calc(-50vw + 50%);
  width: 100vw;
  padding: 40px 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  border-top: none !important;
}

.before-you-book-section .content-main {
  padding: 0 24px;
  text-align: center !important;
}

@media (max-width: 600px) {
  .menu-showcase {
    padding: 32px 16px;
  }

  .menu-showcase__btn {
    text-align: center;
  }
}

/* ----------------------------------------------------------
   Two-column: copy + details panel
   Left: body copy, Right: teal-accented key details panel
   ---------------------------------------------------------- */
.two-col-copy-details {
  display: flex;
  gap: 40px;
  align-items: flex-start;
  text-align: left;
  max-width: 1000px;
  margin: 0 auto;
}

.two-col-copy-details__copy {
  flex: 3;
  min-width: 0;
}

.two-col-copy-details__copy p,
.two-col-copy-details__copy li {
  font-size: 0.9375em;
  line-height: 1.7;
  color: #58585b;
}

.content .content-main .two-col-copy-details__copy ul {
  list-style: none;
  padding-left: 0;
}

.content .content-main .two-col-copy-details__copy ul li {
  padding-left: 16px;
  position: relative;
}

.content .content-main .two-col-copy-details__copy ul li::before {
  content: '›';
  position: absolute;
  left: 0;
  color: #7caeb2;
}

.content .content-main ul.two-col-copy-details__list {
  list-style: none;
  padding-left: 0;
}

.two-col-copy-details__panel {
  flex: 2;
  min-width: 0;
  background: #f0f6f7;
  border-left: 3px solid #7caeb2;
  padding: 20px 24px;
}

.two-col-copy-details__panel-heading {
  font-size: 0.75em;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #7caeb2;
  margin: 0 0 12px;
}

.two-col-copy-details__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.two-col-copy-details__item {
  font-size: 0.9em;
  color: #58585b;
  padding: 5px 0 5px 18px;
  position: relative;
  line-height: 1.5;
  border-bottom: 1px solid rgba(124,174,178,0.2);
}

.two-col-copy-details__item:last-child {
  border-bottom: none;
}

.two-col-copy-details__jump {
  margin: 16px 0 0;
  text-align: center;
}

.two-col-copy-details__jump .jump-anchor-link {
  display: inline-block;
  border: 1px solid #7caeb2;
  color: #538a8e;
  font-size: 0.8em;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.6em 1.2em;
  text-decoration: none;
  border-bottom: 1px solid #7caeb2;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.two-col-copy-details__jump .jump-anchor-link::after {
  content: ' ↓';
}

.two-col-copy-details__jump .jump-anchor-link:hover {
  background: #7caeb2;
  color: #fff;
}

.two-col-copy-details__item::before {
  content: '›';
  position: absolute;
  left: 0;
  color: #7caeb2;
  font-weight: bold;
}

@media (max-width: 700px) {
  .two-col-copy-details {
    flex-direction: column;
    gap: 24px;
  }

  .two-col-copy-details__panel {
    width: 100%;
    box-sizing: border-box;
  }
}

/* ----------------------------------------------------------
   Booking Widget
   ---------------------------------------------------------- */
.booking-widget-section {
  background: #f5f8f8;
  margin-left: calc(-50vw + 50%);
  width: 100vw;
  padding: 0;
}

.booking-widget-section .content-main {
  max-width: 680px;
  margin: 0 auto;
  padding: 40px 24px;
}

.booking-widget__heading {
  font-family: "MillerDisplay", "Georgia", "Cambria", "Times New Roman", "Times", serif;
  font-size: 1.5em;
  font-weight: normal;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #101E33;
  margin-bottom: 6px;
  text-align: center;
}

.booking-widget__heading + hr {
  width: 40px;
  margin: 8px auto 16px;
}

.booking-widget__intro {
  color: #58585b;
  font-size: 1.125rem;
  line-height: 1.5;
  font-style: normal;
  text-align: center;
  margin-bottom: 24px;
}

/* ----------------------------------------------------------
   Key Details Panel
   Compact info block with bullet rows and optional jump link
   ---------------------------------------------------------- */
.key-details-panel-section .content-main {
  text-align: center;
}

.key-details-panel {
  display: inline-block;
  text-align: left;
  border-left: 3px solid #7caeb2;
  padding: 18px 24px;
  margin: 12px auto;
  background: #f9f9f9;
  max-width: 600px;
  width: 100%;
}

.key-details-panel__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.key-details-panel__item {
  font-size: 0.9375em;
  color: #58585b;
  padding: 4px 0;
  line-height: 1.5;
}

.key-details-panel__item::before {
  content: '›  ';
  color: #7caeb2;
  font-weight: bold;
}

.key-details-panel__jump {
  margin: 14px 0 0;
  text-align: center;
}

/* ----------------------------------------------------------
   Jump Anchor CTA
   Standalone scroll-to-widget link with microcopy
   ---------------------------------------------------------- */
.jump-anchor-section .content-main {
  text-align: center;
}

.jump-anchor-cta {
  margin: 6px 0 16px;
  font-style: italic;
  font-size: 0.9em;
}

.jump-anchor-link {
  color: #538a8e;
  text-decoration: none;
  border-bottom: 1px dotted #7caeb2;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.jump-anchor-link::after {
  content: ' ↓';
  font-style: normal;
}

.jump-anchor-link:hover {
  color: #101E33;
  border-color: #101E33;
}

/* ----------------------------------------------------------
   Before You Book
   Dietary / booking notes section with bullet list
   ---------------------------------------------------------- */
.before-you-book-section {
  border-top: 1px solid #d4d6d7;
  margin-top: 12px;
}

.before-you-book {
  max-width: 560px;
  margin: 0 auto;
  text-align: center;
}

.before-you-book__heading {
  font-family: "MillerDisplay", "Georgia", "Cambria", "Times New Roman", "Times", serif;
  font-size: 1.5em;
  font-weight: normal;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #101E33;
  margin-bottom: 10px;
  text-align: center;
}

.before-you-book__heading::after {
  content: '';
  display: block;
  width: 40px;
  height: 1px;
  background: #7caeb2;
  margin: 10px auto 16px;
}

.before-you-book__intro,
.before-you-book__intro p {
  margin-bottom: 14px;
  font-size: 1.125rem;
  line-height: 1.5;
  color: #58585b;
  text-align: center;
}

.before-you-book__unable-heading {
  margin-bottom: 8px;
  font-size: 0.9em;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #58585b;
  text-align: left;
}

.before-you-book__list {
  list-style: none;
  padding: 0;
  margin: 0 0 14px;
}

.before-you-book__list li {
  list-style: none;
  padding: 3px 0 3px 20px;
  position: relative;
  font-size: 0.9375em;
  color: #58585b;
  line-height: 1.5;
  text-align: left;
}

.before-you-book__list li::before {
  content: '›';
  position: absolute;
  left: 0;
  color: #7caeb2;
  font-weight: bold;
}

.before-you-book__closing {
  font-size: 0.9em;
  color: #58585b;
  font-style: italic;
  line-height: 1.6;
  margin-top: 10px;
}

/* ----------------------------------------------------------
   Dining Cards keyline
   Styles the description text as an italic keyline on pagesGrid
   cards used on the /eat dining overview
   ---------------------------------------------------------- */
.dining-cards-section .gitem__text,
.dining-card__keyline {
  font-size: 1rem;
  color: #58585b;
  letter-spacing: normal;
  font-style: normal;
  margin: 6px 0 14px;
}
