/* =========================================================
   JKE public-site-shell.css ? ONE design system (recovery)
   Load AFTER public-site.css. Do not stack more patches.
   ========================================================= */

:root {
  --jke-navy: #0b1f3a;
  --jke-accent: #f59e0b;
  --jke-text: #1a1d24;
  --jke-muted: #5f6368;
  --jke-bg: #f8fafc;
  --jke-alt: #eef2f7;
  --jke-border: #e2e8f0;
  --jke-max: 1120px;
  --jke-prose: 40rem;
  --jke-radius: 12px;
  --jke-pad: 1.15rem;
  --jke-btn-h: 48px;
}

/* ---------- Shell wrappers ---------- */
.pub-home--tight,
.pub-page-shell,
.pub-page--conversion .pub-main > .pub-page-shell,
.pub-svc-page .pub-page-shell {
  width: 100%;
}

.pub-page--conversion .pub-crumbs,
.pub-home--tight .pub-crumbs,
.pub-svc-page .pub-crumbs {
  max-width: var(--jke-max);
  margin: 0 auto;
  padding: 0.75rem var(--jke-pad) 0;
  text-align: left;
}

/* Conversion pages stay left; home hero centers on phone (see mobile block) */
.pub-page--conversion .pub-page-head,
.pub-page--conversion .pub-page-head--service,
.pub-page--conversion .pub-section h2,
.pub-page--conversion .pub-section__title,
.pub-page--conversion .pub-cta-band,
.pub-page--conversion .pub-cta-band h2,
.pub-page--conversion .pub-cta-band p,
.pub-page--conversion .pub-prose,
.pub-page--conversion .pub-faq,
.pub-page--conversion .pub-faq summary,
.pub-home-page .pub-section__title,
.pub-home-page .pub-home-lead {
  text-align: left !important;
}
@media (min-width: 900px) {
  .pub-home-page .pub-hero h1,
  .pub-home-page .pub-hero__sub {
    text-align: left !important;
  }
}

/* ---------- Quote block (shared) ---------- */
.pub-page--conversion .pub-section--quote-first,
.pub-svc-page .pub-section--quote-first {
  max-width: var(--jke-max);
  margin: 0 auto;
  padding: 0.75rem var(--jke-pad) 0.35rem !important;
  background: transparent;
}

.pub-page--conversion .pub-svc-quote,
.pub-svc-page .pub-svc-quote {
  max-width: 32rem;
  margin: 0;
  text-align: left !important;
  background: #fff;
  border: 2px solid var(--jke-navy);
  border-radius: 14px;
  box-shadow: 0 10px 28px rgba(11, 31, 58, 0.12);
  padding: 1.15rem 1.1rem 1.1rem;
}

.pub-page--conversion .pub-svc-quote__title,
.pub-page--conversion .pub-svc-quote__sub,
.pub-page--conversion .pub-svc-quote__trust {
  text-align: left !important;
}

.pub-page--conversion .pub-svc-quote__title {
  margin: 0 0 0.35rem;
  font-size: 1.25rem;
  color: var(--jke-navy);
}

.pub-page--conversion .pub-svc-quote__sub {
  margin: 0 0 0.85rem;
  font-size: 0.88rem;
  color: var(--jke-muted);
}

.pub-page--conversion .pub-svc-quote .pub-btn,
.pub-page--conversion .pub-btn {
  min-height: var(--jke-btn-h);
  font-weight: 700;
}

.pub-page--conversion .pub-svc-quote__cta {
  width: 100%;
}

/* ---------- Page head (after quote) ---------- */
.pub-page--conversion .pub-page-head,
.pub-page--conversion .pub-svc-head {
  max-width: var(--jke-max) !important;
  margin: 0 auto !important;
  padding: 0.85rem var(--jke-pad) 1rem !important;
  text-align: left !important;
}

.pub-page--conversion .pub-page-head h1,
.pub-page--conversion .pub-svc-head h1 {
  font-size: clamp(1.45rem, 4.8vw, 2.1rem) !important;
  line-height: 1.15 !important;
  margin: 0 0 0.5rem !important;
  color: var(--jke-navy);
  font-weight: 800;
}

.pub-page--conversion .pub-prose--lead {
  font-size: 1rem !important;
  line-height: 1.5 !important;
  max-width: var(--jke-prose);
  margin: 0 0 0.55rem !important;
  color: #334155;
}

.pub-page--conversion .pub-service-price-line {
  margin: 0 0 0.65rem !important;
  font-size: 0.95rem;
  color: #334155;
  text-align: left !important;
}

.pub-page--conversion .pub-prose {
  max-width: var(--jke-prose);
  font-size: 0.96rem;
  line-height: 1.55;
  color: #334155;
  margin: 0 0 0.75rem;
}

/* Content links only ? never header/footer (those sit on navy) */
.pub-page--conversion .pub-prose a,
.pub-home-page .pub-main a:not(.pub-btn):not(.pub-chip):not(.pub-card):not(.pub-logo) {
  color: var(--jke-navy);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Hard restore site chrome (shell must not bleach navy-on-navy) */
.pub-header,
.pub-footer {
  background: #0b1f3a !important;
  color: rgba(255, 255, 255, 0.9) !important;
}

.pub-header a,
.pub-nav a,
.pub-mobile-nav a,
.pub-footer a {
  color: rgba(255, 255, 255, 0.88) !important;
  text-decoration: none !important;
  font-weight: 600 !important;
}

.pub-header a:hover,
.pub-nav a:hover,
.pub-mobile-nav a:hover,
.pub-footer a:hover {
  color: #ffffff !important;
}

.pub-footer strong {
  color: #ffffff !important;
}

.pub-footer p,
.pub-footer__address,
.pub-footer__legal {
  color: rgba(255, 255, 255, 0.82) !important;
}

.pub-footer__address a {
  color: #fbbf24 !important;
}

.pub-header .pub-header__quote,
.pub-mobile-nav .pub-mobile-nav__cta {
  color: #0b1f3a !important;
  background: #f59e0b !important;
}

/* Sticky WA must stay green chip ? never navy body link styles */
.jke-sticky-wa a,
.jke-sticky-wa a:hover,
.jke-sticky-wa strong,
.jke-sticky-wa small {
  color: #fff !important;
  text-decoration: none !important;
}

.pub-page--conversion .pub-trust-visual {
  margin: 0.75rem 0 0 !important;
  max-width: 100%;
  text-align: left !important;
}

.pub-page--conversion .pub-trust-visual__photo {
  width: 100%;
  max-width: 28rem;
  max-height: 210px;
  object-fit: cover;
  border-radius: var(--jke-radius);
  display: block;
  border: 1px solid var(--jke-border);
}

/* ---------- Content sections ---------- */
.pub-page--conversion .pub-section,
.pub-page--conversion .pub-svc-block {
  max-width: var(--jke-max);
  margin: 0 auto;
  padding: 1.35rem var(--jke-pad) !important;
}

.pub-page--conversion .pub-section--alt {
  background: var(--jke-alt);
}

.pub-page--conversion .pub-section h2 {
  font-size: 1.2rem !important;
  margin: 0 0 0.65rem !important;
  color: var(--jke-navy);
  font-weight: 800;
}

.pub-page--conversion .pub-checklist {
  text-align: left !important;
  max-width: var(--jke-prose);
  margin: 0 0 1rem;
}

/* Grid: main + side */
.pub-svc-grid {
  display: grid;
  gap: 1.15rem;
  align-items: start;
}

.pub-svc-side {
  display: grid;
  gap: 0.75rem;
}

.pub-side-card {
  background: #fff;
  border: 1px solid var(--jke-border);
  border-radius: var(--jke-radius);
  padding: 1rem;
  text-align: left;
}

.pub-side-card h3 {
  margin: 0 0 0.4rem;
  font-size: 1rem;
  color: var(--jke-navy);
}

.pub-side-card p {
  margin: 0 0 0.75rem;
  font-size: 0.9rem;
  color: var(--jke-muted);
  line-height: 1.4;
}

.pub-side-card .pub-btn {
  min-height: 46px;
  margin: 0 0 0.45rem;
  width: 100%;
}

.pub-side-card .pub-btn:last-child {
  margin-bottom: 0;
}

.pub-btn--ghost {
  background: #fff !important;
  color: var(--jke-navy) !important;
  border: 2px solid var(--jke-navy) !important;
}

.pub-btn--ghost-light {
  background: transparent !important;
  color: #fff !important;
  border: 2px solid rgba(255, 255, 255, 0.9) !important;
}

.pub-side-links {
  list-style: none;
  margin: 0;
  padding: 0;
}

.pub-side-links li {
  margin: 0 0 0.4rem;
}

.pub-side-links a {
  font-weight: 700;
  font-size: 0.92rem;
  color: var(--jke-navy);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.pub-how-list {
  margin: 0 0 1rem;
  padding-left: 1.2rem;
  max-width: var(--jke-prose);
  color: #334155;
  font-size: 0.95rem;
  line-height: 1.5;
}

.pub-chips--left,
.pub-page--conversion .pub-chips {
  justify-content: flex-start !important;
}

/* Coverage directory */
.pub-coverage-dir {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  max-width: 40rem;
  margin-top: 0.75rem;
}

.pub-coverage-dir__item {
  border: 1px solid var(--jke-border);
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
}

.pub-coverage-dir__item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  cursor: pointer;
  list-style: none;
  padding: 0.7rem 0.9rem;
  font-weight: 700;
  color: var(--jke-navy);
}

.pub-coverage-dir__item summary::-webkit-details-marker {
  display: none;
}

.pub-coverage-dir__count {
  font-size: 0.8rem;
  color: var(--jke-muted);
  font-weight: 600;
}

.pub-coverage-dir__item .pub-chips {
  padding: 0 0.85rem 0.85rem;
}

/* CTA band */
.pub-cta-band--page,
.pub-page--conversion .pub-cta-band {
  max-width: var(--jke-max);
  margin: 0.5rem auto 1.25rem;
  border-radius: 14px;
  padding: 1.25rem var(--jke-pad) !important;
  text-align: left !important;
}

.pub-cta-band--page h2,
.pub-page--conversion .pub-cta-band h2 {
  font-size: 1.2rem !important;
  margin: 0 0 0.65rem !important;
}

.pub-cta-band--page .pub-btn {
  min-height: 48px;
  margin: 0.25rem 0.4rem 0.25rem 0;
}

/* Money prose */
.pub-money-prose {
  margin: 0.85rem 0 0;
  padding: 0.85rem 1rem;
  background: #f1f5f9;
  border: 1px solid var(--jke-border);
  border-radius: 12px;
  max-width: var(--jke-prose);
  font-size: 0.95rem;
  line-height: 1.5;
  color: #334155;
  text-align: left;
}

.pub-money-prose a {
  font-weight: 700;
  color: var(--jke-navy);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ---------- HOME ---------- */
.pub-home-page .pub-main {
  overflow-x: hidden;
}

/* Whole public shell: no horizontal drag / no navy blue sideways pan */
html,
html:has(body.pub) {
  background: #f8fafc !important;
  overflow-x: hidden !important;
  max-width: 100% !important;
  width: 100% !important;
}
body.pub,
body.pub .pub-main,
body.pub .pub-home-page,
body.pub .pub-home,
body.pub .pub-book-layout {
  overflow-x: hidden !important;
  max-width: 100% !important;
  width: 100%;
  overscroll-behavior-x: none;
}
/* Header keeps navy; rest of page is light so overscroll isn't a blue slab */
.pub-header {
  background: #0b1f3a;
}

.pub-home--tight {
  width: 100%;
}

.pub-home-inner {
  max-width: var(--jke-max);
  margin: 0 auto;
  padding: 0 var(--jke-pad);
  box-sizing: border-box;
}

.pub-home-inner--narrow {
  max-width: 40rem;
}

.pub-home-block.pub-section {
  padding: 1.6rem 0 !important;
}

.pub-home--tight .pub-section__title {
  text-align: left !important;
  margin: 0 0 0.7rem !important;
  font-size: 1.3rem !important;
  color: var(--jke-navy);
}

.pub-home-lead {
  margin: 0 0 1rem;
  max-width: 36rem;
  font-size: 0.96rem;
  line-height: 1.5;
  color: var(--jke-muted);
  text-align: left !important;
}

.pub-home--tight .pub-home-hero {
  max-width: var(--jke-max);
  margin: 0 auto;
  padding: 0.85rem var(--jke-pad) 1rem;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}

.pub-home--tight .pub-hero__copy {
  order: 1;
  width: 100%;
  text-align: left !important;
}

.pub-home--tight .pub-hero__form-wrap {
  order: 2;
  width: 100%;
}

@media (min-width: 900px) {
  .pub-home--tight .pub-home-hero {
    display: grid !important;
    grid-template-columns: minmax(300px, 1.05fr) minmax(340px, 0.95fr);
    align-items: start;
  }
  .pub-home--tight .pub-hero__copy {
    order: 1;
    text-align: left;
  }
  .pub-home--tight .pub-hero__form-wrap {
    order: 2;
  }
}

.pub-home--tight .pub-hero h1 {
  font-size: clamp(1.5rem, 5.2vw, 2.25rem) !important;
  line-height: 1.15 !important;
  margin: 0 0 0.55rem !important;
}

.pub-home--tight .pub-hero__sub {
  font-size: 0.98rem !important;
  line-height: 1.5 !important;
  margin: 0 0 0.75rem !important;
  max-width: 34rem;
}

.pub-home--tight .pub-hero__trust {
  list-style: none;
  padding: 0;
  margin: 0 0 0.75rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  justify-content: flex-start;
}

.pub-home--tight .pub-hero__trust li {
  font-size: 0.82rem;
  font-weight: 700;
  background: #eef2ff;
  color: var(--jke-navy);
  padding: 0.3rem 0.55rem;
  border-radius: 999px;
}

/* Hero support photo ? wide under copy, capped so portrait assets cannot explode */


.pub-home--tight .pub-hero__photo img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover;
  object-position: center 20%;
  display: block;
}

.pub-home--tight .pub-quote-form--hero {
  border: 2px solid var(--jke-navy);
  border-radius: 14px;
  box-shadow: 0 10px 28px rgba(11, 31, 58, 0.12);
}

.pub-strip--home {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
  max-width: var(--jke-max);
  margin: 0 auto;
  padding: 0 var(--jke-pad) 0.85rem !important;
  background: transparent !important;
  border: none !important;
}

.pub-strip--home .pub-strip__item {
  background: var(--jke-navy) !important;
  color: #fff !important;
  font-size: 0.82rem;
  font-weight: 700;
  text-align: center;
  padding: 0.65rem 0.4rem;
  border-radius: 10px;
  margin: 0 !important;
  border: none !important;
}

.pub-steps--home {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.65rem;
}

.pub-steps--home li {
  display: grid;
  grid-template-columns: 2rem 1fr;
  gap: 0.7rem;
  background: #fff;
  border: 1px solid var(--jke-border);
  border-radius: 12px;
  padding: 0.8rem 0.9rem;
  text-align: left;
}

.pub-steps__n {
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: var(--jke-navy);
  color: #fff;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
}

.pub-steps--home strong {
  display: block;
  color: var(--jke-navy);
  margin-bottom: 0.15rem;
  font-size: 0.95rem;
}

.pub-steps--home p {
  margin: 0;
  font-size: 0.86rem;
  color: var(--jke-muted);
  line-height: 1.4;
}

.pub-cards--home {
  display: grid !important;
  grid-template-columns: 1fr;
  gap: 0.75rem !important;
}

.pub-card--home {
  display: flex !important;
  flex-direction: column !important;
  background: #fff;
  border: 1px solid var(--jke-border);
  border-radius: 12px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  padding: 0 !important;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.05);
}

.pub-card--home .pub-card__img {
  aspect-ratio: 16 / 9;
  max-height: 112px;
  overflow: hidden;
  background: var(--jke-border);
  margin: 0 !important;
  height: auto !important;
  position: relative;
}

.pub-card--home .pub-card__img img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  object-position: center;
  display: block;
}

.pub-card--home .pub-card__body {
  padding: 0.6rem 0.7rem 0.75rem !important;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  flex: 1;
}

.pub-card--home h3 {
  font-size: 0.88rem !important;
  line-height: 1.25;
  margin: 0 !important;
  color: var(--jke-navy);
}

.pub-card__price {
  font-size: 0.82rem !important;
  font-weight: 800 !important;
  color: #b45309 !important;
  margin: 0 !important;
}

.pub-card--home .pub-card__link {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--jke-navy);
  margin-top: auto;
}

.pub-card--home ul {
  display: none !important;
}

.pub-feature-home {
  display: grid;
  gap: 1rem;
  align-items: center;
}

.pub-feature-home__img {
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--jke-border);
  aspect-ratio: 16 / 10;
  max-height: 260px;
  max-width: 100%;
  background: var(--jke-border);
  position: relative;
}

.pub-feature-home__img img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  object-position: center;
  display: block;
}

.pub-feature-home__copy h2 {
  margin: 0 0 0.45rem;
  font-size: 1.2rem;
  color: var(--jke-navy);
  text-align: left !important;
}

.pub-feature-home__copy .pub-prose {
  margin: 0 0 0.6rem;
  font-size: 0.94rem;
  text-align: left;
}

.pub-moves--home {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 0.6rem !important;
}

.pub-moves--home .pub-move {
  text-align: left !important;
  padding: 0.7rem !important;
  margin: 0 !important;
  border-radius: 12px;
  background: #fff;
  border: 1px solid var(--jke-border);
}

.pub-why-grid {
  list-style: none;
  margin: 0 0 0.9rem;
  padding: 0;
  display: grid;
  gap: 0.5rem;
}

.pub-why-grid li {
  background: #fff;
  border: 1px solid var(--jke-border);
  border-radius: 10px;
  padding: 0.7rem 0.85rem;
  font-weight: 600;
  font-size: 0.92rem;
  text-align: left;
}

.pub-chips--home {
  display: flex !important;
  flex-wrap: wrap;
  gap: 0.45rem;
  justify-content: flex-start !important;
}

.pub-cta-band--home {
  text-align: left !important;
  padding: 1.5rem 0 !important;
}

.pub-cta-band--home h2,
.pub-cta-band--home p {
  text-align: left !important;
  max-width: 28rem;
}

.pub-cta-band--home .pub-btn {
  min-height: 52px;
  width: 100%;
  max-width: 20rem;
}

/* Desktop */
@media (min-width: 900px) {
  .pub-svc-grid {
    grid-template-columns: 1.45fr 0.85fr;
    gap: 1.75rem;
  }

  .pub-svc-side {
    position: sticky;
    top: 5.25rem;
  }

  .pub-page--conversion .pub-trust-visual__photo {
    max-height: 240px;
  }

  .pub-home--tight .pub-home-hero {
    display: grid;
    /* Copy left ? quote form RIGHT */
    grid-template-columns: minmax(300px, 1.05fr) minmax(340px, 0.95fr);
    gap: 1.75rem 2.25rem;
    padding: 1.5rem 1.5rem 1.75rem;
    align-items: start;
  }

  .pub-home--tight .pub-hero__copy {
    order: 1;
  }

  .pub-home--tight .pub-hero__form-wrap {
    order: 2;
    position: sticky;
    top: 5.25rem;
  }

  

  .pub-card--home .pub-card__img {
    max-height: 128px;
  }

  .pub-feature-home__img {
    max-height: 280px;
  }

  .pub-strip--home {
    grid-template-columns: repeat(4, 1fr);
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
  }

  .pub-steps--home {
    grid-template-columns: 1fr 1fr;
  }

  .pub-cards--home {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 0.9rem !important;
  }

  .pub-feature-home {
    grid-template-columns: 1.1fr 1fr;
    gap: 1.75rem;
  }

  .pub-moves--home {
    grid-template-columns: repeat(4, 1fr) !important;
  }

  .pub-why-grid {
    grid-template-columns: 1fr 1fr;
  }

  .pub-cta-band--home .pub-btn {
    width: auto;
  }

  .pub-cta-band--page .pub-btn--ghost-light {
    margin-left: 0.4rem;
  }
}

