/* vbt.css: the one design family of the four vloraboattrips.* sites (docs/vloraboattrips/FAMILY-SPEC.md),
   built on Figma variant A "Bregu" (file BLxkvJO2ywEPo9NPYfNLpw: desktop 105:444, mobile 105:641, intro
   110:1497 / 110:1607, trip card 110:769). Every site has the same layout, components, type, spacing,
   radii, shadows and motion; only the colour tokens differ, set by assets/vbt-<variant>.css on
   body.vbt--<variant> (a light page background, an accent, a band colour). The defaults below are the
   Figma A palette (vloraboattrips.al). No dark theme: color-scheme light everywhere. */
@font-face{font-family:"Nunito Sans";src:url("/assets/nunito-sans.woff2") format("woff2");font-weight:200 1000;font-style:normal;font-display:swap}
:root{color-scheme:light}
.vbt{
  /* Colour tokens (Figma A; AA fixes of FAMILY-SPEC §1.1). A site's token block overrides them. */
  --fam-bg:#fbf7f0;--fam-surface:#fff;--fam-sand:#f1e8d8;--fam-tint:#e4f3f1;
  --fam-ink:#0f2a33;--fam-ink-rgb:15,42,51;--fam-muted:#5e6f74;--fam-muted-on-sand:#54656a;
  --fam-accent:#0b6e8a;--fam-accent-rgb:11,110,138;--fam-grad-start:#0c7d8f;--fam-grad-end:#0b6e8a;--fam-grad-hover-end:#084f66;
  --fam-pill-ink:#075a61;--fam-band-from:#0b3d4a;--fam-band-to:#0e6e7c;--fam-band-num:#7fd3d9;--fam-dot:#f2734e;
  --fam-route-2:#f2734e;--fam-route-3:#0f2a33;
  /* Derived tokens: the same recipe for every palette. */
  --fam-line:rgba(var(--fam-ink-rgb),.12);--fam-divider:rgba(var(--fam-ink-rgb),.08);
  --fam-grad:linear-gradient(90deg,var(--fam-grad-start),var(--fam-grad-end));
  --fam-grad-hover:linear-gradient(90deg,var(--fam-grad-start),var(--fam-grad-hover-end));
  --fam-band:linear-gradient(160deg,var(--fam-band-from) 0%,var(--fam-band-to) 71.4%);
  --fam-shadow-btn:0 8px 20px rgba(var(--fam-accent-rgb),.22);--fam-shadow-btn-hover:0 10px 28px rgba(var(--fam-accent-rgb),.28);
  --fam-shadow-search:0 16px 40px rgba(var(--fam-ink-rgb),.14);--fam-shadow-card:0 12px 32px rgba(var(--fam-ink-rgb),.10);
  --fam-shadow-card-hover:0 24px 48px rgba(var(--fam-ink-rgb),.18);--fam-shadow-badge:0 4px 12px rgba(var(--fam-ink-rgb),.12);
  --fam-shadow-soft:0 12px 34px rgba(var(--fam-ink-rgb),.08);--fam-shadow-sticky:0 -8px 30px rgba(var(--fam-ink-rgb),.12);
  /* Radii, layout, type. */
  --r-hero:36px;--r-card:28px;--r-photo:20px;--r-panel:22px;--r-pill:999px;
  --content:1264px;--gutter:clamp(20px,6.12vw,88px);
  --font:"Nunito Sans",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  /* Motion (FAMILY-SPEC §4). */
  --ease:cubic-bezier(.22,.8,.24,1);--ease-hover:cubic-bezier(.2,.7,.2,1);
  --fade-distance:48px;--fade-duration:760ms;--reveal-distance:24px;--reveal-duration:640ms;--hover-duration:300ms;
  /* Older names, kept for the consent panel of assets/analytics.js. */
  --vbt-surface:var(--fam-surface);--vbt-ink:var(--fam-ink);--vbt-focus:var(--fam-accent);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:24px;scroll-padding-bottom:var(--consent-space,0px)}
