/* Generated by build/scope-css.js from ../new front/css/style.css — do not edit by hand. */ /* ========================================================= Tokens ========================================================= */ :root { --c-black: #000; --c-white: #fff; --c-accent: #fc0; --c-teal: #2cafc2; --c-teal-05: rgba(44, 175, 194, 0.05); --c-green: #34c759; --c-red: #ff383c; --c-teal-20: rgba(44, 175, 194, 0.2); --c-ink: #101317; --c-muted: rgba(0, 0, 0, 0.5); --c-line: rgba(0, 0, 0, 0.1); --c-glass: rgba(0, 0, 0, 0.5); --r-pill: 2.5rem; --r-card: 1.5rem; --r-xl: 2rem; --fs-body: 1rem; --fs-hero: clamp(2.25rem, 1.25rem + 4.4vw, 4rem); --fs-h2: clamp(1.75rem, 1.15rem + 2.6vw, 2.5rem); --fs-card: clamp(1.125rem, 0.95rem + 0.75vw, 1.5rem); --sp-1: 0.5rem; --sp-2: 0.6875rem; --sp-3: 1rem; --sp-4: 1.5rem; --sp-5: 2rem; --sp-6: clamp(2.5rem, 1.5rem + 3.5vw, 5rem); --control-h: clamp(2.75rem, 2.4rem + 0.9vw, 3rem); --container: 81rem; --gutter: clamp(1rem, 0.4rem + 2.2vw, 3rem); --page-inset: clamp(0.5rem, 0.2rem + 0.6vw, 0.75rem); --header-h: calc(var(--control-h) + var(--sp-5)); --gap: clamp(0.75rem, 0.4rem + 1vw, 1.5rem); --ease: cubic-bezier(0.4, 0, 0.2, 1); } /* ========================================================= Base ========================================================= */ .vc-app.vc-app *, .vc-app.vc-app *::before, .vc-app.vc-app *::after { box-sizing: border-box; } .vc-app.vc-app { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; overflow-x: hidden; } .vc-app.vc-app { margin: 0; font-family: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; font-size: var(--fs-body); line-height: 1.5; color: var(--c-ink); background: var(--c-white); overflow-x: hidden; } .vc-app.vc-app img, .vc-app.vc-app svg { display: block; max-width: 100%; } .vc-app.vc-app a { color: inherit; text-decoration: none; } .vc-app.vc-app button { font: inherit; color: inherit; border: 0; background: none; cursor: pointer; } .vc-app.vc-app ul, .vc-app.vc-app ol { margin: 0; padding: 0; list-style: none; } .vc-app.vc-app blockquote, .vc-app.vc-app figure, .vc-app.vc-app dl, .vc-app.vc-app dd { margin: 0; } .vc-app.vc-app :where(a, .vc-app.vc-app button, .vc-app.vc-app input, .vc-app.vc-app select, .vc-app.vc-app summary):focus-visible { outline: 2px solid var(--c-teal); outline-offset: 3px; border-radius: 0.25rem; } .vc-app.vc-app .sprite { position: absolute; width: 0; height: 0; overflow: hidden; } .vc-app.vc-app .skip-link { position: absolute; left: -100vmax; top: var(--sp-1); z-index: 100; padding: var(--sp-1) var(--sp-3); border-radius: var(--r-pill); background: var(--c-white); color: var(--c-black); } .vc-app.vc-app .skip-link:focus { left: var(--sp-1); } .vc-app.vc-app .container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); } .vc-app.vc-app .icon { width: 1rem; height: 1rem; flex: none; } .vc-app.vc-app .icon--12 { width: 0.75rem; height: 0.75rem; } .vc-app.vc-app .icon--14 { width: 0.875rem; height: 0.875rem; } .vc-app.vc-app .icon--20 { width: 1.25rem; height: 1.25rem; } .vc-app.vc-app .icon--24 { width: 1.5rem; height: 1.5rem; } /* ========================================================= Buttons, pills, chips ========================================================= */ .vc-app.vc-app .btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--sp-1); min-height: var(--control-h); padding-inline: var(--sp-4); border-radius: var(--r-pill); font-weight: 700; white-space: nowrap; transition: transform 0.2s var(--ease), filter 0.2s var(--ease), background 0.2s var(--ease); } .vc-app.vc-app .btn:hover { filter: brightness(0.94); transform: translateY(-1px); } .vc-app.vc-app .btn--accent { background: var(--c-accent); color: var(--c-black); } .vc-app.vc-app .btn--dark { background: var(--c-black); color: var(--c-white); } .vc-app.vc-app .btn--white { background: var(--c-white); color: var(--c-black); font-weight: 500; } .vc-app.vc-app .btn--ghost { border: 1px solid var(--c-line); background: var(--c-white); color: var(--c-black); font-weight: 500; } .vc-app.vc-app .btn--ghost:hover { filter: none; background: rgba(0, 0, 0, 0.04); } .vc-app.vc-app .btn--wide { justify-content: space-between; width: 100%; padding-inline: var(--sp-3); } .vc-app.vc-app .icon-btn { display: inline-grid; place-items: center; aspect-ratio: 1; width: var(--control-h); border-radius: var(--r-pill); color: var(--c-white); background: var(--c-glass); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); transition: background 0.2s var(--ease); } .vc-app.vc-app .icon-btn:hover { background: rgba(0, 0, 0, 0.7); } .vc-app.vc-app .pill { display: inline-flex; align-items: center; gap: var(--sp-1); margin: 0; padding: 0.375rem var(--sp-3); border-radius: var(--r-pill); color: var(--c-white); background: var(--c-glass); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); } .vc-app.vc-app .chip { display: inline-flex; align-items: center; gap: var(--sp-1); padding: 0.125rem var(--sp-1); border-radius: var(--r-pill); font-size: 0.75rem; font-weight: 700; line-height: 1.6; white-space: nowrap; } .vc-app.vc-app .chip--accent { background: var(--c-accent); color: var(--c-black); } .vc-app.vc-app .chip--glass { color: var(--c-white); background: var(--c-glass); font-weight: 400; -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); } .vc-app.vc-app .rating { position: absolute; left: var(--sp-2); top: var(--sp-2); z-index: 2; display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.125rem var(--sp-1); border-radius: var(--r-pill); color: var(--c-white); background: var(--c-glass); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); } .vc-app.vc-app .rating__star { color: var(--c-accent); } .vc-app.vc-app .rating b { font-size: 0.875rem; font-weight: 500; } .vc-app.vc-app .rating i { font-size: 0.75rem; font-style: normal; font-weight: 500; opacity: 0.3; } /* key / value pairs used on the cards */ .vc-app.vc-app .meta { display: flex; flex-direction: column; gap: 0.25rem; min-width: 0; } .vc-app.vc-app .meta__k { font-size: 0.75rem; font-weight: 500; } .vc-app.vc-app .meta__v { font-size: 1rem; font-weight: 800; } /* ========================================================= Circular "ring" badge (scroll cue, book now, back to top) ========================================================= */ .vc-app.vc-app .ring-badge { position: relative; display: grid; place-items: center; aspect-ratio: 1; width: clamp(3.25rem, 2.6rem + 2vw, 4.5rem); flex: none; } .vc-app.vc-app .ring-badge__ring { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0.75; animation: spin 16s linear infinite; } .vc-app.vc-app .ring-badge__text { fill: currentColor; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; } .vc-app.vc-app .ring-badge__dot { display: grid; place-items: center; padding: var(--sp-1); border-radius: var(--r-pill); color: var(--c-white); background: var(--c-glass); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); transition: transform 0.2s var(--ease); } .vc-app.vc-app .ring-badge:hover .ring-badge__dot { transform: scale(1.08); } .vc-app.vc-app .ring-badge--accent .ring-badge__dot, .vc-app.vc-app .dcard:hover .ring-badge--card .ring-badge__dot, .vc-app.vc-app .dcard:focus-within .ring-badge--card .ring-badge__dot, .vc-app.vc-app .tcard:hover .ring-badge--card .ring-badge__dot, .vc-app.vc-app .tcard:focus-within .ring-badge--card .ring-badge__dot, .vc-app.vc-app .acard:hover .ring-badge--card .ring-badge__dot, .vc-app.vc-app .acard:focus-within .ring-badge--card .ring-badge__dot { color: var(--c-black); background: var(--c-accent); } .vc-app.vc-app .rail:hover .dcard.is-active:not(:hover):not(:focus-within) .ring-badge__dot, .vc-app.vc-app .rail:hover .acard.is-active:not(:hover):not(:focus-within) .ring-badge__dot, .vc-app.vc-app .bus__grid:hover .tcard.is-active:not(:hover):not(:focus-within) .ring-badge__dot { color: var(--c-white); background: var(--c-glass); } .vc-app.vc-app .ring-badge--scroll { position: absolute; left: 50%; bottom: 0; z-index: 5; /* dark ink stays legible over both the teal hero foot and the white section below */ color: var(--c-ink); transform: translate(-50%, 50%); } .vc-app.vc-app .ring-badge--card { width: clamp(2.875rem, 2.4rem + 1.6vw, 3.875rem); color: var(--c-white); } .vc-app.vc-app .ring-badge--card .ring-badge__text { font-size: 0.875rem; } .vc-app.vc-app .ring-badge--card .ring-badge__dot { padding: 0.4375rem; } .vc-app.vc-app .ring-badge--top { position: absolute; left: 50%; top: 0; color: var(--c-ink); transform: translate(-50%, -50%); } .vc-app.vc-app .ring-badge--top .ring-badge__text { font-size: 0.625rem; letter-spacing: 0.02em; } .vc-app.vc-app .ring-badge--scroll .ring-badge__dot .icon { animation: nudge 2s var(--ease) infinite; } @keyframes spin { to { transform: rotate(360deg); } } @keyframes nudge { 0%, 60%, 100% { transform: translateY(0); } 30% { transform: translateY(0.1875rem); } } /* ========================================================= Header ========================================================= */ .vc-app.vc-app .site-header { position: absolute; inset: var(--page-inset) 0 auto; z-index: 20; padding-block: var(--sp-4); color: var(--c-white); } .vc-app.vc-app .site-header.is-stuck { position: fixed; inset-block-start: 0; padding-block: var(--sp-2); background: rgba(0, 0, 0, 0.55); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); animation: slide-down 0.3s var(--ease); } @keyframes slide-down { from { transform: translateY(-100%); } } .vc-app.vc-app .header__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4); } .vc-app.vc-app .header__left { display: flex; align-items: center; gap: clamp(1.5rem, 0.2rem + 4.5vw, 6rem); min-width: 0; } .vc-app.vc-app .header__logo .logo { width: clamp(4.25rem, 3.6rem + 1.6vw, 5.6875rem); height: auto; } .vc-app.vc-app .header__actions { display: flex; align-items: center; gap: var(--sp-1); } .vc-app.vc-app .nav__list { display: flex; align-items: center; gap: clamp(1rem, 0.1rem + 1.8vw, 2.5rem); } .vc-app.vc-app .nav__link { display: inline-flex; align-items: center; gap: var(--sp-1); font-weight: 500; white-space: nowrap; transition: opacity 0.2s var(--ease); } .vc-app.vc-app .nav__link:hover { opacity: 0.7; } .vc-app.vc-app .nav__item--has-menu { position: relative; } .vc-app.vc-app .nav__toggle .icon--chevron { transition: transform 0.25s var(--ease); } .vc-app.vc-app .nav__toggle[aria-expanded="true"] .icon--chevron { transform: rotate(180deg); } .vc-app.vc-app .nav__submenu { position: absolute; top: calc(100% + var(--sp-2)); left: 0; z-index: 5; display: grid; gap: 0.25rem; min-width: max-content; padding: var(--sp-1); border-radius: 1rem; color: var(--c-black); background: var(--c-white); box-shadow: 0 1.25rem 2.5rem rgba(0, 0, 0, 0.18); opacity: 0; visibility: hidden; transform: translateY(-0.375rem); transition: opacity 0.2s var(--ease), transform 0.2s var(--ease), visibility 0.2s; } .vc-app.vc-app .nav__item--has-menu:hover .nav__submenu, .vc-app.vc-app .nav__toggle[aria-expanded="true"] + .nav__submenu { opacity: 1; visibility: visible; transform: translateY(0); } .vc-app.vc-app .nav__submenu a { display: block; padding: var(--sp-1) var(--sp-3); border-radius: var(--r-pill); font-weight: 500; } .vc-app.vc-app .nav__submenu a:hover { background: rgba(0, 0, 0, 0.06); } .vc-app.vc-app .nav__mobile-cta { display: none; } .vc-app.vc-app .burger { display: none; place-content: center; place-items: center; gap: 0.25rem; aspect-ratio: 1; width: var(--control-h); border-radius: var(--r-pill); background: var(--c-glass); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); } .vc-app.vc-app .burger span { display: block; width: 1.125rem; height: 0.125rem; border-radius: 1px; background: var(--c-white); transition: transform 0.25s var(--ease), opacity 0.25s var(--ease); } .vc-app.vc-app .burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(0.375rem) rotate(45deg); } .vc-app.vc-app .burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; } .vc-app.vc-app .burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-0.375rem) rotate(-45deg); } /* ========================================================= Hero ========================================================= */ .vc-app.vc-app .hero { position: relative; display: grid; align-items: end; margin: var(--page-inset); padding-block: calc(var(--header-h) + var(--sp-6)) clamp(3rem, 1.5rem + 6vw, 6rem); border-radius: var(--r-xl); isolation: isolate; } .vc-app.vc-app .hero__media { position: absolute; inset: 0; z-index: -1; border-radius: inherit; overflow: clip; } .vc-app.vc-app .hero__img { width: 100%; height: 100%; object-fit: cover; object-position: center; } /* Figma gradients: radial vignette + teal fade into the next section */ .vc-app.vc-app .hero__scrim { position: absolute; inset: 0; background: radial-gradient( 39.91% 77.37% at 60.22% 50%, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.5) 100% ), linear-gradient(180deg, rgba(44, 175, 194, 0) 51.6%, var(--c-teal) 100%); } .vc-app.vc-app .hero__content { display: flex; flex-direction: column; align-items: flex-start; gap: var(--sp-4); text-align: left; } .vc-app.vc-app .hero__eyebrow { order: 1; font-size: 1rem; } .vc-app.vc-app .hero__title { order: 2; /* em keeps the two-line break ("Set out on" / "the journey.") at every size */ max-width: 5.4em; margin: 0; font-size: var(--fs-hero); font-weight: 500; line-height: 1.05; letter-spacing: -0.02em; color: var(--c-white); } .vc-app.vc-app .booking { order: 3; width: 100%; max-width: 46.625rem; padding: var(--sp-3); border-radius: var(--r-card); background: var(--c-white); box-shadow: 0 1.5rem 3.5rem rgba(0, 0, 0, 0.18); } .vc-app.vc-app .booking__row { display: flex; align-items: flex-end; gap: var(--sp-3); } .vc-app.vc-app .field { display: flex; flex: 1 1 0; flex-direction: column; gap: var(--sp-2); min-width: 0; } .vc-app.vc-app .field__label { display: flex; align-items: center; gap: var(--sp-1); font-size: 1rem; font-weight: 500; color: var(--c-black); } .vc-app.vc-app .field__label label { cursor: pointer; } .vc-app.vc-app .select { position: relative; display: flex; align-items: center; } .vc-app.vc-app .select__input { width: 100%; min-width: 0; min-height: var(--control-h); padding: 0 calc(var(--sp-3) + 1.5rem) 0 var(--sp-3); border: 1px solid var(--c-line); border-radius: var(--r-pill); font: inherit; font-weight: 500; color: var(--c-black); background: var(--c-white); appearance: none; -webkit-appearance: none; text-overflow: ellipsis; transition: border-color 0.2s var(--ease); } .vc-app.vc-app .select__input::placeholder { color: var(--c-black); opacity: 1; } .vc-app.vc-app .select__input:hover { border-color: rgba(0, 0, 0, 0.3); } .vc-app.vc-app .select__input--date::-webkit-calendar-picker-indicator { opacity: 0; cursor: pointer; } .vc-app.vc-app .select__chevron { position: absolute; right: var(--sp-3); pointer-events: none; color: var(--c-black); } .vc-app.vc-app .booking__submit { flex: none; } /* ========================================================= Section shell + section header ========================================================= */ .vc-app.vc-app .section { padding-block: var(--sp-6); } .vc-app.vc-app .section--tight { padding-block-start: 0; } .vc-app.vc-app .sec-head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: clamp(1.5rem, 0.5rem + 3vw, 4rem); margin-bottom: var(--sp-6); } .vc-app.vc-app .sec-head__title { margin: 0; font-size: var(--fs-h2); font-weight: 800; line-height: 1.1; letter-spacing: -0.03em; } .vc-app.vc-app .sec-head__lead { max-width: 40ch; margin: 0; opacity: 0.7; font-weight: 500; } .vc-app.vc-app .sec-head__actions { display: flex; flex-direction: column; gap: var(--sp-1); width: clamp(8rem, 6rem + 4vw, 9.125rem); } .vc-app.vc-app .rail-nav { display: flex; gap: var(--sp-1); } .vc-app.vc-app .rail-nav__btn { flex: 1 1 0; padding-inline: var(--sp-3); } .vc-app.vc-app .rail-nav__btn[disabled] { opacity: 0.35; cursor: not-allowed; } /* ========================================================= Horizontal rails ========================================================= */ .vc-app.vc-app .rail { display: flex; gap: var(--gap); overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; /* overflow-x:auto forces overflow-y to auto, so the hover glow (a ~3.75rem blur) would be clipped by the scroller. Don't switch to overflow:visible — that kills the horizontal scroll. Instead give the rail enough padding for the glow to paint INSIDE the scroll box, and pull it back with an equal negative margin so the visible spacing is unchanged. Scrolling stays intact. */ margin: calc(var(--sp-5) * -1) calc(var(--gap) * -1); padding: 4.5rem var(--gap); } .vc-app.vc-app .rail::-webkit-scrollbar { display: none; } .vc-app.vc-app .rail > * { scroll-snap-align: start; } .vc-app.vc-app .rail--dest > * { flex: 0 0 calc((100% - 4 * var(--gap)) / 5); } .vc-app.vc-app .rail--art > * { flex: 0 0 calc((100% - 2 * var(--gap)) / 3); } /* ========================================================= Destination card ========================================================= */ .vc-app.vc-app .dcard { position: relative; display: flex; flex-direction: column; justify-content: flex-end; aspect-ratio: 246 / 346; padding: clamp(0.75rem, 0.4rem + 1vw, 1.25rem); border-radius: var(--r-card); color: var(--c-white); overflow: hidden; isolation: isolate; transition: transform 0.3s var(--ease); } .vc-app.vc-app .dcard:hover { transform: translateY(-0.25rem); } .vc-app.vc-app .dcard__img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; } .vc-app.vc-app .dcard::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient( 180deg, rgba(0, 0, 0, 0) 35%, rgba(0, 0, 0, 0.65) 100% ); } /* highlighted card — gradients copied from Figma */ .vc-app.vc-app .dcard.is-active, .vc-app.vc-app .dcard:hover, .vc-app.vc-app .dcard:focus-within { box-shadow: 0 0.75rem 3.75rem 0 rgba(44, 175, 194, 0.5); } .vc-app.vc-app .dcard.is-active::after, .vc-app.vc-app .dcard:hover::after, .vc-app.vc-app .dcard:focus-within::after { background: linear-gradient( 180deg, rgba(255, 255, 255, 0) 51.6%, rgba(255, 255, 255, 0.4) 100% ), linear-gradient(0deg, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)), linear-gradient(180deg, rgba(44, 175, 194, 0) 37.33%, #2cafc2 84.53%); } /* hovering any card in the rail hands the highlight over to it */ .vc-app.vc-app .rail:hover .dcard.is-active:not(:hover):not(:focus-within), .vc-app.vc-app .rail:focus-within .dcard.is-active:not(:hover):not(:focus-within) { box-shadow: none; } .vc-app.vc-app .rail:hover .dcard.is-active:not(:hover):not(:focus-within)::after, .vc-app.vc-app .rail:focus-within .dcard.is-active:not(:hover):not(:focus-within)::after { background: linear-gradient( 180deg, rgba(0, 0, 0, 0) 35%, rgba(0, 0, 0, 0.65) 100% ); } .vc-app.vc-app .dcard__desc { position: absolute; left: clamp(0.75rem, 0.4rem + 1vw, 1.25rem); right: clamp(0.75rem, 0.4rem + 1vw, 1.25rem); top: clamp(2.75rem, 2rem + 2vw, 3.5rem); opacity: 0; transform: translateY(-0.375rem); transition: opacity 0.25s var(--ease), transform 0.25s var(--ease); } .vc-app.vc-app .dcard.is-active .dcard__desc, .vc-app.vc-app .dcard:hover .dcard__desc, .vc-app.vc-app .dcard:focus-within .dcard__desc { opacity: 1; transform: translateY(0); } .vc-app.vc-app .rail:hover .dcard.is-active:not(:hover):not(:focus-within) .dcard__desc, .vc-app.vc-app .rail:focus-within .dcard.is-active:not(:hover):not(:focus-within) .dcard__desc { opacity: 0; transform: translateY(-0.375rem); } .vc-app.vc-app .dcard__desc-k { display: block; font-size: 0.75rem; font-weight: 500; opacity: 0.5; } .vc-app.vc-app .dcard__desc p { margin: 0.25rem 0 0; font-size: 0.875rem; font-weight: 500; line-height: 1.45; } .vc-app.vc-app .dcard__body { display: grid; gap: var(--sp-2); } .vc-app.vc-app .dcard__title { margin: 0; font-size: var(--fs-card); font-weight: 500; letter-spacing: -0.01em; } .vc-app.vc-app .dcard__meta { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--sp-2); } .vc-app.vc-app .dcard__meta .ring-badge { margin-inline-start: auto; } /* ========================================================= Open Top Bus Tours (promo + 2x2 grid) ========================================================= */ .vc-app.vc-app .bus { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--gap); align-items: start; } .vc-app.vc-app .bus__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gap); } .vc-app.vc-app .promo { position: relative; display: flex; flex-direction: column; aspect-ratio: 416 / 526; padding: clamp(1.25rem, 0.6rem + 2vw, 2.5rem); border-radius: var(--r-card); background: var(--c-teal-05); overflow: hidden; isolation: isolate; } .vc-app.vc-app .promo__route { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; opacity: 0.5; } .vc-app.vc-app .promo__head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-3); } .vc-app.vc-app .promo__title { margin: 0; font-size: var(--fs-h2); font-weight: 800; line-height: 1.1; letter-spacing: -0.03em; opacity: 0.8; } .vc-app.vc-app .promo__chip { align-self: flex-start; margin-top: calc(var(--sp-1) * -1); transform: rotate(-6deg); } .vc-app.vc-app .promo__bus { position: relative; /* basis 0 so the coach takes only the space the title and note leave over */ flex: 1 1 0; display: grid; place-items: center; min-height: 0; margin-inline: clamp(-2rem, -0.5rem - 3vw, -0.75rem); /* padding-block: var(--sp-3) var(--sp-4); */ padding-left: 2.5rem; } .vc-app.vc-app .promo__bus img { width: 100%; height: 100%; /* grid items default to min-height:auto, which would keep the intrinsic height */ min-height: 0; object-fit: contain; object-position: left; /* Figma tints the blue coach towards the teal brand colour */ filter: hue-rotate(-32deg) saturate(1.15) drop-shadow(0 1rem 1.5rem rgba(0, 0, 0, 0.18)); } .vc-app.vc-app .promo__note { margin: 0; margin-inline-start: auto; max-width: 15rem; font-weight: 500; color: var(--c-teal); } /* ========================================================= Wide tour card ========================================================= */ .vc-app.vc-app .tcard { position: relative; display: flex; flex-direction: column; justify-content: space-between; aspect-ratio: 416 / 251; padding: clamp(0.875rem, 0.5rem + 1vw, 1.25rem); border-radius: var(--r-card); color: var(--c-white); overflow: hidden; isolation: isolate; transition: transform 0.3s var(--ease); } .vc-app.vc-app .tcard:hover { transform: translateY(-0.25rem); } .vc-app.vc-app .tcard__img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; } .vc-app.vc-app .tcard::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient( 180deg, rgba(0, 0, 0, 0.45) 0%, rgba(0, 0, 0, 0.1) 45%, rgba(0, 0, 0, 0.6) 100% ); } .vc-app.vc-app .tcard.is-active, .vc-app.vc-app .tcard:hover, .vc-app.vc-app .tcard:focus-within { box-shadow: 0 0.75rem 3.75rem 0 rgba(44, 175, 194, 0.5); } .vc-app.vc-app .tcard.is-active::after, .vc-app.vc-app .tcard:hover::after, .vc-app.vc-app .tcard:focus-within::after { background: radial-gradient( 53.59% 137.34% at 50% 46.41%, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.4) 100% ), linear-gradient(0deg, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)), linear-gradient(180deg, rgba(44, 175, 194, 0) 37.33%, #2cafc2 84.53%); } .vc-app.vc-app .bus__grid:hover .tcard.is-active:not(:hover):not(:focus-within), .vc-app.vc-app .bus__grid:focus-within .tcard.is-active:not(:hover):not(:focus-within) { box-shadow: none; } .vc-app.vc-app .bus__grid:hover .tcard.is-active:not(:hover):not(:focus-within)::after, .vc-app.vc-app .bus__grid:focus-within .tcard.is-active:not(:hover):not(:focus-within)::after { background: linear-gradient( 180deg, rgba(0, 0, 0, 0.45) 0%, rgba(0, 0, 0, 0.1) 45%, rgba(0, 0, 0, 0.6) 100% ); } .vc-app.vc-app .tcard__k { font-size: 0.75rem; font-weight: 500; opacity: 0.9; } .vc-app.vc-app .tcard__title { max-width: 14ch; margin: 0; font-size: var(--fs-card); font-weight: 500; line-height: 1.15; letter-spacing: -0.01em; } .vc-app.vc-app .tcard__bottom { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--sp-2); } /* ========================================================= About ========================================================= */ .vc-app.vc-app .about { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr); align-items: center; gap: clamp(1.5rem, 0.5rem + 3vw, 3rem); } .vc-app.vc-app .about__art { position: relative; display: grid; place-items: center; aspect-ratio: 4 / 3; color: var(--c-teal); } .vc-app.vc-app .about__glow { display: none; } /* straight speed-trail band running along the coach's axis */ .vc-app.vc-app .about__trail { position: absolute; left: -34%; right: -34%; top: 42%; height: 28%; background: linear-gradient( 90deg, rgba(44, 175, 194, 0) 0%, rgba(44, 175, 194, 0.16) 22%, rgba(44, 175, 194, 0.2) 55%, rgba(44, 175, 194, 0) 100% ); /* small blur only — the band keeps its straight parallel edges */ filter: blur(2px); /* 25deg == the roof ridge angle, measured off the artwork itself */ transform: rotate(32deg); pointer-events: none; } /* the arcs sit in front of the bus, as in the reference */ .vc-app.vc-app .about__arcs { position: absolute; z-index: 2; inset: -12% 12% 2%; width: auto; height: 98%; pointer-events: none; } .vc-app.vc-app .about__bus { position: relative; z-index: 1; display: grid; place-items: center; width: 92%; } .vc-app.vc-app .about__bus img { width: 100%; height: auto; object-fit: contain; filter: drop-shadow(0 1.5rem 2.5rem rgba(0, 0, 0, 0.25)); } .vc-app.vc-app .about__body { display: grid; gap: clamp(1.25rem, 0.8rem + 1.4vw, 1.8125rem); } .vc-app.vc-app .about__head { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); flex-wrap: wrap; } .vc-app.vc-app .about__title { position: relative; margin: 0; padding-right: 1.5rem; font-size: var(--fs-h2); font-weight: 800; letter-spacing: -0.03em; opacity: 0.8; } .vc-app.vc-app .about__chip { position: absolute; right: 0; bottom: -0.75rem; transform: rotate(-6deg); } .vc-app.vc-app .about__text { margin: 0; opacity: 0.7; font-weight: 500; text-align: justify; } .vc-app.vc-app .stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-4); } .vc-app.vc-app .stat { display: flex; align-items: flex-end; gap: 0.75rem; } .vc-app.vc-app .stat__num { margin: 0; font-size: var(--fs-h2); font-weight: 800; line-height: 1; letter-spacing: -0.03em; } .vc-app.vc-app .stat__num span { color: var(--c-teal); } .vc-app.vc-app .stat__label { opacity: 0.5; font-weight: 500; } /* ========================================================= Testimonials marquee ========================================================= */ .vc-app.vc-app .testimonials__head { display: grid; justify-items: center; gap: var(--sp-3); margin-bottom: var(--sp-6); text-align: center; } .vc-app.vc-app .testimonials__title { margin: 0; font-size: var(--fs-h2); font-weight: 800; letter-spacing: -0.03em; } .vc-app.vc-app .testimonials__lead { max-width: 42ch; margin: 0; opacity: 0.5; font-weight: 500; } .vc-app.vc-app .marquee { position: relative; overflow: hidden; -webkit-mask-image: linear-gradient( 90deg, transparent, #000 8%, #000 92%, transparent ); mask-image: linear-gradient( 90deg, transparent, #000 8%, #000 92%, transparent ); } .vc-app.vc-app .marquee__route { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0.6; pointer-events: none; } .vc-app.vc-app .marquee__track { display: flex; align-items: center; gap: var(--gap); width: max-content; padding-block: var(--sp-3); animation: marquee 60s linear infinite; } .vc-app.vc-app .marquee:hover .marquee__track, .vc-app.vc-app .marquee:focus-within .marquee__track { animation-play-state: paused; } @keyframes marquee { to { transform: translateX(calc(-50% - var(--gap) / 2)); } } .vc-app.vc-app .quote { display: grid; gap: var(--sp-3); flex: none; width: clamp(17rem, 14rem + 12vw, 26rem); padding: var(--sp-4) var(--sp-5); border-radius: var(--r-card); background: var(--c-teal-05); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); } .vc-app.vc-app .quote--lg { width: clamp(19rem, 15rem + 16vw, 32.875rem); } .vc-app.vc-app .quote--sm { width: clamp(15rem, 12rem + 9vw, 21.375rem); } .vc-app.vc-app .quote__head { display: flex; align-items: center; gap: 0.75rem; } .vc-app.vc-app .quote__avatar { aspect-ratio: 1; width: 3rem; border-radius: 50%; object-fit: cover; } .vc-app.vc-app .quote__head b { display: block; font-weight: 700; } .vc-app.vc-app .quote__head i { font-style: normal; font-weight: 500; color: var(--c-teal); } .vc-app.vc-app .quote blockquote { opacity: 0.5; font-weight: 500; text-align: justify; } /* ========================================================= Article card ========================================================= */ .vc-app.vc-app .acard { display: flex; flex-direction: column; border-radius: var(--r-card); background: var(--c-white); transition: transform 0.3s var(--ease); } .vc-app.vc-app .acard:hover { transform: translateY(-0.25rem); } .vc-app.vc-app .acard.is-active { background: var(--c-teal-05); } .vc-app.vc-app .acard__media { position: relative; aspect-ratio: 416 / 251; border-radius: var(--r-card); color: var(--c-white); overflow: hidden; isolation: isolate; } .vc-app.vc-app .acard__img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; } .vc-app.vc-app .acard__media::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient( 180deg, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0.05) 40%, rgba(0, 0, 0, 0.65) 100% ); } .vc-app.vc-app .acard.is-active .acard__media::after, .vc-app.vc-app .acard:hover .acard__media::after, .vc-app.vc-app .acard:focus-within .acard__media::after { background: radial-gradient( 53.59% 137.34% at 50% 46.41%, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.4) 100% ), linear-gradient(0deg, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)), linear-gradient(180deg, rgba(44, 175, 194, 0) 37.33%, #2cafc2 84.53%); } .vc-app.vc-app .acard.is-active .acard__media, .vc-app.vc-app .acard:hover .acard__media, .vc-app.vc-app .acard:focus-within .acard__media { box-shadow: 0 0.75rem 3.75rem 0 rgba(44, 175, 194, 0.5); } .vc-app.vc-app .rail:hover .acard.is-active:not(:hover):not(:focus-within) { background: var(--c-white); } .vc-app.vc-app .rail:hover .acard.is-active:not(:hover):not(:focus-within) .acard__media { box-shadow: none; } .vc-app.vc-app .rail:hover .acard.is-active:not(:hover):not(:focus-within) .acard__media::after { background: linear-gradient( 180deg, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0.05) 40%, rgba(0, 0, 0, 0.65) 100% ); } .vc-app.vc-app .acard__time { position: absolute; left: var(--sp-2); top: var(--sp-2); } .vc-app.vc-app .acard__overlay { position: absolute; inset: auto 0 0; display: flex; align-items: flex-end; justify-content: space-between; gap: var(--sp-2); padding: clamp(0.875rem, 0.5rem + 1vw, 1.5rem); } .vc-app.vc-app .acard__title { max-width: 17ch; margin: 0; font-size: var(--fs-card); font-weight: 500; line-height: 1.15; letter-spacing: -0.01em; } .vc-app.vc-app .acard__excerpt { margin: 0; padding: var(--sp-4) var(--sp-4) var(--sp-5); opacity: 0.7; font-weight: 500; text-align: justify; } .vc-app.vc-app .acard.is-active .acard__excerpt, .vc-app.vc-app .acard:hover .acard__excerpt, .vc-app.vc-app .acard:focus-within .acard__excerpt { opacity: 1; color: var(--c-teal); } .vc-app.vc-app .acard.is-active, .vc-app.vc-app .acard:hover, .vc-app.vc-app .acard:focus-within { background: var(--c-teal-05); } .vc-app.vc-app .rail:hover .acard.is-active:not(:hover):not(:focus-within) .acard__excerpt { opacity: 0.7; color: inherit; } /* ========================================================= FAQ ========================================================= */ .vc-app.vc-app .faq { position: relative; margin: var(--page-inset); padding-block: var(--sp-6); border-radius: var(--r-xl); background: var(--c-teal-05); overflow: hidden; isolation: isolate; } .vc-app.vc-app .faq__watermark { position: absolute; left: clamp(1rem, -1rem + 6vw, 4rem); bottom: clamp(-2rem, -6vw, -1rem); z-index: -1; font-size: clamp(6rem, 2rem + 16vw, 15rem); font-weight: 800; letter-spacing: -0.04em; line-height: 1; color: transparent; -webkit-text-stroke: 1px rgba(44, 175, 194, 0.35); pointer-events: none; user-select: none; } .vc-app.vc-app .faq__inner { display: grid; grid-template-columns: minmax(0, 0.55fr) minmax(0, 1fr); gap: clamp(2rem, 0.5rem + 6vw, 8.375rem); align-items: start; } .vc-app.vc-app .faq__intro { display: grid; gap: var(--sp-4); } .vc-app.vc-app .faq__title { margin: 0; font-size: var(--fs-h2); font-weight: 800; letter-spacing: -0.03em; } .vc-app.vc-app .faq__lead { margin: 0; opacity: 0.7; font-weight: 500; } .vc-app.vc-app .accordion { display: grid; gap: var(--sp-4); } .vc-app.vc-app .acc + .acc { border-top: 1px solid var(--c-line); padding-top: var(--sp-4); } .vc-app.vc-app .acc h3 { margin: 0; font-size: inherit; font-weight: inherit; } .vc-app.vc-app .acc__q { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); width: 100%; padding: 0; font-weight: 500; text-align: left; transition: color 0.2s var(--ease); } .vc-app.vc-app .acc__q .icon { opacity: 0.3; } .vc-app.vc-app .acc__minus { display: none; } .vc-app.vc-app .acc__q[aria-expanded="true"] { color: var(--c-teal); font-weight: 700; } .vc-app.vc-app .acc__q[aria-expanded="true"] .icon { opacity: 1; } .vc-app.vc-app .acc__q[aria-expanded="true"] .acc__plus { display: none; } .vc-app.vc-app .acc__q[aria-expanded="true"] .acc__minus { display: block; } .vc-app.vc-app .acc__a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.3s var(--ease); } /* The button sits inside an