@media (max-width: 420px) {
  .pub-moves--home {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   UNIFIED PAGE FORMAT (all public pages ? AnyVan-clean)
   ========================================================= */

.pub-page-shell,
body.pub-page-shell .pub-main,
body.pub-svc-page .pub-main {
  width: 100%;
}

.pub-page-shell > .pub-crumbs,
.pub-page-shell > .pub-section,
.pub-page-shell > .pub-page-hero,
.pub-page-shell > .pub-cta-band {
  max-width: var(--jke-max);
  margin-left: auto;
  margin-right: auto;
}

.pub-page-shell .pub-crumbs {
  padding: 0.75rem var(--jke-pad) 0;
  text-align: left;
}

.pub-page-shell .pub-section {
  padding: 1.35rem var(--jke-pad) !important;
  text-align: left;
}

.pub-page-shell .pub-section--alt {
  max-width: none;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.pub-page-shell .pub-section--alt > .pub-home-inner,
.pub-page-shell .pub-section--alt > .pub-home-inner--narrow {
  max-width: var(--jke-max);
  margin: 0 auto;
  padding: 1.35rem var(--jke-pad);
}

.pub-page-shell .pub-section__title,
.pub-page-shell .pub-prose,
.pub-page-shell .pub-home-lead,
.pub-page-shell h2 {
  text-align: left !important;
}
@media (min-width: 900px) {
  .pub-page-shell h1 { text-align: left !important; }
}
@media (max-width: 899px) {
  .pub-page-shell .pub-page-hero h1,
  .pub-page-shell .pub-home-hero h1,
  .pub-page-shell .pub-page-head h1 {
    text-align: center !important;
  }
}

.pub-page-hero {
  max-width: var(--jke-max);
  margin: 0 auto;
  padding: 0.85rem var(--jke-pad) 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}

.pub-page-hero .pub-hero__copy {
  order: 1;
  width: 100%;
  text-align: left !important;
}

.pub-page-hero .pub-hero__form-wrap {
  order: 2;
  width: 100%;
}

.pub-page-hero h1 {
  font-size: clamp(1.5rem, 5vw, 2.15rem) !important;
  line-height: 1.15 !important;
  margin: 0 0 0.55rem !important;
  color: var(--jke-navy);
}

.pub-page-hero .pub-hero__sub {
  font-size: 0.98rem !important;
  max-width: 36rem;
  margin: 0 0 0.75rem !important;
}

.pub-page-hero .pub-service-price-line {
  margin: 0 0 0.75rem;
  font-size: 0.95rem;
  color: #334155;
}

/* Service pills ? chips, not dropdowns */
.pub-svc-pills {
  border: none;
  margin: 0 0 1rem;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.pub-svc-pills__legend {
  width: 100%;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--jke-muted);
  margin: 0 0 0.45rem;
  padding: 0;
}

.pub-svc-pill {
  display: inline-flex;
  align-items: center;
  margin: 0 !important;
  cursor: pointer;
}

.pub-svc-pill input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.pub-svc-pill span {
  display: inline-block;
  padding: 0.45rem 0.75rem;
  border-radius: 999px;
  border: 1.5px solid #cbd5e1;
  background: #fff;
  color: var(--jke-navy);
  font-size: 0.84rem;
  font-weight: 700;
  line-height: 1.2;
  transition: border-color 0.12s ease, background 0.12s ease, color 0.12s ease;
}

.pub-svc-pill input:checked + span {
  background: var(--jke-navy);
  border-color: var(--jke-navy);
  color: #fff;
}

.pub-svc-pill input:focus-visible + span {
  outline: 2px solid var(--jke-accent);
  outline-offset: 2px;
}

.pub-quote-form__title {
  margin: 0 0 0.35rem;
  font-size: 1.25rem;
  color: var(--jke-navy);
  font-weight: 800;
}

.pub-quote-form__trust {
  margin: 0.65rem 0 0;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--jke-muted);
  text-align: center;
}

/* Hide old language select if any remnant styles remain */
.pub-lang,
.pub-mobile-lang {
  display: none !important;
}

/* AEO answer blocks ? clear, citable, speakable */
.jke-aeo-block {
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
}
.jke-aeo-summary {
  font-size: 1.02rem !important;
  font-weight: 600;
  line-height: 1.5;
  color: var(--jke-navy, #0b1f3a) !important;
  margin: 0 0 0.65rem !important;
}
.jke-snippet-answer {
  font-size: 0.96rem !important;
  line-height: 1.5;
  color: #334155 !important;
  margin: 0 0 0.5rem !important;
}

/* Internal link chain in longform city/service prose */
.pub-prose--linked a,
.pub-home-page .pub-main .pub-prose a {
  color: var(--jke-navy);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.pub-prose--linked a:hover,
.pub-home-page .pub-main .pub-prose a:hover {
  color: #0f3d6e;
}

/* Content pages: kill random center alignment */
.pub-page-shell .pub-page-head,
.pub-page-shell .pub-cta-band {
  text-align: left !important;
}

.pub-cta-band--home {
  max-width: var(--jke-max);
  margin: 0 auto 2rem;
  padding: 1.5rem var(--jke-pad) !important;
  text-align: left !important;
}

.pub-cta-band--home h2 {
  margin: 0 0 0.4rem;
  color: #fff;
}

.pub-cta-band--home p {
  margin: 0 0 0.85rem;
  color: rgba(255, 255, 255, 0.88);
}

@media (min-width: 900px) {
  .pub-page-hero {
    display: grid;
    grid-template-columns: minmax(300px, 1.05fr) minmax(340px, 0.95fr);
    gap: 1.75rem 2.25rem;
    padding: 1.5rem 1.5rem 1.75rem;
    align-items: start;
  }

  .pub-page-hero .pub-hero__copy {
    order: 1;
  }

  .pub-page-hero .pub-hero__form-wrap {
    order: 2;
    position: sticky;
    top: 5.25rem;
  }
}


/* === Postcode dropdown MUST show (never clipped) === */
.pub-ac-wrap {
  position: relative !important;
  overflow: visible !important;
  z-index: 20;
}
.pub-ac-menu {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: calc(100% + 4px) !important;
  z-index: 99999 !important;
  display: block;
  background: #fff !important;
  border: 1px solid #64748b !important;
  border-radius: 12px !important;
  box-shadow: 0 12px 32px rgba(11, 31, 58, 0.22) !important;
  max-height: min(280px, 50vh);
  overflow-y: auto !important;
}
.pub-ac-menu[hidden] {
  display: none !important;
}
.pub-hero__form-wrap,
.pub-quote-form,
.pub-quote-form--hero,
.pub-home-hero,
.pub-wizard-panel,
.pub-route-field {
  overflow: visible !important;
}
.pub-ac-item {
  display: block;
  width: 100%;
  text-align: left;
  padding: 0.7rem 0.85rem;
  border: 0;
  border-bottom: 1px solid #e2e8f0;
  background: #fff;
  cursor: pointer;
  font: inherit;
  color: #0f172a;
}
.pub-ac-item:hover,
.pub-ac-item.is-active {
  background: #eff6ff;
}

/* Phone: suggestions MUST sit under the field (keyboard covers bottom sheets) */
.pub-ac-menu:not(.pub-ac-menu--sheet) {
  position: fixed !important; /* DROP1 */
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  margin: 0.35rem 0 0.5rem !important;
  max-height: min(240px, 40vh);
  z-index: 40;
  border: 2px solid #2563eb;
  box-shadow: 0 8px 24px rgba(37, 99, 235, 0.18);
}
.pub-ac-open {
  border-color: #2563eb !important;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.2);
}
.pub-ac-status {
  padding: 0.65rem 0.85rem;
  font-size: 0.85rem;
  font-weight: 700;
  color: #1d4ed8;
  background: #eff6ff;
}
.pub-ac-item {
  min-height: 48px;
  padding: 0.7rem 0.85rem;
  width: 100%;
  text-align: left;
  border: none;
  border-bottom: 1px solid #e2e8f0;
  background: #fff;
  display: block;
  box-sizing: border-box;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}



/* Typing must stay LIGHT ? never dim the whole book screen */
.pub-ac-backdrop,
.pub-ac-backdrop[hidden],
body.pub-ac-sheet-open .pub-ac-backdrop {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  background: transparent !important;
  backdrop-filter: none !important;
}
body.pub-ac-sheet-open {
  overflow: auto !important; /* don't lock/darken page while typing */
}



/* Force left-aligned readable text on home + book (phone + desktop) */
body.pub-home-page .pub-hero,
body.pub-home-page .pub-hero__copy,
body.pub-home-page .pub-hero h1,
body.pub-home-page .pub-hero__sub,
body.pub-home-page .pub-eyebrow,
body.pub-home-page .pub-section__title,
body.pub-home-page .pub-home-lead,
body.pub--book .pub-page-head--book,
body.pub--book .pub-page-head--book h1,
body.pub--book .pub-book-head-sub,
body.pub--book .pub-book-eyebrow,
body.pub--book .pub-route-hero__lead {
  text-align: left !important;
}

body.pub-home-page .pub-hero__trust {
  justify-content: flex-start !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Copy first, form second ? stacked cleanly, full width */
body.pub-home-page .pub-home-hero,
body.pub-home-page .pub-hero--copy-first {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 1rem !important;
}
/* order handled by --copy-first / --quote-first */

@media (min-width: 900px) {
  body.pub-home-page .pub-home-hero,
  body.pub-home-page .pub-hero--copy-first {
    display: grid !important;
    grid-template-columns: minmax(280px, 1.05fr) minmax(320px, 0.95fr) !important;
    align-items: start !important;
  }
}

/* Book wizard: panels must obey hidden for step slider */
.pub-wizard-panel[hidden],
.pub-wizard-panel[aria-hidden="true"]:not(.is-active) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
.pub-wizard-panel.is-active:not([hidden]) {
  display: block !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

/* Step progress bar ? clean row, not scattered */
.pub-wizard-steps {
  display: flex !important;
  flex-wrap: nowrap !important;
  justify-content: stretch !important;
  align-items: stretch !important;
  gap: 0.4rem !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  margin: 0 0 1rem !important;
  padding: 0 !important;
  list-style: none !important;
}
.pub-wizard-step {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  text-align: center !important;
  box-sizing: border-box !important;
}

/* Route form stacked, left labels */
.pub-route-hero {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 0.45rem !important;
  text-align: left !important;
}
.pub-route-field {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  text-align: left !important;
}
.pub-route-field__label,
.pub-route-field__hint {
  text-align: left !important;
}

/* Address list under field ? stay until pick, not floating mid-screen */
.pub-ac-menu:not([hidden]) {
  display: block !important;
  pointer-events: auto !important;
}
.jke-sm-menu { display: none !important; }

@media (max-width: 899px) {
  body.pub--book .pub-page-head--book {
    padding: 0.85rem 1rem 0.35rem !important;
    text-align: left !important;
  }
  body.pub--book .pub-book-layout {
    padding: 0 1rem 5rem !important;
    margin: 0 auto !important;
  }
  body.pub--book .pub-wizard-panel {
    padding: 0.9rem 0.85rem 1rem !important;
  }
  .pub-ac-menu:not(.pub-ac-menu--sheet):not([hidden]) {
    position: fixed !important; /* DROP1 */
    top: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0.35rem 0 0.5rem !important;
    max-height: min(260px, 40vh) !important;
    overflow-y: auto !important;
    border: 2px solid #2563eb !important;
    border-radius: 12px !important;
    background: #fff !important;
    z-index: 40 !important;
  }
  .pub-ac-item {
    min-height: 50px !important;
    text-align: left !important;
  }
  /* Next button always tappable */
  #w-step1-next,
  .pub-btn--step1 {
    width: 100% !important;
    min-height: 54px !important;
    pointer-events: auto !important;
    position: relative !important;
    z-index: 5 !important;
    opacity: 1 !important;
  }
  body.pub-step-1 .pub-step1-cta {
    position: relative !important;
    z-index: 5 !important;
    background: #f8fafc !important;
    margin-top: 0.75rem !important;
    padding: 0.5rem 0 0.25rem !important;
  }
}

/* Kill any leftover center !important on hero from older patches */
@media (max-width: 899px) {
  .pub-home--tight .pub-home-hero,
  .pub-home--tight .pub-hero__copy,
  .pub-home--tight .pub-eyebrow,
  .pub-home--tight .pub-hero h1,
  .pub-home--tight .pub-hero__sub {
    text-align: left !important;
  }
}


/* ads-restore1 ? money/ads pages form-first (promoted layout); home copy-first only */
/* Kill earlier blanket order that broke /man-and-van/* and /services/* */
body.pub-home-page .pub-hero__copy,
body.pub-home-page .pub-hero__form-wrap {
  /* reset ? controlled per hero class below */
}

/* HOME only: paragraph then booking */
body.pub-home-page .pub-hero--copy-first {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 1rem !important;
}
body.pub-home-page .pub-hero--copy-first .pub-hero__copy {
  order: 1 !important;
  width: 100% !important;
  text-align: left !important;
}
body.pub-home-page .pub-hero--copy-first .pub-hero__form-wrap {
  order: 2 !important;
  width: 100% !important;
}

/* ADS / city / service money pages: FORM first (the promoted layout) */
body.pub-home-page .pub-hero--quote-first,
.pub-page--conversion .pub-hero--quote-first,
.pub-svc-page .pub-hero--quote-first {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 1rem !important;
}
body.pub-home-page .pub-hero--quote-first .pub-hero__form-wrap,
.pub-page--conversion .pub-hero--quote-first .pub-hero__form-wrap {
  order: 1 !important;
  width: 100% !important;
}
body.pub-home-page .pub-hero--quote-first .pub-hero__copy,
.pub-page--conversion .pub-hero--quote-first .pub-hero__copy {
  order: 2 !important;
  width: 100% !important;
  text-align: left !important;
}

@media (min-width: 900px) {
  body.pub-home-page .pub-hero--copy-first,
  body.pub-home-page .pub-hero--quote-first {
    display: grid !important;
    grid-template-columns: minmax(280px, 1.05fr) minmax(320px, 0.95fr) !important;
    align-items: start !important;
  }
  /* desktop: copy left, form right for both */
  body.pub-home-page .pub-hero--copy-first .pub-hero__form-wrap,
  body.pub-home-page .pub-hero--quote-first .pub-hero__form-wrap {
    order: 1 !important;
  }
  body.pub-home-page .pub-hero--copy-first .pub-hero__copy,
  body.pub-home-page .pub-hero--quote-first .pub-hero__copy {
    order: 2 !important;
    text-align: left !important;
  }
}

/* Clean left stack, not centre-scatter */
body.pub-home-page .pub-hero h1,
body.pub-home-page .pub-hero__sub,
body.pub-home-page .pub-eyebrow,
body.pub-home-page .pub-section__title,
body.pub-home-page .pub-home-lead,
body.pub--book .pub-page-head--book,
body.pub--book .pub-page-head--book h1,
body.pub--book .pub-book-head-sub {
  text-align: left !important;
}
body.pub-home-page .pub-hero__trust {
  justify-content: flex-start !important;
}

/* Shell home order overrides that still force centre/copy-first on money pages */
.pub-home--tight .pub-hero__form-wrap { order: unset; }
.pub-home--tight .pub-hero__copy { order: unset; text-align: left !important; }
.pub-home--tight .pub-hero--quote-first .pub-hero__form-wrap { order: 2 !important; }
.pub-home--tight .pub-hero--quote-first .pub-hero__copy { order: 1 !important; }
.pub-home--tight .pub-hero--copy-first .pub-hero__copy { order: 1 !important; }
.pub-home--tight .pub-hero--copy-first .pub-hero__form-wrap { order: 2 !important; }

/* Quote form clean full-width card */
.pub-quote-form--hero {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  text-align: left !important;
}
.pub-quote-form--hero h2,
.pub-quote-form--hero .pub-quote-form__lead,
.pub-quote-form--hero label {
  text-align: left !important;
}

/* Instant-feel address dropdown */
.pub-ac-menu:not([hidden]) {
  display: block !important;
  pointer-events: auto !important;
}
.pub-ac-item {
  min-height: 50px !important;
  text-align: left !important;
}
@media (max-width: 899px) {
  /* DROP1: fixed list above Next (was relative under button) */
  .pub-ac-menu:not(.pub-ac-menu--sheet):not([hidden]),
  .pub-ac-menu-addr4:not([hidden]) {
    position: fixed !important;
    z-index: 2147483646 !important;
    pointer-events: auto !important;
    margin: 0 !important;
  }
  #w-step1-next, .pub-btn--step1 {
    width: 100% !important;
    min-height: 54px !important;
    pointer-events: auto !important;
    z-index: 2 !important;
  }
  /* nextfix1b: do NOT disable Next while AC open — only dim slightly; dead Next was unusable */
  body.pub-ac-open-now #w-step1-next,
  body.pub-ac-open-now .pub-btn--step1 {
    z-index: 2 !important;
    opacity: 0.92 !important;
    pointer-events: auto !important;
  }
}


/* two-lads-photo-fix ? restore promoted crew photo, no bad crop/scatter */
.pub-hero__photo {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0.85rem 0 0 !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  border: 1px solid #e2e8f0 !important;
  background: #e8eef5 !important;
  box-shadow: 0 8px 24px rgba(11, 31, 58, 0.12) !important;
  /* landscape frame that fits both crew + van */
  aspect-ratio: 16 / 10 !important;
  max-height: min(58vw, 360px) !important;
  height: auto !important;
  position: relative !important;
}
.pub-hero__photo img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  /* center on the two workers + van, not crop heads */
  object-position: center 45% !important;
  display: block !important;
}
@media (min-width: 900px) {
  .pub-hero__photo {
    max-height: 380px !important;
  }
}
/* never hide hero photo on home/ads */
img {
  display: block !important;
}



/* Mobile + tablet: single centered column ? never leave empty left gutter for rail */
@media (max-width: 959px) {
  body.pub--book .pub-book-layout {
    display: block !important;
    width: 100% !important;
    max-width: 640px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    box-sizing: border-box !important;
    float: none !important;
  }

  body.pub--book .pub-wizard {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    float: none !important;
    position: relative !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    order: 0 !important;
    box-sizing: border-box !important;
  }
}

/* Hide order rail on phone/tablet so it cannot push wizard right */
@media (max-width: 959px) {
  body.pub--book .pub-book-rail,
  body.pub--book .pub-book-layout > .pub-book-rail {
    display: none !important;
    width: 0 !important;
    max-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }
  body.pub--book .pub-book-layout {
    grid-template-columns: 1fr !important;
  }
}

/* Desktop wide: center the pair, wizard left of rail */
@media (min-width: 960px) {
  body.pub--book .pub-book-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 320px) !important;
    gap: 1.5rem !important;
    max-width: 1000px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
    align-items: start !important;
  }
  body.pub--book .pub-book-layout > .pub-wizard {
    order: 1 !important;
    max-width: none !important;
    margin: 0 !important;
  }
  body.pub--book .pub-book-layout > .pub-book-rail {
    order: 2 !important;
    display: block !important;
    width: auto !important;
    max-width: 280px !important;
  }
  body.pub--book .pub-page-head--book {
    max-width: 1000px !important;
  }
}

body.pub--book .pub-wizard-panel,
body.pub--book .pub-route-hero,
body.pub--book .pub-wizard-steps {
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}


/* ac-scroll-sticky ? address list stays on screen while scrolling booking wizard */
body.pub-ac-open-now {
  /* allow vertical scroll; do not dim */
}
.pub-ac-menu.pub-ac-menu--sticky:not([hidden]),
body.pub-ac-open-now .pub-ac-menu:not([hidden]) {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  z-index: 10050 !important;
}
@media (max-width: 899px) {
  /* Pin list under field and keep it visible when user scrolls the page */
  body.pub--book .pub-ac-menu.pub-ac-menu--sticky:not([hidden]),
  body.pub-ac-open-now .pub-ac-menu:not([hidden]),
  body.pub-home-page .pub-ac-menu.pub-ac-menu--sticky:not([hidden]) {
    position: sticky !important;
    top: 4.5rem !important; /* below sticky header */
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0.35rem 0 0.5rem !important;
    max-height: min(46vh, 320px) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    border: 2px solid #2563eb !important;
    border-radius: 12px !important;
    background: #fff !important;
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.22) !important;
  }
  /* When keyboard open, also allow fixed fallback at mid-screen so list never leaves viewport */
  body.pub-ac-open-now.pub--book .pub-route-field:focus-within .pub-ac-menu:not([hidden]),
  body.pub-ac-open-now .pub-ac-wrap:focus-within .pub-ac-menu:not([hidden]) {
    position: sticky !important;
    top: 4.5rem !important;
  }
  .pub-ac-menu .pub-ac-item {
    min-height: 52px !important;
    touch-action: manipulation;
  }
  /* Field row stays above other content while choosing */
  body.pub-ac-open-now .pub-route-field:focus-within,
  body.pub-ac-open-now .pub-ac-wrap:focus-within {
    z-index: 60 !important;
    position: relative !important;
  }
  /* Wizard never clips the sticky list */
  body.pub--book .pub-wizard,
  body.pub--book .pub-wizard-panel,
  body.pub--book .pub-route-hero,
  body.pub--book .pub-book-layout,
  body.pub--book .pub-main {
    overflow: visible !important;
  }
}

/* book-center1 ? phone/tablet only (was crushing desktop to 640px left gutter) */
@media (max-width: 959px) {
  body.pub--book .pub-page-head--book {
    max-width: 640px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    box-sizing: border-box !important;
  }
  body.pub--book .pub-book-layout {
    display: block !important;
    width: 100% !important;
    max-width: 640px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    box-sizing: border-box !important;
  }
  body.pub--book .pub-wizard {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    float: none !important;
    transform: none !important;
  }
  body.pub--book .pub-book-rail {
    display: none !important;
  }
}

/* logo-fix-phone */
.pub-logo {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  line-height: 0;
}
.pub-logo img {
  display: block;
  height: 52px;
  width: auto !important;
  max-width: min(180px, 48vw);
  object-fit: contain !important;
  object-position: left center;
  border-radius: 10px;
  background: #fff;
  padding: 5px 10px;
  box-sizing: border-box;
}
/* logo-fix-phone */
@media (max-width: 799px) {
  .pub-logo img {
    height: 46px !important;
    max-width: min(160px, 46vw) !important;
    width: auto !important;
    object-fit: contain !important;
    padding: 4px 8px !important;
  }
}


/* home-route-clean ? single clean booking card, not scattered */
body.pub-home-page .pub-home-hero--clean,
body.pub-home-page .pub-hero--quote-first.pub-home-hero {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 1.1rem !important;
  max-width: 640px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 1rem 1rem 1.5rem !important;
  box-sizing: border-box !important;
}
body.pub-home-page .pub-home-hero--clean .pub-hero__form-wrap {
  order: 1 !important;
  width: 100% !important;
  max-width: 100% !important;
}
body.pub-home-page .pub-home-hero--clean .pub-hero__copy {
  order: 2 !important;
  width: 100% !important;
  text-align: left !important;
}
body.pub-home-page .pub-quote-form--hero {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  text-align: left !important;
  padding: 1.15rem 1rem 1.2rem !important;
}
body.pub-home-page .pub-hero-route {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.35rem !important;
  width: 100% !important;
}
body.pub-home-page .pub-route-field {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  text-align: left !important;
}
body.pub-home-page .pub-route-input {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
body.pub-home-page .pub-btn--hero {
  width: 100% !important;
  margin-top: 0.35rem !important;
}
body.pub-home-page .pub-svc-pills {
  display: none !important; /* homepage is man-van default ? keep form clean */
}
@media (min-width: 900px) {
  body.pub-home-page .pub-home-hero--clean {
    max-width: 1120px !important;
    display: grid !important;
    grid-template-columns: minmax(320px, 0.95fr) minmax(300px, 1.05fr) !important;
    gap: 2rem !important;
    align-items: start !important;
  }
  body.pub-home-page .pub-home-hero--clean .pub-hero__form-wrap { order: 1 !important; }
  body.pub-home-page .pub-home-hero--clean .pub-hero__copy { order: 2 !important; }
}

/* STEP2FIX1: always show items panel on step 2 (phone + desktop) ? was blank when only jke-from-home rules applied */
body.pub-step-2 .pub-wizard-panel[data-panel="1"],
body.jke-from-home .pub-wizard-panel[data-panel="1"],
body.pub-step-2.jke-from-home .pub-wizard-panel[data-panel="1"],
html.jke-skip-route .pub-wizard-panel[data-panel="1"] {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
}
body.pub-step-2 .pub-wizard-panel[data-panel="2"],
body.pub-step-2 .pub-wizard-panel[data-panel="2"][hidden],
body.jke-from-home.pub-step-2 .pub-wizard-panel[data-panel="2"],
html.jke-skip-route body.pub-step-2 .pub-wizard-panel[data-panel="2"],
body.jke-from-home.pub-step-2 .pub-wizard-panel[data-panel="2"][hidden] {
  display: block !important;
  visibility: visible !important;
  pointer-events: auto !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  opacity: 1 !important;
}

/* STEP3_FIX1 ? Contact & pay must be alone; hide calendar panel */
body.pub-step-3 .pub-wizard-panel[data-panel="1"],
body.pub-step-3 .pub-wizard-panel[data-panel="2"],
body.jke-from-home.pub-step-3 .pub-wizard-panel[data-panel="2"],
html.jke-skip-route body.pub-step-3 .pub-wizard-panel[data-panel="2"] {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
body.pub-step-3 .pub-wizard-panel[data-panel="3"],
body.jke-from-home.pub-step-3 .pub-wizard-panel[data-panel="3"] {
  display: block !important;
  visibility: visible !important;
  pointer-events: auto !important;
  height: auto !important;
  max-height: none !important;
}

/* no-again: handoff users never see route step */
body.jke-from-home .pub-wizard-panel[data-panel="1"],
html.jke-skip-route .pub-wizard-panel[data-panel="1"],
body.pub--book.pub-step-2 .pub-wizard-panel[data-panel="1"][hidden] {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}


/* FORM1 ? booking form FIRST, copy/photo SECOND. Never flip. Never scatter. */
body.pub-home-page .pub-hero,
body.pub-home-page .pub-home-hero,
body.pub-home-page .pub-hero--quote-first,
body.pub-home-page .pub-hero--copy-first,
body.pub-home-page .pub-home-hero--clean {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 1rem !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  padding: 0.85rem 1rem 1.25rem !important;
  box-sizing: border-box !important;
}

/* FORM always on top */
body.pub-home-page .pub-hero__form-wrap,
body.pub-home-page .pub-home-hero--clean .pub-hero__form-wrap,
body.pub-home-page .pub-hero--quote-first .pub-hero__form-wrap,
body.pub-home-page .pub-hero--copy-first .pub-hero__form-wrap,
.pub-home--tight .pub-hero__form-wrap,
.pub-home--tight .pub-hero--quote-first .pub-hero__form-wrap,
.pub-home--tight .pub-hero--copy-first .pub-hero__form-wrap {
  order: 1 !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  float: none !important;
}

/* Copy / photo always below form */
body.pub-home-page .pub-hero__copy,
body.pub-home-page .pub-home-hero--clean .pub-hero__copy,
body.pub-home-page .pub-hero--quote-first .pub-hero__copy,
body.pub-home-page .pub-hero--copy-first .pub-hero__copy,
.pub-home--tight .pub-hero__copy,
.pub-home--tight .pub-hero--quote-first .pub-hero__copy,
.pub-home--tight .pub-hero--copy-first .pub-hero__copy {
  order: 2 !important;
  width: 100% !important;
  max-width: 100% !important;
  text-align: left !important;
  margin: 0 !important;
  float: none !important;
}

/* Clean form card ? full width stack */
body.pub-home-page .pub-quote-form--hero {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
  padding: 1.1rem 1rem 1.15rem !important;
  text-align: left !important;
}
body.pub-home-page .pub-hero-route {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.4rem !important;
  width: 100% !important;
}
body.pub-home-page .pub-route-field {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  text-align: left !important;
  margin: 0 0 0.35rem !important;
}
body.pub-home-page .pub-route-input,
body.pub-home-page .pub-ac-wrap {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
body.pub-home-page .pub-btn--hero {
  width: 100% !important;
  display: block !important;
}
{
  width: 100% !important;
  max-width: 100% !important;
  margin: 0.75rem 0 0 !important;
}
body.pub-home-page .pub-svc-pills {
  display: none !important;
}

/* Desktop: STILL form first (top), copy below ? do NOT side-by-side flip */
@media (min-width: 900px) {
  body.pub-home-page .pub-hero,
  body.pub-home-page .pub-home-hero,
  body.pub-home-page .pub-hero--quote-first,
  body.pub-home-page .pub-home-hero--clean {
    display: flex !important;
    flex-direction: column !important;
    max-width: 720px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 1.5rem 1.25rem 2rem !important;
  }
  body.pub-home-page .pub-hero__form-wrap,
  body.pub-home-page .pub-home-hero--clean .pub-hero__form-wrap {
    order: 1 !important;
  }
  body.pub-home-page .pub-hero__copy,
  body.pub-home-page .pub-home-hero--clean .pub-hero__copy {
    order: 2 !important;
  }
}

/* COPY1 shell ? text+photo first */
body.pub-home-page .pub-hero__copy { order: 1 !important; }
body.pub-home-page .pub-hero__form-wrap { order: 2 !important; }
body.pub-home-page .pub-home-hero--clean .pub-hero__copy { order: 1 !important; }
body.pub-home-page .pub-home-hero--clean .pub-hero__form-wrap { order: 2 !important; }


/* MID1 shell ? force center */
body.pub-home-page .pub-hero,
body.pub-home-page .pub-home-hero--clean,
body.pub-home-page .pub-hero--copy-first {
  max-width: 560px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  float: none !important;
}
body.pub-home-page .pub-hero__form-wrap,
body.pub-home-page .pub-quote-form--hero {
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
body.pub--book .pub-book-layout,
body.pub--book .pub-wizard,
body.pub--book .pub-page-head--book {
  margin-left: auto !important;
  margin-right: auto !important;
  float: none !important;
}
/* Phone/tablet: single column, no rail under the calendar */
@media (max-width: 959px) {
  body.pub--book .pub-book-layout,
  body.pub--book .pub-wizard,
  body.pub--book .pub-page-head--book {
    max-width: 640px !important;
  }
  body.pub--book .pub-book-layout {
    display: block !important;
  }
  body.pub--book .pub-book-rail,
  body.pub--book .pub-book-layout > .pub-book-rail {
    display: none !important;
  }
}
/* Desktop: wizard + order side-by-side ? NEVER stack the rail under the calendar */
@media (min-width: 960px) {
  body.pub--book .pub-book-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 320px) !important;
    max-width: 1100px !important;
    gap: 1.5rem !important;
    align-items: start !important;
  }
  body.pub--book .pub-wizard {
    display: block !important;
    max-width: none !important;
    width: auto !important;
  }
  body.pub--book .pub-book-rail,
  body.pub--book .pub-book-layout > .pub-book-rail {
    display: block !important;
    max-width: 320px !important;
    width: 100% !important;
  }
  body.pub--book .pub-page-head--book {
    max-width: 1100px !important;
  }
}
@media (min-width: 900px) {
  body.pub-home-page .pub-hero,
  body.pub-home-page .pub-home-hero--clean {
    max-width: 600px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    display: flex !important;
    flex-direction: column !important;
  }
}


/* AC-GLUE1 shell */
.pub-ac-wrap { position: relative !important; overflow: visible !important; }
.pub-ac-menu:not([hidden]),
.pub-ac-menu.pub-ac-menu--glued:not([hidden]) {
  position: absolute !important;
  top: calc(100% + 4px) !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 200 !important;
}
/* FINAL1: was display:none on body menus ? killed address list */
body > .pub-ac-menu { /* allowed */ }
body > .pub-ac-menu.pub-ac-menu--glued { display: block !important; position: absolute !important; }

/* AC-GLUE1 hard: never show orphan menus parked on body */
/* FINAL1: was display:none on body menus ? killed address list */
body > .pub-ac-menu { /* allowed */ }


/* AC-CLICK1 ? rows must receive taps */
.pub-ac-menu .pub-ac-item,
.pub-ac-item {
  pointer-events: auto !important;
  touch-action: manipulation !important;
  cursor: pointer !important;
  -webkit-tap-highlight-color: rgba(37, 99, 235, 0.15);
  min-height: 48px !important;
  position: fixed !important; /* DROP1 */
  z-index: 2 !important;
}
.pub-ac-menu:not([hidden]) {
  pointer-events: auto !important;
}
.pub-ac-item.is-active,
.pub-ac-item:active {
  background: #eff6ff !important;
}


/* IOS1 ? never let AC / overlays block Next or Deliver */
.pub-ac-menu[hidden],
.pub-ac-menu[hidden] * {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  max-height: 0 !important;
  overflow: hidden !important;
}
.pub-btn--hero,
.pub-btn--primary,
button[type="submit"].pub-btn {
  position: relative !important;
  z-index: 50 !important;
  pointer-events: auto !important;
  touch-action: manipulation !important;
  -webkit-user-select: none;
  user-select: none;
}
/* If open-now stuck, still allow form actions */
body.pub-ac-open-now .pub-btn--hero,
body.pub-ac-open-now .pub-quote-form,
body.pub-ac-open-now .pub-route-input,
body.pub-ac-open-now .pub-btn {
  pointer-events: auto !important;
}
/* Kill invisible full-screen blockers left by old AC */
.pub-ac-backdrop[hidden],
.pub-ac-backdrop[aria-hidden="true"] {
  display: none !important;
  pointer-events: none !important;
  opacity: 0 !important;
}
/* Failsafe: page never stuck invisible on Safari */
html.jke-css-ready body,
html:not(.jke-css-wait) body {
  opacity: 1 !important;
}


/* AND1 ? Android + iPhone: Next never covered / blocked */
.pub-btn--hero,
.pub-btn--primary,
button[type="submit"].pub-btn,
#svc-sticky-cta .pub-btn,
#svc-sticky-cta button {
  position: relative !important;
  z-index: 400 !important;
  pointer-events: auto !important;
  touch-action: manipulation !important;
}
.pub-route-input--need {
  border-color: #dc2626 !important;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.2) !important;
}
body.pub-ac-open-now .pub-btn--hero,
body.pub-ac-open-now button[type="submit"] {
  pointer-events: auto !important;
  z-index: 500 !important;
}


/* CAL1 ? joke theatre readable; prices clear after load; item search visible */
body.pub-price-theatre #w-price-theatre,
#w-price-theatre:not([hidden]) {
  display: block !important;
  visibility: visible !important;
  pointer-events: auto !important;
  z-index: 5 !important;
  margin: 0.5rem 0 1rem !important;
  padding: 1.1rem 1rem !important;
  border-radius: 14px !important;
  background: linear-gradient(145deg, #0b1f3a 0%, #1e3a5f 100%) !important;
  color: #f8fafc !important;
  min-height: 120px !important;
}
#w-price-theatre-joke {
  font-size: 1.05rem !important;
  line-height: 1.45 !important;
  font-weight: 600 !important;
  color: #f8fafc !important;
}
body.pub-price-theatre #w-cal-grid {
  /* keep empty under jokes ? no ghost prices */
  min-height: 0 !important;
}
#w-cal-section.is-prices-ready #w-cal-grid {
  display: grid !important;
  visibility: visible !important;
  pointer-events: auto !important;
}
#w-cal-section.is-prices-ready .cal-slot {
  pointer-events: auto !important;
  min-height: 64px !important;
}
.pub-qty {
  display: flex !important;
  align-items: center !important;
  gap: 0.35rem !important;
}
.pub-qty-btn {
  width: 40px !important;
  height: 40px !important;
  min-width: 40px !important;
  border-radius: 10px !important;
  border: 1px solid #cbd5e1 !important;
  background: #fff !important;
  font-size: 1.25rem !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  cursor: pointer !important;
  touch-action: manipulation !important;
  pointer-events: auto !important;
}
.pub-qty-btn--plus {
  background: #fbbf24 !important;
  border-color: #f59e0b !important;
}
.pub-qty-n {
  min-width: 1.5rem !important;
  text-align: center !important;
  font-weight: 800 !important;
  font-size: 1rem !important;
}
#w-search-results.pub-search-results:not([hidden]) {
  display: block !important;
  visibility: visible !important;
  max-height: min(46vh, 320px) !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  border: 2px solid #93c5fd !important;
  border-radius: 12px !important;
  background: #fff !important;
  z-index: 30 !important;
  position: relative !important;
}
.pub-custom-gate__x {
  position: absolute !important;
  top: 0.5rem !important;
  right: 0.55rem !important;
  width: 44px !important;
  height: 44px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #f1f5f9 !important;
  font-size: 1.65rem !important;
  line-height: 1 !important;
  cursor: pointer !important;
  z-index: 5 !important;
  pointer-events: auto !important;
}
.pub-custom-gate__card,
#w-custom-gate .pub-email-gate__card {
  position: relative !important;
  padding-top: 2.4rem !important;
}
#w-custom-gate.pub-email-gate {
  z-index: 2147483600 !important;
}
.pub-custom-gate__lead {
  margin: 0 0 0.75rem !important;
  color: #64748b !important;
  font-size: 0.9rem !important;
}


