/* ==========================================================================
   Chi Bu Trip – tour detail, booking steps, booking lookup (WooCommerce)
   ========================================================================== */
:root { --cb-ok: #2f7d4f; --cb-err: #b3261e; --cb-idle: #b9ad99; }
.cb-muted { margin: 0; font: 400 14px/1.55 var(--cb-sans); color: var(--cb-muted); }
.cb-muted a { color: var(--cb-forest); font-weight: 600; }
.cb-ink { color: var(--cb-ink); }
.cb-crumbs { margin: 0; font: 400 13px/1.4 var(--cb-sans); color: var(--cb-muted); white-space: pre-wrap; }
.cb-crumbs a { color: inherit; text-decoration: none; }
.cb-crumbs a:hover { text-decoration: underline; }
.cb-eyebrow { margin: 0; font: 600 13px/1.3 var(--cb-sans); letter-spacing: 1.56px; color: var(--cb-terra); }
.cb-more { font: 600 15px/1.3 var(--cb-sans); color: var(--cb-ink); text-decoration: none; white-space: pre; }
.cb-more:hover { color: var(--cb-terra); }
.cb-btn--block { width: 100%; }
.cb-btn--line { background: transparent; color: var(--cb-forest); border-color: var(--cb-line); padding: 11px 22px; font-size: 15px; }
.cb-btn--line:hover, .cb-btn--line:focus { border-color: var(--cb-forest); color: var(--cb-forest); background: transparent; }
.cb-chip-tag--terra { background: var(--cb-terra); color: #fff; }
.cb-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.cb-link-btn { padding: 0; border: 0; background: none; font: 600 15px/1.3 var(--cb-sans); color: var(--cb-terra); cursor: pointer; }
.cb-link-btn:hover, .cb-link-btn:focus { background: none; color: var(--cb-forest); }
.cb-footnote { margin: 0; font: 400 13px/1.5 var(--cb-sans); color: rgba(91, 84, 76, .8); }
.cb-round { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; padding: 0; border-radius: 50%; border: 1.5px solid var(--cb-line); background: #fff; color: var(--cb-ink); font: 400 18px/1 var(--cb-sans); cursor: pointer; }
.cb-round:hover, .cb-round:focus { background: #fff; color: var(--cb-ink); border-color: var(--cb-forest); }
.cb-round:disabled { opacity: .35; cursor: default; border-color: var(--cb-line); }

/* Tour detail ------------------------------------------------------------- */
.cb-tour__top { max-width: 1240px; margin: 0 auto; padding: 28px 20px 0; display: flex; flex-direction: column; gap: 20px; }
.cb-gallery { display: grid; gap: 12px; grid-template-columns: 588fr 294fr 294fr; grid-template-rows: 220px 220px; border-radius: 18px; overflow: hidden; }
.cb-gallery__item { position: relative; display: block; overflow: hidden; background: var(--cb-sand); }
.cb-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.cb-gallery__item:hover img { transform: scale(1.03); }
.cb-gallery__item:nth-child(1) { grid-row: 1 / 3; }
.cb-gallery__item:nth-child(4) { grid-column: 2 / 4; }
.cb-gallery--1 { grid-template-columns: 1fr; grid-template-rows: 452px; }
.cb-gallery--2 { grid-template-columns: 1fr 1fr; }
.cb-gallery--2 .cb-gallery__item:nth-child(2) { grid-row: 1 / 3; }
.cb-gallery--3 .cb-gallery__item:nth-child(2), .cb-gallery--3 .cb-gallery__item:nth-child(3) { grid-column: 2 / 4; }
.cb-gallery__count { position: absolute; right: 12px; bottom: 12px; padding: 6px 12px; border-radius: 999px; background: rgba(35, 31, 27, .7); color: #fff; font: 600 13px/1.2 var(--cb-sans); }
.cb-tour__content { max-width: 1240px; margin: 0 auto; padding: 40px 20px 100px; display: flex; gap: 56px; align-items: flex-start; }
.cb-tour__main { flex: 1 1 764px; min-width: 0; display: flex; flex-direction: column; gap: 28px; }
.cb-tour__side { flex: 0 0 380px; position: sticky; top: 120px; }
.cb-tour__head { display: flex; flex-direction: column; gap: 12px; }
.cb-tour__title { margin: 0; font: 700 52px/1.12 var(--cb-serif); color: var(--cb-forest); }
.cb-tour__meta { margin: 0; font: 400 14px/1.4 var(--cb-sans); color: var(--cb-muted); }
.cb-tour__lead p { margin: 0; font: 400 17px/1.65 var(--cb-sans); color: var(--cb-muted); }
.cb-facts { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1px; margin: 0; background: var(--cb-line); border: 1px solid var(--cb-line); border-radius: 16px; overflow: hidden; }
.cb-facts > div { display: flex; flex-direction: column; gap: 4px; padding: 16px; background: #fff; }
.cb-facts dt { font: 400 12px/1.3 var(--cb-sans); color: var(--cb-muted); }
.cb-facts dd { margin: 0; font: 600 14px/1.4 var(--cb-sans); color: var(--cb-ink); }
.cb-tabs { display: flex; gap: 28px; border-bottom: 1px solid var(--cb-line); overflow-x: auto; scrollbar-width: none; position: sticky; top: 96px; z-index: 5; background: var(--cb-cream); }
.admin-bar .cb-tabs { top: 128px; }
.cb-tabs::-webkit-scrollbar { display: none; }
.cb-tabs a { flex: 0 0 auto; padding: 16px 0 14px; border-bottom: 2px solid transparent; font: 600 15px/1.2 var(--cb-sans); color: var(--cb-muted); text-decoration: none; white-space: nowrap; }
.cb-tabs a.is-active, .cb-tabs a:hover { color: var(--cb-forest); border-bottom-color: var(--cb-gold); }
.cb-tour__sec { display: flex; flex-direction: column; gap: 16px; padding-top: 28px; scroll-margin-top: 160px; }
.cb-tour__sec#noi-bat { gap: 20px; padding-top: 20px; }
.cb-tour__sec h2 { margin: 0; font: 700 30px/1.2 var(--cb-serif); color: var(--cb-forest); }
.cb-tour__sec-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.cb-checks { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 20px; }
.cb-checks li { position: relative; padding-left: 30px; font: 400 16px/1.55 var(--cb-sans); color: var(--cb-ink); }
.cb-checks li::before { content: "✓"; position: absolute; left: 0; top: 2px; width: 20px; height: 20px; border-radius: 50%; background: var(--cb-forest); color: var(--cb-gold); font: 700 11px/20px var(--cb-sans); text-align: center; }
.cb-checks--x li::before { content: "×"; background: var(--cb-sand); color: var(--cb-terra); font-size: 14px; }
.cb-incl .cb-checks { gap: 12px; }
.cb-days { display: flex; flex-direction: column; gap: 12px; }
.cb-day { background: #fff; border: 1px solid var(--cb-line); border-radius: 16px; overflow: hidden; }
.cb-day summary { display: flex; align-items: center; gap: 16px; padding: 18px 22px; cursor: pointer; list-style: none; }
.cb-day summary::-webkit-details-marker { display: none; }
.cb-day__pill { flex: 0 0 auto; padding: 5px 12px; border-radius: 999px; background: var(--cb-forest); color: var(--cb-gold); font: 600 13px/1.2 var(--cb-sans); }
.cb-day__title { flex: 1; font: 700 20px/1.15 var(--cb-serif); color: var(--cb-forest); }
.cb-day__meals { font: 400 13px/1.3 var(--cb-sans); color: var(--cb-muted); }
.cb-day__sign::before { content: "+"; font: 400 22px/1 var(--cb-sans); color: var(--cb-terra); }
.cb-day[open] .cb-day__sign::before { content: "−"; }
.cb-day__body { display: flex; flex-direction: column; gap: 12px; padding: 18px 22px 22px; border-top: 1px solid var(--cb-line); }
.cb-day__body p { display: flex; gap: 12px; margin: 0; font: 400 15px/1.6 var(--cb-sans); color: var(--cb-muted); }
.cb-day__time { flex: 0 0 56px; font-weight: 600; font-size: 14px; color: var(--cb-terra); }
.cb-price-table { background: #fff; border: 1px solid var(--cb-line); border-radius: 16px; overflow: hidden; }
.cb-price-table__row { display: grid; grid-template-columns: 300fr 180fr 248fr; gap: 12px; padding: 14px 18px; border-top: 1px solid var(--cb-line); font: 400 15px/1.45 var(--cb-sans); color: var(--cb-ink); }
.cb-price-table__row strong { font-weight: 700; }
.cb-price-table__row.is-head { border-top: 0; background: var(--cb-forest); color: var(--cb-cream); font-size: 13px; font-weight: 600; }
.cb-incl { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.cb-incl__card, .cb-policy > div { display: flex; flex-direction: column; gap: 16px; padding: 24px; background: #fff; border: 1px solid var(--cb-line); border-radius: 16px; }
.cb-incl__title { margin: 0; font: 700 17px/1.3 var(--cb-sans); color: var(--cb-forest); }
.cb-deps { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cb-dep { display: flex; align-items: center; gap: 12px; padding: 14px 18px; background: #fff; border: 1px solid var(--cb-line); border-radius: 14px; }
.cb-dep.is-full { opacity: .55; }
.cb-dep__info { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.cb-dep__info strong { font: 700 15px/1.3 var(--cb-sans); color: var(--cb-ink); }
.cb-dep__info span { font: 400 13px/1.3 var(--cb-sans); color: var(--cb-muted); }
.cb-dep__seats { font: 600 12px/1.2 var(--cb-sans); color: var(--cb-ok); }
.cb-dep__seats.is-low { color: var(--cb-terra); }
.cb-dep__seats.is-out { color: var(--cb-muted); }
.cb-policy { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.cb-policy > div { gap: 10px; padding: 22px; }
.cb-policy p:not(.cb-incl__title) { margin: 0; font: 400 15px/1.6 var(--cb-sans); color: var(--cb-muted); }
.cb-reviews { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.cb-review-card { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 26px 28px 28px; background: #fff; border-radius: 16px; }
.cb-review-card__stars { margin: 0; font: 400 14px/1 var(--cb-sans); color: var(--cb-gold); }
.cb-review-card blockquote { flex: 1; margin: 0; padding: 0; border: 0; font: 400 16px/1.6 var(--cb-sans); color: var(--cb-ink); font-style: normal; }
.cb-review-card figcaption { font: 600 13px/1.3 var(--cb-sans); color: var(--cb-forest); white-space: pre-wrap; }
.cb-bookbox { display: flex; flex-direction: column; gap: 16px; padding: 26px; background: #fff; border: 1px solid var(--cb-line); border-radius: 20px; box-shadow: 0 10px 30px rgba(35, 31, 27, .08); }
.cb-bookbox p { margin: 0; }
.cb-bookbox__from { margin-bottom: -10px !important; font: 400 13px/1.3 var(--cb-sans); color: var(--cb-muted); }
.cb-bookbox__price { display: flex; align-items: baseline; gap: 6px; }
.cb-bookbox__price strong { font: 700 32px/1.15 var(--cb-serif); color: var(--cb-forest); }
.cb-bookbox__price span { font: 400 15px/1.3 var(--cb-sans); color: var(--cb-muted); }
.cb-bookbox__price del { margin-left: auto; font: 400 14px/1.3 var(--cb-sans); color: var(--cb-muted); }
.cb-bookbox .cb-field label { font-size: 12px; color: var(--cb-muted); }
.cb-bookbox select, .cb-booking select, .cb-booking input[type="text"], .cb-booking input[type="email"], .cb-booking input[type="tel"], .cb-booking input[type="number"], .cb-booking textarea, .cb-track input {
	width: 100%; padding: 12px 14px; border: 1px solid var(--cb-line); border-radius: 12px; background: #fff; font: 400 15px/1.4 var(--cb-sans); color: var(--cb-ink);
}
.cb-booking input::placeholder, .cb-booking textarea::placeholder, .cb-track input::placeholder { color: rgba(91, 84, 76, .7); }
.cb-bookbox select:focus, .cb-booking input:focus, .cb-booking select:focus, .cb-booking textarea:focus, .cb-track input:focus { outline: none; border-color: var(--cb-forest); }
.cb-bookbox__sub { display: flex; justify-content: space-between; align-items: baseline; font: 400 15px/1.3 var(--cb-sans); color: var(--cb-muted); }
.cb-bookbox__sub strong { font: 700 20px/1.2 var(--cb-sans); color: var(--cb-ink); }
.cb-bookbox__trust { margin: 0; padding: 14px 0 0; list-style: none; border-top: 1px solid var(--cb-line); display: flex; flex-direction: column; gap: 8px; font: 400 14px/1.4 var(--cb-sans); color: var(--cb-muted); white-space: pre-wrap; }
.cb-guests { border: 1px solid var(--cb-line); border-radius: 14px; overflow: hidden; }
.cb-guests__row { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 14px; }
.cb-guests__row + .cb-guests__row { border-top: 1px solid var(--cb-line); }
.cb-guests__label { margin: 0; font: 600 15px/1.3 var(--cb-sans); color: var(--cb-ink); }
.cb-guests__sub { margin: 0; font: 400 12px/1.3 var(--cb-sans); color: var(--cb-muted); }
.cb-qty { display: flex; align-items: center; gap: 4px; flex: 0 0 auto; }
.cb-qty input { width: 28px !important; padding: 0 !important; border: 0 !important; background: transparent !important; text-align: center; font: 600 16px/1 var(--cb-sans) !important; color: var(--cb-ink); }
.cb-tour__related { padding: 100px 20px; background: var(--cb-sand); }
.cb-tour__related > * { max-width: 1200px; margin-left: auto; margin-right: auto; }
.cb-related-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 44px; }
.cb-related-head h2 { margin: 14px 0 0; font: 700 46px/1.15 var(--cb-serif); color: var(--cb-forest); }
@media (max-width: 1024px) {
	.cb-tour__content { flex-direction: column; gap: 40px; padding: 32px 32px 80px; }
	.cb-tour__side { position: static; width: 100%; flex-basis: auto; }
	.cb-facts { grid-template-columns: repeat(3, 1fr); }
	.cb-tabs { top: 72px; }
}
@media (max-width: 767px) {
	.cb-tour__top { padding: 16px 16px 0; }
	.cb-gallery { grid-template-columns: repeat(3, 1fr); grid-template-rows: 260px 90px; border-radius: 14px; gap: 8px; }
	.cb-gallery__item:nth-child(1) { grid-row: auto; grid-column: 1 / -1; }
	.cb-gallery__item:nth-child(4), .cb-gallery--3 .cb-gallery__item:nth-child(2), .cb-gallery--3 .cb-gallery__item:nth-child(3) { grid-column: auto; }
	.cb-tour__content { padding: 24px 16px 64px; }
	.cb-tour__title { font-size: 36px; }
	.cb-facts { grid-template-columns: 1fr 1fr; }
	.cb-incl, .cb-deps, .cb-policy, .cb-reviews { grid-template-columns: 1fr; }
	.cb-price-table__row { grid-template-columns: 1.2fr 1fr; }
	.cb-price-table__row > :nth-child(3) { grid-column: 1 / -1; color: var(--cb-muted); font-size: 13px; }
	.cb-price-table__row.is-head > :nth-child(3) { display: none; }
	.cb-day summary { flex-wrap: wrap; gap: 8px 12px; padding: 16px; }
	.cb-day__title { flex-basis: 100%; order: 3; }
	.cb-day__sign { margin-left: auto; }
	.cb-tour__related { padding: 64px 16px; }
	.cb-related-head { flex-direction: column; align-items: flex-start; }
	.cb-related-head h2 { font-size: 32px; }
}

/* Booking steps ------------------------------------------------------------ */
.cb-booking { max-width: 1240px; margin: 0 auto; padding: 28px 20px 100px; }
.cb-booking-head { display: flex; flex-direction: column; gap: 8px; padding-bottom: 24px; }
.cb-booking-title { margin: 0 0 20px; font: 700 46px/1.15 var(--cb-serif); color: var(--cb-forest); }
.cb-stepper { display: flex; gap: 8px; margin: 0; padding: 0; list-style: none; }
.cb-stepper__item { flex: 1; display: flex; align-items: center; gap: 10px; padding-bottom: 14px; border-bottom: 3px solid var(--cb-line); }
.cb-stepper__num { flex: 0 0 28px; height: 28px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--cb-line); color: var(--cb-muted); font: 600 13px/1 var(--cb-sans); }
.cb-stepper__label { font: 600 14px/1.2 var(--cb-sans); color: var(--cb-muted); }
.cb-stepper__item.is-done { border-color: var(--cb-forest); }
.cb-stepper__item.is-done .cb-stepper__num { background: var(--cb-forest); color: var(--cb-gold); }
.cb-stepper__item.is-done .cb-stepper__label { color: var(--cb-forest); }
.cb-stepper__item.is-current { border-color: var(--cb-gold); }
.cb-stepper__item.is-current .cb-stepper__num { background: var(--cb-gold); color: var(--cb-ink); }
.cb-stepper__item.is-current .cb-stepper__label { color: var(--cb-ink); }
.cb-booking__layout { display: flex; gap: 40px; align-items: flex-start; }
.cb-booking__main { flex: 1 1 780px; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.cb-step-panel { display: flex; flex-direction: column; gap: 20px; }
.cb-step-panel[hidden] { display: none; }
.cb-booking__side { flex: 0 0 380px; position: sticky; top: 120px; }
.cb-card { display: flex; flex-direction: column; gap: 18px; padding: 28px; background: #fff; border: 1px solid var(--cb-line); border-radius: 20px; }
.cb-card__title { margin: 0; font: 700 24px/1.2 var(--cb-serif); color: var(--cb-forest); }
.cb-card__title--sub { margin-top: 10px; }
.cb-card--center { align-items: center; text-align: center; }
.cb-booking .cb-field label { font: 600 13px/1.3 var(--cb-sans); color: var(--cb-muted); }
.cb-booking .cb-form__grid { gap: 16px; }
.cb-field.has-error input { border-color: var(--cb-err); }
.cb-error { margin: 0; font: 400 12px/1.4 var(--cb-sans); color: var(--cb-err); }
.cb-success { margin: 0; font: 400 14px/1.5 var(--cb-sans); color: var(--cb-ok); }
.cb-tour-pick { display: flex; align-items: center; gap: 16px; }
.cb-tour-pick__thumb { width: 120px; height: 84px; object-fit: cover; border-radius: 12px; background: var(--cb-sand); flex: 0 0 auto; }
.cb-options { display: flex; flex-direction: column; gap: 18px; margin: 0; padding: 0; list-style: none; }
.cb-options--row { flex-direction: row; gap: 12px; }
.cb-options--row > * { flex: 1; }
.cb-options--inline { flex-direction: row; flex-wrap: wrap; gap: 12px 24px; }
.cb-option { position: relative; display: flex; align-items: flex-start; gap: 12px; margin: 0; padding: 16px; border: 1.5px solid var(--cb-line); border-radius: 14px; background: #fff; cursor: pointer; transition: border-color .2s, background-color .2s; }
.cb-option.is-selected { border-color: var(--cb-forest); background: rgba(31, 77, 58, .04); }
.cb-option.is-disabled { opacity: .5; cursor: not-allowed; }
.cb-option input { appearance: none; -webkit-appearance: none; flex: 0 0 18px; width: 18px; height: 18px; margin: 1px 0 0; border: 1.5px solid var(--cb-idle); border-radius: 50%; background: #fff; display: grid; place-content: center; cursor: pointer; }
.cb-option input:checked { border-color: var(--cb-forest); }
.cb-option input[type="radio"]:checked::after { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--cb-forest); }
.cb-option input[type="checkbox"] { border-radius: 5px; }
.cb-option input[type="checkbox"]:checked { background: var(--cb-forest); }
.cb-option input[type="checkbox"]:checked::after { content: "✓"; color: #fff; font: 700 11px/1 var(--cb-sans); }
.cb-option__body { flex: 1; display: flex; flex-direction: column; gap: 4px; }
.cb-option__title { font: 600 15px/1.35 var(--cb-sans); color: var(--cb-ink); }
.cb-option__desc { font: 400 13px/1.5 var(--cb-sans); color: var(--cb-muted); }
.cb-option__amount { font: 600 14px/1.35 var(--cb-sans); color: var(--cb-ink); white-space: nowrap; }
.cb-option--check { padding: 12px 16px; }
.cb-options--inline .cb-option--check { border: 0; padding: 0; background: none; }
.cb-option--compact { flex: 0 0 auto; padding: 10px 14px; }
.cb-cal { padding: 17px; border: 1px solid var(--cb-line); border-radius: 16px; display: flex; flex-direction: column; gap: 12px; }
.cb-cal__nav { display: flex; align-items: center; justify-content: space-between; }
.cb-cal__month { margin: 0; font: 600 16px/1.3 var(--cb-sans); color: var(--cb-ink); }
.cb-cal__nav .cb-round:disabled { opacity: .3; }
.cb-cal__week, .cb-cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; text-align: center; }
.cb-cal__week span { font: 600 12px/1.3 var(--cb-sans); color: var(--cb-muted); }
.cb-cal__day { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; height: 54px; padding: 0; border: 1px solid transparent; border-radius: 10px; background: none; color: rgba(35, 31, 27, .35); cursor: default; }
.cb-cal__day:hover, .cb-cal__day:focus, .cb-cal__day:disabled { background: none; color: rgba(35, 31, 27, .35); }
.cb-cal__n { font: 400 14px/1.2 var(--cb-sans); }
.cb-cal__s { font: 600 10px/1.2 var(--cb-sans); min-height: 12px; }
.cb-cal__day.is-full .cb-cal__s { color: var(--cb-muted); font-weight: 400; }
.cb-cal__day.is-open { background: rgba(31, 77, 58, .06); border-color: rgba(31, 77, 58, .15); color: var(--cb-ink); cursor: pointer; }
.cb-cal__day.is-open:hover, .cb-cal__day.is-open:focus { background: rgba(31, 77, 58, .12); color: var(--cb-ink); }
.cb-cal__day.is-open .cb-cal__n { font-weight: 600; }
.cb-cal__day.is-open .cb-cal__s { color: var(--cb-ok); }
.cb-cal__day.is-selected, .cb-cal__day.is-selected:hover, .cb-cal__day.is-selected:focus { background: var(--cb-forest); border-color: var(--cb-forest); color: #fff; }
.cb-cal__day.is-selected .cb-cal__s { color: var(--cb-gold); }
.cb-cal__legend { margin: 0; display: flex; align-items: center; gap: 6px; font: 400 12px/1.3 var(--cb-sans); color: var(--cb-muted); }
.cb-cal__key { display: inline-block; width: 12px; height: 12px; border-radius: 3px; background: rgba(31, 77, 58, .06); border: 1px solid rgba(31, 77, 58, .15); }
.cb-cal__key.is-selected { margin-left: 12px; background: var(--cb-forest); border-color: var(--cb-forest); }
.cb-travellers { display: flex; flex-direction: column; gap: 18px; }
.cb-traveller { display: flex; flex-direction: column; gap: 14px; padding: 18px; border: 1px solid var(--cb-line); border-radius: 14px; }
.cb-traveller__head { display: flex; justify-content: space-between; margin: 0; font: 600 15px/1.3 var(--cb-sans); color: var(--cb-ink); }
.cb-traveller__head span { font: 500 13px/1.3 var(--cb-sans); color: var(--cb-muted); }
.cb-traveller__fields { display: flex; gap: 16px; }
.cb-traveller__narrow { flex: 0 0 150px; }
.cb-extras { display: flex; flex-direction: column; gap: 18px; }
.cb-extra { display: flex; align-items: center; gap: 12px; padding: 16px; border: 1.5px solid var(--cb-line); border-radius: 14px; }
.cb-extra__info { flex: 1; }
.cb-extra__info p { margin: 0; }
.cb-extra__name { font: 600 15px/1.4 var(--cb-sans); color: var(--cb-ink); }
.cb-extra__desc { font: 400 13px/1.5 var(--cb-sans); color: var(--cb-muted); }
.cb-extra__price { font: 700 13px/1.5 var(--cb-sans); color: var(--cb-ink); }
.cb-actions { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; }
.cb-review { display: flex; flex-direction: column; gap: 8px; margin: 0; }
.cb-review > div { display: flex; gap: 6px; font: 400 14px/1.5 var(--cb-sans); }
.cb-review dt { color: var(--cb-muted); font-weight: 400; }
.cb-review dd { margin: 0; flex: 1; font-weight: 600; color: var(--cb-ink); }
.cb-review a { font-weight: 600; color: var(--cb-terra); text-decoration: none; }
.cb-coupon__row { display: flex; gap: 8px; align-items: center; }
.cb-coupon__row input { flex: 1; width: auto !important; }
.cb-coupon__msg:empty { display: none; }
.cb-coupon__msg .woocommerce-error, .cb-coupon__msg .woocommerce-message, .cb-coupon__msg .woocommerce-info { margin: 0; padding: 0; border: 0; background: none; font: 400 14px/1.5 var(--cb-sans); list-style: none; }
.cb-coupon__msg .woocommerce-error { color: var(--cb-err); }
.cb-coupon__msg .woocommerce-message { color: var(--cb-ok); }
.cb-coupon__msg .woocommerce-error::before, .cb-coupon__msg .woocommerce-message::before, .cb-coupon__msg .woocommerce-info::before { display: none; }
.cb-booking--checkout #payment { display: flex; flex-direction: column; gap: 20px; background: none; border-radius: 0; }
.cb-booking--checkout #payment ul.payment_methods { padding: 0; border: 0; }
.cb-booking--checkout #payment ul.payment_methods li { margin: 0; line-height: inherit; }
.cb-booking--checkout #payment ul.payment_methods li::before, .cb-booking--checkout #payment ul.payment_methods li::after { display: none; }
.cb-booking--checkout #payment div.form-row { padding: 0; margin: 0; }
.cb-booking--checkout .woocommerce-terms-and-conditions-wrapper { padding: 8px 0 0; }
.cb-booking--checkout .woocommerce-form__label-for-checkbox { display: flex !important; gap: 12px; align-items: flex-start; font: 600 15px/1.4 var(--cb-sans); color: var(--cb-ink); }
.cb-booking--checkout .woocommerce-form__label-for-checkbox a { color: var(--cb-forest); }
.cb-booking--checkout .woocommerce-form__input-checkbox { flex: 0 0 18px; width: 18px; height: 18px; margin-top: 1px; accent-color: var(--cb-forest); }
.cb-booking--checkout .required { color: var(--cb-terra); }
.cb-terms-sub { margin: 4px 0 20px 30px; font: 400 13px/1.5 var(--cb-sans); color: var(--cb-muted); }
.cb-booking--checkout .blockUI.blockOverlay { border-radius: 20px; }
.cb-summary { display: block; background: #fff; border: 1px solid var(--cb-line); border-radius: 20px; box-shadow: 0 10px 30px rgba(35, 31, 27, .08); overflow: hidden; }
.cb-summary__media { height: 150px; background: var(--cb-sand); }
.cb-summary__media img { width: 100%; height: 100%; object-fit: cover; }
.cb-summary__body { display: flex; flex-direction: column; gap: 14px; padding: 22px 24px 24px; }
.cb-summary p { margin: 0; }
.cb-summary__title { font: 700 22px/1.15 var(--cb-serif); color: var(--cb-forest); }
.cb-summary__meta { display: flex; flex-direction: column; gap: 6px; font: 400 14px/1.4 var(--cb-sans); color: var(--cb-muted); }
.cb-summary__lines { display: flex; flex-direction: column; gap: 8px; padding-top: 14px; border-top: 1px solid var(--cb-line); }
.cb-summary__lines:empty { display: none; }
.cb-summary__lines p, .cb-summary__deposit p, .cb-summary__total { display: flex; justify-content: space-between; gap: 12px; font: 400 14px/1.4 var(--cb-sans); color: var(--cb-muted); }
.cb-summary__lines p span:last-child { color: var(--cb-ink); white-space: nowrap; }
.cb-summary__lines p.is-discount span:last-child { color: var(--cb-ok); }
.cb-summary .cb-summary__total { align-items: baseline; padding-top: 14px; border-top: 1px solid var(--cb-line); font-size: 15px; color: var(--cb-ink); }
.cb-summary__total strong { font: 700 26px/1.1 var(--cb-serif); color: var(--cb-forest); }
.cb-summary__deposit { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; background: var(--cb-cream); border-radius: 12px; }
.cb-summary__deposit strong { color: var(--cb-terra); }
.cb-summary .cb-summary__foot { font: 400 13px/1.5 var(--cb-sans); color: var(--cb-muted); }
.cb-done-mark { display: inline-flex; align-items: center; justify-content: center; width: 72px; height: 72px; border-radius: 50%; background: var(--cb-forest); color: var(--cb-gold); font: 700 34px/1 var(--cb-sans); }
.cb-done-code { margin: -8px 0 0; font: 700 34px/1.15 var(--cb-serif); color: var(--cb-terra); }
.cb-done-text { max-width: 620px; }
.cb-pay-title { margin: 0; font: 700 16px/1.3 var(--cb-sans); color: var(--cb-ink); }
.cb-bank { display: flex; align-items: center; gap: 20px; padding: 20px; background: var(--cb-cream); border-radius: 16px; }
.cb-bank__qr { flex: 0 0 160px; width: 160px; height: 160px; padding: 8px; background: #fff; border-radius: 12px; object-fit: contain; }
.cb-bank__list { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.cb-bank__list > div { display: flex; gap: 14px; font: 400 14px/1.4 var(--cb-sans); }
.cb-bank__list dt { flex: 0 0 110px; color: var(--cb-muted); font-weight: 400; }
.cb-bank__list dd { margin: 0; font-weight: 600; color: var(--cb-ink); }
.cb-next { margin: 0; padding: 0; list-style: none; counter-reset: n; display: flex; flex-direction: column; gap: 18px; }
.cb-next li { position: relative; padding-left: 42px; counter-increment: n; display: flex; flex-direction: column; gap: 2px; font: 400 15px/1.5 var(--cb-sans); color: var(--cb-muted); }
.cb-next li::before { content: counter(n); position: absolute; left: 0; top: 0; width: 28px; height: 28px; border-radius: 50%; background: var(--cb-gold); color: var(--cb-ink); font: 700 13px/28px var(--cb-sans); text-align: center; }
.cb-next strong { font-weight: 600; color: var(--cb-ink); }
.cb-booking .woocommerce-error, .cb-booking .woocommerce-message, .cb-booking .woocommerce-info { margin: 0 0 20px; border-radius: 14px; font: 400 14px/1.5 var(--cb-sans); }
@media (max-width: 1024px) {
	.cb-booking__layout { flex-direction: column; }
	.cb-booking__side { position: static; width: 100%; flex-basis: auto; }
	.cb-summary__media { display: none; }
}
@media (max-width: 767px) {
	.cb-booking { padding: 16px 16px 64px; }
	.cb-booking-title { font-size: 34px; margin-bottom: 8px; }
	.cb-stepper__item { gap: 0; justify-content: center; }
	.cb-stepper__label { display: none; }
	.cb-stepper__item.is-current { flex: 2.5; gap: 8px; justify-content: flex-start; }
	.cb-stepper__item.is-current .cb-stepper__label { display: inline; font-size: 13px; }
	.cb-card { padding: 20px; border-radius: 16px; }
	.cb-options--row { flex-direction: column; }
	.cb-cal { padding: 10px; }
	.cb-cal__day { height: 48px; }
	.cb-traveller__fields { flex-wrap: wrap; }
	.cb-traveller__fields .cb-grow { flex-basis: 100%; }
	.cb-traveller__narrow { flex: 1 1 0; }
	.cb-actions .cb-btn--lg { width: 100%; order: -1; }
	.cb-bank { flex-direction: column; align-items: flex-start; }
	.cb-tour-pick__thumb { width: 84px; height: 64px; }
}

/* Booking lookup ------------------------------------------------------------ */
.cb-track { display: flex; flex-direction: column; gap: 20px; }
.cb-track__fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.cb-track .cb-field label { font: 600 13px/1.3 var(--cb-sans); color: var(--cb-muted); }
.cb-track button { align-self: flex-start; }
.cb-track__error { margin: 0; font: 400 14px/1.5 var(--cb-sans); color: var(--cb-err); }
.cb-track-result { display: flex; flex-direction: column; gap: 14px; margin-top: 24px; padding: 28px; background: #fff; border: 1px solid var(--cb-line); border-radius: 16px; }
.cb-track-result p { margin: 0; font: 400 14px/1.5 var(--cb-sans); color: var(--cb-muted); }
.cb-track-result strong { color: var(--cb-ink); }
.cb-track-result .cb-track-result__code { font: 600 13px/1.3 var(--cb-sans); letter-spacing: 1.56px; color: var(--cb-terra); }
.cb-track-result .cb-track-result__title { font: 700 24px/1.2 var(--cb-serif); color: var(--cb-forest); }
.cb-track-result .cb-btn { align-self: flex-start; }
@media (max-width: 640px) { .cb-track__fields { grid-template-columns: 1fr; } }

/* Tour list page filter bar (Elementor) */
.cb-filter__box { cursor: pointer; }
@media (max-width: 767px) { .cb-filterbar .elementor-widget-button, .cb-filterbar .elementor-button { width: 100%; } }

@media print {
	.cb-site-header, .cb-site-footer, .cb-actions, .cb-stepper { display: none !important; }
}

/* Buttons rendered as links never underline; Woo pages use the full layout width */
a.cb-btn, a.cb-btn:hover { text-decoration: none; }
.woocommerce-checkout .site-main, .woocommerce-checkout .page-content { max-width: none; width: 100%; padding: 0; margin: 0; }
.woocommerce-checkout .page-header { display: none; }

/* Stacked layouts must stretch, otherwise the nowrap tab bar widens the column */
@media (max-width: 1024px) { .cb-tour__content, .cb-booking__layout { align-items: stretch; } .cb-tour__main { flex-basis: auto; } }
