/*!
 * BBK Tours Suite — front-end design system
 * Noir, ivory & copper luxury theme (from the BBK Tours logo) for the booking popup,
 * cards and Elementor HTML sections.
 */

:root {
	/* Noir, ivory & copper — derived from the BBK Tours logo (#b67621). */
	--bbk-noir: #151210;
	--bbk-noir-2: #211b17;
	--bbk-noir-3: #2e2620;
	--bbk-ink: #1b1714;
	--bbk-text: #574d44;
	--bbk-muted: #7d7266;
	--bbk-line: #e9e0d3;
	--bbk-line-2: #e6ddcf;
	--bbk-copper: #b67621;
	--bbk-copper-2: #d8a865;
	--bbk-copper-3: #ecd2a8;
	--bbk-copper-ink: #8a5513;
	--bbk-copper-soft: rgba(182, 118, 33, .12);
	--bbk-ivory: #faf6ef;
	--bbk-sand: #f2ebdf;
	--bbk-field: #f7f2ea;
	--bbk-white: #fff;
	--bbk-wa: #25d366;
	--bbk-wa-ink: #128c7e;
	--bbk-radius-xs: 4px;
	--bbk-radius-sm: 8px;
	--bbk-radius: 12px;
	--bbk-radius-lg: 18px;
	--bbk-shadow-sm: 0 2px 10px rgba(27, 23, 20, .06);
	--bbk-shadow: 0 22px 50px -24px rgba(27, 23, 20, .35);
	--bbk-shadow-lg: 0 40px 120px -30px rgba(12, 10, 8, .6);
	--bbk-sans: "Jost", "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
	--bbk-serif: "Cormorant Garamond", "Cormorant", Garamond, Georgia, "Times New Roman", serif;
	--bbk-ease: cubic-bezier(.2, .7, .2, 1);
	/* Backward-compatible aliases (older Elementor sections may reference them). */
	--bbk-navy: var(--bbk-noir);
	--bbk-navy-2: var(--bbk-noir-2);
	--bbk-navy-3: var(--bbk-noir-3);
	--bbk-gold: var(--bbk-copper);
	--bbk-gold-2: var(--bbk-copper-2);
	--bbk-gold-ink: var(--bbk-copper-ink);
	--bbk-gold-soft: var(--bbk-copper-soft);
}

/* ------------------------------------------------------------------ */
/* Base helpers                                                        */
/* ------------------------------------------------------------------ */

.bbk-root, .bbk-modal, .bbk-section, .bbk-hero, .bbk-phero, .bbk-single, .bbk-cardgrid, .bbk-card-book, .bbk-sticky-bar, .bbk-bookbox {
	font-family: var(--bbk-sans);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.bbk-modal *, .bbk-modal *::before, .bbk-modal *::after,
.bbk-section *, .bbk-section *::before, .bbk-section *::after,
.bbk-hero *, .bbk-hero *::before, .bbk-hero *::after,
.bbk-phero *, .bbk-single *, .bbk-single *::before, .bbk-single *::after {
	box-sizing: border-box;
}

.bbk-container {
	width: 100%;
	max-width: 1260px;
	margin-inline: auto;
	padding-inline: 24px;
}

.bbk-sr {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap; border: 0;
}

.bbk-ico { display: inline-block; flex: none; vertical-align: middle; }

/* ------------------------------------------------------------------ */
/* Buttons                                                             */
/* ------------------------------------------------------------------ */

.bbk-btn {
	--_bg: var(--bbk-noir);
	--_fg: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 50px;
	padding: 13px 28px;
	border: 1px solid transparent;
	border-radius: var(--bbk-radius-xs);
	background: var(--_bg);
	color: var(--_fg) !important;
	font: 600 13.5px/1.2 var(--bbk-sans);
	letter-spacing: .14em;
	text-transform: uppercase;
	text-decoration: none !important;
	cursor: pointer;
	transition: transform .25s var(--bbk-ease), box-shadow .25s var(--bbk-ease), background .25s, color .25s, border-color .25s;
	white-space: nowrap;
}
.bbk-btn svg { width: 18px; height: 18px; flex: none; }
.bbk-btn:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -14px rgba(27, 23, 20, .55); }
.bbk-btn:focus-visible { outline: 3px solid var(--bbk-copper-2); outline-offset: 3px; }
.bbk-btn[disabled] { opacity: .65; cursor: progress; transform: none; }