/* POLISH1 ? item search + cart qty + custom popup polish */
#w-search-results.pub-search-results:not([hidden]) {
  display: block !important;
  visibility: visible !important;
  pointer-events: auto !important;
  max-height: min(48vh, 340px) !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  border: 2px solid #93c5fd !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.14) !important;
  z-index: 40 !important;
  position: relative !important;
  margin: 0.45rem 0 0.85rem !important;
}
.pub-search-row {
  pointer-events: auto !important;
  touch-action: manipulation !important;
  min-height: 52px !important;
}
.pub-qty-btn {
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  font-size: 1.3rem !important;
  font-weight: 800 !important;
  touch-action: manipulation !important;
  pointer-events: auto !important;
  z-index: 2 !important;
}
.pub-custom-gate__x {
  position: absolute !important;
  top: 0.5rem !important;
  right: 0.55rem !important;
  width: 44px !important;
  height: 44px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #f1f5f9 !important;
  font-size: 1.7rem !important;
  cursor: pointer !important;
  z-index: 6 !important;
  pointer-events: auto !important;
}
#w-custom-gate {
  z-index: 2147483600 !important;
}


/* DROP1 ? Deliver-to list always above Next */
body.pub-ac-open-now #w-step1-next,
body.pub-ac-open-now .pub-btn--step1,
body.pub-ac-open-now .pub-step1-cta,
body.pub-ac-open-now .pub-sticky-cta,
body.pub-ac-open-now .jke-sticky-wa {
  z-index: 1 !important;
}
body.pub-ac-open-now #w-step1-next,
body.pub-ac-open-now .pub-btn--step1 {
  opacity: 1 !important;
  pointer-events: auto !important;
}
body.pub-ac-open-now .pub-ac-menu,
body.pub-ac-open-now .pub-ac-menu-addr2,
body.pub-ac-open-now .pub-ac-menu-addr4,
body > .pub-ac-menu-addr4:not([hidden]) {
  position: fixed !important;
  z-index: 2147483646 !important;
  pointer-events: auto !important;
}


/* ===== JKE ADDRESS FINAL1 ? single float list ===== */
#jke-ac-float {
  display: none;
}
#jke-ac-float:not([hidden]) {
  display: block !important;
  position: fixed !important;
  z-index: 2147483647 !important;
  pointer-events: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
  background: #fff !important;
  border: 2px solid #2563eb !important;
  border-radius: 12px !important;
  box-shadow: 0 16px 40px rgba(0,0,0,.3) !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
}
/* hide every OLD address menu forever */
.pub-ac-menu:not(#jke-ac-float),
body > .pub-ac-menu:not(#jke-ac-float),
.pub-ac-menu-addr2:not(#jke-ac-float),
.pub-ac-menu-addr4:not(#jke-ac-float) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
}
/* while list open: Next cannot cover taps */
body.jke-ac-open #w-step1-next,
body.pub-ac-open-now #w-step1-next,
body.jke-ac-open .pub-btn--step1,
body.pub-ac-open-now .pub-btn--step1 {
  z-index: 1 !important;
  opacity: 0.3 !important;
  pointer-events: none !important;
}
body.jke-ac-open .pub-step1-cta,
body.pub-ac-open-now .pub-step1-cta,
body.jke-ac-open .pub-sticky-cta,
body.pub-ac-open-now .pub-sticky-cta {
  z-index: 1 !important;
}
.pub-route-input.is-filled,
.pub-route-input.pub-route-input--pinned {
  border-color: #16a34a !important;
  background: #f0fdf4 !important;
}

/* PREMIUM1 float ? dropdown only, above Next */
#jke-ac-float:not([hidden]) {
  display: block !important;
  position: fixed !important;
  z-index: 2147483647 !important;
  pointer-events: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
}
.pub-ac-menu:not(#jke-ac-float) {
  display: none !important;
}
body.jke-ac-open #w-step1-next,
body.pub-ac-open-now #w-step1-next {
  z-index: 1 !important;
  opacity: 0.3 !important;
  pointer-events: none !important;
}

/* DELIVER1 ? in-flow AC under field on mobile */
.pub-ac-wrap {
  position: relative !important;
  overflow: visible !important;
  z-index: 5;
}
body.jke-ac-open .pub-ac-wrap:has(#jke-ac-float),
body.pub-ac-open-now .pub-ac-wrap:has(#jke-ac-float) {
  z-index: 100050 !important;
}
#jke-ac-float {
  box-sizing: border-box !important;
}
label.pub-route-field {
  overflow: visible !important;
}
body.jke-ac-open #w-step1-next,
body.pub-ac-open-now #w-step1-next {
  visibility: hidden !important;
  pointer-events: none !important;
}

/* SNAP1 taller multi-row dropdown */
#jke-ac-float {
  max-height: min(45vh, 340px) !important;
}
#jke-ac-float button {
  min-height: 48px !important;
}

/* ============================================================
   DESKTOP RECOVERY 20260730desk1
   Undo MID1 / FORM1 / COPY1 phone-center hacks that forced
   homepage to a 560?720px centered column on desktop.
   Desktop = wide 2-column hero + visible man/van photo.
   ============================================================ */
@media (min-width: 900px) {
  body.pub-home-page .pub-hero,
  body.pub-home-page .pub-home-hero,
  body.pub-home-page .pub-hero--quote-first,
  body.pub-home-page .pub-hero--copy-first,
  body.pub-home-page .pub-home-hero--clean,
  .pub-home--tight .pub-home-hero,
  .pub-home--tight .pub-hero {
    display: grid !important;
    grid-template-columns: minmax(300px, 1.05fr) minmax(340px, 0.95fr) !important;
    flex-direction: unset !important;
    max-width: 1120px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 1.75rem 1.5rem 2rem !important;
    gap: 1.75rem 2.25rem !important;
    align-items: start !important;
    box-sizing: border-box !important;
  }

  /* Copy + photo LEFT ? quote form RIGHT */
  body.pub-home-page .pub-hero__copy,
  body.pub-home-page .pub-home-hero--clean .pub-hero__copy,
  body.pub-home-page .pub-hero--quote-first .pub-hero__copy,
  body.pub-home-page .pub-hero--copy-first .pub-hero__copy,
  .pub-home--tight .pub-hero__copy {
    order: 1 !important;
    max-width: none !important;
    width: auto !important;
    margin: 0 !important;
    float: none !important;
    text-align: left !important;
  }

  body.pub-home-page .pub-hero__form-wrap,
  body.pub-home-page .pub-home-hero--clean .pub-hero__form-wrap,
  body.pub-home-page .pub-hero--quote-first .pub-hero__form-wrap,
  body.pub-home-page .pub-hero--copy-first .pub-hero__form-wrap,
  .pub-home--tight .pub-hero__form-wrap {
    order: 2 !important;
    max-width: none !important;
    width: auto !important;
    margin: 0 !important;
    float: none !important;
    position: sticky;
    top: 5.25rem;
  }

  body.pub-home-page .pub-quote-form--hero {
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
  }

  /* Hero man/van photo MUST show on desktop */
  

  img img {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center 20% !important;
  }

  body.pub-home-page .pub-strip--home {
    max-width: 1120px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    grid-template-columns: repeat(4, 1fr) !important;
  }

  body.pub-home-page .pub-cards--home {
    grid-template-columns: repeat(3, 1fr) !important;
  }

  body.pub-home-page .pub-home-inner,
  body.pub-home-page .pub-section .pub-home-inner {
    max-width: 1120px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    width: 100% !important;
  }

  body.pub-home-page .pub-steps--home {
    grid-template-columns: 1fr 1fr !important;
  }

  body.pub-home-page .pub-moves--home {
    grid-template-columns: repeat(4, 1fr) !important;
  }

  body.pub-home-page .pub-feature-home {
    grid-template-columns: 1.1fr 0.9fr !important;
  }

  body.pub-home-page .pub-cta-band--home .pub-btn {
    width: auto !important;
    max-width: none !important;
  }
}

