/* ==========================================================================
   Boat Party Sync – front end
   Harbour navy, flare pink, lagoon and wristband yellow.
   Headings: Big Shoulders Display. Body: Instrument Sans (or your theme fonts).
   ========================================================================== */

.bps {
	--bps-accent: #e0144f;
	--bps-ink: #0d1b3e;
	--bps-ink-2: #1a2c5b;
	--bps-muted: #56627a;
	--bps-line: #d9e2ee;
	--bps-paper: #eef3f8;
	--bps-mint: #e0f5f4;
	--bps-sun: #ffd83d;
	--bps-sun-soft: #fff7d1;
	--bps-heart: #e5484d;
	--bps-lagoon: #13b5b1;
	--bps-lagoon-ink: #07615e;
	--bps-max: 1260px;
	--bps-pad: clamp(18px, 4vw, 40px);
	--bps-gap: clamp(8px, 1.4vw, 18px);
	--bps-top: var(--wp-admin--admin-bar--height, 0px);
	font-family: var(--bps-body-font, inherit);
}
.bps *, .bps *::before, .bps *::after { box-sizing: border-box; }
.bps img { max-width: 100%; height: auto; }
.bps .bps-icon { flex: none; }
.bps h1, .bps h2, .bps h3 { font-family: var(--bps-head-font, inherit); color: inherit; margin-top: 0; text-wrap: balance; letter-spacing: -.02em; }
.bps-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.bps a:focus-visible, .bps button:focus-visible, .bps input:focus-visible { outline: 3px solid var(--bps-accent); outline-offset: 2px; }

