/* Non-tour pages in the new design (tools/page_kit.py). Built on the tour
   page tokens and components in bob-tour.css + bob-tour-v2.css; only what
   those pages never needed lives here. */

/* Photo hero, shorter than a tour's */
.bt-hero--page { height: min(72vh, 680px); min-height: 480px; }
.bt-hero--page .bt-hero__title { max-width: 18ch; margin-bottom: 18px !important; }
.bt-hero__sub { max-width: 52ch; margin: 0 0 32px !important; font-size: 19px !important; line-height: 1.6 !important; font-weight: 300; color: rgba(255,255,255,.9) !important; }
@media (max-width: 760px) { .bt-hero--page { min-height: 70vh; } .bt-hero__sub { font-size: 17px !important; } }

/* Photo-less header band */
.bt-phead { background: var(--bt-ink); color: #fff; padding: 88px 0 80px; }
.bt-phead .bt-script { color: var(--bt-orange) !important; }
.bt-phead__title { font-size: clamp(36px, 4.4vw, 58px) !important; font-weight: 300; line-height: 1.1; color: #fff !important; max-width: 20ch; margin: 0 0 18px !important; }
.bt-phead__sub { max-width: 60ch; font-size: 18px !important; line-height: 1.65 !important; font-weight: 300; color: rgba(255,255,255,.8) !important; margin-bottom: 30px !important; }
.bt-phead .bt-hero__btns { margin-top: 8px; }
@media (max-width: 760px) { .bt-phead { padding: 56px 0 52px; } .bt-phead .bt-wrap { padding: 0 20px; } }

/* Copy beside a photo or a card */
.bt-split { padding: 110px 0; background: #fff; }
.bt-split--cream { background: var(--bt-cream); }
.bt-split--dark { background: var(--bt-ink); color: rgba(255,255,255,.82); }
.bt-split--dark .bt-h2 { color: #fff !important; }
.bt-split--dark .bt-script { color: var(--bt-orange) !important; }
.bt-split__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 80px; align-items: center; }
.bt-split--flip .bt-split__copy { order: 2; }
.bt-split--solo .bt-split__grid { grid-template-columns: minmax(0, 760px); }
.bt-split__copy p + p { margin-top: 16px; }
.bt-split__copy ul { margin: 18px 0 0; padding-left: 1.2em; }
.bt-split__copy li + li { margin-top: 6px; }
.bt-split__copy a:not(.bt-btn) { color: var(--bt-orange-ink); text-decoration: underline; text-underline-offset: 3px; }
.bt-split--dark .bt-split__copy a:not(.bt-btn) { color: var(--bt-orange); }
.bt-split__btn { margin-top: 32px !important; }
.bt-split__img img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }
.bt-split__aside { background: var(--bt-orange); color: var(--bt-ink); padding: 44px 44px 40px; }
.bt-split__aside .bt-script { color: var(--bt-ink) !important; }
.bt-split__aside ul { list-style: none; margin: 0; padding: 0; }
.bt-split__aside li { padding: 14px 0; border-top: 1px solid rgba(20,20,20,.18); font-size: 17px; line-height: 1.55; }
.bt-split__aside li:first-child { border-top: 0; }
.bt-split__aside a { color: var(--bt-ink); }
@media (max-width: 900px) { .bt-split { padding: 72px 0; } .bt-split__grid { grid-template-columns: 1fr; gap: 40px; } .bt-split--flip .bt-split__copy { order: 0; } .bt-split__img img { aspect-ratio: 4 / 3; } }
@media (max-width: 760px) { .bt-split .bt-wrap { padding: 0 20px; } .bt-split__aside { padding: 30px 24px; } }

/* Points on hairlines, on cream or dark */
.bt-care--cream { background: var(--bt-cream); }
.bt-care--dark { background: var(--bt-ink); color: rgba(255,255,255,.8); }
.bt-care--dark .bt-h2, .bt-care--dark h3 { color: #fff !important; }
.bt-care--dark .bt-script { color: var(--bt-orange) !important; }
.bt-care--dark .bt-care__grid li { border-top-color: rgba(255,255,255,.16); }
.bt-care--dark .bt-lede { color: rgba(255,255,255,.85) !important; }
.bt-care__lede { max-width: 62ch; margin-bottom: 36px !important; }
.bt-care__foot { text-align: center; margin-top: 40px; }
.bt-care__foot p { font-size: 15px; color: var(--bt-muted); }
.bt-care--dark .bt-care__foot p { color: rgba(255,255,255,.6); }
@media (max-width: 760px) { .bt-care { padding: 72px 0; } .bt-care .bt-wrap { padding: 0 20px; } }

/* Single quote band without the score column */
.bt-voice--page .bt-wrap { display: block; }

/* Closing call to action */
.bt-cta { padding: 100px 0; }
.bt-cta--dark { background: var(--bt-ink); color: rgba(255,255,255,.8); }
.bt-cta--dark .bt-h2 { color: #fff !important; }
.bt-cta--dark .bt-script { color: var(--bt-orange) !important; }
.bt-cta--cream { background: var(--bt-cream); }
.bt-cta__p { max-width: 60ch; margin: 0 auto 12px !important; }
.bt-cta__btns { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin-top: 30px; }
.bt-btn--line { color: var(--bt-ink) !important; border-color: var(--bt-ink); background: transparent; }
.bt-btn--line:hover { background: var(--bt-ink); color: #fff !important; }
.bt-cta--dark .bt-btn--line { color: #fff !important; border-color: rgba(255,255,255,.6); }
.bt-cta--dark .bt-btn--line:hover { background: #fff; color: var(--bt-ink) !important; }
@media (max-width: 760px) { .bt-cta { padding: 72px 0; } .bt-cta .bt-wrap { padding: 0 20px; } }

/* FAQ groups (the full FAQ page) */
.bt-faq__group { text-align: left; color: var(--bt-orange-ink) !important; margin: 56px 0 4px !important; }
.bt-faq__group:first-of-type { margin-top: 24px !important; }
.bt-faq__item a { color: var(--bt-orange-ink); text-decoration: underline; }
@media (max-width: 760px) { .bt-faq { padding: 72px 0; } .bt-faq .bt-wrap { padding: 0 20px; } .bt-faq__grid { grid-template-columns: 1fr; } }

/* Long-form text: posts, policies, job listings */
.bt-prose-sec { padding: 80px 0 100px; background: #fff; }
.bt-prose { max-width: 1040px; margin: 0 auto; color: var(--bt-text); font-size: 18px; line-height: 1.8; }
.bt-prose--narrow { max-width: 720px; }
.bt-prose > * + * { margin-top: 1.1em !important; }
.bt-prose h2 { font-size: clamp(26px, 2.6vw, 34px) !important; font-weight: 300 !important; line-height: 1.25 !important; color: var(--bt-ink) !important; margin-top: 2em !important; letter-spacing: 0 !important; text-transform: none !important; }
.bt-prose h3 { font-size: 21px !important; font-weight: 700 !important; line-height: 1.35 !important; color: var(--bt-ink) !important; margin-top: 1.8em !important; letter-spacing: 0 !important; text-transform: none !important; }
.bt-prose h4, .bt-prose h5, .bt-prose h6 { font-size: 13px !important; font-weight: 700 !important; letter-spacing: .22em !important; text-transform: uppercase !important; color: var(--bt-ink) !important; margin-top: 1.8em !important; }
.bt-prose p, .bt-prose li { font-size: 18px !important; line-height: 1.8 !important; color: var(--bt-text) !important; }
.bt-prose a { color: var(--bt-orange-ink) !important; text-decoration: underline; text-underline-offset: 3px; }
.bt-prose a:hover { color: var(--bt-ink) !important; }
.bt-prose ul, .bt-prose ol { padding-left: 1.3em; }
.bt-prose li + li { margin-top: .4em; }
.bt-prose img { max-width: 100%; height: auto; margin: 0 auto; }
.bt-prose figure { margin: 2em 0 !important; }
.bt-prose figcaption, .bt-prose .wp-caption-text { font-size: 14px !important; color: var(--bt-muted) !important; text-align: center; margin-top: 10px; }
.bt-prose blockquote { border-left: 3px solid var(--bt-orange); margin: 2em 0 !important; padding: 4px 0 4px 24px; font-size: 20px; font-weight: 300; color: var(--bt-ink); }
.bt-prose table { width: 100%; border-collapse: collapse; font-size: 16px; }
.bt-prose td, .bt-prose th { border-top: 1px solid var(--bt-line); padding: 10px 12px 10px 0; vertical-align: top; }
.bt-prose iframe { max-width: 100%; }
.bt-prose strong { color: var(--bt-ink); }
@media (max-width: 760px) { .bt-prose-sec { padding: 56px 0 72px; } .bt-prose-sec .bt-wrap { padding: 0 20px; } .bt-prose p, .bt-prose li { font-size: 17px !important; } }

/* Embedded third-party widgets (FareHarbor calendar, forms) */
.bt-embed { padding: 80px 0 100px; background: var(--bt-cream); }
.bt-embed__box { background: #fff; padding: 32px; max-width: 1100px; margin: 0 auto; box-shadow: 0 30px 60px -40px rgba(20,20,20,.35); }
@media (max-width: 760px) { .bt-embed { padding: 40px 0 56px; } .bt-embed .bt-wrap { padding: 0 12px; } .bt-embed__box { padding: 12px; } }

/* Forms in the new style (contact) */
.bt-form label { display: block; font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--bt-ink); margin: 0 0 8px; }
.bt-form input[type=text], .bt-form input[type=email], .bt-form input[type=tel], .bt-form textarea { width: 100%; border: 1px solid var(--bt-line); background: #fff; padding: 14px 16px; font: 400 16px/1.5 'Lato', sans-serif; color: var(--bt-ink); border-radius: 0; }
.bt-form textarea { min-height: 150px; }
.bt-form input:focus, .bt-form textarea:focus { outline: 2px solid var(--bt-orange); outline-offset: 1px; }
.bt-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.bt-form__field { margin-bottom: 20px; }
.bt-form__check { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; line-height: 1.5; margin-bottom: 14px; }
.bt-form__check input { margin-top: 4px; }
.bt-form__fine { font-size: 13px !important; line-height: 1.6 !important; color: var(--bt-muted) !important; margin: 4px 0 22px !important; }
.bt-form .bt-btn { cursor: pointer; }
@media (max-width: 760px) { .bt-form__row { grid-template-columns: 1fr; gap: 0; } }

/* Guides grid (Our Story) */
.bt-team { padding: 110px 0; background: var(--bt-cream); }
.bt-team__grid { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 48px 32px; }
.bt-team__grid li { margin: 0; }
.bt-team__img { width: 100%; height: auto; margin-bottom: 18px; }
.bt-team__name { font-size: 22px !important; font-weight: 300; color: var(--bt-ink) !important; margin: 0 !important; line-height: 1.25 !important; }
.bt-team__role { font-size: 11px !important; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--bt-orange-ink) !important; margin: 6px 0 12px !important; }
.bt-team__fav { font-size: 15px !important; line-height: 1.6 !important; margin: 0 0 6px !important; }
.bt-team__fav b { color: var(--bt-ink); font-weight: 700; }
.bt-team details { margin-top: 10px; }
.bt-team summary { cursor: pointer; font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--bt-ink); list-style: none; border-bottom: 1px solid var(--bt-orange); display: inline-block; padding-bottom: 3px; }
.bt-team summary::-webkit-details-marker { display: none; }
.bt-team details p { font-size: 15px !important; line-height: 1.7 !important; margin-top: 12px !important; }
@media (max-width: 1100px) { .bt-team__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .bt-team { padding: 72px 0; } .bt-team .bt-wrap { padding: 0 20px; } .bt-team__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 18px; } .bt-team__name { font-size: 19px !important; } }

/* Every tour, as a grid (tours overview) */
.bt-tourgrid { padding: 100px 0 110px; background: var(--bt-cream); }
.bt-tourgrid__list { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
@media (max-width: 1100px) { .bt-tourgrid__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.bt-tourgrid__list li { margin: 0; background: #fff; display: flex; flex-direction: column; }
.bt-tourgrid__img { display: block; aspect-ratio: 3 / 2; background-size: cover; background-position: center; }
.bt-tourgrid__body { padding: 30px 32px 34px; display: flex; flex-direction: column; flex: 1; }
.bt-tourgrid__type { font-size: 11px !important; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: var(--bt-muted) !important; margin-bottom: 8px !important; }
.bt-tourgrid__body h3 { font-size: 25px !important; font-weight: 300; line-height: 1.2; margin-bottom: 12px !important; }
.bt-tourgrid__body h3 a { color: var(--bt-ink); text-decoration: none; }
.bt-tourgrid__body p { font-size: 16px !important; line-height: 1.7 !important; flex: 1; }
.bt-tourgrid__go { display: flex; flex-wrap: wrap; gap: 12px 22px; align-items: center; margin-top: 24px; }
.bt-tourgrid__price { font-size: 15px; color: var(--bt-ink); }
.bt-tourgrid__price b { font-size: 22px; font-weight: 400; }
@media (max-width: 900px) { .bt-tourgrid__list { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .bt-tourgrid { padding: 64px 0 72px; } .bt-tourgrid .bt-wrap { padding: 0 20px; } .bt-tourgrid__body { padding: 24px 22px 28px; } }
/* Tours page: day and type sorter (assets/bob-tour-filter.js), the pattern on the other operators' /tour/ pages */
.bt-dayfilter { background: var(--bt-ink); display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 14px 22px; padding: 22px 32px; scroll-margin-top: 76px; }
.bt-dayfilter__label { font: 700 11px/1 'Lato', sans-serif; letter-spacing: .2em; text-transform: uppercase; color: var(--bt-orange); }
.bt-dayfilter__days { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.bt-dayfilter button { font: 700 12px/1 'Lato', sans-serif; letter-spacing: .08em; color: rgba(255,255,255,.75); background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.16); padding: 11px 16px; cursor: pointer; transition: color .2s ease, border-color .2s ease, background-color .2s ease; }
.bt-dayfilter button:hover { color: #fff; border-color: rgba(255,255,255,.4); }
.bt-dayfilter button.active { color: var(--bt-ink); background: var(--bt-orange); border-color: var(--bt-orange); }
.bt-dayfilter button.is-off { opacity: .3; cursor: default; pointer-events: none; }
.bt-tourgrid:has(.bt-typefilter) { padding-top: 48px; }
.bt-typefilter { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; }
.bt-typefilter button { font: 700 12px/1 'Lato', sans-serif; letter-spacing: .14em; text-transform: uppercase; color: var(--bt-ink); background: #fff; border: 1px solid var(--bt-line); padding: 13px 22px; cursor: pointer; transition: color .2s ease, border-color .2s ease, background-color .2s ease; }
.bt-typefilter button:hover { border-color: var(--bt-orange); }
.bt-typefilter button.active { background: var(--bt-orange); border-color: var(--bt-orange); }
.bt-tournote { text-align: center; font-size: 15px !important; color: var(--bt-muted) !important; margin: 18px 0 0 !important; }
.bt-tourempty { text-align: center; font-size: 17px !important; padding: 40px 20px 0; margin: 0 !important; }
.bt-tourclear { font: inherit; font-weight: 700; color: var(--bt-ink); background: none; border: 0; border-bottom: 1px solid currentColor; padding: 0 0 1px; cursor: pointer; }
.bt-tourgrid__list li[hidden] { display: none; }
.bt-tournote + .bt-tourempty + .bt-tourgrid__list { margin-top: 28px; }
@media (max-width: 760px) { .bt-dayfilter { padding: 18px 16px; flex-direction: column; gap: 12px; scroll-margin-top: 64px; } .bt-dayfilter button { padding: 10px 11px; } .bt-tourgrid:has(.bt-typefilter) { padding-top: 32px; } }

/* Blog: post header, post list, pager */
.bt-post-meta { font-size: 12px !important; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: rgba(255,255,255,.75) !important; margin: 0 0 6px !important; }
.bt-post-meta a { color: inherit; }
.bt-postlist { padding: 90px 0 100px; background: var(--bt-cream); }
.bt-postlist__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 32px; }
.bt-postlist__grid li { margin: 0; background: #fff; display: flex; flex-direction: column; }
.bt-postlist__img { display: block; aspect-ratio: 3 / 2; background: var(--bt-line) center / cover; }
.bt-postlist__body { padding: 24px 26px 28px; display: flex; flex-direction: column; flex: 1; }
.bt-postlist__date { font-size: 11px !important; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--bt-muted) !important; margin-bottom: 8px !important; }
.bt-postlist__body h2, .bt-postlist__body h3 { font-size: 22px !important; font-weight: 400; line-height: 1.3; margin-bottom: 10px !important; }
.bt-postlist__body h2 a, .bt-postlist__body h3 a { color: var(--bt-ink); text-decoration: none; }
.bt-postlist__body h2 a:hover, .bt-postlist__body h3 a:hover { color: var(--bt-orange-ink); }
.bt-postlist__body p { font-size: 15px !important; line-height: 1.65 !important; flex: 1; }
.bt-postlist__more { margin-top: 18px; }
.bt-pager { display: flex; justify-content: space-between; gap: 20px; margin-top: 56px; }
.bt-pager a { font-size: 13px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--bt-ink); border-bottom: 1px solid var(--bt-orange); padding-bottom: 4px; text-decoration: none; }
.bt-cats { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin: 0 0 48px; padding: 0; list-style: none; }
.bt-cats li { margin: 0; }
.bt-cats a { display: inline-block; padding: 8px 16px; border: 1px solid var(--bt-line); background: #fff; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--bt-ink); text-decoration: none; }
.bt-cats a:hover, .bt-cats a[aria-current] { background: var(--bt-ink); color: #fff; border-color: var(--bt-ink); }
.bt-post-foot { max-width: 720px; margin: 56px auto 0; padding-top: 28px; border-top: 1px solid var(--bt-line); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; font-size: 15px; }
.bt-post-foot a { color: var(--bt-orange-ink); }
@media (max-width: 1000px) { .bt-postlist__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .bt-postlist { padding: 56px 0 72px; } .bt-postlist .bt-wrap { padding: 0 20px; } .bt-postlist__grid { grid-template-columns: 1fr; } }
.bt-team__price-big { font-size: 20px !important; color: var(--bt-ink) !important; margin-bottom: 4px !important; }
.bt-team__price-big b { font-size: 40px; font-weight: 300; }
.bt-care--dark .bt-team__price-big { color: #fff !important; }

/* Blog */
.bt-hero__title--post { max-width: 22ch; font-size: clamp(34px, 4.2vw, 56px) !important; }
.bt-page-post .bt-hero--page .bt-hero__title { margin-bottom: 0 !important; }
.bt-phead .bt-post-meta { color: rgba(255,255,255,.65) !important; }
.bt-prose--post { overflow-wrap: break-word; }
.bt-prose--post .bt-post > *:first-child { margin-top: 0 !important; }
.bt-prose--post .bt-post > * + * { margin-top: 1.1em; }
.bt-prose--post picture, .bt-prose--post img { display: block; }
.bt-prose--post img { width: auto; max-width: 100%; height: auto; max-height: 760px; margin: 2em auto; }
.bt-prose--post .bt-was-alignleft, .bt-prose--post .bt-was-alignright { float: none; }
.bt-prose--post .wp-caption { max-width: 100% !important; width: auto !important; margin: 2em auto; }
.bt-prose--post .wp-caption img { margin-bottom: 0; }
.bt-prose--post iframe { display: block; width: 100%; aspect-ratio: 16 / 9; height: auto; margin: 2em 0; }
.bt-prose--post .bt-post-foot { margin-top: 56px; }
.bt-prose--post .bt-post-foot span a { color: var(--bt-orange-ink); }
.bt-postlist__empty { text-align: center; font-size: 18px; }
.bt-postlist__empty .bt-link { margin-left: 12px; }
.bt-postlist__img--none { background: var(--bt-line); }
/* Our Story: portrait beside the founder letter */
.bt-split--story .bt-split__grid { grid-template-columns: 340px minmax(0, 1fr); gap: 80px; align-items: start; }
.bt-story-portrait img { width: 100%; height: auto; }
@media (max-width: 900px) { .bt-split--story .bt-split__grid { grid-template-columns: 1fr; } .bt-story-portrait { max-width: 300px; } }
/* Contact form card */
.bt-split__aside--form { background: #fff; box-shadow: 0 30px 60px -40px rgba(20,20,20,.35); }
.bt-h3--first { margin-top: 8px !important; }
.bt-split__copy .bt-h3 { margin: 36px 0 8px !important; }
/* Legacy pages: her old WordPress forms inside prose */
.bt-prose .wpcf7-form p { margin: 0 0 16px !important; }
.bt-prose .wpcf7-form label { display: block; font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--bt-ink); margin-bottom: 6px; }
.bt-prose .wpcf7-form input[type=text], .bt-prose .wpcf7-form input[type=email], .bt-prose .wpcf7-form input[type=tel], .bt-prose .wpcf7-form input[type=date], .bt-prose .wpcf7-form input[type=number], .bt-prose .wpcf7-form select, .bt-prose .wpcf7-form textarea { width: 100%; border: 1px solid var(--bt-line); padding: 12px 14px; font: 400 16px/1.5 'Lato', sans-serif; border-radius: 0; background: #fff; }
.bt-prose .wpcf7-form .hide_label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.bt-prose .wpcf7-submit { background: var(--bt-orange); color: var(--bt-ink); border: 0; min-height: 52px; padding: 0 30px; font: 700 13px/1 'Lato', sans-serif; letter-spacing: .2em; text-transform: uppercase; cursor: pointer; }
.bt-prose .wpcf7-submit:hover { background: var(--bt-ink); color: #fff; }
/* page_kit.hero() renders its kicker as a <p>; the tour CSS only styles h1.bt-hero__h1 */
.bt-page p.bt-hero__h1 { font-size: 30px !important; line-height: 1.15 !important; font-weight: 400; color: var(--bt-orange) !important; margin: 0 0 10px !important; }
@media (max-width: 640px) { .bt-page p.bt-hero__h1 { font-size: 24px !important; margin-bottom: 6px !important; } }
.bt-prose .contact_form_header { display: none; }
.bt-prose .wpcf7-form .contact_form_wrap { background: none !important; padding: 0 !important; border: 0 !important; }
.bt-prose .wpcf7-form .contact_form_wrap > * { width: auto; }

/* Booking calendar on /book/ (assets/bob-month-cal.js), the month grid the
   other tour sites use, in her colours: orange days, ink for the chosen one. */
.bt-mcal { padding: 90px 0 100px; background: #fff; }
.bt-mcal .bt-h2 { margin-bottom: 10px !important; }
.bt-mcal .bt-care__lede { margin-bottom: 44px !important; }
.bt-mcal--top { padding: 52px 0 90px; }
.bt-mcal__intro { max-width: 640px; margin: 0 auto 32px; }
.bt-mcal__intro .bt-script { margin-bottom: 4px !important; }
.bt-mcal__intro .bt-lede { margin: 0 !important; }
.mcal { max-width: 820px; margin: 0 auto; }
.mcal__cal { min-height: 640px; }
.mcal__msg { text-align: center; color: var(--bt-muted); padding: 40px 0; font-size: 17px; }
.mcal__msg a { color: var(--bt-orange-ink); }
.mcal__nav { display: flex; align-items: center; justify-content: center; gap: 22px; margin-bottom: 22px; }
.mcal__label { font: 300 30px/1.2 'Lato', sans-serif; color: var(--bt-ink); min-width: 250px; text-align: center; }
.mcal__arrow { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; background: #fff; border: 1px solid var(--bt-line); border-radius: 50%; cursor: pointer; font-size: 22px; line-height: 1; color: var(--bt-ink); transition: background .2s, border-color .2s, color .2s; }
.mcal__arrow:hover:not(:disabled) { background: var(--bt-ink); border-color: var(--bt-ink); color: #fff; }
.mcal__arrow:disabled { opacity: .3; cursor: default; }
.mcal__dows { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; margin-bottom: 6px; }
.mcal__dows span { text-align: center; font: 700 11px/1 'Lato', sans-serif; letter-spacing: .2em; text-transform: uppercase; color: var(--bt-muted); padding: 6px 0; }
.mcal__weeks { display: flex; flex-direction: column; }
.mcal__week { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; margin-bottom: 6px; }
.mcal-day { position: relative; aspect-ratio: 1 / 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; border: 1px solid transparent; border-radius: 4px; background: none; font-family: 'Lato', sans-serif; padding: 0; }
.mcal-day__n { font-size: 16px; font-weight: 700; color: var(--bt-ink); }
.mcal-day--empty { border: none; }
.mcal-day--off .mcal-day__n { color: #c9c4bc; font-weight: 400; }
.mcal-day__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--bt-orange); }
.mcal-day__so { font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--bt-muted); }
.mcal-day--open { cursor: pointer; background: var(--bt-cream); border-color: #f0d3a6; transition: transform .15s, box-shadow .15s, background .15s; }
.mcal-day--open:hover { transform: translateY(-2px); border-color: var(--bt-orange); box-shadow: 0 8px 18px rgba(242,157,35,.25); }
.mcal-day--limited { cursor: pointer; background: #fff; border: 1px dashed var(--bt-orange); }
.mcal-day--limited .mcal-day__so { color: var(--bt-orange-ink); }
.mcal-day--soldout { cursor: pointer; background: #f1eee9; transition: background .15s; }
.mcal-day--soldout:hover { background: #e9e3da; }
.mcal-day--soldout .mcal-day__n { color: #9a948b; text-decoration: line-through; }
.mcal-day.is-sel { background: var(--bt-orange); border: 1px solid var(--bt-orange); transform: none; box-shadow: 0 8px 18px rgba(242,157,35,.3); }
.mcal-day.is-sel .mcal-day__n { color: var(--bt-ink); text-decoration: none; }
.mcal-day.is-sel .mcal-day__dot { background: var(--bt-ink); }
.mcal-day.is-sel .mcal-day__so { color: var(--bt-ink); }
.mcal-day--soldout.is-sel { background: #ded6cb; border-color: #ded6cb; box-shadow: none; }
.mcal-day:focus-visible { outline: 2px solid var(--bt-ink); outline-offset: 2px; }
.mcal__expand { display: grid; grid-template-rows: 0fr; opacity: 0; margin: 0; transition: grid-template-rows .35s ease, opacity .3s ease, margin .3s ease; }
.mcal__expand.open { grid-template-rows: 1fr; opacity: 1; margin: 2px 0 12px; }
.mcal__expand-inner { overflow: hidden; }
.mcal__panel { background: var(--bt-cream); border: 1px solid var(--bt-line); border-radius: 4px; padding: 22px; }
.mcal-exp__head { font: 700 12px/1.3 'Lato', sans-serif !important; letter-spacing: .2em; text-transform: uppercase; color: var(--bt-muted); margin: 0 0 16px !important; }
.mcal-exp__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.mcal-card { display: flex; align-items: center; gap: 16px; padding: 12px; background: #fff; border: 1px solid var(--bt-line); border-radius: 4px; text-decoration: none !important; color: inherit; transition: transform .2s, box-shadow .2s; }
.mcal-card:hover { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(0,0,0,.08); }
.mcal-card__img { flex: 0 0 80px; height: 80px; border-radius: 2px; background-size: cover; background-position: center; }
.mcal-card__body { min-width: 0; }
.mcal-card__type { font: 700 11px/1.3 'Lato', sans-serif; letter-spacing: .16em; text-transform: uppercase; color: var(--bt-orange-ink); margin-bottom: 5px; }
.mcal-card__name { font: 700 17px/1.25 'Lato', sans-serif !important; color: var(--bt-ink) !important; margin: 0 0 4px !important; }
.mcal-card__times { font-size: 14px !important; line-height: 1.45 !important; color: var(--bt-text); margin: 0 !important; }
.mcal-card--wait { border-color: var(--bt-orange); }
.mcal-card__wait { display: block; margin-top: 3px; color: var(--bt-orange-ink); font-weight: 700; font-size: 13px; }
.mcal-card--out { background: #faf8f5; }
.mcal-card--out .mcal-card__img { filter: grayscale(1); opacity: .55; }
.mcal-card--out .mcal-card__type, .mcal-card--out .mcal-card__name { color: var(--bt-muted) !important; }
.mcal-card--out .mcal-card__times { font-weight: 700; text-transform: uppercase; font-size: 11px !important; letter-spacing: .08em; }
.mcal__key { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 26px; margin: 26px 0 0 !important; font-size: 13px !important; line-height: 1.4 !important; color: var(--bt-muted); }
.mcal__key span { display: inline-flex; align-items: center; gap: 8px; }
.mcal__key i { width: 14px; height: 14px; border-radius: 2px; display: inline-block; }
.mcal__key .k-open { background: var(--bt-cream); border: 1px solid #f0d3a6; }
.mcal__key .k-lim { background: #fff; border: 1px dashed var(--bt-orange); }
.mcal__key .k-out { background: #f1eee9; }
@media (max-width: 640px) {
  .bt-mcal { padding: 56px 0 64px; }
  .bt-mcal--top { padding-top: 32px; }
  .bt-mcal__intro { margin-bottom: 22px; padding: 0 8px; }
  .bt-mcal .bt-wrap { padding: 0 12px; }
  .mcal__cal { min-height: 420px; }
  .mcal__week, .mcal__dows { gap: 4px; }
  .mcal__week { margin-bottom: 4px; }
  .mcal-day { gap: 3px; }
  .mcal-day__n { font-size: 14px; }
  .mcal-day__so { font-size: 7px; letter-spacing: .04em; }
  .mcal__dows span { letter-spacing: .06em; font-size: 10px; }
  .mcal__label { font-size: 24px; min-width: 180px; }
  .mcal-exp__cards { grid-template-columns: 1fr; }
  .mcal__panel { padding: 14px; }
}
.mcal-card__note { display: block; font-size: 12px; color: var(--bt-muted); margin-top: 2px; }

/* /links/: her link-in-bio page. One column of big taps, built for phones. */
.bt-links { background: var(--bt-cream); padding: 72px 0 80px; }
.bt-links__wrap { max-width: 560px; margin: 0 auto; padding: 0 16px; }
.bt-links .bt-script { text-align: center; margin: 0 0 4px !important; }
.bt-links__h1 { text-align: center; font: 300 40px/1.1 'Lato', sans-serif !important; color: var(--bt-ink) !important; margin: 0 0 28px !important; }
.bt-links__h { font: 700 12px/1.3 'Lato', sans-serif !important; letter-spacing: .2em; text-transform: uppercase; color: var(--bt-muted); margin: 34px 0 12px !important; }
.bt-links__a { display: flex; align-items: center; gap: 14px; min-height: 64px; padding: 12px 16px; margin-bottom: 10px; background: #fff; border: 1px solid var(--bt-line); border-radius: 4px; color: var(--bt-ink) !important; text-decoration: none !important; transition: transform .15s, box-shadow .15s, border-color .15s; }
.bt-links__a:hover { transform: translateY(-1px); border-color: var(--bt-orange); box-shadow: 0 8px 18px rgba(0,0,0,.07); }
.bt-links__a--main { background: var(--bt-orange); border-color: var(--bt-orange); min-height: 76px; }
.bt-links__a--main .bt-links__sub { color: rgba(20,20,20,.75); }
.bt-links__img { flex: 0 0 56px; height: 56px; border-radius: 2px; background-size: cover; background-position: center; }
.bt-links__txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.bt-links__label { font: 700 17px/1.25 'Lato', sans-serif; }
.bt-links__sub { font-size: 14px; line-height: 1.35; color: var(--bt-muted); }
.bt-links__go { font-size: 20px; color: var(--bt-ink); opacity: .6; }
.bt-links__contact { text-align: center; margin: 34px 0 0 !important; font-size: 15px !important; color: var(--bt-muted); }
.bt-links__contact a { color: var(--bt-orange-ink); }

/* Tour invitations on her top blog posts (tools/blog-ctas.json). */
.bt-bcta { display: grid; grid-template-columns: 220px 1fr; margin: 44px 0; background: var(--bt-cream); border: 1px solid var(--bt-line); border-radius: 4px; overflow: hidden; }
.bt-bcta__img { display: block; min-height: 220px; background-size: cover; background-position: center; text-decoration: none !important; }
.bt-bcta__body { padding: 26px 30px 28px; }
.bt-prose .bt-bcta p.bt-bcta__kicker { font: 700 11px/1.3 'Lato', sans-serif !important; letter-spacing: .2em; text-transform: uppercase; color: var(--bt-orange-ink) !important; margin: 0 0 8px !important; }
.bt-prose .bt-bcta p.bt-bcta__title { font: 400 25px/1.2 'Lato', sans-serif !important; color: var(--bt-ink) !important; margin: 0 0 10px !important; }
.bt-prose .bt-bcta p.bt-bcta__text { font-size: 16px !important; line-height: 1.6 !important; color: var(--bt-text); margin: 0 0 20px !important; }
.bt-prose .bt-bcta .bt-btn { text-decoration: none !important; color: var(--bt-ink) !important; }
.bt-prose .bt-bcta .bt-btn:hover { color: #fff !important; }
.bt-prose .bt-bcta--end .bt-btn:hover { background: #fff; border-color: #fff; color: var(--bt-ink) !important; }
.bt-bcta--end { background: var(--bt-ink); border-color: var(--bt-ink); margin-top: 56px; grid-template-columns: 1fr 1fr; }
.bt-bcta--end .bt-bcta__img { min-height: 300px; }
.bt-bcta--end .bt-bcta__body { padding: 40px 38px; align-self: center; }
.bt-prose .bt-bcta--end p.bt-bcta__kicker { color: var(--bt-orange) !important; }
.bt-prose .bt-bcta--end p.bt-bcta__title { color: #fff !important; font-size: 30px !important; }
.bt-prose .bt-bcta--end p.bt-bcta__text { color: rgba(255,255,255,.82) !important; }
@media (max-width: 640px) {
  .bt-bcta, .bt-bcta--end { grid-template-columns: 1fr; }
  .bt-bcta__img, .bt-bcta--end .bt-bcta__img { min-height: 180px; }
  .bt-bcta__body, .bt-bcta--end .bt-bcta__body { padding: 22px 20px 24px; }
  .bt-prose .bt-bcta--end p.bt-bcta__title { font-size: 25px !important; }
}

/* SEO headings (2026-10-21): where the search words became the H1, the old
   H1 line is now a <p> and the old script line an <h1>. Same look as before. */
.bt-hero--page p.bt-hero__title { line-height: 1.08 !important; }
.bt-mcal__intro h1.bt-script { font-size: 30px !important; line-height: 1.1 !important; margin: 0 0 4px !important; }
.bt-mcal__intro p.bt-h2 { font-size: clamp(28px, 2.93vw, 40px) !important; line-height: 1.2 !important; font-weight: 300 !important; letter-spacing: -0.005em !important; color: #141414 !important; }