/* ============================================================
   HERO PHOTO HARD FIX 20260730photo2
   Bug: absolute-positioned <img> + height:auto !important on
   <figure> collapses the box to 0px ? "image not showing".
   Fix: give the figure a real pixel height so cover always paints.
   ============================================================ */
.pub-hero__photo {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  width: 100% !important;
  max-width: 100% !important;
  /* REAL height ? never auto alone with absolute children */
  height: 260px !important;
  min-height: 220px !important;
  max-height: 400px !important;
  aspect-ratio: auto !important;
  margin: 0.85rem 0 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border-radius: 14px !important;
  border: 1px solid #e2e8f0 !important;
  background: #0b1f3a !important;
  box-shadow: 0 8px 24px rgba(11, 31, 58, 0.14) !important;
}
img img,
.pub-hero__photo img {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center 40% !important;
  border: 0 !important;
}
@media (min-width: 900px) {
  .pub-hero__photo {
    height: 320px !important;
    min-height: 280px !important;
    max-height: 380px !important;
  }
}


/* STORY_FIRST_ORDER ? paragraph+images before booking form */
.pub-hero--story-first .pub-hero__copy,
.pub-home--tight .pub-hero__copy,
.pub-hero--quote-first .pub-hero__copy {
  order: 1 !important;
}
.pub-hero--story-first .pub-hero__form-wrap,
.pub-home--tight .pub-hero__form-wrap,
.pub-hero--quote-first .pub-hero__form-wrap {
  order: 2 !important;
}
@media (max-width: 899px) {
  .pub-hero--story-first .pub-hero__form-wrap,
  .pub-hero--quote-first .pub-hero__form-wrap,
  .pub-home--tight .pub-hero__form-wrap {
    order: 2 !important;
  }
  .pub-hero--story-first .pub-hero__copy,
  .pub-hero--quote-first .pub-hero__copy,
  .pub-home--tight .pub-hero__copy {
    order: 1 !important;
  }
}

/* HOME_2COL_BOOK ? desktop: picture/copy LEFT, booking form RIGHT (like a book) */
@media (min-width: 900px) {
  body.pub-home-page .pub-hero,
  body.pub-home-page .pub-hero.pub-hero--quote-first,
  body.pub-home-page .pub-home-hero,
  body.pub-home-page .pub-hero--quote-first.pub-home-hero {
    display: grid !important;
    flex-direction: unset !important;
    grid-template-columns: minmax(300px, 1.05fr) minmax(340px, 0.95fr) !important;
    gap: 2rem 2.75rem !important;
    align-items: start !important;
    max-width: 1120px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    float: none !important;
  }
  body.pub-home-page .pub-hero__copy,
  body.pub-home-page .pub-hero--quote-first .pub-hero__copy,
  .pub-home--tight .pub-hero__copy {
    order: 1 !important;
    width: auto !important;
    max-width: none !important;
    float: none !important;
  }
  body.pub-home-page .pub-hero__form-wrap,
  body.pub-home-page .pub-hero--quote-first .pub-hero__form-wrap,
  .pub-home--tight .pub-hero__form-wrap {
    order: 2 !important;
    width: auto !important;
    max-width: none !important;
    float: none !important;
  }
  body.pub-home-page .pub-quote-form--hero {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }
  
  img img {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center 28% !important;
  }
}
@media (max-width: 899px) {
  body.pub-home-page .pub-hero,
  body.pub-home-page .pub-hero.pub-hero--quote-first,
  body.pub-home-page .pub-home-hero {
    display: flex !important;
    flex-direction: column !important;
    max-width: 100% !important;
    width: 100% !important;
  }
  body.pub-home-page .pub-hero__copy {
    order: 1 !important;
    width: 100% !important;
  }
  body.pub-home-page .pub-hero__form-wrap {
    order: 2 !important;
    width: 100% !important;
  }
}

/* PHONE_STORY_FIRST_V3 ? story then wizard on phone; desktop 2-col */
@media (max-width: 899px) {
  body.pub.pub-home-page .pub-home.pub-home--tight .pub-hero.pub-hero--quote-first.pub-home-hero,
  body.pub.pub-home-page .pub-hero.pub-hero--quote-first.pub-home-hero {
    display: flex !important;
    flex-direction: column !important;
    max-width: 100% !important;
    width: 100% !important;
  }
  body.pub.pub-home-page .pub-home.pub-home--tight .pub-hero.pub-hero--quote-first .pub-hero__copy,
  body.pub.pub-home-page .pub-hero.pub-hero--quote-first .pub-hero__copy,
  body.pub.pub-home-page .pub-home--tight .pub-hero--quote-first .pub-hero__copy,
  body.pub.pub-home-page .pub-hero__copy {
    order: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  body.pub.pub-home-page .pub-home.pub-home--tight .pub-hero.pub-hero--quote-first .pub-hero__form-wrap,
  body.pub.pub-home-page .pub-hero.pub-hero--quote-first .pub-hero__form-wrap,
  body.pub.pub-home-page .pub-home--tight .pub-hero--quote-first .pub-hero__form-wrap,
  body.pub.pub-home-page .pub-hero__form-wrap {
    order: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}
@media (min-width: 900px) {
  body.pub.pub-home-page .pub-hero.pub-hero--quote-first.pub-home-hero {
    display: grid !important;
    grid-template-columns: minmax(300px, 1.05fr) minmax(340px, 0.95fr) !important;
    gap: 2rem 2.75rem !important;
    max-width: 1120px !important;
    width: 100% !important;
  }
  body.pub.pub-home-page .pub-hero.pub-hero--quote-first .pub-hero__copy {
    order: 1 !important;
    width: auto !important;
    max-width: none !important;
  }
  body.pub.pub-home-page .pub-hero.pub-hero--quote-first .pub-hero__form-wrap {
    order: 2 !important;
    width: auto !important;
    max-width: none !important;
  }
}

/* CONTINUE_ALWAYS_WORKS ? never block quote CTA because of address list */
body.pub-ac-open-now #w-step1-next,
body.pub-ac-open-now .pub-btn--step1,
body.pub-ac-open-now .pub-step1-cta,
body.pub-ac-open-now .pub-btn--hero,
body.pub-ac-open-now button[type="submit"],
body.pub-ac-open-now .pub-quote-form .pub-btn,
body.pub-ac-open-now .pub-sticky-cta,
body.pub-ac-open-now .pub-sticky-cta .pub-btn {
  pointer-events: auto !important;
  opacity: 1 !important;
  z-index: 2147483000 !important;
  position: relative !important;
}
#jke-from-to-list {
  position: relative;
  z-index: 20;
  max-height: min(40vh, 280px);
}
/* A2: phone list in-flow under field — not body-fixed full-bleed */
@media (max-width: 760px) {
  body.jke-ac-kb #jke-from-to-list:not([hidden]),
  body.jke-ac-open #jke-from-to-list:not([hidden]),
  #jke-from-to-list:not([hidden]) {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    z-index: 40 !important;
    margin: 6px 0 10px 0 !important;
    background: #fff !important;
    border: 2px solid #2563eb !important;
    border-radius: 12px !important;
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.28) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    pointer-events: auto !important;
    visibility: visible !important;
    opacity: 1 !important;
    display: block !important;
  }
  .pub-route-field.jke-ac-field-open,
  label.pub-route-field.jke-ac-field-open,
  .pub-ac-wrap.jke-ac-field-open {
    position: relative !important;
    z-index: 45 !important;
  }
  body.jke-ac-kb #w-step1-next,
  body.jke-ac-open #w-step1-next {
    visibility: hidden !important;
    pointer-events: none !important;
  }
}

/* BASKET_CLEAR1 ? client always sees selected items */
.pub-items-basket {
  background: #fff !important;
  border: 2px solid #0b1f3a !important;
  border-radius: 14px !important;
  padding: 0.75rem 0.85rem !important;
  box-shadow: 0 6px 20px rgba(11, 31, 58, 0.08) !important;
}
.pub-items-basket__head {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  margin-bottom: 0.5rem !important;
  gap: 0.5rem !important;
}
.pub-items-basket__head strong {
  font-size: 1.02rem !important;
  color: #0b1f3a !important;
}
#w-basket-count {
  font-weight: 800 !important;
  color: #047857 !important;
  background: #ecfdf5 !important;
  border: 1px solid #86efac !important;
  border-radius: 999px !important;
  padding: 0.2rem 0.55rem !important;
  font-size: 0.8rem !important;
}
.pub-cart-line {
  display: flex !important;
  align-items: center !important;
  gap: 0.45rem !important;
  padding: 0.5rem 0.15rem !important;
  border-bottom: 1px solid #e2e8f0 !important;
  min-height: 48px !important;
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}
.pub-cart-line:last-child { border-bottom: none !important; }
.pub-cart-line__thumb {
  flex: 0 0 auto !important;
  width: 36px !important;
  height: 36px !important;
  object-fit: cover !important;
  border-radius: 8px !important;
}
.pub-cart-line__name {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  font-weight: 700 !important;
  color: #0f172a !important;
  font-size: 0.9rem !important;
  line-height: 1.3 !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  overflow: hidden !important;
}
.pub-cart-line .pub-qty {
  flex: 0 0 auto !important;
  flex-shrink: 0 !important;
  margin-left: auto !important;
}
.pub-items-basket,
.pub-items-basket__list {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
  box-sizing: border-box !important;
}
@media (max-width: 639px) {
  .pub-items-basket {
    padding: 0.7rem 0.65rem !important;
  }
  .pub-items-basket .pub-qty-btn,
  .pub-cart-line .pub-qty-btn {
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    min-height: 36px !important;
    flex-shrink: 0 !important;
  }
  .pub-items-basket .pub-qty-n,
  .pub-cart-line .pub-qty-n {
    min-width: 1.15rem !important;
    font-size: 0.9rem !important;
  }
  .pub-items-basket .pub-qty,
  .pub-cart-line .pub-qty {
    gap: 0.25rem !important;
  }
}

.pub-items-basket {
  position: relative !important;
}
.pub-items-basket__flash {
  position: absolute !important;
  left: 0.5rem !important;
  right: 0.5rem !important;
  top: 0.45rem !important;
  z-index: 5 !important;
  margin: 0 !important;
  padding: 0.4rem 0.65rem !important;
  background: #ecfdf5 !important;
  border: 1px solid #86efac !important;
  border-radius: 10px !important;
  color: #065f46 !important;
  font-weight: 800 !important;
  font-size: 0.82rem !important;
  line-height: 1.25 !important;
  pointer-events: none !important;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.12) !important;
}
.pub-items-basket__flash[hidden] { display: none !important; }
/* Kill shake ? felt like a layout glitch on add */
.pub-items-basket.is-nudge {
  animation: none !important;
}
.pub-items-basket.is-empty {
  border-style: dashed !important;
  border-color: #94a3b8 !important;
  background: #f8fafc !important;
}
.pub-sticky-basket {
  max-width: 520px;
  margin: 0 auto;
  padding: 0.45rem 0.85rem 0.25rem;
  max-height: 7.5rem;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  border-bottom: 1px solid #e2e8f0;
  background: #f8fafc;
}
.pub-sticky-basket[hidden] { display: none !important; }
.pub-sticky-basket__head {
  font-size: 0.75rem;
  font-weight: 800;
  color: #0b1f3a;
  margin: 0 0 0.35rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.pub-sticky-basket__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.pub-sticky-basket__chip {
  display: inline-flex;
  align-items: center;
  background: #fff;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  padding: 0.28rem 0.55rem;
  font-size: 0.8rem;
  color: #0f172a;
}
.pub-sticky-basket__chip strong { font-weight: 800; }
.pub-sticky-flash {
  max-width: 520px;
  margin: 0 auto;
  padding: 0.4rem 0.85rem;
  background: #ecfdf5;
  color: #065f46;
  font-weight: 800;
  font-size: 0.88rem;
  border-bottom: 1px solid #86efac;
}
.pub-sticky-flash[hidden] { display: none !important; }

/* BASKET2: items step ? never show dock pills / flash (all widths) */
body.pub-step-2.pub-step2-load #w-sticky-basket,
body.pub-step-2.pub-step2-load #w-sticky-flash,
body.pub-step-2.pub-step2-load .pub-sticky-basket,
body.pub-step-2.pub-step2-load .pub-sticky-flash {
  display: none !important;
  height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
}
@media (max-width: 899px) {
  body.pub-step-2.pub-step2-load .pub-sticky-cta__price {
    font-size: 0.9rem !important;
    font-weight: 800 !important;
    color: #0f172a !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    text-align: center !important;
  }
  body.pub-step-2.pub-step2-load .pub-book-layout {
    padding-bottom: 5.5rem !important;
  }
}

/* Phone: basket sticky under header so selection always visible */
@media (max-width: 639px) {
  body.pub-step-2.pub-step2-load .pub-items-layout {
    display: flex !important;
    flex-direction: column !important;
  }
  body.pub-step-2.pub-step2-load .pub-items-basket {
    order: -1 !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 40 !important;
    margin: 0 0 0.65rem !important;
    max-height: min(34vh, 240px) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
  body.pub-step-2.pub-step2-load .pub-items-main {
    order: 1 !important;
  }
  body.pub-step-2.pub-step2-load .pub-items-basket.is-empty #w-cart {
    display: block !important;
  }
  body.pub-step-2.pub-step2-load .pub-book-layout {
    padding-bottom: 5.5rem !important;
  }
  body.pub-step-2.pub-step2-load .pub-sticky-cta {
    padding-top: 0.35rem !important;
  }
  body.pub-step-2.pub-step2-load #w-sticky-basket,
  body.pub-step-2.pub-step2-load #w-sticky-flash {
    display: none !important;
  }
  body.pub-step-2.pub-step2-load .pub-sticky-cta__inner {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0.35rem !important;
  }
  body.pub-step-2.pub-step2-load .pub-sticky-cta__price {
    font-size: 0.9rem !important;
    font-weight: 800 !important;
    color: #0f172a !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    text-align: center !important;
  }
}

/* ASM_QTY_CLICK1 */
.pub-extra-qty .pub-qty-btn,
.pub-extra-qty__ctrl .pub-qty-btn,
#w-assembly-row button,
#w-disassembly-row button {
  pointer-events: auto !important;
  touch-action: manipulation !important;
  z-index: 6 !important;
  position: relative !important;
  min-width: 44px !important;
  min-height: 44px !important;
  cursor: pointer !important;
}
.pub-extra-qty {
  position: relative !important;
  z-index: 4 !important;
}

/* GET_PRICE_FIX1 ? killed: phone item-picking uses sticky CTA only */
@media (max-width: 899px) {
  body.pub-step-2.pub-step2-load .pub-wizard-panel--what > .pub-wizard-actions,
  body.pub-step-2.pub-step2-load .pub-wizard-actions {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
    border: 0 !important;
    box-shadow: none !important;
  }
}
#w-proceed-book,
#w-proceed-book-sticky,
.pub-sticky-cta .pub-btn {
  pointer-events: auto !important;
  opacity: 1 !important;
  cursor: pointer !important;
  z-index: 96 !important;
  position: relative !important;
  touch-action: manipulation !important;
}
#w-proceed-book[disabled],
#w-proceed-book-sticky[disabled] {
  pointer-events: auto !important;
  opacity: 0.85 !important;
}
.pub-email-gate:not([hidden]) {
  display: flex !important;
  z-index: 2147483000 !important;
}

/* CAL_TRUST1 ? day picker chrome must win over shell */
.pub-step2-when-head {
  background: #fff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 14px !important;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.06) !important;
  padding: 0.85rem 0.9rem 0.95rem !important;
}
button.pub-step2-edit-items,
.pub-step2-edit-items.pub-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  padding: 0.45rem 0.9rem !important;
  border: 1.5px solid #cbd5e1 !important;
  border-radius: 10px !important;
  background: #f8fafc !important;
  color: #1e3a5f !important;
  font-weight: 700 !important;
  font-size: 0.9rem !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  box-shadow: none !important;
}
.pub-day-trust {
  list-style: none !important;
  margin: 0 !important;
  padding: 0.75rem 0.9rem !important;
  display: grid !important;
  gap: 0.55rem !important;
  background: linear-gradient(165deg, #eff6ff 0%, #f0fdf4 100%) !important;
  border: 1px solid #bfdbfe !important;
  border-radius: 12px !important;
  font-size: 0.95rem !important;
  line-height: 1.4 !important;
  color: #0f172a !important;
}
.pub-day-trust li strong {
  display: inline !important;
  font-size: 1.05rem !important;
  font-weight: 900 !important;
  color: #0b1f3a !important;
  letter-spacing: -0.01em !important;
}
.pub-day-trust--inline {
  font-weight: 800 !important;
  font-size: 0.92rem !important;
  color: #0b1f3a !important;
}
body.pub-step2-when .pub-cal .pub-wizard-subh,
body.pub-step2-when .pub-cal .pub-cal-ready__title {
  display: none !important;
}
body.pub-step2-when .cal-slot {
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06) !important;
  border-radius: 14px !important;
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%) !important;
}
@media (max-width: 720px) {
  body.pub-step2-when .pub-cal-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* CAL_BELOW1 ? stop order ticket stacking under calendar; fix squashed map */
@media (max-width: 959px) {
  body.pub--book .pub-book-rail,
  body.pub--book .pub-book-layout > .pub-book-rail {
    display: none !important;
  }
  body.pub--book .pub-book-layout {
    display: block !important;
    max-width: 640px !important;
    grid-template-columns: none !important;
  }
}
@media (min-width: 960px) {
  body.pub--book .pub-book-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 320px) !important;
    max-width: 1100px !important;
    gap: 1.5rem !important;
    align-items: start !important;
  }
  body.pub--book .pub-wizard {
    display: block !important;
    max-width: none !important;
    width: auto !important;
  }
  body.pub--book .pub-book-rail,
  body.pub--book .pub-book-layout > .pub-book-rail {
    display: block !important;
    position: sticky !important;
    top: 1rem !important;
    max-width: 320px !important;
    width: 100% !important;
  }
}
.pub-route-map-wrap--order {
  overflow: hidden !important;
  border-radius: 12px !important;
  margin: 0.5rem 0 0.75rem !important;
}
.pub-route-map-wrap--order .pub-route-strip {
  display: block !important;
  padding: 0.35rem 0.5rem 0.25rem !important;
  background: #fff !important;
  border-bottom: 1px solid #e2e8f0 !important;
}
.pub-route-map-wrap--order .pub-route-strip__text {
  margin: 0.2rem 0 0 !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  color: #0f172a !important;
  line-height: 1.3 !important;
}
#w-order-map-slot,
.pub-route-map-wrap--order .pub-route-map-slot {
  min-height: 200px !important;
  height: 200px !important;
  max-height: 200px !important;
  overflow: hidden !important;
  background: #dbe4ee !important;
  position: relative !important;
}
.pub-route-map-wrap--order .pub-route-map,
#w-order-map-slot .pub-route-map {
  display: block !important;
  height: 200px !important;
  min-height: 200px !important;
  max-height: 200px !important;
  width: 100% !important;
  position: relative !important;
  z-index: 1 !important;
  overflow: hidden !important;
}
.pub-route-map-wrap--order .leaflet-container,
#w-order-map-slot .leaflet-container {
  width: 100% !important;
  height: 100% !important;
  background: #dbe4ee !important;
  transform: none !important;
}
.pub-route-map-wrap--order .leaflet-tile-pane,
#w-order-map-slot .leaflet-tile-pane {
  opacity: 1 !important;
}
.pub-route-map-wrap--order .leaflet-tile,
#w-order-map-slot .leaflet-tile {
  max-width: none !important;
  max-height: none !important;
}
.pub-route-map-wrap--order .leaflet-marker-pane,
#w-order-map-slot .leaflet-marker-pane,
.pub-map-pin-wrap {
  z-index: 650 !important;
}
.pub-map-pin {
  position: relative !important;
  filter: drop-shadow(0 2px 4px rgba(15, 23, 42, 0.35));
}
.pub-route-map-wrap--order .pub-map-pin__name {
  max-width: 7.5rem !important;
  font-size: 0.62rem !important;
  font-weight: 800 !important;
  background: #fff !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 6px !important;
  padding: 0.1rem 0.3rem !important;
}
.pub-route-map-wrap--order .leaflet-overlay-pane,
#w-order-map-slot .leaflet-overlay-pane {
  z-index: 400 !important;
}
.pub-route-map-wrap--order:not([hidden]),
#w-order-map-wrap:not([hidden]) {
  display: block !important;
}
/* Below calendar: selected price + any-date must stay full width in wizard */
body.pub-step2-when #w-cal-selected,
body.pub-prices-only #w-cal-selected {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  margin-top: 0.75rem !important;
  padding: 0.9rem 1rem !important;
  border-radius: 14px !important;
  border: 2px solid #93c5fd !important;
  background: #f0f9ff !important;
}
body.pub-step2-when .pub-cal-any-row,
body.pub-prices-only .pub-cal-any-row {
  display: flex !important;
  flex-wrap: wrap !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
body.pub-step2-when .pub-cal-any-input,
body.pub-prices-only .pub-cal-any-input {
  width: 100% !important;
  max-width: 100% !important;
  min-height: 48px !important;
}

/* RAIL_BASKET1 ? live basket under map on desktop order rail */
.pub-rail-basket-slot:empty {
  display: none !important;
}
body.pub-rail-has-basket .pub-rail-basket-slot {
  display: block !important;
  margin: 0.55rem 0 0.75rem !important;
}
body.pub-rail-has-basket .pub-rail-basket-slot .pub-items-basket {
  margin: 0 !important;
  max-height: min(42vh, 360px) !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  position: relative !important;
  top: auto !important;
  box-shadow: none !important;
}
body.pub-rail-has-basket .order-line[data-order="load"] {
  display: none !important;
}
@media (max-width: 959px) {
  .pub-rail-basket-slot {
    display: none !important;
  }
}

/* ITEMS_WIDE1 ? basket was col1 (wide), floors/extras col2 (~280px) ? squashed right */
@media (min-width: 640px) {
  body.pub--book .pub-items-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 280px) !important;
    gap: 1.15rem !important;
    align-items: start !important;
  }
  body.pub--book .pub-items-layout > .pub-items-main {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
  }
  body.pub--book .pub-items-layout > .pub-items-basket {
    grid-column: 2 !important;
    grid-row: 1 !important;
  }
  body.pub--book .pub-access-card,
  body.pub--book .pub-access-block,
  body.pub--book .pub-extra-ticks,
  body.pub--book .pub-extra-qty,
  body.pub--book #w-assembly-row,
  body.pub--book #w-disassembly-row {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
  }
}
/* Desktop load: basket lives in rail ? wizard column is full width for picker/floors */
@media (min-width: 960px) {
  body.pub--book.pub-step-2.pub-step2-load .pub-items-layout,
  body.pub-rail-has-basket .pub-items-layout {
    display: block !important;
    grid-template-columns: none !important;
  }
  body.pub--book.pub-step-2.pub-step2-load .pub-items-main,
  body.pub-rail-has-basket .pub-items-main {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    grid-column: auto !important;
  }
  body.pub--book.pub-step-2.pub-step2-load .pub-book-layout {
    max-width: 1180px !important;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 320px) !important;
  }
  body.pub--book.pub-step-2.pub-step2-load .pub-wizard {
    max-width: none !important;
    width: 100% !important;
    min-width: 0 !important;
  }
}