/* Full-width breakout (works inside boxed theme containers) */
body.bps-fullwidth { overflow-x: clip; }
.bps-page, body.bps-fullwidth .bps-full { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.bps-page { color: var(--bps-ink); background: #fff; margin-top: 0; margin-bottom: 0; -webkit-font-smoothing: antialiased; }
.bps-full { color: var(--bps-ink); }
.bps-page--content > :not(.bps-full):not(.bps-hero) { max-width: calc(var(--bps-max) + 2 * var(--bps-pad)); margin-left: auto; margin-right: auto; padding-left: var(--bps-pad); padding-right: var(--bps-pad); }
.bps-page--content > .bps-full, .bps-page > .bps-hero { margin-top: 0 !important; margin-bottom: 0 !important; }
html:has(.bps-page) { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html:has(.bps-page) { scroll-behavior: auto; } }

.bps-wrap { max-width: calc(var(--bps-max) + 2 * var(--bps-pad)); margin-left: auto; margin-right: auto; padding-left: var(--bps-pad); padding-right: var(--bps-pad); }
.bps-wrap--narrow { max-width: calc(740px + 2 * var(--bps-pad)); }
.bps-section { padding-top: clamp(2.75rem, 5.5vw, 5rem); padding-bottom: clamp(2.75rem, 5.5vw, 5rem); }
.bps-alt { background: var(--bps-paper); }

.bps .bps-h2 { font-size: clamp(1.7rem, 1.2rem + 1.9vw, 2.6rem); font-weight: 700; line-height: 1.05; margin: 0; }
.bps .bps-h3 { font-size: 1.35rem; font-weight: 700; line-height: 1.15; margin: 0 0 .4rem; }
.bps-sechead { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: .6rem 2rem; margin-bottom: clamp(1.25rem, 2.6vw, 2rem); }
.bps-sechead__intro { margin: .5rem 0 0; color: var(--bps-muted); max-width: 52ch; }
.bps .bps-textlink {
	color: var(--bps-accent) !important; font: inherit; font-weight: 600; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 4px;
	background: none; border: 0; padding: 0; cursor: pointer;
}
.bps .bps-textlink:hover { color: var(--bps-ink) !important; }
.bps-textlink[hidden] { display: none; }

/* Buttons */
.bps .bps-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 48px; padding: .7rem 1.35rem;
	border-radius: 12px; border: 1.5px solid transparent; font: inherit; font-weight: 700; font-size: 1rem; line-height: 1.1;
	text-decoration: none; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s;
}
.bps .bps-btn--primary { background: var(--bps-accent); color: #fff; }
.bps .bps-btn--primary:hover { background: var(--bps-ink); color: #fff; }
.bps .bps-btn--ghost { background: #fff; border-color: var(--bps-ink); color: var(--bps-ink); }
.bps .bps-btn--ghost:hover { background: var(--bps-ink); color: #fff; }
.bps .bps-btn--lg { min-height: 56px; padding-inline: 1.7rem; font-size: 1.05rem; }
.bps .bps-btn--sm { min-height: 40px; padding: .45rem 1rem; font-size: .92rem; }
.bps .bps-btn--block { display: flex; width: 100%; }
.bps-admin-hint { padding: .8rem 1rem; border: 2px dashed var(--bps-accent); border-radius: 12px; font-size: .9rem; }
.bps-empty { font-size: 1.1rem; color: var(--bps-muted); }

/* ------------------------------------------------------------------ */
/* Postcard hero: photo in a frame inset from the edges               */
/* ------------------------------------------------------------------ */
.bps-hero { position: relative; padding: var(--bps-gap) var(--bps-gap) 0; }
.bps-hero__frame {
	position: relative; isolation: isolate; display: flex; align-items: flex-end; overflow: hidden;
	min-height: clamp(360px, 52vh, 560px); border-radius: clamp(18px, 2.2vw, 30px);
	background: var(--bps-ink); color: #fff;
}
.bps-hero--hub .bps-hero__frame { min-height: clamp(460px, 74vh, 760px); }
.bps-hero--tour .bps-hero__frame { min-height: clamp(420px, 66vh, 680px); }
.bps-hero--compact .bps-hero__frame { min-height: clamp(260px, 36vh, 380px); }
.bps-hero--plain .bps-hero__frame { background: radial-gradient(120% 90% at 100% 0%, var(--bps-ink-2) 0%, var(--bps-ink) 60%); }
.bps-hero__media { position: absolute; inset: 0; z-index: -2; }
.bps-hero__media img, .bps .bps-hero__img { width: 100%; height: 100% !important; object-fit: cover; display: block; }
.bps-hero__frame::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: linear-gradient(180deg, rgba(13, 27, 62, .35) 0%, rgba(13, 27, 62, 0) 30%, rgba(13, 27, 62, .2) 55%, rgba(13, 27, 62, .88) 100%);
}
.bps-hero__inner { position: relative; width: 100%; max-width: calc(var(--bps-max) + 2 * var(--bps-pad)); margin: 0 auto; padding: 6rem calc(var(--bps-pad) - var(--bps-gap)) clamp(2rem, 4vw, 3.25rem); }
.bps-hero.has-dock .bps-hero__inner { padding-bottom: calc(clamp(2rem, 4vw, 3.25rem) + 2.5rem); }
.bps-hero--tour.has-dock .bps-hero__inner { padding-bottom: calc(clamp(2rem, 4vw, 3.25rem) + 3.5rem); }
.bps .bps-hero__title { font-size: clamp(2.3rem, 1.3rem + 4.4vw, 5.2rem); font-weight: 800; line-height: .96; letter-spacing: -.035em; margin: 0; max-width: 17ch; }
.bps-hero--tour .bps-hero__title { font-size: clamp(2rem, 1.2rem + 3vw, 3.9rem); line-height: 1.02; max-width: 24ch; }
.bps-hero--compact .bps-hero__title { font-size: clamp(2rem, 1.3rem + 2.6vw, 3.4rem); }
.bps-hero__sub { font-size: clamp(1.02rem, .98rem + .3vw, 1.22rem); line-height: 1.55; max-width: 56ch; margin: 1rem 0 0; color: rgba(255, 255, 255, .92); }
.bps-hero__kicker { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .9rem; margin: 0 0 1rem; font-size: .95rem; }
.bps-hero__country, .bps .bps-hero__type {
	display: inline-flex; align-items: center; gap: .4rem; padding: .32rem .8rem; border-radius: 999px;
	background: rgba(255, 255, 255, .16); border: 1px solid rgba(255, 255, 255, .3); color: #fff !important; font-weight: 600; text-decoration: none !important; backdrop-filter: blur(6px);
}
a.bps-hero__type:hover { background: rgba(255, 255, 255, .28); }
.bps-coords { display: inline-flex; align-items: center; gap: .35rem; font-variant-numeric: tabular-nums; font-weight: 500; color: rgba(255, 255, 255, .9); }
.bps-coords .bps-icon { color: var(--bps-sun); }
.bps-hero__row { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; margin-top: 1.2rem; }
.bps-hero__dock { position: relative; z-index: 3; margin-top: -2.35rem; }
.bps-hero--tour .bps-hero__dock { margin-top: -3.4rem; }
.bps-hero__after { padding-top: 1rem; }
.bps-hero__stats { margin: 0; color: var(--bps-muted); font-weight: 500; }

.bps-crumbs ol { display: flex; flex-wrap: wrap; gap: .25rem .5rem; list-style: none; margin: 0 0 1rem; padding: 0; font-size: .92rem; }
.bps-crumbs li { display: flex; align-items: center; gap: .5rem; }
.bps-crumbs li + li::before { content: "/"; opacity: .55; }
.bps-crumbs a { color: #fff !important; text-decoration: none; opacity: .9; }
.bps-crumbs a:hover { opacity: 1; text-decoration: underline; }
.bps-crumbs [aria-current] { opacity: .7; }

/* Search bar docked on the hero */
.bps-search {
	display: flex; align-items: center; gap: .5rem; width: min(720px, 100%); padding: .45rem .45rem .45rem 1.15rem;
	border-radius: 16px; background: #fff; color: var(--bps-ink); border: 1px solid var(--bps-line);
	box-shadow: 0 22px 44px -22px rgba(13, 27, 62, .45);
}
.bps-search > .bps-icon { color: var(--bps-muted); }
.bps-search input {
	flex: 1; min-width: 0; height: 54px; border: 0 !important; background: none !important; box-shadow: none !important;
	font: inherit; font-size: 1.05rem; color: var(--bps-ink); padding: 0 .25rem; outline: none;
}
.bps-search input::placeholder { color: #7d8c86; }
.bps-search .bps-btn { min-height: 54px; }
.bps-search:focus-within { border-color: var(--bps-accent); box-shadow: 0 0 0 3px rgba(224, 20, 79, .18), 0 22px 44px -22px rgba(13, 27, 62, .45); }
@media (max-width: 520px) { .bps-search .bps-btn { padding-inline: 1rem; } .bps-search input { height: 48px; font-size: 1rem; } }

/* Rating */
.bps-rating { display: inline-flex; align-items: center; gap: .4rem; margin: 0; font-size: .92rem; }
.bps-rating a { display: inline-flex; align-items: center; gap: .4rem; color: inherit !important; text-decoration: none; }
.bps-rating strong { font-weight: 700; }
.bps-rating span { color: var(--bps-muted); }
.bps-rating--hero span { color: rgba(255, 255, 255, .85); }
.bps-rating__star { fill: var(--bps-sun); }
.bps-stars { position: relative; display: inline-block; line-height: 0; }
.bps-stars svg { fill: currentColor; }
.bps-stars__base { color: rgba(13, 27, 62, .16); display: inline-flex; }
.bps-rating--hero .bps-stars__base { color: rgba(255, 255, 255, .35); }
.bps-stars__fill { position: absolute; inset: 0 auto 0 0; overflow: hidden; white-space: nowrap; color: var(--bps-sun); display: inline-flex; }

/* Heart (wishlist) */
.bps .bps-heart { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; font: inherit; font-weight: 600; cursor: pointer; border: 0; background: #fff; color: var(--bps-ink); }
.bps-heart--icon { position: absolute; z-index: 2; top: .7rem; right: .7rem; width: 40px; height: 40px; border-radius: 50%; }
.bps-heart--pill { min-height: 44px; padding: 0 1.1rem; border-radius: 999px; background: rgba(255, 255, 255, .16) !important; color: #fff !important; border: 1px solid rgba(255, 255, 255, .4) !important; backdrop-filter: blur(6px); }
.bps-heart--block { width: 100%; min-height: 48px; margin-top: .6rem; border-radius: 12px; border: 1.5px solid var(--bps-line) !important; }
.bps-heart--block:hover { border-color: var(--bps-ink) !important; }
.bps-heart.is-saved .bps-icon { fill: var(--bps-heart); color: var(--bps-heart); }
.bps-heart--pill.is-saved .bps-icon { fill: #fff; color: #fff; }
.bps-heart.is-pop .bps-icon { animation: bps-pop .35s ease-out; }
@keyframes bps-pop { 40% { transform: scale(1.3); } }
@media (prefers-reduced-motion: reduce) { .bps-heart.is-pop .bps-icon { animation: none; } }

/* ------------------------------------------------------------------ */
/* Destination tiles                                                  */
/* ------------------------------------------------------------------ */
.bps-places { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(.75rem, 1.6vw, 1.2rem); grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 820px) { .bps-places { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .bps-places { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.bps-place { margin: 0; }
.bps-place a {
	position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end; aspect-ratio: 3 / 4; overflow: hidden;
	border-radius: 20px; background: var(--bps-ink); color: #fff !important; text-decoration: none !important;
}
.bps-place > a > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100% !important; object-fit: cover; }
.bps-place a::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(13, 27, 62, .25) 0%, rgba(13, 27, 62, 0) 28%, rgba(13, 27, 62, .15) 55%, rgba(13, 27, 62, .9) 100%); }
.bps-place--noimg a { background: radial-gradient(110% 80% at 100% 0%, var(--bps-ink-2) 0%, var(--bps-ink) 65%); }
.bps-place__coords { position: absolute; top: .85rem; left: .9rem; font-size: .76rem; font-weight: 600; font-variant-numeric: tabular-nums; color: rgba(255, 255, 255, .92); }
.bps-place__text { display: flex; flex-direction: column; gap: .2rem; padding: clamp(.9rem, 1.8vw, 1.3rem); }
.bps-place__country { font-size: .85rem; font-weight: 600; color: rgba(255, 255, 255, .88); }
.bps-place__name { font-family: var(--bps-head-font, inherit); font-weight: 700; letter-spacing: -.025em; line-height: 1; font-size: clamp(1.5rem, 1rem + 1.4vw, 2.2rem); overflow-wrap: break-word; hyphens: auto; }
.bps-place__line { font-size: .92rem; color: rgba(255, 255, 255, .88); }
.bps-place a:hover .bps-place__name { text-decoration: underline; text-decoration-color: var(--bps-sun); text-decoration-thickness: 3px; text-underline-offset: 5px; }
@media (max-width: 560px) { .bps-places { grid-template-columns: 1fr; } .bps-place a { aspect-ratio: 16 / 11; border-radius: 16px; } }

.bps-countries { margin: 0 0 1.5rem; }
.bps-countries ul { list-style: none; margin: 0; padding: 0 0 .25rem; display: flex; flex-wrap: wrap; gap: .5rem; }
.bps-countries li { margin: 0; }
.bps-countries a {
	display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: 0 .5rem 0 .95rem; border-radius: 999px;
	background: #fff; border: 1px solid var(--bps-line); color: var(--bps-ink) !important; text-decoration: none !important; font-weight: 600; font-size: .95rem;
}
.bps-countries a:hover { border-color: var(--bps-ink); }
.bps-countries__flag { font-size: 1.15rem; line-height: 1; }
.bps-countries__count { min-width: 28px; height: 28px; padding: 0 .5rem; border-radius: 999px; display: inline-grid; place-items: center; background: var(--bps-mint); font-size: .8rem; font-weight: 700; font-variant-numeric: tabular-nums; }
@media (max-width: 640px) { .bps-countries ul { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; } .bps-countries a { white-space: nowrap; } }
.bps-othercountries { padding-top: 0; }
.bps .bps-places__subhead { margin: 0 0 1rem; }
.bps-places--countries { margin-bottom: clamp(2rem, 4vw, 3rem); }
.bps-place--country .bps-place__country { font-size: .9rem; }

/* Experience types: an index, like a map legend */
.bps-types-sec { padding-top: 0; }
.bps-places-sec + .bps-types-sec { padding-top: 0; }
.bps-types { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; column-gap: clamp(1.5rem, 3vw, 3rem); border-top: 1px solid var(--bps-line); }
@media (min-width: 640px) { .bps-types { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .bps-types { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.bps-types li { margin: 0; border-bottom: 1px solid var(--bps-line); }
.bps-types a { display: flex; align-items: center; gap: .9rem; padding: .85rem .1rem; color: var(--bps-ink) !important; text-decoration: none !important; }
.bps-types__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--bps-mint); color: var(--bps-ink-2); flex: none; }
.bps-types__name { flex: 1; font-weight: 600; font-size: 1.02rem; }
.bps-types__count { color: var(--bps-muted); font-size: .9rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.bps-types a:hover .bps-types__name { color: var(--bps-accent); text-decoration: underline; text-underline-offset: 3px; }
.bps-types a:hover .bps-types__icon { background: var(--bps-accent); color: #fff; }

/* Travel guides */
.bps-guides { display: grid; gap: clamp(1.25rem, 2.4vw, 2rem); grid-template-columns: 1fr; }
@media (min-width: 720px) { .bps-guides { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.bps-guide a { display: block; color: var(--bps-ink) !important; text-decoration: none !important; }
.bps-guide__media { aspect-ratio: 16 / 10; border-radius: 16px; overflow: hidden; background: var(--bps-paper); display: grid; place-items: center; }
.bps-guide__media img { width: 100%; height: 100% !important; object-fit: cover; display: block; }
.bps-guide__blank { color: var(--bps-muted); }
.bps-guide__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin: .9rem 0 .4rem; font-size: .85rem; color: var(--bps-muted); }
.bps-guide__meta span:first-child:not(:only-child) { padding: .15rem .6rem; border-radius: 999px; background: var(--bps-mint); color: var(--bps-ink-2); font-weight: 600; }
.bps .bps-guide__title { font-size: 1.3rem; font-weight: 700; line-height: 1.2; margin: 0 0 .4rem; }
.bps-guide a:hover .bps-guide__title { text-decoration: underline; text-decoration-color: var(--bps-accent); text-underline-offset: 4px; }
.bps-guide__excerpt { margin: 0; color: var(--bps-muted); line-height: 1.55; }

/* ------------------------------------------------------------------ */
/* Filters                                                             */
/* ------------------------------------------------------------------ */
.bps-filterbar { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-bottom: 1.6rem; }
.bps-filterbar__search {
	flex: 1 1 280px; display: flex; align-items: center; gap: .6rem; min-height: 50px; padding: 0 1rem;
	border-radius: 12px; background: #fff; border: 1px solid var(--bps-line); color: var(--bps-muted); cursor: text;
}
.bps-filterbar__search:focus-within { border-color: var(--bps-accent); box-shadow: 0 0 0 3px rgba(224, 20, 79, .15); }
.bps-filterbar__search input { flex: 1; min-width: 0; border: 0 !important; background: none !important; box-shadow: none !important; font: inherit; font-size: 1rem; color: var(--bps-ink); height: 46px; padding: 0; outline: none; }
.bps-filterbar__menus { display: flex; flex-wrap: wrap; gap: .5rem; }
.bps-count { flex: 1 0 100%; display: flex; align-items: center; gap: 1rem; margin: .2rem 0 0; color: var(--bps-muted); font-size: .95rem; }
.bps-count strong { color: var(--bps-ink); }
.bps-chip {
	display: inline-flex; align-items: center; gap: .45rem; min-height: 50px; padding: 0 1rem; border-radius: 12px;
	background: #fff; border: 1px solid var(--bps-line); color: var(--bps-ink); font: inherit; font-weight: 600; font-size: .96rem; cursor: pointer; white-space: nowrap;
}
.bps-chip:hover { border-color: var(--bps-ink); }
.bps-chip--quiet { background: transparent; border-color: transparent; }
.bps-chip .bps-icon:first-child { color: var(--bps-muted); }
.bps-dd { position: relative; }
.bps-dd.is-active > .bps-chip { background: var(--bps-ink); border-color: var(--bps-ink); color: #fff; }
.bps-dd.is-active > .bps-chip .bps-icon { color: #fff; }
.bps-dd.is-open > .bps-chip .bps-icon:last-child { transform: rotate(180deg); }
.bps-dd__panel {
	display: none; position: absolute; z-index: 30; top: calc(100% + 6px); left: 0; min-width: 250px; max-height: min(420px, 60vh); overflow: auto;
	padding: .35rem; border-radius: 14px; background: #fff; border: 1px solid var(--bps-line); box-shadow: 0 24px 50px -22px rgba(13, 27, 62, .45);
}
.bps-dd.is-open .bps-dd__panel { display: block; }
.bps-dd__panel.is-wide { min-width: 470px; }
.bps-dd.is-open .bps-dd__panel.is-wide { display: grid; grid-template-columns: 1fr 1fr; gap: 0 .25rem; }
.bps-dd__panel--right, .bps-dd__panel.is-flip { left: auto; right: 0; }
.bps-dd__opt {
	display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 1rem; padding: .65rem .8rem;
	border: 0; border-radius: 10px; background: none; color: var(--bps-ink); font: inherit; font-size: .95rem; text-align: left; cursor: pointer;
}
.bps-dd__opt:hover, .bps-dd__opt:focus-visible { background: var(--bps-paper); outline: none; }
.bps-dd__opt.is-selected { background: var(--bps-mint); font-weight: 700; }
.bps-dd__opt.is-empty { opacity: .4; cursor: default; }
.bps-dd__count { font-size: .85rem; color: var(--bps-muted); font-variant-numeric: tabular-nums; }
@media (max-width: 640px) {
	.bps-filterbar__menus { width: 100%; overflow-x: auto; flex-wrap: nowrap; padding-bottom: .25rem; }
	.bps-dd { position: static; }
	.bps-dd__panel, .bps-dd__panel.is-wide { left: var(--bps-pad); right: var(--bps-pad); min-width: 0; }
	.bps-dd.is-open .bps-dd__panel.is-wide { grid-template-columns: 1fr; }
	.bps-browse { position: relative; }
}
.bps-noresults { text-align: center; padding: 3rem 1rem; }
.bps-noresults p { font-size: 1.08rem; margin: 0 0 1rem; }
.bps-more { display: flex; flex-direction: column; align-items: center; gap: .8rem; margin-top: 2.25rem; }
.bps-more[hidden] { display: none; }
.bps-more__text { margin: 0; color: var(--bps-muted); font-size: .92rem; font-variant-numeric: tabular-nums; }
.bps-more__bar { width: 200px; height: 3px; border-radius: 3px; background: var(--bps-line); overflow: hidden; }
.bps-more__bar span { display: block; height: 100%; width: 0; background: var(--bps-accent); }

/* ------------------------------------------------------------------ */
/* Tour cards                                                          */
/* ------------------------------------------------------------------ */
.bps-grid { display: grid; gap: clamp(1.5rem, 2.4vw, 2.2rem) clamp(1rem, 2vw, 1.6rem); grid-template-columns: 1fr; }
@media (min-width: 640px) { .bps-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .bps-grid { grid-template-columns: repeat(var(--bps-cols, 3), minmax(0, 1fr)); } }
.bps-card { position: relative; display: flex; }
.bps-card[hidden] { display: none; }
.bps-card__link { display: flex; flex-direction: column; width: 100%; color: var(--bps-ink) !important; text-decoration: none !important; }
.bps-card__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 16px; background: var(--bps-mint); }
.bps-card__media img { width: 100%; height: 100% !important; object-fit: cover; display: block; }
.bps-card__type {
	position: absolute; left: .7rem; bottom: .7rem; display: inline-flex; align-items: center; gap: .35rem; max-width: calc(100% - 1.4rem);
	padding: .3rem .65rem; border-radius: 999px; background: #fff; color: var(--bps-ink); font-size: .8rem; font-weight: 600;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.bps-card__body { flex: 1; display: flex; flex-direction: column; gap: .4rem; padding: .95rem .1rem 0; }
.bps-card__facts { margin-bottom: .45rem !important; }
.bps-card__place { margin: 0; font-size: .86rem; font-weight: 500; color: var(--bps-muted); }
.bps .bps-card__title {
	font-size: 1.18rem; font-weight: 700; line-height: 1.22; letter-spacing: -.012em; margin: 0;
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.bps-card__link:hover .bps-card__title { text-decoration: underline; text-decoration-color: var(--bps-accent); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.bps-card__facts { display: flex; flex-wrap: wrap; gap: .25rem 1rem; list-style: none; margin: .1rem 0 0; padding: 0; font-size: .88rem; color: var(--bps-ink-2); }
.bps-card__facts li { display: inline-flex; align-items: center; gap: .35rem; margin: 0; }
.bps-card__facts .bps-icon { color: var(--bps-muted); }
.bps-card__foot { margin-top: auto; padding-top: .8rem; min-height: 2.9rem; display: flex; align-items: center; justify-content: space-between; gap: .75rem; border-top: 1px solid var(--bps-line); }
.bps-rating--compact { font-size: .9rem; }
.bps-card__price { margin: 0 0 0 auto; white-space: nowrap; }
.bps-card__price small { color: var(--bps-muted); font-size: .82rem; }
.bps-card__price strong { font-family: var(--bps-head-font, inherit); font-size: 1.28rem; font-weight: 700; background: linear-gradient(transparent 62%, rgba(255, 216, 61, .5) 62%); padding: 0 .1rem; }

/* ------------------------------------------------------------------ */
/* Tour page                                                          */
/* ------------------------------------------------------------------ */
/* Facts rail docked on the hero */
.bps-facts {
	display: flex; flex-wrap: wrap; align-items: stretch; background: #fff; color: var(--bps-ink); border: 1px solid var(--bps-line);
	border-radius: 20px; box-shadow: 0 26px 50px -30px rgba(13, 27, 62, .5); overflow: hidden;
}
.bps-facts__list { flex: 1 1 520px; display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); margin: 0; }
.bps-facts__item { padding: 1.1rem 1.3rem; border-right: 1px solid var(--bps-line); }
.bps-facts__item dt { display: flex; align-items: center; gap: .4rem; font-size: .84rem; color: var(--bps-muted); font-weight: 500; }
.bps-facts__item dt .bps-icon { color: var(--bps-ink-2); }
.bps-facts__item dd { margin: .3rem 0 0; font-weight: 700; font-size: 1.02rem; line-height: 1.3; }
.bps-facts__book { flex: 0 1 auto; display: flex; align-items: center; gap: 1.2rem; padding: 1rem 1.2rem; background: var(--bps-paper); }
.bps-price { display: flex; flex-direction: column; margin: 0; line-height: 1.05; }
.bps-price span { font-size: .84rem; color: var(--bps-muted); }
.bps-price strong { font-family: var(--bps-head-font, inherit); font-size: 1.9rem; font-weight: 800; letter-spacing: -.02em; }
@media (max-width: 760px) {
	.bps-hero--tour .bps-hero__dock { margin-top: -1.5rem; }
	.bps-hero--tour.has-dock .bps-hero__inner { padding-bottom: 3rem; }
	.bps-facts__item { border-right: 0; border-bottom: 1px solid var(--bps-line); padding: .85rem 1rem; }
	.bps-facts__book { flex: 1 1 100%; justify-content: space-between; }
}

/* Photo mosaic */
.bps-mosaic-wrap { margin-top: clamp(1.5rem, 3vw, 2.5rem); }
.bps-mosaic { position: relative; display: grid; gap: .6rem; grid-template-columns: repeat(4, 1fr); grid-auto-rows: clamp(120px, 15vw, 190px); }
.bps-mosaic--1 { grid-template-columns: 1fr; grid-auto-rows: clamp(200px, 30vw, 360px); }
.bps-mosaic--2 { grid-template-columns: 1fr 1fr; grid-auto-rows: clamp(160px, 22vw, 280px); }
.bps-mosaic--3 { grid-template-columns: 2fr 1fr 1fr; }
.bps-mosaic__item { position: relative; padding: 0; border: 0; border-radius: 14px; overflow: hidden; cursor: zoom-in; background: var(--bps-mint); }
.bps-mosaic__item img { width: 100%; height: 100% !important; object-fit: cover; display: block; }
.bps-mosaic--4 .bps-mosaic__item:first-child, .bps-mosaic--3 .bps-mosaic__item:first-child { grid-row: span 1; }
.bps-mosaic__all {
	position: absolute; right: .8rem; bottom: .8rem; display: inline-flex; align-items: center; gap: .45rem; min-height: 42px; padding: 0 1rem;
	border: 1px solid var(--bps-line); border-radius: 10px; background: #fff; color: var(--bps-ink); font: inherit; font-weight: 600; font-size: .92rem; cursor: pointer;
}
.bps-mosaic__all:hover { border-color: var(--bps-ink); }
@media (max-width: 640px) { .bps-mosaic, .bps-mosaic--3 { grid-template-columns: 1fr 1fr; grid-auto-rows: 120px; } .bps-mosaic--4 .bps-mosaic__item:nth-child(n+3) { display: none; } }

/* Photo strip (theme design mode) */
.bps-strip-row { display: flex; align-items: center; gap: 1rem; margin: 1.25rem auto; }
.bps-strip { flex: 1; display: flex; gap: .5rem; overflow-x: auto; scrollbar-width: thin; }
.bps-strip__item { flex: 0 0 auto; width: 220px; height: 150px; padding: 0; border: 0; border-radius: 12px; overflow: hidden; cursor: zoom-in; }
.bps-strip__item img { width: 100%; height: 100% !important; object-fit: cover; display: block; }

/* Lightbox */
html.bps-lock { overflow: hidden; }
.bps-lightbox { position: fixed; inset: 0; width: 100vw; height: 100vh; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(8, 17, 40, .97); color: #fff; overflow: hidden; }
.bps-lightbox::backdrop { background: rgba(8, 17, 40, .92); }
.bps-lightbox[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; animation: bps-lb-in .22s ease-out; }
@keyframes bps-lb-in { from { opacity: 0; } to { opacity: 1; } }
.bps-lightbox__bar { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem clamp(.9rem, 2.5vw, 1.75rem); }
.bps-lightbox__count { margin: 0; font-family: var(--bps-head-font, inherit); font-weight: 700; font-size: 1.2rem; font-variant-numeric: tabular-nums; }
.bps-lightbox__tools { display: flex; align-items: center; gap: .5rem; }
.bps .bps-lightbox__tool, .bps-lightbox__tool {
	display: inline-flex; align-items: center; gap: .45rem; height: 44px; padding: 0 1rem; border-radius: 12px; border: 1px solid rgba(255, 255, 255, .2);
	background: rgba(255, 255, 255, .08); color: #fff !important; text-decoration: none !important; font: inherit; font-weight: 600; font-size: .92rem; cursor: pointer;
}
.bps-lightbox__tool:hover { background: rgba(255, 255, 255, .18); }
.bps-lightbox__tool--round { width: 44px; padding: 0; justify-content: center; }
.bps-lightbox__tool .bps-i-pause { display: none; }
.bps-lightbox.is-playing [data-play] { background: var(--bps-accent); border-color: var(--bps-accent); }
.bps-lightbox.is-playing [data-play] .bps-i-play { display: none; }
.bps-lightbox.is-playing [data-play] .bps-i-pause { display: inline; }
.bps-lightbox__progress { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: rgba(255, 255, 255, .08); }
.bps-lightbox__progress span { display: block; width: 0; height: 100%; background: var(--bps-sun); }
@media (max-width: 560px) { .bps-lightbox__toollabel { display: none; } .bps-lightbox__tool { width: 44px; padding: 0; justify-content: center; } }
.bps-lightbox__viewport { position: relative; overflow: hidden; min-height: 0; touch-action: pan-y; cursor: grab; user-select: none; }
.bps-lightbox__viewport:active { cursor: grabbing; }
.bps-lightbox__track { display: flex; height: 100%; transition: transform .45s cubic-bezier(.22, .8, .24, 1); will-change: transform; }
.bps-lightbox__slide { flex: 0 0 100%; height: 100%; margin: 0; display: grid; place-items: center; padding: .75rem clamp(.75rem, 7vw, 6.5rem) 0; }
.bps-lightbox__slide img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto !important; object-fit: contain; border-radius: 12px; -webkit-user-drag: none; pointer-events: none; }
.bps-lightbox__arrow {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 54px; height: 54px; border-radius: 50%; border: 0;
	display: grid; place-items: center; cursor: pointer; background: #fff; color: var(--bps-ink);
}
.bps-lightbox__arrow:hover { background: var(--bps-sun); }
.bps-lightbox__arrow--prev { left: clamp(.5rem, 2vw, 1.5rem); }
.bps-lightbox__arrow--next { right: clamp(.5rem, 2vw, 1.5rem); }
@media (max-width: 700px) { .bps-lightbox__arrow { display: none; } }
.bps-lightbox__thumbs { display: flex; gap: .5rem; overflow-x: auto; padding: .9rem clamp(.9rem, 2.5vw, 1.75rem) calc(.9rem + env(safe-area-inset-bottom)); scrollbar-width: none; justify-content: safe center; }
.bps-lightbox__thumbs::-webkit-scrollbar { display: none; }
.bps-lightbox__thumb { flex: 0 0 auto; width: 84px; height: 60px; padding: 0; border: 0; border-radius: 8px; overflow: hidden; cursor: pointer; background: rgba(255, 255, 255, .06); opacity: .45; outline: 2px solid transparent; outline-offset: 2px; }
.bps-lightbox__thumb img { width: 100%; height: 100% !important; object-fit: cover; display: block; pointer-events: none; }
.bps-lightbox__thumb:hover { opacity: .8; }
.bps-lightbox__thumb.is-active { opacity: 1; outline-color: var(--bps-sun); }
@media (prefers-reduced-motion: reduce) { .bps-lightbox__track { transition: none; } .bps-lightbox[open] { animation: none; } }

/* Section menu */
.bps-secnav { position: sticky; top: var(--bps-top); z-index: 20; margin-top: clamp(1.75rem, 3.5vw, 2.75rem); background: rgba(255, 255, 255, .97); border-bottom: 1px solid var(--bps-line); }
.bps-secnav__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 62px; }
.bps-secnav ul { display: flex; gap: 1.5rem; list-style: none; margin: 0; padding: 0; overflow-x: auto; scrollbar-width: none; align-self: stretch; }
.bps-secnav ul::-webkit-scrollbar { display: none; }
.bps-secnav li { margin: 0; flex: none; display: flex; }
.bps-secnav ul a { display: flex; align-items: center; border-bottom: 2.5px solid transparent; color: var(--bps-muted) !important; text-decoration: none !important; font-weight: 600; font-size: .96rem; white-space: nowrap; }
.bps-secnav ul a:hover { color: var(--bps-ink) !important; }
.bps-secnav ul a.is-active { color: var(--bps-ink) !important; border-bottom-color: var(--bps-accent); }
.bps-secnav__cta { display: flex; align-items: center; gap: 1rem; opacity: 0; visibility: hidden; transition: opacity .2s; }
.bps-secnav.is-stuck .bps-secnav__cta { opacity: 1; visibility: visible; }
.bps-secnav__cta p { margin: 0; white-space: nowrap; }
.bps-secnav__cta span { color: var(--bps-muted); font-size: .88rem; }
.bps-secnav__cta strong { font-family: var(--bps-head-font, inherit); font-size: 1.45rem; font-weight: 800; }
@media (max-width: 999px) { .bps-secnav__cta { display: none; } }

/* Layout */
.bps-tourwrap { padding: clamp(2rem, 4vw, 3.25rem) 0 clamp(3rem, 6vw, 5rem); }
.bps-tourlayout { display: grid; gap: clamp(2rem, 4vw, 4rem); grid-template-columns: 1fr; }
@media (min-width: 1000px) { .bps-tourlayout { grid-template-columns: minmax(0, 1fr) 360px; } .bps-tourlayout__aside { position: sticky; top: calc(var(--bps-top) + 84px); align-self: start; } }
.bps-lead { font-size: 1.2rem; line-height: 1.6; margin: 0 0 2rem; }
.bps-keyfacts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; margin: 0 0 2rem; }
.bps-keyfact dt { display: flex; align-items: center; gap: .35rem; font-size: .85rem; color: var(--bps-muted); }
.bps-keyfact dd { margin: .25rem 0 0; font-weight: 700; }
.bps-block { padding: clamp(1.75rem, 3.5vw, 2.5rem) 0; border-top: 1px solid var(--bps-line); scroll-margin-top: calc(var(--bps-top) + 80px); }
.bps-block:first-child { border-top: 0; padding-top: 0; }
.bps-block > .bps-h2 { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); margin-bottom: 1.25rem; }

.bps-summary { margin: 0 0 1.5rem; padding: 1.1rem 1.25rem; border-radius: 14px; background: var(--bps-paper); font-size: 1.05rem; line-height: 1.6; }
.bps-summary strong { font-weight: 700; }
.bps-updated { margin: .6rem 0 0; font-size: .85rem; color: var(--bps-muted); }

.bps-about { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; gap: 1rem 1.5rem; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.bps-about li { display: flex; align-items: flex-start; gap: .8rem; margin: 0; }
.bps-about__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--bps-mint); color: var(--bps-ink-2); flex: none; }
.bps-about li > span:last-child { display: flex; flex-direction: column; line-height: 1.35; padding-top: .15rem; }
.bps-about strong { font-weight: 700; }
.bps-about li > span:last-child span { color: var(--bps-muted); font-size: .94rem; }
.bps-highlights { list-style: none; margin: 0 0 1.5rem; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.bps-highlights li { display: inline-flex; align-items: center; gap: .4rem; margin: 0; padding: .4rem .8rem; border-radius: 999px; background: var(--bps-sun-soft); color: var(--bps-ink); font-weight: 600; font-size: .92rem; }

.bps-prose { font-size: 1.04rem; line-height: 1.7; max-width: 70ch; }
.bps-prose > :first-child { margin-top: 0; }
.bps-prose > :last-child { margin-bottom: 0; }
.bps-prose p, .bps-prose ul, .bps-prose ol { margin: 0 0 1rem; }
.bps-prose ul, .bps-prose ol { padding-left: 1.25rem; }
.bps-prose li { margin: .3rem 0; }
.bps-prose h2, .bps-prose h3 { margin: 1.8rem 0 .7rem; line-height: 1.2; }
.bps-prose a { color: var(--bps-accent); }
.bps-prose--lead { font-size: 1.15rem; }
.bps-intro { padding: clamp(2rem, 4vw, 3rem) 0 0; }
.bps-seo { border-top: 1px solid var(--bps-line); }

/* What you'll do: a route with numbered stops */
.bps-route { list-style: none; margin: 0; padding: 0; counter-reset: stop; }
.bps-route li { position: relative; counter-increment: stop; margin: 0; padding: 0 0 1.5rem 3.25rem; }
.bps-route li::before {
	content: counter(stop); position: absolute; left: 0; top: -.1rem; width: 34px; height: 34px; border-radius: 50%;
	display: grid; place-items: center; background: #fff; border: 2px solid var(--bps-accent); color: var(--bps-accent); font-weight: 700; font-size: .92rem;
}
.bps-route li:not(:last-child)::after { content: ""; position: absolute; left: 16px; top: 38px; bottom: 2px; border-left: 2px dashed var(--bps-line); }
.bps-route h3 { font-size: 1.12rem; font-weight: 700; margin: .15rem 0 .35rem; }
.bps-route .bps-prose { font-size: 1rem; color: var(--bps-ink-2); }

.bps-inex { display: grid; gap: 1.5rem; grid-template-columns: 1fr; }
@media (min-width: 700px) { .bps-inex { grid-template-columns: 1fr 1fr; } }
.bps .bps-inex__title { display: flex; align-items: center; gap: .45rem; font-size: 1.05rem; font-weight: 700; margin: 0 0 .7rem; }
.bps-inex__col--in .bps-inex__title .bps-icon { color: #07615e; }
.bps-inex__col--out .bps-inex__title .bps-icon { color: var(--bps-muted); }
.bps-inex ul { list-style: none; margin: 0; padding: 0; }
.bps-inex li { position: relative; padding: .4rem 0 .4rem 1.25rem; border-bottom: 1px solid var(--bps-line); line-height: 1.45; }
.bps-inex li::before { content: ""; position: absolute; left: 0; top: .95rem; width: 7px; height: 7px; border-radius: 50%; background: #07615e; }
.bps-inex__col--out li::before { background: #b9c3be; }

.bps-note { display: flex; gap: 1rem; padding: 1.2rem 1.3rem; border-radius: 14px; background: var(--bps-sun-soft); }
.bps-note > .bps-icon { color: #9a6700; margin-top: .15rem; }

.bps-meeting { display: grid; gap: 0; border: 1px solid var(--bps-line); border-radius: 16px; overflow: hidden; }
.bps-meeting__map { width: 100%; height: 300px; border: 0; display: block; background: var(--bps-paper); }
.bps-meeting__card { display: flex; gap: 1rem; padding: 1.1rem 1.25rem; }
.bps-meeting__pin { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: var(--bps-mint); color: var(--bps-ink-2); flex: none; }
.bps-meeting__name { margin: 0; font-weight: 700; }
.bps-meeting__addr { margin: .2rem 0 .1rem; color: var(--bps-muted); }
.bps-meeting__geo { margin: 0 0 .5rem; font-size: .85rem; color: var(--bps-muted); font-variant-numeric: tabular-nums; }

.bps-book__head > p { color: var(--bps-muted); margin: 0 0 1.25rem; max-width: 60ch; line-height: 1.55; }
.bps-book__head > .bps-h2 { margin: 0 0 .75rem; line-height: 1.05; }
.bps-book__frame { padding: clamp(.5rem, 1.5vw, 1rem); border: 1px solid var(--bps-line); border-radius: 18px; background: #fff; min-height: 300px; }

/* FAQ (quick answers) */
.bps-faq { margin: 0; }
.bps-faq details { border-bottom: 1px solid var(--bps-line); }
.bps-faq details:first-child { border-top: 1px solid var(--bps-line); }
.bps-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem .1rem; cursor: pointer; font-weight: 700; font-size: 1.05rem; list-style: none; }
.bps-faq summary::-webkit-details-marker { display: none; }
.bps-faq summary .bps-icon { transition: transform .2s; color: var(--bps-muted); }
.bps-faq details[open] summary .bps-icon { transform: rotate(180deg); }
.bps-faq__a { padding: 0 .1rem 1.1rem; line-height: 1.65; color: var(--bps-ink-2); max-width: 70ch; }
.bps-faq__a p { margin: 0; }
.bps-faq-sec .bps-faq { max-width: 860px; }
/* FAQ + side card */
.bps-faq-layout { display: grid; gap: 2rem; }
@media (min-width: 1000px) {
	.bps-faq-layout { grid-template-columns: minmax(0, 1fr) 360px; gap: clamp(2rem, 4vw, 4rem); align-items: start; }
	.bps-faq-aside { position: sticky; top: calc(var(--bps-sticky-top, 90px) + 1rem); }
}
.bps-faq-aside__card { border: 1px solid var(--bps-line); border-radius: 20px; background: #fff; overflow: hidden; box-shadow: 0 10px 30px rgba(13, 27, 62, .06); }
.bps-faq-aside__top { position: relative; isolation: isolate; min-height: 170px; display: flex; align-items: flex-end; background: var(--bps-ink); color: #fff; }
.bps-faq-aside__top--noimg { background: radial-gradient(110% 80% at 100% 0%, var(--bps-ink-2) 0%, var(--bps-ink) 65%); min-height: 120px; }
.bps-faq-aside__top > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100% !important; object-fit: cover; }
.bps-faq-aside__top::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(13, 27, 62, 0) 30%, rgba(13, 27, 62, .85) 100%); }
.bps-faq-aside__toptext { display: flex; flex-direction: column; gap: .2rem; padding: 1.1rem 1.25rem; }
.bps-faq-aside__kicker { font-size: .82rem; font-weight: 600; color: rgba(255, 255, 255, .88); }
.bps-faq-aside__name { font-family: var(--bps-head-font, inherit); font-size: 1.45rem; line-height: 1.1; letter-spacing: -.02em; overflow-wrap: anywhere; }
.bps-faq-aside__facts { list-style: none; margin: 0; padding: 1.1rem 1.25rem .4rem; display: grid; gap: .7rem; }
.bps-faq-aside__facts li { display: flex; align-items: center; gap: .7rem; margin: 0; font-size: .97rem; color: var(--bps-ink-2); }
.bps-faq-aside__facts .bps-icon { flex: none; color: var(--bps-accent); }
.bps-faq-aside__card > .bps-btn { margin: .8rem 1.25rem 1.25rem; width: auto; }
.bps-faq-aside__help { padding: 1.1rem 1.25rem 1.25rem; background: var(--bps-paper); border-top: 1px solid var(--bps-line); }
.bps-faq-aside__card > .bps-faq-aside__help:first-child { border-top: 0; }
.bps-faq-aside__helphead { display: flex; gap: .75rem; align-items: flex-start; }
.bps-faq-aside__helphead .bps-icon { flex: none; margin-top: .1rem; color: var(--bps-accent); }
.bps-faq-aside__helphead p { margin: .2rem 0 0; font-size: .92rem; line-height: 1.5; color: var(--bps-muted); }
.bps-faq-aside__links { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .9rem; }
.bps-faq-aside__links .bps-btn { flex: 1 1 auto; }

/* Booking card */
.bps-bookcard { border: 1px solid var(--bps-line); border-radius: 20px; background: #fff; overflow: hidden; }
.bps-bookcard__top { padding: 1.3rem 1.4rem 1.1rem; border-bottom: 1px solid var(--bps-line); }
.bps-bookcard__price { display: flex; align-items: baseline; gap: .5rem; margin: 0; }
.bps-bookcard__price span { color: var(--bps-muted); }
.bps-bookcard__price strong { font-family: var(--bps-head-font, inherit); font-size: 2.3rem; font-weight: 800; letter-spacing: -.03em; line-height: 1; }
.bps-bookcard__rating { margin-top: .5rem; }
.bps-bookcard__body { padding: 1.2rem 1.4rem 1.4rem; }
.bps-bookcard__section { margin-top: 1.3rem; }
.bps-bookcard__label { margin: 0 0 .5rem; font-weight: 700; font-size: .95rem; }
.bps-bookcard__list { list-style: none; margin: 0; padding: 0; }
.bps-bookcard__list li { display: flex; gap: .55rem; margin: 0; padding: .35rem 0; font-size: .95rem; line-height: 1.4; }
.bps-bookcard__list .bps-icon { color: #07615e; margin-top: .05rem; }
.bps-bookcard__list--muted { margin-top: 1rem; padding-top: .8rem; border-top: 1px solid var(--bps-line); }
.bps-bookcard__list--muted .bps-icon { color: var(--bps-muted); }
.bps-bookcard__list--trust { margin-top: .8rem; padding-top: .8rem; border-top: 1px solid var(--bps-line); }
.bps-bookcard__more { display: inline-block; margin-top: .4rem; font-size: .92rem; }
.bps-bookcard__help { display: flex; align-items: center; gap: .8rem; margin-top: 1.1rem; padding: .85rem 1rem; border-radius: 12px; background: var(--bps-mint); color: var(--bps-ink) !important; text-decoration: none !important; }
.bps-bookcard__help span { display: flex; flex-direction: column; font-size: .92rem; }
.bps-bookcard__help .bps-icon { color: #128c4a; }

/* Share */
.bps-share { margin-top: 1.5rem; }
.bps-share--card { margin-top: 1rem; padding: 1rem 1.2rem; border: 1px solid var(--bps-line); border-radius: 16px; }
.bps-share__label { margin: 0 0 .6rem; font-weight: 600; font-size: .92rem; }
.bps-share__buttons { display: flex; flex-wrap: wrap; gap: .4rem; }
.bps-share__btn { position: relative; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; border: 1px solid var(--bps-line); background: #fff; color: var(--bps-ink) !important; cursor: pointer; }
.bps-share__btn:hover { border-color: var(--bps-ink); }
.bps-share__btn[hidden] { display: none; }
.bps-share__copied { position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%); white-space: nowrap; padding: .25rem .55rem; border-radius: 6px; background: var(--bps-ink); color: #fff; font-size: .78rem; }
.bps-share__copied[hidden] { display: none; }
@media (min-width: 1000px) { .bps-share--inline { display: none; } }

/* Mobile booking bar */
.bps-mobilebar { display: none; }
@media (max-width: 999px) {
	.bps-mobilebar {
		position: fixed; z-index: 50; left: 0; right: 0; bottom: 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem;
		padding: .7rem var(--bps-pad) calc(.7rem + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--bps-line); box-shadow: 0 -12px 30px -20px rgba(13, 27, 62, .45);
	}
	.bps-mobilebar__price { margin: 0; }
	.bps-mobilebar__price span { color: var(--bps-muted); font-size: .88rem; }
	.bps-mobilebar__price strong { font-family: var(--bps-head-font, inherit); font-size: 1.6rem; font-weight: 800; }
	body:has(.bps-mobilebar) { padding-bottom: 76px; }
	.bps-share--card { display: none; }
}

/* Tours under travel guide posts */
.bps-guidetours { margin: 3rem 0 1rem; padding-top: 2rem; border-top: 1px solid var(--bps-line); }
.bps-guidetours .bps-h2 { font-size: 1.6rem; }
@media (min-width: 640px) { .bps-guidetours .bps-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ------------------------------------------------------------------ */
/* Wishlist                                                            */
/* ------------------------------------------------------------------ */
.bps-wlhero { padding: clamp(2.5rem, 6vw, 4.5rem) 0 clamp(1.5rem, 3vw, 2.25rem); background: var(--bps-paper); }
.bps-wlhero__inner { display: grid; gap: 2rem; align-items: center; grid-template-columns: 1fr; }
@media (min-width: 900px) { .bps-wlhero__inner { grid-template-columns: 1.2fr 1fr; } }
.bps .bps-wlhero__title { font-size: clamp(2.2rem, 1.4rem + 3vw, 3.8rem); font-weight: 800; line-height: 1; margin: 0; }
.bps-wlhero__lead { font-size: 1.1rem; line-height: 1.6; color: var(--bps-ink-2); max-width: 48ch; margin: 1rem 0 0; }
.bps-wlhero__stats { display: flex; gap: 1.5rem; list-style: none; margin: 1.3rem 0 0; padding: 0; color: var(--bps-muted); }
.bps-wlhero__stats strong { color: var(--bps-ink); font-size: 1.3rem; font-family: var(--bps-head-font, inherit); }
.bps-wlhero__stack { position: relative; height: 240px; display: none; }
@media (min-width: 900px) { .bps-wlhero__stack { display: block; } }
.bps-wlhero__stack:not(.has-photos)::before { content: ""; position: absolute; inset: 20px 60px; border-radius: 20px; border: 2px dashed var(--bps-line); }
.bps-wlhero__photo { position: absolute; top: 18px; left: 50%; width: 190px; height: 210px; margin-left: -95px; border-radius: 16px; overflow: hidden; border: 6px solid #fff; background: var(--bps-mint); box-shadow: 0 24px 50px -25px rgba(13, 27, 62, .6); }
.bps-wlhero__photo img { width: 100%; height: 100% !important; object-fit: cover; display: block; }
.bps-wlhero__photo--1 { transform: rotate(-2deg); z-index: 3; }
.bps-wlhero__photo--2 { transform: translateX(-100px) rotate(-8deg) scale(.9); z-index: 2; }
.bps-wlhero__photo--3 { transform: translateX(100px) rotate(7deg) scale(.9); z-index: 1; }
.bps-wishlist { padding: clamp(1.5rem, 3vw, 2.5rem) 0 clamp(3rem, 6vw, 5rem); }
.bps-wl-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.bps-segtabs { display: inline-flex; gap: .25rem; padding: .3rem; border-radius: 14px; background: var(--bps-paper); }
.bps-tab { display: inline-flex; align-items: center; gap: .45rem; min-height: 44px; padding: 0 1rem; border: 0; border-radius: 10px; background: none; color: var(--bps-muted); font: inherit; font-weight: 600; cursor: pointer; }
.bps-tab.is-active { background: #fff; color: var(--bps-ink); box-shadow: 0 1px 2px rgba(13, 27, 62, .12); }
.bps-tab__count { min-width: 24px; padding: 0 .4rem; border-radius: 999px; background: var(--bps-mint); font-size: .8rem; }
.bps-wl-toolbar__actions { display: flex; gap: .5rem; }
.bps-wl-toolbar__actions[hidden] { display: none; }
.bps-wl-action { position: relative; display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; padding: 0 1rem; border-radius: 12px; border: 1px solid var(--bps-line); background: #fff; color: var(--bps-ink); font: inherit; font-weight: 600; cursor: pointer; }
.bps-wl-action--muted { color: var(--bps-muted); }
.bps-wishlist__results.is-loading { opacity: .5; }
.bps-wl-empty { text-align: center; padding: 3rem 1rem; }
.bps-wl-empty__icon { display: inline-grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--bps-mint); color: var(--bps-ink-2); }
.bps .bps-wl-empty__title { font-size: 1.6rem; margin: 1rem 0 .4rem; }
.bps-wl-empty p { color: var(--bps-muted); max-width: 46ch; margin: 0 auto 1.4rem; }
.bps-wl-empty__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; }
.bps-wl-shared { margin-bottom: 2.5rem; padding: 1.5rem; border-radius: 18px; background: var(--bps-sun-soft); }
.bps-wl-shared__head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.bps-wl-shared__head p { margin: 0; color: var(--bps-ink-2); }
.bps-wishlist__note { margin-top: 2.5rem; font-size: .9rem; color: var(--bps-muted); }

/* ------------------------------------------------------------------ */
/* Thank-you page                                                      */
/* ------------------------------------------------------------------ */
.bps-ty { padding: clamp(2.5rem, 6vw, 5rem) 0; background: var(--bps-paper); }
.bps-ty__grid { display: grid; gap: clamp(2rem, 5vw, 4rem); align-items: center; grid-template-columns: 1fr; }
@media (min-width: 900px) { .bps-ty__grid { grid-template-columns: 1fr 460px; } }
.bps .bps-ty__title { font-size: clamp(2.6rem, 1.6rem + 4vw, 5rem); font-weight: 800; line-height: .95; letter-spacing: -.04em; margin: 0; }
.bps-ty__lead { font-size: 1.15rem; line-height: 1.6; max-width: 44ch; margin: 1.1rem 0 1.6rem; color: var(--bps-ink-2); }
.bps-ty__actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.bps-pass { position: relative; border-radius: 22px; background: #fff; border: 1px solid var(--bps-line); overflow: visible; }
.bps-pass__photo { height: 170px; border-radius: 22px 22px 0 0; overflow: hidden; }
.bps-pass__photo img { width: 100%; height: 100% !important; object-fit: cover; display: block; }
.bps-pass__body { padding: 1.4rem 1.5rem 1.5rem; }
.bps-pass__status { display: inline-flex; align-items: center; gap: .45rem; margin: 0 0 1rem; padding: .25rem .7rem; border-radius: 999px; background: #e0f5f4; color: #07615e; font-weight: 700; font-size: .88rem; }
.bps-pass__status span { width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.bps-pass__label { margin: 0 0 .3rem; font-size: .85rem; color: var(--bps-muted); }
.bps-pass__code { display: flex; align-items: center; gap: .5rem; }
.bps-pass__code strong { font-family: var(--bps-head-font, inherit); font-size: 1.8rem; font-weight: 800; letter-spacing: .02em; }
.bps-pass__copy { position: relative; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; border: 1px solid var(--bps-line); background: #fff; cursor: pointer; color: var(--bps-ink); }
.bps-pass__copy [data-copied] { position: absolute; bottom: calc(100% + 6px); white-space: nowrap; padding: .2rem .5rem; border-radius: 6px; background: var(--bps-ink); color: #fff; font-size: .75rem; }
.bps-pass__code-fallback { margin: 0; font-weight: 700; }
.bps-pass__rows { margin: 1.2rem 0 0; border-top: 1px dashed var(--bps-line); }
.bps-pass__rows div { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px dashed var(--bps-line); font-size: .95rem; }
.bps-pass__rows dt { color: var(--bps-muted); }
.bps-pass__rows dd { margin: 0; font-weight: 600; text-align: right; }
.bps-pass__help { margin-top: 1.2rem; }
.bps-pass__help ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem 1rem; }
.bps-pass__help a { display: inline-flex; align-items: center; gap: .35rem; color: var(--bps-accent) !important; font-weight: 600; }
/* The stamp: the page's one moment of motion */
.bps-stamp { position: absolute; z-index: 2; top: 110px; right: -18px; width: 120px; height: 120px; color: #b06a00; transform: rotate(-14deg); animation: bps-stamp .55s cubic-bezier(.2, 1.4, .4, 1) .25s both; }
.bps-stamp svg { width: 100%; height: 100%; overflow: visible; }
.bps-stamp circle { fill: rgba(255, 247, 209, .92); stroke: currentColor; stroke-width: 2.5; }
.bps-stamp circle + circle { fill: none; stroke-width: 1.5; stroke-dasharray: 3 3; }
.bps-stamp text { fill: currentColor; font: 700 9.5px/1 var(--bps-body-font, sans-serif); letter-spacing: .08em; }
.bps-stamp > span { position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--bps-head-font, inherit); font-weight: 800; font-size: 1.15rem; }
@keyframes bps-stamp { 0% { opacity: 0; transform: scale(2.2) rotate(-2deg); } 100% { opacity: 1; transform: scale(1) rotate(-14deg); } }
@media (prefers-reduced-motion: reduce) { .bps-stamp { animation: none; } }
@media (max-width: 560px) { .bps-stamp { width: 96px; height: 96px; right: -6px; top: 120px; } }
.bps-ty-steps { list-style: none; margin: 1.75rem 0 0; padding: 0; display: grid; gap: 1.5rem; grid-template-columns: 1fr; counter-reset: step; }
@media (min-width: 800px) { .bps-ty-steps { grid-template-columns: repeat(3, 1fr); } }
.bps-ty-steps li { counter-increment: step; margin: 0; padding-top: 1rem; border-top: 2px solid var(--bps-ink); }
.bps-ty-steps li::before { content: counter(step); display: block; font-family: var(--bps-head-font, inherit); font-weight: 800; font-size: 2rem; color: var(--bps-accent); line-height: 1; margin-bottom: .6rem; }
.bps-ty-steps h3 { font-size: 1.2rem; margin: 0 0 .35rem; }
.bps-ty-steps p { margin: 0; color: var(--bps-muted); line-height: 1.55; }
.bps-summary p { margin: 0; }
.bps-summary p + p { margin-top: .5rem; }
.bps-prose--lead .bps-summary { font-size: 1.05rem; }
/* Headings that are styled like text (tile names, type names) */
.bps h3.bps-place__name { margin: 0; color: #fff; }
.bps h3.bps-types__name { margin: 0; font-family: var(--bps-body-font, inherit); font-size: 1.02rem; font-weight: 600; letter-spacing: 0; line-height: 1.3; }
.bps-bydest { padding-top: 0; }

/* Search suggestions dropdown */
.bps-search, .wave-hsearch { position: relative; }
.bps-search input::-webkit-search-cancel-button { cursor: pointer; }
.bps-suggest {
	position: absolute; z-index: 80; top: calc(100% + 8px); left: 0; right: 0; max-height: min(460px, 62vh); overflow-y: auto;
	margin: 0; padding: .4rem; list-style: none; text-align: left;
	background: #fff; border: 1px solid var(--bps-line, #d9e2ee); border-radius: 16px;
	box-shadow: 0 30px 60px -28px rgba(13, 27, 62, .55); color: var(--bps-ink, #0d1b3e);
	font-family: var(--bps-body-font, inherit); font-size: .98rem; line-height: 1.3;
}
.bps-suggest[hidden] { display: none; }
.wave-hsearch .bps-suggest { left: auto; right: 0; width: min(440px, 92vw); }
.bps-suggest__head { padding: .7rem .7rem .3rem; font-size: .78rem; font-weight: 700; color: var(--bps-muted, #56627a); letter-spacing: .02em; }
.bps-suggest__item { display: flex; align-items: center; gap: .8rem; margin: 0; padding: .55rem .7rem; border-radius: 11px; cursor: pointer; }
.bps-suggest__item.is-active { background: var(--bps-paper, #eef3f8); }
.bps-suggest__icon { display: grid; place-items: center; width: 40px; height: 40px; flex: none; border-radius: 10px; background: var(--bps-mint, #e0f5f4); color: var(--bps-ink-2, #1a2c5b); overflow: hidden; }
.bps-suggest__icon img { width: 100%; height: 100% !important; object-fit: cover; display: block; }
.bps-suggest__flag { font-size: 1.35rem; line-height: 1; }
.bps-suggest__text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .1rem; }
.bps-suggest__name { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bps-suggest__icon--tours + .bps-suggest__text .bps-suggest__name { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.bps-suggest__name mark { background: none; color: inherit; font-weight: 800; text-decoration: underline; text-decoration-color: var(--bps-sun, #ffd83d); text-decoration-thickness: 3px; text-underline-offset: 2px; }
.bps-suggest__sub { font-size: .85rem; color: var(--bps-muted, #56627a); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bps-suggest__price { flex: none; font-size: .82rem; color: var(--bps-muted, #56627a); white-space: nowrap; }
.bps-suggest__price strong { color: var(--bps-ink, #0d1b3e); font-size: .95rem; }
.bps-suggest__count { flex: none; min-width: 28px; padding: .15rem .5rem; border-radius: 999px; background: var(--bps-mint, #e0f5f4); font-size: .8rem; font-weight: 700; text-align: center; }
.bps-suggest__none { padding: .9rem .8rem; color: var(--bps-muted, #56627a); }
@media (max-width: 560px) { .bps-suggest__price { display: none; } }

/* One focus ring per search box: the rounded box shows it, the text field inside doesn't. */
.bps .bps-filterbar__search input:focus, .bps .bps-filterbar__search input:focus-visible,
.bps-search input:focus, .bps-search input:focus-visible,
.wave-hsearch input:focus, .wave-hsearch input:focus-visible { outline: none !important; box-shadow: none !important; }
.bps-filterbar__search:focus-within { border-color: var(--bps-accent); box-shadow: 0 0 0 3px rgba(224, 20, 79, .15); }
/* "4 tours  Clear filters" */
.bps-count { gap: .3rem; }
.bps-count__reset { margin-left: .9rem; }

/* Filter-bar search holds a suggestion dropdown */
.bps-filterbar__search { position: relative; }

/* Homepage collage: one photo per country */
.bps-collage { display: grid; gap: 3px; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 1fr; background: var(--bps-ink); }
.bps-collage--6 { grid-template-columns: repeat(3, 1fr); }
.bps-collage--4 { grid-template-columns: repeat(2, 1fr); }
.bps-collage__tile { margin: 0; overflow: hidden; min-height: 0; }
.bps-collage__tile img { width: 100%; height: 100% !important; object-fit: cover; display: block; }
.bps-collage--8 .bps-collage__tile:nth-child(1) { grid-row: span 2; }
.bps-collage--8 .bps-collage__tile:nth-child(8) { display: none; }
.bps-collage--8 { grid-template-rows: repeat(2, 1fr); }
@media (max-width: 700px) {
	.bps-collage, .bps-collage--6, .bps-collage--8 { grid-template-columns: repeat(2, 1fr); grid-template-rows: none; }
	.bps-collage--8 .bps-collage__tile:nth-child(1) { grid-row: auto; }
	.bps-collage__tile:nth-child(n+5) { display: none; }
}
/* Darker on the left so the headline stays readable over any photos */
.bps-hero.has-collage .bps-hero__frame::before {
	background:
		linear-gradient(90deg, rgba(13, 27, 62, .88) 0%, rgba(13, 27, 62, .62) 38%, rgba(13, 27, 62, .12) 75%, rgba(13, 27, 62, .05) 100%),
		linear-gradient(180deg, rgba(13, 27, 62, .35) 0%, rgba(13, 27, 62, 0) 30%, rgba(13, 27, 62, .55) 100%);
}
@media (max-width: 700px) { .bps-hero.has-collage .bps-hero__frame::before { background: linear-gradient(180deg, rgba(13, 27, 62, .45) 0%, rgba(13, 27, 62, .7) 60%, rgba(13, 27, 62, .92) 100%); } }

/* Stronger overlay on hero photos: dark behind the text on the left, top and bottom edges */
.bps-hero .bps-hero__frame::before {
	background:
		linear-gradient(90deg, rgba(13, 27, 62, .74) 0%, rgba(13, 27, 62, .5) 38%, rgba(13, 27, 62, .14) 72%, rgba(13, 27, 62, .04) 100%),
		linear-gradient(180deg, rgba(13, 27, 62, .45) 0%, rgba(13, 27, 62, .06) 26%, rgba(13, 27, 62, .2) 58%, rgba(13, 27, 62, .82) 100%);
}
@media (max-width: 760px) {
	.bps-hero .bps-hero__frame::before { background: linear-gradient(180deg, rgba(13, 27, 62, .5) 0%, rgba(13, 27, 62, .45) 40%, rgba(13, 27, 62, .88) 100%); }
}
.bps-hero__title, .bps-hero__sub, .bps-crumbs, .bps-coords, .bps-hero__row .bps-rating { text-shadow: 0 2px 16px rgba(8, 17, 40, .45), 0 1px 3px rgba(8, 17, 40, .35); }
.bps-hero__sub { color: #fff; font-weight: 500; }
.bps-crumbs a, .bps-crumbs [aria-current] { opacity: 1; }
.bps-crumbs [aria-current] { color: rgba(255, 255, 255, .85); }
.bps-hero__country, .bps .bps-hero__type { background: rgba(13, 27, 62, .45); }
/* No leftover focus ring on filter buttons after a mouse click */
.bps-chip:focus:not(:focus-visible) { outline: none; }
.bps-combos { padding-top: clamp(2rem, 4vw, 3rem); }
.bps-combos + .bps-alt { margin-top: 0; }

/* Why book this tour (original text written for this site) */
.bps-why { margin: 0 0 1.75rem; padding: 1.2rem 1.35rem; border-left: 3px solid var(--bps-sun); background: #fffbf0; border-radius: 0 14px 14px 0; }
.bps .bps-why__title { font-size: 1.15rem; font-weight: 700; margin: 0 0 .5rem; }
.bps-why .bps-prose { font-size: 1.02rem; }
.bps-why .bps-prose ul { margin-bottom: 0; }

/* Intro under the hero: left-aligned with the page, readable width, real spacing */
.bps-intro { padding: clamp(2.25rem, 4.5vw, 3.5rem) 0; }
.bps-intro__text { max-width: 760px; }
.bps-intro + .bps-alt { padding-top: clamp(2.5rem, 5vw, 4rem); }
/* The one-sentence answer under "Things to do in …" */
.bps-sechead__intro.bps-answer { max-width: 70ch; margin-top: .75rem; font-size: 1.05rem; line-height: 1.6; color: var(--bps-ink-2); }

/* Tours come straight after the hero: a little air below the docked search bar */
.bps-hero.has-dock { padding-bottom: clamp(1.75rem, 3.5vw, 2.75rem); }
.bps-hero.has-dock + .bps-alt, .bps-hero + .bps-alt { padding-top: clamp(2.25rem, 4.5vw, 3.5rem); }
.bps-intro .bps-answer { font-weight: 600; color: var(--bps-ink); }

/* About <place>: heading + fact tiles | intro */
.bps-placeabout { background: #fff; }
.bps-placeabout__grid { display: grid; gap: clamp(1.75rem, 4vw, 4rem); grid-template-columns: 1fr; align-items: start; }
@media (min-width: 960px) { .bps-placeabout__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } }
.bps-placeabout__head .bps-h2 { margin-bottom: 1.4rem; }
.bps-placefacts { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bps-placefacts li { display: flex; flex-direction: column; gap: .15rem; margin: 0; padding: 1rem 1.05rem; border-radius: 16px; background: var(--bps-paper); }
.bps-placefacts__icon { display: grid; place-items: center; width: 38px; height: 38px; margin-bottom: .45rem; border-radius: 11px; background: #fff; color: var(--bps-ink-2); }
.bps-placefacts strong { font-family: var(--bps-head-font, inherit); font-size: 1.3rem; font-weight: 700; letter-spacing: -.015em; line-height: 1.15; overflow-wrap: anywhere; }
.bps-placefacts span:last-child { color: var(--bps-muted); font-size: .9rem; }
.bps-placeabout__text { max-width: 68ch; }
.bps-placeabout__text .bps-answer { font-weight: 600; color: var(--bps-ink); padding-bottom: 1rem; margin-bottom: 1.1rem; border-bottom: 1px solid var(--bps-line); }
@media (max-width: 560px) { .bps-placefacts strong { font-size: 1.1rem; } }

/* Guide: contents | text */
.bps-guide { border-top: 1px solid var(--bps-line); }
.bps-guide__grid { display: grid; gap: clamp(1.5rem, 4vw, 4rem); grid-template-columns: 1fr; }
.bps-guide:not(.has-toc) .bps-guide__grid { max-width: calc(760px + 2 * var(--bps-pad)); }
@media (min-width: 960px) { .bps-guide.has-toc .bps-guide__grid { grid-template-columns: minmax(220px, 3fr) minmax(0, 8fr); } }
.bps-guide__toc { align-self: start; padding: 1.2rem 1.25rem; border-radius: 16px; background: var(--bps-paper); }
@media (min-width: 960px) { .bps-guide__toc { position: sticky; top: calc(var(--bps-top) + 24px); } }
.bps-guide__label { margin: 0 0 .7rem; font-family: var(--bps-head-font, inherit); font-weight: 700; font-size: 1.05rem; line-height: 1.25; }
.bps-guide__toc ol { margin: 0; padding: 0; list-style: none; counter-reset: toc; }
.bps-guide__toc li { counter-increment: toc; margin: 0; border-top: 1px solid var(--bps-line); }
.bps-guide__toc a { display: flex; gap: .6rem; padding: .55rem 0; color: var(--bps-ink) !important; text-decoration: none !important; font-size: .95rem; line-height: 1.35; }
.bps-guide__toc a::before { content: counter(toc, decimal-leading-zero); color: var(--bps-muted); font-variant-numeric: tabular-nums; font-size: .85rem; padding-top: .1rem; }
.bps-guide__toc a:hover { color: var(--bps-accent) !important; }
.bps-guide__text { max-width: 72ch; }
.bps-guide__text h2 { font-size: clamp(1.4rem, 1.15rem + .9vw, 1.85rem); margin: 2.4rem 0 .8rem; scroll-margin-top: calc(var(--bps-top) + 90px); }
.bps-guide__text > h2:first-child { margin-top: 0; }
.bps-guide__text ul li::marker { color: var(--bps-accent); }

/* Contact form */
.bps-contact { margin: 1.5rem 0; max-width: 680px; }
.bps-contact__form p { margin: 0 0 1rem; }
.bps-contact__form label { display: block; margin-bottom: .35rem; font-weight: 600; font-size: .95rem; }
.bps-contact__form input[type="text"], .bps-contact__form input[type="email"], .bps-contact__form textarea {
	width: 100%; padding: .75rem .9rem; border: 1px solid var(--bps-line); border-radius: 12px; font: inherit; font-size: 1rem; background: #fff; color: var(--bps-ink);
}
.bps-contact__form input:focus, .bps-contact__form textarea:focus { outline: none; border-color: var(--bps-accent); box-shadow: 0 0 0 3px rgba(224, 20, 79, .15); }
.bps-contact__row { display: grid; gap: 0 1rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .bps-contact__row { grid-template-columns: 1fr 1fr; } }
.bps-contact__hp { position: absolute !important; left: -9999px; }
.bps-contact__ok, .bps-contact__err { padding: .9rem 1.1rem; border-radius: 12px; font-weight: 600; }
.bps-contact__ok { background: #e0f5f4; color: #07615e; }
.bps-contact__err { background: #fdeceb; color: #8a2a22; }

/* ==========================================================================
   Site pages: About, Contact, legal
   ========================================================================== */
.bps-sitepage .bps-hero--compact .bps-hero__frame { min-height: clamp(300px, 42vh, 440px); }
.bps-sitepage--legal .bps-hero__sub { font-size: 1rem; opacity: .9; }

/* Legal: sidebar + numbered sections */
.bps-legal__grid { display: grid; gap: clamp(1.75rem, 4vw, 4rem); grid-template-columns: 1fr; align-items: start; }
@media (min-width: 980px) { .bps-legal__grid { grid-template-columns: 290px minmax(0, 1fr); } .bps-legal__side { position: sticky; top: calc(var(--bps-top) + 24px); } }
.bps-legal__side { display: grid; gap: 1rem; }
.bps-legal__label { display: flex; justify-content: space-between; gap: 1rem; margin: 0 0 .7rem; font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--bps-muted); }
.bps-legal__label span { text-transform: none; letter-spacing: 0; font-weight: 500; }
.bps-legal__nav { padding: 1.2rem; border: 1px solid var(--bps-line); border-radius: 18px; background: #fff; }
.bps-legal__nav ul { list-style: none; margin: 0; padding: 0; }
.bps-legal__nav li { margin: 0; }
.bps-legal__nav a { display: block; padding: .55rem .75rem; border-radius: 10px; color: var(--bps-ink) !important; text-decoration: none !important; font-weight: 500; }
.bps-legal__nav a:hover { background: var(--bps-paper); }
.bps-legal__nav a.is-current { background: var(--bps-ink); color: #fff !important; font-weight: 600; }
.bps-legal__help { display: grid; gap: .6rem; padding: 1.3rem; border-radius: 18px; background: var(--bps-mint); }
.bps-legal__help p { margin: 0; color: var(--bps-ink-2); font-size: .95rem; line-height: 1.5; }
.bps-legal__help .bps-legal__helptitle { font-family: var(--bps-head-font, inherit); font-weight: 700; font-size: 1.15rem; color: var(--bps-ink); }
.bps-legal__helpicon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: #fff; color: var(--bps-ink-2); }
.bps-legal__help .bps-textlink { font-size: .92rem; word-break: break-all; }
.bps-legal__body { min-width: 0; max-width: 800px; }
.bps-legal__toc { margin-bottom: 2.25rem; padding: 1.3rem 1.4rem; border-radius: 18px; background: var(--bps-paper); }
.bps-legal__toc ol { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; counter-reset: ltoc; }
.bps-legal__toc li { counter-increment: ltoc; margin: 0; }
.bps-legal__toc a { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .85rem; border-radius: 999px; background: #fff; border: 1px solid var(--bps-line); color: var(--bps-ink) !important; text-decoration: none !important; font-size: .9rem; font-weight: 500; }
.bps-legal__toc a::before { content: counter(ltoc); display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--bps-mint); font-size: .72rem; font-weight: 700; }
.bps-legal__toc a:hover { border-color: var(--bps-ink); }
.bps-legal__content { font-size: 1.04rem; line-height: 1.75; max-width: none; }
.bps-legal__content > p:first-child { font-size: 1.12rem; color: var(--bps-ink-2); }
.bps-legal__content.is-numbered { counter-reset: lsec; }
.bps-legal__content h2 { position: relative; margin: 2.6rem 0 .9rem; padding-top: 2.1rem; border-top: 1px solid var(--bps-line); font-size: clamp(1.3rem, 1.1rem + .7vw, 1.65rem); scroll-margin-top: calc(var(--bps-top) + 100px); }
.bps-legal__content h2:first-child { margin-top: 0; }
.bps-legal__content.is-numbered h2 { counter-increment: lsec; padding-left: 3.1rem; }
.bps-legal__content.is-numbered h2::before { content: counter(lsec); position: absolute; left: 0; top: 1.95rem; display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 10px; background: var(--bps-ink); color: #fff; font-size: 1rem; font-weight: 700; }
.bps-legal__content ul { list-style: none; padding-left: 0; }
.bps-legal__content ul li { position: relative; padding-left: 1.6rem; margin: .55rem 0; }
.bps-legal__content ul li::before { content: ""; position: absolute; left: .2rem; top: .7em; width: 8px; height: 8px; border-radius: 50%; background: var(--bps-accent); }
.bps-legal__content strong { color: var(--bps-ink); }
.bps-legal__content .wave-btn, .bps-legal__content button[data-wave-consent-open] { display: inline-flex; margin-left: .3rem; padding: .35rem .9rem; border-radius: 999px; border: 1.5px solid var(--bps-ink); background: #fff; color: var(--bps-ink); font: inherit; font-weight: 600; font-size: .92rem; cursor: pointer; }

/* About */
.bps-about-story__text > p:first-child { font-size: 1.22rem; color: var(--bps-ink); }
.bps-about-figures { align-self: center; }
.bps-about-figures strong { font-size: 1.8rem; }
.bps-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: 1fr; counter-reset: step; }
@media (min-width: 820px) { .bps-steps { grid-template-columns: repeat(3, 1fr); } }
.bps-steps li { counter-increment: step; position: relative; margin: 0; padding: 1.6rem 1.5rem 1.5rem; border-radius: 20px; background: #fff; border: 1px solid var(--bps-line); }
.bps-steps li::after { content: counter(step, decimal-leading-zero); position: absolute; top: 1.2rem; right: 1.4rem; font-family: var(--bps-head-font, inherit); font-weight: 800; font-size: 2.2rem; line-height: 1; color: var(--bps-mint); }
.bps-steps__icon { display: grid; place-items: center; width: 50px; height: 50px; margin-bottom: 1.1rem; border-radius: 14px; background: var(--bps-ink); color: #fff; }
.bps .bps-steps h3 { font-size: 1.2rem; margin: 0 0 .4rem; }
.bps-steps p { margin: 0; color: var(--bps-muted); line-height: 1.55; }
.bps-why-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.5rem 2rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .bps-why-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .bps-why-grid { grid-template-columns: repeat(4, 1fr); } }
.bps-why-grid li { margin: 0; padding-top: 1.1rem; border-top: 2px solid var(--bps-ink); }
.bps-why-grid li > span { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: .9rem; border-radius: 12px; background: var(--bps-mint); color: var(--bps-ink-2); }
.bps .bps-why-grid h3 { font-size: 1.12rem; margin: 0 0 .35rem; }
.bps-why-grid p { margin: 0; color: var(--bps-muted); line-height: 1.55; }
.bps-cta-band { padding-top: 0; }
.bps-cta-band__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem 3rem; padding: clamp(1.75rem, 4vw, 3rem); border-radius: 24px; background: var(--bps-ink); color: #fff; }
.bps-cta-band__inner p { margin: .5rem 0 0; color: #c9d9d2; font-size: 1.08rem; }
.bps-cta-band .bps-h2 { color: #fff; }
.bps-cta-band__actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.bps-cta-band .bps-btn--ghost { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .55); }
.bps-cta-band .bps-btn--ghost:hover { background: #fff; color: var(--bps-ink); }

/* Contact */
.bps-contactpage__grid { display: grid; gap: clamp(1.75rem, 4vw, 4rem); grid-template-columns: 1fr; align-items: start; }
@media (min-width: 980px) { .bps-contactpage__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); } }
.bps-contactpage__info .bps-h2 { margin-bottom: 1rem; }
.bps-contactpage__info .bps-prose { margin-bottom: 1.5rem; color: var(--bps-ink-2); }
.bps-ways { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; gap: .7rem; }
.bps-ways li { margin: 0; }
.bps-ways a { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.1rem; border-radius: 16px; border: 1px solid var(--bps-line); background: #fff; color: var(--bps-ink) !important; text-decoration: none !important; transition: border-color .15s; }
.bps-ways a:hover { border-color: var(--bps-ink); }
.bps-ways a > span:nth-child(2) { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.bps-ways small { color: var(--bps-muted); font-size: .85rem; }
.bps-ways strong { font-size: 1.05rem; overflow: hidden; text-overflow: ellipsis; }
.bps-ways__icon { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 13px; background: var(--bps-mint); color: var(--bps-ink-2); flex: none; }
.bps-ways a > .bps-icon:last-child { color: var(--bps-muted); }
.bps-contactpage__meta { margin: 0 0 1.5rem; display: grid; gap: .9rem; }
.bps-contactpage__meta dt { font-size: .85rem; color: var(--bps-muted); }
.bps-contactpage__meta dd { margin: .15rem 0 0; font-weight: 600; }
.bps-contactpage__note { display: flex; gap: .8rem; padding: 1rem 1.1rem; border-radius: 14px; background: var(--bps-sun-soft); }
.bps-contactpage__note p { margin: 0; line-height: 1.5; }
.bps-contactpage__note .bps-textlink { display: inline-block; margin-top: .3rem; }
.bps-contactpage__form { padding: clamp(1.5rem, 3vw, 2.25rem); border-radius: 24px; background: #fff; border: 1px solid var(--bps-line); box-shadow: 0 30px 60px -40px rgba(13, 27, 62, .45); }
.bps-contactpage__form .bps-h3 { margin-bottom: 1.2rem; }
.bps-contactpage__form .bps-contact { margin: 0; max-width: none; }
.bps-contactpage__form .bps-btn { width: 100%; }

/* Customer reviews */
.bps-reviews__summary { display: grid; gap: 1.25rem 2rem; grid-template-columns: 1fr; align-items: center; margin-bottom: 1.75rem; padding: 1.4rem 1.5rem; border-radius: 18px; background: var(--bps-paper); }
@media (min-width: 700px) { .bps-reviews__summary { grid-template-columns: auto 1fr; } }
.bps-reviews__score { display: flex; flex-direction: column; gap: .3rem; }
.bps-reviews__score strong { font-family: var(--bps-head-font, inherit); font-size: 3rem; font-weight: 800; line-height: 1; }
.bps-reviews__score span { color: var(--bps-muted); font-size: .9rem; }
.bps-reviews__bars { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.bps-reviews__bars li { display: grid; grid-template-columns: 2.2rem 1fr 2rem; gap: .6rem; align-items: center; margin: 0; font-size: .9rem; font-variant-numeric: tabular-nums; }
.bps-reviews__bar { height: 8px; border-radius: 8px; background: #fff; overflow: hidden; }
.bps-reviews__bar span { display: block; height: 100%; border-radius: 8px; background: var(--bps-sun); }
.bps-reviews__list { list-style: none; margin: 0 0 1.5rem; padding: 0; }
.bps-review { margin: 0; padding: 1.3rem 0; border-top: 1px solid var(--bps-line); }
.bps-review__head { display: flex; gap: .85rem; align-items: center; }
.bps-review__avatar { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--bps-mint); color: var(--bps-ink-2); font-weight: 700; flex: none; }
.bps-review__name { margin: 0; font-weight: 700; }
.bps-review__name span { font-weight: 400; color: var(--bps-muted); }
.bps-review__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .8rem; margin: .2rem 0 0; font-size: .86rem; color: var(--bps-muted); }
.bps-review__verified { display: inline-flex; align-items: center; gap: .25rem; color: #07615e; font-weight: 600; }
.bps .bps-review__title { font-size: 1.08rem; margin: .9rem 0 .3rem; }
.bps-review__text { line-height: 1.65; color: var(--bps-ink-2); }
.bps-review__text p { margin: 0 0 .6rem; }
.bps-reviews__none { color: var(--bps-muted); }
.bps-reviewform > summary { list-style: none; display: inline-flex; cursor: pointer; }
.bps-reviewform > summary::-webkit-details-marker { display: none; }
.bps-reviewform[open] > summary { margin-bottom: 1.25rem; }
.bps-reviewform .bps-contact__form { padding: 1.4rem 1.5rem; border: 1px solid var(--bps-line); border-radius: 18px; background: #fff; }
.bps-rate { border: 0; margin: 0 0 1rem; padding: 0; }
.bps-rate legend { font-weight: 600; font-size: .95rem; margin-bottom: .35rem; padding: 0; }
.bps-rate__stars { display: inline-flex; flex-direction: row-reverse; gap: .15rem; }
.bps-rate__stars input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.bps-rate__stars label { font-size: 2.1rem; line-height: 1; color: var(--bps-line); cursor: pointer; transition: color .1s; }
.bps-rate__stars label:hover, .bps-rate__stars label:hover ~ label, .bps-rate__stars input:checked ~ label { color: var(--bps-sun); }
.bps-rate__stars input:focus-visible + label { outline: 2px solid var(--bps-accent); outline-offset: 2px; border-radius: 4px; }

/* Leave a review page */
.bps-reviewpage__card { max-width: 760px; margin: 0 auto; padding: clamp(1.75rem, 4vw, 3rem); border-radius: 24px; background: #fff; border: 1px solid var(--bps-line); box-shadow: 0 30px 60px -40px rgba(13, 27, 62, .45); text-align: center; }
.bps-reviewpage__stars { display: block; margin-bottom: 1rem; color: var(--bps-sun); font-size: 2rem; letter-spacing: .2rem; }
.bps-finder { margin-top: 1.5rem; text-align: left; }
.bps-finder__label { display: block; margin-bottom: .5rem; font-weight: 700; }
.bps-finder__row { display: flex; flex-wrap: wrap; gap: .6rem; }
.bps-finder__select { flex: 1 1 320px; min-height: 56px; padding: 0 1rem; border: 1px solid var(--bps-line); border-radius: 12px; font: inherit; font-size: 1rem; background: #fff; color: var(--bps-ink); }
.bps-finder__note { margin: .9rem 0 0; color: var(--bps-muted); font-size: .92rem; }

/* ==========================================================================
   Party skin: condensed uppercase headings, wristband-yellow prices,
   lagoon icons and the "on board" tiles from Boat Party Sync 1.x.
   ========================================================================== */
.bps h1, .bps h2, .bps h3,
.bps .bps-h2, .bps .bps-hero__title, .bps-place__name, .bps .bps-ty__title, .bps-faq-aside__name,
.bps-placefacts strong, .bps-bookcard__price strong, .bps-price strong {
	text-transform: uppercase; letter-spacing: .005em;
}
.bps .bps-h2 { font-weight: 800; line-height: .98; }
.bps .bps-hero__title { font-weight: 900; line-height: .9; }
.bps-place__name { font-weight: 900; line-height: .92; }
.bps .bps-card__title { text-transform: none; letter-spacing: -.005em; font-family: var(--bps-body-font, inherit); }
.bps .bps-h3 { text-transform: uppercase; font-weight: 800; letter-spacing: .01em; }
.bps-place__country { color: var(--bps-lagoon); }
.bps-place--country .bps-place__country { color: var(--bps-sun); }

/* Prices: yellow wristband tag */
.bps-card__price strong { background: var(--bps-sun); color: var(--bps-ink); padding: .12rem .5rem .08rem; border-radius: 7px; display: inline-block; transform: rotate(-2deg); }
.bps-bookcard__price strong, .bps-price strong { color: var(--bps-ink); }

/* Party type chip on cards */
.bps-card__type { background: var(--bps-ink); color: #fff; }
.bps-card__type .bps-icon { color: var(--bps-lagoon); }
.bps-card__facts .bps-icon { color: var(--bps-lagoon-ink); }

/* What's on board: big tiles on the party page */
.bps-highlights.bps-onboard { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: .75rem; margin: 0 0 1.75rem; }
.bps-highlights.bps-onboard li {
	display: flex; flex-direction: column; align-items: flex-start; gap: .7rem; padding: 1rem; border-radius: 16px;
	background: var(--bps-ink); color: #fff; font-family: var(--bps-head-font, inherit); font-weight: 800; font-size: 1.2rem; line-height: 1; text-transform: uppercase;
}
.bps-highlights.bps-onboard .bps-icon { width: 42px; height: 42px; padding: 9px; border-radius: 12px; background: var(--bps-lagoon); color: var(--bps-ink); box-sizing: border-box; }

/* Icons in the details list, timeline and sidebar */
.bps-about__icon { background: var(--bps-mint); color: var(--bps-lagoon-ink); }
.bps-summary { border-left: 4px solid var(--bps-lagoon); }
.bps-faq-aside__facts .bps-icon, .bps-faq-aside__helphead .bps-icon { color: var(--bps-lagoon-ink); }
.bps-place--noimg a { background: radial-gradient(120% 90% at 100% 0%, var(--bps-lagoon) 0%, transparent 55%), radial-gradient(90% 70% at 0% 100%, var(--bps-accent) 0%, transparent 60%), var(--bps-ink); }
.bps a:focus-visible, .bps button:focus-visible, .bps input:focus-visible { outline-color: var(--bps-lagoon); }



/* ==========================================================================
   "About <place>": text + stat tiles, what's on board, at a glance, ports
   ========================================================================== */
.bps-placeabout { background: #fff; }
.bps-placeabout__grid { display: grid; gap: clamp(1.75rem, 4vw, 3.5rem); grid-template-columns: 1fr; align-items: center; }
@media (min-width: 960px) { .bps-placeabout__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } }
.bps-placeabout__head .bps-h2 { margin-bottom: 1rem; }
.bps-placeabout__text { max-width: 62ch; }
.bps-placeabout__text .bps-answer { margin: 0 0 1rem; padding: 0 0 0 1rem; border: 0; border-left: 4px solid var(--bps-accent); font-size: 1.12rem; line-height: 1.6; font-weight: 600; color: var(--bps-ink); }

/* Stat tiles: navy cards, wristband-yellow figures */
.bps-placefacts { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bps-placefacts li { position: relative; display: flex; flex-direction: column; gap: .2rem; margin: 0; padding: 1.15rem 1.15rem 1.05rem; border-radius: 18px; background: var(--bps-ink); color: #fff; overflow: hidden; }
.bps-placefacts li::after { content: ""; position: absolute; right: -28px; top: -28px; width: 90px; height: 90px; border-radius: 50%; background: rgba(19, 181, 177, .14); }
.bps-placefacts__icon { display: grid; place-items: center; width: 36px; height: 36px; margin-bottom: .55rem; border-radius: 10px; background: var(--bps-lagoon); color: var(--bps-ink); }
.bps .bps-placefacts strong { font-family: var(--bps-head-font, inherit); font-size: clamp(1.6rem, 1.2rem + 1vw, 2.1rem); font-weight: 900; line-height: .95; letter-spacing: .005em; text-transform: uppercase; color: var(--bps-sun); overflow-wrap: anywhere; }
.bps-placefacts span:last-child { color: rgba(255, 255, 255, .78); font-size: .9rem; }

/* Section titles inside the block */
.bps-qg { margin-top: clamp(2rem, 4vw, 3rem); }
.bps .bps-qg__title { margin: 0 0 1rem; font-family: var(--bps-head-font, inherit); font-size: clamp(1.5rem, 1.2rem + .8vw, 1.9rem); font-weight: 800; line-height: 1; text-transform: uppercase; letter-spacing: .005em; color: var(--bps-ink); }

/* What's on board: tiles like the party pages, with how many parties have it */
.bps-qg__perks { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.bps-qg__perks li { display: flex; flex-direction: column; gap: .35rem; margin: 0; padding: 1rem 1rem 1.05rem; border-radius: 16px; background: var(--bps-paper); }
.bps-qg__icon { display: grid; place-items: center; width: 42px; height: 42px; margin-bottom: .35rem; border-radius: 12px; background: var(--bps-ink); color: var(--bps-lagoon); }
.bps-qg__perks strong { font-family: var(--bps-head-font, inherit); font-size: 1.3rem; font-weight: 800; line-height: 1; text-transform: uppercase; color: var(--bps-ink); }
.bps-qg__count { font-size: .86rem; color: var(--bps-muted); }
.bps-qg__bar { display: block; height: 5px; margin-top: .3rem; border-radius: 99px; background: #fff; overflow: hidden; }
.bps-qg__bar span { display: block; height: 100%; border-radius: 99px; background: var(--bps-lagoon); }

/* At a glance + ports side by side */
.bps-qg--split { display: grid; gap: clamp(1.5rem, 3vw, 2.5rem); grid-template-columns: 1fr; align-items: start; }
@media (min-width: 960px) { .bps-qg--split { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } .bps-qg--single { grid-template-columns: 1fr; } }
.bps-qg__glance { padding: 1.4rem 1.5rem .6rem; border-radius: 20px; background: var(--bps-ink); color: #fff; }
.bps-qg__glance .bps-qg__title { color: #fff; }
.bps-qg__glance dl { margin: 0; }
.bps-qg__glance dl > div { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .8rem 0; border-top: 1px solid rgba(255, 255, 255, .12); }
.bps-qg__glance dt { display: inline-flex; align-items: center; gap: .5rem; color: rgba(255, 255, 255, .78); }
.bps-qg__glance dt .bps-icon { color: var(--bps-lagoon); }
.bps-qg__glance dd { margin: 0; font-weight: 700; text-align: right; color: #fff; }
.bps-qg__ports ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
.bps-qg__ports li { margin: 0; }
.bps-qg__ports a { display: flex; flex-direction: column; height: 100%; border-radius: 16px; overflow: hidden; background: #fff; border: 1px solid var(--bps-line); color: var(--bps-ink) !important; text-decoration: none !important; transition: transform .15s, box-shadow .15s; }
.bps-qg__ports a:hover { transform: translateY(-2px); box-shadow: 0 14px 28px -18px rgba(13, 27, 62, .5); }
.bps-qg__photo { display: block; aspect-ratio: 16 / 10; background: radial-gradient(120% 90% at 100% 0%, var(--bps-lagoon) 0%, transparent 55%), var(--bps-ink); }
.bps-qg__photo img { display: block; width: 100%; height: 100% !important; object-fit: cover; }
.bps-qg__portname { padding: .75rem .9rem 0; font-family: var(--bps-head-font, inherit); font-size: 1.3rem; font-weight: 800; line-height: 1; text-transform: uppercase; }
.bps-qg__portline { padding: .35rem .9rem .85rem; font-size: .86rem; color: var(--bps-muted); }
.bps-qg__portline em { font-style: normal; margin-left: .25rem; padding: .05rem .4rem; border-radius: 6px; background: var(--bps-sun); color: var(--bps-ink); font-weight: 700; }
@media (max-width: 560px) { .bps-qg__perks { grid-template-columns: repeat(2, minmax(0, 1fr)); } .bps-qg__ports ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Facts strip (replaces the "At a glance" box) */
.bps-qg__strip { list-style: none; margin: clamp(1.25rem, 2.5vw, 1.75rem) 0 0; padding: .35rem; display: grid; gap: .35rem; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); border-radius: 18px; background: var(--bps-ink); }
.bps-qg__strip li { display: flex; align-items: center; gap: .75rem; margin: 0; padding: .8rem 1rem; border-radius: 14px; background: rgba(255, 255, 255, .05); color: #fff; }
.bps-qg__stripicon { display: grid; place-items: center; flex: none; width: 36px; height: 36px; border-radius: 10px; background: var(--bps-lagoon); color: var(--bps-ink); }
.bps-qg__strip li > span:last-child { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.bps-qg__strip small { font-size: .8rem; color: rgba(255, 255, 255, .7); }
.bps-qg__strip strong { font-size: 1rem; font-weight: 700; color: #fff; }

/* Ports: full width, equal photo cards */
.bps-qg__ports ul { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 1rem; }
@media (min-width: 1100px) { .bps-qg__ports ul { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.bps-qg__photo { position: relative; overflow: hidden; aspect-ratio: 4 / 3; }
.bps-qg__photo img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; transition: transform .3s; }
.bps-qg__ports a:hover .bps-qg__photo img { transform: scale(1.04); }
@media (max-width: 560px) { .bps-qg__ports ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; } .bps-qg__portname { font-size: 1.1rem; } }

/* Long lists: a card still loading (shown by "Show more" or a filter) gets a soft placeholder. */
.bps-card.is-stub { min-height: 360px; border-radius: var(--bps-radius, 16px); background: linear-gradient(100deg, #eef3f7 30%, #f7fafc 50%, #eef3f7 70%) 0 0 / 300% 100%; animation: bps-stub 1.4s ease-in-out infinite; }
.bps-card.is-stub[hidden] { display: none; }
.bps-card__stublink { position: absolute; left: 1.1rem; right: 1.1rem; bottom: 1.1rem; color: transparent; font-size: .9rem; }
@keyframes bps-stub { to { background-position: -150% 0; } }
@media (prefers-reduced-motion: reduce) { .bps-card.is-stub { animation: none; } }

/* 2.5: deposit from the CRM */
.bps-deposit-note { margin: .5rem 0 0; padding: .6rem .8rem; border-radius: 8px; background: color-mix(in srgb, var(--bps-accent, #e0144f) 8%, #fff); font-size: .95rem; }
.bps-bookcard__deposit { margin: .35rem 0 0; font-size: .92rem; color: #3b4a55; }
.bps-bookcard__deposit strong { color: inherit; }
.bps-mobilebar__deposit { display: block; font-size: .78rem; font-weight: 400; opacity: .8; }

/* 2.5.3: two ways to pay */
.bps-payopts { margin: .9rem 0 0; display: grid; gap: .5rem; text-align: left; }
.bps-payopts__title { margin: 0; font-weight: 700; font-size: .95rem; }
.bps-payopts__opt { display: grid; grid-template-columns: auto 1fr; gap: .7rem; align-items: start; padding: .7rem .8rem; border: 1px solid #e3e8ec; border-radius: 10px; background: #fff; }
.bps-payopts__opt--deposit { border-color: color-mix(in srgb, var(--bps-accent, #e0144f) 45%, #fff); background: color-mix(in srgb, var(--bps-accent, #e0144f) 6%, #fff); }
.bps-payopts__opt div { display: flex; flex-direction: column; gap: .1rem; font-size: .92rem; line-height: 1.35; }
.bps-payopts__opt strong { font-size: .98rem; }
.bps-payopts__sub { color: #5d6e7a; font-size: .85rem; }
.bps-payopts__badge { display: inline-grid; place-items: center; min-width: 3.1rem; height: 2.1rem; padding: 0 .4rem; border-radius: 8px; background: var(--bps-accent, #e0144f); color: #fff; font-weight: 800; font-size: .9rem; }
.bps-payopts__badge--full { background: #1b2a36; }
.bps-payopts__note { margin: 0; color: #5d6e7a; font-size: .82rem; }
.bps-payopts--calendar { grid-template-columns: 1fr 1fr; margin-top: 1rem; }
.bps-payopts--calendar .bps-payopts__title, .bps-payopts--calendar .bps-payopts__note { grid-column: 1 / -1; }
@media (max-width: 640px) { .bps-payopts--calendar { grid-template-columns: 1fr; } }
.bps-card__deposit-old { margin: .55rem 0 0; padding: .3rem .55rem; border-radius: 6px; background: color-mix(in srgb, var(--bps-accent, #e0144f) 9%, #fff); color: #1b2a36; font-size: .8rem; font-weight: 600; display: inline-block; }
.bps-deposit-note { display: none; }

/* 2.5.4: booking section spacing (heading, intro, the two ways to pay) */
.bps-book__head .bps-payopts { margin: 1.5rem 0 1.75rem; gap: .75rem; }
.bps-book__head .bps-payopts p { max-width: none; }
.bps-payopts__title { margin: 0 0 .15rem; color: var(--bps-ink, #1b2a36); font-size: 1.05rem; letter-spacing: 0; text-transform: none; }
.bps-payopts__note { margin: .15rem 0 0; line-height: 1.5; }
.bps-payopts__opt { padding: .85rem 1rem; }
.bps-payopts__opt div { gap: .2rem; }
.bps-bookcard .bps-payopts { margin-top: 1.1rem; }
@media (max-width: 640px) {
	.bps-book__head > .bps-h2 { font-size: clamp(1.9rem, 9vw, 2.4rem); margin-bottom: .6rem; }
	.bps-book__head > p { font-size: 1rem; margin-bottom: 1rem; }
	.bps-book__head .bps-payopts { margin: 1.1rem 0 1.4rem; gap: .6rem; }
	.bps-payopts__opt { padding: .75rem .8rem; gap: .6rem; }
	.bps-payopts__badge { width: 3.3rem; min-width: 3.3rem; height: 1.9rem; font-size: .82rem; }
	.bps-payopts__opt strong { font-size: .95rem; }
	.bps-payopts__opt div { font-size: .9rem; }
	.bps-mobilebar__deposit { margin-top: .1rem; }
}
.bps-payopts__badge { width: 3.4rem; }


/* ------------------------------------------------------------------ */
/* 2.6: tour card redesign                                             */
/* ------------------------------------------------------------------ */
.bps-card { background: #fff; border-radius: 20px; border: 1px solid rgba(18, 33, 61, .08); box-shadow: 0 1px 2px rgba(18, 33, 61, .05), 0 10px 28px -18px rgba(18, 33, 61, .35); transition: transform .22s ease, box-shadow .22s ease; }
.bps-card:hover { transform: translateY(-4px); box-shadow: 0 2px 4px rgba(18, 33, 61, .06), 0 22px 40px -20px rgba(18, 33, 61, .45); }
.bps-card .bps-card__link { border-radius: 20px; }
.bps-card__media { border-radius: 20px 20px 0 0; aspect-ratio: 4 / 3; }
.bps-card__media img { transition: transform .5s ease; }
.bps-card:hover .bps-card__media img { transform: scale(1.04); }
.bps-card__shade { position: absolute; inset: 45% 0 0 0; background: linear-gradient(to bottom, rgba(10, 20, 40, 0), rgba(10, 20, 40, .72)); pointer-events: none; }
.bps-card__badge {
	position: absolute; top: 14px; left: 14px; z-index: 2;
	padding: .34rem .7rem; border-radius: 999px; background: #f6d34a; color: #12213d;
	font-size: .78rem; font-weight: 800; letter-spacing: .02em; box-shadow: 0 6px 16px rgba(10, 20, 40, .25);
}
.bps-card__where { position: absolute; left: 14px; right: 14px; bottom: 12px; z-index: 2; margin: 0; display: flex; align-items: center; gap: .35rem; color: #fff; font-size: .92rem; font-weight: 600; text-shadow: 0 1px 6px rgba(0, 0, 0, .35); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bps-card__where svg { flex: none; }
.bps-card .bps-card__body { padding: 1rem 1.15rem 1.15rem; gap: .5rem; }
.bps-card__kicker { margin: 0; display: flex; align-items: center; justify-content: space-between; gap: .75rem; min-height: 1.5rem; }
.bps-card .bps-card__type { position: static; padding: 0; background: none; border-radius: 0; color: #0f6e56; font-size: .78rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; max-width: 70%; }
.bps-card__kicker .bps-rating { margin: 0 0 0 auto; display: inline-flex; align-items: center; gap: .25rem; font-size: .85rem; white-space: nowrap; }
.bps-card__kicker .bps-rating__star { fill: #f2b01e; }
.bps .bps-card .bps-card__title { font-size: 1.16rem; line-height: 1.28; -webkit-line-clamp: 2; }
.bps-card .bps-card__facts { font-size: .85rem; color: #5d6e7a; gap: .2rem .9rem; margin: 0 !important; }
.bps-card__deal { margin-top: auto; padding-top: .9rem; display: flex; align-items: flex-end; justify-content: space-between; gap: .75rem; border-top: 1px solid rgba(18, 33, 61, .08); }
.bps-card .bps-card__price { margin: 0; display: flex; flex-direction: column; line-height: 1.05; }
.bps-card .bps-card__price small { font-size: .78rem; color: #5d6e7a; }
.bps-card .bps-card__price strong { background: none; padding: 0; font-size: 1.6rem; font-weight: 800; color: #12213d; }
.bps-card__cta { display: flex; flex-direction: column; align-items: flex-end; gap: .3rem; text-align: right; min-width: 0; }
.bps-card__cta-btn {
	display: inline-flex; align-items: center; gap: .4rem; padding: .62rem .95rem; border-radius: 12px;
	background: #f6d34a; color: #12213d; font-weight: 800; font-size: .95rem; white-space: nowrap;
	box-shadow: 0 6px 14px -6px rgba(180, 140, 10, .7); transition: background .18s ease, transform .18s ease;
}
.bps-card__cta-btn svg { transition: transform .18s ease; }
.bps-card:hover .bps-card__cta-btn { background: #ffdc4f; }
.bps-card:hover .bps-card__cta-btn svg { transform: translateX(3px); }
.bps-card__cta-btn--plain { background: #12213d; color: #fff; box-shadow: none; }
.bps-card:hover .bps-card__cta-btn--plain { background: #1d3360; }
.bps-card__cta small { font-size: .76rem; color: #5d6e7a; white-space: nowrap; }
@media (max-width: 380px) { .bps-card__cta-btn { padding: .55rem .75rem; font-size: .88rem; } .bps-card .bps-card__price strong { font-size: 1.4rem; } }
@media (prefers-reduced-motion: reduce) { .bps-card, .bps-card__media img, .bps-card__cta-btn, .bps-card__cta-btn svg { transition: none; } .bps-card:hover, .bps-card:hover .bps-card__media img { transform: none; } }
.bps-card .bps-heart--icon { z-index: 3; top: 12px; right: 12px; box-shadow: 0 4px 12px rgba(10,20,40,.18); }

/* ------------------------------------------------------------------ */
/* 2.7: tour page design A (gallery + title block + booking card)      */
/* ------------------------------------------------------------------ */
.bps-thead { padding-top: 1rem; }
.bps-thead__crumbs { margin-bottom: .9rem; }
.bps-thead__crumbs ol { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0; padding: 0; text-shadow: none; list-style: none; font-size: .85rem; color: var(--bps-muted, #5d6e7a); }
.bps-thead__crumbs li + li::before { content: "›"; margin-right: .35rem; opacity: .6; }
.bps-thead__crumbs a { color: inherit; text-decoration: none; }
.bps-thead__crumbs a:hover { color: var(--bps-ink, #12213d); text-decoration: underline; }
.bps-thead__crumbs [aria-current] { color: var(--bps-ink, #12213d); }

.bps-gallery { position: relative; display: grid; gap: 6px; height: clamp(300px, 42vw, 460px); border-radius: 18px; overflow: hidden; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr; }
.bps-gallery__item { position: relative; padding: 0; border: 0; margin: 0; cursor: zoom-in; overflow: hidden; background: #e6edf2; }
.bps-gallery__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease, filter .3s ease; }
.bps-gallery__item:hover img { transform: scale(1.03); filter: brightness(.94); }
.bps-gallery__item:first-child { grid-row: 1 / span 2; }
.bps-gallery--4 .bps-gallery__item:nth-child(4) { grid-column: 2 / span 2; }
.bps-gallery--3 { grid-template-columns: 2fr 1fr; }
.bps-gallery--2 { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr; }
.bps-gallery--2 .bps-gallery__item:first-child { grid-row: auto; }
.bps-gallery--1 { grid-template-columns: 1fr; grid-template-rows: 1fr; }
.bps-gallery__more { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(10, 20, 40, .48); color: #fff; font-weight: 800; font-size: 1.15rem; }
.bps-gallery__all { position: absolute; right: 14px; bottom: 14px; z-index: 2; display: inline-flex; align-items: center; gap: .4rem; padding: .5rem .85rem; border: 0; border-radius: 10px; background: #fff; color: #12213d; font-weight: 700; font-size: .88rem; cursor: pointer; box-shadow: 0 6px 18px rgba(10, 20, 40, .2); }
.bps-gallery__all:hover { background: #f4f6f8; }
.bps-gallery__item:focus-visible, .bps-gallery__all:focus-visible { outline: 3px solid #f6d34a; outline-offset: -3px; }

.bps-thead__info { padding: 1.4rem 0 .4rem; max-width: 860px; }
.bps-thead__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem 1.1rem; font-size: .92rem; color: var(--bps-muted, #5d6e7a); }
.bps-thead__type { display: inline-flex; align-items: center; gap: .35rem; color: #0f6e56; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; font-size: .8rem; text-decoration: none; }
.bps-thead__place { display: inline-flex; align-items: center; gap: .3rem; }
.bps-thead__meta .bps-rating { margin: 0; }
.bps-thead__titlerow { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-top: .45rem; }
.bps .bps-thead__title { margin: 0; font-size: clamp(1.7rem, 1.1rem + 2vw, 2.6rem); line-height: 1.12; color: var(--bps-ink, #12213d); }
.bps-thead__titlerow .bps-heart { flex: none; margin-top: .3rem; }
.bps-thead__lead { margin: .7rem 0 0; font-size: 1.08rem; line-height: 1.55; color: #3b4a55; max-width: 70ch; }
.bps-thead__chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.bps-thead__chips li { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .8rem; border-radius: 999px; background: #fff; border: 1px solid rgba(18, 33, 61, .12); font-size: .9rem; font-weight: 600; color: #12213d; }
.bps-thead__chips svg { color: #0f6e56; flex: none; }

/* booking card: ticket + trust line */
.bps-bookcard__ticket {
	--split: 52%;
	margin: 1rem 1.4rem 0; display: grid; grid-template-columns: var(--split) 1fr; border-radius: 12px; overflow: hidden; box-shadow: inset 0 0 0 1.5px #12213d;
	-webkit-mask: radial-gradient(circle 7px at var(--split) 0, transparent 97%, #000) top / 100% 51% no-repeat, radial-gradient(circle 7px at var(--split) 100%, transparent 97%, #000) bottom / 100% 51% no-repeat;
	        mask: radial-gradient(circle 7px at var(--split) 0, transparent 97%, #000) top / 100% 51% no-repeat, radial-gradient(circle 7px at var(--split) 100%, transparent 97%, #000) bottom / 100% 51% no-repeat;
}
.bps-bookcard__ticket span { display: flex; flex-direction: column; gap: .1rem; padding: .7rem .9rem; }
.bps-bookcard__ticket small { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.bps-bookcard__ticket strong { font-size: 1.35rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.bps-bookcard__ticket .is-now { background: #12213d; color: #fff; }
.bps-bookcard__ticket .is-now small { color: #c9d3e6; }
.bps-bookcard__ticket .is-now strong { color: #f6d34a; }
.bps-bookcard__ticket .is-later { border-left: 2px dashed #12213d; color: #12213d; }
.bps-bookcard__ticket .is-later small { color: #5d6e7a; }
.bps-bookcard__trust { display: flex; align-items: center; gap: .4rem; justify-content: center; margin: .6rem 0 0; font-size: .82rem; color: #5d6e7a; text-align: center; }
.bps-bookcard__trust svg { color: #0f6e56; flex: none; }
.bps-bookcard .bps-btn--primary { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; }

@media (max-width: 760px) {
	.bps-gallery { height: auto; aspect-ratio: 4 / 3; grid-template-columns: 1fr; grid-template-rows: 1fr; border-radius: 14px; }
	.bps-gallery__item:not(:first-child) { display: none; }
	.bps-gallery__item:first-child { grid-row: auto; }
	.bps-thead__info { padding-top: 1rem; }
	.bps-thead__chips li { font-size: .84rem; padding: .38rem .7rem; }
	.bps-thead__lead { font-size: 1rem; }
}
@media (prefers-reduced-motion: reduce) { .bps-gallery__item img { transition: none; } .bps-gallery__item:hover img { transform: none; } }
.bps .bps-thead__title { text-transform: none; letter-spacing: -.01em; font-family: inherit; font-weight: 800; }
@media (max-width: 760px) {
	.bps .bps-thead__title { font-size: clamp(1.55rem, 6.4vw, 1.9rem); }
	.bps-thead__titlerow .bps-heart { padding: .55rem; border-radius: 50%; }
	.bps-thead__titlerow .bps-heart [data-label] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.bps-thead__meta { gap: .3rem .9rem; font-size: .88rem; }
}

/* 2.7.1: "Good to know" redesign */
.bps-gtk { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: .6rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.bps-gtk__item { display: flex; align-items: center; gap: .75rem; padding: .7rem .9rem; background: #fff; border: 1px solid rgba(18, 33, 61, .1); border-radius: 12px; font-size: .95rem; line-height: 1.35; color: #12213d; }
.bps-gtk__icon { flex: none; display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 10px; background: #eef6f4; color: #0f6e56; }
.bps-gtk__item--no .bps-gtk__icon { background: #fdeceb; color: #c0392b; }
.bps-gtknote { display: flex; gap: .9rem; padding: 1rem 1.1rem; margin-top: .7rem; background: #fff; border: 1px solid rgba(18, 33, 61, .1); border-left: 4px solid #f6d34a; border-radius: 12px; }
.bps-gtknote__icon { flex: none; display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 10px; background: #fff8dc; color: #8a6d00; }
.bps-gtknote__body { min-width: 0; }
.bps-gtknote__body p { margin: 0; line-height: 1.6; color: #3b4a55; }
.bps .bps-gtknote__title { margin: .1rem 0 .25rem; font-weight: 800; color: #12213d; font-size: 1rem; }
.bps-gtknote__more { margin-top: .35rem; }
.bps-gtknote__more summary { cursor: pointer; font-weight: 700; color: #0f6e56; list-style: none; display: inline-flex; align-items: center; gap: .3rem; }
.bps-gtknote__more summary::-webkit-details-marker { display: none; }
.bps-gtknote__more summary::after { content: "▾"; font-size: .8rem; }
.bps-gtknote__more[open] summary { display: none; }
.bps-gtknote__more summary:focus-visible { outline: 2px solid #f6d34a; outline-offset: 2px; border-radius: 4px; }
@media (max-width: 640px) { .bps-gtk { grid-template-columns: 1fr; } .bps-gtknote { padding: .9rem; gap: .7rem; } }

/* 2.7.2: "At a glance" + "Why book" redesign */
.bps-summary { background: #fff; border: 1px solid rgba(18, 33, 61, .1); border-radius: 16px; padding: 1.1rem 1.3rem; box-shadow: 0 8px 24px -20px rgba(18, 33, 61, .4); }
.bps .bps-summary__label { display: inline-flex; align-items: center; gap: .35rem; margin: 0 0 .45rem; font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #0f6e56; }
.bps-summary .bps-updated { font-size: .82rem; color: #5d6e7a; }
.bps-why { margin: 0 0 1.75rem; padding: 1.35rem 1.4rem 1.4rem; border: 0; border-radius: 18px; background: linear-gradient(135deg, #fff9e6 0%, #fff 70%); box-shadow: inset 0 0 0 1px rgba(242, 176, 30, .28); }
.bps .bps-why__title { display: flex; align-items: center; gap: .55rem; margin: 0 0 .6rem; font-size: 1.2rem; font-weight: 800; text-transform: none; letter-spacing: 0; font-family: inherit; color: #12213d; }
.bps-why__spark { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 10px; background: #f6d34a; color: #12213d; flex: none; }
.bps-why .bps-prose { font-size: 1.02rem; color: #3b4a55; }
.bps-why .bps-prose p:last-child { margin-bottom: 0; }
.bps-why__points { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .6rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.bps-why__points li { display: flex; align-items: center; gap: .7rem; padding: .7rem .85rem; background: #fff; border: 1px solid rgba(18, 33, 61, .08); border-radius: 12px; font-weight: 600; font-size: .95rem; line-height: 1.35; color: #12213d; }
.bps-why__icon { flex: none; display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 10px; background: #eef6f4; color: #0f6e56; }
@media (max-width: 640px) { .bps-why { padding: 1.1rem; } .bps-why__points { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------------ */
/* 2.7.3: modern booking sidebar + 7-day deposit rule                  */
/* ------------------------------------------------------------------ */
.bps-bookcard { border: 1px solid rgba(18, 33, 61, .1); border-radius: 22px; box-shadow: 0 2px 4px rgba(18, 33, 61, .04), 0 24px 48px -28px rgba(18, 33, 61, .35); }
.bps-bookcard__top { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: 1.25rem 1.4rem 1rem; border-bottom: 0; }
.bps-bookcard__price span { font-size: .95rem; }
.bps-bookcard__price strong { font-size: 2.4rem; color: #12213d; }
.bps-bookcard__top .bps-rating { margin: 0; font-size: .9rem; white-space: nowrap; }
.bps-bookcard__ticket { margin: 0 1.4rem; }

.bps-deprule { display: flex; gap: .55rem; align-items: flex-start; margin: .75rem 0 0; padding: .65rem .8rem; border-radius: 12px; background: #fff8dc; color: #5c4a00; font-size: .85rem; line-height: 1.4; }
.bps-deprule svg { flex: none; margin-top: .1rem; color: #8a6d00; }
.bps-deprule strong { color: #3d3100; font-weight: 800; }
.bps-bookcard__rule { margin: .75rem 1.4rem 0; }
.bps-payopts__rule { margin: .2rem 0 0; grid-column: 1 / -1; }

.bps-bookcard__body { padding: 1.1rem 1.4rem 1.4rem; }
.bps-bookcard .bps-btn--primary { border-radius: 14px; font-size: 1.05rem; box-shadow: 0 10px 22px -12px rgba(210, 48, 79, .8); }
.bps-bookcard .bps-heart--block { margin-top: .6rem; border-radius: 14px; background: transparent; }

.bps-bookcard__section { margin-top: 1.4rem; padding-top: 1.1rem; border-top: 1px solid rgba(18, 33, 61, .08); }
.bps .bps-bookcard__label { font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #5d6e7a; margin-bottom: .6rem; }
.bps-bookcard__list li { align-items: flex-start; gap: .6rem; padding: .3rem 0; font-size: .93rem; color: #12213d; }
.bps-bookcard__list .bps-icon { flex: none; width: 20px; height: 20px; padding: 3px; border-radius: 50%; background: #e3f3ee; color: #0f6e56; box-sizing: border-box; }
.bps-bookcard__more { font-weight: 700; }

.bps-bookcard__details { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin: 1.1rem 0 0; padding: 1.1rem 0 0; list-style: none; border-top: 1px solid rgba(18, 33, 61, .08); }
.bps-bookcard__details li { display: flex; align-items: center; gap: .5rem; padding: .55rem .6rem; border-radius: 12px; background: #f5f7f9; font-size: .82rem; font-weight: 600; line-height: 1.3; color: #12213d; min-width: 0; }
.bps-bookcard__details li span:last-child { overflow-wrap: anywhere; }
.bps-bookcard__dicon { flex: none; display: grid; place-items: center; width: 1.9rem; height: 1.9rem; border-radius: 9px; background: #fff; color: #0f6e56; }

.bps-bookcard__list--trust { border-top-color: rgba(18, 33, 61, .08); }
.bps-bookcard__help { display: flex; align-items: center; gap: .75rem; margin-top: 1.1rem; padding: .85rem 1rem; border-radius: 14px; background: #e9f8ef; color: #12213d; text-decoration: none; transition: background .18s ease; }
.bps-bookcard__help:hover { background: #dcf3e5; }
.bps-bookcard__help svg { flex: none; color: #1fa855; }
.bps-bookcard__help span { display: flex; flex-direction: column; font-size: .85rem; color: #3b4a55; }
.bps-bookcard__help strong { font-size: .95rem; color: #12213d; }
@media (max-width: 380px) { .bps-bookcard__details { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------------ */
/* 2.7.4: top section with price panel + fact tiles; FAQ cards         */
/* ------------------------------------------------------------------ */
.bps-thead__grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 2rem; align-items: start; padding-top: 1.4rem; }
.bps-thead__grid .bps-thead__info { padding-top: 0; max-width: none; }
.bps-thead__facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(175px, 1fr)); gap: .6rem; margin: 1.1rem 0 0; padding: 0; list-style: none; }
.bps-thead__facts li { display: flex; align-items: center; gap: .65rem; padding: .7rem .8rem; background: #fff; border: 1px solid rgba(18, 33, 61, .09); border-radius: 14px; min-width: 0; }
.bps-thead__ficon { flex: none; display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 12px; background: #eef6f4; color: #0f6e56; }
.bps-thead__facts li > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.bps-thead__facts small { font-size: .72rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #5d6e7a; }
.bps-thead__facts strong { font-size: .95rem; font-weight: 700; color: #12213d; line-height: 1.3; overflow-wrap: anywhere; }
.bps-thead__onboard { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin-top: .9rem; }
.bps-thead__onlabel { font-size: .75rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #5d6e7a; margin-right: .2rem; }
.bps-thead__perk { display: inline-flex; align-items: center; gap: .4rem; padding: .42rem .8rem; border-radius: 999px; background: #fff6d6; color: #12213d; font-weight: 700; font-size: .88rem; }
.bps-thead__perk svg { color: #a37c00; }
.bps-thead__chips { display: none; }

.bps-thead__buy { position: sticky; top: 90px; padding: 1.2rem 1.25rem 1.25rem; background: #fff; border: 1px solid rgba(18, 33, 61, .1); border-radius: 20px; box-shadow: 0 2px 4px rgba(18, 33, 61, .04), 0 22px 44px -28px rgba(18, 33, 61, .4); }
.bps-thead__pricerow { display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.bps-thead__price { display: flex; align-items: baseline; gap: .4rem; margin: 0; }
.bps-thead__price span { color: #5d6e7a; font-size: .95rem; }
.bps-thead__price strong { font-size: 2.3rem; font-weight: 800; color: #12213d; letter-spacing: -.02em; line-height: 1; }
.bps-thead__buyrating { margin: 0; font-size: .88rem; white-space: nowrap; }
.bps-thead__split { display: flex; flex-direction: column; gap: .15rem; margin: .85rem 0 0; padding: .75rem .85rem; border-radius: 12px; background: #12213d; color: #c9d3e6; font-size: .85rem; }
.bps-thead__split .is-now { display: flex; align-items: center; gap: .4rem; color: #fff; font-size: .95rem; }
.bps-thead__split .is-now strong { color: #f6d34a; font-size: 1.1rem; }
.bps-thead__split svg { color: #f6d34a; }
.bps-thead__cta { margin-top: .85rem; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; border-radius: 14px; box-shadow: 0 10px 22px -12px rgba(210, 48, 79, .8); }
.bps-thead__rulenote { margin: .55rem 0 0; text-align: center; font-size: .8rem; color: #5d6e7a; }

.bps-faq--cards { display: flex; flex-direction: column; gap: .6rem; }
.bps-faq--cards details { border: 1px solid rgba(18, 33, 61, .1) !important; border-radius: 16px; background: #fff; transition: box-shadow .2s ease, border-color .2s ease; }
.bps-faq--cards details[open] { border-color: rgba(15, 110, 86, .35) !important; box-shadow: 0 12px 28px -22px rgba(18, 33, 61, .45); }
.bps-faq--cards summary { display: flex; align-items: center; gap: .85rem; padding: .95rem 1.1rem; font-size: 1.02rem; line-height: 1.35; }
.bps-faq__icon { flex: none; display: grid; place-items: center; width: 2.3rem; height: 2.3rem; border-radius: 11px; background: #eef6f4; color: #0f6e56; }
.bps-faq--cards details[open] .bps-faq__icon { background: #0f6e56; color: #fff; }
.bps-faq__q { flex: 1; min-width: 0; color: #12213d; }
.bps-faq__toggle { flex: none; position: relative; width: 1.9rem; height: 1.9rem; border-radius: 50%; background: #f1f4f7; transition: background .2s ease, transform .2s ease; }
.bps-faq__toggle::before, .bps-faq__toggle::after { content: ""; position: absolute; left: 50%; top: 50%; width: 11px; height: 2px; margin: -1px 0 0 -5.5px; border-radius: 2px; background: #12213d; transition: transform .2s ease; }
.bps-faq__toggle::after { transform: rotate(90deg); }
.bps-faq--cards details[open] .bps-faq__toggle { background: #12213d; }
.bps-faq--cards details[open] .bps-faq__toggle::before, .bps-faq--cards details[open] .bps-faq__toggle::after { background: #fff; }
.bps-faq--cards details[open] .bps-faq__toggle::after { transform: rotate(0deg); }
.bps-faq--cards summary:hover .bps-faq__toggle { background: #e4e9ee; }
.bps-faq--cards summary:focus-visible { outline: 2px solid #f6d34a; outline-offset: -2px; border-radius: 16px; }
.bps-faq--cards .bps-faq__a { padding: 0 1.1rem 1.1rem 4.25rem; color: #3b4a55; }
@media (max-width: 1000px) {
	.bps-thead__grid { grid-template-columns: 1fr; gap: 1.2rem; }
	.bps-thead__buy { position: static; }
}
@media (max-width: 640px) {
	.bps-thead__facts { grid-template-columns: 1fr 1fr; }
	.bps-thead__buy { display: none; } /* phones use the sticky booking bar at the bottom */
	.bps-faq--cards .bps-faq__a { padding-left: 1.1rem; }
	.bps-faq--cards summary { font-size: .97rem; }
}
@media (prefers-reduced-motion: reduce) { .bps-faq__toggle, .bps-faq__toggle::before, .bps-faq__toggle::after, .bps-faq--cards details { transition: none; } }
.bps-thead__facts li.is-wide { grid-column: span 2; }
.bps-faq--cards summary .bps-icon { color: inherit; transform: none !important; }
@media (max-width: 640px) { .bps-thead__facts li.is-wide { grid-column: 1 / -1; } }

/* 2.7.5: wide gallery (like the World Tour Experiences hero), room for the floating header, bold deposit on phones */
body.wave-tourview { overflow-x: clip; }
.has-overlay-header .bps-thead { padding-top: 14px; }
/* Normal content width (lined up with the breadcrumb and title), and short enough that
   the title, price and Check dates are visible without scrolling */
/* Like World Tour Experiences: the photos start at the very top, nearly full width with
   rounded corners, and the floating menu bar sits on top of them */
.bps-thead .bps-gallery {
	--gx: clamp(10px, 1.4vw, 30px);
	width: calc(100vw - 2 * var(--gx));
	max-width: none;
	margin-left: calc((100% - (100vw - 2 * var(--gx))) / 2);
	height: clamp(420px, 44vw, 700px);
	border-radius: 28px;
}
/* a soft shade at the top so the menu bar stays readable over bright photos */
.bps-thead .bps-gallery::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 160px; z-index: 1; pointer-events: none; background: linear-gradient(to bottom, rgba(10, 20, 40, .35), rgba(10, 20, 40, 0)); }
@media (max-width: 760px) {
	.has-overlay-header .bps-thead { padding-top: 10px; }
	.bps-thead .bps-gallery { height: auto; aspect-ratio: 4 / 5; border-radius: 22px; }
}

.bps-mobilebar__info { display: flex; flex-direction: column; gap: .3rem; min-width: 0; }
.bps-mobilebar__deal { display: flex; align-items: center; flex-wrap: wrap; gap: .25rem .45rem; margin: 0; }
.bps-mobilebar__chip { display: inline-flex; align-items: center; gap: .3rem; padding: .28rem .6rem; border-radius: 999px; background: #f6d34a; color: #12213d; font-weight: 800; font-size: .82rem; white-space: nowrap; box-shadow: 0 4px 10px -4px rgba(180, 140, 10, .6); }
.bps-mobilebar__deal small { font-size: .74rem; color: #5d6e7a; font-weight: 600; white-space: nowrap; }
.bps-mobilebar__deposit { display: none; }
.bps-mobilebar .bps-btn { flex: none; white-space: nowrap; padding-left: 1.1rem; padding-right: 1.1rem; }

/* 2.7.6: section tabs as pills that stand out */
.bps-secnav { background: rgba(255, 255, 255, .96); -webkit-backdrop-filter: saturate(1.4) blur(10px); backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid rgba(18, 33, 61, .08); box-shadow: 0 10px 24px -22px rgba(18, 33, 61, .5); }
.bps-secnav__inner { min-height: 68px; }
.bps-secnav ul { gap: .45rem; align-self: center; padding: .55rem 0; }
.bps-secnav ul a {
	gap: .45rem; padding: .55rem .95rem; border: 1px solid rgba(18, 33, 61, .1); border-bottom-width: 1px; border-radius: 999px;
	background: #f3f6f8; color: #12213d !important; font-weight: 700; font-size: .92rem; transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.bps-secnav ul a .bps-icon { color: #0f6e56; flex: none; transition: color .18s ease; }
.bps-secnav ul a:hover { background: #e7eef2; border-color: rgba(18, 33, 61, .18); transform: translateY(-1px); }
.bps-secnav ul a.is-active { background: #12213d; border-color: #12213d; color: #fff !important; }
.bps-secnav ul a.is-active .bps-icon { color: #f6d34a; }
.bps-secnav ul a[href="#bps-book"] { background: #fff1f3; border-color: rgba(210, 48, 79, .35); color: #b8203d !important; }
.bps-secnav ul a[href="#bps-book"] .bps-icon { color: #d2304f; }
.bps-secnav ul a[href="#bps-book"].is-active { background: #d2304f; border-color: #d2304f; color: #fff !important; }
.bps-secnav ul a[href="#bps-book"].is-active .bps-icon { color: #fff; }
.bps-secnav ul a:focus-visible { outline: 2px solid #f6d34a; outline-offset: 2px; }
.bps-secnav__cta .bps-btn { border-radius: 12px; }
@media (max-width: 760px) {
	.bps-secnav__inner { min-height: 58px; }
	.bps-secnav ul a { padding: .48rem .8rem; font-size: .86rem; }
}
@media (prefers-reduced-motion: reduce) { .bps-secnav ul a { transition: none; } .bps-secnav ul a:hover { transform: none; } }
/* 2.8.1: breadcrumb under the photos, above the title */
.bps-thead__info .bps-thead__crumbs { margin: 0 0 .7rem; }
.bps-thead__info .bps-thead__crumbs ol { font-size: .84rem; }
.bps-thead__info .bps-thead__crumbs li:last-child span { display: inline-block; max-width: 34ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }

/* 2.9: destination tiles: trips + a bright "from" price that reads on any photo; Show more */
.bps-place a::before { background: linear-gradient(180deg, rgba(10, 18, 40, .25) 0%, rgba(10, 18, 40, 0) 26%, rgba(10, 18, 40, .25) 48%, rgba(10, 18, 40, .82) 74%, rgba(10, 18, 40, .95) 100%); }
.bps-place__text { gap: .35rem; text-shadow: 0 1px 10px rgba(0, 0, 0, .35); }
.bps-place__deal { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem .6rem; margin-top: .35rem; }
.bps-place__count { font-size: 1rem; font-weight: 700; color: #fff; }
.bps-place__price {
	display: inline-flex; align-items: center; padding: .32rem .75rem; border-radius: 999px;
	background: var(--bps-sun, #f6d34a); color: var(--bps-ink, #12213d); font-weight: 800; font-size: 1rem; letter-spacing: .01em;
	text-shadow: none; box-shadow: 0 6px 16px -6px rgba(0, 0, 0, .55); white-space: nowrap;
}
.bps-place a:hover .bps-place__price { transform: translateY(-1px); }
.bps-more { display: flex; justify-content: center; margin-top: clamp(1.25rem, 3vw, 2rem); }
.bps .bps-btn--more { display: inline-flex; align-items: center; gap: .6rem; min-height: 52px; padding: 0 1.6rem; border-radius: 999px; border: 2px solid var(--bps-ink, #12213d); background: #fff; color: var(--bps-ink, #12213d); font-weight: 800; cursor: pointer; }
.bps .bps-btn--more:hover { background: var(--bps-ink, #12213d); color: #fff; }
.bps .bps-btn--more small { font-weight: 600; opacity: .7; }
@media (max-width: 560px) { .bps-place__count, .bps-place__price { font-size: .92rem; } }

/* 2.9.1: What's included as two cards */
.bps-inex2 { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); align-items: start; }
.bps-inex2--single { grid-template-columns: 1fr; }
.bps-inex2__card { border-radius: 18px; background: #fff; border: 1px solid rgba(18, 33, 61, .09); overflow: hidden; }
.bps .bps-inex2__head { display: flex; align-items: center; gap: .6rem; margin: 0; padding: .85rem 1.1rem; font-family: inherit; font-size: 1rem; font-weight: 800; text-transform: none; letter-spacing: 0; }
.bps-inex2__card--in .bps-inex2__head { background: #e9f6f1; color: #0b5a45; }
.bps-inex2__card--out .bps-inex2__head { background: #fbefee; color: #8a2c22; }
.bps-inex2__badge { display: grid; place-items: center; width: 1.9rem; height: 1.9rem; border-radius: 50%; background: #0f6e56; color: #fff; flex: none; }
.bps-inex2__card--out .bps-inex2__badge { background: #c0392b; }
.bps-inex2__count { margin-left: auto; min-width: 1.6rem; padding: .1rem .5rem; border-radius: 999px; background: rgba(255, 255, 255, .8); font-size: .8rem; text-align: center; }
.bps-inex2__list { list-style: none; margin: 0; padding: .4rem 1.1rem .7rem; }
.bps-inex2__list li { display: flex; gap: .7rem; align-items: flex-start; padding: .7rem 0; border-bottom: 1px solid rgba(18, 33, 61, .07); }
.bps-inex2__list li:last-child { border-bottom: 0; }
.bps-inex2__ico { flex: none; display: grid; place-items: center; width: 1.45rem; height: 1.45rem; margin-top: .1rem; border-radius: 50%; background: #e3f3ee; color: #0f6e56; }
.bps-inex2__card--out .bps-inex2__ico { background: #fdeceb; color: #c0392b; }
.bps-inex2__txt { display: flex; flex-direction: column; gap: .15rem; min-width: 0; }
.bps-inex2__txt strong { font-weight: 700; color: var(--bps-ink, #12213d); line-height: 1.35; }
.bps-inex2__txt small { font-size: .9rem; color: #5d6e7a; line-height: 1.5; }
.bps-inex2__card--out .bps-inex2__txt strong { font-weight: 600; }
@media (max-width: 760px) { .bps-inex2 { grid-template-columns: 1fr; } }