body.vbt{margin:0;min-height:100vh;background:var(--fam-bg);color:var(--fam-ink);font-family:var(--font);font-size:17px;font-weight:500;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
.vbt :where(h1,h2,h3,p,ol,ul,figure,blockquote,dl,dd,fieldset){margin:0}
.vbt :where(ol,ul){padding:0}
.vbt :where(img,svg,picture){display:block;max-width:100%}
.vbt img{height:auto}
.vbt :where(button,input,select,textarea){font:inherit;color:inherit}
.vbt :where(button){cursor:pointer}
.vbt :where(a){color:inherit}
.vbt :where(a,button,input,select,summary,label){touch-action:manipulation}
.vbt :where(h1,h2,h3){font-weight:800;text-wrap:balance}
.vbt :where(p,li){text-wrap:pretty}
.vbt ::selection{background:var(--fam-tint);color:var(--fam-ink)}
[hidden]{display:none!important}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.vbt .skip{position:fixed;top:12px;left:12px;z-index:100;padding:12px 18px;border-radius:12px;background:var(--fam-surface);color:var(--fam-ink);font-weight:800;box-shadow:var(--fam-shadow-card);transform:translateY(-200%)}
.vbt .skip:focus{transform:none}
.vbt :where(a,button,input,select,summary,[tabindex]):focus-visible{outline:3px solid var(--fam-accent);outline-offset:3px}

/* Photos: a rounded wrapper; the image scales on hover. */
.vbt .vbt-photo{position:relative;overflow:hidden;border-radius:var(--r-photo);isolation:isolate}
.vbt .vbt-photo :where(picture,img){width:100%;height:100%}
.vbt .vbt-photo img{object-fit:cover;transition:transform 450ms var(--ease-hover)}

/* ---------- Header (Figma 105:445 / 105:642) ---------- */
.vbt .vbt-header{position:relative;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:84px;padding:0 64px}
.vbt .vbt-wordmark{display:inline-flex;align-items:center;gap:10px;min-width:0;color:var(--fam-ink);text-decoration:none;white-space:nowrap}
.vbt .vbt-wordmark__name{font-size:24px;font-weight:800;line-height:1.3;overflow:hidden;text-overflow:ellipsis}
.vbt .vbt-wordmark__by{flex:none;padding:4px 10px;border-radius:var(--r-pill);background:var(--fam-sand);color:var(--fam-pill-ink);font-size:12px;font-weight:700;line-height:16px}
.vbt .vbt-nav{min-width:0}
.vbt .vbt-nav__list{display:flex;align-items:center;gap:4px 24px;list-style:none}
.vbt .vbt-nav__link{display:inline-flex;align-items:center;min-height:44px;color:var(--fam-ink);font-size:15px;font-weight:600;text-decoration:none;white-space:nowrap;background:linear-gradient(var(--fam-accent),var(--fam-accent)) no-repeat 0 calc(100% - 8px)/0 2px;transition:background-size var(--hover-duration) var(--ease-hover),color var(--hover-duration) var(--ease-hover)}
.vbt .vbt-nav__link:hover{color:var(--fam-accent);background-size:100% 2px}
.vbt .vbt-nav__link[aria-current="page"]{background-size:100% 2px}
.vbt .vbt-header__actions{flex:none;display:flex;align-items:center;gap:16px}
.vbt .vbt-lang{min-height:44px;max-width:150px;padding:8px 26px 8px 10px;border:0;border-radius:var(--r-pill);background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23334' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 8px center;color:var(--fam-ink);font-size:15px;font-weight:600;-webkit-appearance:none;appearance:none;cursor:pointer}
.vbt .vbt-lang:hover{background-color:rgba(var(--fam-ink-rgb),.05)}
.vbt .vbt-menu-toggle{display:none;position:relative;width:44px;height:44px;padding:0;border:0;border-radius:var(--r-pill);background:transparent;color:var(--fam-ink)}
.vbt .vbt-menu-toggle__bar{position:absolute;left:12px;width:20px;height:2px;border-radius:2px;background:currentColor;transition:transform var(--hover-duration) var(--ease-hover)}
.vbt .vbt-menu-toggle__bar:first-child{top:17px}
.vbt .vbt-menu-toggle__bar:nth-child(2){top:25px}
.vbt .vbt-menu-toggle[aria-expanded="true"] .vbt-menu-toggle__bar:first-child{transform:translateY(4px) rotate(45deg)}
.vbt .vbt-menu-toggle[aria-expanded="true"] .vbt-menu-toggle__bar:nth-child(2){transform:translateY(-4px) rotate(-45deg)}
.vbt .vbt-mobile-nav{position:absolute;z-index:50;top:64px;left:12px;right:12px;padding:8px;border-radius:0 0 var(--r-panel) var(--r-panel);background:var(--fam-surface);box-shadow:var(--fam-shadow-search)}
.vbt .vbt-mobile-nav ul{list-style:none;display:grid;gap:2px}
.vbt .vbt-mobile-nav .vbt-nav__link{display:flex;min-height:48px;padding:12px 16px;border-radius:14px;font-size:17px;font-weight:700;background:none}
.vbt .vbt-mobile-nav .vbt-nav__link[aria-current="page"]{background:var(--fam-tint);color:var(--fam-pill-ink)}
.vbt .vbt-mobile-nav .vbt-mobile-nav__langs{display:flex;flex-wrap:wrap;gap:4px;margin:8px 8px 0;padding-top:8px;border-top:1px solid var(--fam-divider)}
.vbt .vbt-mobile-nav__langs a{display:inline-flex;align-items:center;min-height:44px;padding:8px 12px;border-radius:var(--r-pill);font-size:15px;font-weight:600;text-decoration:none}
.vbt .vbt-mobile-nav__langs [aria-current]{background:var(--fam-sand);color:var(--fam-pill-ink)}
.vbt .vbt-mobile-nav__cta{display:flex;margin:12px 8px 8px}

/* ---------- Breadcrumbs ---------- */
.vbt .vbt-breadcrumbs{padding:0 var(--gutter) 14px;font-size:14px;font-weight:600;color:var(--fam-muted)}
.vbt .vbt-breadcrumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;max-width:var(--content);margin:0 auto;list-style:none}
.vbt .vbt-breadcrumbs li{display:inline-flex;align-items:center;gap:8px}
.vbt .vbt-breadcrumbs li+li::before{content:"›";content:"›" / "";color:var(--fam-muted)}
.vbt .vbt-breadcrumbs a{display:inline-flex;align-items:center;min-height:32px;color:var(--fam-muted);text-decoration:none}
.vbt .vbt-breadcrumbs a:hover{color:var(--fam-accent);text-decoration:underline}
.vbt .vbt-breadcrumbs [aria-current="page"]{color:var(--fam-ink)}

/* ---------- Buttons (Figma card button 110:743, hover 110:766) ---------- */
.vbt .vbt-button{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:12px 20px;border:0;border-radius:var(--r-pill);font-size:15px;font-weight:700;line-height:20px;text-align:center;text-decoration:none;white-space:nowrap;cursor:pointer;transition:box-shadow var(--hover-duration) var(--ease-hover),transform var(--hover-duration) var(--ease-hover),background-color var(--hover-duration) var(--ease-hover)}
.vbt :is(.vbt-button--primary,.vbt-button--book){background:var(--fam-grad);color:#fff;box-shadow:var(--fam-shadow-btn)}
.vbt :is(.vbt-button--primary,.vbt-button--book):hover{background:var(--fam-grad-hover);box-shadow:var(--fam-shadow-btn-hover)}
.vbt .vbt-button--book{min-width:104px;padding:12px 16px 12px 24px}
.vbt .vbt-button--book::after{content:"→";content:"→" / "";font-weight:800;transition:transform var(--hover-duration) var(--ease-hover)}
.vbt .vbt-button--outline{width:100%;background:var(--fam-surface);color:var(--fam-accent);box-shadow:inset 0 0 0 1.5px rgba(var(--fam-accent-rgb),.45)}
.vbt .vbt-button--outline:hover{background:var(--fam-tint)}
.vbt .vbt-button:active{transform:translateY(1px)}

/* ---------- Hero (Figma 105:460 / 105:647) ---------- */
.vbt .vbt-hero{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;margin:0 24px;overflow:hidden;border-radius:var(--r-hero);background:var(--fam-band);color:#fff}
.vbt .vbt-hero--full{min-height:640px;padding:96px 56px 48px}
.vbt .vbt-hero--trip{min-height:560px}
/* Inner pages: a compact text header on the sand card (eyebrow and H1), about 180 px, no decoration. */
.vbt .vbt-hero--compact{min-height:0;padding:44px 56px 40px}
.vbt .vbt-hero--plain{background:var(--fam-sand);color:var(--fam-ink)}
.vbt .vbt-hero--plain .vbt-eyebrow{color:var(--fam-pill-ink)}
.vbt .vbt-hero--plain .vbt-hero__body{gap:12px}
.vbt .vbt-hero__media{position:absolute;z-index:-2;inset:0;border-radius:0}
.vbt .vbt-hero--photo::before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,rgba(6,25,32,.05) 0%,rgba(6,25,32,.78) 100%),linear-gradient(90deg,rgba(6,25,32,.40) 0%,rgba(6,25,32,0) 62%)}
/* Trip sheets: bright beach photos, so a deeper shade under the white headline (AA on the text area). */
.vbt .vbt-hero--trip.vbt-hero--photo::before{background:linear-gradient(180deg,rgba(6,25,32,.10) 0%,rgba(6,25,32,.45) 45%,rgba(6,25,32,.86) 100%),linear-gradient(90deg,rgba(6,25,32,.50) 0%,rgba(6,25,32,0) 70%)}
.vbt .vbt-hero__body{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:20px;max-width:900px}
.vbt .vbt-eyebrow{font-size:14px;font-weight:700;letter-spacing:.12em;line-height:1.35;text-transform:uppercase;color:rgba(255,255,255,.94)}
.vbt .vbt-hero__title{max-width:900px;font-size:clamp(34px,2.2rem + 2.4vw,68px);font-weight:800;line-height:1.04;letter-spacing:-.015em;overflow-wrap:break-word;hyphens:auto}
.vbt .vbt-hero--compact .vbt-hero__title{font-size:clamp(30px,1.5rem + 1.6vw,48px);line-height:1.1}
.vbt .vbt-hero__sub{max-width:680px;font-size:clamp(15px,.85rem + .48vw,20px);font-weight:500;line-height:1.45;color:rgba(255,255,255,.94)}
.vbt .vbt-hero__more{display:inline-flex;align-items:center;min-height:44px;color:#fff;font-size:15px;font-weight:700;text-underline-offset:4px}
.vbt .vbt-hero__more::after{content:" →";content:" →" / ""}
.vbt .vbt-hero .vbt-button:focus-visible,.vbt .vbt-hero__more:focus-visible{outline-color:#fff}

/* ---------- Search bar (Figma 105:464 / 105:651) ---------- */
.vbt .vbt-search{display:flex;align-items:stretch;gap:0;width:min(100%,900px);margin-top:6px;padding:8px;border-radius:22px;background:var(--fam-surface);color:var(--fam-ink);box-shadow:var(--fam-shadow-search)}
.vbt .vbt-search__field{position:relative;flex:1 1 0;display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0;padding:10px 20px;border-radius:16px;cursor:pointer;transition:background-color 200ms var(--ease-hover)}
.vbt .vbt-search__field+.vbt-search__field::before{content:"";position:absolute;left:0;top:14px;bottom:14px;border-left:1px solid var(--fam-divider)}
.vbt .vbt-search__field--trip{flex-grow:1.4}
.vbt .vbt-search__field:hover{background:rgba(var(--fam-ink-rgb),.035)}
.vbt .vbt-search__field:focus-within{background:var(--fam-tint)}
.vbt .vbt-search__label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fam-muted)}
.vbt .vbt-search__value{width:100%;min-width:0;min-height:28px;padding:0;border:0;background:transparent;color:var(--fam-ink);font-size:17px;font-weight:600;line-height:1.3;-webkit-appearance:none;appearance:none;text-overflow:ellipsis;cursor:pointer}
.vbt .vbt-search__value:focus-visible{outline:none}
/* The date field: the localized text in front, the native input transparent over the whole field. */
.vbt .vbt-date__text{display:none;min-height:28px;font-size:17px;font-weight:600;line-height:1.3;color:var(--fam-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.js .vbt .vbt-date__text{display:block}
.js .vbt .vbt-date__input{position:absolute;inset:0;z-index:1;width:100%;height:100%;min-height:0;opacity:0;cursor:pointer}
.js .vbt .vbt-date__input::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:auto;height:auto;opacity:0;cursor:pointer}
.vbt .vbt-search__field--date:has(.vbt-date__input:focus-visible){outline:3px solid var(--fam-accent);outline-offset:-3px}
.vbt .vbt-search__field:has(.vbt-search__value:focus-visible){outline:3px solid var(--fam-accent);outline-offset:-3px}
.vbt .vbt-search__action{flex:none;min-height:56px;padding:16px 28px;border:0;border-radius:16px;background:var(--fam-grad);color:#fff;font-size:16px;font-weight:700;box-shadow:var(--fam-shadow-btn);transition:box-shadow var(--hover-duration) var(--ease-hover),transform var(--hover-duration) var(--ease-hover)}
.vbt .vbt-search__action:hover{background:var(--fam-grad-hover);box-shadow:var(--fam-shadow-btn-hover);transform:translateY(-1px)}

/* ---------- Trust band (Figma 110:592 / 105:661) ---------- */
.vbt .vbt-trust{margin:28px 24px 8px}
.vbt .vbt-trust__items{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:16px 32px;padding:28px 64px;border-radius:var(--r-card);background:var(--fam-tint);list-style:none}
.vbt .vbt-trust__item,.vbt .vbt-trust__link{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;color:inherit;text-decoration:none}
.vbt .vbt-trust__big{font-size:26px;font-weight:800;line-height:1.25;color:var(--fam-accent);white-space:nowrap}
.vbt .vbt-trust__label{font-size:16px;font-weight:500;line-height:1.35;color:var(--fam-muted)}
.vbt .vbt-trust__link:hover .vbt-trust__label{color:var(--fam-accent);text-decoration:underline}
.vbt .vbt-trust__part{margin:14px 8px 0;font-size:15px;font-weight:600;line-height:1.45;color:var(--fam-muted);text-align:center}
.vbt .vbt-trust__part a{color:var(--fam-pill-ink);font-weight:800}
.vbt .vbt-operator{margin:0;font-size:14px;font-weight:600;line-height:1.4;color:var(--fam-muted)}
.vbt .vbt-side__card .vbt-operator{text-align:center;font-size:13px}

/* ---------- Sections ---------- */
.vbt .vbt-main{display:block}
.vbt .vbt-main>.vbt-section,.vbt .vbt-main>.vbt-related,.vbt .vbt-article{width:100%;max-width:calc(var(--content) + 2 * var(--gutter));margin:0 auto;padding:64px var(--gutter)}
.vbt .vbt-main>.vbt-lead-section{padding-top:48px;padding-bottom:8px}
.vbt .vbt-lead{max-width:860px;font-size:clamp(18px,1rem + .3vw,21px);font-weight:500;line-height:1.6;color:var(--fam-ink)}
.vbt .vbt-section__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 40px;margin-bottom:28px}
.vbt .vbt-section__heading{display:grid;gap:8px;max-width:820px}
.vbt .vbt-section__title{font-size:clamp(30px,1.6rem + 1.33vw,44px);font-weight:800;line-height:1.15;letter-spacing:-.01em;color:var(--fam-ink)}
.vbt .vbt-section__sub{font-size:17px;font-weight:500;line-height:1.5;color:var(--fam-muted)}
.vbt .vbt-section__lead{max-width:760px;font-size:16px}
.vbt .vbt-note{margin-top:24px;max-width:860px;font-size:15px;line-height:1.55;color:var(--fam-muted)}
.vbt .vbt-section :where(p,li)>a:not([class]){color:var(--fam-accent);font-weight:700}

/* Text: the "Good to know" split (105:621), the title beside the paragraphs. */
.vbt .vbt-text>.vbt-section__head{margin-bottom:20px}
.vbt .vbt-text>p{max-width:760px;font-size:18px;line-height:1.65}
.vbt .vbt-text>p+p{margin-top:18px}
.vbt .vbt-main>.vbt-text:has(>.vbt-section__head){display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);column-gap:64px;align-items:start}
.vbt .vbt-main>.vbt-text>.vbt-section__head{grid-column:1;grid-row:1/span 20;margin:0}
.vbt .vbt-main>.vbt-text>p{grid-column:2}

/* List: rounded white rows with a tick in the site's tint. */
.vbt .vbt-list__intro{max-width:760px;margin-bottom:20px;color:var(--fam-muted)}
.vbt .vbt-list__items{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:14px;list-style:none}
.vbt .vbt-list__items>li{position:relative;padding:18px 22px 18px 60px;border-radius:var(--r-panel);background:var(--fam-surface);box-shadow:var(--fam-shadow-card);font-size:16px;line-height:1.55}
.vbt .vbt-list__items>li::before,.vbt .vbt-included__col--in li::before{content:"";position:absolute;left:20px;top:18px;width:26px;height:26px;border-radius:50%;background:var(--fam-tint);-webkit-mask:none}
.vbt .vbt-list__items>li::after,.vbt .vbt-included__col--in li::after{content:"";position:absolute;left:28px;top:25px;width:10px;height:6px;border-left:2.2px solid var(--fam-accent);border-bottom:2.2px solid var(--fam-accent);transform:rotate(-45deg)}

/* ---------- Filter pills (Figma 105:494) ---------- */
.vbt .vbt-pills{display:flex;flex-wrap:wrap;gap:8px}
.vbt .vbt-pill{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 18px;border:0;border-radius:var(--r-pill);background:var(--fam-surface);box-shadow:inset 0 0 0 1px var(--fam-line);color:var(--fam-ink);font-size:15px;font-weight:700;line-height:20px;cursor:pointer;transition:background-color 200ms var(--ease-hover),color 200ms var(--ease-hover),box-shadow 200ms var(--ease-hover)}
.vbt .vbt-pill:hover{box-shadow:inset 0 0 0 1.5px var(--fam-accent)}
.vbt .vbt-pill[aria-pressed="true"],.vbt .vbt-pill--choice:has(input:checked){background:var(--fam-ink);color:#fff;box-shadow:none}
.vbt .vbt-pill--choice input{position:absolute;inset:0;margin:0;opacity:0;cursor:pointer}
.vbt .vbt-pill--choice:has(input:focus-visible){outline:3px solid var(--fam-accent);outline-offset:3px}
.no-js .vbt [data-filter],.no-js .vbt [data-show-all]{display:none}

/* ---------- Trip cards (Figma 110:727 default, 110:748 hover / 105:679 mobile) ---------- */
.vbt .vbt-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 24px;list-style:none}
.vbt .vbt-cards--n2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:860px}
.vbt .vbt-cards--n1{grid-template-columns:minmax(0,420px)}
.vbt .vbt-card{display:flex;padding-top:6px;transition:opacity 200ms var(--ease-hover)}
.vbt .vbt-card[data-filtered="out"]{display:none}
.vbt .vbt-card__surface{position:relative;flex:1;display:flex;flex-direction:column;padding:10px;border-radius:var(--r-card);background:var(--fam-surface);box-shadow:var(--fam-shadow-card);transition:transform var(--hover-duration) var(--ease-hover),box-shadow var(--hover-duration) var(--ease-hover)}
.vbt .vbt-card__media{position:relative}
.vbt .vbt-card__photo{height:260px;border-radius:var(--r-photo)}
.vbt .vbt-card__badge{position:absolute;z-index:2;top:14px;left:14px;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--r-pill);background:rgba(255,255,255,.95);color:var(--fam-ink);font-size:13px;font-weight:700;line-height:18px;box-shadow:var(--fam-shadow-badge)}
.vbt .vbt-card__dot{width:8px;height:8px;border-radius:50%;background:var(--fam-dot)}
.vbt .vbt-card__body{flex:1;display:flex;flex-direction:column;gap:10px;padding:14px 12px 12px}
.vbt .vbt-card__meta{font-size:12px;font-weight:700;letter-spacing:.08em;line-height:1.35;text-transform:uppercase;color:var(--fam-accent)}
.vbt .vbt-card__title{min-height:2.4em;font-size:23px;font-weight:800;line-height:1.2;color:var(--fam-ink);text-wrap:wrap;overflow-wrap:break-word}
.vbt .vbt-card__link{color:inherit;text-decoration:none}
.vbt .vbt-card__link::after{content:"";position:absolute;z-index:1;inset:0;border-radius:var(--r-card)}
.vbt .vbt-card__link:focus-visible{outline:none}
.vbt .vbt-card__surface:has(.vbt-card__link:focus-visible){outline:3px solid var(--fam-accent);outline-offset:3px}
.vbt .vbt-card__rating{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px;min-height:21px;font-size:14px;font-weight:500;color:var(--fam-muted)}
.vbt .vbt-rating{display:inline-flex;align-items:baseline;gap:4px;color:var(--fam-muted);text-decoration:none}
.vbt .vbt-rating__star,.vbt .vbt-rating__value{color:var(--fam-ink);font-size:15px;font-weight:800}
.vbt .vbt-rating--long{flex-wrap:wrap;font-size:15px}
.vbt .vbt-rating--long:hover .vbt-rating__count{color:var(--fam-accent);text-decoration:underline}
.vbt .vbt-card__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:4px}
.vbt .vbt-price{display:inline-flex;align-items:baseline;gap:8px}
.vbt .vbt-price__from{font-size:14px;font-weight:500;color:var(--fam-muted)}
.vbt .vbt-price__amount{font-size:30px;font-weight:800;line-height:1.1;letter-spacing:-.01em;color:var(--fam-ink);font-variant-numeric:tabular-nums;transition:opacity 200ms var(--ease-hover)}
.vbt .vbt-price__link{position:relative;z-index:2;color:var(--fam-accent);font-weight:700}
.vbt .vbt-card__excerpt{font-size:15px;line-height:1.5;color:var(--fam-muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.vbt .vbt-card__more{margin-top:auto;padding-top:6px;color:var(--fam-accent);font-size:15px;font-weight:700;transition:transform var(--hover-duration) var(--ease-hover)}
.vbt .vbt-cards__more{margin-top:16px}
@media (min-width:761px){.vbt .vbt-cards__more{display:none}}
/* Departures and seats of the chosen date on a card (.org): small pills, never a calendar. */
.vbt .vbt-card__seats:empty{display:none}
.vbt .vbt-card__seats{position:relative;z-index:2;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;line-height:1.4;color:var(--fam-muted)}
.vbt .vbt-card__seats::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--fam-line)}
.vbt .vbt-card__seats[data-state="open"]::before{background:var(--fam-accent)}
.vbt :is(.vbt-slots,.vbt-times){display:flex;flex-wrap:wrap;gap:6px;list-style:none}
.vbt :is(.vbt-slot,.vbt-time){display:inline-flex;align-items:center;min-height:30px;padding:5px 12px;border-radius:var(--r-pill);background:var(--fam-tint);color:var(--fam-pill-ink);font-size:14px;font-weight:700;line-height:20px}
.vbt .vbt-slot:is([data-state="full"],[data-state="small"]){background:var(--fam-sand);color:var(--fam-muted-on-sand)}
.vbt .vbt-slot[data-state="open"]{padding:0;background:none}
.vbt .vbt-slot button{min-height:30px;padding:5px 12px;border:0;border-radius:var(--r-pill);background:var(--fam-tint);color:var(--fam-pill-ink);font:inherit;cursor:pointer}
.vbt .vbt-slot button[aria-pressed="true"]{background:var(--fam-accent);color:var(--fam-surface)}
@media (hover:hover) and (pointer:fine){
  .vbt .vbt-card__surface:hover{transform:translateY(-6px);box-shadow:var(--fam-shadow-card-hover)}
  .vbt .vbt-card__surface:hover .vbt-photo img{transform:scale(1.06)}
  .vbt .vbt-card__surface:hover .vbt-button--book{background:var(--fam-grad-hover);box-shadow:var(--fam-shadow-btn-hover)}
  .vbt .vbt-card__surface:hover .vbt-button--book::after,.vbt .vbt-button--book:hover::after{transform:translateX(6px)}
  .vbt .vbt-card__surface:hover .vbt-card__more{transform:translateX(4px)}
}