/* EMBED1 ? on-site Stripe Payment Element sheet */
.pub-pay-sheet {
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147483600 !important;
  display: flex !important;
  align-items: flex-end !important;
  justify-content: center !important;
  padding: 0 !important;
}
.pub-pay-sheet[hidden] { display: none !important; }
.pub-pay-sheet__backdrop {
  position: absolute !important;
  inset: 0 !important;
  background: rgba(15, 23, 42, 0.55) !important;
}
.pub-pay-sheet__panel {
  position: relative !important;
  z-index: 1 !important;
  width: min(520px, 100%) !important;
  max-height: min(92vh, 900px) !important;
  overflow: auto !important;
  -webkit-overflow-scrolling: touch !important;
  background: #fff !important;
  border-radius: 18px 18px 0 0 !important;
  padding: 1.1rem 1.15rem 1.4rem !important;
  box-shadow: 0 -12px 40px rgba(15, 23, 42, 0.22) !important;
  box-sizing: border-box !important;
}
@media (min-width: 720px) {
  .pub-pay-sheet { align-items: center !important; padding: 1rem !important; }
  .pub-pay-sheet__panel {
    border-radius: 16px !important;
    max-height: min(88vh, 820px) !important;
  }
}
.pub-pay-sheet__close {
  position: absolute !important;
  top: 0.55rem !important;
  right: 0.65rem !important;
  width: 40px !important;
  height: 40px !important;
  border: 0 !important;
  background: #f1f5f9 !important;
  border-radius: 999px !important;
  font-size: 1.4rem !important;
  line-height: 1 !important;
  cursor: pointer !important;
  color: #0b1f3a !important;
}
.pub-pay-sheet__panel h3 {
  margin: 0 2.2rem 0.35rem 0 !important;
  font-size: 1.25rem !important;
  color: #0b1f3a !important;
}
.pub-pay-sheet__amount {
  margin: 0 0 0.65rem !important;
  font-size: 1.35rem !important;
  font-weight: 900 !important;
  color: #0b1f3a !important;
}
.pub-payment-element {
  margin: 0.75rem 0 1rem !important;
  min-height: 180px !important;
}
.pub-payment-loading {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 160px !important;
  padding: 1.25rem !important;
  color: #475569 !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  background: linear-gradient(180deg, #f8fafc, #fff) !important;
  border: 1px dashed #cbd5e1 !important;
  border-radius: 12px !important;
}
.pub-pay-sheet__confirm {
  width: 100% !important;
  min-height: 52px !important;
  font-size: 1.05rem !important;
}
.pub-pay-sheet__confirm:disabled {
  opacity: 0.65 !important;
  cursor: wait !important;
}
body.pub-pay-open { overflow: hidden !important; }

/* Selected day must be obvious on phone + desktop */
.cal-slot.is-selected {
  border: 3px solid #0b1f3a !important;
  background: #dbeafe !important;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.35), 0 10px 22px rgba(11, 31, 58, 0.16) !important;
  transform: translateY(-2px) scale(1.02) !important;
  position: relative !important;
  z-index: 3 !important;
}
.cal-slot.is-selected .cal-slot__day {
  color: #0b1f3a !important;
  font-weight: 900 !important;
}
.cal-slot.is-selected::after {
  content: "Selected" !important;
  display: block !important;
  margin-top: 0.35rem !important;
  font-size: 0.68rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  color: #1d4ed8 !important;
}
.cal-slot.is-best.is-selected {
  border-color: #15803d !important;
  background: #bbf7d0 !important;
  box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.35), 0 10px 22px rgba(21, 128, 61, 0.18) !important;
}
.cal-slot.is-best.is-selected::after {
  color: #166534 !important;
}