.bbk-btn--gold, .bbk-btn--copper {
	--_bg: linear-gradient(135deg, #b0712a 0%, #9a611a 55%, #87530f 100%);
	--_fg: #fff;
	background: var(--_bg);
	box-shadow: 0 12px 26px -14px rgba(135, 83, 15, .85), inset 0 1px 0 rgba(255, 255, 255, .18);
}
.bbk-btn--gold:hover, .bbk-btn--copper:hover { --_bg: linear-gradient(135deg, #bf7d32 0%, #a5681d 55%, #8f5815 100%); box-shadow: 0 18px 36px -14px rgba(135, 83, 15, .95); }
.bbk-btn--navy, .bbk-btn--noir { --_bg: var(--bbk-noir); --_fg: var(--bbk-copper-3); }
.bbk-btn--ghost { --_bg: transparent; --_fg: var(--bbk-noir); border-color: rgba(182, 118, 33, .55); }
.bbk-btn--ghost:hover { border-color: var(--bbk-copper); --_bg: var(--bbk-copper-soft); }
.bbk-btn--light { --_bg: rgba(255, 255, 255, .06); --_fg: #fff; border-color: rgba(236, 210, 168, .55); backdrop-filter: blur(6px); }
.bbk-btn--light:hover { --_bg: var(--bbk-copper-3); --_fg: var(--bbk-noir); }
.bbk-btn--wa { --_bg: #075e54; --_fg: #fff; }
.bbk-btn--wa:hover { --_bg: #0a6f63; }
.bbk-btn--sm { min-height: 42px; padding: 10px 18px; font-size: 12.5px; }
.bbk-btn--lg { min-height: 58px; padding: 17px 34px; font-size: 14px; }
@media (max-width: 640px) {
	/* Long labels (e.g. "See our reviews on Tripadvisor") wrap instead of widening the page. */
	.bbk-btn { max-width: 100%; white-space: normal; text-align: center; }
	.bbk-btn--lg { padding-inline: 22px; }
}
.bbk-btn--block { width: 100%; }

.bbk-link {
	display: inline-flex; align-items: center; gap: 8px;
	color: var(--bbk-noir) !important; font: 600 12.5px/1.2 var(--bbk-sans); letter-spacing: .16em; text-transform: uppercase; text-decoration: none !important;
	border-bottom: 1px solid var(--bbk-copper); padding-bottom: 5px;
}
.bbk-link:hover { color: var(--bbk-copper-ink) !important; }

/* ------------------------------------------------------------------ */
/* Modal                                                               */
/* ------------------------------------------------------------------ */

html.bbk-lock, html.bbk-lock body { overflow: hidden !important; }

.bbk-modal {
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: grid;
	place-items: center;
	padding: 24px;
	color: var(--bbk-ink);
	font-size: 16px;
	line-height: 1.5;
}
.bbk-modal[hidden] { display: none !important; }

.bbk-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(12, 10, 8, .62);
	backdrop-filter: blur(8px) saturate(120%);
	-webkit-backdrop-filter: blur(8px) saturate(120%);
	opacity: 0;
	transition: opacity .35s var(--bbk-ease);
}

.bbk-modal__dialog {
	position: relative;
	display: grid;
	grid-template-columns: minmax(330px, 410px) 1fr;
	grid-template-rows: minmax(0, 1fr);
	width: min(1200px, 100%);
	height: min(880px, calc(100vh - 48px));
	height: min(880px, calc(100dvh - 48px));
	border-radius: var(--bbk-radius);
	background: #fff;
	box-shadow: var(--bbk-shadow-lg);
	overflow: hidden;
	opacity: 0;
	transform: translateY(26px) scale(.985);
	transition: opacity .38s var(--bbk-ease), transform .45s var(--bbk-ease);
	outline: none;
}

.bbk-modal.is-open .bbk-modal__backdrop { opacity: 1; }
.bbk-modal.is-open .bbk-modal__dialog { opacity: 1; transform: none; }

/* Aside */
.bbk-aside {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 22px;
	padding: 46px 38px 30px;
	color: #fff;
	background:
		radial-gradient(120% 60% at 100% 0%, rgba(182, 118, 33, .16) 0%, rgba(182, 118, 33, 0) 55%),
		radial-gradient(90% 70% at 0% 100%, rgba(46, 38, 32, .9) 0%, rgba(46, 38, 32, 0) 60%),
		linear-gradient(170deg, #241d18 0%, #151210 45%, #0b0908 100%);
	overflow-y: auto;
	scrollbar-width: none;
}
.bbk-aside::-webkit-scrollbar { display: none; }
.bbk-aside::before {
	/* Copper arc echoing the swoosh of the BBK logo. */
	content: "";
	position: absolute;
	top: -170px; right: -190px;
	width: 420px; height: 420px;
	border: 1.5px solid rgba(216, 168, 101, .38);
	border-radius: 50%;
	pointer-events: none;
}
.bbk-aside::after {
	content: "";
	position: absolute;
	top: -120px; right: -150px;
	width: 330px; height: 330px;
	border: 1px solid rgba(216, 168, 101, .16);
	border-radius: 50%;
	pointer-events: none;
}
.bbk-aside__logo { display: block; height: 76px; width: auto; max-width: 180px; margin: -14px 0 18px -6px; object-fit: contain; }
.bbk-aside > * { position: relative; }

.bbk-eyebrow {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0 0 14px !important;
	color: var(--bbk-copper-2) !important;
	font: 600 13px/1.2 var(--bbk-sans) !important;
	letter-spacing: .24em;
	text-transform: uppercase;
}
.bbk-eyebrow__line { width: 30px; height: 2px; background: currentColor; border-radius: 2px; }

.bbk-aside__title {
	margin: 0 0 14px !important;
	color: #fff !important;
	font: 600 clamp(32px, 2.9vw, 42px)/1.06 var(--bbk-serif) !important;
	letter-spacing: 0;
}
.bbk-aside__text {
	margin: 0 0 22px !important;
	color: rgba(255, 255, 255, .78) !important;
	font: 500 16px/1.7 var(--bbk-sans) !important;
}

.bbk-summary {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 14px;
	margin-bottom: 22px;
	border: 1px solid rgba(216, 168, 101, .28);
	border-radius: var(--bbk-radius-sm);
	background: rgba(255, 255, 255, .04);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06);
}
.bbk-summary[hidden] { display: none; }
.bbk-summary__img {
	width: 86px; height: 86px;
	flex: none;
	object-fit: cover;
	border-radius: var(--bbk-radius-xs);
	background: rgba(255, 255, 255, .08);
}
.bbk-summary__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.bbk-summary__label { color: var(--bbk-copper-2); font: 600 11.5px/1.2 var(--bbk-sans); letter-spacing: .2em; text-transform: uppercase; }
.bbk-summary__title { color: #fff; font: 600 21px/1.2 var(--bbk-serif); }
.bbk-summary__meta { color: rgba(255, 255, 255, .72); font: 500 14.5px/1.5 var(--bbk-sans); }

.bbk-checks { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; gap: 12px; }
.bbk-checks li { display: flex; gap: 14px; align-items: flex-start; margin: 0 !important; padding: 0 !important; color: #fff; font: 600 15.5px/1.5 var(--bbk-sans); }
.bbk-checks li::before, .bbk-checks li::marker { content: none; }
.bbk-checks svg { width: 20px; height: 20px; flex: none; margin-top: 2px; color: var(--bbk-copper-2); }

.bbk-aside__bottom { display: grid; gap: 16px; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, .12); }
.bbk-tc-row { display: flex; align-items: center; gap: 18px; }
.bbk-tc-row .bbk-tc, .bbk-tc-row .bbk-tc-img { flex: none; height: auto; }
.bbk-tc-row__text { display: flex; flex-direction: column; gap: 4px; }
.bbk-tc-row__text strong { color: #fff; font: 700 16px/1.45 var(--bbk-sans); }
.bbk-tc-row__text > span { color: rgba(255, 255, 255, .66); font: 500 13.5px/1.45 var(--bbk-sans); }

.bbk-trusted__label { display: block; margin-bottom: 12px; color: rgba(255, 255, 255, .6); font: 700 11.5px/1.2 var(--bbk-sans); letter-spacing: .18em; text-transform: uppercase; }
.bbk-trusted__logos { display: flex; align-items: center; gap: 22px; }
.bbk-trusted__sep { width: 1px; height: 30px; background: rgba(255, 255, 255, .2); }
.bbk-logo-wrap { display: inline-flex; align-items: center; opacity: .95; transition: opacity .2s; }
.bbk-logo-wrap:hover { opacity: 1; }
.bbk-logo { display: block; width: auto; }
img.bbk-logo { max-height: 36px; }

.bbk-rating { display: inline-flex; align-items: center; gap: 6px; color: rgba(255, 255, 255, .8); font: 600 13.5px/1.3 var(--bbk-sans); }
.bbk-stars {
	--r: 5;
	display: inline-block;
	width: 86px; height: 16px;
	background: linear-gradient(90deg, #34e0a1 calc(var(--r) / 5 * 100%), rgba(255, 255, 255, .25) 0);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 86 16'%3E%3Cg%3E%3Ccircle cx='8' cy='8' r='7'/%3E%3Ccircle cx='25.5' cy='8' r='7'/%3E%3Ccircle cx='43' cy='8' r='7'/%3E%3Ccircle cx='60.5' cy='8' r='7'/%3E%3Ccircle cx='78' cy='8' r='7'/%3E%3C/g%3E%3C/svg%3E") no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 86 16'%3E%3Cg%3E%3Ccircle cx='8' cy='8' r='7'/%3E%3Ccircle cx='25.5' cy='8' r='7'/%3E%3Ccircle cx='43' cy='8' r='7'/%3E%3Ccircle cx='60.5' cy='8' r='7'/%3E%3Ccircle cx='78' cy='8' r='7'/%3E%3C/g%3E%3C/svg%3E") no-repeat;
}

/* Main */
.bbk-main {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 0;
	background: #fff;
}

.bbk-close {
	position: absolute;
	top: 22px;
	right: 22px;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	padding: 0;
	border: 1px solid #efe7db;
	border-radius: 50%;
	background: #fff;
	color: var(--bbk-noir);
	box-shadow: 0 6px 18px rgba(27, 23, 20, .1);
	cursor: pointer;
	transition: transform .25s var(--bbk-ease), box-shadow .25s;
}
.bbk-close svg { width: 22px; height: 22px; }
.bbk-close:hover { transform: rotate(90deg); box-shadow: 0 10px 24px rgba(27, 23, 20, .16); }

.bbk-form { display: flex; flex-direction: column; min-height: 0; flex: 1; margin: 0; }
/* After sending, the confirmation replaces the whole form (fields and sticky footer). */
.bbk-form[hidden] { display: none !important; }
.bbk-form__head { padding: 50px 96px 6px 52px; }
.bbk-form__head h2 {
	margin: 0 0 8px !important;
	color: var(--bbk-noir) !important;
	font: 600 34px/1.1 var(--bbk-serif) !important;
	letter-spacing: 0;
}
.bbk-form__head p { margin: 0 !important; color: var(--bbk-muted) !important; font: 500 15px/1.5 var(--bbk-sans) !important; }

.bbk-form__body {
	flex: 1;
	min-height: 0;
	overflow-y: auto;
	padding: 26px 52px 26px;
	scrollbar-width: thin;
	scrollbar-color: #dccfbd transparent;
}

.bbk-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 22px 24px;
}
.bbk-field { display: flex; flex-direction: column; gap: 10px; min-width: 0; margin: 0; padding: 0; border: 0; }
.bbk-field--full { grid-column: 1 / -1; }
.bbk-field[hidden] { display: none !important; }

.bbk-field > label, .bbk-label, .bbk-pills legend {
	margin: 0 !important;
	padding: 0;
	color: var(--bbk-noir) !important;
	font: 500 15px/1.3 var(--bbk-sans) !important;
	letter-spacing: .01em;
}
.bbk-req { color: var(--bbk-copper); font-weight: 600; }
.bbk-opt { color: var(--bbk-muted); font-weight: 500; font-size: 13.5px; margin-inline-start: 2px; }

.bbk-modal input[type="text"], .bbk-modal input[type="email"], .bbk-modal input[type="tel"], .bbk-modal input[type="date"], .bbk-modal input[type="time"], .bbk-modal select, .bbk-modal textarea,
.bbk-inline-form input[type="text"], .bbk-inline-form input[type="email"], .bbk-inline-form input[type="tel"], .bbk-inline-form input[type="date"], .bbk-inline-form input[type="time"], .bbk-inline-form select, .bbk-inline-form textarea {
	width: 100% !important;
	height: 56px;
	margin: 0 !important;
	padding: 0 18px !important;
	border: 1px solid #e6ddcf !important;
	border-radius: var(--bbk-radius-sm) !important;
	background: var(--bbk-field) !important;
	color: var(--bbk-ink) !important;
	font: 400 16.5px/1.3 var(--bbk-sans) !important;
	box-shadow: none !important;
	outline: none !important;
	appearance: none;
	-webkit-appearance: none;
	transition: border-color .2s, background .2s, box-shadow .2s;
}
.bbk-modal textarea, .bbk-inline-form textarea { height: auto; min-height: 150px; padding: 18px 20px !important; line-height: 1.6 !important; resize: vertical; }
.bbk-modal select, .bbk-inline-form select {
	padding-inline-end: 46px !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%231b1714' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 16px center !important;
	background-size: 18px !important;
}
.bbk-modal ::placeholder, .bbk-inline-form ::placeholder { color: #a2968a; opacity: 1; }
.bbk-modal input:focus, .bbk-modal select:focus, .bbk-modal textarea:focus,
.bbk-inline-form input:focus, .bbk-inline-form select:focus, .bbk-inline-form textarea:focus {
	border-color: var(--bbk-copper) !important;
	background: #fff !important;
	box-shadow: 0 0 0 4px rgba(182, 118, 33, .14) !important;
}
.bbk-modal input:disabled, .bbk-inline-form input:disabled { color: #a99d90 !important; cursor: not-allowed; }
.bbk-modal input[type="date"]:invalid, .bbk-inline-form input[type="date"]:invalid { color: #a2968a !important; }
.bbk-field.is-invalid input, .bbk-field.is-invalid textarea, .bbk-field.is-invalid select, .bbk-field.is-invalid .bbk-stepper--main {
	border-color: #d9534f !important;
	box-shadow: 0 0 0 4px rgba(217, 83, 79, .12) !important;
}
.bbk-error { color: #c0392b; font: 600 13px/1.4 var(--bbk-sans); }

.bbk-check { display: inline-flex !important; align-items: center; gap: 12px; margin: 2px 0 0 !important; cursor: pointer; color: var(--bbk-ink) !important; font: 600 15.5px/1.35 var(--bbk-sans) !important; }
.bbk-check input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.bbk-check__box {
	display: grid; place-items: center;
	width: 22px; height: 22px; flex: none;
	border: 1.5px solid #d3c6b3; border-radius: 3px;
	background: #fff; color: #fff;
	transition: background .2s, border-color .2s;
}
.bbk-check__box svg { width: 15px; height: 15px; opacity: 0; transform: scale(.6); transition: .2s; }
.bbk-check input:checked + .bbk-check__box { background: var(--bbk-copper); border-color: var(--bbk-copper); }
.bbk-check input:checked + .bbk-check__box svg { opacity: 1; transform: none; }
.bbk-check input:focus-visible + .bbk-check__box { outline: 3px solid var(--bbk-copper-2); outline-offset: 2px; }

/* Travellers stepper */
.bbk-travellers { position: relative; }
.bbk-stepper { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.bbk-stepper--main {
	height: 56px;
	padding: 0 8px;
	border: 1px solid #e6ddcf;
	border-radius: var(--bbk-radius-sm);
	background: var(--bbk-field);
}
.bbk-stepper__btn {
	display: grid; place-items: center;
	width: 44px; height: 44px; padding: 0;
	border: 0; border-radius: 12px;
	background: transparent;
	color: var(--bbk-noir);
	font: 700 26px/1 var(--bbk-sans);
	cursor: pointer;
	transition: background .2s;
}
.bbk-stepper__btn:hover { background: rgba(27, 23, 20, .07); }
.bbk-stepper__btn:disabled { opacity: .3; cursor: not-allowed; }
.bbk-stepper__value {
	flex: 1;
	height: 44px;
	padding: 0 8px;
	border: 0;
	background: transparent;
	color: var(--bbk-noir);
	font: 600 19px/1 var(--bbk-sans);
	cursor: pointer;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.bbk-stepper output { min-width: 28px; text-align: center; color: var(--bbk-noir); font: 600 17px/1 var(--bbk-sans); }
.bbk-trav-pop {
	position: absolute;
	inset-inline: 0;
	top: calc(100% + 10px);
	z-index: 5;
	display: grid;
	gap: 14px;
	padding: 18px;
	border: 1px solid var(--bbk-line-2);
	border-radius: var(--bbk-radius-sm);
	background: #fff;
	box-shadow: var(--bbk-shadow);
	min-width: 280px;
}
.bbk-trav-pop[hidden] { display: none; }
.bbk-trav-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.bbk-trav-row strong { display: block; color: var(--bbk-noir); font: 600 15px/1.2 var(--bbk-sans); }
.bbk-trav-row small { color: var(--bbk-muted); font: 500 12.5px/1.3 var(--bbk-sans); }
.bbk-trav-row .bbk-stepper__btn { width: 38px; height: 38px; border: 1px solid var(--bbk-line-2); border-radius: 50%; font-size: 20px; }

/* Pills */
.bbk-pills { gap: 14px; }
.bbk-pills legend { margin-bottom: 14px !important; float: left; width: 100%; }
.bbk-pills__row { display: flex; flex-wrap: wrap; gap: 12px; clear: both; }
.bbk-pill { position: relative; margin: 0 !important; cursor: pointer; }
.bbk-pill input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.bbk-pill span {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 13px 20px;
	border: 1px solid #e2d7c7;
	border-radius: var(--bbk-radius-xs);
	background: #fff;
	color: var(--bbk-noir);
	font: 500 15.5px/1.2 var(--bbk-sans);
	transition: background .2s, color .2s, border-color .2s, box-shadow .2s;
}
.bbk-pill:hover span { border-color: var(--bbk-copper); }
.bbk-pill input:checked + span { background: var(--bbk-noir); border-color: var(--bbk-noir); color: #fff; box-shadow: 0 10px 22px -12px rgba(27, 23, 20, .7); }
.bbk-pill input:checked + span .bbk-ico path, .bbk-pill input:checked + span .bbk-ico rect { stroke: var(--bbk-copper-2); }
.bbk-pill input:focus-visible + span { outline: 3px solid var(--bbk-copper-2); outline-offset: 2px; }

.bbk-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Footer */
.bbk-form__foot {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: 6px 22px;
	padding: 18px 52px 22px;
	border-top: 1px solid #f1eadf;
	background: linear-gradient(180deg, rgba(255, 255, 255, .92), #fff);
}
.bbk-estimate { display: flex; flex-direction: column; gap: 2px; }
.bbk-estimate[hidden] { display: none; }
.bbk-estimate span { color: var(--bbk-muted); font: 700 12px/1.2 var(--bbk-sans); letter-spacing: .14em; text-transform: uppercase; }
.bbk-estimate strong { color: var(--bbk-noir); font: 600 32px/1.05 var(--bbk-serif); }
.bbk-estimate small { color: var(--bbk-muted); font: 500 12.5px/1.3 var(--bbk-sans); }
.bbk-submit { grid-column: 2; grid-row: 1; justify-self: end; }
.bbk-estimate[hidden] + .bbk-submit { grid-column: 1 / -1; justify-self: stretch; }
.bbk-micro, .bbk-privacy, .bbk-form__error { grid-column: 1 / -1; margin: 0 !important; font: 500 13px/1.5 var(--bbk-sans) !important; color: var(--bbk-muted) !important; }
.bbk-micro { color: var(--bbk-noir) !important; font-weight: 700 !important; }
.bbk-privacy a { color: var(--bbk-noir) !important; text-decoration: underline; }
.bbk-form__error { color: #c0392b !important; font-weight: 700 !important; }
.bbk-form__error[hidden] { display: none; }
.bbk-submit.is-loading { pointer-events: none; }
.bbk-submit.is-loading svg { animation: bbk-spin .9s linear infinite; }
@keyframes bbk-spin { to { transform: rotate(360deg); } }

/* Success */
.bbk-success {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 520px;
	padding: 70px 48px;
	text-align: center;
	outline: none;
}
.bbk-success[hidden] { display: none !important; }
.bbk-modal .bbk-success { flex: 1; overflow-y: auto; }
.bbk-success__icon { width: 92px; height: 92px; margin-bottom: 16px; color: var(--bbk-copper); }
.bbk-success__icon svg { width: 100%; height: 100%; }
.bbk-success__icon circle { stroke-dasharray: 160; stroke-dashoffset: 160; animation: bbk-draw .7s .1s var(--bbk-ease) forwards; }
.bbk-success__icon path { stroke-dasharray: 50; stroke-dashoffset: 50; animation: bbk-draw .45s .6s var(--bbk-ease) forwards; }
@keyframes bbk-draw { to { stroke-dashoffset: 0; } }
.bbk-success h2 { margin: 0 0 8px !important; color: var(--bbk-noir) !important; font: 600 40px/1.1 var(--bbk-serif) !important; }
.bbk-success p { max-width: 520px; margin: 0 0 8px !important; color: var(--bbk-text) !important; font: 500 16.5px/1.65 var(--bbk-sans) !important; }
.bbk-success__ref span { color: var(--bbk-muted); font-weight: 600; }
.bbk-success__ref strong { display: inline-block; margin-inline-start: 6px; padding: 6px 14px; border-radius: var(--bbk-radius-xs); background: var(--bbk-copper-soft); color: var(--bbk-copper-ink); font: 600 15px/1.2 var(--bbk-sans); letter-spacing: .06em; }
.bbk-success__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 18px; }

/* Modal responsive */
@media (min-width: 821px) and (max-height: 780px) {
	.bbk-aside__text { display: none; }
	.bbk-checks li:nth-child(3) { display: none; }
}
@media (max-width: 1020px) {
	.bbk-modal__dialog { grid-template-columns: 330px 1fr; }
	.bbk-aside { padding: 44px 30px 30px; }
	.bbk-form__head { padding: 40px 88px 4px 34px; }
	.bbk-form__body { padding: 22px 34px; }
	.bbk-form__foot { padding: 16px 34px 18px; }
}
@media (max-width: 820px) {
	.bbk-modal { padding: 0; align-items: end; }
	.bbk-modal__dialog {
		grid-template-columns: 1fr;
		grid-template-rows: auto minmax(0, 1fr);
		width: 100%;
		height: 100vh;
		height: 100dvh;
		border-radius: 0;
		transform: translateY(40px);
	}
	.bbk-aside { padding: 22px 20px 18px; gap: 0; overflow: visible; }
	.bbk-aside__title, .bbk-aside__text, .bbk-checks, .bbk-aside__bottom { display: none !important; }
	.bbk-eyebrow { margin: 0 0 12px !important; font-size: 12px !important; }
	.bbk-summary { margin: 0; padding: 10px; gap: 12px; border-radius: 16px; }
	.bbk-summary__img { width: 58px; height: 58px; border-radius: 10px; }
	.bbk-summary__title { font-size: 15.5px; }
	.bbk-summary__meta { font-size: 13px; }
	.bbk-close { top: 14px; right: 14px; width: 42px; height: 42px; background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .2); color: #fff; box-shadow: none; }
	.bbk-main { overflow: hidden; }
	.bbk-main .bbk-close { position: fixed; }
	.bbk-form__head { padding: 22px 20px 0; }
	.bbk-form__head h2 { font-size: 28px !important; }
	.bbk-form__body { padding: 18px 20px 24px; }
	.bbk-grid { grid-template-columns: 1fr; gap: 18px; }
	.bbk-form__foot { padding: 12px 20px calc(14px + env(safe-area-inset-bottom)); gap: 4px 14px; }
	.bbk-estimate strong { font-size: 21px; }
	.bbk-estimate span { font-size: 10.5px; }
	.bbk-estimate small { display: none; }
	.bbk-btn--lg { min-height: 54px; padding: 14px 20px; font-size: 15px; }
	.bbk-privacy { display: none; }
	.bbk-modal input[type="text"], .bbk-modal input[type="email"], .bbk-modal input[type="tel"], .bbk-modal input[type="date"], .bbk-modal input[type="time"], .bbk-modal select { height: 54px; font-size: 16px !important; }
	.bbk-stepper--main { height: 54px; }
	.bbk-pill span { padding: 11px 16px; font-size: 15px; }
	.bbk-success { min-height: 0; padding: 48px 24px; }
}
@media (prefers-reduced-motion: reduce) {
	.bbk-modal__dialog, .bbk-modal__backdrop, .bbk-btn, .bbk-close { transition: none !important; }
	.bbk-success__icon circle, .bbk-success__icon path { animation: none; stroke-dashoffset: 0; }
}

/* Inline form (contact page) */
.bbk-inline-form {
	border: 1px solid var(--bbk-line);
	border-radius: var(--bbk-radius-lg);
	background: #fff;
	box-shadow: var(--bbk-shadow);
	overflow: visible;
}
.bbk-inline-form .bbk-form__head { padding: 40px 40px 0; }
.bbk-inline-form .bbk-form__body { padding: 24px 40px; overflow: visible; }
.bbk-inline-form .bbk-form__foot { padding: 18px 40px 30px; border-radius: 0 0 var(--bbk-radius-lg) var(--bbk-radius-lg); }
@media (max-width: 680px) {
	.bbk-inline-form .bbk-grid { grid-template-columns: 1fr; }
	.bbk-inline-form .bbk-form__head, .bbk-inline-form .bbk-form__body, .bbk-inline-form .bbk-form__foot { padding-inline: 20px; }
}

/* ------------------------------------------------------------------ */
/* Sections & typography for Elementor HTML blocks                     */
/* ------------------------------------------------------------------ */

.bbk-section { position: relative; padding: clamp(64px, 8vw, 110px) 0; background: #fff; color: var(--bbk-text); font-size: 17px; line-height: 1.75; }
.bbk-section--ivory { background: var(--bbk-ivory); }
.bbk-section--sand { background: var(--bbk-sand); }
.bbk-section--navy, .bbk-section--noir { background: radial-gradient(70% 60% at 100% 0%, rgba(182, 118, 33, .14), rgba(182, 118, 33, 0) 60%), linear-gradient(170deg, #241d18 0%, #151210 50%, #0b0908 100%); color: rgba(255, 255, 255, .78); }
.bbk-section--tight { padding: clamp(40px, 5vw, 64px) 0; }
.bbk-section--flush-top { padding-top: 0; }

.bbk-kicker {
	display: inline-flex; align-items: center; gap: 14px;
	margin: 0 0 16px !important;
	color: var(--bbk-copper-ink) !important;
	font: 500 12.5px/1.2 var(--bbk-sans) !important;
	letter-spacing: .3em;
	text-transform: uppercase;
}
.bbk-kicker::before, .bbk-head--center .bbk-kicker::after { content: ""; flex: none; width: 7px; height: 7px; transform: rotate(45deg); background: var(--bbk-copper); }
.bbk-section--navy .bbk-kicker, .bbk-hero .bbk-kicker, .bbk-phero .bbk-kicker { color: var(--bbk-copper-2) !important; }

.bbk-h1, .bbk-h2, .bbk-h3 { font-family: var(--bbk-serif) !important; color: var(--bbk-noir) !important; letter-spacing: 0; }
.bbk-h2 { margin: 0 0 18px !important; font-size: clamp(36px, 4.2vw, 58px) !important; font-weight: 600 !important; line-height: 1.06 !important; }
.bbk-h2 em, .bbk-h1 em, .bbk-hero__title em { font-style: italic; color: var(--bbk-copper); font-weight: 500; }
.bbk-section--navy .bbk-h2 em, .bbk-section--noir .bbk-h2 em, .bbk-hero__title em, .bbk-phero .bbk-h1 em { color: var(--bbk-copper-2); }
.bbk-h3 { margin: 0 0 10px !important; font-size: clamp(26px, 2.3vw, 32px) !important; font-weight: 600 !important; line-height: 1.15 !important; }
.bbk-section--navy .bbk-h2, .bbk-section--navy .bbk-h3 { color: #fff !important; }
.bbk-lead { margin: 0 !important; max-width: 720px; font-size: 18px !important; line-height: 1.75 !important; color: var(--bbk-text); }
.bbk-section--navy .bbk-lead { color: rgba(255, 255, 255, .78); }
.bbk-section p { margin: 0 0 1em; }

.bbk-head { display: flex; flex-direction: column; margin-bottom: clamp(32px, 4vw, 54px); }
.bbk-head--center { align-items: center; text-align: center; }
.bbk-head--center .bbk-lead { margin-inline: auto !important; }
.bbk-head--split { flex-direction: row; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.bbk-head--split > div { max-width: 760px; }

.bbk-prose { max-width: 820px; margin-inline: auto; font-size: 17.5px; line-height: 1.85; color: var(--bbk-text); }
.bbk-prose h2 { margin: 1.8em 0 .6em !important; font: 600 clamp(30px, 3vw, 40px)/1.15 var(--bbk-serif) !important; color: var(--bbk-noir) !important; }
.bbk-prose h3 { margin: 1.5em 0 .5em !important; font: 600 21px/1.35 var(--bbk-sans) !important; color: var(--bbk-noir) !important; }
.bbk-prose p { margin: 0 0 1.15em !important; }
.bbk-prose ul, .bbk-prose ol { margin: 0 0 1.3em 1.2em !important; padding: 0 !important; }
.bbk-prose li { margin: .35em 0 !important; }
.bbk-prose a { color: var(--bbk-noir); font-weight: 700; text-decoration: underline; text-decoration-color: var(--bbk-copper); text-underline-offset: 3px; }
.bbk-prose strong { color: var(--bbk-ink); }
.bbk-prose table { width: 100%; border-collapse: collapse; margin: 0 0 1.5em; font-size: 15.5px; }
.bbk-prose th, .bbk-prose td { padding: 12px 14px; border-bottom: 1px solid var(--bbk-line); text-align: left; }
.bbk-prose th { color: var(--bbk-noir); background: var(--bbk-ivory); font-weight: 600; }
.bbk-prose blockquote { margin: 1.6em 0; padding: 18px 24px; border-left: 2px solid var(--bbk-copper); background: var(--bbk-ivory); font: italic 500 22px/1.5 var(--bbk-serif); color: var(--bbk-ink); }

/* ------------------------------------------------------------------ */
/* Hero slider                                                          */
/* ------------------------------------------------------------------ */

.bbk-hero { position: relative; color: #fff; background: var(--bbk-noir); isolation: isolate; }
.bbk-slider { position: relative; height: clamp(620px, 92vh, 900px); overflow: hidden; }
.bbk-slide {
	position: absolute; inset: 0;
	display: flex; align-items: center;
	opacity: 0; visibility: hidden;
	transition: opacity 1.1s var(--bbk-ease), visibility 1.1s;
}
.bbk-slide.is-active { opacity: 1; visibility: visible; z-index: 1; }
.bbk-slide__bg {
	position: absolute; inset: 0;
	background-size: cover; background-position: center;
	transform: scale(1.08);
	transition: transform 7s linear;
}
.bbk-slide.is-active .bbk-slide__bg { transform: scale(1); }
.bbk-slide__bg img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bbk-slide::after {
	content: ""; position: absolute; inset: 0;
	background:
		linear-gradient(90deg, rgba(12, 10, 8, .86) 0%, rgba(12, 10, 8, .58) 42%, rgba(12, 10, 8, .12) 75%),
		linear-gradient(0deg, rgba(12, 10, 8, .75) 0%, rgba(12, 10, 8, 0) 38%);
}
.bbk-slide__content { position: relative; z-index: 2; width: 100%; padding-bottom: 120px; }
.bbk-slide__inner { max-width: 760px; }
.bbk-slide .bbk-kicker { opacity: 0; transform: translateY(18px); transition: .8s .25s var(--bbk-ease); }
.bbk-hero__title, .bbk-slide__title {
	margin: 0 0 20px !important;
	color: #fff !important;
	font: 600 clamp(42px, 5.2vw, 80px)/1.02 var(--bbk-serif) !important;
	letter-spacing: -.005em;
	opacity: 0; transform: translateY(24px); transition: .9s .35s var(--bbk-ease);
}
.bbk-hero__text {
	max-width: 640px;
	margin: 0 0 32px !important;
	color: rgba(255, 255, 255, .86) !important;
	font: 400 clamp(16px, 1.35vw, 19px)/1.75 var(--bbk-sans) !important;
	opacity: 0; transform: translateY(24px); transition: .9s .45s var(--bbk-ease);
}
.bbk-hero__ctas { display: flex; flex-wrap: wrap; gap: 14px; opacity: 0; transform: translateY(24px); transition: .9s .55s var(--bbk-ease); }
.bbk-slide.is-active .bbk-kicker, .bbk-slide.is-active .bbk-hero__title, .bbk-slide.is-active .bbk-slide__title, .bbk-slide.is-active .bbk-hero__text, .bbk-slide.is-active .bbk-hero__ctas { opacity: 1; transform: none; }

.bbk-slider__nav { position: absolute; z-index: 4; right: max(24px, calc((100vw - 1260px) / 2 + 24px)); bottom: 150px; display: flex; gap: 10px; }
.bbk-slider__arrow {
	display: grid; place-items: center;
	width: 54px; height: 54px; padding: 0;
	border: 1px solid rgba(236, 210, 168, .45); border-radius: 2px;
	background: rgba(21, 18, 16, .25); color: #fff;
	backdrop-filter: blur(6px);
	cursor: pointer; transition: background .25s, color .25s;
}
.bbk-slider__arrow:hover { background: var(--bbk-copper-3); border-color: var(--bbk-copper-3); color: var(--bbk-noir); }
.bbk-slider__arrow svg { width: 22px; height: 22px; }
.bbk-slider__dots { position: absolute; z-index: 4; left: max(24px, calc((100vw - 1260px) / 2 + 24px)); bottom: 160px; display: flex; gap: 10px; }
.bbk-slider__dot { width: 52px; height: 2px; padding: 0; border: 0; border-radius: 0; background: rgba(255, 255, 255, .3); cursor: pointer; overflow: hidden; position: relative; }
.bbk-slider__dot::after { content: ""; position: absolute; inset: 0; width: 0; background: var(--bbk-copper-2); }
.bbk-slider__dot.is-active::after { animation: bbk-progress var(--bbk-slide-ms, 6500ms) linear forwards; }
.bbk-slider.is-paused .bbk-slider__dot.is-active::after { animation-play-state: paused; }
@keyframes bbk-progress { to { width: 100%; } }

/* Quick booking bar */
.bbk-quick {
	position: relative; z-index: 5;
	margin-top: -96px;
}
.bbk-quick__card {
	display: grid;
	grid-template-columns: 1.1fr 1.4fr 1fr 1fr auto;
	gap: 0;
	align-items: stretch;
	padding: 10px;
	border-radius: var(--bbk-radius-sm);
	background: #fff;
	border-top: 2px solid var(--bbk-copper);
	box-shadow: 0 30px 80px -30px rgba(12, 10, 8, .5);
}
.bbk-quick__field { display: flex; flex-direction: column; justify-content: center; gap: 4px; padding: 12px 20px; border-inline-end: 1px solid #ede5d9; min-width: 0; }
.bbk-quick__field:nth-last-child(2) { border-inline-end: 0; }
.bbk-quick__field label { margin: 0 !important; color: var(--bbk-muted) !important; font: 600 11.5px/1.2 var(--bbk-sans) !important; letter-spacing: .16em; text-transform: uppercase; }
.bbk-quick__field input, .bbk-quick__field select {
	width: 100%; height: 34px !important; margin: 0 !important; padding: 0 !important;
	border: 0 !important; background: transparent !important; box-shadow: none !important; outline: none;
	color: var(--bbk-noir) !important; font: 700 16.5px/1.2 var(--bbk-sans) !important;
	-webkit-appearance: none; appearance: none;
}
.bbk-quick__submit { min-height: 64px; border-radius: var(--bbk-radius-xs); padding-inline: 30px; }

/* Trust strip */
.bbk-trust { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.bbk-trust__item {
	display: flex; align-items: center; gap: 16px;
	padding: 20px 22px;
	border: 1px solid var(--bbk-line);
	border-radius: var(--bbk-radius);
	background: #fff;
	text-decoration: none !important;
	transition: transform .3s var(--bbk-ease), box-shadow .3s;
}
a.bbk-trust__item:hover { transform: translateY(-3px); box-shadow: var(--bbk-shadow); }
.bbk-trust__item .bbk-tc, .bbk-trust__item .bbk-tc-img { width: 64px; height: auto; flex: none; }
.bbk-trust__item .bbk-logo--gyg { height: 40px; }
.bbk-trust__item .bbk-logo--viator { height: 28px; }
.bbk-trust__text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.bbk-trust__text strong { color: var(--bbk-noir); font: 600 15.5px/1.3 var(--bbk-sans); }
.bbk-trust__text span { color: var(--bbk-muted); font: 500 13.5px/1.4 var(--bbk-sans); }
.bbk-trust__item .bbk-rating { color: var(--bbk-text); }
.bbk-trust__icon { display: grid; place-items: center; width: 56px; height: 56px; flex: none; border-radius: 50%; border: 1px solid rgba(182, 118, 33, .45); background: var(--bbk-ivory); color: var(--bbk-copper-ink); }
.bbk-trust__icon svg { width: 28px; height: 28px; }

/* Features */
.bbk-features { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.bbk-feature { padding: 30px 28px; border: 1px solid var(--bbk-line); border-radius: var(--bbk-radius); background: #fff; transition: transform .35s var(--bbk-ease), box-shadow .35s, border-color .35s; }
.bbk-feature:hover { transform: translateY(-4px); box-shadow: var(--bbk-shadow); border-color: transparent; }
.bbk-feature__icon { display: grid; place-items: center; width: 62px; height: 62px; margin-bottom: 22px; border-radius: 50%; border: 1px solid rgba(182, 118, 33, .5); background: transparent; color: var(--bbk-copper-ink); }
.bbk-feature:hover .bbk-feature__icon { background: var(--bbk-noir); border-color: var(--bbk-noir); color: var(--bbk-copper-2); }
.bbk-feature__icon svg { width: 28px; height: 28px; }
.bbk-feature h3, .bbk-feature__title { margin: 0 0 10px !important; color: var(--bbk-noir) !important; font: 600 25px/1.2 var(--bbk-serif) !important; }
.bbk-feature p { margin: 0 !important; color: var(--bbk-text); font-size: 15.5px; line-height: 1.7; }
.bbk-section--navy .bbk-feature { background: rgba(255, 255, 255, .04); border-color: rgba(255, 255, 255, .1); }
.bbk-section--navy .bbk-feature h3, .bbk-section--navy .bbk-feature__title { color: #fff !important; }
.bbk-section--navy .bbk-feature p { color: rgba(255, 255, 255, .72); }
.bbk-section--navy .bbk-feature__icon { color: var(--bbk-copper-2); border-color: rgba(216, 168, 101, .45); }

/* Split media/text */
.bbk-split { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.bbk-split--reverse > :first-child { order: 2; }
.bbk-split__media { position: relative; }
.bbk-split__media img { width: 100%; aspect-ratio: 4 / 4.4; object-fit: cover; border-radius: var(--bbk-radius-xs); box-shadow: var(--bbk-shadow); display: block; }
.bbk-split__media--wide img { aspect-ratio: 3 / 2; }
.bbk-split__media::before { content: ""; position: absolute; inset: 22px -22px -22px 22px; border: 1px solid rgba(182, 118, 33, .5); z-index: -1; }
.bbk-split__media .bbk-split__badge {
	position: absolute; left: -22px; bottom: 34px;
	display: flex; align-items: center; gap: 14px;
	padding: 16px 20px 16px 16px;
	border-radius: var(--bbk-radius-sm); background: #fff; box-shadow: var(--bbk-shadow);
}
.bbk-split__badge .bbk-tc { width: 58px; height: auto; }
.bbk-split__badge strong { display: block; color: var(--bbk-noir); font: 600 15px/1.3 var(--bbk-sans); }
.bbk-split__badge span { color: var(--bbk-muted); font: 500 13px/1.3 var(--bbk-sans); }

.bbk-list-check { list-style: none !important; margin: 22px 0 30px !important; padding: 0 !important; display: grid; gap: 14px; }
.bbk-list-check li { position: relative; margin: 0 !important; padding-inline-start: 36px !important; color: var(--bbk-ink); font-weight: 600; line-height: 1.55; }
.bbk-list-check li::before {
	content: ""; position: absolute; inset-inline-start: 0; top: 1px;
	width: 24px; height: 24px; border-radius: 50%;
	background: var(--bbk-copper-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%238a5513' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/15px no-repeat;
}
.bbk-section--navy .bbk-list-check li { color: #fff; }

/* Steps */
.bbk-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; counter-reset: bbk-step; }
.bbk-step { position: relative; padding: 34px 30px; border-radius: var(--bbk-radius); background: #fff; border: 1px solid var(--bbk-line); }
.bbk-step::before {
	counter-increment: bbk-step; content: "0" counter(bbk-step);
	display: block; margin-bottom: 18px;
	color: var(--bbk-copper); font: italic 500 58px/1 var(--bbk-serif);
}
.bbk-step h3, .bbk-step__title { margin: 0 0 8px !important; color: var(--bbk-noir) !important; font: 600 25px/1.2 var(--bbk-serif) !important; }
.bbk-step p { margin: 0 !important; font-size: 15.5px; }

/* Destinations mosaic */
.bbk-dests { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 260px; gap: 18px; }
.bbk-dest { position: relative; display: block; overflow: hidden; border-radius: var(--bbk-radius); color: #fff !important; text-decoration: none !important; isolation: isolate; }
.bbk-dest:nth-child(1) { grid-column: span 2; grid-row: span 2; }
.bbk-dest:nth-child(4) { grid-column: span 2; }
.bbk-dest img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--bbk-ease); z-index: -2; }
.bbk-dest::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(12, 10, 8, .82) 0%, rgba(12, 10, 8, .1) 55%); }
.bbk-dest:hover img { transform: scale(1.07); }
.bbk-dest__body { position: absolute; left: 24px; right: 24px; bottom: 22px; }
.bbk-dest__body span { display: block; color: var(--bbk-copper-2); font: 600 12px/1.2 var(--bbk-sans); letter-spacing: .18em; text-transform: uppercase; margin-bottom: 6px; }
.bbk-dest__body strong { display: block; font: 600 clamp(26px, 2.5vw, 36px)/1.08 var(--bbk-serif); }

/* ------------------------------------------------------------------ */
/* Cards: tours, transfers, vehicles, posts                            */
/* ------------------------------------------------------------------ */

.bbk-cardgrid { display: grid; grid-template-columns: repeat(var(--bbk-cols, 3), minmax(0, 1fr)); gap: 26px; }
.bbk-cardgrid--1 { --bbk-cols: 1; }
.bbk-cardgrid--2 { --bbk-cols: 2; }
.bbk-cardgrid--3 { --bbk-cols: 3; }
.bbk-cardgrid--4 { --bbk-cols: 4; }

.bbk-card {
	display: flex; flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--bbk-line);
	border-radius: var(--bbk-radius-sm);
	background: #fff;
	transition: transform .4s var(--bbk-ease), box-shadow .4s var(--bbk-ease), border-color .4s;
}
.bbk-card:hover { transform: translateY(-6px); box-shadow: var(--bbk-shadow); border-color: transparent; }
.bbk-card__media { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: linear-gradient(135deg, var(--bbk-noir-2), var(--bbk-noir)); }
.bbk-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.1s var(--bbk-ease); }
.bbk-card:hover .bbk-card__media img { transform: scale(1.06); }
.bbk-card__badges { position: absolute; top: 16px; left: 16px; right: 16px; display: flex; flex-wrap: wrap; gap: 8px; }
.bbk-chip {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 6px 11px;
	border-radius: 2px;
	background: rgba(255, 255, 255, .94);
	color: var(--bbk-noir);
	font: 600 11px/1.2 var(--bbk-sans);
	letter-spacing: .14em;
	text-transform: uppercase;
	box-shadow: 0 4px 14px rgba(12, 10, 8, .12);
}
.bbk-chip--gold, .bbk-chip--copper { background: var(--bbk-copper-ink); color: #fff; }
.bbk-chip--navy, .bbk-chip--noir { background: var(--bbk-noir); color: var(--bbk-copper-3); }
.bbk-chip svg { width: 14px; height: 14px; }
.bbk-card__price {
	position: absolute; right: 16px; bottom: 16px;
	padding: 9px 14px;
	border-radius: 2px;
	background: var(--bbk-noir);
	color: #fff;
	font: 500 12.5px/1.15 var(--bbk-sans);
	text-align: right;
	box-shadow: 0 8px 20px -8px rgba(12, 10, 8, .6);
}
.bbk-card__price strong { display: block; color: var(--bbk-copper-2); font: 600 26px/1 var(--bbk-serif); }
.bbk-card__price del { opacity: .6; margin-inline-end: 4px; }
.bbk-card__body { display: flex; flex-direction: column; flex: 1; gap: 12px; padding: 22px 22px 24px; }
.bbk-card__meta { display: flex; flex-wrap: wrap; gap: 8px 16px; color: var(--bbk-muted); font: 700 13px/1.3 var(--bbk-sans); }
.bbk-card__meta span { display: inline-flex; align-items: center; gap: 6px; }
.bbk-card__meta svg { width: 16px; height: 16px; color: var(--bbk-copper); }
.bbk-card__title { margin: 0 !important; font: 600 20px/1.35 var(--bbk-sans) !important; letter-spacing: -.01em; }
.bbk-card__title a { color: var(--bbk-noir) !important; text-decoration: none !important; }
.bbk-card__title a:hover { color: var(--bbk-copper-ink) !important; }
.bbk-card__text { margin: 0 !important; color: var(--bbk-text); font-size: 15px; line-height: 1.65; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.bbk-card__perks { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 2px 0 0 !important; padding: 0 !important; list-style: none !important; color: var(--bbk-copper-ink); font: 500 13px/1.3 var(--bbk-sans); }
.bbk-card__perks li { display: inline-flex; align-items: center; gap: 6px; margin: 0 !important; }
.bbk-card__perks li::before { content: "✓"; font-weight: 900; }
.bbk-card__foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 16px; border-top: 1px dashed var(--bbk-line); }
.bbk-card__foot .bbk-btn { flex: 1; }

/* Transfer card */
.bbk-tcard {
	display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr; overflow: hidden;
	border: 1px solid var(--bbk-line); border-radius: var(--bbk-radius-sm); background: #fff;
	transition: transform .4s var(--bbk-ease), box-shadow .4s;
}
.bbk-tcard:hover { transform: translateY(-4px); box-shadow: var(--bbk-shadow); }
/* Same photo size on every card, whatever the length of the text below. */
.bbk-tcard__media { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--bbk-noir); }
.bbk-tcard__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--bbk-ease); }
.bbk-tcard:hover .bbk-tcard__media img { transform: scale(1.05); }
.bbk-tcard__body { display: flex; flex-direction: column; gap: 14px; padding: 22px 24px; }
.bbk-route { display: flex; align-items: center; gap: 12px; margin: 0 !important; color: var(--bbk-noir) !important; font: 600 19px/1.3 var(--bbk-sans) !important; }
.bbk-route a { color: inherit !important; text-decoration: none !important; }
.bbk-route__arrow { flex: none; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; border: 1px solid rgba(182, 118, 33, .5); color: var(--bbk-copper-ink); }
.bbk-route__arrow svg { width: 16px; height: 16px; }
.bbk-tcard__vehicles { display: grid; gap: 8px; margin: 0 !important; padding: 0 !important; list-style: none !important; }
.bbk-tcard__vehicles li { display: flex; justify-content: space-between; gap: 10px; margin: 0 !important; padding: 9px 12px; border-radius: var(--bbk-radius-xs); background: var(--bbk-ivory); color: var(--bbk-ink); font: 600 14px/1.3 var(--bbk-sans); }
.bbk-tcard__vehicles li strong { color: var(--bbk-noir); font-weight: 600; }
.bbk-tcard__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; }
.bbk-tcard__from { color: var(--bbk-muted); font: 600 13px/1.2 var(--bbk-sans); }
.bbk-tcard__from strong { display: block; color: var(--bbk-noir); font: 600 28px/1.05 var(--bbk-serif); }

/* Vehicle card */
.bbk-vehicle { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--bbk-radius-sm); background: #fff; border: 1px solid var(--bbk-line); transition: transform .4s var(--bbk-ease), box-shadow .4s; }
.bbk-vehicle:hover { transform: translateY(-5px); box-shadow: var(--bbk-shadow); }
.bbk-vehicle__media { position: relative; aspect-ratio: 16 / 10; background: radial-gradient(120% 90% at 50% 100%, #ebe3d6 0%, #fbf8f3 60%); overflow: hidden; }
.bbk-vehicle__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bbk-vehicle__tag { position: absolute; top: 16px; left: 16px; }
.bbk-vehicle__body { display: flex; flex-direction: column; gap: 14px; padding: 22px 24px 24px; flex: 1; }
.bbk-vehicle__name { margin: 0 !important; color: var(--bbk-noir) !important; font: 600 27px/1.15 var(--bbk-serif) !important; }
.bbk-vehicle__model { margin: -8px 0 0 !important; color: var(--bbk-muted); font: 600 14px/1.4 var(--bbk-sans); }
.bbk-specs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 !important; padding: 0 !important; list-style: none !important; }
.bbk-specs li { display: inline-flex; align-items: center; gap: 6px; margin: 0 !important; padding: 7px 11px; border-radius: var(--bbk-radius-xs); background: var(--bbk-ivory); color: var(--bbk-ink); font: 700 13px/1.2 var(--bbk-sans); }
.bbk-specs svg { width: 16px; height: 16px; color: var(--bbk-copper-ink); }
.bbk-vehicle__prices { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: auto; padding-top: 14px; border-top: 1px dashed var(--bbk-line); text-align: center; }
.bbk-vehicle__prices div { display: flex; flex-direction: column; gap: 2px; }
.bbk-vehicle__prices span { color: var(--bbk-muted); font: 700 11px/1.2 var(--bbk-sans); letter-spacing: .08em; text-transform: uppercase; }
.bbk-vehicle__prices strong { color: var(--bbk-noir); font: 600 17px/1.2 var(--bbk-sans); }

/* Post card */
.bbk-post { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--bbk-radius-sm); background: #fff; border: 1px solid var(--bbk-line); transition: transform .4s var(--bbk-ease), box-shadow .4s; }
.bbk-post:hover { transform: translateY(-5px); box-shadow: var(--bbk-shadow); }
.bbk-post__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--bbk-sand); }
.bbk-post__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.1s var(--bbk-ease); }
.bbk-post:hover .bbk-post__media img { transform: scale(1.05); }
.bbk-post__body { display: flex; flex-direction: column; gap: 10px; padding: 22px 24px 26px; flex: 1; }
.bbk-post__meta { color: var(--bbk-copper-ink); font: 600 12px/1.2 var(--bbk-sans); letter-spacing: .14em; text-transform: uppercase; }
.bbk-post__title { margin: 0 !important; font: 600 26px/1.2 var(--bbk-serif) !important; }
.bbk-post__title a { color: var(--bbk-noir) !important; text-decoration: none !important; }
.bbk-post__body p { margin: 0 !important; font-size: 15px; line-height: 1.65; color: var(--bbk-text); }
.bbk-post__body .bbk-link { margin-top: auto; align-self: flex-start; }

/* Testimonials */
.bbk-quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.bbk-quote { display: flex; flex-direction: column; gap: 16px; padding: 30px 28px; border-radius: var(--bbk-radius-sm); background: #fff; border: 1px solid var(--bbk-line); }
.bbk-quote__text { margin: 0 !important; color: var(--bbk-ink); font: 500 italic 21px/1.55 var(--bbk-serif); }
.bbk-quote__who { display: flex; align-items: center; gap: 12px; margin-top: auto; }
.bbk-quote__avatar { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: var(--bbk-noir); color: var(--bbk-copper-2); font: 600 17px/1 var(--bbk-sans); }
.bbk-quote__who strong { display: block; color: var(--bbk-noir); font: 600 15px/1.3 var(--bbk-sans); }
.bbk-quote__who span { color: var(--bbk-muted); font: 600 13px/1.3 var(--bbk-sans); }

/* FAQ */
.bbk-faq { display: grid; gap: 14px; max-width: 900px; margin-inline: auto; }
.bbk-faq details { border: 1px solid var(--bbk-line); border-radius: var(--bbk-radius-sm); background: #fff; transition: box-shadow .3s, border-color .3s; }
.bbk-faq details[open] { box-shadow: var(--bbk-shadow-sm); border-color: rgba(182, 118, 33, .45); }
.bbk-faq summary {
	position: relative; display: block; cursor: pointer; list-style: none;
	padding: 22px 64px 22px 26px;
	color: var(--bbk-noir); font: 600 17px/1.45 var(--bbk-sans);
}
.bbk-faq summary::-webkit-details-marker { display: none; }
.bbk-faq summary::after {
	content: ""; position: absolute; right: 22px; top: 50%; width: 30px; height: 30px; margin-top: -15px;
	border-radius: 50%; border: 1px solid rgba(182, 118, 33, .5); background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 6v12M6 12h12' stroke='%238a5513' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center/16px no-repeat;
	transition: transform .3s var(--bbk-ease);
}
.bbk-faq details[open] summary::after { transform: rotate(45deg); }
.bbk-faq__a { padding: 0 26px 22px; color: var(--bbk-text); font-size: 16px; line-height: 1.75; }
.bbk-faq__a p:last-child { margin-bottom: 0; }

/* CTA band */
.bbk-cta {
	position: relative; overflow: hidden;
	display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 30px;
	padding: clamp(36px, 5vw, 64px);
	border-radius: var(--bbk-radius-lg);
	background:
		radial-gradient(80% 120% at 100% 0%, rgba(182, 118, 33, .25) 0%, rgba(182, 118, 33, 0) 60%),
		linear-gradient(160deg, #241d18, #0f0c0a);
	color: rgba(255, 255, 255, .8);
}
.bbk-cta::before { content: ""; position: absolute; top: -40%; right: -10%; width: 520px; height: 520px; border-radius: 50%; border: 1.5px solid rgba(216, 168, 101, .3); pointer-events: none; }
.bbk-cta > * { position: relative; }
.bbk-cta h2 { margin: 0 0 10px !important; color: #fff !important; font: 600 clamp(34px, 3.6vw, 52px)/1.06 var(--bbk-serif) !important; }
.bbk-cta h2 em { color: var(--bbk-copper-2); font-style: italic; font-weight: 500; }
.bbk-cta p { margin: 0 !important; font-size: 17px; }
.bbk-cta__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* Stats */
.bbk-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.bbk-stat { padding: 26px; border-radius: var(--bbk-radius); border: 1px solid rgba(255, 255, 255, .12); background: rgba(255, 255, 255, .04); }
.bbk-stat strong { display: block; color: var(--bbk-copper-2); font: 600 52px/1 var(--bbk-serif); margin-bottom: 8px; }
.bbk-stat span { color: rgba(255, 255, 255, .78); font: 600 15px/1.5 var(--bbk-sans); }

/* Contact cards */
.bbk-contact { display: grid; grid-template-columns: .9fr 1.3fr; gap: clamp(26px, 4vw, 56px); align-items: start; }
.bbk-contact__cards { display: grid; gap: 14px; }
.bbk-ccard { display: flex; align-items: center; gap: 16px; padding: 20px 22px; border-radius: var(--bbk-radius-sm); border: 1px solid var(--bbk-line); background: #fff; color: var(--bbk-ink) !important; text-decoration: none !important; transition: transform .3s var(--bbk-ease), box-shadow .3s; }
a.bbk-ccard:hover { transform: translateY(-3px); box-shadow: var(--bbk-shadow); }
.bbk-ccard__icon { display: grid; place-items: center; width: 52px; height: 52px; flex: none; border-radius: 50%; background: var(--bbk-noir); color: var(--bbk-copper-2); }
.bbk-ccard__icon svg { width: 24px; height: 24px; }
.bbk-ccard--wa .bbk-ccard__icon { background: #075e54; color: #fff; }
.bbk-ccard div > span { display: block; color: var(--bbk-muted); font: 700 12px/1.2 var(--bbk-sans); letter-spacing: .12em; text-transform: uppercase; margin-bottom: 4px; }
.bbk-ccard div > strong { color: var(--bbk-noir); font: 600 17px/1.35 var(--bbk-sans); word-break: break-word; }
.bbk-map { overflow: hidden; border-radius: var(--bbk-radius-lg); border: 1px solid var(--bbk-line); }
.bbk-map iframe { display: block; width: 100%; height: 380px; border: 0; }

/* Inner page hero */
.bbk-phero { position: relative; display: flex; align-items: flex-end; min-height: clamp(380px, 56vh, 560px); padding: 140px 0 70px; color: #fff; background: var(--bbk-noir); isolation: isolate; overflow: hidden; }
.bbk-phero__bg { position: absolute; inset: 0; z-index: -2; }
.bbk-phero__bg img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bbk-phero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(12, 10, 8, .88) 0%, rgba(12, 10, 8, .5) 55%, rgba(12, 10, 8, .2) 100%), linear-gradient(0deg, rgba(12, 10, 8, .6), rgba(12, 10, 8, 0) 50%); }
.bbk-phero .bbk-h1 { margin: 0 0 16px !important; max-width: 900px; color: #fff !important; font-size: clamp(42px, 5.4vw, 78px) !important; font-weight: 600 !important; line-height: 1.02 !important; }
.bbk-phero p { max-width: 680px; margin: 0 0 26px !important; color: rgba(255, 255, 255, .85) !important; font: 500 clamp(16px, 1.3vw, 19px)/1.7 var(--bbk-sans) !important; }
.bbk-crumbs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px !important; padding: 0 !important; list-style: none !important; color: rgba(255, 255, 255, .7); font: 600 13.5px/1.3 var(--bbk-sans); }
.bbk-crumbs li { margin: 0 !important; }
.bbk-crumbs li + li::before { content: "/"; margin-inline-end: 8px; opacity: .5; }
.bbk-crumbs a { color: #fff !important; text-decoration: none !important; }

/* Theme card enhancement + booking box + sticky bar */
.bbk-card-book { margin-top: 12px; display: flex; gap: 8px; }
.bbk-card-book .bbk-btn { flex: 1; min-height: 44px; font-size: 14px; }
.bbk-enhanced .card-content-bottom > a.primary-btn1, .bbk-enhanced .card-content-bottom > a.primary-btn2, .bbk-enhanced .card-content-bottom > a.primary-btn3 { display: none; }
.bbk-bookbox { margin: 0 0 26px; padding: 24px; border-radius: var(--bbk-radius-sm); background: linear-gradient(165deg, #241d18, #0f0c0a); color: #fff; box-shadow: var(--bbk-shadow); }
.bbk-bookbox__price { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; margin-bottom: 4px; color: rgba(255, 255, 255, .75); font: 600 14px/1.3 var(--bbk-sans); }
.bbk-bookbox__price strong { color: var(--bbk-copper-2); font: 600 40px/1 var(--bbk-serif); }
.bbk-bookbox__list { list-style: none !important; margin: 16px 0 20px !important; padding: 0 !important; display: grid; gap: 10px; }
.bbk-bookbox__list li { display: flex; gap: 10px; margin: 0 !important; color: rgba(255, 255, 255, .88); font: 600 14.5px/1.45 var(--bbk-sans); }
.bbk-bookbox__list li::before { content: "✓"; color: var(--bbk-copper-2); font-weight: 900; }
.bbk-bookbox .bbk-btn { width: 100%; margin-bottom: 10px; }
.bbk-bookbox__trust { display: flex; align-items: center; gap: 14px; margin-top: 10px; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .12); }
.bbk-bookbox__trust .bbk-tc { width: 52px; height: auto; flex: none; }
.bbk-bookbox__trust span { color: rgba(255, 255, 255, .78); font: 600 13px/1.45 var(--bbk-sans); }

.bbk-sticky-bar {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990;
	display: none; align-items: center; justify-content: space-between; gap: 12px;
	padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
	background: rgba(255, 255, 255, .96); backdrop-filter: blur(10px);
	border-top: 1px solid var(--bbk-line);
	box-shadow: 0 -10px 30px rgba(12, 10, 8, .1);
	transform: translateY(110%); transition: transform .4s var(--bbk-ease);
}
.bbk-sticky-bar.is-visible { transform: none; }
.bbk-sticky-bar__price { color: var(--bbk-muted); font: 600 12.5px/1.2 var(--bbk-sans); }
.bbk-sticky-bar__price strong { display: block; color: var(--bbk-noir); font: 600 26px/1.05 var(--bbk-serif); }
@media (max-width: 991px) { .bbk-sticky-bar { display: flex; } }

.bbk-float-wa {
	position: fixed; right: 22px; bottom: 22px; z-index: 9991;
	display: grid; place-items: center; width: 60px; height: 60px; border-radius: 50%;
	background: #075e54; box-shadow: 0 12px 30px -10px rgba(7, 94, 84, .8);
	transition: transform .3s var(--bbk-ease);
}
.bbk-float-wa:hover { transform: scale(1.08); }
body.single-tours .bbk-float-wa, body.single-transport .bbk-float-wa { bottom: 92px; }
@media (min-width: 992px) { body.single-tours .bbk-float-wa, body.single-transport .bbk-float-wa { bottom: 22px; } }

/* ------------------------------------------------------------------ */
/* Premium single tour / transfer                                       */
/* ------------------------------------------------------------------ */

.bbk-single { background: #fff; color: var(--bbk-text); font-size: 17px; line-height: 1.75; padding-bottom: 90px; }
.bbk-single__top { padding: 34px 0 26px; }
.bbk-single__crumbs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px !important; padding: 0 !important; list-style: none !important; color: var(--bbk-muted); font: 600 13.5px/1.3 var(--bbk-sans); }
.bbk-single__crumbs li { margin: 0 !important; }
.bbk-single__crumbs li + li::before { content: "/"; margin-inline-end: 8px; opacity: .5; }
.bbk-single__crumbs a { color: var(--bbk-noir) !important; text-decoration: none !important; }
.bbk-single__title { margin: 0 0 14px !important; color: var(--bbk-noir) !important; font: 600 clamp(36px, 4.4vw, 62px)/1.04 var(--bbk-serif) !important; letter-spacing: 0; }
.bbk-single__facts { display: flex; flex-wrap: wrap; gap: 10px; }
.bbk-fact { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: var(--bbk-radius-xs); background: var(--bbk-ivory); border: 1px solid var(--bbk-line); color: var(--bbk-ink); font: 700 14px/1.2 var(--bbk-sans); }
.bbk-fact svg { width: 17px; height: 17px; color: var(--bbk-copper-ink); }

.bbk-gallery { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 250px 250px; gap: 8px; border-radius: var(--bbk-radius-xs); overflow: hidden; }
.bbk-gallery a { position: relative; display: block; overflow: hidden; background: var(--bbk-sand); }
.bbk-gallery a:first-child { grid-row: span 2; }
.bbk-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1s var(--bbk-ease); }
.bbk-gallery a:hover img { transform: scale(1.05); }
.bbk-gallery--1 { grid-template-columns: 1fr; grid-template-rows: 480px; }
.bbk-gallery--2 { grid-template-columns: 2fr 1fr; grid-template-rows: 250px 250px; }
.bbk-gallery--3 { grid-template-columns: 2fr 1fr; }
.bbk-gallery__more { position: absolute; right: 16px; bottom: 16px; }

.bbk-single__layout { display: grid; grid-template-columns: minmax(0, 1fr) 390px; gap: clamp(28px, 4vw, 60px); margin-top: 44px; align-items: start; }
.bbk-single__main > section { padding: 34px 0; border-bottom: 1px solid var(--bbk-line); }
.bbk-single__main > section:first-child { padding-top: 0; }
.bbk-single__main > section:last-child { border-bottom: 0; }
.bbk-single__main h2 { margin: 0 0 18px !important; color: var(--bbk-noir) !important; font: 600 clamp(30px, 2.8vw, 40px)/1.12 var(--bbk-serif) !important; }
.bbk-single__main h3 { color: var(--bbk-noir) !important; font: 600 20px/1.35 var(--bbk-sans) !important; margin: 1.4em 0 .5em !important; }
.bbk-single__content p { margin: 0 0 1.1em !important; }
.bbk-single__content ul { margin: 0 0 1.2em 1.2em !important; }

.bbk-highlights { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 22px; list-style: none !important; margin: 0 !important; padding: 0 !important; }
.bbk-highlights li { position: relative; margin: 0 !important; padding-inline-start: 32px !important; color: var(--bbk-ink); font-weight: 600; font-size: 16px; line-height: 1.55; }
.bbk-highlights li::before { content: ""; position: absolute; inset-inline-start: 0; top: 4px; width: 20px; height: 20px; border-radius: 50%; background: var(--bbk-copper-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%238a5513' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/13px no-repeat; }

.bbk-timeline { position: relative; display: grid; gap: 0; margin: 0 !important; padding: 0 !important; list-style: none !important; }
.bbk-timeline li { position: relative; margin: 0 !important; padding: 0 0 26px 52px !important; }
.bbk-timeline li::before { content: ""; position: absolute; left: 15px; top: 34px; bottom: 0; width: 2px; background: linear-gradient(var(--bbk-copper), rgba(182, 118, 33, .15)); }
.bbk-timeline li:last-child::before { display: none; }
.bbk-timeline__dot { position: absolute; left: 0; top: 2px; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--bbk-noir); color: var(--bbk-copper-2); font: italic 600 17px/1 var(--bbk-serif); }
.bbk-timeline strong { display: block; color: var(--bbk-noir); font: 600 17px/1.4 var(--bbk-sans); margin-bottom: 4px; }
.bbk-timeline p { margin: 0 !important; font-size: 16px; }

.bbk-incl { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.bbk-incl__col { padding: 24px; border-radius: var(--bbk-radius-sm); background: var(--bbk-ivory); }
.bbk-incl__col h3 { margin: 0 0 12px !important; font-size: 17px !important; }
.bbk-incl__col ul { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; gap: 10px; }
.bbk-incl__col li { position: relative; margin: 0 !important; padding-inline-start: 28px !important; font-size: 15.5px; line-height: 1.5; color: var(--bbk-ink); }
.bbk-incl__col li::before { position: absolute; inset-inline-start: 0; top: 0; font-weight: 900; }
.bbk-incl__col--yes li::before { content: "✓"; color: var(--bbk-copper-ink); }
.bbk-incl__col--no li::before { content: "✕"; color: #c0392b; }

.bbk-single__aside { position: sticky; top: 110px; }
.bbk-bookcard { overflow: hidden; border-radius: var(--bbk-radius-sm); background: #fff; border: 1px solid var(--bbk-line); box-shadow: var(--bbk-shadow); }
.bbk-bookcard__head { padding: 26px 26px 22px; color: #fff; background: radial-gradient(90% 120% at 100% 0%, rgba(182, 118, 33, .22), rgba(182, 118, 33, 0) 60%), linear-gradient(160deg, #241d18, #0f0c0a); }
.bbk-bookcard__from { color: rgba(255, 255, 255, .72); font: 600 14px/1.3 var(--bbk-sans); }
.bbk-bookcard__price { display: flex; align-items: baseline; gap: 8px; color: rgba(255, 255, 255, .75); font: 600 14.5px/1.2 var(--bbk-sans); }
.bbk-bookcard__price strong { color: #fff; font: 600 50px/1 var(--bbk-serif); }
.bbk-bookcard__price del { color: rgba(255, 255, 255, .55); font-size: 17px; }
.bbk-bookcard__body { padding: 22px 26px 26px; }
.bbk-bookcard__body .bbk-btn { width: 100%; margin-bottom: 10px; }
.bbk-bookcard__list { list-style: none !important; margin: 8px 0 16px !important; padding: 0 !important; display: grid; gap: 10px; }
.bbk-bookcard__list li { display: flex; gap: 10px; margin: 0 !important; color: var(--bbk-ink); font: 600 14.5px/1.45 var(--bbk-sans); }
.bbk-bookcard__list svg { width: 18px; height: 18px; flex: none; color: var(--bbk-copper-ink); margin-top: 2px; }
.bbk-bookcard__trust { display: flex; align-items: center; gap: 14px; padding: 18px 26px; border-top: 1px solid var(--bbk-line); background: var(--bbk-ivory); }
.bbk-bookcard__trust .bbk-tc { width: 54px; height: auto; flex: none; }
.bbk-bookcard__trust strong { display: block; color: var(--bbk-noir); font: 600 14px/1.35 var(--bbk-sans); }
.bbk-bookcard__trust .bbk-logos-mini { display: flex; align-items: center; gap: 12px; margin-top: 6px; }
.bbk-bookcard__trust .bbk-logo--gyg { height: 24px; }
.bbk-bookcard__trust .bbk-logo--viator { height: 18px; }
.bbk-vtable { width: 100%; border-collapse: separate; border-spacing: 0 8px; }
.bbk-vtable td { padding: 12px 14px; background: var(--bbk-ivory); font: 600 15px/1.35 var(--bbk-sans); color: var(--bbk-ink); }
.bbk-vtable td:first-child { border-radius: 4px 0 0 4px; }
.bbk-vtable td:last-child { border-radius: 0 4px 4px 0; text-align: right; color: var(--bbk-noir); font-weight: 600; }

/* ------------------------------------------------------------------ */
/* Responsive                                                           */
/* ------------------------------------------------------------------ */

@media (max-width: 1100px) {
	.bbk-quick__card { grid-template-columns: 1fr 1fr; gap: 6px; }
	.bbk-quick__field { border: 0; background: var(--bbk-field); border-radius: var(--bbk-radius-xs); }
	.bbk-quick__submit { grid-column: 1 / -1; }
	.bbk-trust, .bbk-features, .bbk-stats { grid-template-columns: repeat(2, 1fr); }
	.bbk-cardgrid--3, .bbk-cardgrid--4 { --bbk-cols: 2; }
	.bbk-quotes { grid-template-columns: 1fr 1fr; }
	.bbk-single__layout { grid-template-columns: 1fr; }
	.bbk-single__aside { position: static; }
}
@media (max-width: 900px) {
	.bbk-split, .bbk-contact { grid-template-columns: 1fr; }
	.bbk-split--reverse > :first-child { order: 0; }
	.bbk-split__media .bbk-split__badge { left: 16px; }
	.bbk-steps { grid-template-columns: 1fr; }
	.bbk-dests { grid-template-columns: 1fr 1fr; grid-auto-rows: 200px; }
	.bbk-dest:nth-child(1) { grid-column: span 2; grid-row: span 1; }
	.bbk-dest:nth-child(4) { grid-column: span 1; }
	.bbk-cta { grid-template-columns: 1fr; }
	.bbk-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: 240px 160px; }
	.bbk-gallery a:first-child { grid-column: span 2; grid-row: span 1; }
	.bbk-gallery a:nth-child(n+4) { display: none; }
	.bbk-slider__nav { display: none; }
	.bbk-slider__dots { bottom: 140px; }
}
@media (max-width: 640px) {
	.bbk-container { padding-inline: 18px; }
	.bbk-split__media::before { inset: 12px -12px -12px 12px; }
	.bbk-prose table { display: block; max-width: 100%; overflow-x: auto; }
	.bbk-prose th, .bbk-prose td { padding: 10px 12px; }
	.bbk-trust, .bbk-features, .bbk-stats, .bbk-quotes { grid-template-columns: 1fr; }
	.bbk-cardgrid, .bbk-cardgrid--2, .bbk-cardgrid--3, .bbk-cardgrid--4 { --bbk-cols: 1; }
	.bbk-quick { margin-top: -70px; }
	.bbk-quick__card { grid-template-columns: 1fr; padding: 10px; }
	.bbk-highlights, .bbk-incl { grid-template-columns: 1fr; }
	.bbk-slide__content { padding-bottom: 110px; }
	.bbk-head--split { flex-direction: column; align-items: flex-start; }
	.bbk-dests { grid-template-columns: 1fr; }
	.bbk-dest:nth-child(1) { grid-column: span 1; }
	.bbk-vehicle__prices { grid-template-columns: repeat(3, 1fr); }
}

/* Reveal on scroll */
.bbk-js .bbk-reveal { opacity: 0; transform: translateY(26px); transition: opacity .9s var(--bbk-ease), transform .9s var(--bbk-ease); }
.bbk-js .bbk-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.bbk-js .bbk-reveal { opacity: 1; transform: none; }
	.bbk-slide, .bbk-slide__bg { transition: none !important; }
}

/* Elementor wrappers: let our full-bleed sections breathe */
.elementor-widget-html .bbk-section, .elementor-widget-html .bbk-hero, .elementor-widget-html .bbk-phero, .elementor-widget-shortcode .bbk-section { margin: 0; }
body.bbk-page .elementor-section.elementor-section-boxed > .elementor-container { max-width: 100%; }
body.bbk-page .elementor-widget-wrap.elementor-element-populated { padding: 0 !important; }
body.bbk-page .elementor-widget:not(:last-child) { margin-bottom: 0 !important; }

/* Generic CTA row used in page heroes and split sections */
.bbk-phero__ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 8px; }
.bbk-credits { columns: 2; gap: 28px; font-size: 13px; line-height: 1.6; color: var(--bbk-muted); }
.bbk-credits li { break-inside: avoid; margin-bottom: 6px; }
@media (max-width: 640px) { .bbk-credits { columns: 1; } }
.bbk-figure { margin: 1.6em 0; }
.bbk-figure img { width: 100%; height: auto; border-radius: var(--bbk-radius-xs); display: block; }
.bbk-figure figcaption { margin-top: 8px; color: var(--bbk-muted); font-size: 13.5px; text-align: center; }

/* Full-bleed sections when the page is not rendered by Elementor (theme container fallback) */
html { overflow-x: clip; }
body.bbk-page:not(.elementor-page) .bbk-hero,
body.bbk-page:not(.elementor-page) .bbk-phero,
body.bbk-page:not(.elementor-page) .bbk-section {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
body.bbk-page:not(.elementor-page) .bbk-hero + p:empty, body.bbk-page:not(.elementor-page) .bbk-section + p:empty { display: none; }

/* ------------------------------------------------------------------ */
/* Car with driver: vehicle cards, rate toggle, [bbk_hire] widget      */
/* ------------------------------------------------------------------ */

.bbk-vehicle__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.bbk-vehicle__actions .bbk-btn { width: 100%; }

.bbk-vcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.bbk-vcard { position: relative; display: block; margin: 0 !important; cursor: pointer; }
.bbk-vcard input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.bbk-vcard__in { display: flex; flex-direction: column; height: 100%; overflow: hidden; border: 1px solid var(--bbk-line); border-radius: var(--bbk-radius-sm); background: #fff; transition: border-color .2s, box-shadow .2s, transform .2s var(--bbk-ease); }
.bbk-vcard__in img, .bbk-vcard__ph { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; background: radial-gradient(120% 90% at 50% 100%, #ebe3d6 0%, #fbf8f3 60%); }
.bbk-vcard__txt { display: flex; flex-direction: column; gap: 3px; padding: 10px 12px 12px; }
.bbk-vcard__txt strong { color: var(--bbk-noir); font: 600 15px/1.25 var(--bbk-sans); }
.bbk-vcard__txt small { color: var(--bbk-muted); font: 500 12.5px/1.35 var(--bbk-sans); }
.bbk-vcard__txt em { color: var(--bbk-copper-ink); font: 600 12.5px/1.35 var(--bbk-sans); font-style: normal; }
.bbk-vcard:hover .bbk-vcard__in { border-color: var(--bbk-copper-2); }
.bbk-vcard input:checked + .bbk-vcard__in { border-color: var(--bbk-copper); box-shadow: 0 0 0 2px var(--bbk-copper), 0 14px 30px -18px rgba(135, 83, 15, .7); }
.bbk-vcard input:checked + .bbk-vcard__in::after { content: ""; position: absolute; top: 10px; right: 10px; width: 22px; height: 22px; border-radius: 50%; background: var(--bbk-copper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat; }
.bbk-vcard input:focus-visible + .bbk-vcard__in { outline: 3px solid var(--bbk-copper-2); outline-offset: 2px; }
.bbk-field.is-invalid .bbk-vcard__in { border-color: #b3261e; }

.bbk-pills--seg .bbk-pills__row { display: inline-grid; grid-auto-flow: column; gap: 0; padding: 4px; border: 1px solid var(--bbk-line); border-radius: var(--bbk-radius-sm); background: var(--bbk-field); }
.bbk-pills--seg .bbk-pill span { border: 0 !important; border-radius: var(--bbk-radius-xs); background: transparent; box-shadow: none; min-width: 120px; justify-content: center; }
.bbk-pills--seg .bbk-pill input:checked + span { background: var(--bbk-noir); color: #fff; }

.bbk-hint { color: var(--bbk-muted); font: 500 12.5px/1.4 var(--bbk-sans); }
.bbk-hint.is-warn { color: var(--bbk-copper-ink); font-weight: 600; }

.bbk-hirebox { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 28px; align-items: start; }
.bbk-hirebox__vehicles { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.bbk-vcard--lg .bbk-vcard__txt { padding: 14px 16px 16px; gap: 5px; }
.bbk-vcard--lg .bbk-vcard__txt strong { font: 600 21px/1.15 var(--bbk-serif); }
.bbk-vcard__rates { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 6px; color: var(--bbk-copper-ink); font: 600 15px/1.3 var(--bbk-sans); }
.bbk-vcard__rates small { color: var(--bbk-muted); font-weight: 500; font-size: 12.5px; }
.bbk-hirebox__panel { position: sticky; top: 110px; display: flex; flex-direction: column; gap: 18px; padding: 26px; border-radius: var(--bbk-radius); background: linear-gradient(170deg, #241d18 0%, #151210 60%, #0b0908 100%); color: rgba(255, 255, 255, .85); border-top: 3px solid var(--bbk-copper); box-shadow: var(--bbk-shadow); }
.bbk-hirebox__panel .bbk-label, .bbk-hirebox__panel legend { color: var(--bbk-copper-2) !important; }
.bbk-hirebox__panel .bbk-pills--seg .bbk-pills__row { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .14); }
.bbk-hirebox__panel .bbk-pills--seg .bbk-pill span { color: rgba(255, 255, 255, .8); }
.bbk-hirebox__panel .bbk-pills--seg .bbk-pill input:checked + span { background: var(--bbk-copper); color: #fff; }
.bbk-hirebox__panel .bbk-stepper--main { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .14); }
.bbk-hirebox__panel .bbk-stepper__btn { color: #fff; }
.bbk-hirebox__panel .bbk-stepper__btn:hover { background: rgba(255, 255, 255, .1); }
.bbk-hirebox__panel .bbk-stepper__value, .bbk-hirebox__panel output { color: #fff !important; }
.bbk-hirebox__panel input[type="date"] { width: 100%; height: 50px; padding: 0 14px; border: 1px solid rgba(255, 255, 255, .16); border-radius: var(--bbk-radius-sm); background: rgba(255, 255, 255, .06); color: #fff; color-scheme: dark; font: 500 15px/1 var(--bbk-sans); }
.bbk-hirebox__row { display: flex; flex-direction: column; gap: 8px; }
.bbk-hirebox__total { display: flex; flex-direction: column; gap: 2px; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .12); }
.bbk-hirebox__total span { color: rgba(255, 255, 255, .6); font: 600 11.5px/1.2 var(--bbk-sans); letter-spacing: .14em; text-transform: uppercase; }
.bbk-hirebox__total strong { color: #fff; font: 600 36px/1.05 var(--bbk-serif); }
.bbk-hirebox__total small { color: rgba(255, 255, 255, .6); font: 500 12.5px/1.35 var(--bbk-sans); }
.bbk-hirebox__hint { margin: 0; color: rgba(255, 255, 255, .55); font: 500 12.5px/1.4 var(--bbk-sans); }
@media (max-width: 1024px) {
	.bbk-hirebox { grid-template-columns: minmax(0, 1fr); }
	.bbk-hirebox__panel { position: static; }
}
@media (max-width: 560px) {
	.bbk-vcards { grid-template-columns: 1fr 1fr; }
	.bbk-hirebox__vehicles { grid-template-columns: 1fr; }
	.bbk-vcard--lg .bbk-vcard__in { flex-direction: row; }
	.bbk-vcard--lg .bbk-vcard__in { height: auto; align-items: center; }
	.bbk-vcard--lg .bbk-vcard__in img, .bbk-vcard--lg .bbk-vcard__ph { flex: none; width: 40%; height: auto !important; aspect-ratio: 4 / 3; min-height: 0; object-fit: cover; }
	.bbk-pills--seg .bbk-pill span { min-width: 0; }
}

.bbk-rates { position: relative; overflow-x: auto; border: 1px solid var(--bbk-line); border-radius: var(--bbk-radius); background: #fff; }
.bbk-rates table { width: 100%; min-width: 560px; border-collapse: collapse; margin: 0 !important; }
.bbk-rates th, .bbk-rates td { padding: 16px 20px; border-bottom: 1px solid var(--bbk-line); text-align: left; vertical-align: middle; font: 500 15px/1.4 var(--bbk-sans); color: var(--bbk-text); }
.bbk-rates thead th { background: var(--bbk-noir); color: var(--bbk-copper-2); font: 600 12px/1.2 var(--bbk-sans); letter-spacing: .14em; text-transform: uppercase; }
.bbk-rates tbody th { color: var(--bbk-noir); font: 600 19px/1.2 var(--bbk-serif); }
.bbk-rates tbody th small { display: block; margin-top: 3px; color: var(--bbk-muted); font: 500 12.5px/1.3 var(--bbk-sans); }
.bbk-rates td { color: var(--bbk-copper-ink); font-weight: 600; font-size: 16px; }
.bbk-rates tbody tr:last-child th, .bbk-rates tbody tr:last-child td { border-bottom: 0; }
.bbk-rates__note { margin: 0; padding: 14px 20px; border-top: 1px solid var(--bbk-line); background: var(--bbk-ivory); color: var(--bbk-muted); font: 500 13px/1.45 var(--bbk-sans); }
/* Phones: one card per vehicle (name, hour and day rates side by side, full-width button). */
@media (max-width: 560px) {
	.bbk-rates table { min-width: 0; }
	.bbk-rates thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.bbk-rates tbody tr { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 12px; padding: 16px; border-bottom: 1px solid var(--bbk-line); }
	.bbk-rates tbody tr:last-child { border-bottom: 0; }
	.bbk-rates tbody th { grid-column: 1 / -1; padding: 0 0 4px; border: 0; }
	.bbk-rates tbody td { padding: 0; border: 0; }
	.bbk-rates tbody td:nth-of-type(1)::before, .bbk-rates tbody td:nth-of-type(2)::before { content: attr(data-label); display: block; color: var(--bbk-muted); font: 600 11px/1.3 var(--bbk-sans); letter-spacing: .12em; text-transform: uppercase; }
	.bbk-rates tbody td:last-child { grid-column: 1 / -1; padding-top: 8px; }
	.bbk-rates tbody td:last-child .bbk-btn { width: 100%; justify-content: center; }
}

/* ================================================================== */
/* Luxe 2026 — modern layer: Manrope display type, copper accents,    */
/* partner band, showcase cards, route cards, Spain map, journal.     */
/* ================================================================== */
:root {
	--bbk-display: "Manrope", "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
	--bbk-accent: "Cormorant Garamond", "Cormorant", Georgia, serif;
	--bbk-sans: "Manrope", "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
	--bbk-serif: var(--bbk-display);
	--bbk-radius: 16px;
	--bbk-radius-lg: 24px;
	--bbk-glass: rgba(255, 255, 255, .06);
	--bbk-glass-line: rgba(216, 168, 101, .28);
}
.bbk-h1, .bbk-h2, .bbk-h3, .bbk-hero__title, .bbk-slide__title, .bbk-single__title, .bbk-cta h2, .bbk-prose h2 { font-family: var(--bbk-display) !important; font-weight: 800 !important; letter-spacing: -.028em !important; }
.bbk-h2 { font-size: clamp(32px, 3.6vw, 52px) !important; line-height: 1.08 !important; }
.bbk-hero__title, .bbk-slide__title { font-size: clamp(40px, 5vw, 76px) !important; line-height: 1.02 !important; }
.bbk-h1 em, .bbk-h2 em, .bbk-h3 em, .bbk-hero__title em, .bbk-slide__title em, .bbk-cta h2 em { font-family: var(--bbk-accent) !important; font-style: italic; font-weight: 600 !important; font-size: 1.12em; letter-spacing: 0 !important; }
.bbk-kicker { font-family: var(--bbk-display) !important; font-weight: 700 !important; letter-spacing: .22em !important; font-size: 12px !important; }
.bbk-lead { font-size: clamp(16px, 1.2vw, 18.5px) !important; }

/* Buttons: pill shapes with a copper sheen. */
.bbk-btn { border-radius: 999px !important; font-family: var(--bbk-display) !important; font-weight: 700 !important; letter-spacing: .01em !important; }
.bbk-btn--gold { background: linear-gradient(135deg, #d9a35a 0%, #b67621 55%, #94600f 100%) !important; border-color: transparent !important; color: #fff !important; box-shadow: 0 10px 24px -10px rgba(182, 118, 33, .7); }
.bbk-btn--gold:hover { filter: brightness(1.06); transform: translateY(-1px); box-shadow: 0 16px 30px -12px rgba(182, 118, 33, .8); }

/* Hero: glass quick-booking bar. */
.bbk-quick__card { border-radius: 22px !important; border: 1px solid rgba(255, 255, 255, .55) !important; border-top: 1px solid rgba(255, 255, 255, .7) !important; background: rgba(255, 255, 255, .92) !important; -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.bbk-quick__submit { border-radius: 16px !important; }
.bbk-slider__arrow { border-radius: 50% !important; }

/* Shared price tag. */
.bbk-pricetag { display: inline-flex; flex-direction: column; line-height: 1.1; color: var(--bbk-muted); }
.bbk-pricetag small { font: 600 11px/1.3 var(--bbk-display); letter-spacing: .12em; text-transform: uppercase; }
.bbk-pricetag strong { color: var(--bbk-noir); font: 800 27px/1.05 var(--bbk-display); letter-spacing: -.02em; }
.bbk-pricetag del { color: var(--bbk-muted); font: 500 14px/1 var(--bbk-display); }
.bbk-pricetag--request strong { font-size: 18px; }
.bbk-section--navy .bbk-pricetag strong { color: #fff; }
.bbk-section--navy .bbk-link { color: var(--bbk-copper-2) !important; border-color: rgba(216, 168, 101, .5) !important; }
.bbk-section--navy .bbk-link:hover { color: #fff !important; }
.bbk-section--navy .bbk-pricetag { color: rgba(255, 255, 255, .6); }

/* ---------------------------- Partners band ---------------------------- */
.bbk-section--partners { padding: clamp(40px, 5vw, 64px) 0 !important; }
.bbk-partners { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.bbk-partner {
	position: relative; overflow: hidden; isolation: isolate;
	display: flex; align-items: center; gap: 18px; min-height: 118px;
	padding: 20px 22px; border-radius: 22px;
	background: linear-gradient(160deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .02));
	border: 1px solid var(--bbk-glass-line);
	color: #fff !important; text-decoration: none !important;
	transition: transform .4s var(--bbk-ease), border-color .4s, box-shadow .4s;
}
.bbk-partner::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(115deg, transparent 30%, rgba(236, 210, 168, .18) 48%, transparent 66%); transform: translateX(-120%); transition: transform 1s var(--bbk-ease); }
.bbk-partner:hover { transform: translateY(-5px); border-color: rgba(216, 168, 101, .75); box-shadow: 0 24px 50px -24px rgba(0, 0, 0, .8), 0 0 0 4px rgba(182, 118, 33, .12); }
.bbk-partner:hover::before { transform: translateX(120%); }
.bbk-partner__logo { flex: none; display: grid; place-items: center; width: 78px; height: 78px; border-radius: 18px; background: rgba(255, 255, 255, .06); }
.bbk-partner--ta .bbk-partner__logo { background: transparent; width: 70px; }
.bbk-partner__logo .bbk-tc { width: 62px; height: auto; }
.bbk-partner__logo .bbk-logo--gyg { height: 44px; width: auto; }
.bbk-partner__logo .bbk-logo--viator { height: 24px; width: auto; }
.bbk-partner__icon { color: var(--bbk-copper-2); }
.bbk-partner__txt { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.bbk-partner__txt strong { color: #fff; font: 800 16.5px/1.25 var(--bbk-display); letter-spacing: -.01em; }
.bbk-partner__sub, .bbk-partner .bbk-rating { color: rgba(255, 255, 255, .66) !important; font: 500 13.5px/1.4 var(--bbk-display); }
.bbk-partner__cta { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; color: var(--bbk-copper-2); font: 700 12px/1.2 var(--bbk-display); letter-spacing: .08em; text-transform: uppercase; }
.bbk-partner__cta svg { transition: transform .3s; }
.bbk-partner:hover .bbk-partner__cta svg { transform: translateX(4px); }

/* --------------------------- Filter pills ------------------------------ */
.bbk-filter { display: flex; flex-wrap: wrap; gap: 10px; margin: -6px 0 30px; }
.bbk-filter button { padding: 10px 20px; border: 1px solid var(--bbk-line); border-radius: 999px; background: #fff; color: var(--bbk-ink); font: 700 14px/1 var(--bbk-display); cursor: pointer; transition: background .25s, color .25s, border-color .25s; }
.bbk-filter button:hover { border-color: var(--bbk-copper); color: var(--bbk-copper-ink); }
.bbk-filter button.is-active { background: var(--bbk-noir); border-color: var(--bbk-noir); color: #fff; }

/* -------------------------- Showcase cards ----------------------------- */
.bbk-luxgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.bbk-lux { display: flex; flex-direction: column; overflow: hidden; border-radius: 24px; background: #fff; box-shadow: 0 1px 0 var(--bbk-line), 0 18px 40px -26px rgba(27, 23, 20, .45); transition: transform .45s var(--bbk-ease), box-shadow .45s; }
.bbk-lux:hover { transform: translateY(-6px); box-shadow: 0 1px 0 var(--bbk-line), 0 34px 60px -30px rgba(27, 23, 20, .55); }
.bbk-lux[hidden] { display: none; }
.bbk-lux__media { position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden; background: var(--bbk-sand); }
.bbk-lux__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.2s var(--bbk-ease); }
.bbk-lux:hover .bbk-lux__media img { transform: scale(1.06); }
.bbk-lux__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(12, 10, 8, .35) 0%, rgba(12, 10, 8, 0) 30%, rgba(12, 10, 8, 0) 70%, rgba(12, 10, 8, .25) 100%); pointer-events: none; }
.bbk-lux__chips { position: absolute; z-index: 2; top: 16px; left: 16px; right: 16px; display: flex; flex-wrap: wrap; gap: 8px; }
.bbk-lux__chip { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 999px; background: rgba(255, 255, 255, .9); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: var(--bbk-noir); font: 700 12px/1 var(--bbk-display); }
.bbk-lux__chip--gold { background: var(--bbk-copper); color: #fff; }
.bbk-lux__body { display: flex; flex-direction: column; gap: 10px; flex: 1; padding: 20px 22px 22px; }
.bbk-lux__dur { display: inline-flex; align-items: center; gap: 6px; color: var(--bbk-copper-ink); font: 700 12.5px/1.2 var(--bbk-display); letter-spacing: .04em; text-transform: uppercase; }
.bbk-lux__title { margin: 0 !important; font: 800 19.5px/1.3 var(--bbk-display) !important; letter-spacing: -.01em; }
.bbk-lux__title a { color: var(--bbk-noir) !important; text-decoration: none !important; }
.bbk-lux__title a:hover { color: var(--bbk-copper-ink) !important; }
.bbk-lux__perks { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0 !important; color: var(--bbk-muted); font: 500 13.5px/1.4 var(--bbk-display); }
.bbk-lux__perks span { display: inline-flex; align-items: center; gap: 5px; }
.bbk-lux__perks svg { color: #2f8a5b; }
.bbk-lux__foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--bbk-line); }

/* ----------------------------- Route cards ----------------------------- */
.bbk-routes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.bbk-rcard { display: flex; flex-direction: column; overflow: hidden; border-radius: 22px; background: #fff; border: 1px solid var(--bbk-line); transition: transform .4s var(--bbk-ease), box-shadow .4s, border-color .4s; }
.bbk-rcard:hover { transform: translateY(-5px); border-color: rgba(182, 118, 33, .45); box-shadow: 0 26px 50px -30px rgba(27, 23, 20, .5); }
.bbk-rcard__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--bbk-sand); }
.bbk-rcard__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.1s var(--bbk-ease); }
.bbk-rcard:hover .bbk-rcard__media img { transform: scale(1.06); }
.bbk-rcard__body { display: flex; flex-direction: column; gap: 10px; flex: 1; padding: 18px 20px 20px; }
.bbk-rcard__route { margin: 0 !important; }
.bbk-rcard__route a { position: relative; display: flex; flex-direction: column; gap: 10px; padding-left: 22px; color: var(--bbk-noir) !important; text-decoration: none !important; font: 800 16.5px/1.25 var(--bbk-display); }
.bbk-rcard__route a::before { content: ""; position: absolute; left: 5px; top: 10px; bottom: 10px; width: 2px; background: repeating-linear-gradient(180deg, var(--bbk-copper) 0 4px, transparent 4px 8px); }
.bbk-rcard__route span { position: relative; min-width: 0; }
.bbk-rcard__route span::before { content: ""; position: absolute; left: -22px; top: .32em; width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--bbk-copper); background: #fff; box-sizing: border-box; }
.bbk-rcard__route .bbk-rcard__to::before { background: var(--bbk-copper); box-shadow: 0 0 0 4px rgba(182, 118, 33, .18); }
.bbk-rcard__route a:hover { color: var(--bbk-copper-ink) !important; }
.bbk-rcard__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0 !important; color: var(--bbk-muted); font: 600 13px/1.3 var(--bbk-display); }
.bbk-rcard__meta span { display: inline-flex; align-items: center; gap: 5px; }
.bbk-rcard__foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--bbk-line); }
.bbk-rcard .bbk-pricetag strong { font-size: 24px; }

/* ------------------------------ Hire (dark) ---------------------------- */
.bbk-section--hire .bbk-vcard__in { background: rgba(255, 255, 255, .05) !important; border-color: var(--bbk-glass-line) !important; color: #fff; }
.bbk-section--hire .bbk-vcard__txt strong { color: #fff !important; }
.bbk-section--hire .bbk-vcard__txt small { color: rgba(255, 255, 255, .62) !important; }
.bbk-section--hire .bbk-vcard input:checked + .bbk-vcard__in { border-color: var(--bbk-copper-2) !important; box-shadow: 0 0 0 3px rgba(216, 168, 101, .25) !important; }
.bbk-section--hire .bbk-vcard__in img { background: radial-gradient(60% 60% at 50% 60%, rgba(255, 255, 255, .14), rgba(255, 255, 255, 0)); }
.bbk-section--hire .bbk-vcard__rates span { color: rgba(255, 255, 255, .8) !important; }
.bbk-section--hire .bbk-hirebox__panel { border-radius: 24px !important; }

/* ------------------------------ Spain map ------------------------------ */
.bbk-section--spain { overflow: hidden; }
.bbk-spain { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(24px, 4vw, 56px); align-items: start; }
.bbk-spain__map { position: sticky; top: 96px; margin: 0; overflow: hidden; border-radius: 28px; border: 1px solid var(--bbk-glass-line); box-shadow: 0 40px 90px -40px rgba(0, 0, 0, .9); }
.bbk-map { display: block; width: 100%; height: auto; }
.bbk-map__land { fill: url(#bbk-land); stroke: rgba(216, 168, 101, .6); stroke-width: 1.2; }
.bbk-map__country { fill: rgba(255, 255, 255, .34); font: 800 13px/1 var(--bbk-display); letter-spacing: .32em; }
.bbk-map__sea { fill: rgba(216, 168, 101, .55); font: italic 600 19px/1 var(--bbk-accent); }
.bbk-map__strait { fill: var(--bbk-copper-3); font: 800 10.5px/1 var(--bbk-display); letter-spacing: .16em; text-transform: uppercase; }
.bbk-map__ferrytxt { fill: #fff; font: 700 11px/1 var(--bbk-display); letter-spacing: .04em; paint-order: stroke; stroke: rgba(11, 20, 34, .85); stroke-width: 4px; }
.bbk-map__road { fill: none; stroke: rgba(216, 168, 101, .32); stroke-width: 2; stroke-linecap: round; stroke-dasharray: 2 7; transition: stroke .4s, stroke-width .4s; }
.bbk-map__road--ma { stroke: rgba(236, 210, 168, .45); stroke-dasharray: none; stroke-width: 1.6; }
.bbk-map__ferry { fill: none; stroke: var(--bbk-copper-3); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 9 9; animation: bbk-dash 1.4s linear infinite; }
.bbk-map__ferry--med { stroke: rgba(236, 210, 168, .45); stroke-width: 2; animation-duration: 2.4s; }
@keyframes bbk-dash { to { stroke-dashoffset: -36; } }
.bbk-spain[data-active="seville"] .bbk-map__road[data-origin="seville"],
.bbk-spain[data-active="malaga"] .bbk-map__road[data-origin="malaga"],
.bbk-spain[data-active="marbella"] .bbk-map__road[data-origin="marbella"] { stroke: var(--bbk-copper-2); stroke-width: 3; stroke-dasharray: 9 9; animation: bbk-dash 1.4s linear infinite; }
.bbk-spain[data-dest="asilah"] .bbk-map__road[data-dest="asilah"],
.bbk-spain[data-dest="tetouan"] .bbk-map__road[data-dest="tetouan"],
.bbk-spain[data-dest="chefchaouen"] .bbk-map__road[data-dest="chefchaouen"] { stroke: var(--bbk-copper-2); stroke-width: 3.2; }
.bbk-map__dot { fill: #fff; stroke: var(--bbk-copper); stroke-width: 2; }
.bbk-map__pulse { fill: rgba(216, 168, 101, .5); transform-box: fill-box; transform-origin: center; animation: bbk-pulse 2.4s ease-out infinite; }
@keyframes bbk-pulse { from { transform: scale(1); opacity: .9; } to { transform: scale(3.4); opacity: 0; } }
.bbk-map__label { fill: #fff; font: 700 14px/1 var(--bbk-display); paint-order: stroke; stroke: rgba(11, 20, 34, .8); stroke-width: 4px; }
.bbk-map__city--sm .bbk-map__label { fill: rgba(255, 255, 255, .7); font-size: 11.5px; font-weight: 600; }
.bbk-map__city--ma .bbk-map__label { font-size: 15px; }
.bbk-spain[data-active="seville"] [data-city="seville"] .bbk-map__label,
.bbk-spain[data-active="malaga"] [data-city="malaga"] .bbk-map__label,
.bbk-spain[data-active="marbella"] [data-city="marbella"] .bbk-map__label,
.bbk-spain[data-active="tarifa"] [data-city="tarifa"] .bbk-map__label { fill: var(--bbk-copper-3); }
.bbk-spain__label { margin: 0 0 12px !important; color: rgba(255, 255, 255, .6); font: 700 12px/1 var(--bbk-display); letter-spacing: .22em; text-transform: uppercase; }
.bbk-spain__tabs { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 22px; }
.bbk-spain__tabs button { padding: 12px 22px; border: 1px solid var(--bbk-glass-line); border-radius: 999px; background: rgba(255, 255, 255, .04); color: #fff; font: 700 15px/1 var(--bbk-display); cursor: pointer; transition: background .25s, border-color .25s, color .25s; }
.bbk-spain__tabs button:hover { border-color: var(--bbk-copper-2); }
.bbk-spain__tabs button.is-active { background: linear-gradient(135deg, #d9a35a, #b67621); border-color: transparent; color: #fff; box-shadow: 0 12px 28px -12px rgba(182, 118, 33, .8); }
.bbk-spain__panel { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; animation: bbk-fadeup .5s var(--bbk-ease); }
.bbk-spain__panel[hidden] { display: none; }
@keyframes bbk-fadeup { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.bbk-spcard { display: flex; flex-direction: column; overflow: hidden; border-radius: 20px; background: rgba(255, 255, 255, .05); border: 1px solid var(--bbk-glass-line); transition: border-color .3s, transform .3s var(--bbk-ease), background .3s; }
.bbk-spcard:hover { border-color: var(--bbk-copper-2); transform: translateY(-3px); background: rgba(255, 255, 255, .08); }
.bbk-spcard__media { display: block; aspect-ratio: 16 / 9; overflow: hidden; }
.bbk-spcard__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1s var(--bbk-ease); }
.bbk-spcard:hover .bbk-spcard__media img { transform: scale(1.06); }
.bbk-spcard__body { position: relative; display: flex; flex-direction: column; gap: 10px; flex: 1; padding: 16px 18px 18px; }
.bbk-spcard__chip { position: absolute; top: -14px; right: 16px; padding: 6px 12px; border-radius: 999px; background: var(--bbk-noir); border: 1px solid var(--bbk-copper-2); color: var(--bbk-copper-3); font: 800 11px/1 var(--bbk-display); letter-spacing: .08em; text-transform: uppercase; }
.bbk-spcard__title { margin: 0 !important; }
.bbk-spcard__title a { display: flex; align-items: center; gap: 8px; color: #fff !important; text-decoration: none !important; font: 800 17px/1.2 var(--bbk-display); }
.bbk-spcard__title i { flex: 1 1 18px; min-width: 14px; height: 2px; background: repeating-linear-gradient(90deg, var(--bbk-copper-2) 0 5px, transparent 5px 9px); }
.bbk-spcard__foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; margin-top: auto; }
.bbk-spcard .bbk-pricetag strong { color: #fff; font-size: 23px; }
.bbk-spcard .bbk-pricetag { color: rgba(255, 255, 255, .6); }

/* -------------------------------- Why us -------------------------------- */
.bbk-why { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.bbk-why__intro { position: sticky; top: 100px; }
.bbk-why__intro .bbk-head { margin-bottom: 22px !important; }
.bbk-why__media { margin: 0 0 24px; overflow: hidden; border-radius: 24px; aspect-ratio: 4 / 3; box-shadow: var(--bbk-shadow); }
.bbk-why__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bbk-why__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.bbk-why__card { position: relative; padding: 26px 24px 24px; border-radius: 22px; background: #fff; border: 1px solid var(--bbk-line); transition: transform .4s var(--bbk-ease), box-shadow .4s, border-color .4s; }
.bbk-why__card:hover { transform: translateY(-4px); border-color: rgba(182, 118, 33, .4); box-shadow: 0 26px 50px -32px rgba(27, 23, 20, .5); }
.bbk-why__num { position: absolute; top: 20px; right: 22px; color: transparent; -webkit-text-stroke: 1px rgba(182, 118, 33, .45); font: 800 34px/1 var(--bbk-display); }
.bbk-why__icon { display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 16px; border-radius: 16px; background: var(--bbk-copper-soft); color: var(--bbk-copper-ink); }
.bbk-why__title { margin: 0 0 8px !important; color: var(--bbk-noir) !important; font: 800 17.5px/1.3 var(--bbk-display) !important; }
.bbk-why__text { margin: 0 !important; color: var(--bbk-text); font: 500 15px/1.6 var(--bbk-display); }

/* ------------------------------- Journal -------------------------------- */
.bbk-journal { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); grid-auto-rows: auto; gap: 22px; }
.bbk-jcard { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 18px; align-items: center; padding: 14px; border-radius: 22px; background: #fff; border: 1px solid var(--bbk-line); transition: border-color .3s, box-shadow .3s; }
.bbk-jcard:hover { border-color: rgba(182, 118, 33, .45); box-shadow: 0 24px 50px -34px rgba(27, 23, 20, .5); }
.bbk-jcard__media { display: block; overflow: hidden; border-radius: 16px; aspect-ratio: 1 / 1; }
.bbk-jcard__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1s var(--bbk-ease); }
.bbk-jcard:hover .bbk-jcard__media img { transform: scale(1.06); }
.bbk-jcard--lead { grid-row: span 3; grid-template-columns: 1fr; align-content: start; padding: 0; overflow: hidden; }
.bbk-jcard--lead .bbk-jcard__media { border-radius: 0; aspect-ratio: 16 / 10; }
.bbk-jcard--lead .bbk-jcard__body { padding: 8px 26px 26px; }
.bbk-jcard__meta { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 8px !important; color: var(--bbk-copper-ink); font: 700 11.5px/1 var(--bbk-display); letter-spacing: .14em; text-transform: uppercase; }
.bbk-jcard__meta span + span::before { content: "·"; margin-inline-end: 10px; }
.bbk-jcard__title { margin: 0 0 8px !important; font: 800 17px/1.35 var(--bbk-display) !important; }
.bbk-jcard--lead .bbk-jcard__title { font-size: clamp(21px, 2vw, 27px) !important; line-height: 1.25 !important; }
.bbk-jcard__title a { color: var(--bbk-noir) !important; text-decoration: none !important; }
.bbk-jcard__text { margin: 0 0 12px !important; color: var(--bbk-text); font: 500 15.5px/1.6 var(--bbk-display); }
.bbk-jcard__more { display: inline-flex; align-items: center; gap: 6px; color: var(--bbk-copper-ink) !important; text-decoration: none !important; font: 800 12.5px/1 var(--bbk-display); letter-spacing: .1em; text-transform: uppercase; }

/* ------------------------------ Responsive ------------------------------ */
@media (max-width: 1180px) {
	.bbk-partners { grid-template-columns: repeat(2, 1fr); }
	.bbk-routes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bbk-luxgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
	.bbk-spain, .bbk-why, .bbk-journal { grid-template-columns: 1fr; }
	.bbk-spain__map, .bbk-why__intro { position: relative; top: 0; }
	.bbk-spain__map { max-width: 560px; margin-inline: auto; }
	.bbk-jcard--lead { grid-row: auto; }
}
@media (max-width: 700px) {
	.bbk-partners { grid-template-columns: 1fr; gap: 12px; }
	.bbk-partner { min-height: 0; padding: 16px; }
	.bbk-partner__logo { width: 62px; height: 62px; }
	/* Cards slide sideways on phones. */
	.bbk-luxgrid, .bbk-routes { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; margin-inline: -16px; padding: 4px 16px 18px; scrollbar-width: none; }
	.bbk-luxgrid::-webkit-scrollbar, .bbk-routes::-webkit-scrollbar { display: none; }
	.bbk-lux, .bbk-rcard { flex: 0 0 82%; scroll-snap-align: center; }
	.bbk-lux__media { aspect-ratio: 4 / 4.2; }
	.bbk-spain__panel { grid-template-columns: 1fr; }
	.bbk-why__grid { grid-template-columns: 1fr; }
	.bbk-jcard { grid-template-columns: 96px minmax(0, 1fr); }
	.bbk-jcard--lead { grid-template-columns: 1fr; }
	.bbk-filter { flex-wrap: nowrap; overflow-x: auto; margin-inline: -16px; padding: 0 16px 6px; scrollbar-width: none; }
	.bbk-filter button { flex: none; }
}
@media (prefers-reduced-motion: reduce) {
	.bbk-map__ferry, .bbk-map__pulse, .bbk-spain [data-origin] { animation: none !important; }
	.bbk-lux, .bbk-rcard, .bbk-partner, .bbk-why__card, .bbk-spcard { transition: none; }
}

/* Reviews call-to-action (no quotes entered). */
.bbk-reviews-cta { display: flex; flex-direction: column; align-items: center; gap: 18px; max-width: 760px; margin: 0 auto; padding: clamp(28px, 4vw, 44px); border-radius: 28px; background: linear-gradient(160deg, #fff, var(--bbk-ivory)); border: 1px solid var(--bbk-line); text-align: center; box-shadow: 0 30px 60px -40px rgba(27, 23, 20, .45); }
.bbk-reviews-cta__badge .bbk-tc { width: 72px; height: auto; }
.bbk-reviews-cta__text { margin: 0 !important; color: var(--bbk-text); font: 500 17px/1.6 var(--bbk-display); }
.bbk-reviews-cta__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }

/* Accessible hidden text (no longer provided by the theme on BBK pages). */
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.screen-reader-text:focus { clip: auto; clip-path: none; width: auto; height: auto; margin: 0; padding: 8px 12px; background: #fff; color: #151210; z-index: 100000; }

/* Card photos always fill their fixed-ratio frame. Elementor (".elementor img { height: auto }")
   and some themes would otherwise shrink them to their natural height and leave an empty band. */
.bbk-lux__media, .bbk-card__media, .bbk-tcard__media, .bbk-rcard__media, .bbk-spcard__media, .bbk-jcard__media, .bbk-post__media, .bbk-why__media, .bbk-vehicle__media, .bbk-gallery a, .bbk-dest { position: relative; }
.bbk-lux__media img, .bbk-card__media img, .bbk-tcard__media img, .bbk-rcard__media img, .bbk-spcard__media img, .bbk-jcard__media img, .bbk-post__media img, .bbk-why__media img,
.bbk-vehicle__media img, .bbk-gallery img, .bbk-dest img {
	position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important;
	max-width: none !important; max-height: none !important; margin: 0 !important; object-fit: cover !important;
}
/* The same Elementor rule also removes rounded corners and shadows ("border-radius: 0; box-shadow: none"). */
.bbk-split__media img { border-radius: var(--bbk-radius-xs) !important; box-shadow: var(--bbk-shadow) !important; }
.bbk-figure img { border-radius: var(--bbk-radius-xs) !important; }

/* Hero photos (home slider, page banners) always cover the whole hero on every screen,
   whatever "img { height: auto }" rules the theme or Elementor add. */
.bbk-slide__bg img, .bbk-phero__bg img {
	position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important;
	max-width: none !important; max-height: none !important; margin: 0 !important; object-fit: cover !important; object-position: center;
}

/* Country code picker (phone / WhatsApp) */
.bbk-tel { position: relative; display: flex; align-items: stretch; }
.bbk-tel > input[type="tel"] { flex: 1 1 auto; min-width: 0; border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important; }
.bbk-tel__cc { display: inline-flex; flex: none; align-items: center; gap: 7px; margin: 0; padding: 0 12px; border: 1px solid #e6ddcf; border-right: 0; border-radius: var(--bbk-radius-sm) 0 0 var(--bbk-radius-sm); background: #fbf7f1; color: var(--bbk-ink); font: 600 15px/1 var(--bbk-sans); cursor: pointer; white-space: nowrap; }
.bbk-tel__cc:hover { background: #f6efe4; }
.bbk-tel__cc:focus-visible { outline: 2px solid var(--bbk-copper, #b67621); outline-offset: 1px; }
.bbk-tel__cc:disabled { opacity: .55; cursor: default; }
.bbk-tel__cc svg { opacity: .6; }
.bbk-flag { flex: none; display: inline-block; width: 20px; height: 15px; border-radius: 2px; background-image: var(--bbk-flags); background-size: 320px 240px; background-repeat: no-repeat; box-shadow: 0 0 0 1px rgba(0, 0, 0, .1); }
.bbk-tel__panel { position: absolute; z-index: 80; top: calc(100% + 6px); left: 0; width: min(340px, calc(100vw - 48px)); padding: 8px; background: #fff; border: 1px solid #e6ddcf; border-radius: 12px; box-shadow: 0 18px 40px rgba(21, 18, 16, .16); }
.bbk-tel__panel[hidden] { display: none; }
.bbk-tel__q { display: block; width: 100%; height: 42px; margin: 0 0 6px; padding: 0 12px; border: 1px solid #e6ddcf; border-radius: 8px; background: var(--bbk-field, #fff); color: var(--bbk-ink); font: 400 15px/1.2 var(--bbk-sans); box-sizing: border-box; outline: none; }
.bbk-tel__q:focus { border-color: var(--bbk-copper, #b67621); }
.bbk-tel__list { list-style: none; margin: 0; padding: 0; max-height: 264px; overflow-y: auto; overscroll-behavior: contain; }
.bbk-tel__list li { display: flex; align-items: center; gap: 10px; margin: 0; padding: 9px 10px; border-radius: 7px; color: var(--bbk-ink); font: 400 14.5px/1.25 var(--bbk-sans); cursor: pointer; }
.bbk-tel__list li.is-active, .bbk-tel__list li:hover { background: #f6efe4; }
.bbk-tel__list li[aria-selected="true"] { font-weight: 700; }
.bbk-tel__name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bbk-tel__dial { flex: none; color: var(--bbk-muted); font-variant-numeric: tabular-nums; }
.bbk-tel__none { color: var(--bbk-muted); cursor: default !important; }