/* ---------- Route band "Where the boat goes" (Figma 105:598 / 105:730) ---------- */
.vbt .vbt-band{margin:16px 0;padding:64px var(--gutter);background:var(--fam-band);color:#fff}
.vbt .vbt-band__inner{max-width:var(--content);margin:0 auto}
.vbt .vbt-band .vbt-section__title{font-size:clamp(26px,1.4rem + 1.33vw,40px);color:#fff}
.vbt .vbt-band__sub{max-width:760px;margin-top:8px;font-size:16px;color:rgba(255,255,255,.86)}
.vbt .vbt-tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-top:32px;list-style:none}
.vbt .vbt-tile,.vbt .vbt-tile__link{display:flex;flex-direction:column;gap:8px;min-width:0}
.vbt .vbt-band .vbt-tile{padding:20px;border:1px solid rgba(255,255,255,.12);border-radius:var(--r-panel);background:rgba(255,255,255,.08);transition:background-color var(--hover-duration) var(--ease-hover),transform var(--hover-duration) var(--ease-hover)}
.vbt .vbt-tile__link{color:inherit;text-decoration:none}
.vbt .vbt-band .vbt-tile:has(.vbt-tile__link):hover{background:rgba(255,255,255,.14);transform:translateY(-3px)}
.vbt .vbt-tile__num{color:var(--fam-band-num);font-size:30px;font-weight:700;font-style:italic;line-height:1.2}
.vbt .vbt-tile__name{font-size:18px;font-weight:700;line-height:1.3}
.vbt .vbt-tile__desc{font-size:14px;font-weight:500;line-height:1.45;color:rgba(255,255,255,.86)}
.vbt .vbt-tile.is-active{background:rgba(255,255,255,.2)}
/* A trip sheet's itinerary: the start and return as slim lines around the stop tiles. */
.vbt .vbt-tiles--route{display:flex;flex-wrap:wrap}
.vbt .vbt-tiles--route>.vbt-tile{flex:1 1 180px}
.vbt .vbt-tiles--route>.vbt-tile--end{flex-basis:100%}
.vbt .vbt-band .vbt-tile--end{grid-column:1/-1;flex-direction:row;align-items:center;gap:12px;padding:0;border:0;background:none}
.vbt .vbt-tile--end::before{content:"";flex:none;width:12px;height:12px;border:3px solid var(--fam-band-num);border-radius:50%}
.vbt .vbt-tile--end::after{content:"";flex:1;border-top:1.5px dashed rgba(255,255,255,.35)}
.vbt .vbt-tile--end .vbt-tile__name{font-size:15px;color:rgba(255,255,255,.92)}
.vbt .vbt-band .vbt-note{color:rgba(255,255,255,.86)}
/* The light twin of the band tiles (the .online stops page). */
.vbt .vbt-tiles--light{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:0}
.vbt .vbt-tile--light{padding:24px;border-radius:var(--r-card);background:var(--fam-surface);box-shadow:var(--fam-shadow-card)}
.vbt .vbt-tile--light .vbt-tile__num{color:var(--fam-accent)}
.vbt .vbt-tile--light .vbt-tile__name{color:var(--fam-ink);font-size:20px;font-weight:800}
.vbt .vbt-tile--light .vbt-tile__desc{color:var(--fam-muted)}
.vbt .vbt-tile__more{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin-top:auto;color:var(--fam-accent);font-size:15px;font-weight:700;text-decoration:none}
.vbt .vbt-tile__more::after{content:"→";content:"→" / "";transition:transform var(--hover-duration) var(--ease-hover)}
.vbt .vbt-tile__more:hover::after{transform:translateX(4px)}
.vbt .vbt-tile__coords{font-size:13px;font-weight:600;color:var(--fam-muted);font-variant-numeric:tabular-nums}

/* ---------- "Good to know" FAQ (Figma 105:621) ---------- */
.vbt .vbt-main>.vbt-faq{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:24px 64px;align-items:start}
.vbt .vbt-faq__intro{display:grid;gap:12px}
.vbt .vbt-faq__intro .vbt-section__title{font-size:clamp(26px,1.4rem + 1.33vw,40px)}
.vbt .vbt-faq__text{font-size:16px;line-height:1.5;color:var(--fam-muted)}
.vbt .vbt-faq__card{padding:8px 32px;border-radius:var(--r-card);background:var(--fam-surface);box-shadow:var(--fam-shadow-soft)}
.vbt .vbt-faq__item+.vbt-faq__item{border-top:1px solid var(--fam-divider)}
.vbt .vbt-faq__question{position:relative;display:block;padding:20px 48px 20px 0;color:var(--fam-ink);font-size:18px;font-weight:700;line-height:1.4;list-style:none;cursor:pointer}
.vbt .vbt-faq__question::-webkit-details-marker{display:none}
.vbt .vbt-faq__question::before,.vbt .vbt-faq__question::after{content:"";position:absolute;right:0;top:50%;width:28px;height:28px;margin-top:-14px;border-radius:50%}
.vbt .vbt-faq__question::before{background:var(--fam-tint)}
.vbt .vbt-faq__question::after{background:linear-gradient(var(--fam-accent),var(--fam-accent)) center/12px 2px no-repeat,linear-gradient(var(--fam-accent),var(--fam-accent)) center/2px 12px no-repeat;transition:transform 250ms var(--ease-hover)}
.vbt .vbt-faq__item[open]>.vbt-faq__question::after{transform:rotate(45deg)}
.vbt .vbt-faq__question:hover{color:var(--fam-accent)}
.vbt .vbt-faq__question:focus-visible{outline-offset:-2px;border-radius:12px}
.vbt .vbt-faq__answer{padding:0 48px 20px 0}
.vbt .vbt-faq__answer p{font-size:15px;line-height:1.6;color:var(--fam-muted)}

/* ---------- Included / not included ---------- */
.vbt .vbt-included__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));align-items:start;gap:24px}
.vbt .vbt-included__col{padding:28px 32px;border-radius:var(--r-card);background:var(--fam-surface);box-shadow:var(--fam-shadow-card)}
.vbt .vbt-included__col--out{background:var(--fam-sand);box-shadow:none}
.vbt .vbt-included__col h3{margin-bottom:14px;font-size:18px}
.vbt .vbt-included__col ul{display:grid;gap:12px;list-style:none}
.vbt .vbt-included__col li{position:relative;padding-left:40px;font-size:16px;line-height:1.5}
.vbt .vbt-included__col--in li::before{left:0;top:0}
.vbt .vbt-included__col--in li::after{left:8px;top:7px}
.vbt .vbt-included__col--out li::before{content:"";position:absolute;left:6px;top:11px;width:14px;border-top:2px solid var(--fam-muted-on-sand)}