/* HOME_WIZ1 — hide duplicate CTAs only; keep hero photo */
body.pub-home-page .pub-hero__ctas {
  display: none !important;
}
body.pub-home-page .pub-hero__form-wrap {
  width: 100% !important;
  max-width: 640px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ========== PHONEFIX1 ? Samsung / phone wizard must stay tappable ========== */
@media (max-width: 639px) {
  /* Single column ? rail never steals width */
  body.pub--book .pub-book-layout {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 0.85rem 7.5rem !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
  }
  body.pub--book .pub-wizard {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    float: none !important;
  }
  body.pub--book .pub-book-rail {
    display: none !important;
  }

  /* Restore in-panel Continue (sticky alone was leaving phones stuck) */
  body.pub-step-2 .pub-wizard-panel[data-panel="2"] > .pub-wizard-actions,
  body.pub-step-2 .pub-wizard-actions {
    display: flex !important;
    visibility: visible !important;
    height: auto !important;
    max-height: none !important;
    margin: 1rem 0 0.5rem !important;
    padding: 0.25rem 0 !important;
    overflow: visible !important;
    pointer-events: auto !important;
    gap: 0.5rem !important;
    flex-wrap: wrap !important;
  }
  body.pub-step-2 #w-proceed-book,
  body.pub-step-2 #w-proceed-book-sticky,
  body.pub-step-2 .pub-sticky-cta .pub-btn {
    pointer-events: auto !important;
    opacity: 1 !important;
    min-height: 52px !important;
    width: 100% !important;
    z-index: 2147483000 !important;
    position: relative !important;
    touch-action: manipulation !important;
  }
  body.pub-step-2 .pub-sticky-cta:not([hidden]) {
    display: block !important;
    pointer-events: auto !important;
    z-index: 2147482500 !important;
  }

  /* Step 3: clean pay stack, no leftover sticky/overview chrome */
  body.pub-step-3 .pub-sticky-cta {
    display: none !important;
  }
  body.pub-step-3 .pub-wizard-panel[data-panel="3"] {
    display: block !important;
    visibility: visible !important;
    pointer-events: auto !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
  body.pub-step-3 #w-pay,
  body.pub-step-3 .pub-wizard-actions .pub-btn {
    pointer-events: auto !important;
    opacity: 1 !important;
    min-height: 52px !important;
    touch-action: manipulation !important;
    z-index: 20 !important;
    position: relative !important;
  }
  body.pub-step-3 .pub-route-locked {
    width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Kill stuck address float covering the whole screen */
  body.pub--book:not(.pub-ac-open-now):not(.jke-ac-open) #jke-ac-float,
  body.pub--book:not(.pub-ac-open-now):not(.jke-ac-open) .pub-ac-menu,
  body.pub-step-2 #jke-ac-float[hidden],
  body.pub-step-3 #jke-ac-float,
  body.pub-step-3 .pub-ac-menu {
    display: none !important;
    pointer-events: none !important;
    visibility: hidden !important;
    height: 0 !important;
    max-height: 0 !important;
    opacity: 0 !important;
  }

  /* Pay sheet above WhatsApp sticky / cookie UI */
  body.pub-pay-open .pub-pay-sheet {
    display: flex !important;
    z-index: 2147483646 !important;
  }
  body.pub-pay-open .jke-sticky-wa,
  body.pub-pay-open .pub-sticky-cta,
  body.pub-pay-open .pub-cookie-banner,
  body.pub-pay-open #cookie-banner {
    display: none !important;
  }
  .pub-pay-sheet__panel {
    max-height: min(90dvh, 900px) !important;
    padding-bottom: calc(1.2rem + env(safe-area-inset-bottom, 0px)) !important;
  }
}

/* Desktop: keep prior action-hide only off phone */
@media (min-width: 640px) and (max-width: 899px) {
  body.pub-step-2.pub-step2-load .pub-wizard-panel--what > .pub-wizard-actions {
    display: flex !important;
  }
}

/* ========== WIZARD_CENTER_PHONE ? home quote centered; /book FULL WIDTH ========== */
@media (max-width: 899px) {
  body.pub-home-page .pub-hero,
  body.pub-home-page .pub-home-hero,
  body.pub-home-page .pub-hero--quote-first,
  body.pub-home-page .pub-home-hero--clean {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    box-sizing: border-box !important;
  }
  body.pub-home-page .pub-hero__copy,
  body.pub-home-page .pub-hero__form-wrap,
  body.pub-home-page #home-quote-wizard,
  body.pub-home-page .pub-quote-form--hero {
    width: 100% !important;
    max-width: min(440px, 100%) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    float: none !important;
    box-sizing: border-box !important;
  }
  body.pub-home-page .pub-hero__copy { text-align: center !important; }

  /* /book full phone width ? never crush items/calendar to 420px */
  body.pub--book .pub-main {
    width: 100% !important;
    max-width: 100% !important;
  }
  body.pub--book .pub-page-head--book {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0.75rem 0.9rem 0.4rem !important;
    text-align: left !important;
    box-sizing: border-box !important;
  }
  body.pub--book .pub-book-layout {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0 0.9rem 8rem !important;
    box-sizing: border-box !important;
  }
  body.pub--book .pub-wizard {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    float: none !important;
    transform: none !important;
    padding: 0 !important;
  }
  body.pub--book .pub-book-rail { display: none !important; }
}

/* ========== PHONE_ITEMS_OK ? item picking usable on Samsung ========== */
@media (max-width: 639px) {
  body.pub--book.pub-step-2.pub-step2-load .pub-book-layout,
  body.pub--book.pub-step-2.pub-step2-when .pub-book-layout {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important;
    padding-bottom: 8.5rem !important;
  }
  body.pub--book.pub-step-2 .pub-wizard,
  body.pub--book.pub-step-2 .pub-wizard-panel[data-panel="2"] {
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
  }
  body.pub--book.pub-step-2.pub-step2-load .pub-items-layout {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.65rem !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  body.pub--book.pub-step-2.pub-step2-load .pub-items-basket {
    order: -1 !important;
    width: 100% !important;
    max-width: 100% !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 50 !important;
    max-height: min(30vh, 200px) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    margin: 0 0 0.5rem !important;
  }
  body.pub--book.pub-step-2.pub-step2-load .pub-items-main {
    order: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  body.pub--book.pub-step-2 .pub-cat-tabs {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    gap: 0.4rem !important;
    width: 100% !important;
  }
  body.pub--book.pub-step-2 .pub-cat-tab {
    flex: 0 0 auto !important;
    min-height: 40px !important;
    white-space: nowrap !important;
  }
  body.pub--book.pub-step-2 .pub-chips {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.4rem !important;
    width: 100% !important;
  }
  body.pub--book.pub-step-2 .pub-chip,
  body.pub--book.pub-step-2 .pub-qty-btn {
    min-height: 44px !important;
    touch-action: manipulation !important;
    pointer-events: auto !important;
  }
  body.pub--book.pub-step-2 #w-item-search {
    width: 100% !important;
    min-height: 48px !important;
    font-size: 16px !important;
  }
  body.pub--book.pub-step-2 .pub-sticky-cta:not([hidden]) {
    display: block !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    z-index: 2147482500 !important;
    pointer-events: auto !important;
  }
  body.pub--book.pub-step-2 .pub-sticky-cta__inner {
    max-width: 100% !important;
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important;
  }
  body.pub--book.pub-step-2 #w-proceed-book,
  body.pub--book.pub-step-2 #w-proceed-book-sticky {
    width: 100% !important;
    min-height: 52px !important;
    pointer-events: auto !important;
    opacity: 1 !important;
  }
  body.pub--book.pub-step-2.pub-step2-when .pub-cal,
  body.pub--book.pub-step-2.pub-step2-when #w-cal-section {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* ========== ADD_ITEM_PHONE ? chips always tappable ========== */
@media (max-width: 899px) {
  body.pub--book.pub-step-2.pub-step2-load:not(.pub-prices-only) #w-quick-chips,
  body.pub--book.pub-step-2.pub-step2-load:not(.pub-prices-only) .pub-quick-chips {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.4rem !important;
    width: 100% !important;
    position: relative !important;
    z-index: 6 !important;
    pointer-events: auto !important;
  }
  body.pub--book.pub-step-2.pub-step2-load:not(.pub-prices-only) .pub-quick-chip,
  body.pub--book.pub-step-2.pub-step2-load:not(.pub-prices-only) .pub-quick-chips button {
    pointer-events: auto !important;
    touch-action: manipulation !important;
    min-height: 42px !important;
    opacity: 1 !important;
    position: relative !important;
    z-index: 7 !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    font-size: 0.88rem !important;
    line-height: 1.2 !important;
  }
  body.pub--book.pub-step-2 .pub-cat-tab {
    white-space: nowrap !important;
    font-size: 0.88rem !important;
  }
  body.pub--book.pub-step-2 .pub-search-results,
  body.pub--book.pub-step-2 .pub-search-row {
    pointer-events: auto !important;
    touch-action: manipulation !important;
    position: relative !important;
    z-index: 8 !important;
  }
  body.pub--book.pub-step-2 .pub-items-main {
    position: relative !important;
    z-index: 5 !important;
    pointer-events: auto !important;
  }
  body.pub--book.pub-step-2 .pub-items-basket {
    z-index: 40 !important;
  }
  /* sticky CTA must not cover chips mid-screen */
  body.pub--book.pub-step-2 .pub-sticky-cta {
    top: auto !important;
    bottom: 0 !important;
  }
}

/* HOME_CARDS1 ? phone: one readable row-card (not crushed 2-col); real London photo */
@media (max-width: 639px) {
  body.pub-home-page .pub-cards--home,
  .pub-cards--home {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.7rem !important;
  }
  body.pub-home-page .pub-card--home,
  .pub-card--home {
    display: grid !important;
    grid-template-columns: 112px minmax(0, 1fr) !important;
    align-items: stretch !important;
    min-height: 108px !important;
    border-radius: 14px !important;
  }
  body.pub-home-page .pub-card--home.pub-card--priority,
  .pub-card--home.pub-card--priority {
    border: 2px solid #f59e0b !important;
    box-shadow: 0 4px 14px rgba(245, 158, 11, 0.18) !important;
  }
  body.pub-home-page .pub-card--home .pub-card__img,
  .pub-card--home .pub-card__img {
    aspect-ratio: auto !important;
    max-height: none !important;
    height: 100% !important;
    min-height: 108px !important;
  }
  body.pub-home-page .pub-card--home .pub-card__img img,
  .pub-card--home .pub-card__img img {
    object-fit: cover !important;
    object-position: center 30% !important;
  }
  body.pub-home-page .pub-card--home .pub-card__body,
  .pub-card--home .pub-card__body {
    padding: 0.65rem 0.75rem 0.7rem !important;
    gap: 0.2rem !important;
    justify-content: center !important;
  }
  body.pub-home-page .pub-card--home h3,
  .pub-card--home h3 {
    font-size: 0.98rem !important;
    line-height: 1.2 !important;
  }
  body.pub-home-page .pub-card--home p,
  .pub-card--home p {
    font-size: 0.78rem !important;
    line-height: 1.35 !important;
    margin: 0 !important;
  }
  body.pub-home-page .pub-card--home .pub-card__link,
  .pub-card--home .pub-card__link {
    font-size: 0.8rem !important;
    margin-top: 0.25rem !important;
  }
  body.pub-home-page .pub-card__badge,
  .pub-card__badge {
    align-self: flex-start !important;
    margin-bottom: 0.15rem !important;
  }
}
@media (min-width: 640px) and (max-width: 899px) {
  .pub-cards--home {
    grid-template-columns: 1fr 1fr !important;
  }
}

/* ========== DESKBOOK1 ? desktop /book fills the page (stop left-squashed 640px) ========== */
@media (min-width: 960px) {
  body.pub--book .pub-main {
    max-width: 1280px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  body.pub--book .pub-page-head--book {
    max-width: 1280px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
    text-align: left !important;
    box-sizing: border-box !important;
  }
  body.pub--book .pub-book-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 320px) !important;
    gap: 1.75rem !important;
    max-width: 1280px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
    padding-bottom: 3rem !important;
    align-items: start !important;
    box-sizing: border-box !important;
  }
  body.pub--book .pub-book-layout > .pub-wizard {
    order: 1 !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    float: none !important;
  }
  body.pub--book .pub-book-layout > .pub-book-rail {
    order: 2 !important;
    display: block !important;
    width: 100% !important;
    max-width: 320px !important;
    position: sticky !important;
    top: 1rem !important;
  }
  body.pub--book .pub-wizard-panel,
  body.pub--book .pub-wizard-panel[data-panel],
  body.pub--book .pub-route-hero,
  body.pub--book .pub-wizard-steps,
  body.pub--book .pub-step1-cta {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }
  body.pub--book .pub-route-hero {
    padding: 1.35rem 1.5rem !important;
  }
  body.pub--book .pub-route-field,
  body.pub--book .pub-ac-wrap,
  body.pub--book .pub-route-input,
  body.pub--book #w-from,
  body.pub--book #w-to {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
  }
  body.pub--book #w-step1-next,
  body.pub--book .pub-btn--step1 {
    width: 100% !important;
    max-width: none !important;
  }
}

/* ========== PHONENEXT1 ? NEVER hide/block Next while address list open ========== */
body.pub--book #w-step1-next,
body.pub--book .pub-btn--step1,
body.jke-ac-kb #w-step1-next,
body.jke-ac-open #w-step1-next,
body.pub-ac-open-now #w-step1-next,
body.jke-ac-kb .pub-btn--step1,
body.jke-ac-open .pub-btn--step1,
body.pub-ac-open-now .pub-btn--step1 {
  visibility: visible !important;
  pointer-events: auto !important;
  opacity: 1 !important;
  z-index: 2147483000 !important;
  position: relative !important;
  min-height: 54px !important;
  touch-action: manipulation !important;
}
@media (max-width: 760px) {
  body.pub--book.pub-step-1 #w-step1-next,
  body.pub--book.pub-step-1 .pub-btn--step1 {
    display: block !important;
    width: 100% !important;
    margin-top: 0.75rem !important;
  }
  body.pub--book.pub-step-2 .pub-wizard-panel[data-panel="2"],
  body.pub--book.pub-step-2 .pub-wizard-panel[data-panel="2"][hidden] {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    pointer-events: auto !important;
  }
  body.pub--book.pub-step-2.pub-step2-load:not(.pub-prices-only) .pub-items-layout {
    display: flex !important;
    flex-direction: column !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  body.pub--book.pub-step-2 .pub-wizard-panel[data-panel="1"] {
    display: none !important;
  }
}


/* jke-timewin */
.pub-cal-timewin{margin-top:0.85rem;padding-top:0.75rem;border-top:1px solid #e2e8f0}
.pub-cal-timewin-label{font-weight:700;font-size:0.95rem;margin:0 0 0.45rem;color:#0f172a}
.pub-cal-timewin-row{display:grid;grid-template-columns:1fr 1fr;gap:0.45rem}
@media(min-width:640px){.pub-cal-timewin-row{grid-template-columns:repeat(4,1fr)}}
.tw-btn{appearance:none;border:1.5px solid #cbd5e1;background:#fff;border-radius:10px;padding:0.55rem 0.45rem;text-align:center;cursor:pointer;font:inherit;font-size:0.82rem;line-height:1.25;color:#0f172a;width:100%}
.tw-btn .tw-price{display:block;font-weight:700;font-size:0.9rem;margin-top:0.15rem;color:#0f766e}
.tw-btn .tw-hint{display:block;font-size:0.72rem;color:#64748b;margin-top:0.1rem}
.tw-btn.is-on{border-color:#0f766e;background:#f0fdfa;box-shadow:0 0 0 1px #0f766e}
.tw-btn.is-on .tw-price{color:#0f766e}
.pub-cal-timewin-note{margin:0.45rem 0 0;font-size:0.78rem;color:#64748b}


/* HERO_PHOTO_SHOW — keep homepage crew photo visible */
body.pub-home-page .pub-hero__photo,
.pub-home--tight .pub-hero__photo {
  display: block !important;
}


/* MAPPERM1 — permanent A→B map visibility on desktop order rail */
@media (min-width: 960px) {
  body.pub--book.pub-has-route #w-order-map-wrap:not([hidden]) {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  body.pub--book #w-order-map-slot #w-route-map,
  body.pub--book #w-order-map-slot .leaflet-container {
    display: block !important;
    visibility: visible !important;
    width: 100% !important;
    height: 100% !important;
  }
}


/* HOME_V4_QUOTE_FIRST */
@media (max-width: 899px) {
  body.pub.pub-home-page .pub-home.pub-home--v4 .pub-hero.pub-hero--quote-first.pub-home-hero,
  body.pub.pub-home-page.pub-home-v4 .pub-hero.pub-hero--quote-first.pub-home-hero {
    display: flex !important;
    flex-direction: column !important;
  }
  body.pub.pub-home-page .pub-home.pub-home--v4 .pub-hero--quote-first .pub-hero__form-wrap,
  body.pub.pub-home-page.pub-home-v4 .pub-hero--quote-first .pub-hero__form-wrap,
  body.pub.pub-home-page .pub-home--v4 .pub-hero--quote-first .pub-hero__form-wrap {
    order: 1 !important;
  }
  body.pub.pub-home-page .pub-home.pub-home--v4 .pub-hero--quote-first .pub-hero__copy,
  body.pub.pub-home-page.pub-home-v4 .pub-hero--quote-first .pub-hero__copy,
  body.pub.pub-home-page .pub-home--v4 .pub-hero--quote-first .pub-hero__copy {
    order: 2 !important;
  }
  /* Quote-first: form order 1, copy+photo order 2 — never stack heavy photo above form */
  body.pub-home-page.pub-home-v4 .pub-hero--quote-first .pub-hero__photo {
    display: block !important;
    margin-top: 0.85rem !important;
  }
}
body.pub-home-page.pub-home-v4 .pub-home-trust-compact {
  font-size: 0.78rem;
  color: #475569;
  margin: 0 0 0.65rem;
  line-height: 1.35;
}
body.pub-home-page.pub-home-v4 .pub-quote-form__reassure {
  margin: 0.55rem 0 0;
  font-size: 0.85rem;
  font-weight: 600;
  color: #0f766e;
}
body.pub-home-page.pub-home-v4 .pub-quote-form__help {
  margin: 0.45rem 0 0;
  font-size: 0.82rem;
  color: #64748b;
}
body.pub-home-page.pub-home-v4 .pub-hero__sub {
  max-width: 36rem;
  margin: 0.5rem 0 0.65rem;
  font-size: 1rem;
  line-height: 1.45;
}
body.pub-home-page.pub-home-v4 .pub-hero h1 {
  font-size: clamp(1.35rem, 4.2vw, 2rem);
  line-height: 1.2;
  margin: 0.35rem 0;
}
body.pub-home-page.pub-home-v4 .pub-cards--v4 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
@media (min-width: 700px) {
  body.pub-home-page.pub-home-v4 .pub-cards--v4 {
    grid-template-columns: 1fr 1fr;
  }
}
@media (min-width: 1000px) {
  body.pub-home-page.pub-home-v4 .pub-cards--v4 {
    grid-template-columns: repeat(3, 1fr);
  }
}
body.pub-home-page.pub-home-v4 .pub-proof-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  margin: 1rem 0;
}
@media (min-width: 700px) {
  body.pub-home-page.pub-home-v4 .pub-proof-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
body.pub-home-page.pub-home-v4 .pub-proof-shot {
  margin: 0;
  border-radius: 10px;
  overflow: hidden;
  background: #e2e8f0;
}
body.pub-home-page.pub-home-v4 .pub-proof-shot img {
  display: block;
  width: 100%;
  height: 200px;
  object-fit: cover;
}
body.pub-home-page.pub-home-v4 .pub-cta-secondary {
  margin-top: 0.75rem;
  font-size: 0.9rem;
}
body.pub-home-page.pub-home-v4 .pub-steps--five li {
  margin-bottom: 0.65rem;
}
/* Keep sticky header from covering focused quote fields */
body.pub-home-page.pub-home-v4 .pub-route-input:focus {
  scroll-margin-top: 5.5rem;
}
body.pub-home-page.pub-home-v4 .pub-btn--hero {
  scroll-margin-bottom: 1rem;
}


/* HOME_V4_DESKTOP_ORDER — DOM form-first; desktop keeps copy left / form right */
@media (min-width: 900px) {
  body.pub.pub-home-page.pub-home-v4 .pub-hero--quote-first .pub-hero__copy {
    order: 1 !important;
  }
  body.pub.pub-home-page.pub-home-v4 .pub-hero--quote-first .pub-hero__form-wrap {
    order: 2 !important;
  }
}


/* MAP2_LEAFLET — tiles need leaflet.css; keep panes untransformed */
body.pub--book .leaflet-pane,
body.pub--book .leaflet-map-pane {
  transform-origin: 0 0;
}
body.pub--book #w-route-map.leaflet-container {
  font: inherit;
}


/* PIN_NAME_HIDE — A/B markers only; names live in route strip / order line */
.pub-map-pin__name,
.pub-route-map-wrap--order .pub-map-pin__name {
  display: none !important;
}

/* HOME_V4_HERO_PHOTO — desktop left column must show real crew photo */
@media (min-width: 900px) {
  body.pub-home-page.pub-home-v4 .pub-hero--quote-first .pub-hero__copy .pub-hero__photo,
  body.pub.pub-home-page.pub-home-v4 .pub-hero__photo {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    max-height: 380px !important;
    margin-top: 0.9rem !important;
  }
}

/* ── Recruit / careers (restored) ── */
body.pub-recruit-page .pub-main {
  max-width: none !important;
  margin: 0 !important;
  padding: 0 0 2.5rem !important;
  width: 100% !important;
}

/* Kill old section padding that pushed things off-grid */
body.pub-recruit-page .pub-section {
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.jke-recruit-shell {
  max-width: 1080px !important;
  width: 100% !important;
  margin: 0 auto !important;
  padding: 1rem 1.1rem 2.5rem !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 1.35rem !important;
}

.jke-recruit-intro,
.jke-recruit-block {
  width: 100%;
  margin: 0;
}

.jke-recruit-intro__kicker {
  margin: 0 0 0.4rem;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #f59e0b;
}

.jke-recruit-intro h1,
.jke-recruit-hero__copy h1 {
  margin: 0 0 0.5rem;
  font-size: clamp(1.45rem, 3.2vw, 2rem);
  line-height: 1.2;
  color: #0b1f3a;
}

.jke-recruit-intro__sub {
  margin: 0 0 0.65rem;
  color: #475569;
  font-size: 1rem;
  line-height: 1.5;
  max-width: 42rem;
}

.jke-recruit-intro__links {
  margin: 0;
  font-size: 0.9rem;
  color: #64748b;
}
.jke-recruit-intro__links a {
  color: #2563eb;
  font-weight: 700;
  text-decoration: none;
}

.jke-recruit-trust {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.55rem;
}
@media (max-width: 700px) {
  .jke-recruit-trust { grid-template-columns: 1fr 1fr; }
}
.jke-recruit-trust li {
  margin: 0;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 0.55rem 0.7rem;
  font-size: 0.85rem;
  font-weight: 700;
  color: #0f172a;
}

/* Hero: copy + photo side by side */
.jke-recruit-hero {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 1.35rem;
  align-items: stretch;
  width: 100%;
  margin: 0;
}
@media (max-width: 860px) {
  .jke-recruit-hero { grid-template-columns: 1fr; }
}
.jke-recruit-hero__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}
.jke-recruit-hero__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 0.85rem;
}
.jke-recruit-hero__photo {
  margin: 0;
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  background: #0b1f3a;
  border: 1px solid #e2e8f0;
  box-shadow: 0 10px 28px rgba(11, 31, 58, 0.12);
  min-height: 240px;
  height: 100%;
}
.jke-recruit-hero__photo img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 260px;
  max-height: 380px;
  object-fit: cover;
  object-position: center 22%;
}

.jke-recruit-block h2 {
  margin: 0 0 0.65rem;
  font-size: 1.2rem;
  color: #0b1f3a;
}

.jke-recruit-why {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.7rem;
}
@media (max-width: 860px) {
  .jke-recruit-why { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
  .jke-recruit-why { grid-template-columns: 1fr; }
}
.jke-recruit-why li {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 0.85rem 0.95rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.jke-recruit-why strong { color: #0b1f3a; }
.jke-recruit-why span { font-size: 0.88rem; color: #64748b; }

.jke-recruit-jobs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1rem;
  width: 100%;
}
.jke-recruit-job {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.05);
}
.jke-recruit-job__img {
  position: relative;
  display: block;
  aspect-ratio: 16 / 10;
  background: #e2e8f0;
  overflow: hidden;
}
.jke-recruit-job__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.jke-recruit-job__badge {
  position: absolute;
  left: 0.7rem;
  bottom: 0.7rem;
  background: rgba(11, 31, 58, 0.92);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 800;
  padding: 0.28rem 0.55rem;
  border-radius: 999px;
}
.jke-recruit-job__body {
  padding: 1rem 1.05rem 1.15rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  flex: 1;
}
.jke-recruit-job__body h3 {
  margin: 0;
  font-size: 1.08rem;
}
.jke-recruit-job__body h3 a {
  color: #0b1f3a;
  text-decoration: none;
}
.jke-recruit-job__body p {
  margin: 0;
  font-size: 0.92rem;
  color: #475569;
}
.jke-recruit-job__pay {
  font-weight: 700 !important;
  color: #047857 !important;
  font-size: 0.88rem !important;
}

.jke-recruit-detail {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem 1.75rem;
}
@media (max-width: 800px) {
  .jke-recruit-detail { grid-template-columns: 1fr; }
}
.jke-recruit-list {
  margin: 0 0 1rem;
  padding-left: 1.15rem;
  color: #334155;
  line-height: 1.5;
}
.jke-recruit-list--num { list-style: decimal; }

.jke-recruit-crumb {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  font-size: 0.85rem;
  color: #64748b;
  margin: 0;
}
.jke-recruit-crumb a {
  color: #2563eb;
  font-weight: 600;
  text-decoration: none;
}

/* Apply block: photo + form */
.jke-recruit-apply {
  display: grid;
  gap: 1.1rem;
  width: 100%;
  margin: 0;
  align-items: stretch;
  box-sizing: border-box;
}
.jke-recruit-apply--with-photo {
  grid-template-columns: 0.95fr 1.05fr;
}
.jke-recruit-apply--form-only {
  grid-template-columns: 1fr;
  max-width: 640px;
}
@media (max-width: 860px) {
  .jke-recruit-apply--with-photo { grid-template-columns: 1fr; }
  .jke-recruit-apply--form-only { max-width: 100%; }
}

.jke-recruit-apply__photo {
  margin: 0;
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  background: #0b1f3a;
  border: 1px solid #e2e8f0;
  box-shadow: 0 10px 28px rgba(11, 31, 58, 0.12);
  min-height: 280px;
}
.jke-recruit-apply__photo img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 280px;
  max-height: 460px;
  object-fit: cover;
  object-position: center 22%;
}
.jke-recruit-apply__photo figcaption {
  position: absolute;
  left: 0.75rem;
  bottom: 0.75rem;
  background: rgba(245, 158, 11, 0.95);
  color: #0b1f3a;
  font-weight: 800;
  font-size: 0.78rem;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
}

.jke-recruit-apply__panel {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 1.15rem 1.1rem 1.2rem;
  box-shadow: 0 6px 20px rgba(15, 23, 42, 0.06);
  min-width: 0;
}
.jke-recruit-apply__head {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 0.85rem;
}
.jke-recruit-apply__titles { min-width: 0; flex: 1; }
.jke-recruit-apply__head h2 {
  margin: 0 0 0.3rem;
  font-size: 1.15rem;
  color: #0b1f3a;
}
.jke-recruit-apply__lead {
  margin: 0;
  color: #64748b;
  font-size: 0.9rem;
  line-height: 1.45;
}

.jke-recruit-lang {
  display: grid;
  gap: 0.25rem;
  font-size: 0.75rem;
  font-weight: 700;
  color: #334155;
  min-width: 7.5rem;
}
.jke-recruit-lang select {
  font-size: 16px;
  padding: 0.5rem 0.6rem;
  border-radius: 10px;
  border: 1px solid #cbd5e1;
  background: #fff;
}

.jke-recruit-form__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem 0.75rem;
}
@media (max-width: 560px) {
  .jke-recruit-form__grid { grid-template-columns: 1fr; }
}
.jke-recruit-form__span2 { grid-column: 1 / -1; }
.jke-recruit-form label {
  display: grid;
  gap: 0.28rem;
  font-size: 0.8rem;
  font-weight: 700;
  color: #334155;
  margin: 0;
}
.jke-recruit-form input,
.jke-recruit-form select,
.jke-recruit-form textarea {
  width: 100%;
  padding: 0.68rem 0.75rem;
  border-radius: 10px;
  border: 1px solid #cbd5e1;
  font-size: 16px;
  font-family: inherit;
  background: #fff;
  box-sizing: border-box;
}
.jke-recruit-form input:focus,
.jke-recruit-form select:focus,
.jke-recruit-form textarea:focus {
  outline: 2px solid rgba(245, 158, 11, 0.45);
  border-color: #f59e0b;
}
.jke-recruit-form__submit {
  margin-top: 0.85rem;
  width: 100%;
}
.jke-recruit-form__fine {
  margin: 0.55rem 0 0;
  font-size: 0.75rem;
  color: #94a3b8;
  line-height: 1.4;
}

.jke-recruit-err {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #991b1b;
  border-radius: 10px;
  padding: 0.65rem 0.75rem;
  font-weight: 600;
  margin: 0 0 0.75rem;
}
.jke-recruit-ok {
  background: #ecfdf5;
  border: 1px solid #86efac;
  border-radius: 12px;
  padding: 1.15rem;
  text-align: center;
}
.jke-recruit-ok--banner { margin: 0; }
.jke-recruit-ok strong {
  display: block;
  color: #166534;
  font-size: 1.1rem;
  margin-bottom: 0.3rem;
}
.jke-recruit-block--foot {
  border-top: 1px solid #e2e8f0;
  padding-top: 1rem;
  color: #64748b;
}
.jke-recruit-block--foot a {
  color: #2563eb;
  font-weight: 700;
}

/* Careers: keep shell padding visible under global overflow-x:hidden */
body.pub-recruit-page .pub-main {
  overflow-x: clip !important;
}
body.pub-recruit-page .jke-recruit-shell {
  overflow: visible !important;
}



/* careers photo no-twist */
.jke-recruit-hero__photo,
.jke-recruit-job__img {
  overflow: hidden;
}
.jke-recruit-hero__photo img,
.jke-recruit-job__img img,
.jke-recruit-apply__photo img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  transform: none !important;
  rotate: none !important;
}

/* ============================================================
   LONDONM1 — pub-home-v4 phone quote-first (≤899px)
   Bug: PHONE_STORY_FIRST_V3 / STORY_FIRST_ORDER beat HOME_V4_QUOTE_FIRST
   (higher specificity) → long copy+photo above form; sticky WA covers CTA.
   Soft sticky See My Fixed Price intentionally skipped (keyboard risk).
   Does not touch /book pay, AC placeAbove, or Ads money URL markup.
   ============================================================ */
@media (max-width: 899px) {
  body.pub.pub-home-page.pub-home-v4 .pub-home.pub-home--tight.pub-home--v4 .pub-hero.pub-hero--quote-first.pub-home-hero,
  body.pub.pub-home-page.pub-home-v4 .pub-home.pub-home--v4 .pub-hero.pub-hero--quote-first.pub-home-hero,
  body.pub.pub-home-page.pub-home-v4 .pub-hero.pub-hero--quote-first.pub-home-hero {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    overflow-x: clip !important;
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    box-sizing: border-box !important;
  }

  /* PHONE3: copy+photo BEFORE form on phone — beat LONDONM1 form-first */
  body.pub.pub-home-page.pub-home-v4 .pub-home.pub-home--tight.pub-home--v4 .pub-hero.pub-hero--quote-first .pub-hero__form-wrap,
  body.pub.pub-home-page.pub-home-v4 .pub-home.pub-home--v4 .pub-hero.pub-hero--quote-first .pub-hero__form-wrap,
  body.pub.pub-home-page.pub-home-v4 .pub-hero.pub-hero--quote-first.pub-home-hero .pub-hero__form-wrap {
    order: 2 !important;
    width: 100% !important;
    max-width: min(440px, 100%) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    float: none !important;
    box-sizing: border-box !important;
  }
  /* Page bottom clearance so sticky WA never sits on in-form Continue on short phones */
  body.pub.pub-home-page.pub-home-v4 .pub-main {
    padding-bottom: calc(5rem + env(safe-area-inset-bottom, 0px)) !important;
  }
  body.pub.pub-home-page.pub-home-v4 .pub-home.pub-home--tight.pub-home--v4 .pub-hero.pub-hero--quote-first .pub-hero__copy,
  body.pub.pub-home-page.pub-home-v4 .pub-home.pub-home--v4 .pub-hero.pub-hero--quote-first .pub-hero__copy,
  body.pub.pub-home-page.pub-home-v4 .pub-hero.pub-hero--quote-first.pub-home-hero .pub-hero__copy {
    order: 1 !important;
    width: 100% !important;
    max-width: min(440px, 100%) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    float: none !important;
  }

  /* Trust chips: compact, wrap — do not crush form */
  body.pub.pub-home-page.pub-home-v4 .pub-hero__trust {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.35rem !important;
    justify-content: center !important;
    margin: 0.55rem 0 !important;
  }
  body.pub.pub-home-page.pub-home-v4 .pub-hero__trust li {
    font-size: 0.74rem !important;
    line-height: 1.25 !important;
    padding: 0.28rem 0.5rem !important;
  }

  /* Hero photo: natural 16:9 (jke-hero-person 1280×720), width 100%, capped, no CLS blowup */
  body.pub.pub-home-page.pub-home-v4 .pub-hero.pub-hero--quote-first .pub-hero__photo,
  body.pub.pub-home-page.pub-home-v4 .pub-hero__photo {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 140px !important;
    max-height: min(42vh, 240px) !important;
    aspect-ratio: 16 / 9 !important;
    margin: 0.75rem 0 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border-radius: 12px !important;
    background: #e8eef5 !important;
    box-sizing: border-box !important;
  }
  body.pub.pub-home-page.pub-home-v4 .pub-hero.pub-hero--quote-first .pub-hero__photo img,
  body.pub.pub-home-page.pub-home-v4 .pub-hero__photo img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center 42% !important;
    display: block !important;
  }

  /* Primary CTA ≥44px touch */
  body.pub.pub-home-page.pub-home-v4 .pub-btn--hero,
  body.pub.pub-home-page.pub-home-v4 .pub-quote-form--hero .pub-btn--primary,
  body.pub.pub-home-page.pub-home-v4 .pub-quote-form .pub-btn--hero {
    min-height: 48px !important;
    padding: 0.85rem 1rem !important;
    width: 100% !important;
    box-sizing: border-box !important;
    touch-action: manipulation !important;
  }

  /* Sticky WA: icon-only so it does not cover Continue; hide while typing/AC */
  body.pub.pub-home-page.pub-home-v4 .jke-sticky-wa {
    z-index: 900 !important;
    bottom: max(0.55rem, env(safe-area-inset-bottom, 0px)) !important;
    right: max(0.55rem, env(safe-area-inset-right, 0px)) !important;
  }
  body.pub.pub-home-page.pub-home-v4 .jke-sticky-wa__text {
    display: none !important;
  }
  body.pub.pub-home-page.pub-home-v4 .jke-sticky-wa__btn {
    padding: 0.65rem !important;
    min-height: 48px !important;
    min-width: 48px !important;
    border-radius: 999px !important;
  }
  body.pub.pub-home-page.pub-home-v4.pub-ac-open-now .jke-sticky-wa,
  body.pub.pub-home-page.pub-home-v4:has(.pub-route-input:focus) .jke-sticky-wa {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  /* Soft sticky CTA skipped — hide if any remnant present */
  body.pub.pub-home-page.pub-home-v4 #svc-sticky-cta,
  body.pub.pub-home-page.pub-home-v4 .pub-svc-sticky {
    display: none !important;
  }

  body.pub.pub-home-page.pub-home-v4,
  body.pub.pub-home-page.pub-home-v4 .pub-home,
  body.pub.pub-home-page.pub-home-v4 .pub-page-shell,
  body.pub.pub-home-page.pub-home-v4 .pub-main {
    overflow-x: clip !important;
    max-width: 100% !important;
  }
}

/* Desktop unchanged: copy left / form right already in HOME_V4_DESKTOP_ORDER */
@media (min-width: 900px) {
  body.pub.pub-home-page.pub-home-v4 .pub-hero.pub-hero--quote-first .pub-hero__photo {
    max-height: 380px !important;
    aspect-ratio: 16 / 9 !important;
    height: auto !important;
    min-height: 220px !important;
  }
}


/* LONDONHOME1 — London matches homepage pub-home-v4; no london-*-first overrides */

/* Defensive: any leftover London photo helper classes behave like home photo */
body.pub-home-page.pub-home-v4 .pub-hero__photo--after-copy,
body.pub-home-page.pub-home-v4 .pub-hero__photo--lead {
  display: block !important;
}


/* ============================================================
   PHONE3 20260731phone3 — homepage phone: paragraph+photo then wizard
   DOM: copy before form-wrap. Desktop 2-col orders unchanged (copy 1 / form 2).
   ============================================================ */
@media (max-width: 899px) {
  body.pub.pub-home-page.pub-home-v4 .pub-hero.pub-hero--quote-first.pub-home-hero,
  body.pub.pub-home-page .pub-hero.pub-hero--quote-first.pub-home-hero,
  body.pub-home-page .pub-hero.pub-hero--quote-first {
    display: flex !important;
    flex-direction: column !important;
  }
  body.pub.pub-home-page.pub-home-v4 .pub-home.pub-home--tight.pub-home--v4 .pub-hero.pub-hero--quote-first .pub-hero__copy,
  body.pub.pub-home-page.pub-home-v4 .pub-home.pub-home--v4 .pub-hero.pub-hero--quote-first .pub-hero__copy,
  body.pub.pub-home-page.pub-home-v4 .pub-hero.pub-hero--quote-first.pub-home-hero .pub-hero__copy,
  body.pub.pub-home-page.pub-home-v4 .pub-hero.pub-hero--quote-first .pub-hero__copy,
  body.pub.pub-home-page .pub-hero.pub-hero--quote-first .pub-hero__copy,
  body.pub-home-page .pub-hero--quote-first .pub-hero__copy {
    order: 1 !important;
  }
  body.pub.pub-home-page.pub-home-v4 .pub-home.pub-home--tight.pub-home--v4 .pub-hero.pub-hero--quote-first .pub-hero__form-wrap,
  body.pub.pub-home-page.pub-home-v4 .pub-home.pub-home--v4 .pub-hero.pub-hero--quote-first .pub-hero__form-wrap,
  body.pub.pub-home-page.pub-home-v4 .pub-hero.pub-hero--quote-first.pub-home-hero .pub-hero__form-wrap,
  body.pub.pub-home-page.pub-home-v4 .pub-hero.pub-hero--quote-first .pub-hero__form-wrap,
  body.pub.pub-home-page .pub-hero.pub-hero--quote-first .pub-hero__form-wrap,
  body.pub-home-page .pub-hero--quote-first .pub-hero__form-wrap {
    order: 2 !important;
  }
  body.pub.pub-home-page.pub-home-v4 .pub-hero__photo,
  body.pub-home-page .pub-hero__photo {
    display: block !important;
    visibility: visible !important;
  }
}
@media (min-width: 900px) {
  body.pub.pub-home-page.pub-home-v4 .pub-hero.pub-hero--quote-first .pub-hero__copy,
  body.pub.pub-home-page .pub-hero.pub-hero--quote-first .pub-hero__copy,
  body.pub-home-page .pub-hero--quote-first .pub-hero__copy {
    order: 1 !important;
  }
  body.pub.pub-home-page.pub-home-v4 .pub-hero.pub-hero--quote-first .pub-hero__form-wrap,
  body.pub.pub-home-page .pub-hero.pub-hero--quote-first .pub-hero__form-wrap,
  body.pub-home-page .pub-hero--quote-first .pub-hero__form-wrap {
    order: 2 !important;
  }
}

/* PHONE ACFIX — A2: while address list open, do not clip overflow on page chrome */
@media (max-width: 760px) {
  body.jke-ac-open,
  body.pub-ac-open-now {
    overflow-x: visible !important;
  }
  body.jke-ac-open .pub-main,
  body.pub-ac-open-now .pub-main,
  body.jke-ac-open .pub-hero,
  body.pub-ac-open-now .pub-hero,
  body.jke-ac-open .pub-home-hero,
  body.pub-ac-open-now .pub-home-hero,
  body.jke-ac-open .pub-wizard,
  body.pub-ac-open-now .pub-wizard,
  body.jke-ac-open .pub-book-layout,
  body.pub-ac-open-now .pub-book-layout,
  body.jke-ac-open .pub-wizard-panel,
  body.pub-ac-open-now .pub-wizard-panel {
    overflow-x: visible !important;
  }
}


/* === calfix1: when-phase UX — hide picker + long basket; force flex only on load === */
body.pub-prices-only .pub-items-layout,
body.pub-prices-only #w-quick-chips,
body.pub-prices-only #w-item-search,
body.pub-prices-only .pub-items-search,
body.pub-prices-only .pub-items-main,
body.pub-prices-only #w-catalogue,
body.pub-prices-only .pub-cat-tabs {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.pub-prices-only #w-cart,
body.pub-prices-only .pub-items-basket__list,
body.pub-prices-only .pub-items-basket__flash,
body.pub-prices-only .pub-items-basket__empty {
  display: none !important;
}
body.pub-prices-only .pub-items-basket {
  display: none !important;
}
/* flex items layout ONLY while picking load — never under prices-only */
body.pub-step-2.pub-step2-load:not(.pub-prices-only) .pub-items-layout {
  display: flex !important;
}
body.pub-prices-only .pub-step2-when-head,
body.pub-prices-only #w-step2-when-head {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}
.pub-step2-edit-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem 0.85rem;
  margin: 0.35rem 0 0.65rem;
}
.pub-when-items-count {
  font-size: 0.92rem;
  font-weight: 700;
  color: #334155;
}
/* Fail card: no empty white void under theatre */
body.pub-price-theatre #w-cal-section.is-theatre,
body.pub-price-theatre .pub-cal.is-theatre {
  min-height: 0 !important;
  background: transparent !important;
}
body.pub-price-theatre #w-cal-grid:empty,
.pub-cal.is-theatre #w-cal-grid:empty {
  display: none !important;
  min-height: 0 !important;
  height: 0 !important;
}
body.pub-price-theatre #w-cal-meta,
.pub-cal.is-theatre #w-cal-meta {
  display: none !important;
}
#w-price-theatre #w-price-retry {
  margin-top: 12px;
  width: 100%;
  min-height: 48px;
}
.pub-price-theatre-card {
  min-height: auto;
}
@media (max-width: 639px) {
  .pub-price-theatre-card {
    min-height: auto;
  }
  body.pub-price-theatre #w-cal-section,
  .pub-cal.is-theatre {
    min-height: 0 !important;
  }
}

/* === calfix3: calendar-first when-phase (phone-universal; no 100vh/fixed traps) === */
body.pub-price-theatre #w-price-theatre,
#w-price-theatre:not([hidden]) {
  display: -webkit-box !important;
  display: -webkit-flex !important;
  display: flex !important;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-box-align: center;
  -webkit-align-items: center;
  align-items: center;
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  gap: 0.65rem;
  text-align: left;
  min-height: 0 !important;
  max-height: none;
  margin: 0 0 0.65rem !important;
  padding: 0.55rem 0.75rem !important;
  border-radius: 12px !important;
  border: 1px solid #93c5fd;
  background: #eff6ff !important;
  color: #0f172a !important;
  box-shadow: none !important;
  z-index: 2 !important;
}
.pub-price-theatre-card__spinner {
  width: 1.15rem;
  height: 1.15rem;
  -webkit-flex-shrink: 0;
  flex-shrink: 0;
  border-width: 2px;
  margin: 0;
}
.pub-price-theatre-card__copy {
  min-width: 0;
  -webkit-flex: 1 1 auto;
  flex: 1 1 auto;
}
.pub-price-theatre-card__eyebrow {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-transform: none;
  color: #1d4ed8 !important;
}
#w-price-theatre-joke,
.pub-price-theatre-card__joke {
  margin: 0.1rem 0 0 !important;
  max-width: none;
  font-size: 0.84rem !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  color: #334155 !important;
}
.pub-price-theatre-card__hint { display: none !important; }

/* paycal2: calendar hidden during theatre — see paycal2 block */
body.pub-price-theatre #w-cal-section,
.pub-cal.is-theatre,
body.pub-price-theatre #w-cal-section.is-theatre {
  min-height: 0 !important;
  overflow: visible !important;
}
body.pub-price-theatre #w-next-week-offer,
body.pub-price-theatre .pub-cal-any-row,
body.pub-price-theatre #w-cal-more,
body.pub-price-theatre #w-cal-selected,
body.pub-price-theatre #w-price-changed,
.pub-cal.is-theatre #w-next-week-offer,
.pub-cal.is-theatre .pub-cal-any-row,
.pub-cal.is-theatre #w-cal-more,
.pub-cal.is-theatre #w-cal-selected {
  display: none !important;
}
/* paycal2: grid hidden during theatre */
.cal-slot--skel {
  pointer-events: none !important;
  opacity: 0.55;
  background: #f8fafc;
  border-style: dashed;
}
.cal-slot--skel .cal-slot__jke,
.cal-slot--skel .cal-slot__day {
  color: #94a3b8 !important;
}
.pub-cal-crew-legend {
  margin: 0 0 0.55rem;
  padding: 0.45rem 0.55rem;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.4;
  color: #334155;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
}
body.pub-step2-when .pub-cal-crew-legend {
  display: block;
}
@media (max-width: 720px) {
  body.pub-step2-when .pub-cal-grid,
  #w-cal-grid.pub-cal-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
  }
  .cal-slot {
    min-height: 88px !important;
    padding: 0.45rem 0.4rem 0.5rem !important;
    -webkit-tap-highlight-color: rgba(37, 99, 235, 0.15);
  }
  .cal-slot__lab {
    font-size: 0.68rem;
    font-weight: 700;
    color: #64748b;
    margin-top: 0.15rem;
  }
  .cal-slot__jke,
  .cal-slot__jke--phone,
  .cal-slot__jke--2 {
    font-size: 0.95rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
  }
  .cal-slot__jke--2 {
    color: #1e3a5f;
  }
  body.pub-price-theatre #w-price-theatre,
  #w-price-theatre:not([hidden]) {
    margin: 0 0 0.5rem !important;
    padding: 0.5rem 0.65rem !important;
  }
  .pub-cal-crew-legend {
    font-size: 0.78rem;
  }
}
#w-price-theatre #w-price-retry,
#w-price-retry {
  display: none !important;
}

