/* Classic Downtown v2: the chosen direction (2026-09-30), layered on bob-tour.css.
   Order: hero + facts bar (v1) / tasting menu beside the photo reel / every
   detail arranged / story + booking card / map / quote / founder / private
   table + gifts / FAQ / more tours. Welcome first, book when it is time. */

/* Background rhythm, now that the closing band is gone:
   facts (black) > taste (black, one dark block) > care (white) > main (cream)
   > scenes (white) > map (cream) > quote (black) > faq (white) > private (black)
   > founder (cream) > more tours (white) > founder (cream) > private (black) > faq (white) > more (cream). */
.bt-v2 .bt-main { background: var(--bt-cream); }
.bt-v2 .bt-map { background: var(--bt-cream); padding-top: 96px; }
.bt-v2 .bt-map .bt-h2 { margin-bottom: 30px !important; }
/* Bottom of the page: quote (black) > FAQ (white) > private table (black)
   > founder (cream) > more tours (white) > footer (orange). */
.bt-v2 .bt-founder { background: var(--bt-cream); }
.bt-v2 .bt-other { background: #fff; }
.bt-v2 .bt-other .related-card { background: var(--bt-cream); }
.bt-v2 .bt-faq { background: #fff; }
.bt-v2 .bt-h2 { text-wrap: balance; }

/* ---- Tasting menu beside a few photos, on black ------------------------- */
.bt-taste { background: var(--bt-ink); padding: 120px 0; }
.bt-taste__grid { max-width: 1240px; margin: 0 auto; padding: 0 40px; display: grid; grid-template-columns: 460px minmax(0, 1fr); gap: 64px; align-items: center; }
.bt-taste__grid > * { min-width: 0; }
.bt-taste .bt-menu__card { background: var(--bt-cream); margin: 0; max-width: none; }
.bt-shots { display: grid; grid-template-columns: 1.15fr 0.85fr; grid-template-rows: 250px 330px; gap: 16px; }
.bt-shot { margin: 0; overflow: hidden; }
.bt-shot--a { grid-column: 1; grid-row: 1 / span 2; }
.bt-shot--b { grid-column: 2; grid-row: 1; }
.bt-shot--c { grid-column: 2; grid-row: 2; }
.bt-shot__open { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: #2a2a2a; cursor: zoom-in; overflow: hidden; }
.bt-shot__open img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.bt-shot__open:hover img { transform: scale(1.04); }
.bt-shot__open:focus-visible { outline: 3px solid var(--bt-orange); outline-offset: 3px; }
@media (max-width: 1100px) {
  .bt-taste__grid { grid-template-columns: 1fr; gap: 40px; }
  .bt-taste .bt-menu__card { max-width: 620px; margin: 0 auto; }
  .bt-shots { grid-template-rows: 220px 260px; max-width: 760px; width: 100%; margin: 0 auto; }
}
@media (max-width: 640px) {
  .bt-taste { padding: 64px 0; }
  .bt-taste__grid { padding: 0 20px; }
  .bt-shots { grid-template-rows: 150px 190px; gap: 10px; }
}

/* ---- Scenes from the tour: gap-free masonry that loops forever ------------ */
.bt-scenes { background: #fff; padding: 110px 0; }
.bt-scenes__head { margin-bottom: 36px; }
.bt-scenes__head .bt-h2 { margin-bottom: 0 !important; }
.bt-mz { --h: 520px; --gap: 12px; overflow-x: auto; scrollbar-width: none; outline: none; }
.bt-mz::-webkit-scrollbar { display: none; }
/* Strip photos before bob-gallery.js gives them a src: no alt text or broken-image box. */
.bt-mz img[data-src] { visibility: hidden; }
.bt-mz__track, .bt-mz__set { display: flex; gap: var(--gap); }
.bt-mz__track { width: max-content; column-gap: var(--gap); }
.bt-mz__col { flex: 0 0 var(--w); height: var(--h); display: flex; flex-direction: column; gap: var(--gap); }
.bt-mz__col--stack .bt-mz__open { height: calc((var(--h) - var(--gap)) / 2); }
.bt-mz__col--tall .bt-mz__open { height: 100%; }
.bt-mz__open { display: block; width: 100%; padding: 0; border: 0; background: #eee; cursor: zoom-in; overflow: hidden; }
.bt-mz__open img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s ease; }
.bt-mz__open:hover img { transform: scale(1.04); }
.bt-mz__open:focus-visible { outline: 3px solid var(--bt-orange); outline-offset: -3px; }
@media (max-width: 640px) {
  .bt-scenes { padding: 64px 0; }
  .bt-mz { --h: 340px; --gap: 8px; }
  .bt-mz__col { flex-basis: calc(var(--w) * 0.66); }
}

/* ---- Lightbox ------------------------------------------------------------ */
.bt-lightbox { border: 0; padding: 0; background: transparent; max-width: 100vw; max-height: 100vh; width: 100vw; height: 100vh; }
.bt-lightbox::backdrop { background: rgba(12,10,8,0.92); }
.bt-lightbox[open] { display: flex; align-items: center; justify-content: center; }
.bt-lightbox figure { margin: 0; max-width: min(1100px, 86vw); text-align: center; pointer-events: none; }
.bt-lightbox img { max-width: 100%; max-height: 80vh; width: auto; height: auto; display: block; margin: 0 auto; }
.bt-lightbox figcaption { margin-top: 14px; font: 300 italic 16px/1.5 'Lato', sans-serif; color: rgba(255,255,255,0.75); }
.bt-lightbox button { position: absolute; background: none; border: 0; color: #fff; cursor: pointer; font-size: 44px; line-height: 1; width: 56px; height: 56px; opacity: .8; }
.bt-lightbox button:hover { opacity: 1; color: var(--bt-orange); }
.bt-lightbox__close { top: 18px; right: 22px; }
.bt-lightbox__prev { left: 18px; top: 50%; transform: translateY(-50%); }
.bt-lightbox__next { right: 18px; top: 50%; transform: translateY(-50%); }
@media (max-width: 640px) { .bt-lightbox__prev, .bt-lightbox__next { top: auto; bottom: 20px; transform: none; } .bt-lightbox figure { max-width: 94vw; } }

/* ---- The Tasting Menu --------------------------------------------------- */
.bt-menu__card { max-width: 620px; margin: 0 auto; background: var(--bt-cream); padding: 64px 56px 56px; text-align: center; outline: 1px solid rgba(242,157,35,0.6); outline-offset: -14px; }
.bt-menu__eyebrow { font-size: 11px !important; font-weight: 700; letter-spacing: 0.34em; text-transform: uppercase; color: var(--bt-muted) !important; }
.bt-menu__title { font-size: 52px !important; line-height: 1.1; color: var(--bt-orange-ink) !important; margin: 10px 0 4px !important; }
.bt-menu__sub { font-size: 15px !important; font-style: italic; color: var(--bt-text) !important; }
.bt-menu__list { list-style: none; margin: 36px 0 0; padding: 0; }
.bt-menu__list li { padding: 22px 0; border-top: 1px solid var(--bt-line); display: flex; flex-direction: column; gap: 4px; margin: 0; font-size: inherit; }
.bt-menu__list li::before { content: none; }
.bt-menu__course { font-size: 14px; font-weight: 700; letter-spacing: 0.24em; text-transform: uppercase; color: var(--bt-ink); }
.bt-menu__note { font-size: 16px; font-weight: 300; font-style: italic; line-height: 1.6; color: var(--bt-text); }
.bt-menu__pairing { border-top: 1px solid var(--bt-ink); margin-top: 6px !important; padding-top: 22px; font-size: 16px !important; font-style: italic; color: var(--bt-ink) !important; }
.bt-menu__pairing span { display: block; font-style: normal; font-size: 11px; font-weight: 700; letter-spacing: 0.3em; text-transform: uppercase; color: var(--bt-orange-ink); margin-bottom: 4px; }
@media (max-width: 640px) { .bt-menu { padding: 64px 0; } .bt-menu__card { padding: 48px 26px 40px; } .bt-menu__title { font-size: 42px !important; } }

/* ---- Every detail, arranged --------------------------------------------- */
.bt-care { padding: 110px 0; }
.bt-care__grid { list-style: none; margin: 24px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 56px; }
.bt-care__grid li { border-top: 1px solid var(--bt-line); padding: 30px 0 34px; margin: 0; font-size: inherit; }
.bt-care__grid li::before { content: none; }
.bt-care__grid h3 { font-size: 13px; font-weight: 700; letter-spacing: 0.24em; text-transform: uppercase; margin-bottom: 10px !important; }
.bt-care__grid h3::before { content: ""; display: block; width: 28px; height: 2px; background: var(--bt-orange); margin-bottom: 18px; }
.bt-care__grid p { font-size: 16px !important; line-height: 1.7 !important; }
@media (max-width: 900px) { .bt-care { padding: 72px 0; } .bt-care__grid { grid-template-columns: 1fr 1fr; gap: 0 32px; } }
@media (max-width: 560px) { .bt-care__grid { grid-template-columns: 1fr; } }

/* ---- A private table ---------------------------------------------------- */
.bt-private { display: grid; grid-template-columns: 1.1fr 1fr; background: var(--bt-ink); color: rgba(255,255,255,0.82); }
.bt-private__img { min-height: 560px; overflow: hidden; }
.bt-private__img img { width: 100%; height: 100%; object-fit: cover; max-width: none !important; }
.bt-private__copy { padding: 96px 8% 96px 72px; align-self: center; }
.bt-private .bt-script { color: var(--bt-orange) !important; }
.bt-private .bt-h2 { color: #fff; }
.bt-private__copy > p:not(.bt-script) { max-width: 44ch; margin-bottom: 30px; font-size: 17px; }
.bt-private__gift { margin-top: 56px; padding-top: 36px; border-top: 1px solid rgba(255,255,255,0.14); }
.bt-private__gift .bt-script { font-size: 24px !important; }
.bt-private__gift p:not(.bt-script) { font-size: 16px; margin-bottom: 18px; }
@media (max-width: 900px) { .bt-private { grid-template-columns: 1fr; } .bt-private__img { min-height: 320px; height: 52vw; } .bt-private__copy { padding: 64px 20px; } }

/* =========================================================================
   Where each tour begins: live map
   ========================================================================= */
.bt-map { background: var(--bt-cream); padding: 110px 0 90px; }
.bt-map__intro { text-align: center; max-width: 52ch; margin: -6px auto 40px !important; font-size: 17px; }
.bt-map__frame { max-width: 1160px; margin: 0 auto; padding: 0 40px; }
.bt-map__canvas { height: 520px; background: #e9e6e1; border: 1px solid var(--bt-line); }
.bt-map__fail { padding: 40px; text-align: center; color: var(--bt-muted); }
.bt-map__nav { display: flex; align-items: center; gap: 12px; margin-top: 22px; }
.bt-map__arrow { flex: none; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--bt-line); background: #fff; font-size: 22px; line-height: 1; color: var(--bt-ink); cursor: pointer; }
.bt-map__arrow:hover { border-color: var(--bt-ink); }
.bt-map__cards { flex: 1; min-width: 0; display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 2px; }
.bt-map__cards::-webkit-scrollbar { display: none; }
.bt-map__card { flex: 0 0 calc((100% - 48px) / 5); min-width: 190px; scroll-snap-align: center; display: flex; flex-direction: column; gap: 4px; padding: 16px 16px 18px; background: #fff; border: 1px solid var(--bt-line); border-top: 3px solid #cfcac2; cursor: pointer; text-align: left; transition: border-color .2s, box-shadow .2s; }
.bt-map__card:hover { box-shadow: 0 16px 30px -22px rgba(0,0,0,0.4); }
.bt-map__card.is-active { border-top-color: var(--bt-orange); box-shadow: 0 16px 30px -22px rgba(0,0,0,0.45); }
.bt-map__tag { font-size: 10px; font-weight: 700; letter-spacing: 0.24em; text-transform: uppercase; color: var(--bt-muted); }
.bt-map__card.is-active .bt-map__tag { color: var(--bt-orange-ink); }
.bt-map__title { font-size: 16px; font-weight: 700; line-height: 1.3; color: var(--bt-ink); }
.bt-map__where { font-size: 14px; line-height: 1.45; color: var(--bt-text); }
.bt-map__link { margin-top: 6px; font-size: 11px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--bt-ink); border-bottom: 1px solid var(--bt-orange); align-self: flex-start; }
/* Pennants, after the orange arrow labels on her original map. */
.bt-pin { position: relative; padding: 0; border: 0; background: none; cursor: pointer; transform: translate(-2px, 0); }
.bt-pin::after { content: ""; position: absolute; left: 0; bottom: -7px; width: 9px; height: 9px; border-radius: 50%; background: #9c968d; box-shadow: 0 0 0 2px #fff; }
.bt-pin__flag { display: block; position: relative; margin-bottom: 8px; padding: 7px 18px 7px 11px; background: #cfcac2; color: #3d3d3d; font: 900 11px/1.2 'Lato', sans-serif; letter-spacing: 0.1em; text-transform: uppercase; white-space: nowrap; clip-path: polygon(0 0, calc(100% - 9px) 0, 100% 50%, calc(100% - 9px) 100%, 0 100%); }
.bt-pin.is-active .bt-pin__flag { background: var(--bt-orange); color: var(--bt-ink); font-size: 12px; padding: 9px 22px 9px 13px; }
.bt-pin.is-active::after { background: var(--bt-ink); }
.bt-map .maplibregl-ctrl-attrib { font-size: 10px; }
@media (max-width: 900px) {
  .bt-map { padding: 72px 0 64px; }
  .bt-map__frame { padding: 0; }
  .bt-map__canvas { height: 420px; border-left: 0; border-right: 0; }
  .bt-map__nav { padding: 0 !important; margin-top: 16px; }
  .bt-map__arrow { display: none; }
  .bt-map__cards { padding: 2px 20px; scroll-padding: 0 20px; }
  .bt-map__card { flex-basis: 78%; min-width: 0; }
}

/* ---- Where are you staying? A bar flush on the top edge of the map --------- */
.bt-map__frame { position: relative; }
.bt-stay { position: relative; z-index: 5; display: flex; align-items: center; gap: 20px; margin: 0; padding: 12px 12px 12px 24px; background: #efe6d6; border: 1px solid var(--bt-line); border-bottom: 0; }
.bt-stay__label { flex: none; margin: 0; font-size: 11px; font-weight: 700; letter-spacing: 0.26em; text-transform: uppercase; color: var(--bt-ink); }
.bt-stay__field { position: relative; flex: 1; display: flex; align-items: center; background: #fff; border: 1px solid #ddd2bf; }
.bt-stay__field input[type=text] { flex: 1; min-width: 0; border: 0 !important; margin: 0 !important; box-shadow: none !important; padding: 0 14px !important; height: 46px !important; line-height: 46px; font: 16px 'Lato', sans-serif; color: var(--bt-ink); background: transparent; }
.bt-stay__field input:focus { outline: none; }
.bt-stay__field:focus-within { box-shadow: 0 0 0 3px rgba(242,157,35,0.55); }
.bt-stay__clear { flex: none; border: 0; background: none; font-size: 22px; line-height: 1; color: var(--bt-muted); padding: 0 10px; cursor: pointer; }
.bt-stay__go { flex: none; width: 46px; height: 46px; border: 0; background: var(--bt-orange); color: var(--bt-ink); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.bt-stay__go svg { width: 22px; height: 22px; }
.bt-stay__go:hover { background: #fff; box-shadow: inset 0 0 0 2px var(--bt-orange); }
.bt-stay__list { position: absolute; left: 0; right: 0; top: 100%; margin: 4px 0 0; padding: 6px 0; list-style: none; background: #fff; box-shadow: 0 18px 40px -12px rgba(0,0,0,0.35); max-height: 320px; overflow-y: auto; z-index: 10; }
.bt-stay__list li { margin: 0; font-size: inherit; }
.bt-stay__list li::before { content: none; }
.bt-stay__opt { display: flex; flex-direction: column; gap: 1px; padding: 10px 16px; cursor: pointer; }
.bt-stay__opt.is-hi, .bt-stay__opt:hover { background: var(--bt-cream); }
.bt-stay__name { font-size: 15px; font-weight: 700; color: var(--bt-ink); line-height: 1.3; }
.bt-stay__detail { font-size: 13px; color: var(--bt-muted); line-height: 1.3; }
.bt-stay__msg { padding: 12px 16px; font-size: 14px; color: var(--bt-muted); }
@media (max-width: 700px) {
  .bt-map form.bt-stay { flex-direction: column; align-items: stretch; gap: 10px; padding: 16px 16px 14px; }
  .bt-map .bt-stay__label { text-align: left; }
}
.bt-map__dist { font-size: 14px; font-weight: 700; color: var(--bt-ink); margin-top: 4px; }
.bt-map__links { display: flex; gap: 16px; margin-top: auto; padding-top: 6px; }
.bt-map__canvas { border-top: 0 !important; }
.bt-hotel { display: flex; flex-direction: column; align-items: center; pointer-events: none; }
.bt-hotel__label { background: var(--bt-ink); color: #fff; font: 700 11px/1.2 'Lato', sans-serif; letter-spacing: 0.06em; padding: 6px 10px; white-space: nowrap; max-width: 200px; overflow: hidden; text-overflow: ellipsis; margin-bottom: 6px; }
.bt-hotel__dot { width: 14px; height: 14px; border-radius: 50%; background: var(--bt-ink); box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--bt-ink); }

/* Her theme pads every text input for the old form layout; reset it here. */
.bt-map__links { flex-wrap: wrap; gap: 6px 18px; }
.bt-map__link { white-space: nowrap; }


/* Two of the stills beside the tasting menu drift: one in, one out, 20s each way. */
@keyframes btZoomIn { from { transform: scale(1); } to { transform: scale(1.12); } }
@keyframes btZoomOut { from { transform: scale(1.12); } to { transform: scale(1); } }
.bt-shot--a img { animation: btZoomIn 20s ease-in-out infinite alternate; }
.bt-shot--c img { animation: btZoomOut 20s ease-in-out infinite alternate; }
.bt-shot--a .bt-shot__open:hover img, .bt-shot--c .bt-shot__open:hover img { transform: none; }
@media (prefers-reduced-motion: reduce) { .bt-shot--a img, .bt-shot--c img { animation: none; } }

/* Hero: the DateForward buy / change-date pair, in her palette. dateforward.css
   reads these tokens; its slide-in panel was built for a dark photo hero. */
.bt-v2 .bt-hero { --action: #f29d23; --action-dark: #d9841a; --brand: #f29d23; --brand-dark: #d9841a; --white: #fff; --sans: 'Lato', sans-serif; --serif: 'Lato', sans-serif; --ease: ease; }
.bt-v2 #heroActions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; }
.bt-v2 .tdp-buy { border-radius: 0; background: var(--bt-orange); color: var(--bt-ink); padding: 12px 30px; min-height: 52px; }
.bt-v2 .tdp-buy:hover { background: #fff; }
.bt-v2 .tdp-buy__label { letter-spacing: 0.24em; }
.bt-v2 .tdp__change { color: #fff; font-size: 12px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; border-bottom: 1px solid rgba(255,255,255,0.6); padding-bottom: 3px; }
.bt-v2 .tdp.open .tdp__inner { border-radius: 0; }
.bt-v2 .tdp__time { border-radius: 0; color: var(--bt-ink); }
.bt-v2 .tdp__time--call { background: #fff; border-color: #fff; }
.bt-v2 .tdp-d.open .tdp-d__disc::before { content: none; }
.bt-v2 .tdp-d.call .tdp-d__disc { border-color: var(--bt-orange); color: var(--bt-orange); }
/* A light rule under the quick facts, where the black bar meets the black menu band. */
.bt-v2 .bt-facts { border-bottom: 1px solid rgba(255,255,255,0.16); }

/* Visible breadcrumb: small, quiet, and a real link up to the tours overview. */
.bt-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 22px; font-size: 11px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.7); }
.bt-crumbs a { color: rgba(255,255,255,0.85) !important; text-decoration: none; border-bottom: 1px solid transparent; }
.bt-crumbs a:hover { border-bottom-color: var(--bt-orange); }
.bt-crumbs span[aria-hidden] { opacity: 0.5; }

/* =========================================================================
   Home page, in the tour page's language (2026-09-30).
   hero > facts (black) > care (white) > pick (cream) > intro (white)
   > map (cream) > quotes (black) > faq (white) > private (black) > founder (cream)
   ========================================================================= */
.bt-home__h1 .heading-cursive { display: block; font-size: clamp(56px, 7.5vw, 104px); line-height: 1; color: #fff; }
.bt-home__sub { font-size: clamp(19px, 1.8vw, 24px) !important; font-weight: 300; color: rgba(255,255,255,0.92) !important; margin: -18px 0 34px !important; max-width: 30ch; }
.bt-link--ink { color: var(--bt-ink) !important; border-bottom-color: var(--bt-orange); }
.bt-link--ink:hover { color: var(--bt-orange-ink) !important; }

/* Choose your day: the picker, set like the rest of the page */
.bt-pick { background: var(--bt-cream); padding: 110px 0; }
.bt-home .dpx { margin-top: 10px; }
.bt-home .dpx-cal__month { font: 700 18px 'Lato', sans-serif; }
.bt-home .bx-card { border: 0; background: #fff; box-shadow: none; transition: box-shadow .3s; }
.bt-home .bx-card:hover { transform: none; box-shadow: 0 30px 50px -30px rgba(20,20,20,0.35); }
.bt-home .bx-card__img { aspect-ratio: 4 / 3; }
.bt-home .bx-card__sub { letter-spacing: 0.24em !important; font-size: 11px !important; }
.bt-home .bx-card__title { font-family: 'Lato', sans-serif !important; font-weight: 300 !important; font-size: 24px; line-height: 1.25; }
.bt-home .bx-card__title a { color: var(--bt-ink); }
.bt-home .bx-card__meta { border-top-color: var(--bt-line); }
.bt-home .bx-card__meta b { font-weight: 300; color: var(--bt-ink); }
.bt-home .bx-card .homepage_cta { font-size: 12px; letter-spacing: 0.2em; padding: 14px 16px; border: 0 !important; }
.bt-home .bx-card .yellow_cta { color: var(--bt-ink) !important; }
.bt-home .dpx-res__head { letter-spacing: 0.24em; font-size: 12px; }
@media (max-width: 640px) { .bt-pick { padding: 64px 0; } }

/* Her intro, editorial */
.bt-intro { padding: 110px 0; }
.bt-intro__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 80px; align-items: center; }
.bt-intro__copy p:not(.bt-script) { max-width: 52ch; margin-bottom: 18px !important; }
.bt-intro__img { margin: 0; }
.bt-intro__img img { width: 100%; height: auto; }
@media (max-width: 860px) { .bt-intro { padding: 72px 0; } .bt-intro__grid { grid-template-columns: 1fr; gap: 40px; } }

/* Guest quotes: three, on black */
.bt-quotes { background: var(--bt-ink); padding: 110px 0; }
.bt-quotes .bt-script { color: var(--bt-orange) !important; margin-bottom: 40px !important; }
.bt-quotes__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; }
.bt-quotes__item { margin: 0; border-top: 1px solid rgba(255,255,255,0.14); padding-top: 28px; }
.bt-quotes__item blockquote { margin: 0; }
.bt-quotes__item blockquote::before { content: "\201C"; display: block; font-size: 60px; line-height: 0.5; font-weight: 300; color: var(--bt-orange); margin-bottom: 18px; }
.bt-quotes__item p { font-size: 18px !important; font-weight: 300; font-style: italic; line-height: 1.65 !important; color: #fff !important; }
.bt-quotes__item figcaption { margin-top: 20px; font-size: 12px; font-weight: 700; letter-spacing: 0.24em; text-transform: uppercase; color: var(--bt-orange); }
.bt-quotes__item figcaption span { display: block; margin-top: 4px; color: rgba(255,255,255,0.5); letter-spacing: 0.18em; }
@media (max-width: 900px) { .bt-quotes { padding: 72px 0; } .bt-quotes__grid { grid-template-columns: 1fr; gap: 36px; } }

.bt-home .bt-faq__more { text-align: center; margin-top: 36px !important; }
.bt-private__btns { display: flex; align-items: center; flex-wrap: wrap; gap: 18px 28px; }
.bt-home .bt-map { background: var(--bt-cream); }
/* The picker's own styles (bob-home.css) read --bx-* tokens that used to live on
   the old .bx sections. The rebuilt home has none, so define them here. */
.bt-home { --bx-orange: #f29d23; --bx-orange-dark: #d9841a; --bx-orange-soft: #fdf1df; --bx-ink: #141414; --bx-text: #3d3d3d; --bx-muted: #767676; --bx-dim: #bbb; --bx-line: #e6e0d6; --bx-cream: #faf6f0; }

/* =========================================================================
   Booking up top (2026-10-01): three hospitality points + the booking card
   right under the quick facts; the story follows. Desktop: card on the right,
   sticky through the story. Tablet/mobile: points > card > story.
   ========================================================================= */
.bt-main--top { background: var(--bt-cream); padding: 96px 0 110px; }
.bt-main__grid--top { grid-template-columns: minmax(0, 1fr) 420px; grid-template-areas: "care book" "story book"; column-gap: 96px; row-gap: 0; }
.bt-main__grid--top .bt-care3 { grid-area: care; }
.bt-main__grid--top .bt-book { grid-area: book; align-self: start; }
.bt-main__grid--top .bt-story { grid-area: story; padding-top: 72px; margin-top: 64px; border-top: 1px solid var(--bt-line); }
.bt-care3 .bt-h2 { max-width: 18ch; }
.bt-care__grid--3 { grid-template-columns: 1fr; gap: 0; margin-top: 8px; max-width: 560px; }
.bt-care__grid--3 li { display: grid; grid-template-columns: 210px 1fr; gap: 24px; align-items: baseline; padding: 22px 0; }
.bt-care__grid--3 h3 { margin: 0 !important; }
.bt-care__grid--3 h3::before { display: inline-block; vertical-align: middle; width: 18px; margin: 0 12px 3px 0; }
.bt-care__grid--3 p { font-size: 16px !important; }
@media (max-width: 980px) {
  .bt-main--top { padding: 64px 0 72px; }
  .bt-main__grid--top { grid-template-columns: 1fr; grid-template-areas: "care" "book" "story"; }
  .bt-main__grid--top .bt-book { margin-top: 40px; justify-self: stretch; max-width: 560px; }
  .bt-main__grid--top .bt-story { margin-top: 56px; padding-top: 56px; }
}
@media (max-width: 640px) {
  .bt-care__grid--3 li { grid-template-columns: 1fr; gap: 6px; padding: 18px 0; }
  .bt-main__grid--top .bt-book { margin-top: 28px; }
}
/* Three points: title above one sentence, at every size. */
.bt-care__grid--3 li { grid-template-columns: 1fr !important; gap: 8px !important; padding: 22px 0 !important; }
.bt-care__grid--3 h3::before { display: inline-block; vertical-align: middle; width: 18px; margin: 0 12px 3px 0; }
.bt-care__grid--3 p { max-width: 52ch; }
/* Home: the same three, side by side on desktop. */
.bt-care__grid--row { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .bt-care__grid--row { grid-template-columns: 1fr; } }
/* iPad: the card centred at a comfortable width, not half-width and stranded. */
@media (max-width: 980px) and (min-width: 641px) {
  .bt-main__grid--top .bt-book { justify-self: center; width: 100%; max-width: 600px; }
  .bt-care3, .bt-main__grid--top .bt-story { max-width: 600px; width: 100%; justify-self: center; }
}
/* Phones: one-line breadcrumb. */
@media (max-width: 640px) { .bt-crumbs { font-size: 9.5px; letter-spacing: 0.14em; gap: 6px; margin-bottom: 16px; } }
/* Map cards: no tall empty card when one has no link. */
.bt-map__card { justify-content: flex-start; }
/* Her theme gives .homepage_cta a 200px width and 100px side margins on phones,
   which forced picker cards wider than the screen. Neutralise it here. */
.bt-home .bx-card .homepage_cta { width: auto !important; margin: 0 !important; float: none !important; }
.bt-home .bx-card__btns { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.bt-home .bx-grid > .bx-card { min-width: 0; }
@media (max-width: 640px) { .bt-home .bx-grid > .bx-card { flex: 0 0 82vw; } }

/* Order (2026-10-01): care + calendar > tasting menu > experience + scenes. */
.bt-main__grid--top { grid-template-areas: "care book"; }
.bt-main--top { padding-bottom: 96px; }
@media (max-width: 980px) { .bt-main__grid--top { grid-template-areas: "care" "book"; } }
.bt-exp { padding-top: 110px; }
.bt-exp__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 80px; align-items: start; margin-bottom: 72px; }
.bt-exp .bt-story { padding: 0; margin: 0; border: 0; }
.bt-exp__details .bt-h3 { margin-top: 8px !important; }
.bt-exp__details .bt-details { grid-template-columns: 1fr; }
@media (max-width: 900px) { .bt-exp { padding-top: 72px; } .bt-exp__grid { grid-template-columns: 1fr; gap: 24px; margin-bottom: 48px; } .bt-exp__details .bt-details { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .bt-exp__details .bt-details { grid-template-columns: 1fr; } }
/* Hospitality points: no rule above the first; second sentence on desktop only. */
.bt-care__grid--3 li:first-child { border-top: 0; }
@media (max-width: 980px) { .bt-more { display: none; } }
/* Phones: story, then the gallery, then the tour details. */
@media (max-width: 640px) {
  .bt-exp { display: flex; flex-direction: column; }
  .bt-exp__grid { display: contents; }
  .bt-exp .bt-story { order: 1; padding: 0 20px; }
  .bt-exp .bt-mz { order: 2; margin: 40px 0 48px; }
  .bt-exp .bt-exp__details { order: 3; padding: 0 20px; }
}
/* Mobile bar: two-line buy button when a date is chosen, like the hero. */

/* Tour hero, simplified (2026-10-02): two styles only. A small tracked line and
   the light headline, both inside the H1 so it still reads as one phrase. */
.bt-hero__title--one { max-width: 16ch; }
.bt-hero__kicker { display: block; font-family: 'Lato', sans-serif; font-size: 13px; font-weight: 700; letter-spacing: 0.32em; text-transform: uppercase; color: var(--bt-orange); margin-bottom: 18px; line-height: 1.4; }
.bt-v2:not(.bt-home) .bt-hero { height: min(74vh, 720px); min-height: 520px; }
/* Phones: the photo at about half the old height, the words below it on black. */
@media (max-width: 640px) {
  .bt-v2:not(.bt-home) .bt-hero { display: block; height: auto; min-height: 0; background: var(--bt-ink); }
  .bt-v2:not(.bt-home) .bt-hero__img { position: relative; inset: auto; height: 40vh; min-height: 260px; max-height: 360px; }
  .bt-v2:not(.bt-home) .bt-hero__shade { display: none; }
  .bt-v2:not(.bt-home) .bt-hero__copy { padding: 30px 20px 34px; }
  .bt-v2:not(.bt-home) .bt-hero__title { font-size: 34px !important; margin-bottom: 26px !important; }
  .bt-hero__kicker { font-size: 11px; margin-bottom: 12px; }
}
/* Small script line is the H1 ("Boston Food & History Tour"); the big line is the
   tour's exact name, as it appears in the nav and on every tour card. */
.bt-page h1.bt-hero__h1 { font-size: 30px; line-height: 1.15; font-weight: 400; color: var(--bt-orange) !important; margin: 0 0 10px !important; }
@media (max-width: 640px) { .bt-page h1.bt-hero__h1 { font-size: 24px; margin-bottom: 6px !important; } }
.bt-page h1.bt-hero__h1 { font-size: 30px !important; line-height: 1.15 !important; }
.bt-page p.bt-hero__title--one { line-height: 1.08 !important; }
@media (max-width: 640px) { .bt-page h1.bt-hero__h1 { font-size: 24px !important; } }

/* ===== Home hero: full screen, header floats over it (2026-10-05) =====
   The sitewide header is fixed and clear on the home page (site-header.css,
   .bh--overlay), so the hero starts at the very top and fills the screen. */
.bt-v2.bt-home .bt-hero { height: 100vh; height: 100svh; min-height: 620px; max-height: none; align-items: flex-end; }
.bt-v2.bt-home .bt-hero__shade { background: linear-gradient(90deg, rgba(12,10,8,0.72) 0%, rgba(12,10,8,0.4) 48%, rgba(12,10,8,0.08) 82%), linear-gradient(0deg, rgba(12,10,8,0.7) 0%, rgba(12,10,8,0) 52%); }
.bt-v2.bt-home .bt-hero__copy { padding-top: 120px; padding-bottom: 56px; }
.bt-home .bt-hero__btns { gap: 14px; margin-bottom: 40px; }
.bt-home .bt-hero__btns .bt-btn { min-width: 220px; }
.bt-home .bt-btn--ghost { background: rgba(12,10,8,0.25); }
.bt-home .bt-btn--ghost:hover { background: #fff; color: var(--bt-ink) !important; border-color: #fff; }
/* The little box in the top corner (desktop), as on Katy Mickelson's site. */
.bt-hero__note { position: absolute; top: 120px; right: 40px; z-index: 2; max-width: 300px; margin: 0; padding: 20px 22px 18px; background: rgba(250,246,240,0.95); border-left: 4px solid var(--bt-orange); box-shadow: 0 24px 48px -28px rgba(0,0,0,0.6); }
.bt-hero__note blockquote { margin: 0 0 10px; padding: 0; border: 0; font: italic 300 17px/1.45 'Lato', sans-serif; color: var(--bt-ink); quotes: none; }
.bt-hero__note figcaption { font: 700 10px/1.3 'Lato', sans-serif; letter-spacing: .2em; text-transform: uppercase; color: #8a5a10; }
@media (max-width: 1100px) { .bt-hero__note { display: none; } }
@media (max-width: 760px) {
  .bt-v2.bt-home .bt-hero { min-height: 560px; }
  .bt-v2.bt-home .bt-hero__shade { background: linear-gradient(0deg, rgba(12,10,8,0.9) 0%, rgba(12,10,8,0.55) 45%, rgba(12,10,8,0.15) 75%, rgba(12,10,8,0.35) 100%); }
  .bt-v2.bt-home .bt-hero__copy { padding: 96px 20px calc(24px + env(safe-area-inset-bottom)); }
  .bt-home .bt-eyebrow { font-size: 10px !important; letter-spacing: .26em; margin-bottom: 10px !important; }
  .bt-home__h1 .heading-cursive { font-size: 54px; }
  .bt-home__sub { font-size: 18px !important; margin: -10px 0 22px !important; }
  .bt-home .bt-hero__btns { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 22px; }
  .bt-home .bt-hero__btns .bt-btn { min-width: 0; min-height: 52px; padding: 0 10px; font-size: 12px; letter-spacing: .12em; }
}
/* 2026-10-05 round 2: headline is "Boston Food Tours Since 2011", the
   eyebrow carries the Tripadvisor rating, and the copy runs wider. */
.bt-v2.bt-home .bt-hero__copy { max-width: 1200px; }
.bt-home .bt-hero__title { max-width: 20ch; }
.bt-home__sub { max-width: 46ch; }
@media (max-width: 760px) {
  .bt-home .bt-hero__title { max-width: none; }
  .bt-home__h1 .heading-cursive { font-size: 50px; line-height: 1.02; }
}
.bt-home .bt-hero__title { max-width: none; }
.bt-nowrap { white-space: nowrap; }

/* 2026-10-05 round 3: star rating, text-link secondary CTA, award across from
   the CTAs, and one spacing rhythm for the heading stack:
   rating 20 / title 18 / sentence 40 / actions. */
.bt-hero__rating { margin: 0 0 20px !important; }
.bt-hero__rating a { display: inline-flex; align-items: center; gap: 10px; color: #fff !important; text-decoration: none !important; font: 700 15px/1 'Lato', sans-serif; }
.bt-stars { position: relative; display: inline-block; line-height: 0; }
.bt-stars svg { width: 18px; height: 18px; margin-right: 2px; }
.bt-stars__base svg { fill: rgba(255,255,255,0.3); }
.bt-stars__fill { position: absolute; inset: 0 auto 0 0; width: calc(var(--rating) / 5 * 100%); overflow: hidden; white-space: nowrap; }
.bt-stars__fill svg { fill: var(--bt-orange); }
.bt-hero__rating-on { font-weight: 300; color: rgba(255,255,255,0.85); }
.bt-hero__rating img { width: 104px; height: auto; filter: brightness(0) invert(1); }
.bt-home .bt-hero__title.bt-home__h1 { margin: 0 0 18px !important; }
.bt-home__h1 .heading-cursive { line-height: 1.02 !important; }
.bt-home .bt-home__sub { margin: 0 0 40px !important; max-width: 46ch; }
.bt-hero__actions { display: flex; align-items: center; justify-content: space-between; gap: 24px 40px; flex-wrap: wrap; }
.bt-home .bt-hero__btns { display: flex; align-items: center; gap: 32px; margin: 0; }
.bt-hero__textlink { display: inline-flex; align-items: center; gap: 10px; padding: 8px 0; font: 700 13px/1 'Lato', sans-serif; letter-spacing: .2em; text-transform: uppercase; color: #fff !important; text-decoration: none !important; border-bottom: 1px solid rgba(255,255,255,0.45); transition: border-color .25s ease; }
.bt-hero__textlink:hover { border-bottom-color: var(--bt-orange); }
.bt-hero__textlink span { transition: transform .25s ease; }
.bt-hero__textlink:hover span { transform: translateX(4px); }
@media (max-width: 760px) {
  .bt-hero__rating { margin-bottom: 14px !important; }
  .bt-hero__rating a { font-size: 14px; gap: 8px; }
  .bt-stars svg { width: 15px; height: 15px; margin-right: 1px; }
  .bt-hero__rating img { width: 88px; }
  .bt-home .bt-hero__title.bt-home__h1 { margin-bottom: 14px !important; }
  .bt-home .bt-home__sub { margin-bottom: 28px !important; }
  /* Phones: gold button full width, then Team Outings and the award share a row. */
  .bt-hero__actions { gap: 22px 16px; }
  .bt-home .bt-hero__btns { display: contents; }
  .bt-home .bt-hero__btns .bt-btn { flex: 1 1 100%; min-height: 54px; font-size: 13px; letter-spacing: .2em; }
  .bt-hero__textlink { font-size: 12px; letter-spacing: .16em; }
}
.bt-home .bt-home__sub { line-height: 1.5 !important; max-width: 62ch; }
@media (max-width: 760px) {
  .bt-home .bt-home__sub { line-height: 1.45 !important; font-size: 17px !important; }
  .bt-hero__actions { gap: 18px 16px; }
  .bt-hero__textlink { padding: 6px 0; }
}

/* Home testimonials: little boxes that drift sideways and loop (2026-10-05).
   The list is rendered twice (second copy aria-hidden) and the track slides
   exactly one copy's width, so the loop has no seam. Pauses on hover/focus;
   with reduced motion it becomes a plain swipeable row. */
.bt-home .bt-quotes .bt-wrap { margin-bottom: 36px; }
.bt-marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.bt-marquee__track { display: flex; align-items: stretch; gap: 20px; width: max-content; list-style: none; margin: 0; padding: 4px 0 8px; animation: bt-marquee 90s linear infinite; }
.bt-marquee:hover .bt-marquee__track, .bt-marquee:focus-within .bt-marquee__track { animation-play-state: paused; }
@keyframes bt-marquee { to { transform: translateX(calc(-50% - 10px)); } }
.bt-qcard { flex: 0 0 340px; margin: 0; padding: 26px 26px 22px; background: #fff; border: 1px solid var(--bt-line, #e6e0d6); border-top: 3px solid var(--bt-orange); display: flex; flex-direction: column; }
.bt-qcard blockquote { margin: 0 0 18px; padding: 0; border: 0; flex: 1 1 auto; }
.bt-qcard blockquote p { margin: 0 !important; font: 300 16px/1.6 'Lato', sans-serif !important; color: var(--bt-ink); }
.bt-qcard__by { margin: 0 !important; font: 700 13px/1.4 'Lato', sans-serif !important; color: var(--bt-ink) !important; }
.bt-qcard__by span { display: block; font-weight: 400; color: #767676; margin-top: 2px; }
@media (max-width: 760px) { .bt-qcard { flex-basis: 280px; padding: 22px 20px 18px; } .bt-qcard blockquote p { font-size: 15px !important; } .bt-marquee__track { animation-duration: 75s; } }
@media (prefers-reduced-motion: reduce) {
  .bt-marquee { overflow-x: auto; -webkit-mask-image: none; mask-image: none; scroll-snap-type: x mandatory; padding: 0 20px; }
  .bt-marquee__track { animation: none; }
  .bt-qcard { scroll-snap-align: start; }
  .bt-qcard[aria-hidden="true"] { display: none; }
}

/* 2026-10-05 round 4: the stack reads as one group (rating, title, sentence
   close together), then air, then the CTAs. Buttons never stretch full width
   on phones (Joe's rule for all sites). 10Best is out of the hero. */
.bt-hero__rating { margin: 0 0 10px !important; }
.bt-home .bt-hero__title.bt-home__h1 { margin: 0 0 8px !important; }
.bt-home .bt-home__sub { margin: 0 0 44px !important; }
@media (max-width: 760px) {
  .bt-hero__rating { margin-bottom: 8px !important; }
  .bt-home__h1 .heading-cursive { font-size: 75px !important; line-height: .98 !important; }
  .bt-home .bt-hero__title.bt-home__h1 { margin-bottom: 8px !important; }
  .bt-home .bt-home__sub { margin-bottom: 32px !important; }
  .bt-hero__actions { gap: 0; }
  .bt-home .bt-hero__btns { display: flex; flex-direction: row; align-items: center; gap: 24px; width: auto; }
  .bt-home .bt-hero__btns .bt-btn { flex: 0 0 auto; width: auto; min-height: 52px; padding: 0 24px; font-size: 12px; letter-spacing: .16em; }
}
.bt-marquee__track { align-items: flex-start; }
.bt-qcard blockquote { flex: none; }

/* 2026-10-05 round 5 ---------------------------------------------------- */


/* Reassurance strip under Choose Your Day: slim, one line on desktop. */
.bt-assure { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 36px; list-style: none; margin: 40px 0 0; padding: 22px 0 0; border-top: 1px solid var(--bt-line, #e6e0d6); }
.bt-assure li { display: flex; align-items: center; gap: 8px; margin: 0; padding: 0; font: 400 15px/1.3 'Lato', sans-serif; color: var(--bt-ink); }
.bt-assure svg { width: 16px; height: 16px; fill: var(--bt-orange); flex: 0 0 auto; }
@media (max-width: 760px) { .bt-assure { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; justify-content: start; } .bt-assure li { font-size: 14px; align-items: flex-start; } .bt-assure svg { margin-top: 1px; } }

/* Team Outings (was "A Private Table") */
.bt-team__price { font-size: 15px !important; color: rgba(255,255,255,0.65) !important; margin-top: -14px; }

/* Meet Your Guides: the house polaroids drifting the other way */
.bt-guides { padding: 110px 0 96px; background: var(--bt-cream, #faf6f0); }
.bt-guides .bt-wrap { margin-bottom: 40px; }
.bt-guides__track { gap: 8px; animation-direction: reverse; animation-duration: 80s; align-items: center; }
.bt-guides__track li { flex: 0 0 240px; margin: 0; padding: 0; }
.bt-guides__track img { display: block; width: 100%; height: auto; }
.bt-guides__more { margin: 36px 0 0 !important; }
@media (max-width: 760px) { .bt-guides { padding: 72px 0 64px; } .bt-guides__track li { flex-basis: 180px; } }
@media (prefers-reduced-motion: reduce) { .bt-guides__track li[aria-hidden="true"] { display: none; } }

/* 2026-10-05: Choose Your Day cards, lighter (pattern from the Chicago Pizza
   Tours home cards). One compact button plus a text link; times are text
   links; waitlist / call / sold-out read as quiet grey text so they stay
   clearly secondary. Class names unchanged: df-analytics.js reads .bx-slot. */
@media (max-width: 760px) {
  .bt-home .bt-pick .bt-h2 { display: none; }
  .bt-home .bt-pick .bt-script { font-size: 52px !important; margin-bottom: 24px !important; }
}
.bt-home .bx-card__foot { display: flex; align-items: center; gap: 24px; margin-top: 4px; }
.bt-home .bx-card__cta { display: inline-flex; align-items: center; min-height: 44px; padding: 0 22px; background: var(--bt-orange); color: var(--bt-ink) !important; font: 700 12px/1 'Lato', sans-serif; letter-spacing: .18em; text-transform: uppercase; text-decoration: none !important; transition: background-color .2s ease; }
.bt-home .bx-card__cta:hover { background: #e08d16; }
.bt-home .bx-card__more { font: 700 12px/1 'Lato', sans-serif; letter-spacing: .18em; text-transform: uppercase; color: var(--bt-ink) !important; text-decoration: none !important; padding: 6px 0; border-bottom: 1px solid rgba(20,20,20,.3); }
.bt-home .bx-card__more:hover { border-bottom-color: var(--bt-orange); }
.bt-home .bx-slots { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 22px; margin-top: 4px; }
.bt-home .bx-slot { display: inline-flex; align-items: baseline; gap: 6px; min-height: 0; padding: 6px 0 4px; background: none !important; box-shadow: none !important; border-radius: 0; font: 700 17px/1 'Lato', sans-serif; letter-spacing: 0; color: var(--bt-ink) !important; border-bottom: 2px solid var(--bt-orange); text-decoration: none !important; }
.bt-home .bx-slot:hover { border-bottom-color: var(--bt-ink); }
.bt-home .bx-slot__tag { font: 700 10px/1 'Lato', sans-serif; letter-spacing: .12em; text-transform: uppercase; color: inherit; }
.bt-home .bx-slot--wait, .bt-home .bx-slot--call { font-weight: 400; color: #767676 !important; border-bottom: 1px dotted #bbb; }
.bt-home .bx-slot--wait:hover, .bt-home .bx-slot--call:hover { color: var(--bt-ink) !important; border-bottom-color: var(--bt-ink); }
.bt-home .bx-slot--out, .bt-home .bx-slot--out:hover { font-weight: 400; color: #a7a7a7 !important; border-bottom: 0; }
/* Reassurance strip sits right under the cards, no rule above it. */
.bt-assure { border-top: 0; padding-top: 0; margin-top: 24px; }
@media (max-width: 760px) { .bt-assure { margin-top: 18px; } }

/* Day picked: bookable times are compact buttons again (Joe: after choosing a
   date it must stay obvious what to tap). Waitlist / call / sold out stay
   quiet text beside them, and Details sits underneath. */
.bt-home .bx-slots__k { margin: 2px 0 10px !important; font: 700 10px/1.3 'Lato', sans-serif !important; letter-spacing: .2em; text-transform: uppercase; color: #767676 !important; }
.bt-home .bx-slots { align-items: center; gap: 10px 16px; }
.bt-home .bx-slot:not(.bx-slot--wait):not(.bx-slot--call):not(.bx-slot--out) { align-items: center; min-height: 42px; padding: 0 16px; background: var(--bt-orange) !important; border-bottom: 0; font: 700 15px/1 'Lato', sans-serif; letter-spacing: .02em; color: var(--bt-ink) !important; transition: background-color .2s ease; }
.bt-home .bx-slot:not(.bx-slot--wait):not(.bx-slot--call):not(.bx-slot--out):hover { background: #e08d16 !important; }
.bt-home .bx-card__more--day { display: inline-block; margin-top: 18px; }
.bt-home .bx-card__more--day { align-self: flex-start; }

/* 2026-10-06 ------------------------------------------------------------- */
/* The black bar under the hero is now a guest's voice (was the facts row). */
.bt-voice { margin: 0; background: var(--bt-ink); color: #fff; padding: 56px 0 52px; }
.bt-voice blockquote { margin: 0; padding: 0; border: 0; max-width: 980px; }
.bt-voice__big { margin: 0 0 14px !important; font: 300 clamp(24px, 2.6vw, 36px)/1.3 'Lato', sans-serif !important; color: #fff !important; }
.bt-voice__rest { margin: 0 0 18px !important; font: 400 15px/1.6 'Lato', sans-serif !important; color: rgba(255,255,255,.66) !important; max-width: 70ch; }
.bt-voice figcaption { font: 700 11px/1.3 'Lato', sans-serif; letter-spacing: .22em; text-transform: uppercase; color: var(--bt-orange); }
@media (max-width: 760px) { .bt-voice { padding: 40px 0 38px; } .bt-voice .bt-wrap { padding: 0 20px; } .bt-voice__big { font-size: 23px !important; } .bt-voice__rest { font-size: 14px !important; } }

/* Guides are part of Our Hospitality: a short line, then the polaroids. */
.bt-care__guides { text-align: center; margin: 72px auto 28px; max-width: 640px; }
.bt-care__guides-h { margin: 0 0 8px !important; font: 400 24px/1.3 'Lato', sans-serif !important; color: var(--bt-ink); }
.bt-care__guides-p { margin: 0 !important; font: 300 17px/1.55 'Lato', sans-serif !important; color: #3d3d3d; }
.bt-care .bt-marquee--guides { margin-top: 8px; }
.bt-care .bt-care__more { margin: 28px 0 0 !important; }
@media (max-width: 760px) { .bt-care__guides { margin-top: 48px; padding: 0 20px; } .bt-care__guides-h { font-size: 21px !important; } .bt-care__guides-p { font-size: 16px !important; } }
/* Guides loop: shift exactly one copy (gap 8px, so half a gap is 4px). */
.bt-guides__track { animation-name: bt-marquee-guides; }
@keyframes bt-marquee-guides { to { transform: translateX(calc(-50% - 4px)); } }

/* 2026-10-06: guides are woven into Our Hospitality. Heading, then the
   polaroids as the section's imagery, then four points in one row with the
   guide as the fourth. The guide row never pauses on hover. */
.bt-care .bt-marquee--guides { margin: 40px 0 8px; }
.bt-marquee--guides:hover .bt-marquee__track, .bt-marquee--guides:focus-within .bt-marquee__track { animation-play-state: running; }
.bt-care__grid--4 { grid-template-columns: repeat(4, 1fr); gap: 0 40px; margin-top: 32px; }
.bt-care__guide .bt-link { margin-top: 14px; font-size: 11px; }
@media (max-width: 1100px) { .bt-care__grid--4 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .bt-care__grid--4 { grid-template-columns: 1fr; } .bt-care .bt-marquee--guides { margin-top: 28px; } }

/* 2026-10-06: 10Best is the hero's small heading; the Tripadvisor stars
   sit with Heidi's name in the quote bar. */
.bt-hero__award { margin: 0 0 12px !important; }
.bt-hero__award a { display: inline-flex; align-items: center; gap: 12px; color: #fff !important; text-decoration: none !important; }
.bt-hero__award img { width: 40px; height: 40px; flex: 0 0 auto; }
.bt-hero__award span { font: 700 12px/1.35 'Lato', sans-serif; letter-spacing: .2em; text-transform: uppercase; }
.bt-hero__award em { font-style: normal; font-weight: 400; color: rgba(255,255,255,.72); margin-left: 6px; }
.bt-voice figcaption { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; }
.bt-voice__rating a { display: inline-flex; align-items: center; gap: 8px; color: #fff !important; text-decoration: none !important; font: 700 14px/1 'Lato', sans-serif; letter-spacing: 0; text-transform: none; }
.bt-voice__rating .bt-hero__rating-on { font-weight: 300; color: rgba(255,255,255,.75); }
.bt-voice__rating img { width: 96px; height: auto; filter: brightness(0) invert(1); }
.bt-voice__rating .bt-stars svg { width: 15px; height: 15px; }
@media (max-width: 760px) {
  .bt-hero__award a { gap: 10px; align-items: flex-start; }
  .bt-hero__award img { width: 36px; height: 36px; }
  .bt-hero__award span { font-size: 10px; letter-spacing: .16em; }
  .bt-hero__award em { display: block; margin: 3px 0 0; }
}

/* 2026-10-06: guides slider follows the four points (lines up after
   "Guides who know the stories"); short orange accents stay, long rules go. */
.bt-care__grid--4 li { border-top: 0; padding-top: 8px; }
.bt-care__grid--4 { margin-top: 40px; }
.bt-care .bt-marquee--guides { margin: 24px 0 0; }

/* Photos that hold still while the page scrolls over them (hero, Team
   Outings). clip-path keeps each fixed image inside its own box, which also
   works on iOS where background-attachment: fixed does not. */
.bt-v2.bt-home .bt-hero { clip-path: inset(0); }
.bt-v2.bt-home .bt-hero__img { position: fixed; top: 0; left: 0; width: 100%; height: 100vh; height: 100lvh; }
.bt-home .bt-team .bt-private__img { position: relative; clip-path: inset(0); }
.bt-home .bt-team .bt-private__img img { position: fixed; top: 0; left: 0; width: 52.4vw; height: 100vh; height: 100lvh; object-fit: cover; object-position: 55% center; }
/* Phones: the box is short, so a pinned photo would only show a slice of
   sky. It sits still in its box instead, using the wide crop of the group. */
@media (max-width: 900px) { .bt-home .bt-team .bt-private__img { clip-path: none; } .bt-home .bt-team .bt-private__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-position: 55% center; } }
@media (prefers-reduced-motion: reduce) {
  .bt-v2.bt-home .bt-hero__img, .bt-home .bt-team .bt-private__img img { position: absolute; width: 100%; height: 100%; }
}

/* Quote bar, desktop: quote on the left two thirds, the Tripadvisor score
   big in the right third. Phones: the score sits under the name. */
.bt-voice .bt-wrap { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); grid-template-areas: "q s" "c s"; column-gap: 64px; align-items: center; }
.bt-voice blockquote { grid-area: q; }
.bt-voice figcaption { grid-area: c; }
.bt-voice__score { grid-area: s; justify-self: stretch; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; padding: 8px 0 8px 48px; border-left: 1px solid rgba(255,255,255,.16); color: #fff !important; text-decoration: none !important; }
.bt-voice__score .bt-stars svg { width: 34px; height: 34px; margin-right: 4px; }
.bt-voice__n { font: 300 56px/1 'Lato', sans-serif; color: #fff; }
.bt-voice__n small { font-size: 16px; color: rgba(255,255,255,.65); margin-left: 6px; }
.bt-voice__score img { width: 150px; height: auto; filter: brightness(0) invert(1); opacity: .95; }
@media (max-width: 900px) {
  .bt-voice .bt-wrap { grid-template-columns: 1fr; grid-template-areas: "q" "c" "s"; }
  .bt-voice__score { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 10px 12px; padding: 18px 0 0; margin-top: 18px; border-left: 0; border-top: 1px solid rgba(255,255,255,.14); }
  .bt-voice__score .bt-stars svg { width: 18px; height: 18px; margin-right: 2px; }
  .bt-voice__n { font-size: 22px; font-weight: 400; }
  .bt-voice__n small { font-size: 13px; }
  .bt-voice__score img { width: 104px; }
}

/* 2026-10-06: phones drop "Since 2011" from the headline and lead the
   sentence with it in bold; desktop keeps it in the H1. */
.bt-since { display: none; }
@media (max-width: 760px) { .bt-h1-since { display: none; } .bt-since { display: inline; font-weight: 700; color: #fff; } }
/* Team Outings photo: always aligned to its right edge (keeps the group in
   frame). Phones: it sticks at the top of the screen and the copy scrolls
   up over it. */
.bt-home .bt-team .bt-private__img img { object-position: right center !important; }
@media (max-width: 900px) {
  .bt-home .bt-team { display: block; }
  .bt-home .bt-team .bt-private__img { position: sticky; top: 0; z-index: 0; }
  .bt-home .bt-team .bt-private__copy { position: relative; z-index: 1; background: var(--bt-ink); }
}

/* Phones (Joe 2026-10-06): the hero stays full screen, but the photo takes
   only the top third so more of the table fits side to side, fading into
   black; the copy sits on black below it. Still pinned while scrolling. */
@media (max-width: 760px) {
  .bt-v2.bt-home .bt-hero { background: #0c0a08; }
  .bt-v2.bt-home .bt-hero__img { height: 61vh; height: 61svh; object-position: 42% 45%; -webkit-mask-image: linear-gradient(180deg, #000 55%, transparent 100%); mask-image: linear-gradient(180deg, #000 55%, transparent 100%); }
  .bt-v2.bt-home .bt-hero__shade { background: linear-gradient(180deg, rgba(12,10,8,.45) 0, rgba(12,10,8,0) 14%); }
}

/* Phones: the week picker pins to the top while the tour cards for that day
   scroll beneath it, and lets go at the end of Choose Your Day. It drops
   below the header whenever the header slides back in. */
@media (max-width: 760px) {
  .bt-home #dpxCal { position: sticky; top: 0; z-index: 5; background: var(--bt-cream, #faf6f0); margin: 0 -20px; padding: 10px 20px 12px; transition: top .35s cubic-bezier(.4,0,.2,1), box-shadow .25s ease; }
  :root.bh-pinned .bt-home #dpxCal { top: 64px; }
  .bt-home #dpxCal.is-stuck { box-shadow: 0 10px 18px -14px rgba(0,0,0,.35); }
}
/* Desktop hero: lighter through the middle so the table and food read
   (Alyssa and Rachel, 10-08 call: "it feels dark"). A thin band at the top
   keeps the white logo and menu legible; the fade from the bottom carries
   the copy. */
@media (min-width: 761px) {
  .bt-v2.bt-home .bt-hero__shade { background: linear-gradient(180deg, rgba(12,10,8,0.45) 0, rgba(12,10,8,0) 16%), linear-gradient(90deg, rgba(12,10,8,0.45) 0%, rgba(12,10,8,0.12) 45%, rgba(12,10,8,0) 72%), linear-gradient(0deg, rgba(12,10,8,0.88) 0%, rgba(12,10,8,0.6) 24%, rgba(12,10,8,0.12) 46%, rgba(12,10,8,0) 60%); }
  .bt-v2.bt-home .bt-hero__copy { text-shadow: 0 1px 14px rgba(0,0,0,.35); }
}

/* ===== Tour page, after the home page (2026-10-06) ===== */
/* Quote bar under the hero: one column (the rating has its own bar lower down). */
.bt-voice--tour .bt-wrap { display: block; }

/* Story beside the booking card. Desktop: intro + more on the left, card
   sticky on the right. Phones: intro, then the card, then the rest. */
.bt-main__grid--top { grid-template-areas: "intro book" "more book"; }
.bt-tour-intro { grid-area: intro; }
.bt-tour-more { grid-area: more; padding-top: 28px; }
.bt-tour-intro .bt-h2 { max-width: 18ch; }
.bt-tour-intro .bt-lede { font-size: 20px !important; line-height: 1.6 !important; font-weight: 300; margin-bottom: 26px !important; max-width: 52ch; }
.bt-tour-more > p { max-width: 64ch; font-size: 17px !important; line-height: 1.75 !important; margin-bottom: 18px !important; }
.bt-tour-more .bt-h3 { margin: 48px 0 6px !important; font: 700 12px/1.3 'Lato', sans-serif !important; letter-spacing: .24em; text-transform: uppercase; }
.bt-tour-more .bt-details { grid-template-columns: 1fr 1fr; column-gap: 40px; }
.bt-ticks { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.bt-ticks li { position: relative; margin: 0; padding: 0 0 0 30px; font: 400 17px/1.5 'Lato', sans-serif; color: var(--bt-ink); }
.bt-ticks li::before { content: ""; position: absolute; left: 2px; top: 6px; width: 12px; height: 7px; border-left: 2px solid var(--bt-orange); border-bottom: 2px solid var(--bt-orange); transform: rotate(-45deg); }
@media (max-width: 980px) {
  .bt-main__grid--top { grid-template-areas: "intro" "book" "more"; }
  .bt-tour-more { padding-top: 48px; }
}
@media (max-width: 560px) { .bt-tour-more .bt-details { grid-template-columns: 1fr; } .bt-tour-intro .bt-lede { font-size: 18px !important; } }

/* Photo band (no repeats of the hero or the tasting menu photos). */
.bt-gallery { padding: 0 0 96px; background: var(--bt-ink); }
@media (max-width: 760px) { .bt-gallery { padding-bottom: 56px; } }

/* Tripadvisor bar: one horizontal line, stars big. */
.bt-rating { background: var(--bt-ink); padding: 64px 0; border-top: 1px solid rgba(255,255,255,.08); }
.bt-rating__in { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 20px 40px; color: #fff !important; text-decoration: none !important; }
.bt-stars--xl svg { width: 56px; height: 56px; margin-right: 6px; }
.bt-rating__n { font: 300 72px/1 'Lato', sans-serif; color: #fff; }
.bt-rating__n small { font-size: 18px; color: rgba(255,255,255,.62); margin-left: 10px; }
.bt-rating__ta { width: 200px; height: auto; filter: brightness(0) invert(1); }
.bt-rating__go { font: 700 12px/1 'Lato', sans-serif; letter-spacing: .2em; text-transform: uppercase; color: var(--bt-orange); padding-bottom: 6px; border-bottom: 1px solid currentColor; }
@media (max-width: 760px) {
  .bt-rating { padding: 44px 0; }
  .bt-rating__in { gap: 14px 18px; }
  .bt-stars--xl svg { width: 38px; height: 38px; margin-right: 3px; }
  .bt-rating__n { font-size: 52px; }
  .bt-rating__ta { width: 150px; }
  .bt-rating__go { flex-basis: 100%; text-align: center; border: 0; }
}
.bt-faq__more { text-align: center; margin-top: 36px !important; }

/* Hero photo holds still while the page scrolls over it (as on the home
   page). Phones: the photo block fades into the black copy area. */
.bt-v2:not(.bt-home) .bt-hero { clip-path: inset(0); }
@media (min-width: 761px) {
  .bt-v2:not(.bt-home) .bt-hero__img { position: fixed; top: 0; left: 0; width: 100%; height: 100vh; height: 100lvh; }
}
@media (max-width: 760px) {
  .bt-v2:not(.bt-home) .bt-hero { padding-top: 40vh; }
  .bt-v2:not(.bt-home) .bt-hero__img { position: fixed; top: 0; left: 0; width: 100%; height: calc(40vh + 64px); max-height: none; min-height: 0; -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent 100%); mask-image: linear-gradient(180deg, #000 70%, transparent 100%); }
  .bt-v2:not(.bt-home) .bt-hero__btns .bt-btn { flex: 0 0 auto; width: auto; padding: 0 26px; }
  .bt-v2:not(.bt-home) .bt-hero__copy { padding-top: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .bt-v2:not(.bt-home) .bt-hero__img { position: absolute; height: 100%; }
}
/* Hero picker: waitlist times were dark text on the dark hero. White outline
   and white text: readable, and still secondary to the solid orange times. */
.bt-v2 .tdp__time.tdp__time--wait { background: transparent; border-color: rgba(255,255,255,.55); color: #fff; }
.bt-v2 .tdp__time.tdp__time--wait:hover { background: #fff; border-color: #fff; color: var(--bt-ink); }
/* Desktop: the quote keeps to the left column so the rising card never covers it. */
@media (min-width: 981px) {
  .bt-voice--tour .bt-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 420px; column-gap: 96px; }
  .bt-voice--tour blockquote, .bt-voice--tour figcaption { grid-column: 1; }
  .bt-main--top .bt-book { position: sticky; z-index: 3; }
}
/* Tasting menu photos: beside the menu on desktop; on phones they join the
   photo slider instead of stacking under the menu (and only there, so the
   desktop slider still never repeats them). */
.bt-mz__col--phone { display: none !important; }
@media (max-width: 760px) {
  .bt-taste__photos { display: none !important; }
  .bt-mz__col--phone { display: flex !important; }
}
/* Phones: the photo starts just under the 64px header, so none of it hides
   behind the bar. */
@media (max-width: 760px) {
  .bt-v2:not(.bt-home) .bt-hero__img { top: 64px; height: 40vh; }
}

/* 2026-10-13 (Alyssa's 10-12 notes) ------------------------------------- */
/* Home hero: the small tracked line is now the H1 ("Boston Food Tours Since
   2011") with the 10Best award beside it as plain text (no USA TODAY logo, no
   link off the site). The big line is the headline, styled as before. */
.bt-hero__award--home { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 22px; }
.bt-home__kicker { margin: 0 !important; padding: 0; font: 700 12px/1.35 'Lato', sans-serif !important; letter-spacing: .2em; text-transform: uppercase; color: #fff !important; }
.bt-home__kicker span { font: inherit !important; letter-spacing: inherit !important; }
.bt-award { color: #fff !important; }
.bt-award em { font-style: normal; color: rgba(255,255,255,.72) !important; }
.bt-home__h1--tag .heading-cursive { font-size: clamp(44px, 5.2vw, 70px) !important; line-height: 1.02 !important; }
@media (max-width: 760px) {
  .bt-home__kicker { font-size: 10px !important; letter-spacing: .16em; }
  .bt-hero__award--home { gap: 4px; }
  .bt-home__h1--tag .heading-cursive { font-size: 40px !important; }
}
/* Ratings are Google's now, and static: a guest stays on her site. */
.bt-voice__src, .bt-rating__src { font: 700 12px/1.3 'Lato', sans-serif; letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,.8); }
@media (max-width: 760px) { .bt-rating__src { flex-basis: 100%; text-align: center; } }
/* A tour with no photo set yet has only the tasting-menu stills, which live
   beside the menu on desktop; the slider exists for phones alone. */
.bt-scenes--phone-only { display: none; }
@media (max-width: 760px) { .bt-scenes--phone-only { display: block; } }
/* Private minimum (Rachel, 10-08 call): stated before anyone sends an inquiry */
.bt-private__copy > p.bt-private__min { margin: -16px 0 28px; font-size: 15px; opacity: .78; }
.tcal__priv-min { font-weight: 500; opacity: .8; }

/* Meeting point (2026-10-22): the general area, as her FAQ gives it, across the
   full width of Tour details, with a link down to the live tour map. */
.bt-details > .bt-details__meet, .bt-details > .bt-details__know { grid-column: 1 / -1; }
.bt-meet__map { display: inline-flex; align-items: center; gap: 5px; margin-left: 4px; white-space: nowrap; font-weight: 700; color: var(--bt-orange-ink) !important; text-decoration: underline; text-underline-offset: 3px; }
.bt-meet__map svg { width: 15px; height: 15px; flex: none; }
#btMap { scroll-margin-top: 72px; }

/* Tour pages: the hero is min(74vh, 720px) tall, so its bottom edge often lands on
   a fractional pixel and the light page background showed through as a thin line
   while scrolling (Alyssa, 2026-11-02). Overlap the dark review band by 1px. */
.bt-hero + .bt-voice { position: relative; margin-top: -1px; padding-top: 57px; }
@media (max-width: 760px) { .bt-hero + .bt-voice { padding-top: 41px; } }

/* Award line on every tour page, larger so it is not lost above the H1
   (Rachel, 2026-11-04). */
.bt-hero__award span.bt-award { font-size: 16px; letter-spacing: .14em; }
@media (max-width: 760px) { .bt-hero__award span.bt-award { font-size: 12.5px; letter-spacing: .12em; } }

/* Gallery strip arrows (Rachel, 2026-11-04): the strip pauses under the mouse and
   a mouse wheel cannot move it sideways, so give it previous/next buttons.
   Added by assets/bob-gallery.js. */
.bt-gallery { position: relative; }
.bt-mz__arrow { position: absolute; top: calc(50% - 48px); z-index: 2; width: 48px; height: 48px; padding: 0; border: 0; border-radius: 50%; background: rgba(20,20,20,.72); color: #fff; font: 400 30px/1 'Lato', sans-serif; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .2s; }
.bt-mz__arrow:hover { background: var(--bt-orange); }
.bt-mz__arrow:focus-visible { outline: 3px solid var(--bt-orange); outline-offset: 3px; }
.bt-mz__arrow--prev { left: 16px; }
.bt-mz__arrow--next { right: 16px; }
@media (max-width: 760px) { .bt-mz__arrow { width: 40px; height: 40px; font-size: 26px; top: calc(50% - 48px); left: auto; } .bt-mz__arrow--prev { left: 8px; } .bt-mz__arrow--next { right: 8px; } }