/* ---------- Booking card of a trip sheet: the search bar style, one action, price and seats beside ---------- */
.vbt .vbt-booking__card{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px 48px;align-items:center;padding:36px 40px;border-radius:var(--r-card);background:var(--fam-surface);box-shadow:var(--fam-shadow-card)}
.vbt .vbt-booking__main{display:grid;gap:20px}
.vbt .vbt-booking__form{display:flex;align-items:stretch;padding:8px;border-radius:22px;box-shadow:inset 0 0 0 1px var(--fam-line)}
.vbt .vbt-booking__form .vbt-search__field{flex:1}
.vbt .vbt-booking__book{display:inline-flex;align-items:center;text-decoration:none}
.vbt .vbt-booking__guests{display:flex;flex-wrap:wrap;gap:12px 28px}
.vbt .vbt-booking__guests[hidden]{display:none}
.vbt .vbt-stepper{display:flex;align-items:center;gap:10px}
.vbt .vbt-stepper .vbt-search__label{min-width:72px}
.vbt .vbt-stepper__button{width:44px;height:44px;border:1px solid var(--fam-line);border-radius:50%;background:var(--fam-surface);color:var(--fam-ink);font:inherit;font-size:20px;line-height:1;cursor:pointer}
.vbt .vbt-stepper__button:disabled{opacity:.4;cursor:default}
.vbt .vbt-stepper__value{min-width:2ch;font-weight:700;text-align:center}
.vbt .vbt-booking__side{display:grid;gap:14px;justify-items:start}
.vbt .vbt-booking__slots{width:100%;min-height:56px;padding:16px 20px;border-radius:var(--r-panel);background:var(--fam-bg);font-size:15px;line-height:1.5;color:var(--fam-muted)}

