/* Stage 4 closeout layer. Values are taken from the delivered PC/mobile Figma specs. */
:root {
  --je-container: 1200px;
  --je-brand: #f86240;
  --je-brand-hover: #ff8266;
  --je-brand-pressed: #ee4520;
  --je-title: #292929;
  --je-body: #717171;
  --je-divider: #eeeeee;
  --je-border: #dddddd;
}

html,
body {
  max-width: 100%;
  overflow-x: clip;
}

.screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  border: 0;
  white-space: nowrap;
}

.jollyeast-site-chrome {
  position: sticky;
  top: var(--jollyeast-wp-adminbar-offset, 0px);
  z-index: 1000;
}
.jollyeast-site-chrome .site-header {
  position: relative;
  top: auto !important;
}
.admin-bar .jollyeast-site-chrome { top: 32px; }
.jollyeast-alert-bar {
  min-height: 32px;
  padding: 3px 16px;
  font-size: 12px;
  line-height: 24px;
}
.jollyeast-alert-bar a { min-height: 24px; }

.site-mega-menu__heading {
  font-size: 24px;
  line-height: 48px;
}
.site-mega-menu__group-title,
.site-mega-menu__link,
.site-mega-menu__city { font-size: 16px; }

.site-footer__shell { max-width: var(--je-container); }
.site-footer__title {
  margin-bottom: 8px;
  font-size: 16px;
  line-height: 32px;
}
.site-footer__links a,
.site-footer__links span {
  min-height: 28px;
  font-size: 14px;
  line-height: 28px;
}
.site-footer__contact-list li {
  min-height: 28px;
  margin: 0;
  padding-left: 0;
  background: none !important;
  font-size: 14px;
  line-height: 28px;
}
.site-footer__contact-list svg {
  display: block;
  width: 16px;
  height: 16px;
}
.site-footer__social { gap: 8px; }
.site-footer__social a {
  width: 32px !important;
  height: 32px !important;
  border: 1px solid var(--je-divider);
  border-radius: 3px;
  background: none !important;
}
.site-footer__social a svg {
  display: block;
  width: 16px;
  height: 16px;
}
.site-footer__copyright {
  height: auto;
  margin: 12px 0 0;
  font-size: 12px;
  line-height: 24px;
}
.site-footer__copyright::before,
.site-footer__copyright::after { content: none !important; }
.site-footer__payments img {
  display: block;
  width: 36px;
  height: 24px;
  object-fit: contain;
}