/* === paycal1: calendar declutter + anti-shake + theatre conflict cleanup === */
body.pub-prices-only #w-step2-when-head .pub-day-trust,
body.pub-price-theatre #w-step2-when-head .pub-day-trust,
#w-when-trust[hidden] {
  display: none !important;
}
body.pub-prices-only #w-cal-crew-legend.is-demoted[hidden],
body.pub-prices-only #w-cal-crew-legend[hidden],
#w-next-week-offer.is-demoted[hidden] {
  display: none !important;
}
#w-quote-total[hidden] {
  display: none !important;
}
/* Hide sticky basket pills on when-phase */
body.pub-prices-only #w-sticky-basket,
body.pub-step2-when #w-sticky-basket,
body.pub-prices-only .pub-sticky-basket {
  display: none !important;
}
/* Fixed min-heights reduce layout shake while skeleton paints */
#w-cal-section {
  min-height: 280px;
}
#w-cal-grid {
  min-height: 220px;
}
body.pub-price-theatre #w-cal-section,
.pub-cal.is-theatre {
  min-height: 280px !important;
}
/* Kill old 42/58vh theatre void conflict (calfix3 compact bar wins) */
.pub-price-theatre-card {
  min-height: 0 !important;
}
@media (max-width: 639px) {
  body.pub-price-theatre #w-cal-section,
  .pub-cal.is-theatre {
    min-height: 260px !important;
  }
  .pub-price-theatre-card {
    min-height: 0 !important;
  }
  #w-cal-grid {
    min-height: 200px;
  }
}

/* === paycal2: big theatre; calendar only when ready; when declutter wins === */
body.pub-price-theatre #w-cal-ready,
.pub-cal.is-theatre #w-cal-ready,
body.pub-price-theatre #w-cal-grid,
.pub-cal.is-theatre #w-cal-grid,
body.pub-price-theatre #w-cal-crew-legend,
body.pub-price-theatre #w-next-week-offer,
body.pub-price-theatre .pub-cal-any-row,
body.pub-price-theatre #w-cal-more,
body.pub-price-theatre #w-cal-selected,
body.pub-price-theatre .pub-day-trust--inline {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  min-height: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
body.pub-prices-only #w-basket,
body.pub-prices-only .pub-items-basket,
body.pub-prices-only #w-quick-chips,
body.pub-prices-only .pub-items-layout,
body.pub-prices-only .pub-items-main,
body.pub-prices-only #w-catalogue,
body.pub-prices-only .pub-cat-tabs,
body.pub-prices-only #w-item-search,
body.pub-price-theatre #w-basket,
body.pub-price-theatre .pub-items-basket,
body.pub-price-theatre #w-quick-chips,
body.pub-price-theatre .pub-items-layout {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
}
body.pub-price-theatre #w-price-theatre,
#w-price-theatre:not([hidden]) {
  display: -webkit-box !important;
  display: -webkit-flex !important;
  display: flex !important;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
  align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  justify-content: center;
  text-align: center;
  gap: 0.85rem;
  min-height: 220px !important;
  margin: 0.75rem 0 1rem !important;
  padding: 1.35rem 1.1rem !important;
  border-radius: 16px !important;
  border: 2px solid #93c5fd !important;
  background: #eff6ff !important;
  color: #0f172a !important;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.08) !important;
}
.pub-price-theatre-card__spinner {
  width: 2.1rem !important;
  height: 2.1rem !important;
  border-width: 3px !important;
  margin: 0 auto !important;
}
.pub-price-theatre-card__eyebrow,
#w-price-theatre-eyebrow {
  font-size: 1.05rem !important;
  font-weight: 800 !important;
  color: #1d4ed8 !important;
}
#w-price-theatre-joke,
.pub-price-theatre-card__joke {
  font-size: 0.98rem !important;
  font-weight: 600 !important;
  line-height: 1.45 !important;
  max-width: 28rem;
  margin: 0.25rem auto 0 !important;
  color: #334155 !important;
}
body.pub-prices-only .pub-day-trust--inline,
body.pub-step2-when .pub-day-trust--inline {
  display: block !important;
}



/* === paycal2 phone beaters: prices-only wins over shell force-show === */
@media (max-width: 899px) {
  body.pub--book.pub-step-2.pub-prices-only #w-basket,
  body.pub--book.pub-step-2.pub-prices-only .pub-items-basket,
  body.pub--book.pub-step-2.pub-prices-only #w-quick-chips,
  body.pub--book.pub-step-2.pub-prices-only .pub-quick-chips,
  body.pub--book.pub-step-2.pub-prices-only .pub-items-layout,
  body.pub--book.pub-step-2.pub-prices-only .pub-items-main,
  body.pub--book.pub-step-2.pub-prices-only #w-catalogue,
  body.pub--book.pub-step-2.pub-prices-only #w-item-search,
  body.pub--book.pub-step-2.pub-prices-only .pub-items-search,
  body.pub--book.pub-step-2.pub-price-theatre #w-basket,
  body.pub--book.pub-step-2.pub-price-theatre #w-quick-chips,
  body.pub--book.pub-step-2.pub-price-theatre .pub-items-layout,
  body.pub--book.pub-step-2.pub-price-theatre .pub-items-main {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }
}


/* ===== uxfix3: step3 door + pay keyboard fix ===== */
body.pub-step-3 #w-sticky-cta,
body.pub-step-3 .pub-sticky-cta,
body.pub-step-3.pub-door-typing #w-sticky-cta {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  height: 0 !important;
  opacity: 0 !important;
}
body.pub-step-3 .pub-wizard-panel[data-panel="3"] {
  padding-bottom: 2rem !important;
}
body.pub-step-3 #w-door-details {
  display: block !important;
  order: -1;
  margin: 0 0 1rem !important;
  padding: 0.75rem 0.85rem !important;
  border: 2px solid #0b1f3a !important;
  border-radius: 12px !important;
  background: #f8fafc !important;
}
body.pub-step-3 .pub-door-block {
  margin-bottom: 0.75rem !important;
}
body.pub-step-3 .pub-door-block label {
  font-weight: 700 !important;
  font-size: 0.95rem !important;
}
body.pub-step-3 #w-from-house,
body.pub-step-3 #w-to-house {
  font-size: 1.15rem !important;
  min-height: 48px !important;
  padding: 0.65rem 0.75rem !important;
}
/* While typing house#, hide Pay row so keyboard doesn't fight a floating CTA */
body.pub-step-3.pub-door-typing .pub-wizard-actions,
body.pub-step-3 .pub-wizard-actions[data-kb-hide="1"] {
  opacity: 0.35 !important;
  pointer-events: none !important;
}
@media (max-width: 760px) {
  body.pub-step-3.pub-door-typing .pub-wizard-actions,
  body.pub-step-3 .pub-wizard-actions[data-kb-hide="1"] {
    position: fixed !important;
    left: -9999px !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
  body.pub-step-3 #w-door-details {
    position: relative !important;
    z-index: 5 !important;
  }
  body.pub-step-3 .pub-route-locked {
    font-size: 0.85rem !important;
    padding: 0.55rem 0.7rem !important;
    margin-bottom: 0.65rem !important;
  }
}
/* Pay sheet always on top when open */
body.pub-pay-open #w-pay-sheet,
#w-pay-sheet:not([hidden]) {
  display: flex !important;
  z-index: 2147483646 !important;
}


/* ===== uxfix4 polish ===== */
body.pub-step-1 #w-step1-next.is-ready {
  outline: 3px solid #16a34a !important;
  box-shadow: 0 0 0 4px rgba(22, 163, 74, 0.25) !important;
}
body.pub-step-3 #w-door-details {
  scroll-margin-top: 12px !important;
}
/* payfix1: was visibility:hidden — killed Pay button */
body.pub-step-3.pub-door-typing .pub-wizard-actions {
  opacity: 0.92 !important;
}
/* Payment sheet fills usable space above mobile keyboard better */
#w-pay-sheet .pub-pay-sheet__panel {
  max-height: min(92dvh, 900px) !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
}
#w-payment-element {
  min-height: 180px !important;
}
.pub-payment-loading {
  padding: 1.25rem 0.75rem !important;
  text-align: center !important;
  font-weight: 700 !important;
  color: #0b1f3a !important;
}
/* Items chips never invisible on step2 load */
body.pub-step-2.pub-step2-load #w-quick-chips {
  display: flex !important;
  flex-wrap: wrap !important;
  min-height: 44px !important;
  visibility: visible !important;
  opacity: 1 !important;
}


/* ===== uxfix5: day CTA + lift/stairs + single book ===== */
body.pub-step-2.pub-step2-when .pub-wizard-panel[data-panel="2"] > .pub-wizard-actions {
  display: none !important;
}
body.pub-step-2.pub-step2-when #w-sticky-cta.is-pick-day .pub-sticky-cta__price {
  font-size: 0.95rem !important;
  font-weight: 700 !important;
  color: #334155 !important;
}

body.pub-step-2.pub-step2-when #w-sticky-cta.is-book-ready #w-proceed-book-sticky {
  opacity: 1 !important;
  pointer-events: auto !important;
}

/* Lift / stairs — unmistakable selection */
.pub-lift-pick__opts {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.5rem !important;
}
.pub-lift-opt {
  display: block !important;
  margin: 0 !important;
  cursor: pointer !important;
}
.pub-lift-opt input {
  position: absolute !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.pub-lift-opt__card {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 52px !important;
  padding: 0.75rem 1rem !important;
  border: 2px solid #cbd5e1 !important;
  border-radius: 12px !important;
  background: #fff !important;
  font-weight: 700 !important;
  font-size: 1.05rem !important;
  color: #0f172a !important;
  transition: border-color 0.12s, background 0.12s, box-shadow 0.12s !important;
}
.pub-lift-opt__card--stairs {
  border-color: #fdba74 !important;
}
.pub-lift-opt.is-selected .pub-lift-opt__card,
.pub-lift-opt__card.is-selected,
.pub-lift-opt input:checked + .pub-lift-opt__card {
  border-color: #2563eb !important;
  background: #eff6ff !important;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.25) !important;
  color: #1e3a8a !important;
}
.pub-lift-opt.is-selected .pub-lift-opt__card--stairs,
.pub-lift-opt input:checked + .pub-lift-opt__card--stairs {
  border-color: #ea580c !important;
  background: #fff7ed !important;
  box-shadow: 0 0 0 3px rgba(234, 88, 12, 0.22) !important;
  color: #9a3412 !important;
}
.pub-lift-opt__card::after {
  content: "" !important;
}
.pub-lift-opt input:checked + .pub-lift-opt__card::before {
  content: "✓ " !important;
  font-weight: 900 !important;
}
.pub-access-price-hint {
  margin-top: 0.75rem !important;
  padding: 0.75rem 0.85rem !important;
  border-radius: 12px !important;
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  line-height: 1.45 !important;
  color: #9a3412 !important;
  background: #fff7ed !important;
  border: 1px solid #fdba74 !important;
}
.pub-access-price-hint.is-lift {
  color: #1e40af !important;
  background: #eff6ff !important;
  border-color: #93c5fd !important;
}
.pub-next-week-offer {
  margin: 0.75rem 0 !important;
}


/* ===== acfix6: address list MUST show while typing ===== */
#jke-from-to-list:not([hidden]) {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  z-index: 2147483000 !important;
  background: #fff !important;
  border: 2px solid #2563eb !important;
  border-radius: 12px !important;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.28) !important;
  max-height: min(42vh, 320px) !important;
  overflow-y: auto !important;
}
body.pub-step-1 #jke-from-to-list:not([hidden]),
body.pub--book #jke-from-to-list:not([hidden]) {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}
/* never permanently kill list on step1 */
body.pub-step-1 #jke-from-to-list[hidden] {
  /* only when intentionally hidden */
}