/* ---------- Article layout (.net guides, about pages): prose beside the side card ---------- */
.vbt .vbt-article{display:grid;grid-template-columns:minmax(0,760px) 340px;justify-content:space-between;gap:48px 64px;align-items:start}
.vbt .vbt-article__body>.vbt-section{padding:0 0 40px}
.vbt .vbt-article__photo{aspect-ratio:16/9;margin-bottom:32px;border-radius:var(--r-card)}
.vbt .vbt-article__body>.vbt-lead-section{padding-top:0}
.vbt .vbt-article__body .vbt-section__title{font-size:clamp(24px,1.2rem + .9vw,30px);line-height:1.2;letter-spacing:-.01em}
.vbt .vbt-article__body .vbt-list__items{grid-template-columns:minmax(0,1fr)}
.vbt .vbt-article__body .vbt-faq{display:block}
.vbt .vbt-article__body .vbt-faq__intro{margin-bottom:20px}
.vbt .vbt-side{position:sticky;top:24px}
.vbt .vbt-side__card{display:grid;gap:12px;padding:16px 16px 24px;border-radius:var(--r-card);background:var(--fam-surface);box-shadow:var(--fam-shadow-soft)}
.vbt .vbt-side__photo{height:180px;margin-bottom:4px;border-radius:var(--r-photo)}
.vbt .vbt-side__card>:not(.vbt-side__photo){margin-inline:8px}
.vbt .vbt-side__title{font-size:20px;font-weight:800;line-height:1.25}
.vbt .vbt-side__book{width:auto;white-space:normal}
.vbt .vbt-side__note{font-size:13px;font-weight:600;color:var(--fam-muted);text-align:center}

/* ---------- Row cards (.org departures, .online stops and times) ---------- */
.vbt .vbt-rows{display:grid;gap:16px;list-style:none}
.vbt .vbt-row{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:16px 20px;align-items:start;padding:20px 24px;border-radius:var(--r-panel);background:var(--fam-surface);box-shadow:var(--fam-shadow-card)}
.vbt .vbt-row__photo{width:72px;height:72px;border-radius:16px}
.vbt .vbt-row__body{display:grid;gap:8px;min-width:0}
.vbt .vbt-row__title{font-size:20px;font-weight:800;line-height:1.25}
.vbt .vbt-row__meta{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fam-accent)}
.vbt .vbt-row__note{font-size:14px;color:var(--fam-muted)}
.vbt .vbt-row__action{align-self:center}
/* Departure times in season (.org): three compact cards in a row. */
.vbt .vbt-rows--grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.vbt .vbt-rows--grid .vbt-row{grid-template-columns:72px minmax(0,1fr);grid-template-rows:1fr auto;padding:20px;border-radius:var(--r-card)}
.vbt .vbt-rows--grid .vbt-row__action{grid-column:1/-1;justify-self:start;align-self:end}
.vbt .vbt-timeline{display:grid;gap:6px;margin-top:4px;list-style:none}
.vbt .vbt-timeline__stop{display:flex;align-items:baseline;gap:10px;font-size:16px;font-weight:700}
.vbt .vbt-timeline__num{min-width:28px;color:var(--fam-accent);font-style:italic}
.vbt .vbt-timeline__time{margin-left:auto;font-size:14px;font-weight:500;color:var(--fam-muted);white-space:nowrap}
.vbt .vbt-timeline__end{font-size:14px;font-weight:600;color:var(--fam-muted)}

/* ---------- Steps "How to book" ---------- */
.vbt .vbt-steps{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;list-style:none}
.vbt .vbt-step{display:flex;flex-direction:column;gap:10px;padding:28px;border-radius:var(--r-card);background:var(--fam-surface);box-shadow:var(--fam-shadow-card)}
.vbt .vbt-step__num{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--fam-tint);color:var(--fam-accent);font-size:22px;font-weight:800}
.vbt .vbt-step__title{font-size:20px;font-weight:800;line-height:1.25}
.vbt .vbt-step__text{font-size:15px;line-height:1.55;color:var(--fam-muted)}