.jollyeast-sort-dropdown,
.jollyeast-city-popup,
.jollyeast-duration-popup,
.jollyeast-price-popup,
.jollyeast-generic-filter-popup {
  position: absolute;
  z-index: 120;
  min-width: 190px;
  margin-top: 4px;
  padding: 4px;
  border: 1px solid var(--je-border);
  border-radius: 3px !important;
  background: #fff;
  box-shadow: 0 6px 18px rgba(41, 41, 41, .08) !important;
}
.jollyeast-filter-popup__item {
  display: block;
  width: 100%;
  min-height: 40px;
  padding: 4px 12px;
  border: 0;
  border-radius: 3px;
  background: transparent;
  color: var(--je-title);
  font: 400 14px/28px var(--font-sans, "Mona Sans", sans-serif);
  text-align: left;
  cursor: pointer;
}
.jollyeast-filter-popup__item:hover,
.jollyeast-filter-popup__item.is-active { background: #fff2ef; color: var(--je-brand); }
.city-filters__chip.is-active { border-color: var(--je-brand); color: var(--je-brand); }

.jollyeast-static-page[data-source-static="tours"] .city-banner__media img {
  object-fit: contain !important;
  background: #f4f4f4;
}
.city-tour-card,
.day-tour-card,
.car-select-card,
.car-select-sidebar,
.car-select-highlights {
  border: 1px solid var(--je-divider);
  box-shadow: none;
}
.city-tour-card__image img,
.day-tour-card__image img { object-fit: cover; }

.jollyeast-static-page[data-source-static="tour-detail"] .detail-hero__container,
.jollyeast-static-page[data-source-static="tour-detail"] .detail-content__container {
  max-width: 1232px;
}
.detail-hero__title { font-size: 30px; line-height: 52px; }
.detail-tabs {
  flex-wrap: nowrap;
  overflow-x: auto;
  scrollbar-width: thin;
}
.detail-tabs__item {
  flex: 0 0 auto;
  font-size: 20px;
  line-height: 40px;
}
.detail-content__container { grid-template-columns: minmax(0, 1fr) 543px; }
.detail-booking__sticky { top: 104px; }

.car-select-main { background: #fff; }
.car-select-main__container { max-width: var(--je-container); }
.car-select-sidebar { border-radius: 3px; }
.car-select-card { border-radius: 3px; }

.jollyeast-flow-content { background: #fff; }
.jollyeast-flow-progress .payment-progress__container,
.jollyeast-flow-content .payment-content__container { max-width: var(--je-container); }
.jollyeast-flow-panel,
.jollyeast-flow-card,
.jollyeast-flow-summary {
  border-radius: 3px !important;
  box-shadow: none !important;
}
.jollyeast-flow-content .payment-layout { grid-template-columns: minmax(0, 1fr) 360px; }

.blog-quick-summary {
  margin: 0 0 24px;
  padding: 18px 20px;
  border: 1px solid var(--je-divider);
  border-left: 3px solid var(--je-brand);
  background: #fff;
}
.blog-quick-summary > :first-child { margin-top: 0; }
.blog-related-tours { margin-top: 48px; }
.blog-related-tours > h2 { margin: 0 0 18px; font: 600 26px/52px var(--font-sans, "Mona Sans", sans-serif); }
.blog-related-tours__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.jollyeast-empty-state { grid-column: 1 / -1; margin: 0; padding: 32px 0; color: var(--je-body); font: 400 16px/32px var(--font-sans, "Mona Sans", sans-serif); }

:where(a, button, input, select, textarea):focus-visible {
  outline: 2px solid var(--je-brand);
  outline-offset: 2px;
}

@media (max-width: 782px) {
  .admin-bar .jollyeast-site-chrome { top: 46px; }
}

@media (max-width: 900px) {
  .jollyeast-alert-bar { display: none; }
}

@media (max-width: 640px) {
  :where(
    .site-header button,
    .site-header a,
    .jollyeast-mobile-filter-bar button,
    .jollyeast-mobile-filter-drawer button,
    .jollyeast-mobile-sort-options button,
    .city-filters__chip,
    .city-filters__action,
    .faq-item__button,
    .detail-tabs__item,
    .jollyeast-flow-content button,
    .jollyeast-flow-content input,
    .jollyeast-flow-content select,
    .jollyeast-flow-content textarea,
    .cart-page button,
    .cart-page input,
    .cart-page a
  ) {
    min-height: 44px;
  }
  .site-footer__social a {
    width: 44px !important;
    height: 44px !important;
  }
  .city-filters__footer {
    display: flex;
    width: 100%;
    flex-direction: row;
    align-items: center;
  }
  .city-filters__count {
    flex: 1 1 auto;
    min-width: 0;
  }
  .city-filters__actions {
    flex: 0 0 auto;
    width: auto;
  }
  .city-filters__action--ghost {
    width: auto;
    white-space: nowrap;
  }
  .city-results__grid,
  .city-tour-card {
    width: 100%;
    min-width: 0;
  }
  .city-tour-card__meta li { width: auto; }
  .detail-hero__title { font-size: 22px; line-height: 44px; }
  .detail-tabs { justify-content: flex-start; gap: 8px 18px; }
  .detail-tabs__item { font-size: 14px; line-height: 28px; }
  .detail-content__container { grid-template-columns: 1fr; }
  .detail-section__title { font-size: 22px; line-height: 44px; }
  .site-footer__title { font-size: 15px; line-height: 30px; }
  .site-footer__links a,
  .site-footer__links span,
  .site-footer__contact-list li { font-size: 14px; line-height: 28px; }
  .jollyeast-flow-progress .payment-progress__container,
  .jollyeast-flow-content .payment-content__container { padding-left: 12px; padding-right: 12px; }
  .jollyeast-flow-content .payment-layout { grid-template-columns: 1fr; }
  .blog-related-tours > h2 { font-size: 22px; line-height: 44px; }
  .blog-related-tours__grid { grid-template-columns: 1fr; }
}