/* ===== acfix7: fixed list always on top ===== */
#jke-from-to-list:not([hidden]) {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  z-index: 2147483646 !important;
  background: #ffffff !important;
  border: 2px solid #2563eb !important;
  border-radius: 12px !important;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.35) !important;
  max-height: min(42vh, 300px) !important;
  overflow-y: auto !important;
}





#jke-from-to-list:not([hidden]){display:block!important;max-height:min(30vh,200px)!important;overflow-y:auto!important;z-index:2147483647!important;border:2px solid #2563eb!important;border-radius:12px!important;background:#fff!important}

/* fix2: Book now must be clickable after day selected */
#w-sticky-cta.is-book-ready #w-proceed-book-sticky,
#w-sticky-cta.is-book-ready button#w-proceed-book-sticky {
  pointer-events: auto !important;
  opacity: 1 !important;
  cursor: pointer !important;
  -webkit-user-select: none;
  user-select: none;
}
#w-proceed-book.is-ready,
#w-proceed-book:not([disabled]) {
  pointer-events: auto !important;
}
body.pub-step-2.pub-step2-when #w-sticky-cta.is-book-ready {
  pointer-events: auto !important;
}
/* fix2 stamp */

/* addr3 recovery */
#w-sticky-cta.is-book-ready #w-proceed-book-sticky {
  pointer-events: auto !important;
  opacity: 1 !important;
  cursor: pointer !important;
}
#jke-from-to-list[data-owner="jke-addr3"] {
  z-index: 2147483647 !important;
}
.pub-route-map.is-hidden,
#w-route-map[hidden],
#w-map[hidden],
.pub-map-panel[hidden] {
  display: none !important;
}

/* payfix1 permanent: never permanently kill Pay or Book */
body.pub-step-3 #w-pay {
  pointer-events: auto !important;
  visibility: visible !important;
}
body.pub-step-3:not(.pub-door-typing) .pub-wizard-actions {
  pointer-events: auto !important;
  opacity: 1 !important;
  visibility: visible !important;
}
/* While typing house# only dim sticky, never hide Pay forever */
body.pub-step-3.pub-door-typing #w-pay {
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}
body.pub-step-2.pub-step2-when #w-sticky-cta.is-book-ready #w-proceed-book-sticky {
  pointer-events: auto !important;
  opacity: 1 !important;
  cursor: pointer !important;
}
#w-sticky-cta.is-book-ready #w-proceed-book-sticky {
  pointer-events: auto !important;
  opacity: 1 !important;
}

/* mapfix1: View map panel must show */
body.pub-step2-map-open #w-step2-map-panel {
  display: block !important;
  visibility: visible !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}
body.pub-step2-map-open #w-step2-map-slot {
  display: block !important;
  min-height: 200px !important;
  height: min(42vh, 280px) !important;
  position: relative !important;
}
body.pub-step2-map-open #w-step2-map-slot #w-route-map,
body.pub-step2-map-open #w-route-map {
  display: block !important;
  visibility: visible !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 200px !important;
  max-height: min(42vh, 280px) !important;
}
#w-step2-map-toggle {
  pointer-events: auto !important;
  cursor: pointer !important;
  z-index: 5 !important;
  position: relative !important;
}

/* pick1: obvious selected address */
input.jke-addr-picked,
#w-from.jke-addr-picked,
#w-to.jke-addr-picked {
  border-color: #16a34a !important;
  box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.28) !important;
  background: #f0fdf4 !important;
}
.jke-addr-picked-wrap {
  position: relative;
}
.jke-addr-picked-wrap::after {
  content: "✓ Selected";
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 12px;
  font-weight: 700;
  color: #15803d;
  pointer-events: none;
  background: #f0fdf4;
  padding: 2px 6px;
  border-radius: 6px;
}
#jke-from-to-list[data-owner="jke-places-ac"] .jke-pac-row:active {
  background: #dcfce7 !important;
}

/* bookpay1: Book now + Pay must always be tappable */
body.pub-step-2.pub-step2-when #w-sticky-cta.is-book-ready #w-proceed-book-sticky,
#w-proceed-book-sticky,
#w-proceed-book {
  pointer-events: auto !important;
  opacity: 1 !important;
  visibility: visible !important;
  cursor: pointer !important;
}
body.pub-step-2.pub-step2-when #w-sticky-cta.is-pick-day #w-proceed-book-sticky {
  /* only dim when truly no day — rescue removes is-pick-day when day set */
}
body.pub-step-3 #w-pay {
  pointer-events: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
  display: inline-flex !important;
}
body.pub-pay-open #w-pay-sheet {
  display: block !important;
  visibility: visible !important;
  z-index: 2147483000 !important;
}
#w-payment-element {
  min-height: 180px !important;
}

/* bnfresh Book now MUST receive clicks */
#w-proceed-book-sticky,
#w-proceed-book,
body.pub-step-2 #w-proceed-book-sticky,
body.pub-step-2.pub-step2-when #w-sticky-cta.is-book-ready #w-proceed-book-sticky,
body.pub-step-2.pub-step2-when #w-sticky-cta.is-pick-day #w-proceed-book-sticky {
  pointer-events: auto !important;
  opacity: 1 !important;
  visibility: visible !important;
  cursor: pointer !important;
}
body.pub-step-3 .pub-wizard-panel[data-panel="3"] {
  display: block !important;
}

/* bn1: Book now one-press */
#w-proceed-book-sticky, #w-proceed-book {
  pointer-events: auto !important;
  opacity: 1 !important;
  visibility: visible !important;
  cursor: pointer !important;
  touch-action: manipulation !important;
}
body.pub-step-2.pub-step2-when #w-sticky-cta.is-pick-day #w-proceed-book-sticky {
  pointer-events: auto !important;
  opacity: 1 !important;
}

/* smooth3: calm Book now, no layout thrash */
#w-proceed-book-sticky, #w-proceed-book {
  pointer-events: auto !important;
  opacity: 1 !important;
  cursor: pointer !important;
  touch-action: manipulation !important;
}
body.pub-step-3 .pub-wizard-panel[data-panel="2"] {
  display: none !important;
}
body.pub-step-3 .pub-wizard-panel[data-panel="3"] {
  display: block !important;
}
body.pub-step-3 #w-sticky-cta {
  display: none !important;
}
/* reduce flash during step change */
.pub-wizard-panel {
  transition: opacity 0.15s ease;
}

/* calm1: reduce visual thrash */
.pub-wizard-panel {
  transition: none !important;
}
#w-sticky-cta,
#w-proceed-book-sticky,
#w-proceed-book {
  transition: none !important;
}
/* contain layout thrash in steps */
.pub-wizard-panel[data-panel] {
  contain: layout style;
}
body.pub-step-3 .pub-wizard-panel[data-panel="2"] {
  display: none !important;
}
body.pub-step-3 .pub-wizard-panel[data-panel="3"] {
  display: block !important;
}
body.pub-step-3 #w-sticky-cta {
  display: none !important;
}

/* smoothf1: pay sheet + selected addr + less thrash */
input.jke-addr-picked, #w-from.jke-addr-picked, #w-to.jke-addr-picked {
  border-color: #16a34a !important;
  box-shadow: 0 0 0 3px rgba(22,163,74,.25) !important;
  background: #f0fdf4 !important;
}
#w-proceed-book-sticky, #w-proceed-book, #w-pay {
  pointer-events: auto !important;
  cursor: pointer !important;
  touch-action: manipulation !important;
}
body.pub-pay-open #w-pay-sheet {
  display: block !important;
  visibility: visible !important;
  z-index: 2147483000 !important;
}
#w-payment-element { min-height: 200px !important; }
body.pub-step-3 .pub-wizard-panel[data-panel="2"] { display: none !important; }
body.pub-step-3 .pub-wizard-panel[data-panel="3"] { display: block !important; }
body.pub-step-3 #w-sticky-cta { display: none !important; }
.pub-wizard-panel { transition: none !important; }

/* allfix2 funnel */
input.jke-addr-picked, #w-from.jke-addr-picked, #w-to.jke-addr-picked {
  border-color: #16a34a !important;
  box-shadow: 0 0 0 3px rgba(22,163,74,.25) !important;
  background: #f0fdf4 !important;
}
#w-proceed-book-sticky, #w-proceed-book, #w-pay {
  pointer-events: auto !important;
  cursor: pointer !important;
  touch-action: manipulation !important;
  opacity: 1 !important;
  visibility: visible !important;
}
body.pub-step-2.pub-step2-when #w-sticky-cta.is-pick-day #w-proceed-book-sticky {
  pointer-events: auto !important;
  opacity: 1 !important;
}
body.pub-step-3 .pub-wizard-panel[data-panel="2"] { display: none !important; }
body.pub-step-3 .pub-wizard-panel[data-panel="3"] { display: block !important; }
body.pub-step-3 #w-sticky-cta { display: none !important; }
body.pub-step-3 #w-pay {
  pointer-events: auto !important;
  visibility: visible !important;
  display: inline-flex !important;
}
body.pub-pay-open #w-pay-sheet {
  display: block !important;
  visibility: visible !important;
  z-index: 2147483000 !important;
}
#w-payment-element { min-height: 200px !important; }
.pub-wizard-panel { transition: none !important; }
#jke-from-to-list[data-owner="jke-places-ac"] {
  z-index: 2147483647 !important;
}

/* payorder1: address before pay */
#w-pay[disabled],
#w-pay[aria-disabled="true"] {
  opacity: 0.55 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}
#w-pay-order-hint {
  color: #b45309 !important;
  font-weight: 700 !important;
}
.pub-pay-order-banner {
  order: -1;
}

/* noreentry1 */
#w-proceed-book-sticky, #w-proceed-book, #w-pay {
  pointer-events: auto !important;
  cursor: pointer !important;
  touch-action: manipulation !important;
}
input.jke-addr-picked {
  border-color: #16a34a !important;
  background: #f0fdf4 !important;
}
body.pub-step-3 .pub-wizard-panel[data-panel="2"] { display: none !important; }
body.pub-step-3 .pub-wizard-panel[data-panel="3"] { display: block !important; }
.pub-wizard-panel { transition: none !important; }

/* drop1: list always visible above everything */
#jke-from-to-list[data-owner="jke-dropdown"],
#jke-from-to-list {
  z-index: 2147483647 !important;
}
input.jke-addr-picked {
  border-color: #16a34a !important;
  background: #f0fdf4 !important;
}
#w-from, #w-to {
  pointer-events: auto !important;
}

/* btnfix1 one-tap CTAs */
#w-step1-next,
#w-proceed-book,
#w-proceed-book-sticky,
#w-pay,
#w-step2-map-toggle {
  pointer-events: auto !important;
  cursor: pointer !important;
  touch-action: manipulation !important;
}
body.pub-step-2.pub-step2-when #w-sticky-cta.is-pick-day #w-proceed-book-sticky {
  pointer-events: auto !important;
  opacity: 1 !important;
}
body.pub-step-2.pub-step2-when #w-sticky-cta.is-book-ready #w-proceed-book-sticky {
  pointer-events: auto !important;
  opacity: 1 !important;
}
#w-pay[disabled], #w-pay[aria-disabled="true"] {
  opacity: 0.55 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}
body.pub-step-3 .pub-wizard-panel[data-panel="2"] { display: none !important; }
body.pub-step-3 .pub-wizard-panel[data-panel="3"] { display: block !important; }
body.pub-step-3 #w-sticky-cta { display: none !important; }
body.pub-pay-open #w-pay-sheet {
  display: block !important;
  visibility: visible !important;
  z-index: 2147483000 !important;
}
#jke-from-to-list { z-index: 2147483647 !important; }
input.jke-addr-picked {
  border-color: #16a34a !important;
  background: #f0fdf4 !important;
}
.pub-wizard-panel { transition: none !important; }

/* stable1: no shake */
.pub-wizard-panel { transition: none !important; }
#w-sticky-cta, #w-proceed-book-sticky, #w-proceed-book, #w-step1-next, #w-pay {
  transition: none !important;
  touch-action: manipulation !important;
}
#w-step1-next, #w-proceed-book, #w-proceed-book-sticky, #w-pay, #w-step2-map-toggle {
  pointer-events: auto !important;
  cursor: pointer !important;
}
body.pub-step-2.pub-step2-when #w-sticky-cta.is-pick-day #w-proceed-book-sticky {
  pointer-events: auto !important;
  opacity: 1 !important;
}
body.pub-step-3 .pub-wizard-panel[data-panel="2"] { display: none !important; }
body.pub-step-3 .pub-wizard-panel[data-panel="3"] { display: block !important; }
body.pub-step-3 #w-sticky-cta { display: none !important; }
#w-pay[disabled], #w-pay[aria-disabled="true"] {
  opacity: 0.55 !important;
  pointer-events: none !important;
  cursor: not-allowed !important;
}
body.pub-pay-open #w-pay-sheet {
  display: block !important;
  visibility: visible !important;
  z-index: 2147483000 !important;
}
#jke-from-to-list { z-index: 2147483647 !important; }
input.jke-addr-picked {
  border-color: #16a34a !important;
  background: #f0fdf4 !important;
}
/* reduce map thrash during items */
body.pub-step2-load:not(.pub-step2-map-open) #w-route-map-wrap {
  display: none !important;
}

/* STEPS_CLEAN_COLUMN 20260803stepsClean2 — 1 then 2 then 3… photo other side */
body.pub-home-page #how-it-works .pub-feature-home--steps,
body.pub #how-it-works .pub-feature-home--steps{
display:grid!important;
grid-template-columns:minmax(0,1.25fr) minmax(220px,.85fr)!important;
gap:1.5rem 2rem!important;
align-items:start!important;
margin-top:.85rem!important
}
body.pub-home-page #how-it-works .pub-steps--home,
body.pub-home-page #how-it-works .pub-steps--home.pub-steps--five,
body.pub-home-page #how-it-works ol.pub-steps{
display:flex!important;
flex-direction:column!important;
grid-template-columns:none!important;
gap:.55rem!important;
list-style:none!important;
margin:0!important;
padding:0!important;
width:100%!important
}
body.pub-home-page #how-it-works .pub-steps--home>li{
display:grid!important;
grid-template-columns:2.15rem minmax(0,1fr)!important;
gap:.75rem!important;
align-items:start!important;
width:100%!important;
margin:0!important;
padding:.75rem .9rem!important;
background:#fff!important;
border:1px solid #e2e8f0!important;
border-radius:12px!important;
box-sizing:border-box!important;
text-align:left!important
}
body.pub-home-page #how-it-works .pub-steps__n{
width:2.15rem!important;
height:2.15rem!important;
min-width:2.15rem!important;
border-radius:999px!important;
background:#0b1f3a!important;
color:#fff!important;
font-weight:800!important;
font-size:.95rem!important;
display:flex!important;
align-items:center!important;
justify-content:center!important;
line-height:1!important;
margin:0!important;
flex-shrink:0!important
}
body.pub-home-page #how-it-works .pub-steps--home>li>div{min-width:0!important;text-align:left!important}
body.pub-home-page #how-it-works .pub-steps--home strong{
display:block!important;color:#0b1f3a!important;font-size:.98rem!important;font-weight:700!important;
margin:.1rem 0 .2rem!important;line-height:1.25!important
}
body.pub-home-page #how-it-works .pub-steps--home p{
margin:0!important;font-size:.88rem!important;color:#64748b!important;line-height:1.4!important
}
body.pub-home-page #how-it-works .pub-home-steps-cta{margin:1rem 0 0!important;text-align:left!important}
body.pub-home-page #how-it-works .pub-feature-home__img{
position:sticky!important;top:5.5rem!important;margin:0!important;width:100%!important;
aspect-ratio:4/5!important;max-height:none!important;height:auto!important;min-height:280px!important;
border-radius:16px!important;overflow:hidden!important;border:1px solid #e2e8f0!important;
box-shadow:0 12px 32px rgba(11,31,58,.12)!important;background:#e8eef5!important
}
body.pub-home-page #how-it-works .pub-feature-home__img img{
position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
max-height:none!important;object-fit:cover!important;object-position:center 25%!important;display:block!important
}
@media (max-width:859px){
body.pub-home-page #how-it-works .pub-feature-home--steps{grid-template-columns:1fr!important;gap:1.1rem!important}
body.pub-home-page #how-it-works .pub-feature-home__img{
order:-1!important;position:relative!important;top:auto!important;max-width:360px!important;
margin-left:auto!important;margin-right:auto!important;aspect-ratio:1/1!important;min-height:220px!important
}
body.pub-home-page #how-it-works .pub-feature-home__copy{order:1!important}
body.pub-home-page #how-it-works .pub-steps--home{display:flex!important;flex-direction:column!important;grid-template-columns:none!important}
}
@media (min-width:860px){
body.pub-home-page #how-it-works .pub-steps--home,
body.pub-home-page #how-it-works .pub-steps--home.pub-steps--five{
display:flex!important;flex-direction:column!important;grid-template-columns:none!important
}
}

/* ============================================================
   SERVICE_CARDS_FIX 20260803cardsUnify1
   4th card (house/sofa) was broken: 112px width forced on ALL
   breakpoints + PHOTO_HQ min-height:200px blew the row.
   All five service cards share one layout again.
   ============================================================ */

/* Kill PHOTO_HQ 200px min-height on home service thumbs */
body.pub-home-page .pub-card--home .pub-card__img,
.pub-card--home .pub-card__img,
body.pub-home-page.pub-home-v4 .pub-card--home .pub-card__img {
  min-height: 0 !important;
  max-height: none !important;
  overflow: hidden !important;
  position: relative !important;
  box-sizing: border-box !important;
}

body.pub-home-page .pub-card--home,
.pub-card--home {
  overflow: hidden !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

body.pub-home-page .pub-cards--home,
.pub-cards--home {
  max-width: 100% !important;
  overflow-x: hidden !important;
  box-sizing: border-box !important;
}

body.pub-home-page .pub-card--home .pub-card__img img,
.pub-card--home .pub-card__img img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: cover !important;
  object-position: center 40% !important;
  display: block !important;
  box-sizing: border-box !important;
}

/* Sofa: show crew + door, not random crop */
body.pub-home-page .pub-card--home[data-service="house"] .pub-card__img img,
.pub-card--home[data-service="house"] .pub-card__img img {
  object-position: center 38% !important;
}

/* Phone / small: horizontal row like the other cards */
@media (max-width: 899px) {
  body.pub-home-page .pub-card--home,
  .pub-card--home {
    display: grid !important;
    grid-template-columns: 112px minmax(0, 1fr) !important;
    align-items: stretch !important;
    min-height: 112px !important;
  }
  body.pub-home-page .pub-card--home .pub-card__img,
  .pub-card--home .pub-card__img {
    width: 112px !important;
    min-width: 112px !important;
    max-width: 112px !important;
    height: 100% !important;
    min-height: 112px !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    align-self: stretch !important;
  }
  body.pub-home-page .pub-card--home .pub-card__body,
  .pub-card--home .pub-card__body {
    min-width: 0 !important;
    overflow: hidden !important;
  }
  /* house is NOT special-cased for width anymore */
  body.pub-home-page .pub-card--home[data-service="house"] .pub-card__img,
  .pub-card--home[data-service="house"] .pub-card__img {
    width: 112px !important;
    min-width: 112px !important;
    max-width: 112px !important;
    min-height: 112px !important;
    height: 100% !important;
    aspect-ratio: auto !important;
  }
}

@media (max-width: 420px) {
  body.pub-home-page .pub-card--home,
  .pub-card--home {
    grid-template-columns: 96px minmax(0, 1fr) !important;
  }
  body.pub-home-page .pub-card--home .pub-card__img,
  .pub-card--home .pub-card__img,
  body.pub-home-page .pub-card--home[data-service="house"] .pub-card__img,
  .pub-card--home[data-service="house"] .pub-card__img {
    width: 96px !important;
    min-width: 96px !important;
    max-width: 96px !important;
  }
}

/* Desktop / tablet multi-col: full-width image on top of each card */
@media (min-width: 900px) {
  body.pub-home-page .pub-card--home,
  .pub-card--home {
    display: flex !important;
    flex-direction: column !important;
  }
  body.pub-home-page .pub-card--home .pub-card__img,
  .pub-card--home .pub-card__img,
  body.pub-home-page .pub-card--home[data-service="house"] .pub-card__img,
  .pub-card--home[data-service="house"] .pub-card__img {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    aspect-ratio: 16 / 9 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: 200px !important;
  }
}