/* ---------- Map card (.online) and the map in the site palette ---------- */
.vbt .vbt-map-card{padding:10px;border-radius:var(--r-card);background:var(--fam-surface);box-shadow:var(--fam-shadow-soft)}
.vbt .vbt-map-card .vbt-map{border-radius:var(--r-photo);box-shadow:none}
.vbt .vbt-map__sea{fill:var(--fam-tint)}
.vbt .vbt-map__land{fill:var(--fam-sand);stroke:rgba(var(--fam-ink-rgb),.18)}
.vbt .vbt-map__route--141,.vbt .vbt-map__toggle--141 .vbt-map__swatch{stroke:var(--fam-accent);color:var(--fam-accent)}
.vbt .vbt-map__route--40,.vbt .vbt-map__toggle--40 .vbt-map__swatch{stroke:var(--fam-route-2);color:var(--fam-route-2)}
.vbt .vbt-map__route--5,.vbt .vbt-map__toggle--5 .vbt-map__swatch{stroke:var(--fam-route-3);color:var(--fam-route-3)}
.vbt .vbt-map__route[data-off]{display:none}
.vbt .vbt-map__legend-row[data-route="141"] line{stroke:var(--fam-accent)}
.vbt .vbt-map__legend-row[data-route="40"] line{stroke:var(--fam-route-2)}
.vbt .vbt-map__legend-row[data-route="5"] line{stroke:var(--fam-route-3)}
.vbt .vbt-map__label{fill:var(--fam-ink)}
.vbt .vbt-map__dot{fill:var(--fam-surface);stroke:var(--fam-accent);stroke-width:3px}
.vbt .vbt-map__pin:is(:hover,:focus-visible) .vbt-map__label-bg{stroke:var(--fam-accent);stroke-opacity:1}
.vbt .vbt-map__pin{outline:none}
.vbt .vbt-map-figure{margin:0}
.vbt .vbt-map__toggles{display:flex;flex-wrap:wrap;gap:8px;padding:6px 6px 14px}
/* Route toggles: A's filter pills. On: white with the route's colour dot and an accent ring; off: muted, hollow dot. */
.vbt .vbt-map__toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 18px;border:0;border-radius:var(--r-pill);background:var(--fam-surface);box-shadow:inset 0 0 0 1.5px rgba(var(--fam-accent-rgb),.55);color:var(--fam-ink);font-size:15px;font-weight:700;text-align:left;cursor:pointer;transition:background-color 200ms var(--ease-hover),color 200ms var(--ease-hover),box-shadow 200ms var(--ease-hover)}
.vbt .vbt-map__toggle:hover{box-shadow:inset 0 0 0 2px var(--fam-accent)}
.vbt .vbt-map__toggle[aria-pressed="false"]{background:transparent;box-shadow:inset 0 0 0 1px var(--fam-line);color:var(--fam-muted)}
.vbt .vbt-map__swatch{flex:none;display:inline-block;width:12px;height:12px;border-radius:50%;background:currentColor}
.vbt .vbt-map__toggle[aria-pressed="false"] .vbt-map__swatch{background:transparent;box-shadow:inset 0 0 0 2px currentColor}
.vbt .vbt-map__phone{display:none}
.vbt .vbt-map__route--141 .vbt-map__coastal{stroke:var(--fam-accent)}.vbt .vbt-map__route--40 .vbt-map__coastal{stroke:var(--fam-route-2)}
.vbt .vbt-map__minutes{flex:none;white-space:nowrap}
.vbt .vbt-map__route-text a{color:inherit;text-decoration:none}
.vbt .vbt-map__route-text a:hover{color:var(--fam-accent)}
.vbt .vbt-map__route-text h3{text-wrap:wrap}
.vbt .vbt-map__step{display:flex;justify-content:space-between;gap:10px}
.vbt .vbt-map__caption{padding:12px 8px 4px;font-size:13px;color:var(--fam-muted)}
.vbt .vbt-map__caption a{color:var(--fam-accent)}
.vbt .vbt-map__text{margin-top:32px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.vbt .vbt-map__text>h2,.vbt .vbt-map__text>h3,.vbt .vbt-map__text>.vbt-map__stops,.vbt .vbt-map__text>.vbt-map__note{grid-column:1/-1}
.vbt .vbt-map__text-heading{font-size:24px}
.vbt .vbt-map__route-text{padding:22px 24px;border-radius:var(--r-panel);background:var(--fam-surface);box-shadow:var(--fam-shadow-card)}
.vbt .vbt-map__route-text h3{font-size:18px}
.vbt .vbt-map__route-text ol{display:grid;gap:6px;margin-top:12px;padding-left:20px;font-size:15px}
.vbt .vbt-map__distance,.vbt .vbt-map__minutes,.vbt .vbt-map__coords,.vbt .vbt-map__stop-routes,.vbt .vbt-map__note{font-size:14px;color:var(--fam-muted)}
.vbt .vbt-map__stops{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:10px;list-style:none}
.vbt .vbt-map__stops li{display:grid;padding:14px 18px;border-radius:16px;background:var(--fam-surface);box-shadow:var(--fam-shadow-card);scroll-margin-top:24px}
.vbt .vbt-map__stops li:target{box-shadow:0 0 0 3px var(--fam-accent)}
.vbt .vbt-map__placeholder{padding:48px;border-radius:var(--r-photo);background:var(--fam-tint);text-align:center}

/* Wide screens: the map card and the route cards side by side (the map is 4:5, the cards stack beside it). */
@media (min-width:1101px){
  .vbt .vbt-map-section{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);column-gap:32px;align-items:start}
  .vbt .vbt-map-section>.vbt-section__head{grid-column:1/-1}
  .vbt .vbt-map-section .vbt-map__text{grid-template-columns:minmax(0,1fr);margin-top:0;gap:16px}
  .vbt .vbt-map-section .vbt-map__text-heading{margin-top:4px}
}
/* Four list items: two by two, not three and an orphan. */
.vbt .vbt-list__items:has(>li:nth-child(4):last-child){grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}

/* ---------- Chooser (.al /choose/) ---------- */
.vbt .vbt-chooser__form{display:grid;gap:18px;margin-bottom:32px}
.vbt .vbt-chooser__question{min-width:0;padding:0;border:0}
.vbt .vbt-chooser__question legend{margin-bottom:10px;padding:0;font-size:15px;font-weight:700;color:var(--fam-muted)}
.vbt .vbt-cards:has([data-chosen="false"]) [data-chosen="true"] .vbt-card__surface{box-shadow:0 0 0 3px var(--fam-accent),var(--fam-shadow-card-hover)}
.vbt [data-chosen="false"] .vbt-card__surface{background:rgba(255,255,255,.55);box-shadow:inset 0 0 0 1px var(--fam-line)}
.vbt [data-chosen="false"] .vbt-photo{opacity:.55;filter:grayscale(.8);transition:opacity var(--hover-duration) var(--ease-hover),filter var(--hover-duration) var(--ease-hover)}

/* ---------- Related links, updated line, privacy ---------- */
.vbt .vbt-related__links{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px;list-style:none}
.vbt .vbt-related--cards .vbt-related__links{margin-top:28px}
.vbt .vbt-related__link{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:12px 20px;border-radius:var(--r-pill);background:var(--fam-surface);box-shadow:var(--fam-shadow-card);color:var(--fam-ink);font-weight:700;text-decoration:none}
.vbt .vbt-related__link:hover{color:var(--fam-accent)}
.vbt .vbt-updated{max-width:calc(var(--content) + 2 * var(--gutter));margin:0 auto;padding:8px var(--gutter) 56px;font-size:14px;font-weight:600;color:var(--fam-muted)}
.vbt .vbt-section>.vbt-updated{margin:32px 0 0;padding:0}
.vbt .vbt-privacy__links{display:flex;flex-wrap:wrap;gap:8px 20px}
.vbt .vbt-privacy__links a{color:var(--fam-accent);font-weight:700}
.vbt .vbt-privacy>.vbt-privacy__heading{max-width:760px;margin:40px 0 12px;font-size:24px;font-weight:800;line-height:1.25;color:var(--fam-ink)}
.vbt .vbt-privacy>p+.vbt-privacy__heading{margin-top:40px}
.vbt .vbt-privacy>.vbt-privacy__links{margin-top:32px}
.vbt .vbt-privacy__table{max-width:1040px;margin-top:20px;border-radius:var(--r-panel);background:var(--fam-surface);box-shadow:var(--fam-shadow-card);overflow:hidden}
.vbt .vbt-privacy__table table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.5}
.vbt .vbt-privacy__table caption{padding:16px 20px 0;text-align:left;font-weight:800;color:var(--fam-ink)}
.vbt .vbt-privacy__table :is(th,td){padding:12px 20px;text-align:left;vertical-align:top;border-bottom:1px solid var(--fam-line)}
.vbt .vbt-privacy__table thead th{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--fam-muted)}
.vbt .vbt-privacy__table tbody tr:last-child>*{border-bottom:0}
.vbt .vbt-privacy__table code{font:700 13px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:nowrap;color:var(--fam-ink)}
.vbt[data-page="404"] .vbt-main{padding:8px 0 48px}

/* ---------- Footer (Figma 105:638: the sand band) ---------- */
.vbt .vbt-footer{--footer-pad:36px;margin-top:24px;padding:48px var(--gutter) 0;background:var(--fam-sand);color:var(--fam-ink);font-size:14px;font-weight:600}
.vbt .vbt-footer>*{max-width:var(--content);margin-left:auto;margin-right:auto}
.vbt .vbt-footer__top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 40px}
.vbt .vbt-footer .vbt-wordmark__by{background:var(--fam-bg)}
.vbt :is(.vbt-footer__nav ul,.footer-languages ul,.vbt-footer__legal){display:flex;flex-wrap:wrap;gap:0 4px;list-style:none}
.vbt :is(.vbt-footer__nav,.footer-languages,.vbt-footer__legal) a{display:inline-flex;align-items:center;min-height:36px;padding:6px 10px;border-radius:var(--r-pill);color:var(--fam-ink);text-decoration:none}
.vbt :is(.vbt-footer__nav,.footer-languages,.vbt-footer__legal) a:hover{background:rgba(var(--fam-ink-rgb),.06);text-decoration:underline}
.vbt .vbt-footer__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;margin-top:28px;padding-top:20px;border-top:1px solid var(--fam-line)}
.vbt .vbt-ownership{font-size:14px;font-weight:600}
.vbt .vbt-ownership a{color:var(--fam-pill-ink);font-weight:800}
.vbt .vbt-footer__legal a{color:var(--fam-muted-on-sand)}
.vbt .vbt-footer__bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;margin-top:16px;padding:16px 0 calc(var(--footer-pad) + var(--consent-space,0px));border-top:1px solid var(--fam-line)}
.vbt .vbt-footer__contact{display:flex;flex-wrap:wrap;gap:8px}
.vbt .vbt-footer__contact a{display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;border-radius:var(--r-pill);background:var(--fam-surface);color:var(--fam-ink);font-weight:700;text-decoration:none;box-shadow:0 4px 12px rgba(var(--fam-ink-rgb),.06);transition:box-shadow var(--hover-duration) var(--ease-hover),color var(--hover-duration) var(--ease-hover)}
.vbt .vbt-footer__contact a:hover{color:var(--fam-accent);box-shadow:0 8px 20px rgba(var(--fam-ink-rgb),.12)}
.vbt .footer-languages a{min-height:32px;padding:4px 10px;font-size:13px}
.vbt .vbt-footer__rights{color:var(--fam-muted-on-sand);font-size:13px}
.vbt #analytics-preferences{min-height:36px;margin-left:8px;color:var(--fam-muted-on-sand);font-size:13px;font-weight:600}

/* ---------- Consent panel (MARKUP §4; ids and classes owned by assets/analytics.js) ---------- */
.vbt .consent-panel{position:fixed;z-index:60;left:20px;bottom:20px;width:min(560px,calc(100vw - 40px));max-height:calc(100svh - 40px);overflow:auto;padding:24px;border-radius:var(--r-panel);background:var(--fam-surface);color:var(--fam-ink);box-shadow:0 24px 60px rgba(var(--fam-ink-rgb),.22)}
.vbt .consent-panel h2{font-size:22px;font-weight:800;line-height:1.2}
.vbt .consent-panel p{margin-top:12px;font-size:15px;line-height:1.5;color:var(--fam-muted)}
.vbt .consent-panel #analytics-choice:empty{display:none}
.vbt .consent-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.vbt .consent-actions .button{min-height:48px;padding:12px 16px;border-radius:999px;border:1.5px solid rgba(var(--fam-accent-rgb),.45);background:transparent;color:var(--fam-accent);font-weight:800}
.vbt .consent-actions .button:hover{background:var(--fam-tint)}
.vbt .consent-links{display:flex;justify-content:space-between;gap:16px;margin-top:14px;font-size:14px}
.vbt .consent-links a{text-decoration:underline}
.vbt :is(.consent-links a,#analytics-close){color:var(--fam-accent);font-weight:700}
.vbt :is(#analytics-close,#analytics-preferences){padding:0;border:0;background:none;font:inherit;text-decoration:underline;cursor:pointer}

/* ---------- Sticky book bar (Figma 105:750), phones only ---------- */
.vbt .vbt-sticky{display:none}

/* ---------- Motion (FAMILY-SPEC §4). Without JS everything is visible and still. ---------- */
@keyframes vbt-fade-up{from{opacity:0;transform:translate3d(0,var(--fade-distance),0)}to{opacity:1;transform:none}}
@keyframes vbt-hero-in{from{opacity:.85;transform:scale(.977)}to{opacity:1;transform:none}}
@keyframes vbt-fade-in{from{opacity:0}to{opacity:1}}
/* Page load: gated on the scripting media feature (not on the .js class, which would blink). */
@media (scripting:enabled) and (prefers-reduced-motion:no-preference){
  .vbt .fade-up{animation:vbt-fade-up var(--fade-duration) var(--ease) both}
  .vbt .vbt-hero__body>.fade-up:nth-child(1){animation-delay:120ms}
  .vbt .vbt-hero__body>.fade-up:nth-child(2){animation-delay:200ms}
  .vbt .vbt-hero__body>.fade-up:nth-child(3){animation-delay:280ms}
  .vbt .vbt-hero__body>.fade-up:nth-child(4){animation-delay:360ms}
  .vbt .vbt-hero__body>.fade-up:nth-child(n+5){animation-delay:440ms}
  .vbt .vbt-hero{animation:vbt-hero-in 900ms var(--ease) both}
  .vbt .vbt-trust{animation:vbt-fade-in 600ms var(--ease) 360ms both}
}
.js [data-reveal]:not([data-revealed="true"]){opacity:0;transform:translate3d(0,var(--reveal-distance),0)}
.js [data-reveal]{transition:opacity var(--reveal-duration) var(--ease) var(--reveal-delay,0ms),transform var(--reveal-duration) var(--ease) var(--reveal-delay,0ms)}

/* ---------- Responsive ---------- */
@media (max-width:1240px){
  .vbt .vbt-header{padding:0 32px}
  .vbt .vbt-nav__list{gap:4px 18px}
}
@media (max-width:1100px){
  .vbt .vbt-nav,.vbt .vbt-header__cta{display:none}
  .vbt .vbt-menu-toggle{display:inline-block}
  .vbt .vbt-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vbt .vbt-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}
  .vbt .vbt-tiles--light{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vbt .vbt-map__text,.vbt .vbt-rows--grid{grid-template-columns:minmax(0,1fr)}
  .vbt .vbt-map__text>h2{grid-column:auto}
  .vbt .vbt-trust__items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:24px 32px}
  .vbt .vbt-article{grid-template-columns:minmax(0,1fr)}
  .vbt .vbt-side{position:static;max-width:520px}
}
@media (min-width:1101px){.vbt .vbt-mobile-nav{display:none!important}}
@media (max-width:1000px){
  .vbt .vbt-main>.vbt-text:has(>.vbt-section__head),.vbt .vbt-main>.vbt-faq{grid-template-columns:minmax(0,1fr)}
  .vbt .vbt-main>.vbt-text>.vbt-section__head{grid-row:auto;margin-bottom:20px}
  .vbt .vbt-main>.vbt-text>p{grid-column:1}
  .vbt .vbt-booking__card{grid-template-columns:minmax(0,1fr)}
  .vbt .vbt-steps{grid-template-columns:minmax(0,1fr)}
  .vbt .vbt-search{flex-wrap:wrap}
  .vbt .vbt-search__field--trip{flex-basis:100%}
  .vbt .vbt-search__field--date::before{display:none}
  .vbt .vbt-search__action{flex-basis:100%}
}
@media (max-width:760px){
  .vbt{font-size:16px}
  body.vbt{font-size:16px}
  .vbt .vbt-header{min-height:64px;padding:0 10px 0 20px;gap:8px}
  .vbt .vbt-wordmark__name{font-size:20px;font-weight:700}
  .vbt .vbt-wordmark__by{font-size:11px;padding:3px 8px}
  .vbt .vbt-header__actions{gap:4px}
  .vbt .vbt-header .vbt-lang,.vbt .vbt-header label[for="language"]{display:none}
  .vbt .vbt-breadcrumbs{padding-bottom:10px;font-size:13px}
  .vbt .vbt-hero{--r-hero:26px;margin:0 12px}
  .vbt .vbt-hero--full{min-height:520px;padding:56px 20px 24px}
  .vbt .vbt-hero--compact{min-height:0;padding:32px 20px 28px}
  .vbt .vbt-hero--compact .vbt-hero__title{font-size:30px}
  .vbt .vbt-hero__body{gap:14px}
  .vbt .vbt-eyebrow{font-size:12px}
  .vbt .vbt-hero__title{font-size:31px;line-height:1.1;letter-spacing:0}
  .vbt .vbt-hero--full{min-height:0}
  .vbt .vbt-hero--trip{min-height:440px}
  .vbt .vbt-hero__sub{font-size:15px}
  .vbt .vbt-map__wide{display:none}
  .vbt .vbt-map__phone{display:block}
  .vbt .vbt-booking__card{gap:20px}
  .vbt .vbt-search{padding:6px;border-radius:20px}
  .vbt .vbt-search__field{flex-basis:calc(50% - 3px);padding:10px 14px}
  .vbt .vbt-search__field--trip{flex-basis:100%}
  .vbt .vbt-search__field--guests::before{display:block}
  .vbt .vbt-search__field--trip+.vbt-search__field::before{display:none}
  .vbt .vbt-search__label{font-size:11px}
  .vbt .vbt-search__value{font-size:16px}
  .vbt .vbt-search__action{min-height:52px;padding:14px;border-radius:14px}
  .vbt .vbt-trust{margin:20px 12px 4px}
  .vbt .vbt-trust__items{gap:10px;padding:0;background:none}
  .vbt .vbt-trust__item{flex-direction:column;align-items:flex-start;gap:2px;min-width:0;padding:14px;border-radius:18px;background:var(--fam-tint)}
  .vbt .vbt-trust__link{flex-direction:column;gap:2px;min-width:0}
  .vbt .vbt-trust__big{max-width:100%;font-size:22px;white-space:normal;overflow-wrap:anywhere}
  .vbt .vbt-trust__label{max-width:100%;font-size:13px;overflow-wrap:anywhere}
  .vbt .vbt-trust__part{margin:12px 4px 0;font-size:14px;text-align:left}
  .vbt .vbt-main>.vbt-section,.vbt .vbt-main>.vbt-related,.vbt .vbt-article{padding-top:40px;padding-bottom:40px}
  .vbt .vbt-main>.vbt-lead-section{padding-top:32px;padding-bottom:0}
  .vbt .vbt-section__head{margin-bottom:18px}
  .vbt .vbt-section__sub{font-size:15px}
  .vbt .vbt-text>p{font-size:17px;line-height:1.6}
  .vbt .vbt-privacy>.vbt-privacy__heading{margin-top:32px;font-size:20px}
  .vbt .vbt-privacy__table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .vbt .vbt-privacy__table :is(table,tbody,tr,th,td){display:block}
  .vbt .vbt-privacy__table tbody tr{padding:14px 18px;border-bottom:1px solid var(--fam-line)}
  .vbt .vbt-privacy__table tbody :is(th,td){padding:2px 0;border:0}
  .vbt .vbt-privacy__table tbody td::before{content:attr(data-label) ": ";font-weight:800;color:var(--fam-muted)}
  .vbt .vbt-privacy__table caption{display:block;padding:16px 18px 4px}
  .vbt .vbt-pill{padding:8px 14px;font-size:14px}
  .vbt .vbt-cards{grid-template-columns:minmax(0,1fr);gap:16px}
  .vbt .vbt-cards[data-collapsed]>.vbt-card:nth-child(n+4){display:none}
  .vbt .vbt-card__surface{padding:8px;border-radius:22px}
  .vbt .vbt-card__photo{height:200px;border-radius:18px}
  .vbt .vbt-card__badge{top:12px;left:12px}
  .vbt .vbt-card__body{padding:14px}
  .vbt .vbt-card__title{min-height:0}
  .vbt .vbt-button--book{min-width:0;padding:12px 20px}
  .vbt .vbt-button--book::after{display:none}
  .vbt .vbt-band{margin:8px 0;padding:32px 20px}
  .vbt .vbt-tiles{grid-template-columns:minmax(0,1fr);gap:14px;margin-top:20px}
  .vbt .vbt-band .vbt-tiles:not(.vbt-tiles--route) .vbt-tile{flex-direction:row;align-items:baseline;gap:14px;padding:0;border:0;background:none}
  .vbt .vbt-band .vbt-tiles:not(.vbt-tiles--route) .vbt-tile__link{flex-direction:row;align-items:baseline;gap:14px}
  .vbt .vbt-band .vbt-tiles:not(.vbt-tiles--route) .vbt-tile__desc{display:none}
  .vbt .vbt-tile__num{font-size:22px}
  .vbt .vbt-tile__name{font-size:16px}
  .vbt .vbt-tiles--route .vbt-tile:not(.vbt-tile--end){display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:4px 12px;padding:12px 16px;border-radius:16px}
  .vbt .vbt-tiles--light{grid-template-columns:minmax(0,1fr)}
  .vbt .vbt-faq__card{padding:4px 20px;border-radius:22px}
  .vbt .vbt-faq__question{font-size:17px}
  .vbt .vbt-faq__answer{padding-right:0}
  .vbt .vbt-included__col{padding:22px}
  .vbt .vbt-booking__card{padding:24px 18px;border-radius:22px}
  .vbt .vbt-booking__form{flex-wrap:wrap}
  .vbt .vbt-booking__form .vbt-search__action{flex-basis:100%;justify-content:center}
  .vbt .vbt-row{grid-template-columns:56px minmax(0,1fr);padding:16px}
  .vbt .vbt-row__photo{width:56px;height:56px;border-radius:14px}
  .vbt .vbt-row__action{grid-column:1/-1;justify-self:stretch}
  .vbt .vbt-step{padding:22px}
  .vbt .vbt-map-card{padding:6px;border-radius:22px}
  .vbt .vbt-footer{--footer-pad:110px;padding-top:32px;font-size:13px}
  .vbt .vbt-footer__row,.vbt .vbt-footer__bottom{flex-direction:column;align-items:flex-start}
  .vbt .vbt-sticky{display:flex;align-items:center;justify-content:space-between;gap:14px;position:fixed;z-index:40;left:0;right:0;bottom:0;padding:14px 20px calc(14px + env(safe-area-inset-bottom));border-radius:var(--r-panel) var(--r-panel) 0 0;background:var(--fam-surface);box-shadow:var(--fam-shadow-sticky);transform:translate3d(0,110%,0);transition:transform 380ms var(--ease)}
  .vbt .vbt-sticky[data-state="shown"]{transform:none}
  .vbt .vbt-sticky__info{display:grid;gap:0;min-width:0}
  .vbt .vbt-sticky .vbt-price__amount{font-size:20px;font-weight:700}
  .vbt .vbt-sticky__note{font-size:12px;color:var(--fam-muted)}
  .vbt .vbt-sticky__action{flex:none;padding:14px 22px}
  body.vbt .consent-panel{left:8px;right:8px;bottom:8px;width:auto;max-height:min(60svh,420px);padding:16px 18px;border-radius:18px}
  body.vbt .consent-panel h2{font-size:18px}
  body.vbt .consent-panel p{margin-top:6px;font-size:14px;line-height:1.45}
  body.vbt .consent-actions{gap:8px;margin-top:12px}
  body.vbt .consent-actions .button{min-height:44px;padding:10px 12px}
  body.vbt .consent-links{margin-top:10px}
  body.vbt .consent-panel:not([hidden])~.vbt-sticky{visibility:hidden}
  .vbt{--fade-distance:28px;--reveal-distance:20px}
  @media (scripting:enabled) and (prefers-reduced-motion:no-preference){.vbt .vbt-hero{animation-name:vbt-fade-in}}
}
/* 320–380 px: the wordmark, language and menu still fit one line; long words wrap. */
@media (max-width:380px){
  .vbt .vbt-header{padding:0 4px 0 14px}
  .vbt .vbt-wordmark{flex:1 1 auto}
  .vbt .vbt-wordmark__name{font-size:17px}
  .vbt .vbt-lang{max-width:84px;padding-right:20px;font-size:13px}
  .vbt .vbt-hero__title{font-size:30px}
  .vbt .vbt-search__field{flex-basis:100%}
  .vbt .vbt-search__field::before{display:none}
  .vbt .vbt-card__foot{flex-direction:column;align-items:stretch}
  .vbt .vbt-card__foot .vbt-button--book{width:100%}
}
@media (max-width:359px){.vbt .vbt-header .vbt-wordmark__by{display:none}}

/* ---------- Reduced motion: everything in place, nothing moves (PLAN §8) ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .vbt *,.vbt *::before,.vbt *::after{animation:none!important;transition:none!important}
  .js .fade-up,.js [data-reveal]:not([data-revealed="true"]){opacity:1;transform:none}
  .vbt .vbt-photo img,.vbt .vbt-card__surface,.vbt .vbt-button,.vbt .vbt-tile{transform:none!important}
}
.reduce-motion{scroll-behavior:auto}
.reduce-motion .vbt *,.reduce-motion .vbt *::before,.reduce-motion .vbt *::after{animation:none!important;transition:none!important}
.reduce-motion .fade-up,.reduce-motion [data-reveal]:not([data-revealed="true"]){opacity:1!important;transform:none!important}
.reduce-motion .vbt .vbt-photo img,.reduce-motion .vbt .vbt-card__surface,.reduce-motion .vbt .vbt-button,.reduce-motion .vbt .vbt-tile{transform:none!important}

/* ---------- Stops and times (.online): one card per trip with a vertical stop timeline ---------- */
.vbt .vbt-card__photo--short{height:200px}
.vbt .vbt-card--times .vbt-card__title{min-height:0}
.vbt .vbt-timeline{position:relative;display:grid;gap:0;margin:4px 0 8px;padding-left:22px;list-style:none}
.vbt .vbt-timeline::before{content:"";position:absolute;left:6px;top:12px;bottom:12px;border-left:2px dotted rgba(var(--fam-accent-rgb),.45)}
.vbt .vbt-timeline>li{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;padding:6px 0;border-bottom:1px solid var(--fam-divider)}
.vbt .vbt-timeline>li:last-child{border-bottom:0}
.vbt .vbt-timeline>li::before{content:"";position:absolute;left:-21px;top:50%;width:12px;height:12px;margin-top:-6px;border-radius:50%;background:var(--fam-surface);box-shadow:inset 0 0 0 3px var(--fam-accent)}
.vbt .vbt-timeline__end{font-size:14px;font-weight:600;color:var(--fam-muted)}
.vbt .vbt-timeline__end::before{box-shadow:inset 0 0 0 3px var(--fam-line)!important}
.vbt .vbt-timeline__name{font-size:16px;font-weight:700;color:var(--fam-ink)}
.vbt .vbt-timeline .vbt-time{flex:none}
