Compare commits

24 Commits

Author SHA1 Message Date
930b7e0534 fix: paginated region/city pages, no routes before first save, safer structure save
- Add /{slug}/page/N/ rules and keep the page number through 301s
- Route only regions synced to a term, so unsaved presets never claim /europe/ etc.
- Flush rewrites on the request after activation so structure routes survive
- Suggest the existing term slug for new cities (keeps live /tour-destination/ URLs)
- Refuse saves without the editor sentinel; confirm before saving an empty structure
- Show term-sync failures to the admin instead of reporting success

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 15:33:01 +03:30
f5c4c89f1a chore: bump viator-collector to 1.9.0, theme to 1.0.9; rebuild zips
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 15:24:34 +03:30
c73189f2db feat(menu): list regions and cities in the header menu
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 15:24:15 +03:30
f6153376f9 feat(display): region landing page with city grid
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 15:23:40 +03:30
8b70ae9104 feat(routing): region/city/product URLs with 301s from old paths
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 15:22:59 +03:30
9c707b7075 feat(structure): admin screen with validated save and term sync
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 15:22:26 +03:30
02b6ce0ff4 feat(import): store primary destination; crawl configured cities
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 15:20:29 +03:30
614ea98825 feat(structure): add region/city structure model with validation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 15:19:49 +03:30
cfa23b6384 docs: region/city URL design and plan
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 15:18:26 +03:30
vargha1
eeb759f4bf sydney image pos fix 2026-10-14 13:12:03 +03:30
vargha1
3f25d5e828 css fix 2026-10-14 12:55:04 +03:30
6a7f43311b Merge branch 'main' of https://git.kaamyab.dev/vargha/TourWebsite 2026-09-23 17:30:10 +03:30
d5686ed14b feat: Enhance gallery functionality with lightbox feature and improve icon sprite accessibility
- Added a lightbox feature for gallery images, allowing users to view photos in a modal with navigation controls.
- Updated the SVG sprite to include inline styles for better accessibility.
- Increased CSS specificity by doubling the `.vc-app` class to ensure styles override Astra theme defaults.
- Introduced new shortcodes for bus tours, about section, and articles in the VC_Sections class.
- Improved the handling of featured images in the single tour template for sharper display.
- Updated version number to 1.8.15.
2026-09-23 17:26:56 +03:30
vargha1
e4d2afc2fa added reveal animation to all pages. 2026-09-22 09:42:25 +03:30
vargha1
de38302be3 added these pages: about, faq, contact, blog, blogs, all tour pages. 2026-09-21 15:38:15 +03:30
b0e302be15 perf: make the tours archive query index-only by default
The archive attached an always-on _vc_featured NOT EXISTS join and a
_vc_review_count join (plus SQL_CALC_FOUND_ROWS) to every request, which made
/tours/ crawl/time out over a ~70k-tour catalogue. Default sort now orders by
post date with no postmeta joins; price/rating sorts add a single meta_key join
on demand; meta_query is only attached when a filter is active. Bump 1.8.4.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J4hNL1PSHxXbu94SCenpKj
2026-09-16 07:48:11 +03:30
01f414e10b chore: drop accidentally-committed diagnostic screenshots; ignore them 2026-09-15 22:51:18 +03:30
911d2b4d2e fix: card/link colors, title clamp, header icon color; clean distributable zips
- links inherit design colour (Astra was recolouring card titles, destination
  names, header search icon → dark/invisible); buttons keep their colour
- clamp long tour titles + titem descriptions to 2 lines; meta values no-wrap
- theme: reset icon-btn background/colour so header icons show (white)
- add build-zip.php; zips now exclude docs/, build/, *.md, .claude (no
  doc/guidance/AI-revealing files shipped)
- bump plugin 1.8.3, theme 1.0.2

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J4hNL1PSHxXbu94SCenpKj
2026-09-15 22:46:34 +03:30
35368fb5f9 perf/fix: externalize images to WP media; normalize Astra leaks; full-width
Plugin (1.8.2):
- remove all bundled raster images (~9.3MB) from assets/img; hero + single
  hero figure now come from the WP Media Library (Settings), shortcode args
  ([viator_hero image_id]), or the vc_testimonials filter — rendered responsive
- vc_hero_image_source() prefers an attachment ID (srcset); listing/hero use it
- settings: store hero_image_id + single_hero_figure_id (media pickers)
- enqueue at priority 20 + depend on astra-theme-css so our CSS wins ties
- stronger Astra overrides (!important): kill page-builder article top padding
  (gap above hero), force full-bleed containers, guard horizontal scroll
- normalize theme leaks inside .vc-app: no link underline, no list bullets
  (with prose exceptions for the tour Overview); gradient hero fallback

Theme: normalize .hoho link/list leaks; rebuild installable ZIP.
Also: move optimized originals to /removed-images/; ship viator-collector.zip.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J4hNL1PSHxXbu94SCenpKj
2026-09-15 19:42:49 +03:30
67c88c795b fix: Astra style conflicts, full-width, responsive hero images, header search
Plugin (viator-collector 1.8.1):
- is_vc_page() now matches any Viator shortcode, so shortcode Pages (home)
  get the full-width no-sidebar canvas
- load vc-design.css after Astra + inline overrides: strip Astra page-builder
  article padding (removes extra gap above hero), full-bleed containers,
  enforce design font inside .vc-app
- vc_hero_img_html(): render hero from the WP media library with responsive
  srcset when the image is an attachment; used in listing + [viator_hero]
  ([viator_hero image_id=".."])

Theme (astra child):
- remove the user/profile header item
- working header search (expands, submits to the tours archive ?vc_q=)
- load chrome.css after Astra + enforce design font inside .hoho
- rebuild installable ZIP

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J4hNL1PSHxXbu94SCenpKj
2026-09-15 17:32:07 +03:30
eab161aa5c chore: add installable ZIP of the Astra child theme for WP dashboard upload
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J4hNL1PSHxXbu94SCenpKj
2026-09-15 15:19:33 +03:30
8feab03f00 Add Astra child theme for Hop On Hop Off header & footer
- disables Astra header/footer via astra_header/astra_footer hooks and renders
  custom design markup (logo, nav dropdown, footer columns, socials, support)
- chrome.css scoped to .hoho (generated from the design source); chrome.js for
  burger/submenu/sticky/back-to-top; bundled icon sprite (reuses plugin's)
- parameterize scope-css.js scope via VC_SCOPE env

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J4hNL1PSHxXbu94SCenpKj
2026-09-15 14:53:20 +03:30
2362f9ab1f add plugin 2026-09-12 21:13:25 +03:30
7ada8860f8 Add viator-collector plugin (Hop On Hop Off front-end reskin)
Consolidate the plugin into the TourWebsite repository (its separate
nested git repo has been removed). Includes the full new-design reskin:
scoped design stylesheet, SVG icon sprite, rebuilt listing/single/section
templates, and homepage hero/FAQ/testimonials shortcodes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J4hNL1PSHxXbu94SCenpKj
2026-09-12 21:11:20 +03:30
116 changed files with 25716 additions and 1475 deletions

3
.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
.playwright-mcp_home.png
_tours.png
*.tmp.png

BIN
astra-child-hoponhopoff.zip Normal file

Binary file not shown.

View File

@@ -0,0 +1,84 @@
# Hop On Hop Off — Astra Child Theme (header & footer)
This child theme replaces **Astra's** default header and footer with the
"Hop On Hop Off" design (the same look as `new front/index.html`), while leaving
the rest of Astra untouched. It pairs with the **Viator Collector** plugin, which
styles the page content (listing / single / homepage sections).
## What it does
- Disables Astra's header/footer markup and renders custom ones via the
`astra_header` / `astra_footer` hooks.
- Loads the design CSS **scoped to `.hoho`** (`assets/chrome.css`) so it can't
collide with Astra or other plugins.
- Prints the SVG icon sprite site-wide (reusing the plugin's copy when active).
- Header nav is a real WordPress menu (with a Tours dropdown); footer columns,
logo, socials and copyright are dynamic.
## Install (step by step)
1. **Astra must be installed.** Appearance → Themes → make sure the *Astra*
parent theme is present (it can stay inactive; the child needs it as a base).
2. **Copy this folder** `astra-child-hoponhopoff/` into
`wp-content/themes/` on your site.
3. **Activate** it: Appearance → Themes → *Hop On Hop Off (Astra Child)* → Activate.
4. **Create the menus:** Appearance → Menus. Create and assign menus to these
locations (Manage Locations tab):
- **HoHo — Header Menu** → your top nav. To get the *Tours* dropdown, add a
top-level item named "Tours" and drag destination/tour links **underneath**
it (indented) as sub-items.
- **HoHo — Footer: Quick Access**
- **HoHo — Footer: Tours**
- **HoHo — Footer: User Account**
(Footer columns with no assigned menu simply render their heading only.)
5. **Logo (optional):** Appearance → Customize → Site Identity → Select Logo.
If none is set, the bundled "Hop On Hop Off" SVG wordmark is used.
6. **Social links (optional):** they default to `#`. Set real URLs with a snippet
in this theme's `functions.php`:
```php
add_filter( 'hoho_socials', function ( $s ) {
$s['instagram'] = 'https://instagram.com/yourpage';
$s['facebook'] = 'https://facebook.com/yourpage';
$s['whatsapp'] = 'https://wa.me/…';
$s['telegram'] = 'https://t.me/…';
return $s;
} );
```
7. **Footer blurb & support link (optional):**
```php
add_filter( 'hoho_footer_about', fn() => 'Your footer paragraph.' );
add_filter( 'hoho_support_url', fn() => 'https://example.com/contact' );
```
## Header behavior
The header is **transparent and overlays a full-bleed hero** (homepage, and the
plugin's listing/single pages), then turns solid on scroll — exactly like the
mockup. On pages that have **no hero**, `chrome.js` adds `.is-solid`, so the
header renders as a solid, sticky bar that stays readable and doesn't cover
content.
If on your site the transparent overlay ever sits wrong on a hero page (theme
wrappers differ between setups), force the solid style everywhere by changing the
top of `assets/chrome.js` so it always adds `is-solid`, or add this CSS:
```css
.hoho .site-header { position: sticky; inset-block-start: 0;
background: rgba(0,0,0,.85); backdrop-filter: blur(12px); }
```
## Regenerating the CSS
`assets/chrome.css` is generated from the design source with the plugin's scoper:
```bash
VC_SCOPE=.hoho node ../viator-collector/build/scope-css.js "../new front/css/style.css" assets/chrome.css
```
## Notes
- Requires the **Astra** parent theme. Tested against Astra's
`astra_header_markup` / `astra_footer_markup` hooks; if a future Astra version
renames those, update the `remove_action()` calls in `functions.php`.
- Icons come from `assets/sprite.svg` (`<use href="#i-…">`). When the Viator
Collector plugin is active, its identical sprite is reused to avoid duplication.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,99 @@
/* Hop On Hop Off — header/footer interactions (child theme).
Ported from the mockup's main.js: burger menu, Tours submenu, sticky header
over a hero (solid otherwise), and the footer "back to top" button. */
(function () {
"use strict";
var header = document.getElementById("siteHeader");
var nav = document.getElementById("primaryNav");
var burger = document.getElementById("burger");
var navToggle = nav && nav.querySelector(".nav__toggle");
var mqDesktop = window.matchMedia("(min-width: 60.0625rem)");
/* ---------- mobile menu ---------- */
function closeMenu() {
if (!nav || !burger) return;
nav.classList.remove("is-open");
burger.setAttribute("aria-expanded", "false");
}
if (burger && nav) {
burger.addEventListener("click", function () {
var open = nav.classList.toggle("is-open");
burger.setAttribute("aria-expanded", String(open));
});
document.addEventListener("click", function (e) {
if (mqDesktop.matches) return;
if (!nav.contains(e.target) && !burger.contains(e.target)) closeMenu();
});
nav.addEventListener("click", function (e) {
if (!mqDesktop.matches && e.target.closest("a")) closeMenu();
});
}
document.addEventListener("keydown", function (e) {
if (e.key !== "Escape") return;
closeMenu();
if (navToggle) navToggle.setAttribute("aria-expanded", "false");
});
mqDesktop.addEventListener("change", function (e) { if (e.matches) closeMenu(); });
/* ---------- Tours submenu ---------- */
if (navToggle) {
navToggle.addEventListener("click", function () {
var open = navToggle.getAttribute("aria-expanded") === "true";
navToggle.setAttribute("aria-expanded", String(!open));
});
}
/* ---------- header: sticky over a hero, solid elsewhere ---------- */
var hero = document.querySelector(".hero, .hero-tour, .hero--archive");
if (header) {
if (hero && "IntersectionObserver" in window) {
var sentinel = document.createElement("div");
sentinel.setAttribute("aria-hidden", "true");
sentinel.style.cssText = "position:absolute;top:0;left:0;width:1px;height:60vh;pointer-events:none";
hero.appendChild(sentinel);
new IntersectionObserver(function (entries) {
header.classList.toggle("is-stuck", !entries[0].isIntersecting);
}, { threshold: 0 }).observe(sentinel);
} else {
/* No hero to overlay — show a readable solid header from the start. */
header.classList.add("is-solid");
}
}
/* ---------- header search: expand, then submit ---------- */
var search = document.querySelector(".header__search");
if (search) {
var searchInput = search.querySelector(".header__search-input");
var searchBtn = search.querySelector(".header__search-btn");
if (searchInput && searchBtn) {
searchBtn.addEventListener("click", function (e) {
if (!search.classList.contains("is-open")) {
e.preventDefault();
search.classList.add("is-open");
searchInput.focus();
} else if (!searchInput.value.trim()) {
e.preventDefault();
search.classList.remove("is-open"); /* empty → collapse instead of submit */
}
/* open + has text → let the form submit to the tours archive (?vc_q=) */
});
document.addEventListener("click", function (e) {
if (!search.contains(e.target) && !searchInput.value.trim()) {
search.classList.remove("is-open");
}
});
}
}
/* ---------- footer: back to top ---------- */
var toTop = document.querySelector(".ring-badge--top");
if (toTop) {
toTop.addEventListener("click", function (e) {
e.preventDefault();
window.scrollTo({ top: 0, behavior: "smooth" });
});
}
})();

View File

@@ -0,0 +1,176 @@
<svg class="sprite" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" style="position:absolute;width:0;height:0;overflow:hidden">
<defs>
<path id="ringPathScroll" fill="none" d="M50,50 m-39,0 a39,39 0 1,1 78,0 a39,39 0 1,1 -78,0" />
</defs>
<symbol id="i-arrow-right" viewBox="0 0 16 16" fill="none">
<path d="M2.66699 8H13.3337M9.33366 12L13.3337 8L9.33366 4" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-left" viewBox="0 0 16 16" fill="none">
<path d="M13.333 8H2.66634M6.66634 12L2.66634 8L6.66634 4" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-ne" viewBox="0 0 16 16" fill="none">
<path d="M4 12L12 4M12 10V4H6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-up" viewBox="0 0 16 16" fill="none">
<path d="M8 13.3333L8 2.66659M12 6.66659L8 2.66659L4 6.66659" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-chevron" viewBox="0 0 16 16" fill="none">
<path d="M12.6663 6L7.99967 10L3.33301 6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
</symbol>
<symbol id="i-search" viewBox="0 0 24 24" fill="none">
<circle cx="11.5" cy="11.5" r="9.5" stroke="currentColor" stroke-width="1.5" />
<path d="M18.5 18.5L22 22" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-user" viewBox="0 0 24 24" fill="none">
<circle cx="12" cy="6" r="4" stroke="currentColor" stroke-width="1.5" />
<ellipse cx="12" cy="17" rx="7" ry="4" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-location" viewBox="0 0 16 16" fill="none">
<path
d="M2.66699 6.76224C2.66699 3.76396 5.05481 1.33337 8.00033 1.33337C10.9458 1.33337 13.3337 3.76396 13.3337 6.76224C13.3337 9.73702 11.6314 13.2083 8.97561 14.4497C8.3565 14.7391 7.64415 14.7391 7.02504 14.4497C4.36921 13.2083 2.66699 9.73702 2.66699 6.76224Z"
stroke="currentColor" stroke-width="1.5" />
<circle cx="8" cy="6.66663" r="2" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-calendar" viewBox="0 0 16 16" fill="none">
<path
d="M1.33301 7.99996C1.33301 5.4858 1.33301 4.22872 2.11406 3.44767C2.8951 2.66663 4.15218 2.66663 6.66634 2.66663H9.33301C11.8472 2.66663 13.1042 2.66663 13.8853 3.44767C14.6663 4.22872 14.6663 5.4858 14.6663 7.99996V9.33329C14.6663 11.8475 14.6663 13.1045 13.8853 13.8856C13.1042 14.6666 11.8472 14.6666 9.33301 14.6666H6.66634C4.15218 14.6666 2.8951 14.6666 2.11406 13.8856C1.33301 13.1045 1.33301 11.8475 1.33301 9.33329V7.99996Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M4.66699 2.66663V1.66663" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M11.333 2.66663V1.66663" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M1.66699 6H14.3337" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-seat" viewBox="0 0 16 16" fill="none">
<circle cx="5.99967" cy="4.00004" r="2.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M10 6C11.1046 6 12 5.10457 12 4C12 2.89543 11.1046 2 10 2" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" />
<ellipse cx="5.99967" cy="11.3333" rx="4.66667" ry="2.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M12 9.33337C13.1695 9.58984 14 10.2393 14 11C14 11.6863 13.3242 12.282 12.3333 12.5803"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-mouse" viewBox="0 0 16 16" fill="none">
<path
d="M3.33301 5.99998C3.33301 3.42265 5.42235 1.33331 7.99967 1.33331C10.577 1.33331 12.6663 3.42265 12.6663 5.99998V9.99998C12.6663 12.5773 10.577 14.6666 7.99967 14.6666C5.42235 14.6666 3.33301 12.5773 3.33301 9.99998V5.99998Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M7 5.66669C7 5.1144 7.44772 4.66669 8 4.66669C8.55228 4.66669 9 5.1144 9 5.66669V7.00002C9 7.5523 8.55228 8.00002 8 8.00002C7.44772 8.00002 7 7.5523 7 7.00002V5.66669Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M8 1.33331V4.66665" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-grid" viewBox="0 0 16 16" fill="none">
<path
d="M1.66699 4.33329C1.66699 3.07621 1.66699 2.44767 2.05752 2.05715C2.44804 1.66663 3.07658 1.66663 4.33366 1.66663C5.59074 1.66663 6.21928 1.66663 6.6098 2.05715C7.00033 2.44767 7.00033 3.07621 7.00033 4.33329C7.00033 5.59037 7.00033 6.21891 6.6098 6.60944C6.21928 6.99996 5.59074 6.99996 4.33366 6.99996C3.07658 6.99996 2.44804 6.99996 2.05752 6.60944C1.66699 6.21891 1.66699 5.59037 1.66699 4.33329Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M9 11.6667C9 10.4096 9 9.78105 9.39052 9.39052C9.78105 9 10.4096 9 11.6667 9C12.9237 9 13.5523 9 13.9428 9.39052C14.3333 9.78105 14.3333 10.4096 14.3333 11.6667C14.3333 12.9237 14.3333 13.5523 13.9428 13.9428C13.5523 14.3333 12.9237 14.3333 11.6667 14.3333C10.4096 14.3333 9.78105 14.3333 9.39052 13.9428C9 13.5523 9 12.9237 9 11.6667Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M1.66699 11.6667C1.66699 10.4096 1.66699 9.78105 2.05752 9.39052C2.44804 9 3.07658 9 4.33366 9C5.59074 9 6.21928 9 6.6098 9.39052C7.00033 9.78105 7.00033 10.4096 7.00033 11.6667C7.00033 12.9237 7.00033 13.5523 6.6098 13.9428C6.21928 14.3333 5.59074 14.3333 4.33366 14.3333C3.07658 14.3333 2.44804 14.3333 2.05752 13.9428C1.66699 13.5523 1.66699 12.9237 1.66699 11.6667Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M9 4.33329C9 3.07621 9 2.44767 9.39052 2.05715C9.78105 1.66663 10.4096 1.66663 11.6667 1.66663C12.9237 1.66663 13.5523 1.66663 13.9428 2.05715C14.3333 2.44767 14.3333 3.07621 14.3333 4.33329C14.3333 5.59037 14.3333 6.21891 13.9428 6.60944C13.5523 6.99996 12.9237 6.99996 11.6667 6.99996C10.4096 6.99996 9.78105 6.99996 9.39052 6.60944C9 6.21891 9 5.59037 9 4.33329Z"
stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-price" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="8.00004" r="6.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M8 4V12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M10 6.33335C10 5.41288 9.10457 4.66669 8 4.66669C6.89543 4.66669 6 5.41288 6 6.33335C6 7.25383 6.89543 8.00002 8 8.00002C9.10457 8.00002 10 8.74621 10 9.66669C10 10.5872 9.10457 11.3334 8 11.3334C6.89543 11.3334 6 10.5872 6 9.66669"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-duration" viewBox="0 0 16 16" fill="none">
<path
d="M1.33366 8.00004C1.33366 11.6819 4.31843 14.6667 8.00033 14.6667C11.6822 14.6667 14.667 11.6819 14.667 8.00004C14.667 4.31814 11.6822 1.33337 8.00033 1.33337"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M8 6V8.66667H10.6667" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
<circle cx="7.99967" cy="8.00004" r="6.66667" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-dasharray="0.5 3.5" />
</symbol>
<symbol id="i-sort" viewBox="0 0 16 16" fill="none">
<path d="M2.66699 11.3333H7.33366" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2.66699 8L7.33366 8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2.66699 4.66669L7.33366 4.66669" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M11.333 2.66665L11.333 13.3333M13.333 5.33331L11.333 2.66665L9.33301 5.33331M9.33301 10.6666L11.333 13.3333L13.333 10.6666"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-check" viewBox="0 0 16 16" fill="none">
<path d="M3.33301 8.33333L6.33301 11.3333L12.6663 5" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-info" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="7.99992" r="6.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M8 11.3333V7.33325" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<circle cx="8" cy="5.33333" r="0.666667" fill="currentColor" />
</symbol>
<symbol id="i-person" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="4.00004" r="2.66667" stroke="currentColor" stroke-width="1.5" />
<ellipse cx="7.99967" cy="11.3333" rx="4.66667" ry="2.66667" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-shield-check" viewBox="0 0 16 16" fill="none">
<path
d="M2 6.94448C2 4.81275 2 3.74689 2.25168 3.38831C2.50335 3.02973 3.50555 2.68668 5.50994 2.00057L5.89182 1.86985C6.93666 1.5122 7.45907 1.33337 8 1.33337C8.54093 1.33337 9.06335 1.5122 10.1082 1.86985L10.4901 2.00057C12.4945 2.68668 13.4966 3.02973 13.7483 3.38831C14 3.74689 14 4.81275 14 6.94448C14 7.26647 14 7.61565 14 7.99428C14 11.753 11.174 13.577 9.40096 14.3516C8.91999 14.5617 8.67951 14.6667 8 14.6667C7.32049 14.6667 7.08001 14.5617 6.59904 14.3516C4.82597 13.577 2 11.753 2 7.99428C2 7.61565 2 7.26647 2 6.94448Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M6.33301 8.26663L7.28539 9.33329L9.66634 6.66663" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-x" viewBox="0 0 16 16" fill="none">
<path d="M12.6663 3.33337L3.33301 12.6667M3.33301 3.33337L12.6663 12.6667" stroke="currentColor"
stroke-width="2" stroke-linecap="round" />
</symbol>
<symbol id="i-star" viewBox="0 0 12 12">
<path
d="M4.21205 2.06464C4.94362 0.701584 5.30941 0.0200537 5.87277 0.000515809C6.43613 -0.019022 6.82396 0.636371 7.59964 1.94716L7.80031 2.28628C8.02073 2.65876 8.13095 2.845 8.29997 2.96455C8.46899 3.08409 8.67769 3.12341 9.09509 3.20203L9.4751 3.27362C10.9439 3.55031 11.6784 3.68865 11.8616 4.23622C12.0448 4.78378 11.5555 5.37794 10.5768 6.56625L10.3236 6.87368C10.0455 7.21136 9.90649 7.3802 9.84606 7.58521C9.78563 7.79021 9.81067 8.00818 9.86075 8.44411L9.90634 8.84099C10.0826 10.3751 10.1707 11.1421 9.72055 11.5C9.27043 11.858 8.58018 11.5698 7.19966 10.9934L6.84251 10.8443C6.45021 10.6805 6.25406 10.5986 6.04769 10.6058C5.84132 10.613 5.6481 10.7084 5.26165 10.8991L4.90982 11.0729C3.54988 11.7443 2.86992 12.08 2.40851 11.7536C1.9471 11.4273 2.00982 10.655 2.13527 9.1105L2.16772 8.71092C2.20337 8.27201 2.2212 8.05256 2.15408 7.85197C2.08696 7.65139 1.9425 7.49238 1.65359 7.17437L1.39055 6.88484C0.373843 5.76573 -0.134512 5.20618 0.0304441 4.64653C0.1954 4.08689 0.924422 3.89779 2.38247 3.5196L2.75968 3.42175C3.17401 3.31428 3.38117 3.26054 3.54606 3.12942C3.71095 2.99829 3.8149 2.80462 4.02279 2.41729L4.21205 2.06464Z"
fill="currentColor" />
</symbol>
<symbol id="i-plus" viewBox="0 0 14 14" fill="none">
<path d="M12.75 6.75005L6.75 6.75005M6.75 6.75005L0.75 6.75005M6.75 6.75005L6.75 0.75M6.75 6.75005L6.75 12.75"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-minus" viewBox="0 0 14 14" fill="none">
<path d="M12.75 7L0.75 7" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-headset" viewBox="0 0 24 24" fill="none">
<path d="M21 17V12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12V17" stroke="currentColor"
stroke-width="1.5" />
<path d="M22 15.5V17.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2 15.5V17.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M8 13.8446C8 13.0802 8 12.698 7.82526 12.4323C7.73733 12.2985 7.62061 12.188 7.4844 12.1095C7.21371 11.9535 6.84812 11.9896 6.11694 12.0617C4.88487 12.1831 4.26884 12.2439 3.82737 12.5764C3.60394 12.7448 3.41638 12.9593 3.27646 13.2067C3 13.6955 3 14.3395 3 15.6276V17.1933C3 18.4685 3 19.1061 3.28198 19.5986C3.38752 19.7829 3.51981 19.9491 3.67416 20.0913C4.08652 20.4714 4.68844 20.5901 5.89227 20.8275C6.73944 20.9945 7.16302 21.078 7.47564 20.9021C7.591 20.8372 7.69296 20.7493 7.77572 20.6434C8 20.3565 8 19.9078 8 19.0104V13.8446Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M16 13.8446C16 13.0802 16 12.698 16.1747 12.4323C16.2627 12.2985 16.3794 12.188 16.5156 12.1095C16.7863 11.9535 17.1519 11.9896 17.8831 12.0617C19.1151 12.1831 19.7312 12.2439 20.1726 12.5764C20.3961 12.7448 20.5836 12.9593 20.7235 13.2067C21 13.6955 21 14.3395 21 15.6276V17.1933C21 18.4685 21 19.1061 20.718 19.5986C20.6125 19.7829 20.4802 19.9491 20.3258 20.0913C19.9135 20.4714 19.3116 20.5901 18.1077 20.8275C17.2606 20.9945 16.837 21.078 16.5244 20.9021C16.409 20.8372 16.307 20.7493 16.2243 20.6434C16 20.3565 16 19.9078 16 19.0104V13.8446Z"
stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-whatsapp" viewBox="0 0 20 20">
<path
d="M17 2.875C15.125 1 12.625 0 10 0C4.5 0 0 4.5 0 10C0 11.75 0.500008 13.5 1.37501 15L0 20L5.25002 18.625C6.75002 19.375 8.375 19.875 10 19.875C15.5 19.875 20 15.375 20 9.875C20 7.25 18.875 4.75 17 2.875ZM10 18.25C8.5 18.25 7.00001 17.875 5.75001 17.125L5.49999 17L2.37499 17.875L3.25001 14.875L2.99999 14.5C2.12499 13.125 1.74999 11.625 1.74999 10.125C1.74999 5.625 5.5 1.875 10 1.875C12.25 1.875 14.25 2.75 15.875 4.25C17.5 5.875 18.25 7.875 18.25 10.125C18.25 14.5 14.625 18.25 10 18.25ZM14.5 12C14.25 11.875 13 11.25 12.75 11.25C12.5 11.125 12.375 11.125 12.25 11.375C12.125 11.625 11.625 12.125 11.5 12.375C11.375 12.5 11.25 12.5 11 12.5C10.75 12.375 10 12.125 9.00002 11.25C8.25002 10.625 7.75001 9.75 7.62501 9.5C7.50001 9.25 7.62502 9.125 7.75002 9C7.87502 8.875 8 8.75 8.125 8.625C8.25 8.5 8.25002 8.375 8.37502 8.25C8.50002 8.125 8.37502 8 8.37502 7.875C8.37502 7.75 7.87501 6.5 7.62501 6C7.50001 5.625 7.25002 5.625 7.12502 5.625C7.00002 5.625 6.87498 5.625 6.62498 5.625C6.49998 5.625 6.24998 5.625 5.99998 5.875C5.74998 6.125 5.12501 6.75 5.12501 8C5.12501 9.25 5.99999 10.375 6.12499 10.625C6.24999 10.75 7.87498 13.375 10.375 14.375C12.5 15.25 12.875 15 13.375 15C13.875 15 14.875 14.375 15 13.875C15.25 13.25 15.25 12.75 15.125 12.75C15 12.125 14.75 12.125 14.5 12Z"
fill="currentColor" />
</symbol>
<symbol id="i-instagram" viewBox="0 0 20 20">
<path
d="M10 1.80723C12.6506 1.80723 13.0121 1.80723 14.0964 1.80723C15.0602 1.80723 15.5422 2.04819 15.9036 2.16868C16.3855 2.40964 16.747 2.53012 17.1084 2.89157C17.4699 3.25301 17.7108 3.61446 17.8313 4.09639C17.9518 4.45783 18.0723 4.93976 18.1928 5.90362C18.1928 6.98795 18.1928 7.22892 18.1928 10C18.1928 12.7711 18.1928 13.0121 18.1928 14.0964C18.1928 15.0602 17.9518 15.5422 17.8313 15.9036C17.5904 16.3855 17.4699 16.747 17.1084 17.1084C16.747 17.4699 16.3855 17.7108 15.9036 17.8313C15.5422 17.9518 15.0602 18.0723 14.0964 18.1928C13.0121 18.1928 12.7711 18.1928 10 18.1928C7.22892 18.1928 6.98795 18.1928 5.90362 18.1928C4.93976 18.1928 4.45783 17.9518 4.09639 17.8313C3.61446 17.5904 3.25301 17.4699 2.89157 17.1084C2.53012 16.747 2.28916 16.3855 2.16868 15.9036C2.04819 15.5422 1.92771 15.0602 1.80723 14.0964C1.80723 13.0121 1.80723 12.7711 1.80723 10C1.80723 7.22892 1.80723 6.98795 1.80723 5.90362C1.80723 4.93976 2.04819 4.45783 2.16868 4.09639C2.40964 3.61446 2.53012 3.25301 2.89157 2.89157C3.25301 2.53012 3.61446 2.28916 4.09639 2.16868C4.45783 2.04819 4.93976 1.92771 5.90362 1.80723C6.98795 1.80723 7.3494 1.80723 10 1.80723ZM10 0C7.22892 0 6.98795 0 5.90362 0C4.81928 0 4.09639 0.240965 3.49398 0.481928C2.89157 0.722892 2.28916 1.08434 1.68675 1.68675C1.08434 2.28916 0.843374 2.77109 0.481928 3.49398C0.240965 4.09639 0.120482 4.81928 0 5.90362C0 6.98795 0 7.3494 0 10C0 12.7711 0 13.0121 0 14.0964C0 15.1807 0.240965 15.9036 0.481928 16.506C0.722892 17.1084 1.08434 17.7108 1.68675 18.3133C2.28916 18.9157 2.77109 19.1566 3.49398 19.5181C4.09639 19.759 4.81928 19.8795 5.90362 20C6.98795 20 7.3494 20 10 20C12.6506 20 13.0121 20 14.0964 20C15.1807 20 15.9036 19.759 16.506 19.5181C17.1084 19.2771 17.7108 18.9157 18.3133 18.3133C18.9157 17.7108 19.1566 17.2289 19.5181 16.506C19.759 15.9036 19.8795 15.1807 20 14.0964C20 13.0121 20 12.6506 20 10C20 7.3494 20 6.98795 20 5.90362C20 4.81928 19.759 4.09639 19.5181 3.49398C19.2771 2.89157 18.9157 2.28916 18.3133 1.68675C17.7108 1.08434 17.2289 0.843374 16.506 0.481928C15.9036 0.240965 15.1807 0.120482 14.0964 0C13.0121 0 12.7711 0 10 0Z"
fill="currentColor" />
<path
d="M10 4.81928C7.10843 4.81928 4.81928 7.10843 4.81928 10C4.81928 12.8916 7.10843 15.1807 10 15.1807C12.8916 15.1807 15.1807 12.8916 15.1807 10C15.1807 7.10843 12.8916 4.81928 10 4.81928ZM10 13.3735C8.19277 13.3735 6.62651 11.9277 6.62651 10C6.62651 8.19277 8.07229 6.62651 10 6.62651C11.8072 6.62651 13.3735 8.07229 13.3735 10C13.3735 11.8072 11.8072 13.3735 10 13.3735Z"
fill="currentColor" />
<path
d="M15.3012 5.90362C15.9666 5.90362 16.506 5.3642 16.506 4.6988C16.506 4.03339 15.9666 3.49398 15.3012 3.49398C14.6358 3.49398 14.0964 4.03339 14.0964 4.6988C14.0964 5.3642 14.6358 5.90362 15.3012 5.90362Z"
fill="currentColor" />
</symbol>
<symbol id="i-telegram" viewBox="0 0 20 17">
<path
d="M1.3749 7.31846C6.74359 4.91938 10.3236 3.33777 12.1148 2.57361C17.2292 0.391776 18.2919 0.0127698 18.9846 0.00012133C19.1369 -0.00249777 19.4776 0.0362266 19.6982 0.219862C19.8845 0.37492 19.9358 0.584381 19.9603 0.731393C19.9848 0.878405 20.0154 1.2133 19.9911 1.47498C19.714 4.46174 18.5147 11.7098 17.9046 15.055C17.6465 16.4705 17.1382 16.9451 16.6461 16.9916C15.5766 17.0925 14.7645 16.2667 13.7287 15.5702C12.1078 14.4805 11.1921 13.8021 9.61879 12.7387C7.80053 11.5097 8.97923 10.8343 10.0154 9.73042C10.2866 9.44153 14.9987 5.04555 15.0899 4.64677C15.1013 4.59689 15.1119 4.41098 15.0042 4.31282C14.8965 4.21465 14.7376 4.24822 14.6229 4.27492C14.4604 4.31276 11.871 6.06814 6.85486 9.54107C6.11988 10.0587 5.45416 10.3109 4.8577 10.2977C4.20015 10.2831 2.93528 9.91637 1.99498 9.60288C0.84166 9.21836 -0.0749729 9.01506 0.00484519 8.36203C0.0464194 8.0219 0.503103 7.67404 1.3749 7.31846Z"
fill="currentColor" />
</symbol>
<symbol id="i-facebook" viewBox="0 0 20 20">
<path
d="M20 10C20 4.5 15.5 0 10 0C4.5 0 0 4.5 0 10C0 15 3.625 19.125 8.375 19.875V12.875H5.875V10H8.375V7.75C8.375 5.25 9.875 3.875 12.125 3.875C13.25 3.875 14.375 4.125 14.375 4.125V6.625H13.125C11.875 6.625 11.5 7.375 11.5 8.125V10H14.25L13.75 12.875H11.375V20C16.375 19.25 20 15 20 10Z"
fill="currentColor" />
</symbol>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -0,0 +1,167 @@
<?php
/**
* Hop On Hop Off — Astra child theme.
*
* Replaces the Astra header/footer with the "Hop On Hop Off" design and loads
* the scoped chrome stylesheet + SVG icon sprite site-wide.
*/
defined( 'ABSPATH' ) || exit;
/**
* Styles & scripts.
*/
add_action( 'wp_enqueue_scripts', function () {
// Parent (Astra) base styles.
wp_enqueue_style( 'astra-parent', get_template_directory_uri() . '/style.css', array(), null );
// Design typeface (same as the plugin's pages).
wp_enqueue_style( 'hoho-fonts', 'https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;700;800&display=swap', array(), null );
// Header/footer design, scoped to .hoho so it can't fight Astra. Depend on
// the Astra stylesheet (when present) so our rules load AFTER it and win ties.
$deps = array( 'astra-parent' );
if ( wp_style_is( 'astra-theme-css', 'registered' ) ) {
$deps[] = 'astra-theme-css';
}
wp_enqueue_style( 'hoho-chrome', get_stylesheet_directory_uri() . '/assets/chrome.css', $deps, '1.0.8' );
// Header interactions: burger, submenu, sticky, back-to-top, search toggle.
wp_enqueue_script( 'hoho-chrome', get_stylesheet_directory_uri() . '/assets/chrome.js', array(), '1.0.8', true );
wp_add_inline_style(
'hoho-chrome',
implode(
'',
array(
// Solid, sticky header on pages without a hero to overlay (added by
// chrome.js as .is-solid) so it stays readable and doesn't cover content.
'.hoho .site-header.is-solid{position:sticky;inset-block-start:0;padding-block:var(--sp-2);background:rgba(0,0,0,.85);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);}',
// Force the design font over Astra inside the header/footer.
'.hoho,.hoho h1,.hoho h2,.hoho h3,.hoho p,.hoho a,.hoho span,.hoho li,.hoho button,.hoho input{font-family:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;}',
// Normalize: stop Astra decorating header/footer links & lists.
'.hoho a,.hoho.hoho a{text-decoration:none!important;box-shadow:none!important;}',
// …but not ring-badges: they set their own colour on the <a>, and this
// inherit rule out-specifies .ring-badge--top, turning the footer
// "back to top" text white (inherited) on the light area above it.
'.hoho a:not(.btn):not(.ring-badge){color:inherit;}',
'.hoho :is(ul,ol){list-style:none!important;margin:0!important;padding:0!important;}',
'.hoho li{margin:0!important;}',
// Let the footer\'s decorative bits (back-to-top ring, support tab)
// spill vertically, but keep the horizontal axis clipped so nothing
// causes a mobile sideways scroll. overflow-x:clip (unlike hidden)
// does not force overflow-y to auto, so the y-axis stays visible.
'.hoho,.hoho .footer{overflow-x:clip;overflow-y:visible;}',
// Icon buttons: Astra gives <button> a filled background + its own
// colour, which turned the header search icon into an empty dark
// circle. Reset them (real .btn buttons keep their styling).
'.hoho .icon-btn{background:transparent!important;border:0!important;color:#fff!important;padding:.4rem;}',
'.hoho .site-header .icon{color:#fff;}',
'.hoho button:not(.btn):not(.burger){background:transparent;border:0;color:inherit;}',
// Expanding header search field.
'.hoho .header__search{display:flex;align-items:center;gap:.25rem;}',
// !important beats Astra's input[type=search] styling, which forces a
// white field background (and, with a white placeholder, hid the text).
'.hoho .header__search-input{width:0;min-width:0;padding:0;border:0!important;outline:0;opacity:0;height:var(--control-h);border-radius:var(--r-pill)!important;background:rgba(255,255,255,.15)!important;color:#fff!important;box-shadow:none!important;transition:width .25s var(--ease),opacity .2s var(--ease),padding .25s var(--ease);}',
'.hoho .header__search.is-open .header__search-input{width:min(52vw,15rem);padding:0 1rem;opacity:1;}',
'.hoho .header__search-input::placeholder{color:rgba(255,255,255,.7)!important;opacity:1;}',
)
)
);
}, 20 );
/**
* Theme supports + menu locations.
*/
add_action( 'after_setup_theme', function () {
add_theme_support( 'custom-logo', array( 'flex-width' => true, 'flex-height' => true ) );
register_nav_menus(
array(
'hoho_primary' => __( 'HoHo — Header Menu', 'hoponhopoff' ),
'hoho_quick' => __( 'HoHo — Footer: Quick Access', 'hoponhopoff' ),
'hoho_tours' => __( 'HoHo — Footer: Tours', 'hoponhopoff' ),
'hoho_account' => __( 'HoHo — Footer: User Account', 'hoponhopoff' ),
)
);
} );
/**
* Print the SVG icon sprite once, high in the footer, so <use href="#i-…">
* resolves everywhere (header, footer, and the plugin's pages).
*/
add_action( 'wp_footer', function () {
// Reuse the plugin's guarded printer when available, so the sprite is never
// output twice on plugin pages.
if ( function_exists( 'vc_print_icon_sprite' ) ) {
vc_print_icon_sprite();
return;
}
$sprite = get_stylesheet_directory() . '/assets/sprite.svg';
if ( is_readable( $sprite ) ) {
echo file_get_contents( $sprite ); // phpcs:ignore
}
}, 1 );
/**
* Swap Astra's header/footer markup for ours.
*
* Astra prints its header via astra_header_markup() on the `astra_header`
* action, and its footer via astra_footer_markup() on `astra_footer`. We remove
* those and render our own template parts. Deferred to `wp` so Astra's parent
* functions.php (which registers the callbacks) has already loaded.
*/
add_action( 'wp', function () {
if ( function_exists( 'astra_header_markup' ) ) {
remove_action( 'astra_header', 'astra_header_markup' );
}
add_action( 'astra_header', 'hoho_render_header' );
// Astra renders its footer via the Footer Builder (a class method on the
// `astra_footer` hook), so removing the legacy astra_footer_markup() alone
// left a second, default footer. Clear every callback on the hook, then add
// ours — a clean, full replacement regardless of classic vs builder footer.
remove_all_actions( 'astra_footer' );
add_action( 'astra_footer', 'hoho_render_footer' );
} );
function hoho_render_header() {
require get_stylesheet_directory() . '/inc/header.php';
}
function hoho_render_footer() {
require get_stylesheet_directory() . '/inc/footer.php';
}
require get_stylesheet_directory() . '/inc/nav-walker.php';
/**
* The logo: a linked WordPress Custom Logo if one is set, otherwise the bundled
* "Hop On Hop Off" SVG wordmark.
*/
function hoho_logo() {
$home = esc_url( home_url( '/' ) );
if ( has_custom_logo() ) {
$id = get_theme_mod( 'custom_logo' );
$img = wp_get_attachment_image( $id, 'full', false, array( 'class' => 'logo' ) );
if ( $img ) {
return '<a class="header__logo" href="' . $home . '" aria-label="' . esc_attr( get_bloginfo( 'name' ) ) . '">' . $img . '</a>';
}
}
ob_start();
?>
<a class="header__logo" href="<?php echo $home; ?>" aria-label="<?php echo esc_attr( get_bloginfo( 'name' ) ); ?>">
<?php require get_stylesheet_directory() . '/inc/logo.php'; ?>
</a>
<?php
return ob_get_clean();
}
/**
* Small helper: inline-icon markup referencing the sprite.
*/
function hoho_icon( $name, $extra = '' ) {
// Strip an existing "i-" prefix (once), then re-add it. ltrim() with a
// charlist would eat any leading i/-, turning "instagram" into "nstagram".
$slug = preg_replace( '/^i-/', '', (string) $name );
$name = preg_replace( '/[^a-z0-9\-]/', '', 'i-' . $slug );
$class = 'icon' . ( $extra ? ' ' . $extra : '' );
return '<svg class="' . esc_attr( $class ) . '" aria-hidden="true"><use href="#' . esc_attr( $name ) . '"></use></svg>';
}

View File

@@ -0,0 +1,91 @@
<?php
/**
* Custom site footer — "Hop On Hop Off" design. Rendered on the `astra_footer`
* hook in place of Astra's default footer.
*/
defined( 'ABSPATH' ) || exit;
$hoho_about = apply_filters(
'hoho_footer_about',
get_bloginfo( 'description' ) ? get_bloginfo( 'description' ) : __( 'Open-top hop on, hop off bus tours — explore the city at your own pace, with flexible tickets and free cancellation.', 'hoponhopoff' )
);
$hoho_socials = apply_filters(
'hoho_socials',
array(
'whatsapp' => '#',
'instagram' => '#',
'telegram' => '#',
'facebook' => '#',
)
);
$hoho_footer_col = function ( $location ) {
if ( ! has_nav_menu( $location ) ) {
return;
}
wp_nav_menu(
array(
'theme_location' => $location,
'container' => false,
'items_wrap' => '<ul>%3$s</ul>',
'depth' => 1,
'fallback_cb' => false,
)
);
};
?>
<div class="hoho">
<footer class="footer" id="footer">
<a class="ring-badge ring-badge--top" href="#top" aria-label="<?php echo esc_attr__( 'Back to top', 'hoponhopoff' ); ?>">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text" text-anchor="middle">
<textPath href="#ringPathScroll" startOffset="25%"><?php echo esc_html__( 'BACK TO TOP', 'hoponhopoff' ); ?></textPath>
<textPath href="#ringPathScroll" startOffset="75%"><?php echo esc_html__( 'BACK TO TOP', 'hoponhopoff' ); ?></textPath>
</text>
</svg>
<span class="ring-badge__dot"><svg class="icon" aria-hidden="true"><use href="#i-arrow-up"></use></svg></span>
</a>
<div class="container footer__inner">
<div class="footer__brand">
<span class="footer__logo"><?php require get_stylesheet_directory() . '/inc/logo.php'; ?></span>
<p class="footer__about"><?php echo esc_html( $hoho_about ); ?></p>
</div>
<nav class="footer__cols" aria-label="<?php echo esc_attr__( 'Footer', 'hoponhopoff' ); ?>">
<div class="footer__col">
<h2 class="footer__ct"><?php echo esc_html__( 'Quick Access', 'hoponhopoff' ); ?></h2>
<?php $hoho_footer_col( 'hoho_quick' ); ?>
</div>
<div class="footer__col">
<h2 class="footer__ct"><?php echo esc_html__( 'Tours', 'hoponhopoff' ); ?></h2>
<?php $hoho_footer_col( 'hoho_tours' ); ?>
</div>
<div class="footer__col">
<h2 class="footer__ct"><?php echo esc_html__( 'User Account', 'hoponhopoff' ); ?></h2>
<?php $hoho_footer_col( 'hoho_account' ); ?>
</div>
</nav>
</div>
<div class="container footer__bar">
<p class="footer__copy">&copy; <?php echo esc_html( gmdate( 'Y' ) ); ?> <?php echo esc_html( get_bloginfo( 'name' ) ); ?>. <?php echo esc_html__( 'All rights reserved.', 'hoponhopoff' ); ?></p>
<ul class="socials">
<?php foreach ( $hoho_socials as $network => $url ) : ?>
<?php if ( $url ) : ?>
<li><a href="<?php echo esc_url( $url ); ?>" aria-label="<?php echo esc_attr( ucfirst( $network ) ); ?>"><?php echo hoho_icon( $network, 'icon--20' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></a></li>
<?php endif; ?>
<?php endforeach; ?>
</ul>
</div>
<a class="support" href="<?php echo esc_url( apply_filters( 'hoho_support_url', '#' ) ); ?>" aria-label="<?php echo esc_attr__( 'Support', 'hoponhopoff' ); ?>">
<svg class="ring-badge__ring support__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"><textPath href="#ringPathScroll" startOffset="0">SUPPORT · SUPPORT · SUPPORT · </textPath></text>
</svg>
<span class="support__tab"><?php echo hoho_icon( 'headset', 'icon--24' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></span>
</a>
</footer>
</div>
<?php

View File

@@ -0,0 +1,51 @@
<?php
/**
* Custom site header — "Hop On Hop Off" design. Rendered on the `astra_header`
* hook in place of Astra's default header. Wrapped in .hoho so assets/chrome.css
* (scoped to .hoho) applies without touching the rest of Astra.
*/
defined( 'ABSPATH' ) || exit;
$hoho_archive = get_post_type_archive_link( 'viator_tour' );
$hoho_archive = $hoho_archive ? $hoho_archive : home_url( '/' );
?>
<div class="hoho">
<header class="site-header" id="siteHeader">
<div class="container header__inner">
<div class="header__left">
<?php echo hoho_logo(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
<nav class="nav" id="primaryNav" aria-label="<?php echo esc_attr__( 'Primary', 'hoponhopoff' ); ?>">
<?php
wp_nav_menu(
array(
'theme_location' => 'hoho_primary',
'container' => false,
'items_wrap' => '<ul class="nav__list">%3$s</ul>',
'walker' => new Hoho_Nav_Walker(),
'fallback_cb' => 'hoho_nav_fallback',
'depth' => 2,
)
);
?>
</nav>
</div>
<div class="header__actions">
<form class="header__search" role="search" method="get" action="<?php echo esc_url( $hoho_archive ); ?>">
<input class="header__search-input" type="search" name="vc_q" placeholder="<?php echo esc_attr__( 'Search tours…', 'hoponhopoff' ); ?>" aria-label="<?php echo esc_attr__( 'Search tours', 'hoponhopoff' ); ?>">
<button class="icon-btn header__search-btn" type="submit" aria-label="<?php echo esc_attr__( 'Search', 'hoponhopoff' ); ?>">
<?php echo hoho_icon( 'search', 'icon--24' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
</button>
</form>
<a class="btn btn--accent header__cta" href="<?php echo esc_url( $hoho_archive ); ?>">
<span><?php echo esc_html__( 'Book now', 'hoponhopoff' ); ?></span>
<?php echo hoho_icon( 'arrow-right' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
</a>
<button class="burger" id="burger" type="button" aria-label="<?php echo esc_attr__( 'Open menu', 'hoponhopoff' ); ?>" aria-expanded="false" aria-controls="primaryNav">
<span></span><span></span><span></span>
</button>
</div>
</div>
</header>
</div>

View File

@@ -0,0 +1,88 @@
<?php defined('ABSPATH')||exit; ?>
<svg class="logo" viewBox="0 0 91 40" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Logo">
<g clip-path="url(#clip0_117_3713)">
<path
d="M70.0559 6.63419C69.9035 7.36616 69.76 8.05456 69.6194 8.74587C69.2766 10.4306 68.9338 12.1153 68.6027 13.8C68.5471 14.0759 68.424 14.195 68.1311 14.1892C67.217 14.1776 66.3029 14.1863 65.3888 14.1863C65.0216 14.1863 64.8752 14.0023 64.9494 13.6344C65.2892 11.9381 65.632 10.2418 65.9719 8.54545C66.5021 5.90221 67.0324 3.26188 67.551 0.618649C67.6037 0.348516 67.7209 0.229425 67.9934 0.252662C68.8371 0.316565 69.678 0.235234 70.5217 0.243948C70.9289 0.249757 71.175 0.365944 71.3625 0.758072C72.4407 3.01499 73.551 5.25738 74.6526 7.50268C74.7053 7.61306 74.7288 7.74667 74.8929 7.83671C74.9749 7.44749 75.0569 7.0786 75.1302 6.70971C75.5286 4.72873 75.9212 2.74776 76.3196 0.763881C76.4192 0.272995 76.4397 0.243948 76.9349 0.255567C77.8343 0.272995 78.7366 0.272995 79.6361 0.264281C80.1195 0.258471 80.1458 0.316565 80.0521 0.769691C79.1527 5.11505 78.2474 9.45751 77.3567 13.8058C77.2923 14.1166 77.1575 14.2037 76.8645 14.2008C75.9856 14.1892 75.1067 14.1863 74.2278 14.2008C73.926 14.2066 73.759 14.0904 73.6331 13.8261C72.5374 11.5663 71.4299 9.30937 70.3254 7.05246C70.261 6.92465 70.2229 6.77361 70.0559 6.6429V6.63419Z"
fill="white"></path>
<path
d="M25.5852 14.4942C24.0706 14.5029 22.6584 14.1834 21.4426 13.2249C20.218 12.2605 19.5764 10.9825 19.4299 9.45462C19.0314 5.2661 22.1252 0.682561 27.2552 0.0783925C28.6204 -0.0842682 29.9739 -0.0232704 31.2659 0.502472C33.2464 1.30706 34.3363 2.79715 34.5853 4.8885C35.0658 8.90564 31.887 13.8435 26.7776 14.4303C26.3792 14.4768 25.9837 14.4855 25.5852 14.4942ZM30.6068 6.2014C30.6068 6.05036 30.6155 5.89932 30.6068 5.74828C30.5247 4.54866 29.7015 3.59012 28.5589 3.35484C27.5452 3.14571 26.5843 3.3258 25.7317 3.87478C23.9358 5.03664 23.2473 6.75619 23.4289 8.81559C23.5461 10.1575 24.425 11.0202 25.7288 11.2148C26.5901 11.3426 27.4192 11.1771 28.1546 10.7152C29.8157 9.66956 30.5247 8.09814 30.6068 6.20431V6.2014Z"
fill="white"></path>
<path
d="M31.9078 23.3679C31.8873 27.3705 29.107 30.9636 25.3159 31.8698C23.4995 32.3055 21.6889 32.3346 19.9428 31.5706C18.1176 30.7719 17.0717 29.3544 16.8314 27.4083C16.348 23.455 18.7855 19.6035 22.5766 18.2383C24.188 17.6573 25.8374 17.4831 27.5161 17.8607C30.3316 18.4939 31.9224 20.5039 31.9078 23.3679ZM27.9321 23.9343C27.9321 23.7716 27.9439 23.609 27.9321 23.4463C27.8208 22.0695 26.9184 21.111 25.6001 20.9745C24.8383 20.896 24.1118 21.0296 23.4145 21.3521C21.3139 22.328 20.3412 25.2675 20.9008 27.0858C21.1908 28.0299 21.8266 28.6398 22.8051 28.8461C23.7895 29.0523 24.7329 28.8838 25.5708 28.3552C27.1909 27.3327 27.8384 25.7671 27.9321 23.9314V23.9343Z"
fill="white"></path>
<path
d="M58.5507 0.0115716C60.0009 -0.00876093 61.2607 0.243944 62.3915 0.964298C63.83 1.88217 64.5859 3.21541 64.75 4.88558C65.122 8.63549 62.7783 12.7049 58.7792 14.0411C56.9569 14.651 55.1024 14.7324 53.2713 14.0556C51.1766 13.28 49.7937 11.3862 49.7557 9.16704C49.6912 5.3358 51.4051 2.53572 54.8592 0.807447C55.9549 0.261372 57.2733 0.00866699 58.5536 0.00866699L58.5507 0.0115716ZM60.8417 6.23044C60.8417 6.09101 60.8505 5.95159 60.8417 5.81217C60.7685 4.66773 60.08 3.72082 59.0985 3.42454C58.2079 3.15441 57.3378 3.22993 56.494 3.60172C54.5282 4.46731 53.4178 6.79103 53.7371 8.93177C53.9305 10.2243 54.7508 11.0144 56.0048 11.2119C56.6903 11.3194 57.37 11.2293 57.9911 10.9244C59.9482 9.96582 60.6952 8.27241 60.8388 6.22753L60.8417 6.23044Z"
fill="white"></path>
<path
d="M52.5947 32.1313C51.2353 32.1488 50.0048 31.9077 48.8915 31.2367C47.4149 30.3479 46.6444 28.9943 46.4364 27.3299C45.9969 23.8647 48.1122 20.0044 51.5898 18.4795C53.8046 17.5093 56.0869 17.2973 58.3721 18.2819C60.1328 19.043 61.1231 20.4285 61.3604 22.2904C61.6885 24.8552 60.9238 27.1266 59.2861 29.125C57.7012 31.0595 55.0293 32.201 52.5976 32.1313H52.5947ZM53.1718 28.9043C54.0126 28.9362 54.8095 28.669 55.4804 28.1229C57.0683 26.8332 57.707 25.1456 57.4463 23.1414C57.2969 21.9883 56.4414 21.1488 55.3076 20.9891C54.3378 20.8526 53.4003 21.0094 52.5859 21.5729C50.9716 22.6912 50.3036 24.2888 50.33 26.1971C50.3534 27.8383 51.4726 28.9014 53.1689 28.9014L53.1718 28.9043Z"
fill="white"></path>
<path
d="M11.6694 5.54499C12.3843 5.54499 13.0991 5.52466 13.814 5.55371C14.189 5.56823 14.3149 5.4259 14.3794 5.07444C14.6607 3.60178 14.9741 2.13783 15.2642 0.668076C15.3169 0.392134 15.4429 0.261425 15.7271 0.261425C16.7788 0.261425 17.8306 0.25852 18.8824 0.255615C19.1431 0.255615 19.2222 0.365992 19.1666 0.630316C18.4488 4.06362 17.7369 7.49692 17.0279 10.9302C16.8286 11.8859 16.6265 12.8386 16.4449 13.7971C16.3921 14.076 16.2749 14.1921 15.982 14.1892C14.9624 14.1776 13.9429 14.1892 12.9233 14.1834C12.5395 14.1834 12.5014 14.1341 12.5806 13.7448C12.8794 12.278 13.1811 10.8111 13.4829 9.34428C13.5767 8.89115 13.5767 8.88534 13.1284 8.88534C11.6518 8.88534 10.1753 8.89115 8.7016 8.87663C8.37934 8.87663 8.25629 8.98701 8.19476 9.30071C7.90472 10.8169 7.58538 12.3274 7.28362 13.8436C7.23382 14.0934 7.11956 14.1951 6.85881 14.1921C5.82755 14.1834 4.79629 14.1834 3.76503 14.1921C3.46327 14.1921 3.38416 14.0934 3.44276 13.7942C3.95546 11.2672 4.45351 8.74011 4.95742 6.21016C5.32364 4.37732 5.69571 2.54448 6.05021 0.708741C6.1088 0.403753 6.22892 0.278852 6.55412 0.284662C7.59417 0.30209 8.63422 0.29628 9.6772 0.290471C9.93209 0.290471 10.0083 0.374706 9.95552 0.624506C9.6479 2.09136 9.35493 3.55821 9.04731 5.02506C8.94184 5.53337 8.94477 5.5508 9.48384 5.55371C10.2104 5.55371 10.937 5.55371 11.6636 5.55371L11.6694 5.54499Z"
fill="white"></path>
<path
d="M8.30004 26.537C7.55003 26.537 6.80002 26.5486 6.05002 26.5311C5.76876 26.5253 5.66036 26.6328 5.60763 26.8971C5.31173 28.425 4.99825 29.9499 4.70528 31.4778C4.65254 31.7479 4.53535 31.8438 4.25996 31.8409C3.24042 31.8292 2.22087 31.8263 1.20426 31.8409C0.879063 31.8467 0.799961 31.7479 0.864414 31.4342C1.50895 28.2246 2.1447 25.012 2.78338 21.8024C3.0119 20.6521 3.24921 19.5048 3.46893 18.3516C3.51874 18.0815 3.64179 17.9856 3.91425 17.9915C4.93379 18.0031 5.95334 18.006 6.96995 17.9915C7.29515 17.9856 7.37132 18.0931 7.30687 18.4039C6.99925 19.8708 6.7092 21.3376 6.4133 22.8074C6.35666 23.0901 6.47287 23.2324 6.76194 23.2344C8.23852 23.2344 9.71509 23.2256 11.1887 23.2431C11.5315 23.246 11.6546 23.1298 11.7161 22.8074C12.0003 21.3492 12.3167 19.8969 12.6009 18.4388C12.6683 18.0989 12.8118 17.9856 13.1604 17.9944C14.1565 18.0176 15.1527 18.0118 16.1458 17.9944C16.4593 17.9886 16.5618 18.067 16.4974 18.3923C15.7152 22.1916 14.9417 25.9909 14.1653 29.7902C14.0481 30.3595 13.928 30.9259 13.8226 31.4981C13.7757 31.745 13.6614 31.8496 13.3978 31.8467C12.3665 31.835 11.3352 31.835 10.3069 31.8467C9.96998 31.8496 9.92018 31.7218 9.98463 31.4226C10.2952 29.9441 10.5852 28.4656 10.8841 26.9843C10.9719 26.5428 10.9778 26.5428 10.512 26.5428C9.77369 26.5428 9.0354 26.5428 8.29711 26.5428L8.30004 26.537Z"
fill="white"></path>
<path
d="M41.409 0.252687C42.3202 0.26721 43.536 0.223641 44.7548 0.287543C45.3817 0.319494 45.9882 0.426966 46.5683 0.659339C48.247 1.33031 48.7509 2.55608 48.7451 4.05198C48.7451 4.96404 48.5107 5.84124 48.1093 6.67197C47.1366 8.67909 45.4755 9.7451 43.3251 10.1547C42.1766 10.3754 41.0135 10.2912 39.8563 10.2854C39.4666 10.2854 39.3319 10.4045 39.2674 10.7733C39.0858 11.7784 38.8543 12.7747 38.6639 13.7768C38.6053 14.0905 38.4647 14.1979 38.1453 14.1921C37.1609 14.1776 36.1766 14.1776 35.1951 14.1921C34.8787 14.195 34.782 14.105 34.8494 13.7826C35.7342 9.4372 36.616 5.09184 37.4774 0.743574C37.5535 0.363064 37.7264 0.243973 38.0838 0.246878C39.0916 0.255592 40.0995 0.249782 41.412 0.249782L41.409 0.252687ZM42.1883 3.47395C41.8251 3.47395 41.4618 3.48557 41.1014 3.47104C40.87 3.46233 40.7674 3.54657 40.7206 3.77313C40.5213 4.78685 40.3133 5.79767 40.0995 6.80559C40.0497 7.03796 40.1082 7.128 40.3514 7.1251C41.0428 7.11639 41.7342 7.14253 42.4227 7.11639C43.7001 7.0641 44.4354 6.47446 44.6991 5.34164C44.9657 4.18849 44.4413 3.51461 43.243 3.47976C42.8915 3.46814 42.5399 3.47976 42.1913 3.47976L42.1883 3.47395Z"
fill="white"></path>
<path
d="M38.2882 27.9951C37.8546 27.9951 37.421 28.0038 36.9874 27.9922C36.7442 27.9864 36.6387 28.0793 36.5918 28.3233C36.3956 29.3486 36.1641 30.3682 35.9737 31.3964C35.9122 31.7392 35.7715 31.8554 35.42 31.8467C34.459 31.8234 33.4981 31.8408 32.54 31.8379C32.0947 31.8379 32.0772 31.8147 32.165 31.379C32.7305 28.5789 33.2988 25.7817 33.8643 22.9816C34.1778 21.4335 34.4971 19.8882 34.7989 18.34C34.8487 18.0844 34.9571 17.9915 35.2178 17.9944C37.4913 18.0031 39.7618 17.9769 42.0353 18.0147C43.1105 18.0321 44.1124 18.3458 44.9269 19.101C45.7062 19.8243 45.9435 20.7625 45.9289 21.7617C45.9025 23.4464 45.299 24.922 44.089 26.1129C42.9845 27.1992 41.6163 27.7598 40.0811 27.9399C39.4864 28.0096 38.8887 27.9922 38.2911 27.9951H38.2882ZM38.7833 24.7825C39.088 24.7825 39.3927 24.7883 39.6974 24.7825C40.9396 24.7593 41.6573 24.1871 41.9415 22.9904C42.2023 21.8982 41.6778 21.204 40.5499 21.1779C39.8233 21.1604 39.0968 21.1779 38.3731 21.1691C38.1475 21.1662 38.0362 21.2359 37.9923 21.4654C37.793 22.4791 37.585 23.49 37.3682 24.5008C37.3243 24.7099 37.3946 24.7825 37.5909 24.7825C37.9893 24.7825 38.3878 24.7825 38.7862 24.7825H38.7833Z"
fill="white"></path>
<path
d="M69.259 17.9973C70.7707 17.9973 72.2825 17.9973 73.7913 17.9973C74.2395 17.9973 74.2483 18.0147 74.1546 18.4562C73.9905 19.2288 73.8206 20.0015 73.677 20.777C73.6213 21.0733 73.4866 21.1779 73.1819 21.175C71.4006 21.1633 69.6193 21.1779 67.841 21.1633C67.507 21.1604 67.3547 21.265 67.299 21.5903C67.1994 22.1625 67.0734 22.729 66.9387 23.2954C66.8713 23.58 66.9562 23.6555 67.2463 23.6526C68.8869 23.641 70.5276 23.6468 72.1653 23.6468C72.637 23.6468 72.6545 23.6701 72.5666 24.1174C72.4172 24.8581 72.2532 25.5958 72.1213 26.3365C72.0569 26.6909 71.9192 26.839 71.5237 26.8332C69.9065 26.81 68.2893 26.8332 66.675 26.8187C66.3498 26.8158 66.2267 26.9291 66.1681 27.2341C65.9015 28.6254 65.6056 30.0109 65.342 31.4023C65.2804 31.7218 65.1632 31.8525 64.8175 31.8467C63.8566 31.8263 62.8956 31.8321 61.9347 31.8409C61.6212 31.8438 61.5275 31.7566 61.5948 31.4313C62.3449 27.7569 63.0802 24.0796 63.8214 20.4023C63.9591 19.7197 64.1056 19.0371 64.2316 18.3516C64.2785 18.096 64.3693 17.9827 64.6623 17.9857C66.1974 18.0031 67.7326 17.9944 69.2648 17.9944L69.259 17.9973Z"
fill="white"></path>
<path
d="M80.8548 17.9943C82.3783 17.9943 83.9017 18.0001 85.4252 17.9885C85.7181 17.9885 85.7972 18.067 85.7357 18.3516C85.5541 19.1562 85.3812 19.9637 85.2318 20.7741C85.1761 21.0762 85.0472 21.1778 84.7425 21.1749C82.9613 21.1633 81.18 21.1807 79.3987 21.1633C79.0442 21.1604 78.9007 21.2708 78.8479 21.6164C78.763 22.177 78.6458 22.7376 78.5081 23.2895C78.4319 23.5916 78.5345 23.6497 78.8128 23.6497C80.4534 23.641 82.0941 23.6468 83.7347 23.6497C84.2064 23.6497 84.2122 23.6642 84.1156 24.1261C83.9574 24.8871 83.7933 25.6481 83.6556 26.4149C83.5999 26.7199 83.4769 26.839 83.1488 26.8361C81.5198 26.8216 79.8909 26.8361 78.262 26.8245C77.9339 26.8245 77.7874 26.9058 77.7229 27.2457C77.4622 28.6254 77.1575 29.9993 76.8938 31.379C76.8264 31.7333 76.677 31.8583 76.3137 31.8495C75.3645 31.8263 74.4153 31.835 73.466 31.8437C73.1731 31.8437 73.0735 31.7711 73.1379 31.4545C73.9524 27.4722 74.7522 23.487 75.5579 19.5019C75.634 19.1271 75.7366 18.7554 75.7835 18.3748C75.8245 18.0495 75.9944 17.9943 76.2815 17.9972C77.805 18.006 79.3284 18.003 80.8519 18.003V17.9972L80.8548 17.9943Z"
fill="white"></path>
<path
d="M69.751 31.7769C70.4014 31.8728 70.999 31.9744 71.5967 32.0412C75.7891 32.5176 79.8409 31.9889 83.7287 30.3391C84.8713 29.854 85.9611 29.2644 87.0158 28.6108C87.2824 28.4453 87.3996 28.2797 87.3088 27.9602C87.2209 27.6494 87.1828 27.3241 87.1242 27.0046C87.1037 26.8826 87.01 26.7286 87.1242 26.6444C87.2385 26.5601 87.3644 26.6879 87.4699 26.7548C88.4397 27.3444 89.4065 27.9311 90.3703 28.5295C91.1643 29.0233 91.1614 29.0262 90.5989 29.7843C89.9045 30.7196 89.216 31.6607 88.5217 32.5931C88.4572 32.6802 88.4162 32.8371 88.2756 32.7993C88.1555 32.7674 88.1936 32.6222 88.1701 32.5263C88.0969 32.1865 88.0266 31.8437 87.965 31.501C87.9211 31.2541 87.8127 31.2076 87.5783 31.3034C85.4953 32.1458 83.3332 32.6919 81.1066 32.991C77.3595 33.4994 73.6797 33.2496 70.0938 31.9977C69.9883 31.9599 69.8652 31.9483 69.751 31.7798V31.7769Z"
fill="white"></path>
<path
d="M65.8896 15.0316C66.2324 15.0083 66.54 15.1274 66.8535 15.171C72.5343 15.9756 77.8634 15.081 82.7443 11.973C83.0432 11.7813 83.1252 11.5925 83.0314 11.2642C82.9435 10.9534 82.8996 10.6281 82.8439 10.3086C82.8293 10.2244 82.7648 10.114 82.8644 10.053C82.9582 9.99781 83.0432 10.085 83.1193 10.1314C84.1096 10.7327 85.094 11.3369 86.0813 11.9381C86.2893 12.0659 86.4973 12.1995 86.7082 12.3244C86.8811 12.4261 86.8899 12.5423 86.7698 12.6933C85.9026 13.8058 85.0412 14.9212 84.174 16.0337C84.1272 16.0947 84.0861 16.1905 83.9865 16.1586C83.8898 16.1295 83.9016 16.0279 83.8869 15.9524C83.8107 15.5893 83.7346 15.2262 83.6672 14.8602C83.6262 14.6365 83.5676 14.5378 83.301 14.6453C81.3029 15.444 79.2316 15.9698 77.0988 16.2544C75.1065 16.5188 73.1114 16.5449 71.1104 16.3271C69.4375 16.1441 67.8057 15.8013 66.2207 15.2407C66.1064 15.2 65.9629 15.203 65.8896 15.0345V15.0316Z"
fill="white"></path>
<path
d="M67.8024 37.6762C68.1276 37.1302 68.4997 36.6073 68.7663 36.0351C69.0592 35.4048 69.4577 35.0766 70.1725 35.2218C70.2165 35.2305 70.2663 35.2218 70.3132 35.2218C70.7175 35.2276 70.7468 35.2567 70.6764 35.643C70.4743 36.7264 70.2663 37.8098 70.0612 38.8933C70.0143 39.1315 69.9674 39.3726 69.9294 39.6136C69.8942 39.8315 69.7829 39.9215 69.5514 39.9302C68.7047 39.9593 68.7047 39.9651 68.8659 39.1344C68.986 38.5099 69.1061 37.8854 69.1559 37.2289C68.9567 37.5717 68.7604 37.9173 68.5612 38.2601C68.3122 38.6929 68.0573 39.1257 67.817 39.5643C67.7057 39.7647 67.5768 39.8954 67.3219 39.8634C67.0612 39.8286 67.067 39.6224 67.0319 39.4481C66.8766 38.6987 66.7242 37.9464 66.5133 37.1883C66.3961 37.8128 66.2789 38.4373 66.1617 39.0647C66.15 39.1228 66.1442 39.1808 66.1354 39.236C66.0035 39.9361 66.0035 39.9215 65.2682 39.9273C64.9371 39.9302 64.8668 39.8199 64.9283 39.5149C65.1568 38.3879 65.3678 37.258 65.5875 36.1281C65.6139 35.9915 65.6402 35.855 65.6695 35.7185C65.7379 35.3835 65.9381 35.216 66.2701 35.216C66.9303 35.216 67.32 35.5336 67.4391 36.1687C67.5329 36.6596 67.6325 37.1476 67.7291 37.6356C67.7555 37.6472 67.7819 37.6559 67.8082 37.6675L67.8024 37.6762Z"
fill="white"></path>
<path
d="M58.6563 37.9842C58.6681 36.3082 59.8868 35.1115 61.548 35.1521C62.5499 35.1754 63.2999 35.7941 63.4406 36.7787C63.6691 38.3763 62.4562 40.1656 60.423 39.9884C59.3126 39.8925 58.6475 39.1199 58.6563 37.9871V37.9842ZM59.8165 37.8099C59.8048 38.2543 59.8985 38.6551 60.3556 38.8498C60.8155 39.0444 61.2609 38.9747 61.6388 38.658C62.1368 38.2398 62.3478 37.685 62.2628 37.0431C62.1749 36.3605 61.6505 36.0264 60.9737 36.2007C60.297 36.375 59.8282 37.0256 59.8136 37.8099H59.8165Z"
fill="white"></path>
<path
d="M34.8758 39.9274C34.4305 39.9274 33.9852 39.9245 33.5399 39.9274C33.3143 39.9303 33.2176 39.8606 33.2645 39.6166C33.5311 38.2369 33.7889 36.8572 34.0438 35.4775C34.0789 35.2945 34.1727 35.219 34.3543 35.2219C35.2684 35.2219 36.1825 35.2219 37.0936 35.2219C37.3133 35.2219 37.3924 35.3119 37.3397 35.524C37.3221 35.5908 37.3192 35.6605 37.3075 35.7302C37.245 36.0633 37.0428 36.2298 36.701 36.2298C36.2674 36.2298 35.8338 36.2269 35.4002 36.2298C35.1043 36.2298 34.8143 36.6684 34.9198 36.9443C34.9666 37.0634 35.0721 37.0315 35.16 37.0315C35.6522 37.0344 36.1444 37.0489 36.6366 37.0315C36.9559 37.0199 37.0292 37.1477 36.9559 37.4265C36.9296 37.5282 36.9061 37.6298 36.8944 37.7344C36.871 37.9639 36.745 38.051 36.5165 38.0452C36.036 38.0365 35.5555 38.0394 35.075 38.0452C34.7528 38.0452 34.4334 38.5506 34.5682 38.8382C34.6209 38.9515 34.7264 38.9166 34.8143 38.9195C35.3416 38.9224 35.869 38.9311 36.3963 38.9195C36.6483 38.9137 36.745 39.0037 36.6835 39.2477C36.6747 39.2826 36.6747 39.3174 36.6688 39.3523C36.6024 39.7415 36.3661 39.9361 35.9598 39.9361C35.5965 39.9361 35.2332 39.9361 34.87 39.9361L34.8758 39.9274Z"
fill="white"></path>
<path
d="M78.8237 38.0422C77.1361 38.0422 75.4516 38.0422 73.764 38.0422C73.2806 38.0422 73.2689 38.0277 73.3539 37.5804C73.4281 37.1776 73.6732 36.9762 74.0892 36.9762C77.4145 36.9762 80.7397 36.9762 84.0649 36.9762C84.5776 36.9762 84.5835 36.9849 84.4809 37.4874C84.4067 37.8553 84.1831 38.0393 83.81 38.0393C82.146 38.0393 80.4848 38.0393 78.8207 38.0393L78.8237 38.0422Z"
fill="white"></path>
<path
d="M29.0368 36.9792C29.4616 36.5377 29.904 36.1078 30.3083 35.6489C30.5954 35.3236 30.9147 35.158 31.3512 35.2248C31.5739 35.2597 31.9167 35.1115 31.9928 35.3061C32.0661 35.4891 31.735 35.6489 31.5768 35.8086C31.1374 36.2589 30.695 36.7062 30.2321 37.1332C30.0299 37.3191 30.0182 37.473 30.1501 37.7025C30.5075 38.3299 30.8356 38.9689 31.1872 39.5992C31.3219 39.8403 31.2721 39.9332 30.9909 39.9245C29.8161 39.8984 30.1266 40.1017 29.6051 39.0967C29.4997 38.8905 29.3854 38.6842 29.3004 38.4693C29.1774 38.1643 29.0485 38.2224 28.8522 38.4112C28.6178 38.6378 28.6178 38.9369 28.5621 39.2129C28.4039 39.9942 28.6002 39.9216 27.6129 39.9245C27.358 39.9245 27.2906 39.8229 27.3405 39.5789C27.5543 38.4867 27.7565 37.3917 27.9616 36.2966C27.985 36.1717 28.0055 36.0439 28.0289 35.919C28.1637 35.2016 28.3248 35.0999 29.069 35.2219C29.3092 35.2626 29.2623 35.4136 29.2389 35.5588C29.1569 36.0207 29.069 36.4825 28.9811 36.9444C29.0016 36.956 29.0192 36.9647 29.0397 36.9763L29.0368 36.9792Z"
fill="white"></path>
<path
d="M45.7943 39.9971C45.267 39.9738 44.7133 39.8664 44.2445 39.4859C44.0424 39.3203 43.9955 39.1605 44.1918 38.9659C44.2093 38.9485 44.2211 38.9311 44.2386 38.9136C44.3881 38.751 44.5082 38.5157 44.6928 38.4431C44.9008 38.3589 45.0092 38.6609 45.1937 38.7539C45.5951 38.9543 46.0023 39.0618 46.4447 38.9107C46.6234 38.8497 46.7582 38.7365 46.767 38.5418C46.7758 38.3443 46.6264 38.2543 46.4652 38.2049C46.143 38.1032 45.809 38.0306 45.4896 37.9202C44.6049 37.6124 44.3383 36.8571 44.8129 36.0526C45.2025 35.3961 46.0609 35.0446 46.9604 35.1753C47.3588 35.2334 47.7309 35.3612 48.0619 35.5965C48.2377 35.7214 48.3051 35.8434 48.1322 36.0177C48.0824 36.0671 48.0443 36.1281 48.0004 36.1804C47.7719 36.4515 47.5024 36.5125 47.1918 36.3634C46.89 36.2181 46.5766 36.1339 46.2396 36.1775C46.017 36.2065 45.8119 36.3024 45.7826 36.5405C45.7504 36.7845 45.9818 36.8281 46.1547 36.8833C46.4096 36.9675 46.6762 37.0227 46.9311 37.1069C47.4115 37.2667 47.8715 37.47 47.9389 38.0481C48.0151 38.7219 47.7924 39.2883 47.1977 39.6659C46.7904 39.9245 46.3305 40 45.7973 40.0029L45.7943 39.9971Z"
fill="white"></path>
<path
d="M5.07682 38.0422C3.51821 38.0422 1.96253 38.0422 0.403916 38.0422C-0.0384717 38.0422 -0.0443311 38.0335 0.0435605 37.6094C0.131452 37.1873 0.398057 36.9762 0.843374 36.9762C3.84341 36.9762 6.84051 36.9762 9.84054 36.9762C10.2175 36.9762 10.3708 37.1553 10.3005 37.5136C10.2302 37.8718 10.0124 38.047 9.64718 38.0393C8.12373 38.0393 6.60027 38.0393 5.07975 38.0393L5.07682 38.0422Z"
fill="white"></path>
<path
d="M52.6826 37.9812C52.6914 36.0613 54.5401 34.6757 56.2422 35.2712C56.6524 35.4135 56.9307 35.6953 57.1387 36.0613C57.25 36.2559 57.209 36.3895 56.9922 36.4679C56.9043 36.4999 56.8135 36.5318 56.7373 36.5812C56.4385 36.7729 56.2159 36.7584 55.9815 36.4447C55.7412 36.1194 55.3574 36.1048 54.9883 36.2152C54.1797 36.4505 53.6436 37.4526 53.8867 38.2543C54.1182 39.0182 55.0821 39.2041 55.7149 38.6145C55.8174 38.5186 55.8789 38.292 56.0518 38.3618C56.3067 38.4663 56.5381 38.6348 56.7696 38.7887C56.837 38.8352 56.7842 38.9165 56.7432 38.9746C56.2627 39.6253 55.6153 39.9767 54.8008 39.9942C54.0274 40.0116 53.374 39.7734 52.9551 39.0763C52.7412 38.7248 52.668 38.3443 52.6855 37.9812H52.6826Z"
fill="white"></path>
<path
d="M21.4606 37.8941C21.4635 36.2966 22.7731 35.0563 24.4636 35.1579C25.1052 35.1957 25.5945 35.4978 25.9197 36.0555C26.0368 36.2559 26.0427 36.4011 25.782 36.4737C25.6823 36.5028 25.5798 36.5435 25.489 36.5928C25.2165 36.7497 25.0232 36.7729 24.7976 36.4592C24.5632 36.131 24.156 36.1019 23.7692 36.2094C22.902 36.4476 22.363 37.5368 22.697 38.3705C22.9665 39.0473 23.9245 39.1751 24.4958 38.6116C24.5954 38.5128 24.6511 38.2979 24.8415 38.3734C25.0993 38.478 25.3513 38.6145 25.5534 38.8091C25.6238 38.8788 25.5359 38.9572 25.4919 39.024C24.8298 40 23.2331 40.3108 22.2546 39.6427C21.6745 39.2477 21.446 38.6726 21.4606 37.8912V37.8941Z"
fill="white"></path>
<path
d="M14.983 35.2219C15.4986 35.2219 16.0113 35.2277 16.527 35.2219C16.776 35.219 16.8756 35.3119 16.8053 35.5588C16.7907 35.614 16.7877 35.6721 16.776 35.7302C16.7115 36.0632 16.5114 36.2298 16.1754 36.2298C15.4137 36.2298 15.4108 36.2298 15.2672 36.9763C15.1119 37.7954 14.9596 38.6174 14.8102 39.4394C14.7223 39.9216 14.7193 39.9245 14.2301 39.9274C13.7887 39.9274 13.61 39.7086 13.6939 39.271C13.8639 38.3821 14.025 37.4933 14.2066 36.6074C14.2652 36.3198 14.2066 36.1949 13.8873 36.2269C13.6676 36.2472 13.442 36.2298 13.2223 36.2269C13.0435 36.2269 12.9644 36.1397 13.0025 35.9597C13.0084 35.9364 13.0113 35.9132 13.0142 35.8899C13.0728 35.4426 13.3297 35.2199 13.7848 35.2219C13.9605 35.2219 14.1363 35.2219 14.3121 35.2219C14.5348 35.2219 14.7574 35.2219 14.9801 35.2219H14.983Z"
fill="white"></path>
<path
d="M41.2414 35.2219C41.7219 35.2219 42.2024 35.2393 42.6799 35.2161C43.0198 35.1987 43.0959 35.3352 43.011 35.6256C43.0051 35.6489 43.0022 35.6721 42.9993 35.6953C42.9309 36.0517 42.7151 36.2298 42.3518 36.2298C41.4524 36.2298 41.6457 36.1659 41.4875 36.9502C41.3117 37.8245 41.1447 38.7017 40.9953 39.5818C40.9514 39.8403 40.8488 39.9361 40.5852 39.9332C39.633 39.9158 39.759 40.0204 39.9201 39.1432C40.0783 38.2892 40.2424 37.4352 40.4211 36.5813C40.4768 36.3082 40.383 36.2124 40.1193 36.2327C40.049 36.2385 39.9787 36.2327 39.9084 36.2327C39.1203 36.2327 39.1994 36.3169 39.3313 35.5065C39.3664 35.2916 39.4895 35.2219 39.6975 35.2248C40.2131 35.2306 40.7258 35.2248 41.2414 35.2248V35.2219Z"
fill="white"></path>
<path
d="M18.5449 39.9216C18.4511 39.9216 18.3574 39.9216 18.2636 39.9216C18.0644 39.9216 17.9911 39.8374 18.0292 39.637C18.29 38.2689 18.5507 36.9008 18.8027 35.5327C18.8466 35.2887 18.9814 35.219 19.2158 35.2161C20.0214 35.2016 20.0097 35.1928 19.8574 35.9626C19.6347 37.1012 19.4296 38.2427 19.2128 39.3814C19.1103 39.9245 19.1074 39.9216 18.5419 39.9187L18.5449 39.9216Z"
fill="white"></path>
<path
d="M50.9005 39.2506C50.9005 39.6514 50.59 39.9797 50.212 39.9826C49.8839 39.9855 49.629 39.7357 49.6349 39.4133C49.6437 39.0095 49.9864 38.6493 50.3526 38.6522C50.6661 38.6522 50.9005 38.9108 50.9005 39.2506Z"
fill="white"></path>
</g>
<defs>
<clipPath id="clip0_117_3713">
<rect width="91" height="40" fill="white"></rect>
</clipPath>
</defs>
</svg>

View File

@@ -0,0 +1,65 @@
<?php
/**
* Nav walker that renders a WordPress menu with the design's markup:
* top-level items with children become a <button class="nav__toggle"> + a
* <ul class="nav__submenu">; everything else is a plain link.
*/
defined( 'ABSPATH' ) || exit;
class Hoho_Nav_Walker extends Walker_Nav_Menu {
private $submenu_id = '';
public function start_lvl( &$output, $depth = 0, $args = null ) {
$output .= '<ul class="nav__submenu" id="' . esc_attr( $this->submenu_id ) . '">';
}
public function end_lvl( &$output, $depth = 0, $args = null ) {
$output .= '</ul>';
}
public function start_el( &$output, $item, $depth = 0, $args = null, $id = 0 ) {
$title = apply_filters( 'the_title', $item->title, $item->ID );
$url = ! empty( $item->url ) ? $item->url : '#';
if ( 0 === $depth ) {
$has_children = ! empty( $args->has_children );
if ( $has_children ) {
$this->submenu_id = 'hoho-sub-' . (int) $item->ID;
$output .= '<li class="nav__item--has-menu">';
$output .= '<button class="nav__link nav__toggle" type="button" aria-expanded="false" aria-controls="' . esc_attr( $this->submenu_id ) . '">';
$output .= '<span>' . esc_html( $title ) . '</span>';
$output .= '<svg class="icon icon--chevron" aria-hidden="true"><use href="#i-chevron"></use></svg>';
$output .= '</button>';
} else {
$output .= '<li><a class="nav__link" href="' . esc_url( $url ) . '">' . esc_html( $title ) . '</a>';
}
} else {
$output .= '<li><a href="' . esc_url( $url ) . '">' . esc_html( $title ) . '</a>';
}
}
public function end_el( &$output, $item, $depth = 0, $args = null ) {
$output .= '</li>';
}
}
/**
* Fallback nav when no menu is assigned to the "HoHo — Header Menu" location,
* so the header is never empty. Links Home + the tours archive.
*/
function hoho_nav_fallback() {
$archive = get_post_type_archive_link( 'viator_tour' );
$archive = $archive ? $archive : home_url( '/' );
echo '<ul class="nav__list">';
echo '<li><a class="nav__link" href="' . esc_url( home_url( '/' ) ) . '">' . esc_html__( 'Home', 'hoponhopoff' ) . '</a></li>';
echo '<li><a class="nav__link" href="' . esc_url( $archive ) . '">' . esc_html__( 'Tours', 'hoponhopoff' ) . '</a></li>';
// Regions + cities from the Viator Collector structure, when active.
if ( class_exists( 'VC_Menu' ) ) {
$items = VC_Menu::items();
if ( $items ) {
echo walk_nav_menu_tree( $items, 2, (object) array( 'walker' => new Hoho_Nav_Walker() ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
}
echo '</ul>';
}

View File

@@ -0,0 +1,12 @@
/*
Theme Name: Hop On Hop Off (Astra Child)
Theme URI: https://git.kaamyab.dev/vargha/TourWebsite
Description: Astra child theme that replaces the Astra header and footer with the "Hop On Hop Off" design. Pairs with the Viator Collector plugin.
Author: Amir Bagheri
Template: astra
Version: 1.0.9
Text Domain: hoponhopoff
*/
/* Theme styles live in assets/chrome.css (scoped to .hoho). This file only
carries the child-theme header WordPress requires. */

70
build-zip.php Normal file
View File

@@ -0,0 +1,70 @@
<?php
/**
* Distribution zipper for the plugin / theme.
*
* php build-zip.php <source-dir> <output.zip>
*
* Produces a clean, distributable archive: excludes docs, build tooling,
* markdown, VCS and editor/AI metadata — nothing that documents how the code
* was produced ships to the client.
*
* Exclusion rule (keep in sync with the "no docs/AI files in zips" preference):
* - any path segment: .git, .claude, .github, docs, build, node_modules, tests
* - any *.md file
* - dotfiles at any level except .htaccess
*/
$src = isset( $argv[1] ) ? rtrim( str_replace( '\\', '/', $argv[1] ), '/' ) : '';
$out = isset( $argv[2] ) ? $argv[2] : '';
if ( '' === $src || '' === $out || ! is_dir( $src ) ) {
fwrite( STDERR, "Usage: php build-zip.php <source-dir> <output.zip>\n" );
exit( 1 );
}
$excluded_dirs = array( '.git', '.claude', '.github', 'docs', 'build', 'node_modules', 'tests' );
function is_excluded( $rel, array $excluded_dirs ) {
$parts = explode( '/', $rel );
$base = end( $parts );
foreach ( $parts as $seg ) {
if ( in_array( $seg, $excluded_dirs, true ) ) {
return true;
}
}
// Markdown / doc files.
if ( preg_match( '/\.md$/i', $base ) ) {
return true;
}
// Dotfiles (e.g. .gitignore, .DS_Store) except .htaccess.
if ( '' !== $base && '.' === $base[0] && '.htaccess' !== $base ) {
return true;
}
return false;
}
@unlink( $out );
$zip = new ZipArchive();
if ( true !== $zip->open( $out, ZipArchive::CREATE | ZipArchive::OVERWRITE ) ) {
fwrite( STDERR, "Cannot create $out\n" );
exit( 1 );
}
$root = basename( $src );
$it = new RecursiveIteratorIterator( new RecursiveDirectoryIterator( $src, FilesystemIterator::SKIP_DOTS ) );
$added = 0;
$skip = 0;
foreach ( $it as $file ) {
$path = str_replace( '\\', '/', $file->getPathname() );
// Path relative to the source's parent, so the archive contains <root>/…
$rel_from_src = ltrim( substr( $path, strlen( $src ) ), '/' );
if ( is_excluded( $rel_from_src, $excluded_dirs ) ) {
$skip++;
continue;
}
$zip->addFile( $path, $root . '/' . $rel_from_src );
$added++;
}
$zip->close();
fwrite( STDOUT, "Wrote $out — $added files (skipped $skip)\n" );

804
new front/about.html Normal file
View File

@@ -0,0 +1,804 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Hop On Hop Off &mdash; About us</title>
<meta name="description" content="Know more about Hop On Hop Off &mdash; years of experience, hundreds of tours and one memorable way to see the city." />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;700;800&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<a class="skip-link" href="#main">Skip to content</a>
<!-- ============ icon sprite ============ -->
<svg class="sprite" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg">
<symbol id="i-arrow-right" viewBox="0 0 16 16" fill="none">
<path d="M2.66699 8H13.3337M9.33366 12L13.3337 8L9.33366 4" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-left" viewBox="0 0 16 16" fill="none">
<path d="M13.333 8H2.66634M6.66634 12L2.66634 8L6.66634 4" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-ne" viewBox="0 0 16 16" fill="none">
<path d="M4 12L12 4M12 10V4H6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-up" viewBox="0 0 16 16" fill="none">
<path d="M8 13.3333L8 2.66659M12 6.66659L8 2.66659L4 6.66659" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-chevron" viewBox="0 0 16 16" fill="none">
<path d="M12.6663 6L7.99967 10L3.33301 6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
</symbol>
<symbol id="i-search" viewBox="0 0 24 24" fill="none">
<circle cx="11.5" cy="11.5" r="9.5" stroke="currentColor" stroke-width="1.5" />
<path d="M18.5 18.5L22 22" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-user" viewBox="0 0 24 24" fill="none">
<circle cx="12" cy="6" r="4" stroke="currentColor" stroke-width="1.5" />
<ellipse cx="12" cy="17" rx="7" ry="4" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-location" viewBox="0 0 16 16" fill="none">
<path
d="M2.66699 6.76224C2.66699 3.76396 5.05481 1.33337 8.00033 1.33337C10.9458 1.33337 13.3337 3.76396 13.3337 6.76224C13.3337 9.73702 11.6314 13.2083 8.97561 14.4497C8.3565 14.7391 7.64415 14.7391 7.02504 14.4497C4.36921 13.2083 2.66699 9.73702 2.66699 6.76224Z"
stroke="currentColor" stroke-width="1.5" />
<circle cx="8" cy="6.66663" r="2" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-calendar" viewBox="0 0 16 16" fill="none">
<path
d="M1.33301 7.99996C1.33301 5.4858 1.33301 4.22872 2.11406 3.44767C2.8951 2.66663 4.15218 2.66663 6.66634 2.66663H9.33301C11.8472 2.66663 13.1042 2.66663 13.8853 3.44767C14.6663 4.22872 14.6663 5.4858 14.6663 7.99996V9.33329C14.6663 11.8475 14.6663 13.1045 13.8853 13.8856C13.1042 14.6666 11.8472 14.6666 9.33301 14.6666H6.66634C4.15218 14.6666 2.8951 14.6666 2.11406 13.8856C1.33301 13.1045 1.33301 11.8475 1.33301 9.33329V7.99996Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M4.66699 2.66663V1.66663" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M11.333 2.66663V1.66663" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M1.66699 6H14.3337" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-seat" viewBox="0 0 16 16" fill="none">
<circle cx="5.99967" cy="4.00004" r="2.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M10 6C11.1046 6 12 5.10457 12 4C12 2.89543 11.1046 2 10 2" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" />
<ellipse cx="5.99967" cy="11.3333" rx="4.66667" ry="2.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M12 9.33337C13.1695 9.58984 14 10.2393 14 11C14 11.6863 13.3242 12.282 12.3333 12.5803"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-mouse" viewBox="0 0 16 16" fill="none">
<path
d="M3.33301 5.99998C3.33301 3.42265 5.42235 1.33331 7.99967 1.33331C10.577 1.33331 12.6663 3.42265 12.6663 5.99998V9.99998C12.6663 12.5773 10.577 14.6666 7.99967 14.6666C5.42235 14.6666 3.33301 12.5773 3.33301 9.99998V5.99998Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M7 5.66669C7 5.1144 7.44772 4.66669 8 4.66669C8.55228 4.66669 9 5.1144 9 5.66669V7.00002C9 7.5523 8.55228 8.00002 8 8.00002C7.44772 8.00002 7 7.5523 7 7.00002V5.66669Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M8 1.33331V4.66665" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-grid" viewBox="0 0 16 16" fill="none">
<path
d="M1.66699 4.33329C1.66699 3.07621 1.66699 2.44767 2.05752 2.05715C2.44804 1.66663 3.07658 1.66663 4.33366 1.66663C5.59074 1.66663 6.21928 1.66663 6.6098 2.05715C7.00033 2.44767 7.00033 3.07621 7.00033 4.33329C7.00033 5.59037 7.00033 6.21891 6.6098 6.60944C6.21928 6.99996 5.59074 6.99996 4.33366 6.99996C3.07658 6.99996 2.44804 6.99996 2.05752 6.60944C1.66699 6.21891 1.66699 5.59037 1.66699 4.33329Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M9 11.6667C9 10.4096 9 9.78105 9.39052 9.39052C9.78105 9 10.4096 9 11.6667 9C12.9237 9 13.5523 9 13.9428 9.39052C14.3333 9.78105 14.3333 10.4096 14.3333 11.6667C14.3333 12.9237 14.3333 13.5523 13.9428 13.9428C13.5523 14.3333 12.9237 14.3333 11.6667 14.3333C10.4096 14.3333 9.78105 14.3333 9.39052 13.9428C9 13.5523 9 12.9237 9 11.6667Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M1.66699 11.6667C1.66699 10.4096 1.66699 9.78105 2.05752 9.39052C2.44804 9 3.07658 9 4.33366 9C5.59074 9 6.21928 9 6.6098 9.39052C7.00033 9.78105 7.00033 10.4096 7.00033 11.6667C7.00033 12.9237 7.00033 13.5523 6.6098 13.9428C6.21928 14.3333 5.59074 14.3333 4.33366 14.3333C3.07658 14.3333 2.44804 14.3333 2.05752 13.9428C1.66699 13.5523 1.66699 12.9237 1.66699 11.6667Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M9 4.33329C9 3.07621 9 2.44767 9.39052 2.05715C9.78105 1.66663 10.4096 1.66663 11.6667 1.66663C12.9237 1.66663 13.5523 1.66663 13.9428 2.05715C14.3333 2.44767 14.3333 3.07621 14.3333 4.33329C14.3333 5.59037 14.3333 6.21891 13.9428 6.60944C13.5523 6.99996 12.9237 6.99996 11.6667 6.99996C10.4096 6.99996 9.78105 6.99996 9.39052 6.60944C9 6.21891 9 5.59037 9 4.33329Z"
stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-price" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="8.00004" r="6.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M8 4V12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M10 6.33335C10 5.41288 9.10457 4.66669 8 4.66669C6.89543 4.66669 6 5.41288 6 6.33335C6 7.25383 6.89543 8.00002 8 8.00002C9.10457 8.00002 10 8.74621 10 9.66669C10 10.5872 9.10457 11.3334 8 11.3334C6.89543 11.3334 6 10.5872 6 9.66669"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-duration" viewBox="0 0 16 16" fill="none">
<path
d="M1.33366 8.00004C1.33366 11.6819 4.31843 14.6667 8.00033 14.6667C11.6822 14.6667 14.667 11.6819 14.667 8.00004C14.667 4.31814 11.6822 1.33337 8.00033 1.33337"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M8 6V8.66667H10.6667" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
<circle cx="7.99967" cy="8.00004" r="6.66667" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-dasharray="0.5 3.5" />
</symbol>
<symbol id="i-sort" viewBox="0 0 16 16" fill="none">
<path d="M2.66699 11.3333H7.33366" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2.66699 8L7.33366 8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2.66699 4.66669L7.33366 4.66669" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M11.333 2.66665L11.333 13.3333M13.333 5.33331L11.333 2.66665L9.33301 5.33331M9.33301 10.6666L11.333 13.3333L13.333 10.6666"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-check" viewBox="0 0 16 16" fill="none">
<path d="M3.33301 8.33333L6.33301 11.3333L12.6663 5" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-info" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="7.99992" r="6.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M8 11.3333V7.33325" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<circle cx="8" cy="5.33333" r="0.666667" fill="currentColor" />
</symbol>
<symbol id="i-person" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="4.00004" r="2.66667" stroke="currentColor" stroke-width="1.5" />
<ellipse cx="7.99967" cy="11.3333" rx="4.66667" ry="2.66667" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-shield-check" viewBox="0 0 16 16" fill="none">
<path
d="M2 6.94448C2 4.81275 2 3.74689 2.25168 3.38831C2.50335 3.02973 3.50555 2.68668 5.50994 2.00057L5.89182 1.86985C6.93666 1.5122 7.45907 1.33337 8 1.33337C8.54093 1.33337 9.06335 1.5122 10.1082 1.86985L10.4901 2.00057C12.4945 2.68668 13.4966 3.02973 13.7483 3.38831C14 3.74689 14 4.81275 14 6.94448C14 7.26647 14 7.61565 14 7.99428C14 11.753 11.174 13.577 9.40096 14.3516C8.91999 14.5617 8.67951 14.6667 8 14.6667C7.32049 14.6667 7.08001 14.5617 6.59904 14.3516C4.82597 13.577 2 11.753 2 7.99428C2 7.61565 2 7.26647 2 6.94448Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M6.33301 8.26663L7.28539 9.33329L9.66634 6.66663" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-x" viewBox="0 0 16 16" fill="none">
<path d="M12.6663 3.33337L3.33301 12.6667M3.33301 3.33337L12.6663 12.6667" stroke="currentColor"
stroke-width="2" stroke-linecap="round" />
</symbol>
<symbol id="i-star" viewBox="0 0 12 12">
<path
d="M4.21205 2.06464C4.94362 0.701584 5.30941 0.0200537 5.87277 0.000515809C6.43613 -0.019022 6.82396 0.636371 7.59964 1.94716L7.80031 2.28628C8.02073 2.65876 8.13095 2.845 8.29997 2.96455C8.46899 3.08409 8.67769 3.12341 9.09509 3.20203L9.4751 3.27362C10.9439 3.55031 11.6784 3.68865 11.8616 4.23622C12.0448 4.78378 11.5555 5.37794 10.5768 6.56625L10.3236 6.87368C10.0455 7.21136 9.90649 7.3802 9.84606 7.58521C9.78563 7.79021 9.81067 8.00818 9.86075 8.44411L9.90634 8.84099C10.0826 10.3751 10.1707 11.1421 9.72055 11.5C9.27043 11.858 8.58018 11.5698 7.19966 10.9934L6.84251 10.8443C6.45021 10.6805 6.25406 10.5986 6.04769 10.6058C5.84132 10.613 5.6481 10.7084 5.26165 10.8991L4.90982 11.0729C3.54988 11.7443 2.86992 12.08 2.40851 11.7536C1.9471 11.4273 2.00982 10.655 2.13527 9.1105L2.16772 8.71092C2.20337 8.27201 2.2212 8.05256 2.15408 7.85197C2.08696 7.65139 1.9425 7.49238 1.65359 7.17437L1.39055 6.88484C0.373843 5.76573 -0.134512 5.20618 0.0304441 4.64653C0.1954 4.08689 0.924422 3.89779 2.38247 3.5196L2.75968 3.42175C3.17401 3.31428 3.38117 3.26054 3.54606 3.12942C3.71095 2.99829 3.8149 2.80462 4.02279 2.41729L4.21205 2.06464Z"
fill="currentColor" />
</symbol>
<symbol id="i-plus" viewBox="0 0 14 14" fill="none">
<path d="M12.75 6.75005L6.75 6.75005M6.75 6.75005L0.75 6.75005M6.75 6.75005L6.75 0.75M6.75 6.75005L6.75 12.75"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-minus" viewBox="0 0 14 14" fill="none">
<path d="M12.75 7L0.75 7" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-headset" viewBox="0 0 24 24" fill="none">
<path d="M21 17V12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12V17" stroke="currentColor"
stroke-width="1.5" />
<path d="M22 15.5V17.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2 15.5V17.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M8 13.8446C8 13.0802 8 12.698 7.82526 12.4323C7.73733 12.2985 7.62061 12.188 7.4844 12.1095C7.21371 11.9535 6.84812 11.9896 6.11694 12.0617C4.88487 12.1831 4.26884 12.2439 3.82737 12.5764C3.60394 12.7448 3.41638 12.9593 3.27646 13.2067C3 13.6955 3 14.3395 3 15.6276V17.1933C3 18.4685 3 19.1061 3.28198 19.5986C3.38752 19.7829 3.51981 19.9491 3.67416 20.0913C4.08652 20.4714 4.68844 20.5901 5.89227 20.8275C6.73944 20.9945 7.16302 21.078 7.47564 20.9021C7.591 20.8372 7.69296 20.7493 7.77572 20.6434C8 20.3565 8 19.9078 8 19.0104V13.8446Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M16 13.8446C16 13.0802 16 12.698 16.1747 12.4323C16.2627 12.2985 16.3794 12.188 16.5156 12.1095C16.7863 11.9535 17.1519 11.9896 17.8831 12.0617C19.1151 12.1831 19.7312 12.2439 20.1726 12.5764C20.3961 12.7448 20.5836 12.9593 20.7235 13.2067C21 13.6955 21 14.3395 21 15.6276V17.1933C21 18.4685 21 19.1061 20.718 19.5986C20.6125 19.7829 20.4802 19.9491 20.3258 20.0913C19.9135 20.4714 19.3116 20.5901 18.1077 20.8275C17.2606 20.9945 16.837 21.078 16.5244 20.9021C16.409 20.8372 16.307 20.7493 16.2243 20.6434C16 20.3565 16 19.9078 16 19.0104V13.8446Z"
stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-whatsapp" viewBox="0 0 20 20">
<path
d="M17 2.875C15.125 1 12.625 0 10 0C4.5 0 0 4.5 0 10C0 11.75 0.500008 13.5 1.37501 15L0 20L5.25002 18.625C6.75002 19.375 8.375 19.875 10 19.875C15.5 19.875 20 15.375 20 9.875C20 7.25 18.875 4.75 17 2.875ZM10 18.25C8.5 18.25 7.00001 17.875 5.75001 17.125L5.49999 17L2.37499 17.875L3.25001 14.875L2.99999 14.5C2.12499 13.125 1.74999 11.625 1.74999 10.125C1.74999 5.625 5.5 1.875 10 1.875C12.25 1.875 14.25 2.75 15.875 4.25C17.5 5.875 18.25 7.875 18.25 10.125C18.25 14.5 14.625 18.25 10 18.25ZM14.5 12C14.25 11.875 13 11.25 12.75 11.25C12.5 11.125 12.375 11.125 12.25 11.375C12.125 11.625 11.625 12.125 11.5 12.375C11.375 12.5 11.25 12.5 11 12.5C10.75 12.375 10 12.125 9.00002 11.25C8.25002 10.625 7.75001 9.75 7.62501 9.5C7.50001 9.25 7.62502 9.125 7.75002 9C7.87502 8.875 8 8.75 8.125 8.625C8.25 8.5 8.25002 8.375 8.37502 8.25C8.50002 8.125 8.37502 8 8.37502 7.875C8.37502 7.75 7.87501 6.5 7.62501 6C7.50001 5.625 7.25002 5.625 7.12502 5.625C7.00002 5.625 6.87498 5.625 6.62498 5.625C6.49998 5.625 6.24998 5.625 5.99998 5.875C5.74998 6.125 5.12501 6.75 5.12501 8C5.12501 9.25 5.99999 10.375 6.12499 10.625C6.24999 10.75 7.87498 13.375 10.375 14.375C12.5 15.25 12.875 15 13.375 15C13.875 15 14.875 14.375 15 13.875C15.25 13.25 15.25 12.75 15.125 12.75C15 12.125 14.75 12.125 14.5 12Z"
fill="currentColor" />
</symbol>
<symbol id="i-instagram" viewBox="0 0 20 20">
<path
d="M10 1.80723C12.6506 1.80723 13.0121 1.80723 14.0964 1.80723C15.0602 1.80723 15.5422 2.04819 15.9036 2.16868C16.3855 2.40964 16.747 2.53012 17.1084 2.89157C17.4699 3.25301 17.7108 3.61446 17.8313 4.09639C17.9518 4.45783 18.0723 4.93976 18.1928 5.90362C18.1928 6.98795 18.1928 7.22892 18.1928 10C18.1928 12.7711 18.1928 13.0121 18.1928 14.0964C18.1928 15.0602 17.9518 15.5422 17.8313 15.9036C17.5904 16.3855 17.4699 16.747 17.1084 17.1084C16.747 17.4699 16.3855 17.7108 15.9036 17.8313C15.5422 17.9518 15.0602 18.0723 14.0964 18.1928C13.0121 18.1928 12.7711 18.1928 10 18.1928C7.22892 18.1928 6.98795 18.1928 5.90362 18.1928C4.93976 18.1928 4.45783 17.9518 4.09639 17.8313C3.61446 17.5904 3.25301 17.4699 2.89157 17.1084C2.53012 16.747 2.28916 16.3855 2.16868 15.9036C2.04819 15.5422 1.92771 15.0602 1.80723 14.0964C1.80723 13.0121 1.80723 12.7711 1.80723 10C1.80723 7.22892 1.80723 6.98795 1.80723 5.90362C1.80723 4.93976 2.04819 4.45783 2.16868 4.09639C2.40964 3.61446 2.53012 3.25301 2.89157 2.89157C3.25301 2.53012 3.61446 2.28916 4.09639 2.16868C4.45783 2.04819 4.93976 1.92771 5.90362 1.80723C6.98795 1.80723 7.3494 1.80723 10 1.80723ZM10 0C7.22892 0 6.98795 0 5.90362 0C4.81928 0 4.09639 0.240965 3.49398 0.481928C2.89157 0.722892 2.28916 1.08434 1.68675 1.68675C1.08434 2.28916 0.843374 2.77109 0.481928 3.49398C0.240965 4.09639 0.120482 4.81928 0 5.90362C0 6.98795 0 7.3494 0 10C0 12.7711 0 13.0121 0 14.0964C0 15.1807 0.240965 15.9036 0.481928 16.506C0.722892 17.1084 1.08434 17.7108 1.68675 18.3133C2.28916 18.9157 2.77109 19.1566 3.49398 19.5181C4.09639 19.759 4.81928 19.8795 5.90362 20C6.98795 20 7.3494 20 10 20C12.6506 20 13.0121 20 14.0964 20C15.1807 20 15.9036 19.759 16.506 19.5181C17.1084 19.2771 17.7108 18.9157 18.3133 18.3133C18.9157 17.7108 19.1566 17.2289 19.5181 16.506C19.759 15.9036 19.8795 15.1807 20 14.0964C20 13.0121 20 12.6506 20 10C20 7.3494 20 6.98795 20 5.90362C20 4.81928 19.759 4.09639 19.5181 3.49398C19.2771 2.89157 18.9157 2.28916 18.3133 1.68675C17.7108 1.08434 17.2289 0.843374 16.506 0.481928C15.9036 0.240965 15.1807 0.120482 14.0964 0C13.0121 0 12.7711 0 10 0Z"
fill="currentColor" />
<path
d="M10 4.81928C7.10843 4.81928 4.81928 7.10843 4.81928 10C4.81928 12.8916 7.10843 15.1807 10 15.1807C12.8916 15.1807 15.1807 12.8916 15.1807 10C15.1807 7.10843 12.8916 4.81928 10 4.81928ZM10 13.3735C8.19277 13.3735 6.62651 11.9277 6.62651 10C6.62651 8.19277 8.07229 6.62651 10 6.62651C11.8072 6.62651 13.3735 8.07229 13.3735 10C13.3735 11.8072 11.8072 13.3735 10 13.3735Z"
fill="currentColor" />
<path
d="M15.3012 5.90362C15.9666 5.90362 16.506 5.3642 16.506 4.6988C16.506 4.03339 15.9666 3.49398 15.3012 3.49398C14.6358 3.49398 14.0964 4.03339 14.0964 4.6988C14.0964 5.3642 14.6358 5.90362 15.3012 5.90362Z"
fill="currentColor" />
</symbol>
<symbol id="i-telegram" viewBox="0 0 20 17">
<path
d="M1.3749 7.31846C6.74359 4.91938 10.3236 3.33777 12.1148 2.57361C17.2292 0.391776 18.2919 0.0127698 18.9846 0.00012133C19.1369 -0.00249777 19.4776 0.0362266 19.6982 0.219862C19.8845 0.37492 19.9358 0.584381 19.9603 0.731393C19.9848 0.878405 20.0154 1.2133 19.9911 1.47498C19.714 4.46174 18.5147 11.7098 17.9046 15.055C17.6465 16.4705 17.1382 16.9451 16.6461 16.9916C15.5766 17.0925 14.7645 16.2667 13.7287 15.5702C12.1078 14.4805 11.1921 13.8021 9.61879 12.7387C7.80053 11.5097 8.97923 10.8343 10.0154 9.73042C10.2866 9.44153 14.9987 5.04555 15.0899 4.64677C15.1013 4.59689 15.1119 4.41098 15.0042 4.31282C14.8965 4.21465 14.7376 4.24822 14.6229 4.27492C14.4604 4.31276 11.871 6.06814 6.85486 9.54107C6.11988 10.0587 5.45416 10.3109 4.8577 10.2977C4.20015 10.2831 2.93528 9.91637 1.99498 9.60288C0.84166 9.21836 -0.0749729 9.01506 0.00484519 8.36203C0.0464194 8.0219 0.503103 7.67404 1.3749 7.31846Z"
fill="currentColor" />
</symbol>
<symbol id="i-facebook" viewBox="0 0 20 20">
<path
d="M20 10C20 4.5 15.5 0 10 0C4.5 0 0 4.5 0 10C0 15 3.625 19.125 8.375 19.875V12.875H5.875V10H8.375V7.75C8.375 5.25 9.875 3.875 12.125 3.875C13.25 3.875 14.375 4.125 14.375 4.125V6.625H13.125C11.875 6.625 11.5 7.375 11.5 8.125V10H14.25L13.75 12.875H11.375V20C16.375 19.25 20 15 20 10Z"
fill="currentColor" />
</symbol>
<symbol id="i-chat" viewBox="0 0 16 16" fill="none">
<path d="M8.00033 14.6668C11.6822 14.6668 14.667 11.6821 14.667 8.00016C14.667 4.31826 11.6822 1.3335 8.00033 1.3335C4.31843 1.3335 1.33366 4.31826 1.33366 8.00016C1.33366 9.06662 1.58407 10.0746 2.0293 10.9685C2.14762 11.206 2.187 11.4775 2.11841 11.7339L1.72133 13.2179C1.54896 13.8622 2.13834 14.4515 2.78256 14.2792L4.26658 13.8821C4.52295 13.8135 4.79446 13.8529 5.03201 13.9712C5.9259 14.4164 6.93387 14.6668 8.00033 14.6668Z" stroke="currentColor" stroke-width="1.5" />
<path d="M5.33301 7H10.6663M5.33301 9.3335H8.99967" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-mail" viewBox="0 0 16 16" fill="none">
<path d="M1.33301 7.99984C1.33301 5.48568 1.33301 4.2286 2.11406 3.44755C2.8951 2.6665 4.15218 2.6665 6.66634 2.6665H9.33301C11.8472 2.6665 13.1042 2.6665 13.8853 3.44755C14.6663 4.2286 14.6663 5.48568 14.6663 7.99984C14.6663 10.514 14.6663 11.7711 13.8853 12.5521C13.1042 13.3332 11.8472 13.3332 9.33301 13.3332H6.66634C4.15218 13.3332 2.8951 13.3332 2.11406 12.5521C1.33301 11.7711 1.33301 10.514 1.33301 7.99984Z" stroke="currentColor" stroke-width="1.5" />
<path d="M4 5.3335L5.43926 6.53288C6.66369 7.55324 7.2759 8.06341 8 8.06341C8.7241 8.06341 9.33631 7.55324 10.5607 6.53288L12 5.3335" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-phone" viewBox="0 0 16 16" fill="none">
<path d="M9.33398 1.33301C9.33398 1.33301 10.8007 1.46634 12.6673 3.33301C14.534 5.19967 14.6673 6.66634 14.6673 6.66634" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M9.4707 3.69043C9.4707 3.69043 10.1307 3.87899 11.1206 4.86894C12.1106 5.85889 12.2991 6.51886 12.2991 6.51886" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M6.69108 3.54444L7.12375 4.31973C7.51422 5.01938 7.35747 5.93721 6.74249 6.55219C6.74249 6.55219 5.99653 7.29816 7.34903 8.65065C8.7015 10.0031 9.44748 9.25719 9.44748 9.25719C10.0625 8.6422 10.9803 8.48546 11.6799 8.87592L12.4552 9.3086C13.5117 9.89821 13.6365 11.3798 12.7079 12.3085C12.1499 12.8665 11.4663 13.3006 10.7106 13.3293C9.43853 13.3775 7.2782 13.0556 5.11115 10.8885C2.9441 8.72147 2.62216 6.56114 2.67038 5.28905C2.69903 4.53339 3.13322 3.84982 3.69122 3.29181C4.61985 2.36318 6.10146 2.48795 6.69108 3.54444Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-send" viewBox="0 0 16 16" fill="none">
<path d="M12.4244 10.4464L13.5687 7.01354C14.5684 4.01462 15.0682 2.51516 14.2767 1.72364C13.4852 0.932131 11.9857 1.43195 8.98679 2.43159L5.5539 3.57589C3.13347 4.3827 1.92326 4.7861 1.57936 5.37766C1.25219 5.94042 1.25219 6.63547 1.57936 7.19823C1.92326 7.78979 3.13347 8.1932 5.55389 9C5.94253 9.12955 6.13685 9.19432 6.29927 9.30306C6.45668 9.40843 6.5919 9.54365 6.69727 9.70106C6.806 9.86348 6.87078 10.0578 7.00032 10.4464C7.80713 12.8668 8.21053 14.0771 8.80209 14.421C9.36485 14.7481 10.0599 14.7481 10.6227 14.421C11.2142 14.0771 11.6176 12.8668 12.4244 10.4464Z" stroke="currentColor" stroke-width="1.5" />
<path d="M10.4571 5.54364L6.75781 9.20215" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-chev-right" viewBox="0 0 16 16" fill="none">
<path d="M6 3.33366L10 8.00033L6 12.667" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<path id="ringPathScroll" fill="none" d="M50,50 m-39,0 a39,39 0 1,1 78,0 a39,39 0 1,1 -78,0" />
</svg>
<!-- ============ header ============ -->
<header class="site-header" id="siteHeader">
<div class="container header__inner">
<div class="header__left">
<a class="header__logo" href="index.html" aria-label="Hop On Hop Off — home">
<svg class="logo" viewBox="0 0 91 40" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Logo">
<g clip-path="url(#clip0_117_3713)">
<path
d="M70.0559 6.63419C69.9035 7.36616 69.76 8.05456 69.6194 8.74587C69.2766 10.4306 68.9338 12.1153 68.6027 13.8C68.5471 14.0759 68.424 14.195 68.1311 14.1892C67.217 14.1776 66.3029 14.1863 65.3888 14.1863C65.0216 14.1863 64.8752 14.0023 64.9494 13.6344C65.2892 11.9381 65.632 10.2418 65.9719 8.54545C66.5021 5.90221 67.0324 3.26188 67.551 0.618649C67.6037 0.348516 67.7209 0.229425 67.9934 0.252662C68.8371 0.316565 69.678 0.235234 70.5217 0.243948C70.9289 0.249757 71.175 0.365944 71.3625 0.758072C72.4407 3.01499 73.551 5.25738 74.6526 7.50268C74.7053 7.61306 74.7288 7.74667 74.8929 7.83671C74.9749 7.44749 75.0569 7.0786 75.1302 6.70971C75.5286 4.72873 75.9212 2.74776 76.3196 0.763881C76.4192 0.272995 76.4397 0.243948 76.9349 0.255567C77.8343 0.272995 78.7366 0.272995 79.6361 0.264281C80.1195 0.258471 80.1458 0.316565 80.0521 0.769691C79.1527 5.11505 78.2474 9.45751 77.3567 13.8058C77.2923 14.1166 77.1575 14.2037 76.8645 14.2008C75.9856 14.1892 75.1067 14.1863 74.2278 14.2008C73.926 14.2066 73.759 14.0904 73.6331 13.8261C72.5374 11.5663 71.4299 9.30937 70.3254 7.05246C70.261 6.92465 70.2229 6.77361 70.0559 6.6429V6.63419Z"
fill="white"></path>
<path
d="M25.5852 14.4942C24.0706 14.5029 22.6584 14.1834 21.4426 13.2249C20.218 12.2605 19.5764 10.9825 19.4299 9.45462C19.0314 5.2661 22.1252 0.682561 27.2552 0.0783925C28.6204 -0.0842682 29.9739 -0.0232704 31.2659 0.502472C33.2464 1.30706 34.3363 2.79715 34.5853 4.8885C35.0658 8.90564 31.887 13.8435 26.7776 14.4303C26.3792 14.4768 25.9837 14.4855 25.5852 14.4942ZM30.6068 6.2014C30.6068 6.05036 30.6155 5.89932 30.6068 5.74828C30.5247 4.54866 29.7015 3.59012 28.5589 3.35484C27.5452 3.14571 26.5843 3.3258 25.7317 3.87478C23.9358 5.03664 23.2473 6.75619 23.4289 8.81559C23.5461 10.1575 24.425 11.0202 25.7288 11.2148C26.5901 11.3426 27.4192 11.1771 28.1546 10.7152C29.8157 9.66956 30.5247 8.09814 30.6068 6.20431V6.2014Z"
fill="white"></path>
<path
d="M31.9078 23.3679C31.8873 27.3705 29.107 30.9636 25.3159 31.8698C23.4995 32.3055 21.6889 32.3346 19.9428 31.5706C18.1176 30.7719 17.0717 29.3544 16.8314 27.4083C16.348 23.455 18.7855 19.6035 22.5766 18.2383C24.188 17.6573 25.8374 17.4831 27.5161 17.8607C30.3316 18.4939 31.9224 20.5039 31.9078 23.3679ZM27.9321 23.9343C27.9321 23.7716 27.9439 23.609 27.9321 23.4463C27.8208 22.0695 26.9184 21.111 25.6001 20.9745C24.8383 20.896 24.1118 21.0296 23.4145 21.3521C21.3139 22.328 20.3412 25.2675 20.9008 27.0858C21.1908 28.0299 21.8266 28.6398 22.8051 28.8461C23.7895 29.0523 24.7329 28.8838 25.5708 28.3552C27.1909 27.3327 27.8384 25.7671 27.9321 23.9314V23.9343Z"
fill="white"></path>
<path
d="M58.5507 0.0115716C60.0009 -0.00876093 61.2607 0.243944 62.3915 0.964298C63.83 1.88217 64.5859 3.21541 64.75 4.88558C65.122 8.63549 62.7783 12.7049 58.7792 14.0411C56.9569 14.651 55.1024 14.7324 53.2713 14.0556C51.1766 13.28 49.7937 11.3862 49.7557 9.16704C49.6912 5.3358 51.4051 2.53572 54.8592 0.807447C55.9549 0.261372 57.2733 0.00866699 58.5536 0.00866699L58.5507 0.0115716ZM60.8417 6.23044C60.8417 6.09101 60.8505 5.95159 60.8417 5.81217C60.7685 4.66773 60.08 3.72082 59.0985 3.42454C58.2079 3.15441 57.3378 3.22993 56.494 3.60172C54.5282 4.46731 53.4178 6.79103 53.7371 8.93177C53.9305 10.2243 54.7508 11.0144 56.0048 11.2119C56.6903 11.3194 57.37 11.2293 57.9911 10.9244C59.9482 9.96582 60.6952 8.27241 60.8388 6.22753L60.8417 6.23044Z"
fill="white"></path>
<path
d="M52.5947 32.1313C51.2353 32.1488 50.0048 31.9077 48.8915 31.2367C47.4149 30.3479 46.6444 28.9943 46.4364 27.3299C45.9969 23.8647 48.1122 20.0044 51.5898 18.4795C53.8046 17.5093 56.0869 17.2973 58.3721 18.2819C60.1328 19.043 61.1231 20.4285 61.3604 22.2904C61.6885 24.8552 60.9238 27.1266 59.2861 29.125C57.7012 31.0595 55.0293 32.201 52.5976 32.1313H52.5947ZM53.1718 28.9043C54.0126 28.9362 54.8095 28.669 55.4804 28.1229C57.0683 26.8332 57.707 25.1456 57.4463 23.1414C57.2969 21.9883 56.4414 21.1488 55.3076 20.9891C54.3378 20.8526 53.4003 21.0094 52.5859 21.5729C50.9716 22.6912 50.3036 24.2888 50.33 26.1971C50.3534 27.8383 51.4726 28.9014 53.1689 28.9014L53.1718 28.9043Z"
fill="white"></path>
<path
d="M11.6694 5.54499C12.3843 5.54499 13.0991 5.52466 13.814 5.55371C14.189 5.56823 14.3149 5.4259 14.3794 5.07444C14.6607 3.60178 14.9741 2.13783 15.2642 0.668076C15.3169 0.392134 15.4429 0.261425 15.7271 0.261425C16.7788 0.261425 17.8306 0.25852 18.8824 0.255615C19.1431 0.255615 19.2222 0.365992 19.1666 0.630316C18.4488 4.06362 17.7369 7.49692 17.0279 10.9302C16.8286 11.8859 16.6265 12.8386 16.4449 13.7971C16.3921 14.076 16.2749 14.1921 15.982 14.1892C14.9624 14.1776 13.9429 14.1892 12.9233 14.1834C12.5395 14.1834 12.5014 14.1341 12.5806 13.7448C12.8794 12.278 13.1811 10.8111 13.4829 9.34428C13.5767 8.89115 13.5767 8.88534 13.1284 8.88534C11.6518 8.88534 10.1753 8.89115 8.7016 8.87663C8.37934 8.87663 8.25629 8.98701 8.19476 9.30071C7.90472 10.8169 7.58538 12.3274 7.28362 13.8436C7.23382 14.0934 7.11956 14.1951 6.85881 14.1921C5.82755 14.1834 4.79629 14.1834 3.76503 14.1921C3.46327 14.1921 3.38416 14.0934 3.44276 13.7942C3.95546 11.2672 4.45351 8.74011 4.95742 6.21016C5.32364 4.37732 5.69571 2.54448 6.05021 0.708741C6.1088 0.403753 6.22892 0.278852 6.55412 0.284662C7.59417 0.30209 8.63422 0.29628 9.6772 0.290471C9.93209 0.290471 10.0083 0.374706 9.95552 0.624506C9.6479 2.09136 9.35493 3.55821 9.04731 5.02506C8.94184 5.53337 8.94477 5.5508 9.48384 5.55371C10.2104 5.55371 10.937 5.55371 11.6636 5.55371L11.6694 5.54499Z"
fill="white"></path>
<path
d="M8.30004 26.537C7.55003 26.537 6.80002 26.5486 6.05002 26.5311C5.76876 26.5253 5.66036 26.6328 5.60763 26.8971C5.31173 28.425 4.99825 29.9499 4.70528 31.4778C4.65254 31.7479 4.53535 31.8438 4.25996 31.8409C3.24042 31.8292 2.22087 31.8263 1.20426 31.8409C0.879063 31.8467 0.799961 31.7479 0.864414 31.4342C1.50895 28.2246 2.1447 25.012 2.78338 21.8024C3.0119 20.6521 3.24921 19.5048 3.46893 18.3516C3.51874 18.0815 3.64179 17.9856 3.91425 17.9915C4.93379 18.0031 5.95334 18.006 6.96995 17.9915C7.29515 17.9856 7.37132 18.0931 7.30687 18.4039C6.99925 19.8708 6.7092 21.3376 6.4133 22.8074C6.35666 23.0901 6.47287 23.2324 6.76194 23.2344C8.23852 23.2344 9.71509 23.2256 11.1887 23.2431C11.5315 23.246 11.6546 23.1298 11.7161 22.8074C12.0003 21.3492 12.3167 19.8969 12.6009 18.4388C12.6683 18.0989 12.8118 17.9856 13.1604 17.9944C14.1565 18.0176 15.1527 18.0118 16.1458 17.9944C16.4593 17.9886 16.5618 18.067 16.4974 18.3923C15.7152 22.1916 14.9417 25.9909 14.1653 29.7902C14.0481 30.3595 13.928 30.9259 13.8226 31.4981C13.7757 31.745 13.6614 31.8496 13.3978 31.8467C12.3665 31.835 11.3352 31.835 10.3069 31.8467C9.96998 31.8496 9.92018 31.7218 9.98463 31.4226C10.2952 29.9441 10.5852 28.4656 10.8841 26.9843C10.9719 26.5428 10.9778 26.5428 10.512 26.5428C9.77369 26.5428 9.0354 26.5428 8.29711 26.5428L8.30004 26.537Z"
fill="white"></path>
<path
d="M41.409 0.252687C42.3202 0.26721 43.536 0.223641 44.7548 0.287543C45.3817 0.319494 45.9882 0.426966 46.5683 0.659339C48.247 1.33031 48.7509 2.55608 48.7451 4.05198C48.7451 4.96404 48.5107 5.84124 48.1093 6.67197C47.1366 8.67909 45.4755 9.7451 43.3251 10.1547C42.1766 10.3754 41.0135 10.2912 39.8563 10.2854C39.4666 10.2854 39.3319 10.4045 39.2674 10.7733C39.0858 11.7784 38.8543 12.7747 38.6639 13.7768C38.6053 14.0905 38.4647 14.1979 38.1453 14.1921C37.1609 14.1776 36.1766 14.1776 35.1951 14.1921C34.8787 14.195 34.782 14.105 34.8494 13.7826C35.7342 9.4372 36.616 5.09184 37.4774 0.743574C37.5535 0.363064 37.7264 0.243973 38.0838 0.246878C39.0916 0.255592 40.0995 0.249782 41.412 0.249782L41.409 0.252687ZM42.1883 3.47395C41.8251 3.47395 41.4618 3.48557 41.1014 3.47104C40.87 3.46233 40.7674 3.54657 40.7206 3.77313C40.5213 4.78685 40.3133 5.79767 40.0995 6.80559C40.0497 7.03796 40.1082 7.128 40.3514 7.1251C41.0428 7.11639 41.7342 7.14253 42.4227 7.11639C43.7001 7.0641 44.4354 6.47446 44.6991 5.34164C44.9657 4.18849 44.4413 3.51461 43.243 3.47976C42.8915 3.46814 42.5399 3.47976 42.1913 3.47976L42.1883 3.47395Z"
fill="white"></path>
<path
d="M38.2882 27.9951C37.8546 27.9951 37.421 28.0038 36.9874 27.9922C36.7442 27.9864 36.6387 28.0793 36.5918 28.3233C36.3956 29.3486 36.1641 30.3682 35.9737 31.3964C35.9122 31.7392 35.7715 31.8554 35.42 31.8467C34.459 31.8234 33.4981 31.8408 32.54 31.8379C32.0947 31.8379 32.0772 31.8147 32.165 31.379C32.7305 28.5789 33.2988 25.7817 33.8643 22.9816C34.1778 21.4335 34.4971 19.8882 34.7989 18.34C34.8487 18.0844 34.9571 17.9915 35.2178 17.9944C37.4913 18.0031 39.7618 17.9769 42.0353 18.0147C43.1105 18.0321 44.1124 18.3458 44.9269 19.101C45.7062 19.8243 45.9435 20.7625 45.9289 21.7617C45.9025 23.4464 45.299 24.922 44.089 26.1129C42.9845 27.1992 41.6163 27.7598 40.0811 27.9399C39.4864 28.0096 38.8887 27.9922 38.2911 27.9951H38.2882ZM38.7833 24.7825C39.088 24.7825 39.3927 24.7883 39.6974 24.7825C40.9396 24.7593 41.6573 24.1871 41.9415 22.9904C42.2023 21.8982 41.6778 21.204 40.5499 21.1779C39.8233 21.1604 39.0968 21.1779 38.3731 21.1691C38.1475 21.1662 38.0362 21.2359 37.9923 21.4654C37.793 22.4791 37.585 23.49 37.3682 24.5008C37.3243 24.7099 37.3946 24.7825 37.5909 24.7825C37.9893 24.7825 38.3878 24.7825 38.7862 24.7825H38.7833Z"
fill="white"></path>
<path
d="M69.259 17.9973C70.7707 17.9973 72.2825 17.9973 73.7913 17.9973C74.2395 17.9973 74.2483 18.0147 74.1546 18.4562C73.9905 19.2288 73.8206 20.0015 73.677 20.777C73.6213 21.0733 73.4866 21.1779 73.1819 21.175C71.4006 21.1633 69.6193 21.1779 67.841 21.1633C67.507 21.1604 67.3547 21.265 67.299 21.5903C67.1994 22.1625 67.0734 22.729 66.9387 23.2954C66.8713 23.58 66.9562 23.6555 67.2463 23.6526C68.8869 23.641 70.5276 23.6468 72.1653 23.6468C72.637 23.6468 72.6545 23.6701 72.5666 24.1174C72.4172 24.8581 72.2532 25.5958 72.1213 26.3365C72.0569 26.6909 71.9192 26.839 71.5237 26.8332C69.9065 26.81 68.2893 26.8332 66.675 26.8187C66.3498 26.8158 66.2267 26.9291 66.1681 27.2341C65.9015 28.6254 65.6056 30.0109 65.342 31.4023C65.2804 31.7218 65.1632 31.8525 64.8175 31.8467C63.8566 31.8263 62.8956 31.8321 61.9347 31.8409C61.6212 31.8438 61.5275 31.7566 61.5948 31.4313C62.3449 27.7569 63.0802 24.0796 63.8214 20.4023C63.9591 19.7197 64.1056 19.0371 64.2316 18.3516C64.2785 18.096 64.3693 17.9827 64.6623 17.9857C66.1974 18.0031 67.7326 17.9944 69.2648 17.9944L69.259 17.9973Z"
fill="white"></path>
<path
d="M80.8548 17.9943C82.3783 17.9943 83.9017 18.0001 85.4252 17.9885C85.7181 17.9885 85.7972 18.067 85.7357 18.3516C85.5541 19.1562 85.3812 19.9637 85.2318 20.7741C85.1761 21.0762 85.0472 21.1778 84.7425 21.1749C82.9613 21.1633 81.18 21.1807 79.3987 21.1633C79.0442 21.1604 78.9007 21.2708 78.8479 21.6164C78.763 22.177 78.6458 22.7376 78.5081 23.2895C78.4319 23.5916 78.5345 23.6497 78.8128 23.6497C80.4534 23.641 82.0941 23.6468 83.7347 23.6497C84.2064 23.6497 84.2122 23.6642 84.1156 24.1261C83.9574 24.8871 83.7933 25.6481 83.6556 26.4149C83.5999 26.7199 83.4769 26.839 83.1488 26.8361C81.5198 26.8216 79.8909 26.8361 78.262 26.8245C77.9339 26.8245 77.7874 26.9058 77.7229 27.2457C77.4622 28.6254 77.1575 29.9993 76.8938 31.379C76.8264 31.7333 76.677 31.8583 76.3137 31.8495C75.3645 31.8263 74.4153 31.835 73.466 31.8437C73.1731 31.8437 73.0735 31.7711 73.1379 31.4545C73.9524 27.4722 74.7522 23.487 75.5579 19.5019C75.634 19.1271 75.7366 18.7554 75.7835 18.3748C75.8245 18.0495 75.9944 17.9943 76.2815 17.9972C77.805 18.006 79.3284 18.003 80.8519 18.003V17.9972L80.8548 17.9943Z"
fill="white"></path>
<path
d="M69.751 31.7769C70.4014 31.8728 70.999 31.9744 71.5967 32.0412C75.7891 32.5176 79.8409 31.9889 83.7287 30.3391C84.8713 29.854 85.9611 29.2644 87.0158 28.6108C87.2824 28.4453 87.3996 28.2797 87.3088 27.9602C87.2209 27.6494 87.1828 27.3241 87.1242 27.0046C87.1037 26.8826 87.01 26.7286 87.1242 26.6444C87.2385 26.5601 87.3644 26.6879 87.4699 26.7548C88.4397 27.3444 89.4065 27.9311 90.3703 28.5295C91.1643 29.0233 91.1614 29.0262 90.5989 29.7843C89.9045 30.7196 89.216 31.6607 88.5217 32.5931C88.4572 32.6802 88.4162 32.8371 88.2756 32.7993C88.1555 32.7674 88.1936 32.6222 88.1701 32.5263C88.0969 32.1865 88.0266 31.8437 87.965 31.501C87.9211 31.2541 87.8127 31.2076 87.5783 31.3034C85.4953 32.1458 83.3332 32.6919 81.1066 32.991C77.3595 33.4994 73.6797 33.2496 70.0938 31.9977C69.9883 31.9599 69.8652 31.9483 69.751 31.7798V31.7769Z"
fill="white"></path>
<path
d="M65.8896 15.0316C66.2324 15.0083 66.54 15.1274 66.8535 15.171C72.5343 15.9756 77.8634 15.081 82.7443 11.973C83.0432 11.7813 83.1252 11.5925 83.0314 11.2642C82.9435 10.9534 82.8996 10.6281 82.8439 10.3086C82.8293 10.2244 82.7648 10.114 82.8644 10.053C82.9582 9.99781 83.0432 10.085 83.1193 10.1314C84.1096 10.7327 85.094 11.3369 86.0813 11.9381C86.2893 12.0659 86.4973 12.1995 86.7082 12.3244C86.8811 12.4261 86.8899 12.5423 86.7698 12.6933C85.9026 13.8058 85.0412 14.9212 84.174 16.0337C84.1272 16.0947 84.0861 16.1905 83.9865 16.1586C83.8898 16.1295 83.9016 16.0279 83.8869 15.9524C83.8107 15.5893 83.7346 15.2262 83.6672 14.8602C83.6262 14.6365 83.5676 14.5378 83.301 14.6453C81.3029 15.444 79.2316 15.9698 77.0988 16.2544C75.1065 16.5188 73.1114 16.5449 71.1104 16.3271C69.4375 16.1441 67.8057 15.8013 66.2207 15.2407C66.1064 15.2 65.9629 15.203 65.8896 15.0345V15.0316Z"
fill="white"></path>
<path
d="M67.8024 37.6762C68.1276 37.1302 68.4997 36.6073 68.7663 36.0351C69.0592 35.4048 69.4577 35.0766 70.1725 35.2218C70.2165 35.2305 70.2663 35.2218 70.3132 35.2218C70.7175 35.2276 70.7468 35.2567 70.6764 35.643C70.4743 36.7264 70.2663 37.8098 70.0612 38.8933C70.0143 39.1315 69.9674 39.3726 69.9294 39.6136C69.8942 39.8315 69.7829 39.9215 69.5514 39.9302C68.7047 39.9593 68.7047 39.9651 68.8659 39.1344C68.986 38.5099 69.1061 37.8854 69.1559 37.2289C68.9567 37.5717 68.7604 37.9173 68.5612 38.2601C68.3122 38.6929 68.0573 39.1257 67.817 39.5643C67.7057 39.7647 67.5768 39.8954 67.3219 39.8634C67.0612 39.8286 67.067 39.6224 67.0319 39.4481C66.8766 38.6987 66.7242 37.9464 66.5133 37.1883C66.3961 37.8128 66.2789 38.4373 66.1617 39.0647C66.15 39.1228 66.1442 39.1808 66.1354 39.236C66.0035 39.9361 66.0035 39.9215 65.2682 39.9273C64.9371 39.9302 64.8668 39.8199 64.9283 39.5149C65.1568 38.3879 65.3678 37.258 65.5875 36.1281C65.6139 35.9915 65.6402 35.855 65.6695 35.7185C65.7379 35.3835 65.9381 35.216 66.2701 35.216C66.9303 35.216 67.32 35.5336 67.4391 36.1687C67.5329 36.6596 67.6325 37.1476 67.7291 37.6356C67.7555 37.6472 67.7819 37.6559 67.8082 37.6675L67.8024 37.6762Z"
fill="white"></path>
<path
d="M58.6563 37.9842C58.6681 36.3082 59.8868 35.1115 61.548 35.1521C62.5499 35.1754 63.2999 35.7941 63.4406 36.7787C63.6691 38.3763 62.4562 40.1656 60.423 39.9884C59.3126 39.8925 58.6475 39.1199 58.6563 37.9871V37.9842ZM59.8165 37.8099C59.8048 38.2543 59.8985 38.6551 60.3556 38.8498C60.8155 39.0444 61.2609 38.9747 61.6388 38.658C62.1368 38.2398 62.3478 37.685 62.2628 37.0431C62.1749 36.3605 61.6505 36.0264 60.9737 36.2007C60.297 36.375 59.8282 37.0256 59.8136 37.8099H59.8165Z"
fill="white"></path>
<path
d="M34.8758 39.9274C34.4305 39.9274 33.9852 39.9245 33.5399 39.9274C33.3143 39.9303 33.2176 39.8606 33.2645 39.6166C33.5311 38.2369 33.7889 36.8572 34.0438 35.4775C34.0789 35.2945 34.1727 35.219 34.3543 35.2219C35.2684 35.2219 36.1825 35.2219 37.0936 35.2219C37.3133 35.2219 37.3924 35.3119 37.3397 35.524C37.3221 35.5908 37.3192 35.6605 37.3075 35.7302C37.245 36.0633 37.0428 36.2298 36.701 36.2298C36.2674 36.2298 35.8338 36.2269 35.4002 36.2298C35.1043 36.2298 34.8143 36.6684 34.9198 36.9443C34.9666 37.0634 35.0721 37.0315 35.16 37.0315C35.6522 37.0344 36.1444 37.0489 36.6366 37.0315C36.9559 37.0199 37.0292 37.1477 36.9559 37.4265C36.9296 37.5282 36.9061 37.6298 36.8944 37.7344C36.871 37.9639 36.745 38.051 36.5165 38.0452C36.036 38.0365 35.5555 38.0394 35.075 38.0452C34.7528 38.0452 34.4334 38.5506 34.5682 38.8382C34.6209 38.9515 34.7264 38.9166 34.8143 38.9195C35.3416 38.9224 35.869 38.9311 36.3963 38.9195C36.6483 38.9137 36.745 39.0037 36.6835 39.2477C36.6747 39.2826 36.6747 39.3174 36.6688 39.3523C36.6024 39.7415 36.3661 39.9361 35.9598 39.9361C35.5965 39.9361 35.2332 39.9361 34.87 39.9361L34.8758 39.9274Z"
fill="white"></path>
<path
d="M78.8237 38.0422C77.1361 38.0422 75.4516 38.0422 73.764 38.0422C73.2806 38.0422 73.2689 38.0277 73.3539 37.5804C73.4281 37.1776 73.6732 36.9762 74.0892 36.9762C77.4145 36.9762 80.7397 36.9762 84.0649 36.9762C84.5776 36.9762 84.5835 36.9849 84.4809 37.4874C84.4067 37.8553 84.1831 38.0393 83.81 38.0393C82.146 38.0393 80.4848 38.0393 78.8207 38.0393L78.8237 38.0422Z"
fill="white"></path>
<path
d="M29.0368 36.9792C29.4616 36.5377 29.904 36.1078 30.3083 35.6489C30.5954 35.3236 30.9147 35.158 31.3512 35.2248C31.5739 35.2597 31.9167 35.1115 31.9928 35.3061C32.0661 35.4891 31.735 35.6489 31.5768 35.8086C31.1374 36.2589 30.695 36.7062 30.2321 37.1332C30.0299 37.3191 30.0182 37.473 30.1501 37.7025C30.5075 38.3299 30.8356 38.9689 31.1872 39.5992C31.3219 39.8403 31.2721 39.9332 30.9909 39.9245C29.8161 39.8984 30.1266 40.1017 29.6051 39.0967C29.4997 38.8905 29.3854 38.6842 29.3004 38.4693C29.1774 38.1643 29.0485 38.2224 28.8522 38.4112C28.6178 38.6378 28.6178 38.9369 28.5621 39.2129C28.4039 39.9942 28.6002 39.9216 27.6129 39.9245C27.358 39.9245 27.2906 39.8229 27.3405 39.5789C27.5543 38.4867 27.7565 37.3917 27.9616 36.2966C27.985 36.1717 28.0055 36.0439 28.0289 35.919C28.1637 35.2016 28.3248 35.0999 29.069 35.2219C29.3092 35.2626 29.2623 35.4136 29.2389 35.5588C29.1569 36.0207 29.069 36.4825 28.9811 36.9444C29.0016 36.956 29.0192 36.9647 29.0397 36.9763L29.0368 36.9792Z"
fill="white"></path>
<path
d="M45.7943 39.9971C45.267 39.9738 44.7133 39.8664 44.2445 39.4859C44.0424 39.3203 43.9955 39.1605 44.1918 38.9659C44.2093 38.9485 44.2211 38.9311 44.2386 38.9136C44.3881 38.751 44.5082 38.5157 44.6928 38.4431C44.9008 38.3589 45.0092 38.6609 45.1937 38.7539C45.5951 38.9543 46.0023 39.0618 46.4447 38.9107C46.6234 38.8497 46.7582 38.7365 46.767 38.5418C46.7758 38.3443 46.6264 38.2543 46.4652 38.2049C46.143 38.1032 45.809 38.0306 45.4896 37.9202C44.6049 37.6124 44.3383 36.8571 44.8129 36.0526C45.2025 35.3961 46.0609 35.0446 46.9604 35.1753C47.3588 35.2334 47.7309 35.3612 48.0619 35.5965C48.2377 35.7214 48.3051 35.8434 48.1322 36.0177C48.0824 36.0671 48.0443 36.1281 48.0004 36.1804C47.7719 36.4515 47.5024 36.5125 47.1918 36.3634C46.89 36.2181 46.5766 36.1339 46.2396 36.1775C46.017 36.2065 45.8119 36.3024 45.7826 36.5405C45.7504 36.7845 45.9818 36.8281 46.1547 36.8833C46.4096 36.9675 46.6762 37.0227 46.9311 37.1069C47.4115 37.2667 47.8715 37.47 47.9389 38.0481C48.0151 38.7219 47.7924 39.2883 47.1977 39.6659C46.7904 39.9245 46.3305 40 45.7973 40.0029L45.7943 39.9971Z"
fill="white"></path>
<path
d="M5.07682 38.0422C3.51821 38.0422 1.96253 38.0422 0.403916 38.0422C-0.0384717 38.0422 -0.0443311 38.0335 0.0435605 37.6094C0.131452 37.1873 0.398057 36.9762 0.843374 36.9762C3.84341 36.9762 6.84051 36.9762 9.84054 36.9762C10.2175 36.9762 10.3708 37.1553 10.3005 37.5136C10.2302 37.8718 10.0124 38.047 9.64718 38.0393C8.12373 38.0393 6.60027 38.0393 5.07975 38.0393L5.07682 38.0422Z"
fill="white"></path>
<path
d="M52.6826 37.9812C52.6914 36.0613 54.5401 34.6757 56.2422 35.2712C56.6524 35.4135 56.9307 35.6953 57.1387 36.0613C57.25 36.2559 57.209 36.3895 56.9922 36.4679C56.9043 36.4999 56.8135 36.5318 56.7373 36.5812C56.4385 36.7729 56.2159 36.7584 55.9815 36.4447C55.7412 36.1194 55.3574 36.1048 54.9883 36.2152C54.1797 36.4505 53.6436 37.4526 53.8867 38.2543C54.1182 39.0182 55.0821 39.2041 55.7149 38.6145C55.8174 38.5186 55.8789 38.292 56.0518 38.3618C56.3067 38.4663 56.5381 38.6348 56.7696 38.7887C56.837 38.8352 56.7842 38.9165 56.7432 38.9746C56.2627 39.6253 55.6153 39.9767 54.8008 39.9942C54.0274 40.0116 53.374 39.7734 52.9551 39.0763C52.7412 38.7248 52.668 38.3443 52.6855 37.9812H52.6826Z"
fill="white"></path>
<path
d="M21.4606 37.8941C21.4635 36.2966 22.7731 35.0563 24.4636 35.1579C25.1052 35.1957 25.5945 35.4978 25.9197 36.0555C26.0368 36.2559 26.0427 36.4011 25.782 36.4737C25.6823 36.5028 25.5798 36.5435 25.489 36.5928C25.2165 36.7497 25.0232 36.7729 24.7976 36.4592C24.5632 36.131 24.156 36.1019 23.7692 36.2094C22.902 36.4476 22.363 37.5368 22.697 38.3705C22.9665 39.0473 23.9245 39.1751 24.4958 38.6116C24.5954 38.5128 24.6511 38.2979 24.8415 38.3734C25.0993 38.478 25.3513 38.6145 25.5534 38.8091C25.6238 38.8788 25.5359 38.9572 25.4919 39.024C24.8298 40 23.2331 40.3108 22.2546 39.6427C21.6745 39.2477 21.446 38.6726 21.4606 37.8912V37.8941Z"
fill="white"></path>
<path
d="M14.983 35.2219C15.4986 35.2219 16.0113 35.2277 16.527 35.2219C16.776 35.219 16.8756 35.3119 16.8053 35.5588C16.7907 35.614 16.7877 35.6721 16.776 35.7302C16.7115 36.0632 16.5114 36.2298 16.1754 36.2298C15.4137 36.2298 15.4108 36.2298 15.2672 36.9763C15.1119 37.7954 14.9596 38.6174 14.8102 39.4394C14.7223 39.9216 14.7193 39.9245 14.2301 39.9274C13.7887 39.9274 13.61 39.7086 13.6939 39.271C13.8639 38.3821 14.025 37.4933 14.2066 36.6074C14.2652 36.3198 14.2066 36.1949 13.8873 36.2269C13.6676 36.2472 13.442 36.2298 13.2223 36.2269C13.0435 36.2269 12.9644 36.1397 13.0025 35.9597C13.0084 35.9364 13.0113 35.9132 13.0142 35.8899C13.0728 35.4426 13.3297 35.2199 13.7848 35.2219C13.9605 35.2219 14.1363 35.2219 14.3121 35.2219C14.5348 35.2219 14.7574 35.2219 14.9801 35.2219H14.983Z"
fill="white"></path>
<path
d="M41.2414 35.2219C41.7219 35.2219 42.2024 35.2393 42.6799 35.2161C43.0198 35.1987 43.0959 35.3352 43.011 35.6256C43.0051 35.6489 43.0022 35.6721 42.9993 35.6953C42.9309 36.0517 42.7151 36.2298 42.3518 36.2298C41.4524 36.2298 41.6457 36.1659 41.4875 36.9502C41.3117 37.8245 41.1447 38.7017 40.9953 39.5818C40.9514 39.8403 40.8488 39.9361 40.5852 39.9332C39.633 39.9158 39.759 40.0204 39.9201 39.1432C40.0783 38.2892 40.2424 37.4352 40.4211 36.5813C40.4768 36.3082 40.383 36.2124 40.1193 36.2327C40.049 36.2385 39.9787 36.2327 39.9084 36.2327C39.1203 36.2327 39.1994 36.3169 39.3313 35.5065C39.3664 35.2916 39.4895 35.2219 39.6975 35.2248C40.2131 35.2306 40.7258 35.2248 41.2414 35.2248V35.2219Z"
fill="white"></path>
<path
d="M18.5449 39.9216C18.4511 39.9216 18.3574 39.9216 18.2636 39.9216C18.0644 39.9216 17.9911 39.8374 18.0292 39.637C18.29 38.2689 18.5507 36.9008 18.8027 35.5327C18.8466 35.2887 18.9814 35.219 19.2158 35.2161C20.0214 35.2016 20.0097 35.1928 19.8574 35.9626C19.6347 37.1012 19.4296 38.2427 19.2128 39.3814C19.1103 39.9245 19.1074 39.9216 18.5419 39.9187L18.5449 39.9216Z"
fill="white"></path>
<path
d="M50.9005 39.2506C50.9005 39.6514 50.59 39.9797 50.212 39.9826C49.8839 39.9855 49.629 39.7357 49.6349 39.4133C49.6437 39.0095 49.9864 38.6493 50.3526 38.6522C50.6661 38.6522 50.9005 38.9108 50.9005 39.2506Z"
fill="white"></path>
</g>
<defs>
<clipPath id="clip0_117_3713">
<rect width="91" height="40" fill="white"></rect>
</clipPath>
</defs>
</svg>
</a>
<nav class="nav" id="primaryNav" aria-label="Primary">
<ul class="nav__list">
<li><a class="nav__link" href="index.html">Home</a></li>
<li class="nav__item--has-menu">
<button class="nav__link nav__toggle" type="button" aria-expanded="false" aria-controls="toursMenu">
<span>Tours</span>
<svg class="icon icon--chevron" aria-hidden="true">
<use href="#i-chevron" />
</svg>
</button>
<ul class="nav__submenu" id="toursMenu">
<li><a href="tours.html">All tours</a></li>
<li><a href="tours.html">London</a></li>
<li><a href="tours.html">Nashville</a></li>
<li><a href="tours.html">Sydney</a></li>
<li><a href="tours.html">San Diego</a></li>
<li><a href="tours.html">Paris</a></li>
</ul>
</li>
<li><a class="nav__link" href="blog.html">Weblog</a></li>
<li><a class="nav__link" href="faq.html">FAQ&rsquo;s</a></li>
<li><a class="nav__link" href="contact.html">Contact us</a></li>
<li><a class="nav__link" href="about.html" aria-current="page">About us</a></li>
</ul>
</nav>
</div>
<div class="header__actions">
<button class="icon-btn" type="button" aria-label="Search">
<svg class="icon icon--24" aria-hidden="true">
<use href="#i-search" />
</svg>
</button>
<button class="icon-btn" type="button" aria-label="Account">
<svg class="icon icon--24" aria-hidden="true">
<use href="#i-user" />
</svg>
</button>
<a class="btn btn--accent header__cta" href="tours.html">
<span>Book now</span>
<svg class="icon" aria-hidden="true">
<use href="#i-arrow-right" />
</svg>
</a>
<button class="burger" id="burger" type="button" aria-label="Open menu" aria-expanded="false"
aria-controls="primaryNav">
<span></span><span></span><span></span>
</button>
</div>
</div>
</header>
<main id="main">
<section class="hero hero--page hero--about">
<div class="hero__media">
<img class="hero__img" src="assets/about-hero.png" alt="" fetchpriority="high" />
</div>
<div class="container hero__content">
<div class="about-hero__block">
<nav class="crumbs" aria-label="Breadcrumb">
<ol class="crumbs__list">
<li><a href="index.html">Home</a></li>
<li aria-current="page">About us</li>
</ol>
</nav>
<h1 class="about-hero__title">Know more about</h1>
<div class="about-hero__mark" role="img" aria-label="Hop On Hop Off">
<svg class="about-hero__logo" viewBox="0 0 91 34" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
<g clip-path="url(#clip0_117_3713)">
<path
d="M70.0559 6.63419C69.9035 7.36616 69.76 8.05456 69.6194 8.74587C69.2766 10.4306 68.9338 12.1153 68.6027 13.8C68.5471 14.0759 68.424 14.195 68.1311 14.1892C67.217 14.1776 66.3029 14.1863 65.3888 14.1863C65.0216 14.1863 64.8752 14.0023 64.9494 13.6344C65.2892 11.9381 65.632 10.2418 65.9719 8.54545C66.5021 5.90221 67.0324 3.26188 67.551 0.618649C67.6037 0.348516 67.7209 0.229425 67.9934 0.252662C68.8371 0.316565 69.678 0.235234 70.5217 0.243948C70.9289 0.249757 71.175 0.365944 71.3625 0.758072C72.4407 3.01499 73.551 5.25738 74.6526 7.50268C74.7053 7.61306 74.7288 7.74667 74.8929 7.83671C74.9749 7.44749 75.0569 7.0786 75.1302 6.70971C75.5286 4.72873 75.9212 2.74776 76.3196 0.763881C76.4192 0.272995 76.4397 0.243948 76.9349 0.255567C77.8343 0.272995 78.7366 0.272995 79.6361 0.264281C80.1195 0.258471 80.1458 0.316565 80.0521 0.769691C79.1527 5.11505 78.2474 9.45751 77.3567 13.8058C77.2923 14.1166 77.1575 14.2037 76.8645 14.2008C75.9856 14.1892 75.1067 14.1863 74.2278 14.2008C73.926 14.2066 73.759 14.0904 73.6331 13.8261C72.5374 11.5663 71.4299 9.30937 70.3254 7.05246C70.261 6.92465 70.2229 6.77361 70.0559 6.6429V6.63419Z"
fill="white"></path>
<path
d="M25.5852 14.4942C24.0706 14.5029 22.6584 14.1834 21.4426 13.2249C20.218 12.2605 19.5764 10.9825 19.4299 9.45462C19.0314 5.2661 22.1252 0.682561 27.2552 0.0783925C28.6204 -0.0842682 29.9739 -0.0232704 31.2659 0.502472C33.2464 1.30706 34.3363 2.79715 34.5853 4.8885C35.0658 8.90564 31.887 13.8435 26.7776 14.4303C26.3792 14.4768 25.9837 14.4855 25.5852 14.4942ZM30.6068 6.2014C30.6068 6.05036 30.6155 5.89932 30.6068 5.74828C30.5247 4.54866 29.7015 3.59012 28.5589 3.35484C27.5452 3.14571 26.5843 3.3258 25.7317 3.87478C23.9358 5.03664 23.2473 6.75619 23.4289 8.81559C23.5461 10.1575 24.425 11.0202 25.7288 11.2148C26.5901 11.3426 27.4192 11.1771 28.1546 10.7152C29.8157 9.66956 30.5247 8.09814 30.6068 6.20431V6.2014Z"
fill="white"></path>
<path
d="M31.9078 23.3679C31.8873 27.3705 29.107 30.9636 25.3159 31.8698C23.4995 32.3055 21.6889 32.3346 19.9428 31.5706C18.1176 30.7719 17.0717 29.3544 16.8314 27.4083C16.348 23.455 18.7855 19.6035 22.5766 18.2383C24.188 17.6573 25.8374 17.4831 27.5161 17.8607C30.3316 18.4939 31.9224 20.5039 31.9078 23.3679ZM27.9321 23.9343C27.9321 23.7716 27.9439 23.609 27.9321 23.4463C27.8208 22.0695 26.9184 21.111 25.6001 20.9745C24.8383 20.896 24.1118 21.0296 23.4145 21.3521C21.3139 22.328 20.3412 25.2675 20.9008 27.0858C21.1908 28.0299 21.8266 28.6398 22.8051 28.8461C23.7895 29.0523 24.7329 28.8838 25.5708 28.3552C27.1909 27.3327 27.8384 25.7671 27.9321 23.9314V23.9343Z"
fill="white"></path>
<path
d="M58.5507 0.0115716C60.0009 -0.00876093 61.2607 0.243944 62.3915 0.964298C63.83 1.88217 64.5859 3.21541 64.75 4.88558C65.122 8.63549 62.7783 12.7049 58.7792 14.0411C56.9569 14.651 55.1024 14.7324 53.2713 14.0556C51.1766 13.28 49.7937 11.3862 49.7557 9.16704C49.6912 5.3358 51.4051 2.53572 54.8592 0.807447C55.9549 0.261372 57.2733 0.00866699 58.5536 0.00866699L58.5507 0.0115716ZM60.8417 6.23044C60.8417 6.09101 60.8505 5.95159 60.8417 5.81217C60.7685 4.66773 60.08 3.72082 59.0985 3.42454C58.2079 3.15441 57.3378 3.22993 56.494 3.60172C54.5282 4.46731 53.4178 6.79103 53.7371 8.93177C53.9305 10.2243 54.7508 11.0144 56.0048 11.2119C56.6903 11.3194 57.37 11.2293 57.9911 10.9244C59.9482 9.96582 60.6952 8.27241 60.8388 6.22753L60.8417 6.23044Z"
fill="white"></path>
<path
d="M52.5947 32.1313C51.2353 32.1488 50.0048 31.9077 48.8915 31.2367C47.4149 30.3479 46.6444 28.9943 46.4364 27.3299C45.9969 23.8647 48.1122 20.0044 51.5898 18.4795C53.8046 17.5093 56.0869 17.2973 58.3721 18.2819C60.1328 19.043 61.1231 20.4285 61.3604 22.2904C61.6885 24.8552 60.9238 27.1266 59.2861 29.125C57.7012 31.0595 55.0293 32.201 52.5976 32.1313H52.5947ZM53.1718 28.9043C54.0126 28.9362 54.8095 28.669 55.4804 28.1229C57.0683 26.8332 57.707 25.1456 57.4463 23.1414C57.2969 21.9883 56.4414 21.1488 55.3076 20.9891C54.3378 20.8526 53.4003 21.0094 52.5859 21.5729C50.9716 22.6912 50.3036 24.2888 50.33 26.1971C50.3534 27.8383 51.4726 28.9014 53.1689 28.9014L53.1718 28.9043Z"
fill="white"></path>
<path
d="M11.6694 5.54499C12.3843 5.54499 13.0991 5.52466 13.814 5.55371C14.189 5.56823 14.3149 5.4259 14.3794 5.07444C14.6607 3.60178 14.9741 2.13783 15.2642 0.668076C15.3169 0.392134 15.4429 0.261425 15.7271 0.261425C16.7788 0.261425 17.8306 0.25852 18.8824 0.255615C19.1431 0.255615 19.2222 0.365992 19.1666 0.630316C18.4488 4.06362 17.7369 7.49692 17.0279 10.9302C16.8286 11.8859 16.6265 12.8386 16.4449 13.7971C16.3921 14.076 16.2749 14.1921 15.982 14.1892C14.9624 14.1776 13.9429 14.1892 12.9233 14.1834C12.5395 14.1834 12.5014 14.1341 12.5806 13.7448C12.8794 12.278 13.1811 10.8111 13.4829 9.34428C13.5767 8.89115 13.5767 8.88534 13.1284 8.88534C11.6518 8.88534 10.1753 8.89115 8.7016 8.87663C8.37934 8.87663 8.25629 8.98701 8.19476 9.30071C7.90472 10.8169 7.58538 12.3274 7.28362 13.8436C7.23382 14.0934 7.11956 14.1951 6.85881 14.1921C5.82755 14.1834 4.79629 14.1834 3.76503 14.1921C3.46327 14.1921 3.38416 14.0934 3.44276 13.7942C3.95546 11.2672 4.45351 8.74011 4.95742 6.21016C5.32364 4.37732 5.69571 2.54448 6.05021 0.708741C6.1088 0.403753 6.22892 0.278852 6.55412 0.284662C7.59417 0.30209 8.63422 0.29628 9.6772 0.290471C9.93209 0.290471 10.0083 0.374706 9.95552 0.624506C9.6479 2.09136 9.35493 3.55821 9.04731 5.02506C8.94184 5.53337 8.94477 5.5508 9.48384 5.55371C10.2104 5.55371 10.937 5.55371 11.6636 5.55371L11.6694 5.54499Z"
fill="white"></path>
<path
d="M8.30004 26.537C7.55003 26.537 6.80002 26.5486 6.05002 26.5311C5.76876 26.5253 5.66036 26.6328 5.60763 26.8971C5.31173 28.425 4.99825 29.9499 4.70528 31.4778C4.65254 31.7479 4.53535 31.8438 4.25996 31.8409C3.24042 31.8292 2.22087 31.8263 1.20426 31.8409C0.879063 31.8467 0.799961 31.7479 0.864414 31.4342C1.50895 28.2246 2.1447 25.012 2.78338 21.8024C3.0119 20.6521 3.24921 19.5048 3.46893 18.3516C3.51874 18.0815 3.64179 17.9856 3.91425 17.9915C4.93379 18.0031 5.95334 18.006 6.96995 17.9915C7.29515 17.9856 7.37132 18.0931 7.30687 18.4039C6.99925 19.8708 6.7092 21.3376 6.4133 22.8074C6.35666 23.0901 6.47287 23.2324 6.76194 23.2344C8.23852 23.2344 9.71509 23.2256 11.1887 23.2431C11.5315 23.246 11.6546 23.1298 11.7161 22.8074C12.0003 21.3492 12.3167 19.8969 12.6009 18.4388C12.6683 18.0989 12.8118 17.9856 13.1604 17.9944C14.1565 18.0176 15.1527 18.0118 16.1458 17.9944C16.4593 17.9886 16.5618 18.067 16.4974 18.3923C15.7152 22.1916 14.9417 25.9909 14.1653 29.7902C14.0481 30.3595 13.928 30.9259 13.8226 31.4981C13.7757 31.745 13.6614 31.8496 13.3978 31.8467C12.3665 31.835 11.3352 31.835 10.3069 31.8467C9.96998 31.8496 9.92018 31.7218 9.98463 31.4226C10.2952 29.9441 10.5852 28.4656 10.8841 26.9843C10.9719 26.5428 10.9778 26.5428 10.512 26.5428C9.77369 26.5428 9.0354 26.5428 8.29711 26.5428L8.30004 26.537Z"
fill="white"></path>
<path
d="M41.409 0.252687C42.3202 0.26721 43.536 0.223641 44.7548 0.287543C45.3817 0.319494 45.9882 0.426966 46.5683 0.659339C48.247 1.33031 48.7509 2.55608 48.7451 4.05198C48.7451 4.96404 48.5107 5.84124 48.1093 6.67197C47.1366 8.67909 45.4755 9.7451 43.3251 10.1547C42.1766 10.3754 41.0135 10.2912 39.8563 10.2854C39.4666 10.2854 39.3319 10.4045 39.2674 10.7733C39.0858 11.7784 38.8543 12.7747 38.6639 13.7768C38.6053 14.0905 38.4647 14.1979 38.1453 14.1921C37.1609 14.1776 36.1766 14.1776 35.1951 14.1921C34.8787 14.195 34.782 14.105 34.8494 13.7826C35.7342 9.4372 36.616 5.09184 37.4774 0.743574C37.5535 0.363064 37.7264 0.243973 38.0838 0.246878C39.0916 0.255592 40.0995 0.249782 41.412 0.249782L41.409 0.252687ZM42.1883 3.47395C41.8251 3.47395 41.4618 3.48557 41.1014 3.47104C40.87 3.46233 40.7674 3.54657 40.7206 3.77313C40.5213 4.78685 40.3133 5.79767 40.0995 6.80559C40.0497 7.03796 40.1082 7.128 40.3514 7.1251C41.0428 7.11639 41.7342 7.14253 42.4227 7.11639C43.7001 7.0641 44.4354 6.47446 44.6991 5.34164C44.9657 4.18849 44.4413 3.51461 43.243 3.47976C42.8915 3.46814 42.5399 3.47976 42.1913 3.47976L42.1883 3.47395Z"
fill="white"></path>
<path
d="M38.2882 27.9951C37.8546 27.9951 37.421 28.0038 36.9874 27.9922C36.7442 27.9864 36.6387 28.0793 36.5918 28.3233C36.3956 29.3486 36.1641 30.3682 35.9737 31.3964C35.9122 31.7392 35.7715 31.8554 35.42 31.8467C34.459 31.8234 33.4981 31.8408 32.54 31.8379C32.0947 31.8379 32.0772 31.8147 32.165 31.379C32.7305 28.5789 33.2988 25.7817 33.8643 22.9816C34.1778 21.4335 34.4971 19.8882 34.7989 18.34C34.8487 18.0844 34.9571 17.9915 35.2178 17.9944C37.4913 18.0031 39.7618 17.9769 42.0353 18.0147C43.1105 18.0321 44.1124 18.3458 44.9269 19.101C45.7062 19.8243 45.9435 20.7625 45.9289 21.7617C45.9025 23.4464 45.299 24.922 44.089 26.1129C42.9845 27.1992 41.6163 27.7598 40.0811 27.9399C39.4864 28.0096 38.8887 27.9922 38.2911 27.9951H38.2882ZM38.7833 24.7825C39.088 24.7825 39.3927 24.7883 39.6974 24.7825C40.9396 24.7593 41.6573 24.1871 41.9415 22.9904C42.2023 21.8982 41.6778 21.204 40.5499 21.1779C39.8233 21.1604 39.0968 21.1779 38.3731 21.1691C38.1475 21.1662 38.0362 21.2359 37.9923 21.4654C37.793 22.4791 37.585 23.49 37.3682 24.5008C37.3243 24.7099 37.3946 24.7825 37.5909 24.7825C37.9893 24.7825 38.3878 24.7825 38.7862 24.7825H38.7833Z"
fill="white"></path>
<path
d="M69.259 17.9973C70.7707 17.9973 72.2825 17.9973 73.7913 17.9973C74.2395 17.9973 74.2483 18.0147 74.1546 18.4562C73.9905 19.2288 73.8206 20.0015 73.677 20.777C73.6213 21.0733 73.4866 21.1779 73.1819 21.175C71.4006 21.1633 69.6193 21.1779 67.841 21.1633C67.507 21.1604 67.3547 21.265 67.299 21.5903C67.1994 22.1625 67.0734 22.729 66.9387 23.2954C66.8713 23.58 66.9562 23.6555 67.2463 23.6526C68.8869 23.641 70.5276 23.6468 72.1653 23.6468C72.637 23.6468 72.6545 23.6701 72.5666 24.1174C72.4172 24.8581 72.2532 25.5958 72.1213 26.3365C72.0569 26.6909 71.9192 26.839 71.5237 26.8332C69.9065 26.81 68.2893 26.8332 66.675 26.8187C66.3498 26.8158 66.2267 26.9291 66.1681 27.2341C65.9015 28.6254 65.6056 30.0109 65.342 31.4023C65.2804 31.7218 65.1632 31.8525 64.8175 31.8467C63.8566 31.8263 62.8956 31.8321 61.9347 31.8409C61.6212 31.8438 61.5275 31.7566 61.5948 31.4313C62.3449 27.7569 63.0802 24.0796 63.8214 20.4023C63.9591 19.7197 64.1056 19.0371 64.2316 18.3516C64.2785 18.096 64.3693 17.9827 64.6623 17.9857C66.1974 18.0031 67.7326 17.9944 69.2648 17.9944L69.259 17.9973Z"
fill="white"></path>
<path
d="M80.8548 17.9943C82.3783 17.9943 83.9017 18.0001 85.4252 17.9885C85.7181 17.9885 85.7972 18.067 85.7357 18.3516C85.5541 19.1562 85.3812 19.9637 85.2318 20.7741C85.1761 21.0762 85.0472 21.1778 84.7425 21.1749C82.9613 21.1633 81.18 21.1807 79.3987 21.1633C79.0442 21.1604 78.9007 21.2708 78.8479 21.6164C78.763 22.177 78.6458 22.7376 78.5081 23.2895C78.4319 23.5916 78.5345 23.6497 78.8128 23.6497C80.4534 23.641 82.0941 23.6468 83.7347 23.6497C84.2064 23.6497 84.2122 23.6642 84.1156 24.1261C83.9574 24.8871 83.7933 25.6481 83.6556 26.4149C83.5999 26.7199 83.4769 26.839 83.1488 26.8361C81.5198 26.8216 79.8909 26.8361 78.262 26.8245C77.9339 26.8245 77.7874 26.9058 77.7229 27.2457C77.4622 28.6254 77.1575 29.9993 76.8938 31.379C76.8264 31.7333 76.677 31.8583 76.3137 31.8495C75.3645 31.8263 74.4153 31.835 73.466 31.8437C73.1731 31.8437 73.0735 31.7711 73.1379 31.4545C73.9524 27.4722 74.7522 23.487 75.5579 19.5019C75.634 19.1271 75.7366 18.7554 75.7835 18.3748C75.8245 18.0495 75.9944 17.9943 76.2815 17.9972C77.805 18.006 79.3284 18.003 80.8519 18.003V17.9972L80.8548 17.9943Z"
fill="white"></path>
<path
d="M69.751 31.7769C70.4014 31.8728 70.999 31.9744 71.5967 32.0412C75.7891 32.5176 79.8409 31.9889 83.7287 30.3391C84.8713 29.854 85.9611 29.2644 87.0158 28.6108C87.2824 28.4453 87.3996 28.2797 87.3088 27.9602C87.2209 27.6494 87.1828 27.3241 87.1242 27.0046C87.1037 26.8826 87.01 26.7286 87.1242 26.6444C87.2385 26.5601 87.3644 26.6879 87.4699 26.7548C88.4397 27.3444 89.4065 27.9311 90.3703 28.5295C91.1643 29.0233 91.1614 29.0262 90.5989 29.7843C89.9045 30.7196 89.216 31.6607 88.5217 32.5931C88.4572 32.6802 88.4162 32.8371 88.2756 32.7993C88.1555 32.7674 88.1936 32.6222 88.1701 32.5263C88.0969 32.1865 88.0266 31.8437 87.965 31.501C87.9211 31.2541 87.8127 31.2076 87.5783 31.3034C85.4953 32.1458 83.3332 32.6919 81.1066 32.991C77.3595 33.4994 73.6797 33.2496 70.0938 31.9977C69.9883 31.9599 69.8652 31.9483 69.751 31.7798V31.7769Z"
fill="white"></path>
<path
d="M65.8896 15.0316C66.2324 15.0083 66.54 15.1274 66.8535 15.171C72.5343 15.9756 77.8634 15.081 82.7443 11.973C83.0432 11.7813 83.1252 11.5925 83.0314 11.2642C82.9435 10.9534 82.8996 10.6281 82.8439 10.3086C82.8293 10.2244 82.7648 10.114 82.8644 10.053C82.9582 9.99781 83.0432 10.085 83.1193 10.1314C84.1096 10.7327 85.094 11.3369 86.0813 11.9381C86.2893 12.0659 86.4973 12.1995 86.7082 12.3244C86.8811 12.4261 86.8899 12.5423 86.7698 12.6933C85.9026 13.8058 85.0412 14.9212 84.174 16.0337C84.1272 16.0947 84.0861 16.1905 83.9865 16.1586C83.8898 16.1295 83.9016 16.0279 83.8869 15.9524C83.8107 15.5893 83.7346 15.2262 83.6672 14.8602C83.6262 14.6365 83.5676 14.5378 83.301 14.6453C81.3029 15.444 79.2316 15.9698 77.0988 16.2544C75.1065 16.5188 73.1114 16.5449 71.1104 16.3271C69.4375 16.1441 67.8057 15.8013 66.2207 15.2407C66.1064 15.2 65.9629 15.203 65.8896 15.0345V15.0316Z"
fill="white"></path>
<path
d="M67.8024 37.6762C68.1276 37.1302 68.4997 36.6073 68.7663 36.0351C69.0592 35.4048 69.4577 35.0766 70.1725 35.2218C70.2165 35.2305 70.2663 35.2218 70.3132 35.2218C70.7175 35.2276 70.7468 35.2567 70.6764 35.643C70.4743 36.7264 70.2663 37.8098 70.0612 38.8933C70.0143 39.1315 69.9674 39.3726 69.9294 39.6136C69.8942 39.8315 69.7829 39.9215 69.5514 39.9302C68.7047 39.9593 68.7047 39.9651 68.8659 39.1344C68.986 38.5099 69.1061 37.8854 69.1559 37.2289C68.9567 37.5717 68.7604 37.9173 68.5612 38.2601C68.3122 38.6929 68.0573 39.1257 67.817 39.5643C67.7057 39.7647 67.5768 39.8954 67.3219 39.8634C67.0612 39.8286 67.067 39.6224 67.0319 39.4481C66.8766 38.6987 66.7242 37.9464 66.5133 37.1883C66.3961 37.8128 66.2789 38.4373 66.1617 39.0647C66.15 39.1228 66.1442 39.1808 66.1354 39.236C66.0035 39.9361 66.0035 39.9215 65.2682 39.9273C64.9371 39.9302 64.8668 39.8199 64.9283 39.5149C65.1568 38.3879 65.3678 37.258 65.5875 36.1281C65.6139 35.9915 65.6402 35.855 65.6695 35.7185C65.7379 35.3835 65.9381 35.216 66.2701 35.216C66.9303 35.216 67.32 35.5336 67.4391 36.1687C67.5329 36.6596 67.6325 37.1476 67.7291 37.6356C67.7555 37.6472 67.7819 37.6559 67.8082 37.6675L67.8024 37.6762Z"
fill="white"></path>
<path
d="M58.6563 37.9842C58.6681 36.3082 59.8868 35.1115 61.548 35.1521C62.5499 35.1754 63.2999 35.7941 63.4406 36.7787C63.6691 38.3763 62.4562 40.1656 60.423 39.9884C59.3126 39.8925 58.6475 39.1199 58.6563 37.9871V37.9842ZM59.8165 37.8099C59.8048 38.2543 59.8985 38.6551 60.3556 38.8498C60.8155 39.0444 61.2609 38.9747 61.6388 38.658C62.1368 38.2398 62.3478 37.685 62.2628 37.0431C62.1749 36.3605 61.6505 36.0264 60.9737 36.2007C60.297 36.375 59.8282 37.0256 59.8136 37.8099H59.8165Z"
fill="white"></path>
<path
d="M34.8758 39.9274C34.4305 39.9274 33.9852 39.9245 33.5399 39.9274C33.3143 39.9303 33.2176 39.8606 33.2645 39.6166C33.5311 38.2369 33.7889 36.8572 34.0438 35.4775C34.0789 35.2945 34.1727 35.219 34.3543 35.2219C35.2684 35.2219 36.1825 35.2219 37.0936 35.2219C37.3133 35.2219 37.3924 35.3119 37.3397 35.524C37.3221 35.5908 37.3192 35.6605 37.3075 35.7302C37.245 36.0633 37.0428 36.2298 36.701 36.2298C36.2674 36.2298 35.8338 36.2269 35.4002 36.2298C35.1043 36.2298 34.8143 36.6684 34.9198 36.9443C34.9666 37.0634 35.0721 37.0315 35.16 37.0315C35.6522 37.0344 36.1444 37.0489 36.6366 37.0315C36.9559 37.0199 37.0292 37.1477 36.9559 37.4265C36.9296 37.5282 36.9061 37.6298 36.8944 37.7344C36.871 37.9639 36.745 38.051 36.5165 38.0452C36.036 38.0365 35.5555 38.0394 35.075 38.0452C34.7528 38.0452 34.4334 38.5506 34.5682 38.8382C34.6209 38.9515 34.7264 38.9166 34.8143 38.9195C35.3416 38.9224 35.869 38.9311 36.3963 38.9195C36.6483 38.9137 36.745 39.0037 36.6835 39.2477C36.6747 39.2826 36.6747 39.3174 36.6688 39.3523C36.6024 39.7415 36.3661 39.9361 35.9598 39.9361C35.5965 39.9361 35.2332 39.9361 34.87 39.9361L34.8758 39.9274Z"
fill="white"></path>
<path
d="M78.8237 38.0422C77.1361 38.0422 75.4516 38.0422 73.764 38.0422C73.2806 38.0422 73.2689 38.0277 73.3539 37.5804C73.4281 37.1776 73.6732 36.9762 74.0892 36.9762C77.4145 36.9762 80.7397 36.9762 84.0649 36.9762C84.5776 36.9762 84.5835 36.9849 84.4809 37.4874C84.4067 37.8553 84.1831 38.0393 83.81 38.0393C82.146 38.0393 80.4848 38.0393 78.8207 38.0393L78.8237 38.0422Z"
fill="white"></path>
<path
d="M29.0368 36.9792C29.4616 36.5377 29.904 36.1078 30.3083 35.6489C30.5954 35.3236 30.9147 35.158 31.3512 35.2248C31.5739 35.2597 31.9167 35.1115 31.9928 35.3061C32.0661 35.4891 31.735 35.6489 31.5768 35.8086C31.1374 36.2589 30.695 36.7062 30.2321 37.1332C30.0299 37.3191 30.0182 37.473 30.1501 37.7025C30.5075 38.3299 30.8356 38.9689 31.1872 39.5992C31.3219 39.8403 31.2721 39.9332 30.9909 39.9245C29.8161 39.8984 30.1266 40.1017 29.6051 39.0967C29.4997 38.8905 29.3854 38.6842 29.3004 38.4693C29.1774 38.1643 29.0485 38.2224 28.8522 38.4112C28.6178 38.6378 28.6178 38.9369 28.5621 39.2129C28.4039 39.9942 28.6002 39.9216 27.6129 39.9245C27.358 39.9245 27.2906 39.8229 27.3405 39.5789C27.5543 38.4867 27.7565 37.3917 27.9616 36.2966C27.985 36.1717 28.0055 36.0439 28.0289 35.919C28.1637 35.2016 28.3248 35.0999 29.069 35.2219C29.3092 35.2626 29.2623 35.4136 29.2389 35.5588C29.1569 36.0207 29.069 36.4825 28.9811 36.9444C29.0016 36.956 29.0192 36.9647 29.0397 36.9763L29.0368 36.9792Z"
fill="white"></path>
<path
d="M45.7943 39.9971C45.267 39.9738 44.7133 39.8664 44.2445 39.4859C44.0424 39.3203 43.9955 39.1605 44.1918 38.9659C44.2093 38.9485 44.2211 38.9311 44.2386 38.9136C44.3881 38.751 44.5082 38.5157 44.6928 38.4431C44.9008 38.3589 45.0092 38.6609 45.1937 38.7539C45.5951 38.9543 46.0023 39.0618 46.4447 38.9107C46.6234 38.8497 46.7582 38.7365 46.767 38.5418C46.7758 38.3443 46.6264 38.2543 46.4652 38.2049C46.143 38.1032 45.809 38.0306 45.4896 37.9202C44.6049 37.6124 44.3383 36.8571 44.8129 36.0526C45.2025 35.3961 46.0609 35.0446 46.9604 35.1753C47.3588 35.2334 47.7309 35.3612 48.0619 35.5965C48.2377 35.7214 48.3051 35.8434 48.1322 36.0177C48.0824 36.0671 48.0443 36.1281 48.0004 36.1804C47.7719 36.4515 47.5024 36.5125 47.1918 36.3634C46.89 36.2181 46.5766 36.1339 46.2396 36.1775C46.017 36.2065 45.8119 36.3024 45.7826 36.5405C45.7504 36.7845 45.9818 36.8281 46.1547 36.8833C46.4096 36.9675 46.6762 37.0227 46.9311 37.1069C47.4115 37.2667 47.8715 37.47 47.9389 38.0481C48.0151 38.7219 47.7924 39.2883 47.1977 39.6659C46.7904 39.9245 46.3305 40 45.7973 40.0029L45.7943 39.9971Z"
fill="white"></path>
<path
d="M5.07682 38.0422C3.51821 38.0422 1.96253 38.0422 0.403916 38.0422C-0.0384717 38.0422 -0.0443311 38.0335 0.0435605 37.6094C0.131452 37.1873 0.398057 36.9762 0.843374 36.9762C3.84341 36.9762 6.84051 36.9762 9.84054 36.9762C10.2175 36.9762 10.3708 37.1553 10.3005 37.5136C10.2302 37.8718 10.0124 38.047 9.64718 38.0393C8.12373 38.0393 6.60027 38.0393 5.07975 38.0393L5.07682 38.0422Z"
fill="white"></path>
<path
d="M52.6826 37.9812C52.6914 36.0613 54.5401 34.6757 56.2422 35.2712C56.6524 35.4135 56.9307 35.6953 57.1387 36.0613C57.25 36.2559 57.209 36.3895 56.9922 36.4679C56.9043 36.4999 56.8135 36.5318 56.7373 36.5812C56.4385 36.7729 56.2159 36.7584 55.9815 36.4447C55.7412 36.1194 55.3574 36.1048 54.9883 36.2152C54.1797 36.4505 53.6436 37.4526 53.8867 38.2543C54.1182 39.0182 55.0821 39.2041 55.7149 38.6145C55.8174 38.5186 55.8789 38.292 56.0518 38.3618C56.3067 38.4663 56.5381 38.6348 56.7696 38.7887C56.837 38.8352 56.7842 38.9165 56.7432 38.9746C56.2627 39.6253 55.6153 39.9767 54.8008 39.9942C54.0274 40.0116 53.374 39.7734 52.9551 39.0763C52.7412 38.7248 52.668 38.3443 52.6855 37.9812H52.6826Z"
fill="white"></path>
<path
d="M21.4606 37.8941C21.4635 36.2966 22.7731 35.0563 24.4636 35.1579C25.1052 35.1957 25.5945 35.4978 25.9197 36.0555C26.0368 36.2559 26.0427 36.4011 25.782 36.4737C25.6823 36.5028 25.5798 36.5435 25.489 36.5928C25.2165 36.7497 25.0232 36.7729 24.7976 36.4592C24.5632 36.131 24.156 36.1019 23.7692 36.2094C22.902 36.4476 22.363 37.5368 22.697 38.3705C22.9665 39.0473 23.9245 39.1751 24.4958 38.6116C24.5954 38.5128 24.6511 38.2979 24.8415 38.3734C25.0993 38.478 25.3513 38.6145 25.5534 38.8091C25.6238 38.8788 25.5359 38.9572 25.4919 39.024C24.8298 40 23.2331 40.3108 22.2546 39.6427C21.6745 39.2477 21.446 38.6726 21.4606 37.8912V37.8941Z"
fill="white"></path>
<path
d="M14.983 35.2219C15.4986 35.2219 16.0113 35.2277 16.527 35.2219C16.776 35.219 16.8756 35.3119 16.8053 35.5588C16.7907 35.614 16.7877 35.6721 16.776 35.7302C16.7115 36.0632 16.5114 36.2298 16.1754 36.2298C15.4137 36.2298 15.4108 36.2298 15.2672 36.9763C15.1119 37.7954 14.9596 38.6174 14.8102 39.4394C14.7223 39.9216 14.7193 39.9245 14.2301 39.9274C13.7887 39.9274 13.61 39.7086 13.6939 39.271C13.8639 38.3821 14.025 37.4933 14.2066 36.6074C14.2652 36.3198 14.2066 36.1949 13.8873 36.2269C13.6676 36.2472 13.442 36.2298 13.2223 36.2269C13.0435 36.2269 12.9644 36.1397 13.0025 35.9597C13.0084 35.9364 13.0113 35.9132 13.0142 35.8899C13.0728 35.4426 13.3297 35.2199 13.7848 35.2219C13.9605 35.2219 14.1363 35.2219 14.3121 35.2219C14.5348 35.2219 14.7574 35.2219 14.9801 35.2219H14.983Z"
fill="white"></path>
<path
d="M41.2414 35.2219C41.7219 35.2219 42.2024 35.2393 42.6799 35.2161C43.0198 35.1987 43.0959 35.3352 43.011 35.6256C43.0051 35.6489 43.0022 35.6721 42.9993 35.6953C42.9309 36.0517 42.7151 36.2298 42.3518 36.2298C41.4524 36.2298 41.6457 36.1659 41.4875 36.9502C41.3117 37.8245 41.1447 38.7017 40.9953 39.5818C40.9514 39.8403 40.8488 39.9361 40.5852 39.9332C39.633 39.9158 39.759 40.0204 39.9201 39.1432C40.0783 38.2892 40.2424 37.4352 40.4211 36.5813C40.4768 36.3082 40.383 36.2124 40.1193 36.2327C40.049 36.2385 39.9787 36.2327 39.9084 36.2327C39.1203 36.2327 39.1994 36.3169 39.3313 35.5065C39.3664 35.2916 39.4895 35.2219 39.6975 35.2248C40.2131 35.2306 40.7258 35.2248 41.2414 35.2248V35.2219Z"
fill="white"></path>
<path
d="M18.5449 39.9216C18.4511 39.9216 18.3574 39.9216 18.2636 39.9216C18.0644 39.9216 17.9911 39.8374 18.0292 39.637C18.29 38.2689 18.5507 36.9008 18.8027 35.5327C18.8466 35.2887 18.9814 35.219 19.2158 35.2161C20.0214 35.2016 20.0097 35.1928 19.8574 35.9626C19.6347 37.1012 19.4296 38.2427 19.2128 39.3814C19.1103 39.9245 19.1074 39.9216 18.5419 39.9187L18.5449 39.9216Z"
fill="white"></path>
<path
d="M50.9005 39.2506C50.9005 39.6514 50.59 39.9797 50.212 39.9826C49.8839 39.9855 49.629 39.7357 49.6349 39.4133C49.6437 39.0095 49.9864 38.6493 50.3526 38.6522C50.6661 38.6522 50.9005 38.9108 50.9005 39.2506Z"
fill="white"></path>
</g>
<defs>
<clipPath id="clip0_117_3713">
<rect width="91" height="40" fill="white"></rect>
</clipPath>
</defs>
</svg>
<span class="chip chip--accent about-hero__chip">Memorable</span>
</div>
</div>
</div>
<a class="ring-badge ring-badge--scroll" href="#story" aria-label="Scroll to the story">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">SCROLL DOWN &#183; SCROLL DOWN &#183; </textPath>
</text>
</svg>
<span class="ring-badge__dot">
<svg class="icon" aria-hidden="true"><use href="#i-mouse" /></svg>
</span>
</a>
</section>
<section class="section aboutpage" id="story">
<div class="container">
<div class="aboutpage__inner">
<div class="post__body">
<section class="tour__block">
<h2 class="post__h2">Hop On Hop Off</h2>
<p class="tour__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
<p class="tour__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
</section>
<dl class="astats">
<div class="astat">
<dt class="astat__num">25<span>+</span></dt>
<dd class="astat__label">Years Experience</dd>
</div>
<div class="astat">
<dt class="astat__num">500<span>+</span></dt>
<dd class="astat__label">Tours Conducted</dd>
</div>
<div class="astat">
<dt class="astat__num">430<span>+</span></dt>
<dd class="astat__label">Tours this Year</dd>
</div>
<div class="astat">
<dt class="astat__num">15<span>+</span></dt>
<dd class="astat__label">Different Tours</dd>
</div>
</dl>
<section class="tour__block">
<h2 class="tour__ct">Gallery</h2>
<div class="agallery">
<img class="agallery__hero" src="assets/tour-london.png" alt="" loading="lazy" />
<img src="assets/tour-paris.png" alt="" loading="lazy" />
<img src="assets/tour-sydney.png" alt="" loading="lazy" />
<img src="assets/city-san-diego.png" alt="" loading="lazy" />
<img src="assets/tour-san-diego.png" alt="" loading="lazy" />
</div>
</section>
<section class="tour__block tour__block--roomy">
<h2 class="post__h2">Why Choose us?</h2>
<ul class="facts">
<li class="fact">
<svg class="icon fact__icon" aria-hidden="true"><use href="#i-duration" /></svg>
<div class="fact__text">
<span class="fact__k">Duration</span>
<span class="fact__v">1h 30m</span>
</div>
</li>
<li class="fact">
<svg class="icon fact__icon" aria-hidden="true"><use href="#i-person" /></svg>
<div class="fact__text">
<span class="fact__k">Max Travelers</span>
<span class="fact__v">15 people</span>
</div>
</li>
<li class="fact">
<svg class="icon fact__icon" aria-hidden="true"><use href="#i-shield-check" /></svg>
<div class="fact__text">
<span class="fact__k">Free Cancellation</span>
<span class="fact__v">Up to 24 hrs</span>
</div>
</li>
<li class="fact">
<svg class="icon fact__icon" aria-hidden="true"><use href="#i-grid" /></svg>
<div class="fact__text">
<span class="fact__k">Category</span>
<span class="fact__v">Best Conversion</span>
</div>
</li>
</ul>
</section>
</div>
</div>
</div>
</section>
<!-- ============ testimonials ============ -->
<section class="section testimonials" id="testimonials">
<div class="container">
<div class="testimonials__head">
<h2 class="testimonials__title">Your Comment&rsquo;s</h2>
<p class="testimonials__lead">Lorem ipsum dolor sit amet, consectetur adipiscing elit</p>
</div>
</div>
<div class="marquee" data-marquee>
<svg class="marquee__route" viewBox="0 0 1200 280" fill="none" aria-hidden="true" preserveAspectRatio="none">
<path d="M0 210 C 90 60, 170 60, 260 150 S 420 250, 520 120 S 640 20, 720 130 S 860 250, 960 120 S 1120 60, 1200 170"
stroke="#2CAFC2" stroke-dasharray="3 3" />
</svg>
<div class="marquee__track">
<figure class="quote quote--lg">
<figcaption class="quote__head">
<img class="quote__avatar" src="assets/ellipse-17.png" alt="" loading="lazy" />
<span>
<b>Malika Favre</b>
<i>Paris Tour</i>
</span>
</figcaption>
<blockquote>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua</blockquote>
</figure>
<figure class="quote">
<figcaption class="quote__head">
<img class="quote__avatar" src="assets/ellipse-17-2.png" alt="" loading="lazy" />
<span>
<b>Malika Favre</b>
<i>Paris Tour</i>
</span>
</figcaption>
<blockquote>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit</blockquote>
</figure>
<figure class="quote quote--sm">
<figcaption class="quote__head">
<img class="quote__avatar" src="assets/ellipse-17.png" alt="" loading="lazy" />
<span>
<b>Malika Favre</b>
<i>Paris Tour</i>
</span>
</figcaption>
<blockquote>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
labore</blockquote>
</figure>
<figure class="quote">
<figcaption class="quote__head">
<img class="quote__avatar" src="assets/ellipse-17-2.png" alt="" loading="lazy" />
<span>
<b>Malika Favre</b>
<i>Paris Tour</i>
</span>
</figcaption>
<blockquote>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua</blockquote>
</figure>
</div>
</div>
</section>
</main>
<!-- ============ footer ============ -->
<footer class="footer" id="footer">
<a class="ring-badge ring-badge--top" href="#main" aria-label="Back to top">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">BACK TO TOP &#183; </textPath>
</text>
</svg>
<span class="ring-badge__dot">
<svg class="icon" aria-hidden="true">
<use href="#i-arrow-up" />
</svg>
</span>
</a>
<div class="container footer__inner">
<div class="footer__brand">
<span class="footer__logo">
<svg class="logo" viewBox="0 0 91 40" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Logo">
<g clip-path="url(#clip0_117_3713)">
<path
d="M70.0559 6.63419C69.9035 7.36616 69.76 8.05456 69.6194 8.74587C69.2766 10.4306 68.9338 12.1153 68.6027 13.8C68.5471 14.0759 68.424 14.195 68.1311 14.1892C67.217 14.1776 66.3029 14.1863 65.3888 14.1863C65.0216 14.1863 64.8752 14.0023 64.9494 13.6344C65.2892 11.9381 65.632 10.2418 65.9719 8.54545C66.5021 5.90221 67.0324 3.26188 67.551 0.618649C67.6037 0.348516 67.7209 0.229425 67.9934 0.252662C68.8371 0.316565 69.678 0.235234 70.5217 0.243948C70.9289 0.249757 71.175 0.365944 71.3625 0.758072C72.4407 3.01499 73.551 5.25738 74.6526 7.50268C74.7053 7.61306 74.7288 7.74667 74.8929 7.83671C74.9749 7.44749 75.0569 7.0786 75.1302 6.70971C75.5286 4.72873 75.9212 2.74776 76.3196 0.763881C76.4192 0.272995 76.4397 0.243948 76.9349 0.255567C77.8343 0.272995 78.7366 0.272995 79.6361 0.264281C80.1195 0.258471 80.1458 0.316565 80.0521 0.769691C79.1527 5.11505 78.2474 9.45751 77.3567 13.8058C77.2923 14.1166 77.1575 14.2037 76.8645 14.2008C75.9856 14.1892 75.1067 14.1863 74.2278 14.2008C73.926 14.2066 73.759 14.0904 73.6331 13.8261C72.5374 11.5663 71.4299 9.30937 70.3254 7.05246C70.261 6.92465 70.2229 6.77361 70.0559 6.6429V6.63419Z"
fill="white"></path>
<path
d="M25.5852 14.4942C24.0706 14.5029 22.6584 14.1834 21.4426 13.2249C20.218 12.2605 19.5764 10.9825 19.4299 9.45462C19.0314 5.2661 22.1252 0.682561 27.2552 0.0783925C28.6204 -0.0842682 29.9739 -0.0232704 31.2659 0.502472C33.2464 1.30706 34.3363 2.79715 34.5853 4.8885C35.0658 8.90564 31.887 13.8435 26.7776 14.4303C26.3792 14.4768 25.9837 14.4855 25.5852 14.4942ZM30.6068 6.2014C30.6068 6.05036 30.6155 5.89932 30.6068 5.74828C30.5247 4.54866 29.7015 3.59012 28.5589 3.35484C27.5452 3.14571 26.5843 3.3258 25.7317 3.87478C23.9358 5.03664 23.2473 6.75619 23.4289 8.81559C23.5461 10.1575 24.425 11.0202 25.7288 11.2148C26.5901 11.3426 27.4192 11.1771 28.1546 10.7152C29.8157 9.66956 30.5247 8.09814 30.6068 6.20431V6.2014Z"
fill="white"></path>
<path
d="M31.9078 23.3679C31.8873 27.3705 29.107 30.9636 25.3159 31.8698C23.4995 32.3055 21.6889 32.3346 19.9428 31.5706C18.1176 30.7719 17.0717 29.3544 16.8314 27.4083C16.348 23.455 18.7855 19.6035 22.5766 18.2383C24.188 17.6573 25.8374 17.4831 27.5161 17.8607C30.3316 18.4939 31.9224 20.5039 31.9078 23.3679ZM27.9321 23.9343C27.9321 23.7716 27.9439 23.609 27.9321 23.4463C27.8208 22.0695 26.9184 21.111 25.6001 20.9745C24.8383 20.896 24.1118 21.0296 23.4145 21.3521C21.3139 22.328 20.3412 25.2675 20.9008 27.0858C21.1908 28.0299 21.8266 28.6398 22.8051 28.8461C23.7895 29.0523 24.7329 28.8838 25.5708 28.3552C27.1909 27.3327 27.8384 25.7671 27.9321 23.9314V23.9343Z"
fill="white"></path>
<path
d="M58.5507 0.0115716C60.0009 -0.00876093 61.2607 0.243944 62.3915 0.964298C63.83 1.88217 64.5859 3.21541 64.75 4.88558C65.122 8.63549 62.7783 12.7049 58.7792 14.0411C56.9569 14.651 55.1024 14.7324 53.2713 14.0556C51.1766 13.28 49.7937 11.3862 49.7557 9.16704C49.6912 5.3358 51.4051 2.53572 54.8592 0.807447C55.9549 0.261372 57.2733 0.00866699 58.5536 0.00866699L58.5507 0.0115716ZM60.8417 6.23044C60.8417 6.09101 60.8505 5.95159 60.8417 5.81217C60.7685 4.66773 60.08 3.72082 59.0985 3.42454C58.2079 3.15441 57.3378 3.22993 56.494 3.60172C54.5282 4.46731 53.4178 6.79103 53.7371 8.93177C53.9305 10.2243 54.7508 11.0144 56.0048 11.2119C56.6903 11.3194 57.37 11.2293 57.9911 10.9244C59.9482 9.96582 60.6952 8.27241 60.8388 6.22753L60.8417 6.23044Z"
fill="white"></path>
<path
d="M52.5947 32.1313C51.2353 32.1488 50.0048 31.9077 48.8915 31.2367C47.4149 30.3479 46.6444 28.9943 46.4364 27.3299C45.9969 23.8647 48.1122 20.0044 51.5898 18.4795C53.8046 17.5093 56.0869 17.2973 58.3721 18.2819C60.1328 19.043 61.1231 20.4285 61.3604 22.2904C61.6885 24.8552 60.9238 27.1266 59.2861 29.125C57.7012 31.0595 55.0293 32.201 52.5976 32.1313H52.5947ZM53.1718 28.9043C54.0126 28.9362 54.8095 28.669 55.4804 28.1229C57.0683 26.8332 57.707 25.1456 57.4463 23.1414C57.2969 21.9883 56.4414 21.1488 55.3076 20.9891C54.3378 20.8526 53.4003 21.0094 52.5859 21.5729C50.9716 22.6912 50.3036 24.2888 50.33 26.1971C50.3534 27.8383 51.4726 28.9014 53.1689 28.9014L53.1718 28.9043Z"
fill="white"></path>
<path
d="M11.6694 5.54499C12.3843 5.54499 13.0991 5.52466 13.814 5.55371C14.189 5.56823 14.3149 5.4259 14.3794 5.07444C14.6607 3.60178 14.9741 2.13783 15.2642 0.668076C15.3169 0.392134 15.4429 0.261425 15.7271 0.261425C16.7788 0.261425 17.8306 0.25852 18.8824 0.255615C19.1431 0.255615 19.2222 0.365992 19.1666 0.630316C18.4488 4.06362 17.7369 7.49692 17.0279 10.9302C16.8286 11.8859 16.6265 12.8386 16.4449 13.7971C16.3921 14.076 16.2749 14.1921 15.982 14.1892C14.9624 14.1776 13.9429 14.1892 12.9233 14.1834C12.5395 14.1834 12.5014 14.1341 12.5806 13.7448C12.8794 12.278 13.1811 10.8111 13.4829 9.34428C13.5767 8.89115 13.5767 8.88534 13.1284 8.88534C11.6518 8.88534 10.1753 8.89115 8.7016 8.87663C8.37934 8.87663 8.25629 8.98701 8.19476 9.30071C7.90472 10.8169 7.58538 12.3274 7.28362 13.8436C7.23382 14.0934 7.11956 14.1951 6.85881 14.1921C5.82755 14.1834 4.79629 14.1834 3.76503 14.1921C3.46327 14.1921 3.38416 14.0934 3.44276 13.7942C3.95546 11.2672 4.45351 8.74011 4.95742 6.21016C5.32364 4.37732 5.69571 2.54448 6.05021 0.708741C6.1088 0.403753 6.22892 0.278852 6.55412 0.284662C7.59417 0.30209 8.63422 0.29628 9.6772 0.290471C9.93209 0.290471 10.0083 0.374706 9.95552 0.624506C9.6479 2.09136 9.35493 3.55821 9.04731 5.02506C8.94184 5.53337 8.94477 5.5508 9.48384 5.55371C10.2104 5.55371 10.937 5.55371 11.6636 5.55371L11.6694 5.54499Z"
fill="white"></path>
<path
d="M8.30004 26.537C7.55003 26.537 6.80002 26.5486 6.05002 26.5311C5.76876 26.5253 5.66036 26.6328 5.60763 26.8971C5.31173 28.425 4.99825 29.9499 4.70528 31.4778C4.65254 31.7479 4.53535 31.8438 4.25996 31.8409C3.24042 31.8292 2.22087 31.8263 1.20426 31.8409C0.879063 31.8467 0.799961 31.7479 0.864414 31.4342C1.50895 28.2246 2.1447 25.012 2.78338 21.8024C3.0119 20.6521 3.24921 19.5048 3.46893 18.3516C3.51874 18.0815 3.64179 17.9856 3.91425 17.9915C4.93379 18.0031 5.95334 18.006 6.96995 17.9915C7.29515 17.9856 7.37132 18.0931 7.30687 18.4039C6.99925 19.8708 6.7092 21.3376 6.4133 22.8074C6.35666 23.0901 6.47287 23.2324 6.76194 23.2344C8.23852 23.2344 9.71509 23.2256 11.1887 23.2431C11.5315 23.246 11.6546 23.1298 11.7161 22.8074C12.0003 21.3492 12.3167 19.8969 12.6009 18.4388C12.6683 18.0989 12.8118 17.9856 13.1604 17.9944C14.1565 18.0176 15.1527 18.0118 16.1458 17.9944C16.4593 17.9886 16.5618 18.067 16.4974 18.3923C15.7152 22.1916 14.9417 25.9909 14.1653 29.7902C14.0481 30.3595 13.928 30.9259 13.8226 31.4981C13.7757 31.745 13.6614 31.8496 13.3978 31.8467C12.3665 31.835 11.3352 31.835 10.3069 31.8467C9.96998 31.8496 9.92018 31.7218 9.98463 31.4226C10.2952 29.9441 10.5852 28.4656 10.8841 26.9843C10.9719 26.5428 10.9778 26.5428 10.512 26.5428C9.77369 26.5428 9.0354 26.5428 8.29711 26.5428L8.30004 26.537Z"
fill="white"></path>
<path
d="M41.409 0.252687C42.3202 0.26721 43.536 0.223641 44.7548 0.287543C45.3817 0.319494 45.9882 0.426966 46.5683 0.659339C48.247 1.33031 48.7509 2.55608 48.7451 4.05198C48.7451 4.96404 48.5107 5.84124 48.1093 6.67197C47.1366 8.67909 45.4755 9.7451 43.3251 10.1547C42.1766 10.3754 41.0135 10.2912 39.8563 10.2854C39.4666 10.2854 39.3319 10.4045 39.2674 10.7733C39.0858 11.7784 38.8543 12.7747 38.6639 13.7768C38.6053 14.0905 38.4647 14.1979 38.1453 14.1921C37.1609 14.1776 36.1766 14.1776 35.1951 14.1921C34.8787 14.195 34.782 14.105 34.8494 13.7826C35.7342 9.4372 36.616 5.09184 37.4774 0.743574C37.5535 0.363064 37.7264 0.243973 38.0838 0.246878C39.0916 0.255592 40.0995 0.249782 41.412 0.249782L41.409 0.252687ZM42.1883 3.47395C41.8251 3.47395 41.4618 3.48557 41.1014 3.47104C40.87 3.46233 40.7674 3.54657 40.7206 3.77313C40.5213 4.78685 40.3133 5.79767 40.0995 6.80559C40.0497 7.03796 40.1082 7.128 40.3514 7.1251C41.0428 7.11639 41.7342 7.14253 42.4227 7.11639C43.7001 7.0641 44.4354 6.47446 44.6991 5.34164C44.9657 4.18849 44.4413 3.51461 43.243 3.47976C42.8915 3.46814 42.5399 3.47976 42.1913 3.47976L42.1883 3.47395Z"
fill="white"></path>
<path
d="M38.2882 27.9951C37.8546 27.9951 37.421 28.0038 36.9874 27.9922C36.7442 27.9864 36.6387 28.0793 36.5918 28.3233C36.3956 29.3486 36.1641 30.3682 35.9737 31.3964C35.9122 31.7392 35.7715 31.8554 35.42 31.8467C34.459 31.8234 33.4981 31.8408 32.54 31.8379C32.0947 31.8379 32.0772 31.8147 32.165 31.379C32.7305 28.5789 33.2988 25.7817 33.8643 22.9816C34.1778 21.4335 34.4971 19.8882 34.7989 18.34C34.8487 18.0844 34.9571 17.9915 35.2178 17.9944C37.4913 18.0031 39.7618 17.9769 42.0353 18.0147C43.1105 18.0321 44.1124 18.3458 44.9269 19.101C45.7062 19.8243 45.9435 20.7625 45.9289 21.7617C45.9025 23.4464 45.299 24.922 44.089 26.1129C42.9845 27.1992 41.6163 27.7598 40.0811 27.9399C39.4864 28.0096 38.8887 27.9922 38.2911 27.9951H38.2882ZM38.7833 24.7825C39.088 24.7825 39.3927 24.7883 39.6974 24.7825C40.9396 24.7593 41.6573 24.1871 41.9415 22.9904C42.2023 21.8982 41.6778 21.204 40.5499 21.1779C39.8233 21.1604 39.0968 21.1779 38.3731 21.1691C38.1475 21.1662 38.0362 21.2359 37.9923 21.4654C37.793 22.4791 37.585 23.49 37.3682 24.5008C37.3243 24.7099 37.3946 24.7825 37.5909 24.7825C37.9893 24.7825 38.3878 24.7825 38.7862 24.7825H38.7833Z"
fill="white"></path>
<path
d="M69.259 17.9973C70.7707 17.9973 72.2825 17.9973 73.7913 17.9973C74.2395 17.9973 74.2483 18.0147 74.1546 18.4562C73.9905 19.2288 73.8206 20.0015 73.677 20.777C73.6213 21.0733 73.4866 21.1779 73.1819 21.175C71.4006 21.1633 69.6193 21.1779 67.841 21.1633C67.507 21.1604 67.3547 21.265 67.299 21.5903C67.1994 22.1625 67.0734 22.729 66.9387 23.2954C66.8713 23.58 66.9562 23.6555 67.2463 23.6526C68.8869 23.641 70.5276 23.6468 72.1653 23.6468C72.637 23.6468 72.6545 23.6701 72.5666 24.1174C72.4172 24.8581 72.2532 25.5958 72.1213 26.3365C72.0569 26.6909 71.9192 26.839 71.5237 26.8332C69.9065 26.81 68.2893 26.8332 66.675 26.8187C66.3498 26.8158 66.2267 26.9291 66.1681 27.2341C65.9015 28.6254 65.6056 30.0109 65.342 31.4023C65.2804 31.7218 65.1632 31.8525 64.8175 31.8467C63.8566 31.8263 62.8956 31.8321 61.9347 31.8409C61.6212 31.8438 61.5275 31.7566 61.5948 31.4313C62.3449 27.7569 63.0802 24.0796 63.8214 20.4023C63.9591 19.7197 64.1056 19.0371 64.2316 18.3516C64.2785 18.096 64.3693 17.9827 64.6623 17.9857C66.1974 18.0031 67.7326 17.9944 69.2648 17.9944L69.259 17.9973Z"
fill="white"></path>
<path
d="M80.8548 17.9943C82.3783 17.9943 83.9017 18.0001 85.4252 17.9885C85.7181 17.9885 85.7972 18.067 85.7357 18.3516C85.5541 19.1562 85.3812 19.9637 85.2318 20.7741C85.1761 21.0762 85.0472 21.1778 84.7425 21.1749C82.9613 21.1633 81.18 21.1807 79.3987 21.1633C79.0442 21.1604 78.9007 21.2708 78.8479 21.6164C78.763 22.177 78.6458 22.7376 78.5081 23.2895C78.4319 23.5916 78.5345 23.6497 78.8128 23.6497C80.4534 23.641 82.0941 23.6468 83.7347 23.6497C84.2064 23.6497 84.2122 23.6642 84.1156 24.1261C83.9574 24.8871 83.7933 25.6481 83.6556 26.4149C83.5999 26.7199 83.4769 26.839 83.1488 26.8361C81.5198 26.8216 79.8909 26.8361 78.262 26.8245C77.9339 26.8245 77.7874 26.9058 77.7229 27.2457C77.4622 28.6254 77.1575 29.9993 76.8938 31.379C76.8264 31.7333 76.677 31.8583 76.3137 31.8495C75.3645 31.8263 74.4153 31.835 73.466 31.8437C73.1731 31.8437 73.0735 31.7711 73.1379 31.4545C73.9524 27.4722 74.7522 23.487 75.5579 19.5019C75.634 19.1271 75.7366 18.7554 75.7835 18.3748C75.8245 18.0495 75.9944 17.9943 76.2815 17.9972C77.805 18.006 79.3284 18.003 80.8519 18.003V17.9972L80.8548 17.9943Z"
fill="white"></path>
<path
d="M69.751 31.7769C70.4014 31.8728 70.999 31.9744 71.5967 32.0412C75.7891 32.5176 79.8409 31.9889 83.7287 30.3391C84.8713 29.854 85.9611 29.2644 87.0158 28.6108C87.2824 28.4453 87.3996 28.2797 87.3088 27.9602C87.2209 27.6494 87.1828 27.3241 87.1242 27.0046C87.1037 26.8826 87.01 26.7286 87.1242 26.6444C87.2385 26.5601 87.3644 26.6879 87.4699 26.7548C88.4397 27.3444 89.4065 27.9311 90.3703 28.5295C91.1643 29.0233 91.1614 29.0262 90.5989 29.7843C89.9045 30.7196 89.216 31.6607 88.5217 32.5931C88.4572 32.6802 88.4162 32.8371 88.2756 32.7993C88.1555 32.7674 88.1936 32.6222 88.1701 32.5263C88.0969 32.1865 88.0266 31.8437 87.965 31.501C87.9211 31.2541 87.8127 31.2076 87.5783 31.3034C85.4953 32.1458 83.3332 32.6919 81.1066 32.991C77.3595 33.4994 73.6797 33.2496 70.0938 31.9977C69.9883 31.9599 69.8652 31.9483 69.751 31.7798V31.7769Z"
fill="white"></path>
<path
d="M65.8896 15.0316C66.2324 15.0083 66.54 15.1274 66.8535 15.171C72.5343 15.9756 77.8634 15.081 82.7443 11.973C83.0432 11.7813 83.1252 11.5925 83.0314 11.2642C82.9435 10.9534 82.8996 10.6281 82.8439 10.3086C82.8293 10.2244 82.7648 10.114 82.8644 10.053C82.9582 9.99781 83.0432 10.085 83.1193 10.1314C84.1096 10.7327 85.094 11.3369 86.0813 11.9381C86.2893 12.0659 86.4973 12.1995 86.7082 12.3244C86.8811 12.4261 86.8899 12.5423 86.7698 12.6933C85.9026 13.8058 85.0412 14.9212 84.174 16.0337C84.1272 16.0947 84.0861 16.1905 83.9865 16.1586C83.8898 16.1295 83.9016 16.0279 83.8869 15.9524C83.8107 15.5893 83.7346 15.2262 83.6672 14.8602C83.6262 14.6365 83.5676 14.5378 83.301 14.6453C81.3029 15.444 79.2316 15.9698 77.0988 16.2544C75.1065 16.5188 73.1114 16.5449 71.1104 16.3271C69.4375 16.1441 67.8057 15.8013 66.2207 15.2407C66.1064 15.2 65.9629 15.203 65.8896 15.0345V15.0316Z"
fill="white"></path>
<path
d="M67.8024 37.6762C68.1276 37.1302 68.4997 36.6073 68.7663 36.0351C69.0592 35.4048 69.4577 35.0766 70.1725 35.2218C70.2165 35.2305 70.2663 35.2218 70.3132 35.2218C70.7175 35.2276 70.7468 35.2567 70.6764 35.643C70.4743 36.7264 70.2663 37.8098 70.0612 38.8933C70.0143 39.1315 69.9674 39.3726 69.9294 39.6136C69.8942 39.8315 69.7829 39.9215 69.5514 39.9302C68.7047 39.9593 68.7047 39.9651 68.8659 39.1344C68.986 38.5099 69.1061 37.8854 69.1559 37.2289C68.9567 37.5717 68.7604 37.9173 68.5612 38.2601C68.3122 38.6929 68.0573 39.1257 67.817 39.5643C67.7057 39.7647 67.5768 39.8954 67.3219 39.8634C67.0612 39.8286 67.067 39.6224 67.0319 39.4481C66.8766 38.6987 66.7242 37.9464 66.5133 37.1883C66.3961 37.8128 66.2789 38.4373 66.1617 39.0647C66.15 39.1228 66.1442 39.1808 66.1354 39.236C66.0035 39.9361 66.0035 39.9215 65.2682 39.9273C64.9371 39.9302 64.8668 39.8199 64.9283 39.5149C65.1568 38.3879 65.3678 37.258 65.5875 36.1281C65.6139 35.9915 65.6402 35.855 65.6695 35.7185C65.7379 35.3835 65.9381 35.216 66.2701 35.216C66.9303 35.216 67.32 35.5336 67.4391 36.1687C67.5329 36.6596 67.6325 37.1476 67.7291 37.6356C67.7555 37.6472 67.7819 37.6559 67.8082 37.6675L67.8024 37.6762Z"
fill="white"></path>
<path
d="M58.6563 37.9842C58.6681 36.3082 59.8868 35.1115 61.548 35.1521C62.5499 35.1754 63.2999 35.7941 63.4406 36.7787C63.6691 38.3763 62.4562 40.1656 60.423 39.9884C59.3126 39.8925 58.6475 39.1199 58.6563 37.9871V37.9842ZM59.8165 37.8099C59.8048 38.2543 59.8985 38.6551 60.3556 38.8498C60.8155 39.0444 61.2609 38.9747 61.6388 38.658C62.1368 38.2398 62.3478 37.685 62.2628 37.0431C62.1749 36.3605 61.6505 36.0264 60.9737 36.2007C60.297 36.375 59.8282 37.0256 59.8136 37.8099H59.8165Z"
fill="white"></path>
<path
d="M34.8758 39.9274C34.4305 39.9274 33.9852 39.9245 33.5399 39.9274C33.3143 39.9303 33.2176 39.8606 33.2645 39.6166C33.5311 38.2369 33.7889 36.8572 34.0438 35.4775C34.0789 35.2945 34.1727 35.219 34.3543 35.2219C35.2684 35.2219 36.1825 35.2219 37.0936 35.2219C37.3133 35.2219 37.3924 35.3119 37.3397 35.524C37.3221 35.5908 37.3192 35.6605 37.3075 35.7302C37.245 36.0633 37.0428 36.2298 36.701 36.2298C36.2674 36.2298 35.8338 36.2269 35.4002 36.2298C35.1043 36.2298 34.8143 36.6684 34.9198 36.9443C34.9666 37.0634 35.0721 37.0315 35.16 37.0315C35.6522 37.0344 36.1444 37.0489 36.6366 37.0315C36.9559 37.0199 37.0292 37.1477 36.9559 37.4265C36.9296 37.5282 36.9061 37.6298 36.8944 37.7344C36.871 37.9639 36.745 38.051 36.5165 38.0452C36.036 38.0365 35.5555 38.0394 35.075 38.0452C34.7528 38.0452 34.4334 38.5506 34.5682 38.8382C34.6209 38.9515 34.7264 38.9166 34.8143 38.9195C35.3416 38.9224 35.869 38.9311 36.3963 38.9195C36.6483 38.9137 36.745 39.0037 36.6835 39.2477C36.6747 39.2826 36.6747 39.3174 36.6688 39.3523C36.6024 39.7415 36.3661 39.9361 35.9598 39.9361C35.5965 39.9361 35.2332 39.9361 34.87 39.9361L34.8758 39.9274Z"
fill="white"></path>
<path
d="M78.8237 38.0422C77.1361 38.0422 75.4516 38.0422 73.764 38.0422C73.2806 38.0422 73.2689 38.0277 73.3539 37.5804C73.4281 37.1776 73.6732 36.9762 74.0892 36.9762C77.4145 36.9762 80.7397 36.9762 84.0649 36.9762C84.5776 36.9762 84.5835 36.9849 84.4809 37.4874C84.4067 37.8553 84.1831 38.0393 83.81 38.0393C82.146 38.0393 80.4848 38.0393 78.8207 38.0393L78.8237 38.0422Z"
fill="white"></path>
<path
d="M29.0368 36.9792C29.4616 36.5377 29.904 36.1078 30.3083 35.6489C30.5954 35.3236 30.9147 35.158 31.3512 35.2248C31.5739 35.2597 31.9167 35.1115 31.9928 35.3061C32.0661 35.4891 31.735 35.6489 31.5768 35.8086C31.1374 36.2589 30.695 36.7062 30.2321 37.1332C30.0299 37.3191 30.0182 37.473 30.1501 37.7025C30.5075 38.3299 30.8356 38.9689 31.1872 39.5992C31.3219 39.8403 31.2721 39.9332 30.9909 39.9245C29.8161 39.8984 30.1266 40.1017 29.6051 39.0967C29.4997 38.8905 29.3854 38.6842 29.3004 38.4693C29.1774 38.1643 29.0485 38.2224 28.8522 38.4112C28.6178 38.6378 28.6178 38.9369 28.5621 39.2129C28.4039 39.9942 28.6002 39.9216 27.6129 39.9245C27.358 39.9245 27.2906 39.8229 27.3405 39.5789C27.5543 38.4867 27.7565 37.3917 27.9616 36.2966C27.985 36.1717 28.0055 36.0439 28.0289 35.919C28.1637 35.2016 28.3248 35.0999 29.069 35.2219C29.3092 35.2626 29.2623 35.4136 29.2389 35.5588C29.1569 36.0207 29.069 36.4825 28.9811 36.9444C29.0016 36.956 29.0192 36.9647 29.0397 36.9763L29.0368 36.9792Z"
fill="white"></path>
<path
d="M45.7943 39.9971C45.267 39.9738 44.7133 39.8664 44.2445 39.4859C44.0424 39.3203 43.9955 39.1605 44.1918 38.9659C44.2093 38.9485 44.2211 38.9311 44.2386 38.9136C44.3881 38.751 44.5082 38.5157 44.6928 38.4431C44.9008 38.3589 45.0092 38.6609 45.1937 38.7539C45.5951 38.9543 46.0023 39.0618 46.4447 38.9107C46.6234 38.8497 46.7582 38.7365 46.767 38.5418C46.7758 38.3443 46.6264 38.2543 46.4652 38.2049C46.143 38.1032 45.809 38.0306 45.4896 37.9202C44.6049 37.6124 44.3383 36.8571 44.8129 36.0526C45.2025 35.3961 46.0609 35.0446 46.9604 35.1753C47.3588 35.2334 47.7309 35.3612 48.0619 35.5965C48.2377 35.7214 48.3051 35.8434 48.1322 36.0177C48.0824 36.0671 48.0443 36.1281 48.0004 36.1804C47.7719 36.4515 47.5024 36.5125 47.1918 36.3634C46.89 36.2181 46.5766 36.1339 46.2396 36.1775C46.017 36.2065 45.8119 36.3024 45.7826 36.5405C45.7504 36.7845 45.9818 36.8281 46.1547 36.8833C46.4096 36.9675 46.6762 37.0227 46.9311 37.1069C47.4115 37.2667 47.8715 37.47 47.9389 38.0481C48.0151 38.7219 47.7924 39.2883 47.1977 39.6659C46.7904 39.9245 46.3305 40 45.7973 40.0029L45.7943 39.9971Z"
fill="white"></path>
<path
d="M5.07682 38.0422C3.51821 38.0422 1.96253 38.0422 0.403916 38.0422C-0.0384717 38.0422 -0.0443311 38.0335 0.0435605 37.6094C0.131452 37.1873 0.398057 36.9762 0.843374 36.9762C3.84341 36.9762 6.84051 36.9762 9.84054 36.9762C10.2175 36.9762 10.3708 37.1553 10.3005 37.5136C10.2302 37.8718 10.0124 38.047 9.64718 38.0393C8.12373 38.0393 6.60027 38.0393 5.07975 38.0393L5.07682 38.0422Z"
fill="white"></path>
<path
d="M52.6826 37.9812C52.6914 36.0613 54.5401 34.6757 56.2422 35.2712C56.6524 35.4135 56.9307 35.6953 57.1387 36.0613C57.25 36.2559 57.209 36.3895 56.9922 36.4679C56.9043 36.4999 56.8135 36.5318 56.7373 36.5812C56.4385 36.7729 56.2159 36.7584 55.9815 36.4447C55.7412 36.1194 55.3574 36.1048 54.9883 36.2152C54.1797 36.4505 53.6436 37.4526 53.8867 38.2543C54.1182 39.0182 55.0821 39.2041 55.7149 38.6145C55.8174 38.5186 55.8789 38.292 56.0518 38.3618C56.3067 38.4663 56.5381 38.6348 56.7696 38.7887C56.837 38.8352 56.7842 38.9165 56.7432 38.9746C56.2627 39.6253 55.6153 39.9767 54.8008 39.9942C54.0274 40.0116 53.374 39.7734 52.9551 39.0763C52.7412 38.7248 52.668 38.3443 52.6855 37.9812H52.6826Z"
fill="white"></path>
<path
d="M21.4606 37.8941C21.4635 36.2966 22.7731 35.0563 24.4636 35.1579C25.1052 35.1957 25.5945 35.4978 25.9197 36.0555C26.0368 36.2559 26.0427 36.4011 25.782 36.4737C25.6823 36.5028 25.5798 36.5435 25.489 36.5928C25.2165 36.7497 25.0232 36.7729 24.7976 36.4592C24.5632 36.131 24.156 36.1019 23.7692 36.2094C22.902 36.4476 22.363 37.5368 22.697 38.3705C22.9665 39.0473 23.9245 39.1751 24.4958 38.6116C24.5954 38.5128 24.6511 38.2979 24.8415 38.3734C25.0993 38.478 25.3513 38.6145 25.5534 38.8091C25.6238 38.8788 25.5359 38.9572 25.4919 39.024C24.8298 40 23.2331 40.3108 22.2546 39.6427C21.6745 39.2477 21.446 38.6726 21.4606 37.8912V37.8941Z"
fill="white"></path>
<path
d="M14.983 35.2219C15.4986 35.2219 16.0113 35.2277 16.527 35.2219C16.776 35.219 16.8756 35.3119 16.8053 35.5588C16.7907 35.614 16.7877 35.6721 16.776 35.7302C16.7115 36.0632 16.5114 36.2298 16.1754 36.2298C15.4137 36.2298 15.4108 36.2298 15.2672 36.9763C15.1119 37.7954 14.9596 38.6174 14.8102 39.4394C14.7223 39.9216 14.7193 39.9245 14.2301 39.9274C13.7887 39.9274 13.61 39.7086 13.6939 39.271C13.8639 38.3821 14.025 37.4933 14.2066 36.6074C14.2652 36.3198 14.2066 36.1949 13.8873 36.2269C13.6676 36.2472 13.442 36.2298 13.2223 36.2269C13.0435 36.2269 12.9644 36.1397 13.0025 35.9597C13.0084 35.9364 13.0113 35.9132 13.0142 35.8899C13.0728 35.4426 13.3297 35.2199 13.7848 35.2219C13.9605 35.2219 14.1363 35.2219 14.3121 35.2219C14.5348 35.2219 14.7574 35.2219 14.9801 35.2219H14.983Z"
fill="white"></path>
<path
d="M41.2414 35.2219C41.7219 35.2219 42.2024 35.2393 42.6799 35.2161C43.0198 35.1987 43.0959 35.3352 43.011 35.6256C43.0051 35.6489 43.0022 35.6721 42.9993 35.6953C42.9309 36.0517 42.7151 36.2298 42.3518 36.2298C41.4524 36.2298 41.6457 36.1659 41.4875 36.9502C41.3117 37.8245 41.1447 38.7017 40.9953 39.5818C40.9514 39.8403 40.8488 39.9361 40.5852 39.9332C39.633 39.9158 39.759 40.0204 39.9201 39.1432C40.0783 38.2892 40.2424 37.4352 40.4211 36.5813C40.4768 36.3082 40.383 36.2124 40.1193 36.2327C40.049 36.2385 39.9787 36.2327 39.9084 36.2327C39.1203 36.2327 39.1994 36.3169 39.3313 35.5065C39.3664 35.2916 39.4895 35.2219 39.6975 35.2248C40.2131 35.2306 40.7258 35.2248 41.2414 35.2248V35.2219Z"
fill="white"></path>
<path
d="M18.5449 39.9216C18.4511 39.9216 18.3574 39.9216 18.2636 39.9216C18.0644 39.9216 17.9911 39.8374 18.0292 39.637C18.29 38.2689 18.5507 36.9008 18.8027 35.5327C18.8466 35.2887 18.9814 35.219 19.2158 35.2161C20.0214 35.2016 20.0097 35.1928 19.8574 35.9626C19.6347 37.1012 19.4296 38.2427 19.2128 39.3814C19.1103 39.9245 19.1074 39.9216 18.5419 39.9187L18.5449 39.9216Z"
fill="white"></path>
<path
d="M50.9005 39.2506C50.9005 39.6514 50.59 39.9797 50.212 39.9826C49.8839 39.9855 49.629 39.7357 49.6349 39.4133C49.6437 39.0095 49.9864 38.6493 50.3526 38.6522C50.6661 38.6522 50.9005 38.9108 50.9005 39.2506Z"
fill="white"></path>
</g>
<defs>
<clipPath id="clip0_117_3713">
<rect width="91" height="40" fill="white"></rect>
</clipPath>
</defs>
</svg>
</span>
<p class="footer__about">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet.</p>
</div>
<nav class="footer__cols" aria-label="Footer">
<div class="footer__col">
<h2 class="footer__ct">Quick Access</h2>
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="tours.html">Tours</a></li>
<li><a href="blog.html">Weblog</a></li>
<li><a href="contact.html">Contact us</a></li>
<li><a href="about.html">About us</a></li>
</ul>
</div>
<div class="footer__col">
<h2 class="footer__ct">Tours</h2>
<ul>
<li><a href="tours.html">London</a></li>
<li><a href="tours.html">Nashville</a></li>
<li><a href="tours.html">Sydney</a></li>
<li><a href="tours.html">San Diego</a></li>
<li><a href="tours.html">Paris</a></li>
</ul>
</div>
<div class="footer__col">
<h2 class="footer__ct">User Account</h2>
<ul>
<li><a href="#">Sign in</a></li>
<li><a href="#">Forget Password</a></li>
<li><a href="#">Booking History</a></li>
<li><a href="#">Support</a></li>
<li><a href="#">Dashboard</a></li>
</ul>
</div>
</nav>
</div>
<div class="container footer__bar">
<p class="footer__copy">&copy; 2026 Hop on Hop Off. All rights reserved.</p>
<ul class="socials">
<li><a href="#" aria-label="WhatsApp"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-whatsapp" />
</svg></a></li>
<li><a href="#" aria-label="Instagram"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-instagram" />
</svg></a></li>
<li><a href="#" aria-label="Telegram"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-telegram" />
</svg></a></li>
<li><a href="#" aria-label="Facebook"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-facebook" />
</svg></a></li>
</ul>
</div>
<a class="support" href="#" aria-label="Support">
<svg class="ring-badge__ring support__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">SUPPORT &#183; SUPPORT &#183; SUPPORT &#183; </textPath>
</text>
</svg>
<span class="support__tab">
<svg class="icon icon--24" aria-hidden="true">
<use href="#i-headset" />
</svg>
</span>
</a>
</footer>
<script src="js/main.js"></script>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 635 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

View File

Before

Width:  |  Height:  |  Size: 1.5 MiB

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

Before

Width:  |  Height:  |  Size: 440 KiB

After

Width:  |  Height:  |  Size: 440 KiB

View File

Before

Width:  |  Height:  |  Size: 997 KiB

After

Width:  |  Height:  |  Size: 997 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 1.3 MiB

View File

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 1.4 MiB

View File

Before

Width:  |  Height:  |  Size: 667 KiB

After

Width:  |  Height:  |  Size: 667 KiB

View File

Before

Width:  |  Height:  |  Size: 3.7 MiB

After

Width:  |  Height:  |  Size: 3.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 982 KiB

View File

Before

Width:  |  Height:  |  Size: 321 B

After

Width:  |  Height:  |  Size: 321 B

View File

Before

Width:  |  Height:  |  Size: 321 B

After

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 982 KiB

View File

Before

Width:  |  Height:  |  Size: 2.6 MiB

After

Width:  |  Height:  |  Size: 2.6 MiB

View File

Before

Width:  |  Height:  |  Size: 2.5 MiB

After

Width:  |  Height:  |  Size: 2.5 MiB

View File

Before

Width:  |  Height:  |  Size: 1.5 MiB

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 1.3 MiB

View File

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 1.3 MiB

View File

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

View File

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 1.3 MiB

View File

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

BIN
new front/assets/paris.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

BIN
new front/assets/sydney.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 1.4 MiB

View File

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

View File

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 1.4 MiB

View File

Before

Width:  |  Height:  |  Size: 707 KiB

After

Width:  |  Height:  |  Size: 707 KiB

View File

Before

Width:  |  Height:  |  Size: 595 KiB

After

Width:  |  Height:  |  Size: 595 KiB

865
new front/blog-post.html Normal file
View File

@@ -0,0 +1,865 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Hop On Hop Off &mdash; Finding the best tour</title>
<meta name="description" content="Finding the best tour might be a little challange! Tips and stories from the Hop On Hop Off weblog." />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;700;800&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<a class="skip-link" href="#main">Skip to content</a>
<!-- ============ icon sprite ============ -->
<svg class="sprite" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg">
<symbol id="i-arrow-right" viewBox="0 0 16 16" fill="none">
<path d="M2.66699 8H13.3337M9.33366 12L13.3337 8L9.33366 4" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-left" viewBox="0 0 16 16" fill="none">
<path d="M13.333 8H2.66634M6.66634 12L2.66634 8L6.66634 4" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-ne" viewBox="0 0 16 16" fill="none">
<path d="M4 12L12 4M12 10V4H6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-up" viewBox="0 0 16 16" fill="none">
<path d="M8 13.3333L8 2.66659M12 6.66659L8 2.66659L4 6.66659" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-chevron" viewBox="0 0 16 16" fill="none">
<path d="M12.6663 6L7.99967 10L3.33301 6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
</symbol>
<symbol id="i-search" viewBox="0 0 24 24" fill="none">
<circle cx="11.5" cy="11.5" r="9.5" stroke="currentColor" stroke-width="1.5" />
<path d="M18.5 18.5L22 22" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-user" viewBox="0 0 24 24" fill="none">
<circle cx="12" cy="6" r="4" stroke="currentColor" stroke-width="1.5" />
<ellipse cx="12" cy="17" rx="7" ry="4" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-location" viewBox="0 0 16 16" fill="none">
<path
d="M2.66699 6.76224C2.66699 3.76396 5.05481 1.33337 8.00033 1.33337C10.9458 1.33337 13.3337 3.76396 13.3337 6.76224C13.3337 9.73702 11.6314 13.2083 8.97561 14.4497C8.3565 14.7391 7.64415 14.7391 7.02504 14.4497C4.36921 13.2083 2.66699 9.73702 2.66699 6.76224Z"
stroke="currentColor" stroke-width="1.5" />
<circle cx="8" cy="6.66663" r="2" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-calendar" viewBox="0 0 16 16" fill="none">
<path
d="M1.33301 7.99996C1.33301 5.4858 1.33301 4.22872 2.11406 3.44767C2.8951 2.66663 4.15218 2.66663 6.66634 2.66663H9.33301C11.8472 2.66663 13.1042 2.66663 13.8853 3.44767C14.6663 4.22872 14.6663 5.4858 14.6663 7.99996V9.33329C14.6663 11.8475 14.6663 13.1045 13.8853 13.8856C13.1042 14.6666 11.8472 14.6666 9.33301 14.6666H6.66634C4.15218 14.6666 2.8951 14.6666 2.11406 13.8856C1.33301 13.1045 1.33301 11.8475 1.33301 9.33329V7.99996Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M4.66699 2.66663V1.66663" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M11.333 2.66663V1.66663" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M1.66699 6H14.3337" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-seat" viewBox="0 0 16 16" fill="none">
<circle cx="5.99967" cy="4.00004" r="2.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M10 6C11.1046 6 12 5.10457 12 4C12 2.89543 11.1046 2 10 2" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" />
<ellipse cx="5.99967" cy="11.3333" rx="4.66667" ry="2.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M12 9.33337C13.1695 9.58984 14 10.2393 14 11C14 11.6863 13.3242 12.282 12.3333 12.5803"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-mouse" viewBox="0 0 16 16" fill="none">
<path
d="M3.33301 5.99998C3.33301 3.42265 5.42235 1.33331 7.99967 1.33331C10.577 1.33331 12.6663 3.42265 12.6663 5.99998V9.99998C12.6663 12.5773 10.577 14.6666 7.99967 14.6666C5.42235 14.6666 3.33301 12.5773 3.33301 9.99998V5.99998Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M7 5.66669C7 5.1144 7.44772 4.66669 8 4.66669C8.55228 4.66669 9 5.1144 9 5.66669V7.00002C9 7.5523 8.55228 8.00002 8 8.00002C7.44772 8.00002 7 7.5523 7 7.00002V5.66669Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M8 1.33331V4.66665" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-grid" viewBox="0 0 16 16" fill="none">
<path
d="M1.66699 4.33329C1.66699 3.07621 1.66699 2.44767 2.05752 2.05715C2.44804 1.66663 3.07658 1.66663 4.33366 1.66663C5.59074 1.66663 6.21928 1.66663 6.6098 2.05715C7.00033 2.44767 7.00033 3.07621 7.00033 4.33329C7.00033 5.59037 7.00033 6.21891 6.6098 6.60944C6.21928 6.99996 5.59074 6.99996 4.33366 6.99996C3.07658 6.99996 2.44804 6.99996 2.05752 6.60944C1.66699 6.21891 1.66699 5.59037 1.66699 4.33329Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M9 11.6667C9 10.4096 9 9.78105 9.39052 9.39052C9.78105 9 10.4096 9 11.6667 9C12.9237 9 13.5523 9 13.9428 9.39052C14.3333 9.78105 14.3333 10.4096 14.3333 11.6667C14.3333 12.9237 14.3333 13.5523 13.9428 13.9428C13.5523 14.3333 12.9237 14.3333 11.6667 14.3333C10.4096 14.3333 9.78105 14.3333 9.39052 13.9428C9 13.5523 9 12.9237 9 11.6667Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M1.66699 11.6667C1.66699 10.4096 1.66699 9.78105 2.05752 9.39052C2.44804 9 3.07658 9 4.33366 9C5.59074 9 6.21928 9 6.6098 9.39052C7.00033 9.78105 7.00033 10.4096 7.00033 11.6667C7.00033 12.9237 7.00033 13.5523 6.6098 13.9428C6.21928 14.3333 5.59074 14.3333 4.33366 14.3333C3.07658 14.3333 2.44804 14.3333 2.05752 13.9428C1.66699 13.5523 1.66699 12.9237 1.66699 11.6667Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M9 4.33329C9 3.07621 9 2.44767 9.39052 2.05715C9.78105 1.66663 10.4096 1.66663 11.6667 1.66663C12.9237 1.66663 13.5523 1.66663 13.9428 2.05715C14.3333 2.44767 14.3333 3.07621 14.3333 4.33329C14.3333 5.59037 14.3333 6.21891 13.9428 6.60944C13.5523 6.99996 12.9237 6.99996 11.6667 6.99996C10.4096 6.99996 9.78105 6.99996 9.39052 6.60944C9 6.21891 9 5.59037 9 4.33329Z"
stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-price" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="8.00004" r="6.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M8 4V12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M10 6.33335C10 5.41288 9.10457 4.66669 8 4.66669C6.89543 4.66669 6 5.41288 6 6.33335C6 7.25383 6.89543 8.00002 8 8.00002C9.10457 8.00002 10 8.74621 10 9.66669C10 10.5872 9.10457 11.3334 8 11.3334C6.89543 11.3334 6 10.5872 6 9.66669"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-duration" viewBox="0 0 16 16" fill="none">
<path
d="M1.33366 8.00004C1.33366 11.6819 4.31843 14.6667 8.00033 14.6667C11.6822 14.6667 14.667 11.6819 14.667 8.00004C14.667 4.31814 11.6822 1.33337 8.00033 1.33337"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M8 6V8.66667H10.6667" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
<circle cx="7.99967" cy="8.00004" r="6.66667" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-dasharray="0.5 3.5" />
</symbol>
<symbol id="i-sort" viewBox="0 0 16 16" fill="none">
<path d="M2.66699 11.3333H7.33366" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2.66699 8L7.33366 8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2.66699 4.66669L7.33366 4.66669" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M11.333 2.66665L11.333 13.3333M13.333 5.33331L11.333 2.66665L9.33301 5.33331M9.33301 10.6666L11.333 13.3333L13.333 10.6666"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-check" viewBox="0 0 16 16" fill="none">
<path d="M3.33301 8.33333L6.33301 11.3333L12.6663 5" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-info" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="7.99992" r="6.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M8 11.3333V7.33325" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<circle cx="8" cy="5.33333" r="0.666667" fill="currentColor" />
</symbol>
<symbol id="i-person" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="4.00004" r="2.66667" stroke="currentColor" stroke-width="1.5" />
<ellipse cx="7.99967" cy="11.3333" rx="4.66667" ry="2.66667" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-shield-check" viewBox="0 0 16 16" fill="none">
<path
d="M2 6.94448C2 4.81275 2 3.74689 2.25168 3.38831C2.50335 3.02973 3.50555 2.68668 5.50994 2.00057L5.89182 1.86985C6.93666 1.5122 7.45907 1.33337 8 1.33337C8.54093 1.33337 9.06335 1.5122 10.1082 1.86985L10.4901 2.00057C12.4945 2.68668 13.4966 3.02973 13.7483 3.38831C14 3.74689 14 4.81275 14 6.94448C14 7.26647 14 7.61565 14 7.99428C14 11.753 11.174 13.577 9.40096 14.3516C8.91999 14.5617 8.67951 14.6667 8 14.6667C7.32049 14.6667 7.08001 14.5617 6.59904 14.3516C4.82597 13.577 2 11.753 2 7.99428C2 7.61565 2 7.26647 2 6.94448Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M6.33301 8.26663L7.28539 9.33329L9.66634 6.66663" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-x" viewBox="0 0 16 16" fill="none">
<path d="M12.6663 3.33337L3.33301 12.6667M3.33301 3.33337L12.6663 12.6667" stroke="currentColor"
stroke-width="2" stroke-linecap="round" />
</symbol>
<symbol id="i-star" viewBox="0 0 12 12">
<path
d="M4.21205 2.06464C4.94362 0.701584 5.30941 0.0200537 5.87277 0.000515809C6.43613 -0.019022 6.82396 0.636371 7.59964 1.94716L7.80031 2.28628C8.02073 2.65876 8.13095 2.845 8.29997 2.96455C8.46899 3.08409 8.67769 3.12341 9.09509 3.20203L9.4751 3.27362C10.9439 3.55031 11.6784 3.68865 11.8616 4.23622C12.0448 4.78378 11.5555 5.37794 10.5768 6.56625L10.3236 6.87368C10.0455 7.21136 9.90649 7.3802 9.84606 7.58521C9.78563 7.79021 9.81067 8.00818 9.86075 8.44411L9.90634 8.84099C10.0826 10.3751 10.1707 11.1421 9.72055 11.5C9.27043 11.858 8.58018 11.5698 7.19966 10.9934L6.84251 10.8443C6.45021 10.6805 6.25406 10.5986 6.04769 10.6058C5.84132 10.613 5.6481 10.7084 5.26165 10.8991L4.90982 11.0729C3.54988 11.7443 2.86992 12.08 2.40851 11.7536C1.9471 11.4273 2.00982 10.655 2.13527 9.1105L2.16772 8.71092C2.20337 8.27201 2.2212 8.05256 2.15408 7.85197C2.08696 7.65139 1.9425 7.49238 1.65359 7.17437L1.39055 6.88484C0.373843 5.76573 -0.134512 5.20618 0.0304441 4.64653C0.1954 4.08689 0.924422 3.89779 2.38247 3.5196L2.75968 3.42175C3.17401 3.31428 3.38117 3.26054 3.54606 3.12942C3.71095 2.99829 3.8149 2.80462 4.02279 2.41729L4.21205 2.06464Z"
fill="currentColor" />
</symbol>
<symbol id="i-plus" viewBox="0 0 14 14" fill="none">
<path d="M12.75 6.75005L6.75 6.75005M6.75 6.75005L0.75 6.75005M6.75 6.75005L6.75 0.75M6.75 6.75005L6.75 12.75"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-minus" viewBox="0 0 14 14" fill="none">
<path d="M12.75 7L0.75 7" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-headset" viewBox="0 0 24 24" fill="none">
<path d="M21 17V12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12V17" stroke="currentColor"
stroke-width="1.5" />
<path d="M22 15.5V17.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2 15.5V17.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M8 13.8446C8 13.0802 8 12.698 7.82526 12.4323C7.73733 12.2985 7.62061 12.188 7.4844 12.1095C7.21371 11.9535 6.84812 11.9896 6.11694 12.0617C4.88487 12.1831 4.26884 12.2439 3.82737 12.5764C3.60394 12.7448 3.41638 12.9593 3.27646 13.2067C3 13.6955 3 14.3395 3 15.6276V17.1933C3 18.4685 3 19.1061 3.28198 19.5986C3.38752 19.7829 3.51981 19.9491 3.67416 20.0913C4.08652 20.4714 4.68844 20.5901 5.89227 20.8275C6.73944 20.9945 7.16302 21.078 7.47564 20.9021C7.591 20.8372 7.69296 20.7493 7.77572 20.6434C8 20.3565 8 19.9078 8 19.0104V13.8446Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M16 13.8446C16 13.0802 16 12.698 16.1747 12.4323C16.2627 12.2985 16.3794 12.188 16.5156 12.1095C16.7863 11.9535 17.1519 11.9896 17.8831 12.0617C19.1151 12.1831 19.7312 12.2439 20.1726 12.5764C20.3961 12.7448 20.5836 12.9593 20.7235 13.2067C21 13.6955 21 14.3395 21 15.6276V17.1933C21 18.4685 21 19.1061 20.718 19.5986C20.6125 19.7829 20.4802 19.9491 20.3258 20.0913C19.9135 20.4714 19.3116 20.5901 18.1077 20.8275C17.2606 20.9945 16.837 21.078 16.5244 20.9021C16.409 20.8372 16.307 20.7493 16.2243 20.6434C16 20.3565 16 19.9078 16 19.0104V13.8446Z"
stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-whatsapp" viewBox="0 0 20 20">
<path
d="M17 2.875C15.125 1 12.625 0 10 0C4.5 0 0 4.5 0 10C0 11.75 0.500008 13.5 1.37501 15L0 20L5.25002 18.625C6.75002 19.375 8.375 19.875 10 19.875C15.5 19.875 20 15.375 20 9.875C20 7.25 18.875 4.75 17 2.875ZM10 18.25C8.5 18.25 7.00001 17.875 5.75001 17.125L5.49999 17L2.37499 17.875L3.25001 14.875L2.99999 14.5C2.12499 13.125 1.74999 11.625 1.74999 10.125C1.74999 5.625 5.5 1.875 10 1.875C12.25 1.875 14.25 2.75 15.875 4.25C17.5 5.875 18.25 7.875 18.25 10.125C18.25 14.5 14.625 18.25 10 18.25ZM14.5 12C14.25 11.875 13 11.25 12.75 11.25C12.5 11.125 12.375 11.125 12.25 11.375C12.125 11.625 11.625 12.125 11.5 12.375C11.375 12.5 11.25 12.5 11 12.5C10.75 12.375 10 12.125 9.00002 11.25C8.25002 10.625 7.75001 9.75 7.62501 9.5C7.50001 9.25 7.62502 9.125 7.75002 9C7.87502 8.875 8 8.75 8.125 8.625C8.25 8.5 8.25002 8.375 8.37502 8.25C8.50002 8.125 8.37502 8 8.37502 7.875C8.37502 7.75 7.87501 6.5 7.62501 6C7.50001 5.625 7.25002 5.625 7.12502 5.625C7.00002 5.625 6.87498 5.625 6.62498 5.625C6.49998 5.625 6.24998 5.625 5.99998 5.875C5.74998 6.125 5.12501 6.75 5.12501 8C5.12501 9.25 5.99999 10.375 6.12499 10.625C6.24999 10.75 7.87498 13.375 10.375 14.375C12.5 15.25 12.875 15 13.375 15C13.875 15 14.875 14.375 15 13.875C15.25 13.25 15.25 12.75 15.125 12.75C15 12.125 14.75 12.125 14.5 12Z"
fill="currentColor" />
</symbol>
<symbol id="i-instagram" viewBox="0 0 20 20">
<path
d="M10 1.80723C12.6506 1.80723 13.0121 1.80723 14.0964 1.80723C15.0602 1.80723 15.5422 2.04819 15.9036 2.16868C16.3855 2.40964 16.747 2.53012 17.1084 2.89157C17.4699 3.25301 17.7108 3.61446 17.8313 4.09639C17.9518 4.45783 18.0723 4.93976 18.1928 5.90362C18.1928 6.98795 18.1928 7.22892 18.1928 10C18.1928 12.7711 18.1928 13.0121 18.1928 14.0964C18.1928 15.0602 17.9518 15.5422 17.8313 15.9036C17.5904 16.3855 17.4699 16.747 17.1084 17.1084C16.747 17.4699 16.3855 17.7108 15.9036 17.8313C15.5422 17.9518 15.0602 18.0723 14.0964 18.1928C13.0121 18.1928 12.7711 18.1928 10 18.1928C7.22892 18.1928 6.98795 18.1928 5.90362 18.1928C4.93976 18.1928 4.45783 17.9518 4.09639 17.8313C3.61446 17.5904 3.25301 17.4699 2.89157 17.1084C2.53012 16.747 2.28916 16.3855 2.16868 15.9036C2.04819 15.5422 1.92771 15.0602 1.80723 14.0964C1.80723 13.0121 1.80723 12.7711 1.80723 10C1.80723 7.22892 1.80723 6.98795 1.80723 5.90362C1.80723 4.93976 2.04819 4.45783 2.16868 4.09639C2.40964 3.61446 2.53012 3.25301 2.89157 2.89157C3.25301 2.53012 3.61446 2.28916 4.09639 2.16868C4.45783 2.04819 4.93976 1.92771 5.90362 1.80723C6.98795 1.80723 7.3494 1.80723 10 1.80723ZM10 0C7.22892 0 6.98795 0 5.90362 0C4.81928 0 4.09639 0.240965 3.49398 0.481928C2.89157 0.722892 2.28916 1.08434 1.68675 1.68675C1.08434 2.28916 0.843374 2.77109 0.481928 3.49398C0.240965 4.09639 0.120482 4.81928 0 5.90362C0 6.98795 0 7.3494 0 10C0 12.7711 0 13.0121 0 14.0964C0 15.1807 0.240965 15.9036 0.481928 16.506C0.722892 17.1084 1.08434 17.7108 1.68675 18.3133C2.28916 18.9157 2.77109 19.1566 3.49398 19.5181C4.09639 19.759 4.81928 19.8795 5.90362 20C6.98795 20 7.3494 20 10 20C12.6506 20 13.0121 20 14.0964 20C15.1807 20 15.9036 19.759 16.506 19.5181C17.1084 19.2771 17.7108 18.9157 18.3133 18.3133C18.9157 17.7108 19.1566 17.2289 19.5181 16.506C19.759 15.9036 19.8795 15.1807 20 14.0964C20 13.0121 20 12.6506 20 10C20 7.3494 20 6.98795 20 5.90362C20 4.81928 19.759 4.09639 19.5181 3.49398C19.2771 2.89157 18.9157 2.28916 18.3133 1.68675C17.7108 1.08434 17.2289 0.843374 16.506 0.481928C15.9036 0.240965 15.1807 0.120482 14.0964 0C13.0121 0 12.7711 0 10 0Z"
fill="currentColor" />
<path
d="M10 4.81928C7.10843 4.81928 4.81928 7.10843 4.81928 10C4.81928 12.8916 7.10843 15.1807 10 15.1807C12.8916 15.1807 15.1807 12.8916 15.1807 10C15.1807 7.10843 12.8916 4.81928 10 4.81928ZM10 13.3735C8.19277 13.3735 6.62651 11.9277 6.62651 10C6.62651 8.19277 8.07229 6.62651 10 6.62651C11.8072 6.62651 13.3735 8.07229 13.3735 10C13.3735 11.8072 11.8072 13.3735 10 13.3735Z"
fill="currentColor" />
<path
d="M15.3012 5.90362C15.9666 5.90362 16.506 5.3642 16.506 4.6988C16.506 4.03339 15.9666 3.49398 15.3012 3.49398C14.6358 3.49398 14.0964 4.03339 14.0964 4.6988C14.0964 5.3642 14.6358 5.90362 15.3012 5.90362Z"
fill="currentColor" />
</symbol>
<symbol id="i-telegram" viewBox="0 0 20 17">
<path
d="M1.3749 7.31846C6.74359 4.91938 10.3236 3.33777 12.1148 2.57361C17.2292 0.391776 18.2919 0.0127698 18.9846 0.00012133C19.1369 -0.00249777 19.4776 0.0362266 19.6982 0.219862C19.8845 0.37492 19.9358 0.584381 19.9603 0.731393C19.9848 0.878405 20.0154 1.2133 19.9911 1.47498C19.714 4.46174 18.5147 11.7098 17.9046 15.055C17.6465 16.4705 17.1382 16.9451 16.6461 16.9916C15.5766 17.0925 14.7645 16.2667 13.7287 15.5702C12.1078 14.4805 11.1921 13.8021 9.61879 12.7387C7.80053 11.5097 8.97923 10.8343 10.0154 9.73042C10.2866 9.44153 14.9987 5.04555 15.0899 4.64677C15.1013 4.59689 15.1119 4.41098 15.0042 4.31282C14.8965 4.21465 14.7376 4.24822 14.6229 4.27492C14.4604 4.31276 11.871 6.06814 6.85486 9.54107C6.11988 10.0587 5.45416 10.3109 4.8577 10.2977C4.20015 10.2831 2.93528 9.91637 1.99498 9.60288C0.84166 9.21836 -0.0749729 9.01506 0.00484519 8.36203C0.0464194 8.0219 0.503103 7.67404 1.3749 7.31846Z"
fill="currentColor" />
</symbol>
<symbol id="i-facebook" viewBox="0 0 20 20">
<path
d="M20 10C20 4.5 15.5 0 10 0C4.5 0 0 4.5 0 10C0 15 3.625 19.125 8.375 19.875V12.875H5.875V10H8.375V7.75C8.375 5.25 9.875 3.875 12.125 3.875C13.25 3.875 14.375 4.125 14.375 4.125V6.625H13.125C11.875 6.625 11.5 7.375 11.5 8.125V10H14.25L13.75 12.875H11.375V20C16.375 19.25 20 15 20 10Z"
fill="currentColor" />
</symbol>
<symbol id="i-thumb" viewBox="0 0 16 16">
<path d="M13.9834 8.12362L13.2444 7.99582L12.7741 10.7157L13.5131 10.8435L14.2521 10.9713L14.7225 8.25143L13.9834 8.12362ZM8.82998 14.6668V13.9168H5.7309V14.6668V15.4168H8.82998V14.6668ZM4.62518 13.6515L5.37239 13.5869L4.83095 7.32515L4.08374 7.38976L3.33653 7.45437L3.87797 13.7162L4.62518 13.6515ZM13.5131 10.8435L12.7741 10.7157C12.458 12.5431 10.8059 13.9168 8.82998 13.9168V14.6668V15.4168C11.4958 15.4168 13.805 13.5564 14.2521 10.9713L13.5131 10.8435ZM9.32997 3.48111L8.58984 3.35984L8.14805 6.05622L8.88818 6.17748L9.62832 6.29875L10.0701 3.60238L9.32997 3.48111ZM4.46543 6.45182L4.95502 7.01998L5.91418 6.19345L5.42459 5.62529L4.93499 5.05714L3.97584 5.88367L4.46543 6.45182ZM7.01204 3.18932L7.73801 3.37764L8.05515 2.15507L7.32917 1.96676L6.6032 1.77844L6.28606 3.00101L7.01204 3.18932ZM9.43579 6.82296V7.57296H12.8899V6.82296V6.07296H9.43579V6.82296ZM2.64773 14.314L3.39494 14.2494L2.74721 6.75835L2 6.82296L1.25279 6.88757L1.90052 14.3786L2.64773 14.314ZM2 14.342H2.75V6.82296H2H1.25V14.342H2ZM13.9834 8.12362L14.7225 8.25143C14.9191 7.1146 14.0448 6.07296 12.8899 6.07296V6.82296V7.57296C13.1122 7.57296 13.2828 7.774 13.2444 7.99582L13.9834 8.12362ZM2.32447 14.6668V13.9168C2.56029 13.9168 2.75 14.108 2.75 14.342H2H1.25C1.25 14.9348 1.73025 15.4168 2.32447 15.4168V14.6668Z" fill="currentColor" />
</symbol>
<symbol id="i-chat" viewBox="0 0 16 16" fill="none">
<path d="M8.00033 14.6668C11.6822 14.6668 14.667 11.6821 14.667 8.00016C14.667 4.31826 11.6822 1.3335 8.00033 1.3335C4.31843 1.3335 1.33366 4.31826 1.33366 8.00016C1.33366 9.06662 1.58407 10.0746 2.0293 10.9685C2.14762 11.206 2.187 11.4775 2.11841 11.7339L1.72133 13.2179C1.54896 13.8622 2.13834 14.4515 2.78256 14.2792L4.26658 13.8821C4.52295 13.8135 4.79446 13.8529 5.03201 13.9712C5.9259 14.4164 6.93387 14.6668 8.00033 14.6668Z" stroke="currentColor" stroke-width="1.5" />
<path d="M5.33301 7H10.6663M5.33301 9.3335H8.99967" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-mail" viewBox="0 0 16 16" fill="none">
<path d="M1.33301 7.99984C1.33301 5.48568 1.33301 4.2286 2.11406 3.44755C2.8951 2.6665 4.15218 2.6665 6.66634 2.6665H9.33301C11.8472 2.6665 13.1042 2.6665 13.8853 3.44755C14.6663 4.2286 14.6663 5.48568 14.6663 7.99984C14.6663 10.514 14.6663 11.7711 13.8853 12.5521C13.1042 13.3332 11.8472 13.3332 9.33301 13.3332H6.66634C4.15218 13.3332 2.8951 13.3332 2.11406 12.5521C1.33301 11.7711 1.33301 10.514 1.33301 7.99984Z" stroke="currentColor" stroke-width="1.5" />
<path d="M4 5.3335L5.43926 6.53288C6.66369 7.55324 7.2759 8.06341 8 8.06341C8.7241 8.06341 9.33631 7.55324 10.5607 6.53288L12 5.3335" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-tip" viewBox="0 0 16 16" fill="none">
<path d="M10.6 3.3l2.1 2.06M3.08 10.2l2.75 2.75M2 13.5l3-3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
<path d="M7.8 1.36c-.6.13-.9.9-1.8 2.96l-.45 1.26c-.16.42-.2.53-.44.86l-.8.6 6.55 6.55.6-.8c.2-.2.36-.4.53-.86l.6-1.5c1.4-.55 2.1-.83 2.1-1.4 0-.6-.5-1.1-1.5-2.4-.7-.9-1.9-2.1-2.5-2.7-.6-.6-1.3-1-2.3-.6Z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round" />
</symbol>
</svg>
<!-- ============ header ============ -->
<header class="site-header" id="siteHeader">
<div class="container header__inner">
<div class="header__left">
<a class="header__logo" href="index.html" aria-label="Hop On Hop Off — home">
<svg class="logo" viewBox="0 0 91 40" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Logo">
<g clip-path="url(#clip0_117_3713)">
<path
d="M70.0559 6.63419C69.9035 7.36616 69.76 8.05456 69.6194 8.74587C69.2766 10.4306 68.9338 12.1153 68.6027 13.8C68.5471 14.0759 68.424 14.195 68.1311 14.1892C67.217 14.1776 66.3029 14.1863 65.3888 14.1863C65.0216 14.1863 64.8752 14.0023 64.9494 13.6344C65.2892 11.9381 65.632 10.2418 65.9719 8.54545C66.5021 5.90221 67.0324 3.26188 67.551 0.618649C67.6037 0.348516 67.7209 0.229425 67.9934 0.252662C68.8371 0.316565 69.678 0.235234 70.5217 0.243948C70.9289 0.249757 71.175 0.365944 71.3625 0.758072C72.4407 3.01499 73.551 5.25738 74.6526 7.50268C74.7053 7.61306 74.7288 7.74667 74.8929 7.83671C74.9749 7.44749 75.0569 7.0786 75.1302 6.70971C75.5286 4.72873 75.9212 2.74776 76.3196 0.763881C76.4192 0.272995 76.4397 0.243948 76.9349 0.255567C77.8343 0.272995 78.7366 0.272995 79.6361 0.264281C80.1195 0.258471 80.1458 0.316565 80.0521 0.769691C79.1527 5.11505 78.2474 9.45751 77.3567 13.8058C77.2923 14.1166 77.1575 14.2037 76.8645 14.2008C75.9856 14.1892 75.1067 14.1863 74.2278 14.2008C73.926 14.2066 73.759 14.0904 73.6331 13.8261C72.5374 11.5663 71.4299 9.30937 70.3254 7.05246C70.261 6.92465 70.2229 6.77361 70.0559 6.6429V6.63419Z"
fill="white"></path>
<path
d="M25.5852 14.4942C24.0706 14.5029 22.6584 14.1834 21.4426 13.2249C20.218 12.2605 19.5764 10.9825 19.4299 9.45462C19.0314 5.2661 22.1252 0.682561 27.2552 0.0783925C28.6204 -0.0842682 29.9739 -0.0232704 31.2659 0.502472C33.2464 1.30706 34.3363 2.79715 34.5853 4.8885C35.0658 8.90564 31.887 13.8435 26.7776 14.4303C26.3792 14.4768 25.9837 14.4855 25.5852 14.4942ZM30.6068 6.2014C30.6068 6.05036 30.6155 5.89932 30.6068 5.74828C30.5247 4.54866 29.7015 3.59012 28.5589 3.35484C27.5452 3.14571 26.5843 3.3258 25.7317 3.87478C23.9358 5.03664 23.2473 6.75619 23.4289 8.81559C23.5461 10.1575 24.425 11.0202 25.7288 11.2148C26.5901 11.3426 27.4192 11.1771 28.1546 10.7152C29.8157 9.66956 30.5247 8.09814 30.6068 6.20431V6.2014Z"
fill="white"></path>
<path
d="M31.9078 23.3679C31.8873 27.3705 29.107 30.9636 25.3159 31.8698C23.4995 32.3055 21.6889 32.3346 19.9428 31.5706C18.1176 30.7719 17.0717 29.3544 16.8314 27.4083C16.348 23.455 18.7855 19.6035 22.5766 18.2383C24.188 17.6573 25.8374 17.4831 27.5161 17.8607C30.3316 18.4939 31.9224 20.5039 31.9078 23.3679ZM27.9321 23.9343C27.9321 23.7716 27.9439 23.609 27.9321 23.4463C27.8208 22.0695 26.9184 21.111 25.6001 20.9745C24.8383 20.896 24.1118 21.0296 23.4145 21.3521C21.3139 22.328 20.3412 25.2675 20.9008 27.0858C21.1908 28.0299 21.8266 28.6398 22.8051 28.8461C23.7895 29.0523 24.7329 28.8838 25.5708 28.3552C27.1909 27.3327 27.8384 25.7671 27.9321 23.9314V23.9343Z"
fill="white"></path>
<path
d="M58.5507 0.0115716C60.0009 -0.00876093 61.2607 0.243944 62.3915 0.964298C63.83 1.88217 64.5859 3.21541 64.75 4.88558C65.122 8.63549 62.7783 12.7049 58.7792 14.0411C56.9569 14.651 55.1024 14.7324 53.2713 14.0556C51.1766 13.28 49.7937 11.3862 49.7557 9.16704C49.6912 5.3358 51.4051 2.53572 54.8592 0.807447C55.9549 0.261372 57.2733 0.00866699 58.5536 0.00866699L58.5507 0.0115716ZM60.8417 6.23044C60.8417 6.09101 60.8505 5.95159 60.8417 5.81217C60.7685 4.66773 60.08 3.72082 59.0985 3.42454C58.2079 3.15441 57.3378 3.22993 56.494 3.60172C54.5282 4.46731 53.4178 6.79103 53.7371 8.93177C53.9305 10.2243 54.7508 11.0144 56.0048 11.2119C56.6903 11.3194 57.37 11.2293 57.9911 10.9244C59.9482 9.96582 60.6952 8.27241 60.8388 6.22753L60.8417 6.23044Z"
fill="white"></path>
<path
d="M52.5947 32.1313C51.2353 32.1488 50.0048 31.9077 48.8915 31.2367C47.4149 30.3479 46.6444 28.9943 46.4364 27.3299C45.9969 23.8647 48.1122 20.0044 51.5898 18.4795C53.8046 17.5093 56.0869 17.2973 58.3721 18.2819C60.1328 19.043 61.1231 20.4285 61.3604 22.2904C61.6885 24.8552 60.9238 27.1266 59.2861 29.125C57.7012 31.0595 55.0293 32.201 52.5976 32.1313H52.5947ZM53.1718 28.9043C54.0126 28.9362 54.8095 28.669 55.4804 28.1229C57.0683 26.8332 57.707 25.1456 57.4463 23.1414C57.2969 21.9883 56.4414 21.1488 55.3076 20.9891C54.3378 20.8526 53.4003 21.0094 52.5859 21.5729C50.9716 22.6912 50.3036 24.2888 50.33 26.1971C50.3534 27.8383 51.4726 28.9014 53.1689 28.9014L53.1718 28.9043Z"
fill="white"></path>
<path
d="M11.6694 5.54499C12.3843 5.54499 13.0991 5.52466 13.814 5.55371C14.189 5.56823 14.3149 5.4259 14.3794 5.07444C14.6607 3.60178 14.9741 2.13783 15.2642 0.668076C15.3169 0.392134 15.4429 0.261425 15.7271 0.261425C16.7788 0.261425 17.8306 0.25852 18.8824 0.255615C19.1431 0.255615 19.2222 0.365992 19.1666 0.630316C18.4488 4.06362 17.7369 7.49692 17.0279 10.9302C16.8286 11.8859 16.6265 12.8386 16.4449 13.7971C16.3921 14.076 16.2749 14.1921 15.982 14.1892C14.9624 14.1776 13.9429 14.1892 12.9233 14.1834C12.5395 14.1834 12.5014 14.1341 12.5806 13.7448C12.8794 12.278 13.1811 10.8111 13.4829 9.34428C13.5767 8.89115 13.5767 8.88534 13.1284 8.88534C11.6518 8.88534 10.1753 8.89115 8.7016 8.87663C8.37934 8.87663 8.25629 8.98701 8.19476 9.30071C7.90472 10.8169 7.58538 12.3274 7.28362 13.8436C7.23382 14.0934 7.11956 14.1951 6.85881 14.1921C5.82755 14.1834 4.79629 14.1834 3.76503 14.1921C3.46327 14.1921 3.38416 14.0934 3.44276 13.7942C3.95546 11.2672 4.45351 8.74011 4.95742 6.21016C5.32364 4.37732 5.69571 2.54448 6.05021 0.708741C6.1088 0.403753 6.22892 0.278852 6.55412 0.284662C7.59417 0.30209 8.63422 0.29628 9.6772 0.290471C9.93209 0.290471 10.0083 0.374706 9.95552 0.624506C9.6479 2.09136 9.35493 3.55821 9.04731 5.02506C8.94184 5.53337 8.94477 5.5508 9.48384 5.55371C10.2104 5.55371 10.937 5.55371 11.6636 5.55371L11.6694 5.54499Z"
fill="white"></path>
<path
d="M8.30004 26.537C7.55003 26.537 6.80002 26.5486 6.05002 26.5311C5.76876 26.5253 5.66036 26.6328 5.60763 26.8971C5.31173 28.425 4.99825 29.9499 4.70528 31.4778C4.65254 31.7479 4.53535 31.8438 4.25996 31.8409C3.24042 31.8292 2.22087 31.8263 1.20426 31.8409C0.879063 31.8467 0.799961 31.7479 0.864414 31.4342C1.50895 28.2246 2.1447 25.012 2.78338 21.8024C3.0119 20.6521 3.24921 19.5048 3.46893 18.3516C3.51874 18.0815 3.64179 17.9856 3.91425 17.9915C4.93379 18.0031 5.95334 18.006 6.96995 17.9915C7.29515 17.9856 7.37132 18.0931 7.30687 18.4039C6.99925 19.8708 6.7092 21.3376 6.4133 22.8074C6.35666 23.0901 6.47287 23.2324 6.76194 23.2344C8.23852 23.2344 9.71509 23.2256 11.1887 23.2431C11.5315 23.246 11.6546 23.1298 11.7161 22.8074C12.0003 21.3492 12.3167 19.8969 12.6009 18.4388C12.6683 18.0989 12.8118 17.9856 13.1604 17.9944C14.1565 18.0176 15.1527 18.0118 16.1458 17.9944C16.4593 17.9886 16.5618 18.067 16.4974 18.3923C15.7152 22.1916 14.9417 25.9909 14.1653 29.7902C14.0481 30.3595 13.928 30.9259 13.8226 31.4981C13.7757 31.745 13.6614 31.8496 13.3978 31.8467C12.3665 31.835 11.3352 31.835 10.3069 31.8467C9.96998 31.8496 9.92018 31.7218 9.98463 31.4226C10.2952 29.9441 10.5852 28.4656 10.8841 26.9843C10.9719 26.5428 10.9778 26.5428 10.512 26.5428C9.77369 26.5428 9.0354 26.5428 8.29711 26.5428L8.30004 26.537Z"
fill="white"></path>
<path
d="M41.409 0.252687C42.3202 0.26721 43.536 0.223641 44.7548 0.287543C45.3817 0.319494 45.9882 0.426966 46.5683 0.659339C48.247 1.33031 48.7509 2.55608 48.7451 4.05198C48.7451 4.96404 48.5107 5.84124 48.1093 6.67197C47.1366 8.67909 45.4755 9.7451 43.3251 10.1547C42.1766 10.3754 41.0135 10.2912 39.8563 10.2854C39.4666 10.2854 39.3319 10.4045 39.2674 10.7733C39.0858 11.7784 38.8543 12.7747 38.6639 13.7768C38.6053 14.0905 38.4647 14.1979 38.1453 14.1921C37.1609 14.1776 36.1766 14.1776 35.1951 14.1921C34.8787 14.195 34.782 14.105 34.8494 13.7826C35.7342 9.4372 36.616 5.09184 37.4774 0.743574C37.5535 0.363064 37.7264 0.243973 38.0838 0.246878C39.0916 0.255592 40.0995 0.249782 41.412 0.249782L41.409 0.252687ZM42.1883 3.47395C41.8251 3.47395 41.4618 3.48557 41.1014 3.47104C40.87 3.46233 40.7674 3.54657 40.7206 3.77313C40.5213 4.78685 40.3133 5.79767 40.0995 6.80559C40.0497 7.03796 40.1082 7.128 40.3514 7.1251C41.0428 7.11639 41.7342 7.14253 42.4227 7.11639C43.7001 7.0641 44.4354 6.47446 44.6991 5.34164C44.9657 4.18849 44.4413 3.51461 43.243 3.47976C42.8915 3.46814 42.5399 3.47976 42.1913 3.47976L42.1883 3.47395Z"
fill="white"></path>
<path
d="M38.2882 27.9951C37.8546 27.9951 37.421 28.0038 36.9874 27.9922C36.7442 27.9864 36.6387 28.0793 36.5918 28.3233C36.3956 29.3486 36.1641 30.3682 35.9737 31.3964C35.9122 31.7392 35.7715 31.8554 35.42 31.8467C34.459 31.8234 33.4981 31.8408 32.54 31.8379C32.0947 31.8379 32.0772 31.8147 32.165 31.379C32.7305 28.5789 33.2988 25.7817 33.8643 22.9816C34.1778 21.4335 34.4971 19.8882 34.7989 18.34C34.8487 18.0844 34.9571 17.9915 35.2178 17.9944C37.4913 18.0031 39.7618 17.9769 42.0353 18.0147C43.1105 18.0321 44.1124 18.3458 44.9269 19.101C45.7062 19.8243 45.9435 20.7625 45.9289 21.7617C45.9025 23.4464 45.299 24.922 44.089 26.1129C42.9845 27.1992 41.6163 27.7598 40.0811 27.9399C39.4864 28.0096 38.8887 27.9922 38.2911 27.9951H38.2882ZM38.7833 24.7825C39.088 24.7825 39.3927 24.7883 39.6974 24.7825C40.9396 24.7593 41.6573 24.1871 41.9415 22.9904C42.2023 21.8982 41.6778 21.204 40.5499 21.1779C39.8233 21.1604 39.0968 21.1779 38.3731 21.1691C38.1475 21.1662 38.0362 21.2359 37.9923 21.4654C37.793 22.4791 37.585 23.49 37.3682 24.5008C37.3243 24.7099 37.3946 24.7825 37.5909 24.7825C37.9893 24.7825 38.3878 24.7825 38.7862 24.7825H38.7833Z"
fill="white"></path>
<path
d="M69.259 17.9973C70.7707 17.9973 72.2825 17.9973 73.7913 17.9973C74.2395 17.9973 74.2483 18.0147 74.1546 18.4562C73.9905 19.2288 73.8206 20.0015 73.677 20.777C73.6213 21.0733 73.4866 21.1779 73.1819 21.175C71.4006 21.1633 69.6193 21.1779 67.841 21.1633C67.507 21.1604 67.3547 21.265 67.299 21.5903C67.1994 22.1625 67.0734 22.729 66.9387 23.2954C66.8713 23.58 66.9562 23.6555 67.2463 23.6526C68.8869 23.641 70.5276 23.6468 72.1653 23.6468C72.637 23.6468 72.6545 23.6701 72.5666 24.1174C72.4172 24.8581 72.2532 25.5958 72.1213 26.3365C72.0569 26.6909 71.9192 26.839 71.5237 26.8332C69.9065 26.81 68.2893 26.8332 66.675 26.8187C66.3498 26.8158 66.2267 26.9291 66.1681 27.2341C65.9015 28.6254 65.6056 30.0109 65.342 31.4023C65.2804 31.7218 65.1632 31.8525 64.8175 31.8467C63.8566 31.8263 62.8956 31.8321 61.9347 31.8409C61.6212 31.8438 61.5275 31.7566 61.5948 31.4313C62.3449 27.7569 63.0802 24.0796 63.8214 20.4023C63.9591 19.7197 64.1056 19.0371 64.2316 18.3516C64.2785 18.096 64.3693 17.9827 64.6623 17.9857C66.1974 18.0031 67.7326 17.9944 69.2648 17.9944L69.259 17.9973Z"
fill="white"></path>
<path
d="M80.8548 17.9943C82.3783 17.9943 83.9017 18.0001 85.4252 17.9885C85.7181 17.9885 85.7972 18.067 85.7357 18.3516C85.5541 19.1562 85.3812 19.9637 85.2318 20.7741C85.1761 21.0762 85.0472 21.1778 84.7425 21.1749C82.9613 21.1633 81.18 21.1807 79.3987 21.1633C79.0442 21.1604 78.9007 21.2708 78.8479 21.6164C78.763 22.177 78.6458 22.7376 78.5081 23.2895C78.4319 23.5916 78.5345 23.6497 78.8128 23.6497C80.4534 23.641 82.0941 23.6468 83.7347 23.6497C84.2064 23.6497 84.2122 23.6642 84.1156 24.1261C83.9574 24.8871 83.7933 25.6481 83.6556 26.4149C83.5999 26.7199 83.4769 26.839 83.1488 26.8361C81.5198 26.8216 79.8909 26.8361 78.262 26.8245C77.9339 26.8245 77.7874 26.9058 77.7229 27.2457C77.4622 28.6254 77.1575 29.9993 76.8938 31.379C76.8264 31.7333 76.677 31.8583 76.3137 31.8495C75.3645 31.8263 74.4153 31.835 73.466 31.8437C73.1731 31.8437 73.0735 31.7711 73.1379 31.4545C73.9524 27.4722 74.7522 23.487 75.5579 19.5019C75.634 19.1271 75.7366 18.7554 75.7835 18.3748C75.8245 18.0495 75.9944 17.9943 76.2815 17.9972C77.805 18.006 79.3284 18.003 80.8519 18.003V17.9972L80.8548 17.9943Z"
fill="white"></path>
<path
d="M69.751 31.7769C70.4014 31.8728 70.999 31.9744 71.5967 32.0412C75.7891 32.5176 79.8409 31.9889 83.7287 30.3391C84.8713 29.854 85.9611 29.2644 87.0158 28.6108C87.2824 28.4453 87.3996 28.2797 87.3088 27.9602C87.2209 27.6494 87.1828 27.3241 87.1242 27.0046C87.1037 26.8826 87.01 26.7286 87.1242 26.6444C87.2385 26.5601 87.3644 26.6879 87.4699 26.7548C88.4397 27.3444 89.4065 27.9311 90.3703 28.5295C91.1643 29.0233 91.1614 29.0262 90.5989 29.7843C89.9045 30.7196 89.216 31.6607 88.5217 32.5931C88.4572 32.6802 88.4162 32.8371 88.2756 32.7993C88.1555 32.7674 88.1936 32.6222 88.1701 32.5263C88.0969 32.1865 88.0266 31.8437 87.965 31.501C87.9211 31.2541 87.8127 31.2076 87.5783 31.3034C85.4953 32.1458 83.3332 32.6919 81.1066 32.991C77.3595 33.4994 73.6797 33.2496 70.0938 31.9977C69.9883 31.9599 69.8652 31.9483 69.751 31.7798V31.7769Z"
fill="white"></path>
<path
d="M65.8896 15.0316C66.2324 15.0083 66.54 15.1274 66.8535 15.171C72.5343 15.9756 77.8634 15.081 82.7443 11.973C83.0432 11.7813 83.1252 11.5925 83.0314 11.2642C82.9435 10.9534 82.8996 10.6281 82.8439 10.3086C82.8293 10.2244 82.7648 10.114 82.8644 10.053C82.9582 9.99781 83.0432 10.085 83.1193 10.1314C84.1096 10.7327 85.094 11.3369 86.0813 11.9381C86.2893 12.0659 86.4973 12.1995 86.7082 12.3244C86.8811 12.4261 86.8899 12.5423 86.7698 12.6933C85.9026 13.8058 85.0412 14.9212 84.174 16.0337C84.1272 16.0947 84.0861 16.1905 83.9865 16.1586C83.8898 16.1295 83.9016 16.0279 83.8869 15.9524C83.8107 15.5893 83.7346 15.2262 83.6672 14.8602C83.6262 14.6365 83.5676 14.5378 83.301 14.6453C81.3029 15.444 79.2316 15.9698 77.0988 16.2544C75.1065 16.5188 73.1114 16.5449 71.1104 16.3271C69.4375 16.1441 67.8057 15.8013 66.2207 15.2407C66.1064 15.2 65.9629 15.203 65.8896 15.0345V15.0316Z"
fill="white"></path>
<path
d="M67.8024 37.6762C68.1276 37.1302 68.4997 36.6073 68.7663 36.0351C69.0592 35.4048 69.4577 35.0766 70.1725 35.2218C70.2165 35.2305 70.2663 35.2218 70.3132 35.2218C70.7175 35.2276 70.7468 35.2567 70.6764 35.643C70.4743 36.7264 70.2663 37.8098 70.0612 38.8933C70.0143 39.1315 69.9674 39.3726 69.9294 39.6136C69.8942 39.8315 69.7829 39.9215 69.5514 39.9302C68.7047 39.9593 68.7047 39.9651 68.8659 39.1344C68.986 38.5099 69.1061 37.8854 69.1559 37.2289C68.9567 37.5717 68.7604 37.9173 68.5612 38.2601C68.3122 38.6929 68.0573 39.1257 67.817 39.5643C67.7057 39.7647 67.5768 39.8954 67.3219 39.8634C67.0612 39.8286 67.067 39.6224 67.0319 39.4481C66.8766 38.6987 66.7242 37.9464 66.5133 37.1883C66.3961 37.8128 66.2789 38.4373 66.1617 39.0647C66.15 39.1228 66.1442 39.1808 66.1354 39.236C66.0035 39.9361 66.0035 39.9215 65.2682 39.9273C64.9371 39.9302 64.8668 39.8199 64.9283 39.5149C65.1568 38.3879 65.3678 37.258 65.5875 36.1281C65.6139 35.9915 65.6402 35.855 65.6695 35.7185C65.7379 35.3835 65.9381 35.216 66.2701 35.216C66.9303 35.216 67.32 35.5336 67.4391 36.1687C67.5329 36.6596 67.6325 37.1476 67.7291 37.6356C67.7555 37.6472 67.7819 37.6559 67.8082 37.6675L67.8024 37.6762Z"
fill="white"></path>
<path
d="M58.6563 37.9842C58.6681 36.3082 59.8868 35.1115 61.548 35.1521C62.5499 35.1754 63.2999 35.7941 63.4406 36.7787C63.6691 38.3763 62.4562 40.1656 60.423 39.9884C59.3126 39.8925 58.6475 39.1199 58.6563 37.9871V37.9842ZM59.8165 37.8099C59.8048 38.2543 59.8985 38.6551 60.3556 38.8498C60.8155 39.0444 61.2609 38.9747 61.6388 38.658C62.1368 38.2398 62.3478 37.685 62.2628 37.0431C62.1749 36.3605 61.6505 36.0264 60.9737 36.2007C60.297 36.375 59.8282 37.0256 59.8136 37.8099H59.8165Z"
fill="white"></path>
<path
d="M34.8758 39.9274C34.4305 39.9274 33.9852 39.9245 33.5399 39.9274C33.3143 39.9303 33.2176 39.8606 33.2645 39.6166C33.5311 38.2369 33.7889 36.8572 34.0438 35.4775C34.0789 35.2945 34.1727 35.219 34.3543 35.2219C35.2684 35.2219 36.1825 35.2219 37.0936 35.2219C37.3133 35.2219 37.3924 35.3119 37.3397 35.524C37.3221 35.5908 37.3192 35.6605 37.3075 35.7302C37.245 36.0633 37.0428 36.2298 36.701 36.2298C36.2674 36.2298 35.8338 36.2269 35.4002 36.2298C35.1043 36.2298 34.8143 36.6684 34.9198 36.9443C34.9666 37.0634 35.0721 37.0315 35.16 37.0315C35.6522 37.0344 36.1444 37.0489 36.6366 37.0315C36.9559 37.0199 37.0292 37.1477 36.9559 37.4265C36.9296 37.5282 36.9061 37.6298 36.8944 37.7344C36.871 37.9639 36.745 38.051 36.5165 38.0452C36.036 38.0365 35.5555 38.0394 35.075 38.0452C34.7528 38.0452 34.4334 38.5506 34.5682 38.8382C34.6209 38.9515 34.7264 38.9166 34.8143 38.9195C35.3416 38.9224 35.869 38.9311 36.3963 38.9195C36.6483 38.9137 36.745 39.0037 36.6835 39.2477C36.6747 39.2826 36.6747 39.3174 36.6688 39.3523C36.6024 39.7415 36.3661 39.9361 35.9598 39.9361C35.5965 39.9361 35.2332 39.9361 34.87 39.9361L34.8758 39.9274Z"
fill="white"></path>
<path
d="M78.8237 38.0422C77.1361 38.0422 75.4516 38.0422 73.764 38.0422C73.2806 38.0422 73.2689 38.0277 73.3539 37.5804C73.4281 37.1776 73.6732 36.9762 74.0892 36.9762C77.4145 36.9762 80.7397 36.9762 84.0649 36.9762C84.5776 36.9762 84.5835 36.9849 84.4809 37.4874C84.4067 37.8553 84.1831 38.0393 83.81 38.0393C82.146 38.0393 80.4848 38.0393 78.8207 38.0393L78.8237 38.0422Z"
fill="white"></path>
<path
d="M29.0368 36.9792C29.4616 36.5377 29.904 36.1078 30.3083 35.6489C30.5954 35.3236 30.9147 35.158 31.3512 35.2248C31.5739 35.2597 31.9167 35.1115 31.9928 35.3061C32.0661 35.4891 31.735 35.6489 31.5768 35.8086C31.1374 36.2589 30.695 36.7062 30.2321 37.1332C30.0299 37.3191 30.0182 37.473 30.1501 37.7025C30.5075 38.3299 30.8356 38.9689 31.1872 39.5992C31.3219 39.8403 31.2721 39.9332 30.9909 39.9245C29.8161 39.8984 30.1266 40.1017 29.6051 39.0967C29.4997 38.8905 29.3854 38.6842 29.3004 38.4693C29.1774 38.1643 29.0485 38.2224 28.8522 38.4112C28.6178 38.6378 28.6178 38.9369 28.5621 39.2129C28.4039 39.9942 28.6002 39.9216 27.6129 39.9245C27.358 39.9245 27.2906 39.8229 27.3405 39.5789C27.5543 38.4867 27.7565 37.3917 27.9616 36.2966C27.985 36.1717 28.0055 36.0439 28.0289 35.919C28.1637 35.2016 28.3248 35.0999 29.069 35.2219C29.3092 35.2626 29.2623 35.4136 29.2389 35.5588C29.1569 36.0207 29.069 36.4825 28.9811 36.9444C29.0016 36.956 29.0192 36.9647 29.0397 36.9763L29.0368 36.9792Z"
fill="white"></path>
<path
d="M45.7943 39.9971C45.267 39.9738 44.7133 39.8664 44.2445 39.4859C44.0424 39.3203 43.9955 39.1605 44.1918 38.9659C44.2093 38.9485 44.2211 38.9311 44.2386 38.9136C44.3881 38.751 44.5082 38.5157 44.6928 38.4431C44.9008 38.3589 45.0092 38.6609 45.1937 38.7539C45.5951 38.9543 46.0023 39.0618 46.4447 38.9107C46.6234 38.8497 46.7582 38.7365 46.767 38.5418C46.7758 38.3443 46.6264 38.2543 46.4652 38.2049C46.143 38.1032 45.809 38.0306 45.4896 37.9202C44.6049 37.6124 44.3383 36.8571 44.8129 36.0526C45.2025 35.3961 46.0609 35.0446 46.9604 35.1753C47.3588 35.2334 47.7309 35.3612 48.0619 35.5965C48.2377 35.7214 48.3051 35.8434 48.1322 36.0177C48.0824 36.0671 48.0443 36.1281 48.0004 36.1804C47.7719 36.4515 47.5024 36.5125 47.1918 36.3634C46.89 36.2181 46.5766 36.1339 46.2396 36.1775C46.017 36.2065 45.8119 36.3024 45.7826 36.5405C45.7504 36.7845 45.9818 36.8281 46.1547 36.8833C46.4096 36.9675 46.6762 37.0227 46.9311 37.1069C47.4115 37.2667 47.8715 37.47 47.9389 38.0481C48.0151 38.7219 47.7924 39.2883 47.1977 39.6659C46.7904 39.9245 46.3305 40 45.7973 40.0029L45.7943 39.9971Z"
fill="white"></path>
<path
d="M5.07682 38.0422C3.51821 38.0422 1.96253 38.0422 0.403916 38.0422C-0.0384717 38.0422 -0.0443311 38.0335 0.0435605 37.6094C0.131452 37.1873 0.398057 36.9762 0.843374 36.9762C3.84341 36.9762 6.84051 36.9762 9.84054 36.9762C10.2175 36.9762 10.3708 37.1553 10.3005 37.5136C10.2302 37.8718 10.0124 38.047 9.64718 38.0393C8.12373 38.0393 6.60027 38.0393 5.07975 38.0393L5.07682 38.0422Z"
fill="white"></path>
<path
d="M52.6826 37.9812C52.6914 36.0613 54.5401 34.6757 56.2422 35.2712C56.6524 35.4135 56.9307 35.6953 57.1387 36.0613C57.25 36.2559 57.209 36.3895 56.9922 36.4679C56.9043 36.4999 56.8135 36.5318 56.7373 36.5812C56.4385 36.7729 56.2159 36.7584 55.9815 36.4447C55.7412 36.1194 55.3574 36.1048 54.9883 36.2152C54.1797 36.4505 53.6436 37.4526 53.8867 38.2543C54.1182 39.0182 55.0821 39.2041 55.7149 38.6145C55.8174 38.5186 55.8789 38.292 56.0518 38.3618C56.3067 38.4663 56.5381 38.6348 56.7696 38.7887C56.837 38.8352 56.7842 38.9165 56.7432 38.9746C56.2627 39.6253 55.6153 39.9767 54.8008 39.9942C54.0274 40.0116 53.374 39.7734 52.9551 39.0763C52.7412 38.7248 52.668 38.3443 52.6855 37.9812H52.6826Z"
fill="white"></path>
<path
d="M21.4606 37.8941C21.4635 36.2966 22.7731 35.0563 24.4636 35.1579C25.1052 35.1957 25.5945 35.4978 25.9197 36.0555C26.0368 36.2559 26.0427 36.4011 25.782 36.4737C25.6823 36.5028 25.5798 36.5435 25.489 36.5928C25.2165 36.7497 25.0232 36.7729 24.7976 36.4592C24.5632 36.131 24.156 36.1019 23.7692 36.2094C22.902 36.4476 22.363 37.5368 22.697 38.3705C22.9665 39.0473 23.9245 39.1751 24.4958 38.6116C24.5954 38.5128 24.6511 38.2979 24.8415 38.3734C25.0993 38.478 25.3513 38.6145 25.5534 38.8091C25.6238 38.8788 25.5359 38.9572 25.4919 39.024C24.8298 40 23.2331 40.3108 22.2546 39.6427C21.6745 39.2477 21.446 38.6726 21.4606 37.8912V37.8941Z"
fill="white"></path>
<path
d="M14.983 35.2219C15.4986 35.2219 16.0113 35.2277 16.527 35.2219C16.776 35.219 16.8756 35.3119 16.8053 35.5588C16.7907 35.614 16.7877 35.6721 16.776 35.7302C16.7115 36.0632 16.5114 36.2298 16.1754 36.2298C15.4137 36.2298 15.4108 36.2298 15.2672 36.9763C15.1119 37.7954 14.9596 38.6174 14.8102 39.4394C14.7223 39.9216 14.7193 39.9245 14.2301 39.9274C13.7887 39.9274 13.61 39.7086 13.6939 39.271C13.8639 38.3821 14.025 37.4933 14.2066 36.6074C14.2652 36.3198 14.2066 36.1949 13.8873 36.2269C13.6676 36.2472 13.442 36.2298 13.2223 36.2269C13.0435 36.2269 12.9644 36.1397 13.0025 35.9597C13.0084 35.9364 13.0113 35.9132 13.0142 35.8899C13.0728 35.4426 13.3297 35.2199 13.7848 35.2219C13.9605 35.2219 14.1363 35.2219 14.3121 35.2219C14.5348 35.2219 14.7574 35.2219 14.9801 35.2219H14.983Z"
fill="white"></path>
<path
d="M41.2414 35.2219C41.7219 35.2219 42.2024 35.2393 42.6799 35.2161C43.0198 35.1987 43.0959 35.3352 43.011 35.6256C43.0051 35.6489 43.0022 35.6721 42.9993 35.6953C42.9309 36.0517 42.7151 36.2298 42.3518 36.2298C41.4524 36.2298 41.6457 36.1659 41.4875 36.9502C41.3117 37.8245 41.1447 38.7017 40.9953 39.5818C40.9514 39.8403 40.8488 39.9361 40.5852 39.9332C39.633 39.9158 39.759 40.0204 39.9201 39.1432C40.0783 38.2892 40.2424 37.4352 40.4211 36.5813C40.4768 36.3082 40.383 36.2124 40.1193 36.2327C40.049 36.2385 39.9787 36.2327 39.9084 36.2327C39.1203 36.2327 39.1994 36.3169 39.3313 35.5065C39.3664 35.2916 39.4895 35.2219 39.6975 35.2248C40.2131 35.2306 40.7258 35.2248 41.2414 35.2248V35.2219Z"
fill="white"></path>
<path
d="M18.5449 39.9216C18.4511 39.9216 18.3574 39.9216 18.2636 39.9216C18.0644 39.9216 17.9911 39.8374 18.0292 39.637C18.29 38.2689 18.5507 36.9008 18.8027 35.5327C18.8466 35.2887 18.9814 35.219 19.2158 35.2161C20.0214 35.2016 20.0097 35.1928 19.8574 35.9626C19.6347 37.1012 19.4296 38.2427 19.2128 39.3814C19.1103 39.9245 19.1074 39.9216 18.5419 39.9187L18.5449 39.9216Z"
fill="white"></path>
<path
d="M50.9005 39.2506C50.9005 39.6514 50.59 39.9797 50.212 39.9826C49.8839 39.9855 49.629 39.7357 49.6349 39.4133C49.6437 39.0095 49.9864 38.6493 50.3526 38.6522C50.6661 38.6522 50.9005 38.9108 50.9005 39.2506Z"
fill="white"></path>
</g>
<defs>
<clipPath id="clip0_117_3713">
<rect width="91" height="40" fill="white"></rect>
</clipPath>
</defs>
</svg>
</a>
<nav class="nav" id="primaryNav" aria-label="Primary">
<ul class="nav__list">
<li><a class="nav__link" href="index.html">Home</a></li>
<li class="nav__item--has-menu">
<button class="nav__link nav__toggle" type="button" aria-expanded="false" aria-controls="toursMenu">
<span>Tours</span>
<svg class="icon icon--chevron" aria-hidden="true">
<use href="#i-chevron" />
</svg>
</button>
<ul class="nav__submenu" id="toursMenu">
<li><a href="tours.html">All tours</a></li>
<li><a href="tours.html">London</a></li>
<li><a href="tours.html">Nashville</a></li>
<li><a href="tours.html">Sydney</a></li>
<li><a href="tours.html">San Diego</a></li>
<li><a href="tours.html">Paris</a></li>
</ul>
</li>
<li><a class="nav__link" href="blog.html" aria-current="page">Weblog</a></li>
<li><a class="nav__link" href="faq.html">FAQ&rsquo;s</a></li>
<li><a class="nav__link" href="contact.html">Contact us</a></li>
<li><a class="nav__link" href="about.html">About us</a></li>
</ul>
</nav>
</div>
<div class="header__actions">
<button class="icon-btn" type="button" aria-label="Search">
<svg class="icon icon--24" aria-hidden="true">
<use href="#i-search" />
</svg>
</button>
<button class="icon-btn" type="button" aria-label="Account">
<svg class="icon icon--24" aria-hidden="true">
<use href="#i-user" />
</svg>
</button>
<a class="btn btn--accent header__cta" href="tours.html">
<span>Book now</span>
<svg class="icon" aria-hidden="true">
<use href="#i-arrow-right" />
</svg>
</a>
<button class="burger" id="burger" type="button" aria-label="Open menu" aria-expanded="false"
aria-controls="primaryNav">
<span></span><span></span><span></span>
</button>
</div>
</div>
</header>
<main id="main">
<!-- ============ hero ============ -->
<section class="hero hero--post">
<div class="hero__media">
<img class="hero__img" src="assets/blog-hero.png" alt="" fetchpriority="high" />
</div>
<a class="ring-badge ring-badge--scroll" href="#post" aria-label="Scroll to the article">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<defs>
<path id="ringPathScroll" fill="none" d="M50,50 m-39,0 a39,39 0 1,1 78,0 a39,39 0 1,1 -78,0" />
</defs>
<text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">SCROLL DOWN &#183; SCROLL DOWN &#183; </textPath>
</text>
</svg>
<span class="ring-badge__dot">
<svg class="icon" aria-hidden="true">
<use href="#i-mouse" />
</svg>
</span>
</a>
</section>
<!-- ============ article ============ -->
<article class="section post" id="post">
<div class="container">
<div class="post__inner">
<header class="tour-head post__head">
<h1 class="post__title">Finding the best tour might be a little challange!</h1>
<div class="tmeta">
<span class="tmeta__item">
<svg class="icon icon--12 tmeta__star" aria-hidden="true">
<use href="#i-star" />
</svg>
<b>4.8</b><i>/5</i>
</span>
<span class="tmeta__rule" aria-hidden="true"></span>
<span class="tmeta__item">
<svg class="icon tmeta__icon" aria-hidden="true">
<use href="#i-location" />
</svg>
London
</span>
<span class="tmeta__rule" aria-hidden="true"></span>
<span class="tmeta__item">
<svg class="icon tmeta__icon" aria-hidden="true">
<use href="#i-person" />
</svg>
from Mr. Bill
</span>
</div>
</header>
<div class="post__body">
<section class="tour__block">
<h2 class="tour__ct">Intro</h2>
<p class="tour__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
<p class="tour__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
</section>
<aside class="tip">
<svg class="icon tip__icon" aria-hidden="true">
<use href="#i-tip" />
</svg>
<div class="tip__text">
<span class="tip__k">Tip</span>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt</p>
</div>
</aside>
<section class="tour__block">
<h2 class="tour__ct">Part one</h2>
<p class="tour__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
<p class="tour__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
</section>
<img class="post__img" src="assets/tour-paris.png" alt="" loading="lazy" />
<section class="tour__block">
<h2 class="tour__ct">Part Two</h2>
<p class="tour__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
<p class="tour__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
</section>
<div class="post__pair">
<img class="post__img" src="assets/tour-sydney.png" alt="" loading="lazy" />
<img class="post__img" src="assets/tour-san-diego.png" alt="" loading="lazy" />
</div>
<section class="tour__block">
<h2 class="tour__ct">Last Words</h2>
<p class="tour__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
<p class="tour__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
</section>
<hr class="post__rule" />
<div class="share">
<h2 class="share__title">Share with your friends!</h2>
<div class="share__btns">
<a class="share__btn" data-share="telegram" href="https://t.me/share/url" target="_blank" rel="noopener" aria-label="Share on Telegram"><svg class="icon icon--20" aria-hidden="true"><use href="#i-telegram" /></svg></a>
<a class="share__btn" data-share="facebook" href="https://www.facebook.com/sharer/sharer.php" target="_blank" rel="noopener" aria-label="Share on Facebook"><svg class="icon icon--20" aria-hidden="true"><use href="#i-facebook" /></svg></a>
<a class="share__btn" href="https://www.instagram.com/" target="_blank" rel="noopener" aria-label="Instagram"><svg class="icon icon--20" aria-hidden="true"><use href="#i-instagram" /></svg></a>
<a class="share__btn" data-share="whatsapp" href="https://wa.me/" target="_blank" rel="noopener" aria-label="Share on WhatsApp"><svg class="icon icon--20" aria-hidden="true"><use href="#i-whatsapp" /></svg></a>
<button class="share__btn share__btn--copy" type="button" data-copy-link>Copy page link</button>
</div>
</div>
</div>
<!-- ============ reviews ============ -->
<section class="reviews" id="reviews" aria-labelledby="reviewsTitle">
<h2 class="post__h2" id="reviewsTitle">Review&rsquo;s</h2>
<form class="rform" id="reviewForm" novalidate>
<p class="rform__title">
<svg class="icon" aria-hidden="true"><use href="#i-chat" /></svg>
Submit review
</p>
<div class="rform__row">
<div class="field">
<span class="field__label">
<svg class="icon" aria-hidden="true"><use href="#i-person" /></svg>
<label for="r-name">Full Name</label>
</span>
<input class="rinput" id="r-name" name="name" type="text" placeholder="Enter full name" autocomplete="name" required />
</div>
<div class="field">
<span class="field__label">
<svg class="icon" aria-hidden="true"><use href="#i-mail" /></svg>
<label for="r-email">Email</label>
</span>
<input class="rinput" id="r-email" name="email" type="email" placeholder="Enter email" autocomplete="email" required />
</div>
</div>
<div class="field">
<span class="field__label">
<svg class="icon" aria-hidden="true"><use href="#i-chat" /></svg>
<label for="r-text">Your Review</label>
</span>
<textarea class="rinput rinput--area" id="r-text" name="review" rows="4" placeholder="Type your review here ..." required></textarea>
</div>
<p class="rform__status" id="reviewStatus" role="status"></p>
<button class="btn btn--dark rform__submit" type="submit">Submit</button>
</form>
<div class="reviews__list is-collapsed" id="reviewList">
<article class="rcard rcard--tint">
<header class="rcard__head">
<img class="rcard__avatar" src="assets/blog-reviewer.png" alt="" loading="lazy" />
<div class="rcard__who">
<b>Malika Favre</b>
<span>Paris Tour</span>
</div>
<div class="rcard__votes">
<button class="vote" type="button" aria-label="Helpful" aria-pressed="false"><svg class="icon" aria-hidden="true"><use href="#i-thumb" /></svg></button>
<button class="vote vote--down" type="button" aria-label="Not helpful" aria-pressed="false"><svg class="icon" aria-hidden="true"><use href="#i-thumb" /></svg></button>
</div>
</header>
<p class="rcard__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
</article>
<div class="replies">
<span class="replies__k">Replies</span>
<article class="rcard rcard--reply">
<header class="rcard__head">
<img class="rcard__avatar" src="assets/blog-reviewer.png" alt="" loading="lazy" />
<div class="rcard__who">
<b>Malika Favre</b>
<span>Admin</span>
</div>
<div class="rcard__votes">
<button class="vote" type="button" aria-label="Helpful" aria-pressed="false"><svg class="icon" aria-hidden="true"><use href="#i-thumb" /></svg></button>
<button class="vote vote--down" type="button" aria-label="Not helpful" aria-pressed="false"><svg class="icon" aria-hidden="true"><use href="#i-thumb" /></svg></button>
</div>
</header>
<p class="rcard__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
</article>
<article class="rcard rcard--tint rcard--reply">
<header class="rcard__head">
<img class="rcard__avatar" src="assets/blog-reviewer.png" alt="" loading="lazy" />
<div class="rcard__who">
<b>Malika Favre</b>
<span>Paris Tour</span>
</div>
<div class="rcard__votes">
<button class="vote" type="button" aria-label="Helpful" aria-pressed="false"><svg class="icon" aria-hidden="true"><use href="#i-thumb" /></svg></button>
<button class="vote vote--down" type="button" aria-label="Not helpful" aria-pressed="false"><svg class="icon" aria-hidden="true"><use href="#i-thumb" /></svg></button>
</div>
</header>
<p class="rcard__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
</article>
<a class="replies__all" href="#reviews">See all 19 replies</a>
</div>
<article class="rcard rcard--tint">
<header class="rcard__head">
<img class="rcard__avatar" src="assets/blog-reviewer.png" alt="" loading="lazy" />
<div class="rcard__who">
<b>Malika Favre</b>
<span>Paris Tour</span>
</div>
<div class="rcard__votes">
<button class="vote" type="button" aria-label="Helpful" aria-pressed="false"><svg class="icon" aria-hidden="true"><use href="#i-thumb" /></svg></button>
<button class="vote vote--down" type="button" aria-label="Not helpful" aria-pressed="false"><svg class="icon" aria-hidden="true"><use href="#i-thumb" /></svg></button>
</div>
</header>
<p class="rcard__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
</article>
<article class="rcard rcard--tint">
<header class="rcard__head">
<img class="rcard__avatar" src="assets/blog-reviewer.png" alt="" loading="lazy" />
<div class="rcard__who">
<b>Malika Favre</b>
<span>Paris Tour</span>
</div>
<div class="rcard__votes">
<button class="vote" type="button" aria-label="Helpful" aria-pressed="false"><svg class="icon" aria-hidden="true"><use href="#i-thumb" /></svg></button>
<button class="vote vote--down" type="button" aria-label="Not helpful" aria-pressed="false"><svg class="icon" aria-hidden="true"><use href="#i-thumb" /></svg></button>
</div>
</header>
<p class="rcard__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
</article>
</div>
<button class="reviews__more" type="button" id="reviewMore" aria-expanded="false" aria-controls="reviewList">
<span>Show all reviews</span>
<svg class="icon" aria-hidden="true"><use href="#i-chevron" /></svg>
</button>
</section>
<!-- ============ related ============ -->
<section class="related" aria-labelledby="relatedTitle">
<div class="related__head">
<h2 class="post__h2" id="relatedTitle">Related Articles</h2>
<a class="btn btn--ghost btn--wide related__all" href="blog.html">
<span>See all</span>
<svg class="icon" aria-hidden="true"><use href="#i-arrow-ne" /></svg>
</a>
</div>
<ul class="tgrid tgrid--related">
<li class="acard is-active">
<div class="acard__media">
<img class="acard__img" src="assets/tour-sydney.png" alt="" loading="lazy" />
<span class="chip chip--glass acard__time">3 Days ago</span>
<div class="acard__overlay">
<h3 class="acard__title">Finding the best tour might be a little challange!</h3>
<a class="ring-badge ring-badge--card ring-badge--accent" href="blog-post.html" aria-label="Read the article">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">READ MORE &#183; READ MORE &#183; </textPath>
</text>
</svg>
<span class="ring-badge__dot">
<svg class="icon" aria-hidden="true">
<use href="#i-arrow-ne" />
</svg>
</span>
</a>
</div>
</div>
<p class="acard__excerpt">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem&hellip;</p>
</li>
<li class="acard">
<div class="acard__media">
<img class="acard__img" src="assets/tour-san-diego.png" alt="" loading="lazy" />
<span class="chip chip--glass acard__time">2026/12/04</span>
<div class="acard__overlay">
<h3 class="acard__title">Finding the best tour might be a little challange!</h3>
<a class="ring-badge ring-badge--card" href="blog-post.html" aria-label="Read the article">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">READ MORE &#183; READ MORE &#183; </textPath>
</text>
</svg>
<span class="ring-badge__dot">
<svg class="icon" aria-hidden="true">
<use href="#i-arrow-ne" />
</svg>
</span>
</a>
</div>
</div>
<p class="acard__excerpt">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem&hellip;</p>
</li>
<li class="acard">
<div class="acard__media">
<img class="acard__img" src="assets/tour-london.png" alt="" loading="lazy" />
<span class="chip chip--glass acard__time">2026/12/04</span>
<div class="acard__overlay">
<h3 class="acard__title">Finding the best tour might be a little challange!</h3>
<a class="ring-badge ring-badge--card" href="blog-post.html" aria-label="Read the article">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">READ MORE &#183; READ MORE &#183; </textPath>
</text>
</svg>
<span class="ring-badge__dot">
<svg class="icon" aria-hidden="true">
<use href="#i-arrow-ne" />
</svg>
</span>
</a>
</div>
</div>
<p class="acard__excerpt">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem&hellip;</p>
</li>
<li class="acard">
<div class="acard__media">
<img class="acard__img" src="assets/tour-paris.png" alt="" loading="lazy" />
<span class="chip chip--glass acard__time">3 hours ago</span>
<div class="acard__overlay">
<h3 class="acard__title">Finding the best tour might be a little challange!</h3>
<a class="ring-badge ring-badge--card" href="blog-post.html" aria-label="Read the article">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">READ MORE &#183; READ MORE &#183; </textPath>
</text>
</svg>
<span class="ring-badge__dot">
<svg class="icon" aria-hidden="true">
<use href="#i-arrow-ne" />
</svg>
</span>
</a>
</div>
</div>
<p class="acard__excerpt">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem&hellip;</p>
</li>
</ul>
</section>
</div>
</div>
</article>
</main>
<!-- ============ footer ============ -->
<footer class="footer" id="footer">
<a class="ring-badge ring-badge--top" href="#main" aria-label="Back to top">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">BACK TO TOP &#183; </textPath>
</text>
</svg>
<span class="ring-badge__dot">
<svg class="icon" aria-hidden="true">
<use href="#i-arrow-up" />
</svg>
</span>
</a>
<div class="container footer__inner">
<div class="footer__brand">
<span class="footer__logo">
<svg class="logo" viewBox="0 0 91 40" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Logo">
<g clip-path="url(#clip0_117_3713)">
<path
d="M70.0559 6.63419C69.9035 7.36616 69.76 8.05456 69.6194 8.74587C69.2766 10.4306 68.9338 12.1153 68.6027 13.8C68.5471 14.0759 68.424 14.195 68.1311 14.1892C67.217 14.1776 66.3029 14.1863 65.3888 14.1863C65.0216 14.1863 64.8752 14.0023 64.9494 13.6344C65.2892 11.9381 65.632 10.2418 65.9719 8.54545C66.5021 5.90221 67.0324 3.26188 67.551 0.618649C67.6037 0.348516 67.7209 0.229425 67.9934 0.252662C68.8371 0.316565 69.678 0.235234 70.5217 0.243948C70.9289 0.249757 71.175 0.365944 71.3625 0.758072C72.4407 3.01499 73.551 5.25738 74.6526 7.50268C74.7053 7.61306 74.7288 7.74667 74.8929 7.83671C74.9749 7.44749 75.0569 7.0786 75.1302 6.70971C75.5286 4.72873 75.9212 2.74776 76.3196 0.763881C76.4192 0.272995 76.4397 0.243948 76.9349 0.255567C77.8343 0.272995 78.7366 0.272995 79.6361 0.264281C80.1195 0.258471 80.1458 0.316565 80.0521 0.769691C79.1527 5.11505 78.2474 9.45751 77.3567 13.8058C77.2923 14.1166 77.1575 14.2037 76.8645 14.2008C75.9856 14.1892 75.1067 14.1863 74.2278 14.2008C73.926 14.2066 73.759 14.0904 73.6331 13.8261C72.5374 11.5663 71.4299 9.30937 70.3254 7.05246C70.261 6.92465 70.2229 6.77361 70.0559 6.6429V6.63419Z"
fill="white"></path>
<path
d="M25.5852 14.4942C24.0706 14.5029 22.6584 14.1834 21.4426 13.2249C20.218 12.2605 19.5764 10.9825 19.4299 9.45462C19.0314 5.2661 22.1252 0.682561 27.2552 0.0783925C28.6204 -0.0842682 29.9739 -0.0232704 31.2659 0.502472C33.2464 1.30706 34.3363 2.79715 34.5853 4.8885C35.0658 8.90564 31.887 13.8435 26.7776 14.4303C26.3792 14.4768 25.9837 14.4855 25.5852 14.4942ZM30.6068 6.2014C30.6068 6.05036 30.6155 5.89932 30.6068 5.74828C30.5247 4.54866 29.7015 3.59012 28.5589 3.35484C27.5452 3.14571 26.5843 3.3258 25.7317 3.87478C23.9358 5.03664 23.2473 6.75619 23.4289 8.81559C23.5461 10.1575 24.425 11.0202 25.7288 11.2148C26.5901 11.3426 27.4192 11.1771 28.1546 10.7152C29.8157 9.66956 30.5247 8.09814 30.6068 6.20431V6.2014Z"
fill="white"></path>
<path
d="M31.9078 23.3679C31.8873 27.3705 29.107 30.9636 25.3159 31.8698C23.4995 32.3055 21.6889 32.3346 19.9428 31.5706C18.1176 30.7719 17.0717 29.3544 16.8314 27.4083C16.348 23.455 18.7855 19.6035 22.5766 18.2383C24.188 17.6573 25.8374 17.4831 27.5161 17.8607C30.3316 18.4939 31.9224 20.5039 31.9078 23.3679ZM27.9321 23.9343C27.9321 23.7716 27.9439 23.609 27.9321 23.4463C27.8208 22.0695 26.9184 21.111 25.6001 20.9745C24.8383 20.896 24.1118 21.0296 23.4145 21.3521C21.3139 22.328 20.3412 25.2675 20.9008 27.0858C21.1908 28.0299 21.8266 28.6398 22.8051 28.8461C23.7895 29.0523 24.7329 28.8838 25.5708 28.3552C27.1909 27.3327 27.8384 25.7671 27.9321 23.9314V23.9343Z"
fill="white"></path>
<path
d="M58.5507 0.0115716C60.0009 -0.00876093 61.2607 0.243944 62.3915 0.964298C63.83 1.88217 64.5859 3.21541 64.75 4.88558C65.122 8.63549 62.7783 12.7049 58.7792 14.0411C56.9569 14.651 55.1024 14.7324 53.2713 14.0556C51.1766 13.28 49.7937 11.3862 49.7557 9.16704C49.6912 5.3358 51.4051 2.53572 54.8592 0.807447C55.9549 0.261372 57.2733 0.00866699 58.5536 0.00866699L58.5507 0.0115716ZM60.8417 6.23044C60.8417 6.09101 60.8505 5.95159 60.8417 5.81217C60.7685 4.66773 60.08 3.72082 59.0985 3.42454C58.2079 3.15441 57.3378 3.22993 56.494 3.60172C54.5282 4.46731 53.4178 6.79103 53.7371 8.93177C53.9305 10.2243 54.7508 11.0144 56.0048 11.2119C56.6903 11.3194 57.37 11.2293 57.9911 10.9244C59.9482 9.96582 60.6952 8.27241 60.8388 6.22753L60.8417 6.23044Z"
fill="white"></path>
<path
d="M52.5947 32.1313C51.2353 32.1488 50.0048 31.9077 48.8915 31.2367C47.4149 30.3479 46.6444 28.9943 46.4364 27.3299C45.9969 23.8647 48.1122 20.0044 51.5898 18.4795C53.8046 17.5093 56.0869 17.2973 58.3721 18.2819C60.1328 19.043 61.1231 20.4285 61.3604 22.2904C61.6885 24.8552 60.9238 27.1266 59.2861 29.125C57.7012 31.0595 55.0293 32.201 52.5976 32.1313H52.5947ZM53.1718 28.9043C54.0126 28.9362 54.8095 28.669 55.4804 28.1229C57.0683 26.8332 57.707 25.1456 57.4463 23.1414C57.2969 21.9883 56.4414 21.1488 55.3076 20.9891C54.3378 20.8526 53.4003 21.0094 52.5859 21.5729C50.9716 22.6912 50.3036 24.2888 50.33 26.1971C50.3534 27.8383 51.4726 28.9014 53.1689 28.9014L53.1718 28.9043Z"
fill="white"></path>
<path
d="M11.6694 5.54499C12.3843 5.54499 13.0991 5.52466 13.814 5.55371C14.189 5.56823 14.3149 5.4259 14.3794 5.07444C14.6607 3.60178 14.9741 2.13783 15.2642 0.668076C15.3169 0.392134 15.4429 0.261425 15.7271 0.261425C16.7788 0.261425 17.8306 0.25852 18.8824 0.255615C19.1431 0.255615 19.2222 0.365992 19.1666 0.630316C18.4488 4.06362 17.7369 7.49692 17.0279 10.9302C16.8286 11.8859 16.6265 12.8386 16.4449 13.7971C16.3921 14.076 16.2749 14.1921 15.982 14.1892C14.9624 14.1776 13.9429 14.1892 12.9233 14.1834C12.5395 14.1834 12.5014 14.1341 12.5806 13.7448C12.8794 12.278 13.1811 10.8111 13.4829 9.34428C13.5767 8.89115 13.5767 8.88534 13.1284 8.88534C11.6518 8.88534 10.1753 8.89115 8.7016 8.87663C8.37934 8.87663 8.25629 8.98701 8.19476 9.30071C7.90472 10.8169 7.58538 12.3274 7.28362 13.8436C7.23382 14.0934 7.11956 14.1951 6.85881 14.1921C5.82755 14.1834 4.79629 14.1834 3.76503 14.1921C3.46327 14.1921 3.38416 14.0934 3.44276 13.7942C3.95546 11.2672 4.45351 8.74011 4.95742 6.21016C5.32364 4.37732 5.69571 2.54448 6.05021 0.708741C6.1088 0.403753 6.22892 0.278852 6.55412 0.284662C7.59417 0.30209 8.63422 0.29628 9.6772 0.290471C9.93209 0.290471 10.0083 0.374706 9.95552 0.624506C9.6479 2.09136 9.35493 3.55821 9.04731 5.02506C8.94184 5.53337 8.94477 5.5508 9.48384 5.55371C10.2104 5.55371 10.937 5.55371 11.6636 5.55371L11.6694 5.54499Z"
fill="white"></path>
<path
d="M8.30004 26.537C7.55003 26.537 6.80002 26.5486 6.05002 26.5311C5.76876 26.5253 5.66036 26.6328 5.60763 26.8971C5.31173 28.425 4.99825 29.9499 4.70528 31.4778C4.65254 31.7479 4.53535 31.8438 4.25996 31.8409C3.24042 31.8292 2.22087 31.8263 1.20426 31.8409C0.879063 31.8467 0.799961 31.7479 0.864414 31.4342C1.50895 28.2246 2.1447 25.012 2.78338 21.8024C3.0119 20.6521 3.24921 19.5048 3.46893 18.3516C3.51874 18.0815 3.64179 17.9856 3.91425 17.9915C4.93379 18.0031 5.95334 18.006 6.96995 17.9915C7.29515 17.9856 7.37132 18.0931 7.30687 18.4039C6.99925 19.8708 6.7092 21.3376 6.4133 22.8074C6.35666 23.0901 6.47287 23.2324 6.76194 23.2344C8.23852 23.2344 9.71509 23.2256 11.1887 23.2431C11.5315 23.246 11.6546 23.1298 11.7161 22.8074C12.0003 21.3492 12.3167 19.8969 12.6009 18.4388C12.6683 18.0989 12.8118 17.9856 13.1604 17.9944C14.1565 18.0176 15.1527 18.0118 16.1458 17.9944C16.4593 17.9886 16.5618 18.067 16.4974 18.3923C15.7152 22.1916 14.9417 25.9909 14.1653 29.7902C14.0481 30.3595 13.928 30.9259 13.8226 31.4981C13.7757 31.745 13.6614 31.8496 13.3978 31.8467C12.3665 31.835 11.3352 31.835 10.3069 31.8467C9.96998 31.8496 9.92018 31.7218 9.98463 31.4226C10.2952 29.9441 10.5852 28.4656 10.8841 26.9843C10.9719 26.5428 10.9778 26.5428 10.512 26.5428C9.77369 26.5428 9.0354 26.5428 8.29711 26.5428L8.30004 26.537Z"
fill="white"></path>
<path
d="M41.409 0.252687C42.3202 0.26721 43.536 0.223641 44.7548 0.287543C45.3817 0.319494 45.9882 0.426966 46.5683 0.659339C48.247 1.33031 48.7509 2.55608 48.7451 4.05198C48.7451 4.96404 48.5107 5.84124 48.1093 6.67197C47.1366 8.67909 45.4755 9.7451 43.3251 10.1547C42.1766 10.3754 41.0135 10.2912 39.8563 10.2854C39.4666 10.2854 39.3319 10.4045 39.2674 10.7733C39.0858 11.7784 38.8543 12.7747 38.6639 13.7768C38.6053 14.0905 38.4647 14.1979 38.1453 14.1921C37.1609 14.1776 36.1766 14.1776 35.1951 14.1921C34.8787 14.195 34.782 14.105 34.8494 13.7826C35.7342 9.4372 36.616 5.09184 37.4774 0.743574C37.5535 0.363064 37.7264 0.243973 38.0838 0.246878C39.0916 0.255592 40.0995 0.249782 41.412 0.249782L41.409 0.252687ZM42.1883 3.47395C41.8251 3.47395 41.4618 3.48557 41.1014 3.47104C40.87 3.46233 40.7674 3.54657 40.7206 3.77313C40.5213 4.78685 40.3133 5.79767 40.0995 6.80559C40.0497 7.03796 40.1082 7.128 40.3514 7.1251C41.0428 7.11639 41.7342 7.14253 42.4227 7.11639C43.7001 7.0641 44.4354 6.47446 44.6991 5.34164C44.9657 4.18849 44.4413 3.51461 43.243 3.47976C42.8915 3.46814 42.5399 3.47976 42.1913 3.47976L42.1883 3.47395Z"
fill="white"></path>
<path
d="M38.2882 27.9951C37.8546 27.9951 37.421 28.0038 36.9874 27.9922C36.7442 27.9864 36.6387 28.0793 36.5918 28.3233C36.3956 29.3486 36.1641 30.3682 35.9737 31.3964C35.9122 31.7392 35.7715 31.8554 35.42 31.8467C34.459 31.8234 33.4981 31.8408 32.54 31.8379C32.0947 31.8379 32.0772 31.8147 32.165 31.379C32.7305 28.5789 33.2988 25.7817 33.8643 22.9816C34.1778 21.4335 34.4971 19.8882 34.7989 18.34C34.8487 18.0844 34.9571 17.9915 35.2178 17.9944C37.4913 18.0031 39.7618 17.9769 42.0353 18.0147C43.1105 18.0321 44.1124 18.3458 44.9269 19.101C45.7062 19.8243 45.9435 20.7625 45.9289 21.7617C45.9025 23.4464 45.299 24.922 44.089 26.1129C42.9845 27.1992 41.6163 27.7598 40.0811 27.9399C39.4864 28.0096 38.8887 27.9922 38.2911 27.9951H38.2882ZM38.7833 24.7825C39.088 24.7825 39.3927 24.7883 39.6974 24.7825C40.9396 24.7593 41.6573 24.1871 41.9415 22.9904C42.2023 21.8982 41.6778 21.204 40.5499 21.1779C39.8233 21.1604 39.0968 21.1779 38.3731 21.1691C38.1475 21.1662 38.0362 21.2359 37.9923 21.4654C37.793 22.4791 37.585 23.49 37.3682 24.5008C37.3243 24.7099 37.3946 24.7825 37.5909 24.7825C37.9893 24.7825 38.3878 24.7825 38.7862 24.7825H38.7833Z"
fill="white"></path>
<path
d="M69.259 17.9973C70.7707 17.9973 72.2825 17.9973 73.7913 17.9973C74.2395 17.9973 74.2483 18.0147 74.1546 18.4562C73.9905 19.2288 73.8206 20.0015 73.677 20.777C73.6213 21.0733 73.4866 21.1779 73.1819 21.175C71.4006 21.1633 69.6193 21.1779 67.841 21.1633C67.507 21.1604 67.3547 21.265 67.299 21.5903C67.1994 22.1625 67.0734 22.729 66.9387 23.2954C66.8713 23.58 66.9562 23.6555 67.2463 23.6526C68.8869 23.641 70.5276 23.6468 72.1653 23.6468C72.637 23.6468 72.6545 23.6701 72.5666 24.1174C72.4172 24.8581 72.2532 25.5958 72.1213 26.3365C72.0569 26.6909 71.9192 26.839 71.5237 26.8332C69.9065 26.81 68.2893 26.8332 66.675 26.8187C66.3498 26.8158 66.2267 26.9291 66.1681 27.2341C65.9015 28.6254 65.6056 30.0109 65.342 31.4023C65.2804 31.7218 65.1632 31.8525 64.8175 31.8467C63.8566 31.8263 62.8956 31.8321 61.9347 31.8409C61.6212 31.8438 61.5275 31.7566 61.5948 31.4313C62.3449 27.7569 63.0802 24.0796 63.8214 20.4023C63.9591 19.7197 64.1056 19.0371 64.2316 18.3516C64.2785 18.096 64.3693 17.9827 64.6623 17.9857C66.1974 18.0031 67.7326 17.9944 69.2648 17.9944L69.259 17.9973Z"
fill="white"></path>
<path
d="M80.8548 17.9943C82.3783 17.9943 83.9017 18.0001 85.4252 17.9885C85.7181 17.9885 85.7972 18.067 85.7357 18.3516C85.5541 19.1562 85.3812 19.9637 85.2318 20.7741C85.1761 21.0762 85.0472 21.1778 84.7425 21.1749C82.9613 21.1633 81.18 21.1807 79.3987 21.1633C79.0442 21.1604 78.9007 21.2708 78.8479 21.6164C78.763 22.177 78.6458 22.7376 78.5081 23.2895C78.4319 23.5916 78.5345 23.6497 78.8128 23.6497C80.4534 23.641 82.0941 23.6468 83.7347 23.6497C84.2064 23.6497 84.2122 23.6642 84.1156 24.1261C83.9574 24.8871 83.7933 25.6481 83.6556 26.4149C83.5999 26.7199 83.4769 26.839 83.1488 26.8361C81.5198 26.8216 79.8909 26.8361 78.262 26.8245C77.9339 26.8245 77.7874 26.9058 77.7229 27.2457C77.4622 28.6254 77.1575 29.9993 76.8938 31.379C76.8264 31.7333 76.677 31.8583 76.3137 31.8495C75.3645 31.8263 74.4153 31.835 73.466 31.8437C73.1731 31.8437 73.0735 31.7711 73.1379 31.4545C73.9524 27.4722 74.7522 23.487 75.5579 19.5019C75.634 19.1271 75.7366 18.7554 75.7835 18.3748C75.8245 18.0495 75.9944 17.9943 76.2815 17.9972C77.805 18.006 79.3284 18.003 80.8519 18.003V17.9972L80.8548 17.9943Z"
fill="white"></path>
<path
d="M69.751 31.7769C70.4014 31.8728 70.999 31.9744 71.5967 32.0412C75.7891 32.5176 79.8409 31.9889 83.7287 30.3391C84.8713 29.854 85.9611 29.2644 87.0158 28.6108C87.2824 28.4453 87.3996 28.2797 87.3088 27.9602C87.2209 27.6494 87.1828 27.3241 87.1242 27.0046C87.1037 26.8826 87.01 26.7286 87.1242 26.6444C87.2385 26.5601 87.3644 26.6879 87.4699 26.7548C88.4397 27.3444 89.4065 27.9311 90.3703 28.5295C91.1643 29.0233 91.1614 29.0262 90.5989 29.7843C89.9045 30.7196 89.216 31.6607 88.5217 32.5931C88.4572 32.6802 88.4162 32.8371 88.2756 32.7993C88.1555 32.7674 88.1936 32.6222 88.1701 32.5263C88.0969 32.1865 88.0266 31.8437 87.965 31.501C87.9211 31.2541 87.8127 31.2076 87.5783 31.3034C85.4953 32.1458 83.3332 32.6919 81.1066 32.991C77.3595 33.4994 73.6797 33.2496 70.0938 31.9977C69.9883 31.9599 69.8652 31.9483 69.751 31.7798V31.7769Z"
fill="white"></path>
<path
d="M65.8896 15.0316C66.2324 15.0083 66.54 15.1274 66.8535 15.171C72.5343 15.9756 77.8634 15.081 82.7443 11.973C83.0432 11.7813 83.1252 11.5925 83.0314 11.2642C82.9435 10.9534 82.8996 10.6281 82.8439 10.3086C82.8293 10.2244 82.7648 10.114 82.8644 10.053C82.9582 9.99781 83.0432 10.085 83.1193 10.1314C84.1096 10.7327 85.094 11.3369 86.0813 11.9381C86.2893 12.0659 86.4973 12.1995 86.7082 12.3244C86.8811 12.4261 86.8899 12.5423 86.7698 12.6933C85.9026 13.8058 85.0412 14.9212 84.174 16.0337C84.1272 16.0947 84.0861 16.1905 83.9865 16.1586C83.8898 16.1295 83.9016 16.0279 83.8869 15.9524C83.8107 15.5893 83.7346 15.2262 83.6672 14.8602C83.6262 14.6365 83.5676 14.5378 83.301 14.6453C81.3029 15.444 79.2316 15.9698 77.0988 16.2544C75.1065 16.5188 73.1114 16.5449 71.1104 16.3271C69.4375 16.1441 67.8057 15.8013 66.2207 15.2407C66.1064 15.2 65.9629 15.203 65.8896 15.0345V15.0316Z"
fill="white"></path>
<path
d="M67.8024 37.6762C68.1276 37.1302 68.4997 36.6073 68.7663 36.0351C69.0592 35.4048 69.4577 35.0766 70.1725 35.2218C70.2165 35.2305 70.2663 35.2218 70.3132 35.2218C70.7175 35.2276 70.7468 35.2567 70.6764 35.643C70.4743 36.7264 70.2663 37.8098 70.0612 38.8933C70.0143 39.1315 69.9674 39.3726 69.9294 39.6136C69.8942 39.8315 69.7829 39.9215 69.5514 39.9302C68.7047 39.9593 68.7047 39.9651 68.8659 39.1344C68.986 38.5099 69.1061 37.8854 69.1559 37.2289C68.9567 37.5717 68.7604 37.9173 68.5612 38.2601C68.3122 38.6929 68.0573 39.1257 67.817 39.5643C67.7057 39.7647 67.5768 39.8954 67.3219 39.8634C67.0612 39.8286 67.067 39.6224 67.0319 39.4481C66.8766 38.6987 66.7242 37.9464 66.5133 37.1883C66.3961 37.8128 66.2789 38.4373 66.1617 39.0647C66.15 39.1228 66.1442 39.1808 66.1354 39.236C66.0035 39.9361 66.0035 39.9215 65.2682 39.9273C64.9371 39.9302 64.8668 39.8199 64.9283 39.5149C65.1568 38.3879 65.3678 37.258 65.5875 36.1281C65.6139 35.9915 65.6402 35.855 65.6695 35.7185C65.7379 35.3835 65.9381 35.216 66.2701 35.216C66.9303 35.216 67.32 35.5336 67.4391 36.1687C67.5329 36.6596 67.6325 37.1476 67.7291 37.6356C67.7555 37.6472 67.7819 37.6559 67.8082 37.6675L67.8024 37.6762Z"
fill="white"></path>
<path
d="M58.6563 37.9842C58.6681 36.3082 59.8868 35.1115 61.548 35.1521C62.5499 35.1754 63.2999 35.7941 63.4406 36.7787C63.6691 38.3763 62.4562 40.1656 60.423 39.9884C59.3126 39.8925 58.6475 39.1199 58.6563 37.9871V37.9842ZM59.8165 37.8099C59.8048 38.2543 59.8985 38.6551 60.3556 38.8498C60.8155 39.0444 61.2609 38.9747 61.6388 38.658C62.1368 38.2398 62.3478 37.685 62.2628 37.0431C62.1749 36.3605 61.6505 36.0264 60.9737 36.2007C60.297 36.375 59.8282 37.0256 59.8136 37.8099H59.8165Z"
fill="white"></path>
<path
d="M34.8758 39.9274C34.4305 39.9274 33.9852 39.9245 33.5399 39.9274C33.3143 39.9303 33.2176 39.8606 33.2645 39.6166C33.5311 38.2369 33.7889 36.8572 34.0438 35.4775C34.0789 35.2945 34.1727 35.219 34.3543 35.2219C35.2684 35.2219 36.1825 35.2219 37.0936 35.2219C37.3133 35.2219 37.3924 35.3119 37.3397 35.524C37.3221 35.5908 37.3192 35.6605 37.3075 35.7302C37.245 36.0633 37.0428 36.2298 36.701 36.2298C36.2674 36.2298 35.8338 36.2269 35.4002 36.2298C35.1043 36.2298 34.8143 36.6684 34.9198 36.9443C34.9666 37.0634 35.0721 37.0315 35.16 37.0315C35.6522 37.0344 36.1444 37.0489 36.6366 37.0315C36.9559 37.0199 37.0292 37.1477 36.9559 37.4265C36.9296 37.5282 36.9061 37.6298 36.8944 37.7344C36.871 37.9639 36.745 38.051 36.5165 38.0452C36.036 38.0365 35.5555 38.0394 35.075 38.0452C34.7528 38.0452 34.4334 38.5506 34.5682 38.8382C34.6209 38.9515 34.7264 38.9166 34.8143 38.9195C35.3416 38.9224 35.869 38.9311 36.3963 38.9195C36.6483 38.9137 36.745 39.0037 36.6835 39.2477C36.6747 39.2826 36.6747 39.3174 36.6688 39.3523C36.6024 39.7415 36.3661 39.9361 35.9598 39.9361C35.5965 39.9361 35.2332 39.9361 34.87 39.9361L34.8758 39.9274Z"
fill="white"></path>
<path
d="M78.8237 38.0422C77.1361 38.0422 75.4516 38.0422 73.764 38.0422C73.2806 38.0422 73.2689 38.0277 73.3539 37.5804C73.4281 37.1776 73.6732 36.9762 74.0892 36.9762C77.4145 36.9762 80.7397 36.9762 84.0649 36.9762C84.5776 36.9762 84.5835 36.9849 84.4809 37.4874C84.4067 37.8553 84.1831 38.0393 83.81 38.0393C82.146 38.0393 80.4848 38.0393 78.8207 38.0393L78.8237 38.0422Z"
fill="white"></path>
<path
d="M29.0368 36.9792C29.4616 36.5377 29.904 36.1078 30.3083 35.6489C30.5954 35.3236 30.9147 35.158 31.3512 35.2248C31.5739 35.2597 31.9167 35.1115 31.9928 35.3061C32.0661 35.4891 31.735 35.6489 31.5768 35.8086C31.1374 36.2589 30.695 36.7062 30.2321 37.1332C30.0299 37.3191 30.0182 37.473 30.1501 37.7025C30.5075 38.3299 30.8356 38.9689 31.1872 39.5992C31.3219 39.8403 31.2721 39.9332 30.9909 39.9245C29.8161 39.8984 30.1266 40.1017 29.6051 39.0967C29.4997 38.8905 29.3854 38.6842 29.3004 38.4693C29.1774 38.1643 29.0485 38.2224 28.8522 38.4112C28.6178 38.6378 28.6178 38.9369 28.5621 39.2129C28.4039 39.9942 28.6002 39.9216 27.6129 39.9245C27.358 39.9245 27.2906 39.8229 27.3405 39.5789C27.5543 38.4867 27.7565 37.3917 27.9616 36.2966C27.985 36.1717 28.0055 36.0439 28.0289 35.919C28.1637 35.2016 28.3248 35.0999 29.069 35.2219C29.3092 35.2626 29.2623 35.4136 29.2389 35.5588C29.1569 36.0207 29.069 36.4825 28.9811 36.9444C29.0016 36.956 29.0192 36.9647 29.0397 36.9763L29.0368 36.9792Z"
fill="white"></path>
<path
d="M45.7943 39.9971C45.267 39.9738 44.7133 39.8664 44.2445 39.4859C44.0424 39.3203 43.9955 39.1605 44.1918 38.9659C44.2093 38.9485 44.2211 38.9311 44.2386 38.9136C44.3881 38.751 44.5082 38.5157 44.6928 38.4431C44.9008 38.3589 45.0092 38.6609 45.1937 38.7539C45.5951 38.9543 46.0023 39.0618 46.4447 38.9107C46.6234 38.8497 46.7582 38.7365 46.767 38.5418C46.7758 38.3443 46.6264 38.2543 46.4652 38.2049C46.143 38.1032 45.809 38.0306 45.4896 37.9202C44.6049 37.6124 44.3383 36.8571 44.8129 36.0526C45.2025 35.3961 46.0609 35.0446 46.9604 35.1753C47.3588 35.2334 47.7309 35.3612 48.0619 35.5965C48.2377 35.7214 48.3051 35.8434 48.1322 36.0177C48.0824 36.0671 48.0443 36.1281 48.0004 36.1804C47.7719 36.4515 47.5024 36.5125 47.1918 36.3634C46.89 36.2181 46.5766 36.1339 46.2396 36.1775C46.017 36.2065 45.8119 36.3024 45.7826 36.5405C45.7504 36.7845 45.9818 36.8281 46.1547 36.8833C46.4096 36.9675 46.6762 37.0227 46.9311 37.1069C47.4115 37.2667 47.8715 37.47 47.9389 38.0481C48.0151 38.7219 47.7924 39.2883 47.1977 39.6659C46.7904 39.9245 46.3305 40 45.7973 40.0029L45.7943 39.9971Z"
fill="white"></path>
<path
d="M5.07682 38.0422C3.51821 38.0422 1.96253 38.0422 0.403916 38.0422C-0.0384717 38.0422 -0.0443311 38.0335 0.0435605 37.6094C0.131452 37.1873 0.398057 36.9762 0.843374 36.9762C3.84341 36.9762 6.84051 36.9762 9.84054 36.9762C10.2175 36.9762 10.3708 37.1553 10.3005 37.5136C10.2302 37.8718 10.0124 38.047 9.64718 38.0393C8.12373 38.0393 6.60027 38.0393 5.07975 38.0393L5.07682 38.0422Z"
fill="white"></path>
<path
d="M52.6826 37.9812C52.6914 36.0613 54.5401 34.6757 56.2422 35.2712C56.6524 35.4135 56.9307 35.6953 57.1387 36.0613C57.25 36.2559 57.209 36.3895 56.9922 36.4679C56.9043 36.4999 56.8135 36.5318 56.7373 36.5812C56.4385 36.7729 56.2159 36.7584 55.9815 36.4447C55.7412 36.1194 55.3574 36.1048 54.9883 36.2152C54.1797 36.4505 53.6436 37.4526 53.8867 38.2543C54.1182 39.0182 55.0821 39.2041 55.7149 38.6145C55.8174 38.5186 55.8789 38.292 56.0518 38.3618C56.3067 38.4663 56.5381 38.6348 56.7696 38.7887C56.837 38.8352 56.7842 38.9165 56.7432 38.9746C56.2627 39.6253 55.6153 39.9767 54.8008 39.9942C54.0274 40.0116 53.374 39.7734 52.9551 39.0763C52.7412 38.7248 52.668 38.3443 52.6855 37.9812H52.6826Z"
fill="white"></path>
<path
d="M21.4606 37.8941C21.4635 36.2966 22.7731 35.0563 24.4636 35.1579C25.1052 35.1957 25.5945 35.4978 25.9197 36.0555C26.0368 36.2559 26.0427 36.4011 25.782 36.4737C25.6823 36.5028 25.5798 36.5435 25.489 36.5928C25.2165 36.7497 25.0232 36.7729 24.7976 36.4592C24.5632 36.131 24.156 36.1019 23.7692 36.2094C22.902 36.4476 22.363 37.5368 22.697 38.3705C22.9665 39.0473 23.9245 39.1751 24.4958 38.6116C24.5954 38.5128 24.6511 38.2979 24.8415 38.3734C25.0993 38.478 25.3513 38.6145 25.5534 38.8091C25.6238 38.8788 25.5359 38.9572 25.4919 39.024C24.8298 40 23.2331 40.3108 22.2546 39.6427C21.6745 39.2477 21.446 38.6726 21.4606 37.8912V37.8941Z"
fill="white"></path>
<path
d="M14.983 35.2219C15.4986 35.2219 16.0113 35.2277 16.527 35.2219C16.776 35.219 16.8756 35.3119 16.8053 35.5588C16.7907 35.614 16.7877 35.6721 16.776 35.7302C16.7115 36.0632 16.5114 36.2298 16.1754 36.2298C15.4137 36.2298 15.4108 36.2298 15.2672 36.9763C15.1119 37.7954 14.9596 38.6174 14.8102 39.4394C14.7223 39.9216 14.7193 39.9245 14.2301 39.9274C13.7887 39.9274 13.61 39.7086 13.6939 39.271C13.8639 38.3821 14.025 37.4933 14.2066 36.6074C14.2652 36.3198 14.2066 36.1949 13.8873 36.2269C13.6676 36.2472 13.442 36.2298 13.2223 36.2269C13.0435 36.2269 12.9644 36.1397 13.0025 35.9597C13.0084 35.9364 13.0113 35.9132 13.0142 35.8899C13.0728 35.4426 13.3297 35.2199 13.7848 35.2219C13.9605 35.2219 14.1363 35.2219 14.3121 35.2219C14.5348 35.2219 14.7574 35.2219 14.9801 35.2219H14.983Z"
fill="white"></path>
<path
d="M41.2414 35.2219C41.7219 35.2219 42.2024 35.2393 42.6799 35.2161C43.0198 35.1987 43.0959 35.3352 43.011 35.6256C43.0051 35.6489 43.0022 35.6721 42.9993 35.6953C42.9309 36.0517 42.7151 36.2298 42.3518 36.2298C41.4524 36.2298 41.6457 36.1659 41.4875 36.9502C41.3117 37.8245 41.1447 38.7017 40.9953 39.5818C40.9514 39.8403 40.8488 39.9361 40.5852 39.9332C39.633 39.9158 39.759 40.0204 39.9201 39.1432C40.0783 38.2892 40.2424 37.4352 40.4211 36.5813C40.4768 36.3082 40.383 36.2124 40.1193 36.2327C40.049 36.2385 39.9787 36.2327 39.9084 36.2327C39.1203 36.2327 39.1994 36.3169 39.3313 35.5065C39.3664 35.2916 39.4895 35.2219 39.6975 35.2248C40.2131 35.2306 40.7258 35.2248 41.2414 35.2248V35.2219Z"
fill="white"></path>
<path
d="M18.5449 39.9216C18.4511 39.9216 18.3574 39.9216 18.2636 39.9216C18.0644 39.9216 17.9911 39.8374 18.0292 39.637C18.29 38.2689 18.5507 36.9008 18.8027 35.5327C18.8466 35.2887 18.9814 35.219 19.2158 35.2161C20.0214 35.2016 20.0097 35.1928 19.8574 35.9626C19.6347 37.1012 19.4296 38.2427 19.2128 39.3814C19.1103 39.9245 19.1074 39.9216 18.5419 39.9187L18.5449 39.9216Z"
fill="white"></path>
<path
d="M50.9005 39.2506C50.9005 39.6514 50.59 39.9797 50.212 39.9826C49.8839 39.9855 49.629 39.7357 49.6349 39.4133C49.6437 39.0095 49.9864 38.6493 50.3526 38.6522C50.6661 38.6522 50.9005 38.9108 50.9005 39.2506Z"
fill="white"></path>
</g>
<defs>
<clipPath id="clip0_117_3713">
<rect width="91" height="40" fill="white"></rect>
</clipPath>
</defs>
</svg>
</span>
<p class="footer__about">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet.</p>
</div>
<nav class="footer__cols" aria-label="Footer">
<div class="footer__col">
<h2 class="footer__ct">Quick Access</h2>
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="tours.html">Tours</a></li>
<li><a href="blog.html">Weblog</a></li>
<li><a href="contact.html">Contact us</a></li>
<li><a href="about.html">About us</a></li>
</ul>
</div>
<div class="footer__col">
<h2 class="footer__ct">Tours</h2>
<ul>
<li><a href="tours.html">London</a></li>
<li><a href="tours.html">Nashville</a></li>
<li><a href="tours.html">Sydney</a></li>
<li><a href="tours.html">San Diego</a></li>
<li><a href="tours.html">Paris</a></li>
</ul>
</div>
<div class="footer__col">
<h2 class="footer__ct">User Account</h2>
<ul>
<li><a href="#">Sign in</a></li>
<li><a href="#">Forget Password</a></li>
<li><a href="#">Booking History</a></li>
<li><a href="#">Support</a></li>
<li><a href="#">Dashboard</a></li>
</ul>
</div>
</nav>
</div>
<div class="container footer__bar">
<p class="footer__copy">&copy; 2026 Hop on Hop Off. All rights reserved.</p>
<ul class="socials">
<li><a href="#" aria-label="WhatsApp"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-whatsapp" />
</svg></a></li>
<li><a href="#" aria-label="Instagram"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-instagram" />
</svg></a></li>
<li><a href="#" aria-label="Telegram"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-telegram" />
</svg></a></li>
<li><a href="#" aria-label="Facebook"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-facebook" />
</svg></a></li>
</ul>
</div>
<a class="support" href="#" aria-label="Support">
<svg class="ring-badge__ring support__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">SUPPORT &#183; SUPPORT &#183; SUPPORT &#183; </textPath>
</text>
</svg>
<span class="support__tab">
<svg class="icon icon--24" aria-hidden="true">
<use href="#i-headset" />
</svg>
</span>
</a>
</footer>
<script src="js/main.js"></script>
</body>
</html>

1462
new front/blog.html Normal file

File diff suppressed because it is too large Load Diff

628
new front/contact.html Normal file
View File

@@ -0,0 +1,628 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Hop On Hop Off &mdash; Contact us</title>
<meta name="description" content="Get in touch with Hop On Hop Off &mdash; phone, mail and a ticket form for any question." />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;700;800&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<a class="skip-link" href="#main">Skip to content</a>
<!-- ============ icon sprite ============ -->
<svg class="sprite" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg">
<symbol id="i-arrow-right" viewBox="0 0 16 16" fill="none">
<path d="M2.66699 8H13.3337M9.33366 12L13.3337 8L9.33366 4" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-left" viewBox="0 0 16 16" fill="none">
<path d="M13.333 8H2.66634M6.66634 12L2.66634 8L6.66634 4" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-ne" viewBox="0 0 16 16" fill="none">
<path d="M4 12L12 4M12 10V4H6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-up" viewBox="0 0 16 16" fill="none">
<path d="M8 13.3333L8 2.66659M12 6.66659L8 2.66659L4 6.66659" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-chevron" viewBox="0 0 16 16" fill="none">
<path d="M12.6663 6L7.99967 10L3.33301 6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
</symbol>
<symbol id="i-search" viewBox="0 0 24 24" fill="none">
<circle cx="11.5" cy="11.5" r="9.5" stroke="currentColor" stroke-width="1.5" />
<path d="M18.5 18.5L22 22" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-user" viewBox="0 0 24 24" fill="none">
<circle cx="12" cy="6" r="4" stroke="currentColor" stroke-width="1.5" />
<ellipse cx="12" cy="17" rx="7" ry="4" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-location" viewBox="0 0 16 16" fill="none">
<path
d="M2.66699 6.76224C2.66699 3.76396 5.05481 1.33337 8.00033 1.33337C10.9458 1.33337 13.3337 3.76396 13.3337 6.76224C13.3337 9.73702 11.6314 13.2083 8.97561 14.4497C8.3565 14.7391 7.64415 14.7391 7.02504 14.4497C4.36921 13.2083 2.66699 9.73702 2.66699 6.76224Z"
stroke="currentColor" stroke-width="1.5" />
<circle cx="8" cy="6.66663" r="2" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-calendar" viewBox="0 0 16 16" fill="none">
<path
d="M1.33301 7.99996C1.33301 5.4858 1.33301 4.22872 2.11406 3.44767C2.8951 2.66663 4.15218 2.66663 6.66634 2.66663H9.33301C11.8472 2.66663 13.1042 2.66663 13.8853 3.44767C14.6663 4.22872 14.6663 5.4858 14.6663 7.99996V9.33329C14.6663 11.8475 14.6663 13.1045 13.8853 13.8856C13.1042 14.6666 11.8472 14.6666 9.33301 14.6666H6.66634C4.15218 14.6666 2.8951 14.6666 2.11406 13.8856C1.33301 13.1045 1.33301 11.8475 1.33301 9.33329V7.99996Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M4.66699 2.66663V1.66663" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M11.333 2.66663V1.66663" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M1.66699 6H14.3337" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-seat" viewBox="0 0 16 16" fill="none">
<circle cx="5.99967" cy="4.00004" r="2.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M10 6C11.1046 6 12 5.10457 12 4C12 2.89543 11.1046 2 10 2" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" />
<ellipse cx="5.99967" cy="11.3333" rx="4.66667" ry="2.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M12 9.33337C13.1695 9.58984 14 10.2393 14 11C14 11.6863 13.3242 12.282 12.3333 12.5803"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-mouse" viewBox="0 0 16 16" fill="none">
<path
d="M3.33301 5.99998C3.33301 3.42265 5.42235 1.33331 7.99967 1.33331C10.577 1.33331 12.6663 3.42265 12.6663 5.99998V9.99998C12.6663 12.5773 10.577 14.6666 7.99967 14.6666C5.42235 14.6666 3.33301 12.5773 3.33301 9.99998V5.99998Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M7 5.66669C7 5.1144 7.44772 4.66669 8 4.66669C8.55228 4.66669 9 5.1144 9 5.66669V7.00002C9 7.5523 8.55228 8.00002 8 8.00002C7.44772 8.00002 7 7.5523 7 7.00002V5.66669Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M8 1.33331V4.66665" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-grid" viewBox="0 0 16 16" fill="none">
<path
d="M1.66699 4.33329C1.66699 3.07621 1.66699 2.44767 2.05752 2.05715C2.44804 1.66663 3.07658 1.66663 4.33366 1.66663C5.59074 1.66663 6.21928 1.66663 6.6098 2.05715C7.00033 2.44767 7.00033 3.07621 7.00033 4.33329C7.00033 5.59037 7.00033 6.21891 6.6098 6.60944C6.21928 6.99996 5.59074 6.99996 4.33366 6.99996C3.07658 6.99996 2.44804 6.99996 2.05752 6.60944C1.66699 6.21891 1.66699 5.59037 1.66699 4.33329Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M9 11.6667C9 10.4096 9 9.78105 9.39052 9.39052C9.78105 9 10.4096 9 11.6667 9C12.9237 9 13.5523 9 13.9428 9.39052C14.3333 9.78105 14.3333 10.4096 14.3333 11.6667C14.3333 12.9237 14.3333 13.5523 13.9428 13.9428C13.5523 14.3333 12.9237 14.3333 11.6667 14.3333C10.4096 14.3333 9.78105 14.3333 9.39052 13.9428C9 13.5523 9 12.9237 9 11.6667Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M1.66699 11.6667C1.66699 10.4096 1.66699 9.78105 2.05752 9.39052C2.44804 9 3.07658 9 4.33366 9C5.59074 9 6.21928 9 6.6098 9.39052C7.00033 9.78105 7.00033 10.4096 7.00033 11.6667C7.00033 12.9237 7.00033 13.5523 6.6098 13.9428C6.21928 14.3333 5.59074 14.3333 4.33366 14.3333C3.07658 14.3333 2.44804 14.3333 2.05752 13.9428C1.66699 13.5523 1.66699 12.9237 1.66699 11.6667Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M9 4.33329C9 3.07621 9 2.44767 9.39052 2.05715C9.78105 1.66663 10.4096 1.66663 11.6667 1.66663C12.9237 1.66663 13.5523 1.66663 13.9428 2.05715C14.3333 2.44767 14.3333 3.07621 14.3333 4.33329C14.3333 5.59037 14.3333 6.21891 13.9428 6.60944C13.5523 6.99996 12.9237 6.99996 11.6667 6.99996C10.4096 6.99996 9.78105 6.99996 9.39052 6.60944C9 6.21891 9 5.59037 9 4.33329Z"
stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-price" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="8.00004" r="6.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M8 4V12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M10 6.33335C10 5.41288 9.10457 4.66669 8 4.66669C6.89543 4.66669 6 5.41288 6 6.33335C6 7.25383 6.89543 8.00002 8 8.00002C9.10457 8.00002 10 8.74621 10 9.66669C10 10.5872 9.10457 11.3334 8 11.3334C6.89543 11.3334 6 10.5872 6 9.66669"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-duration" viewBox="0 0 16 16" fill="none">
<path
d="M1.33366 8.00004C1.33366 11.6819 4.31843 14.6667 8.00033 14.6667C11.6822 14.6667 14.667 11.6819 14.667 8.00004C14.667 4.31814 11.6822 1.33337 8.00033 1.33337"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M8 6V8.66667H10.6667" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
<circle cx="7.99967" cy="8.00004" r="6.66667" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-dasharray="0.5 3.5" />
</symbol>
<symbol id="i-sort" viewBox="0 0 16 16" fill="none">
<path d="M2.66699 11.3333H7.33366" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2.66699 8L7.33366 8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2.66699 4.66669L7.33366 4.66669" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M11.333 2.66665L11.333 13.3333M13.333 5.33331L11.333 2.66665L9.33301 5.33331M9.33301 10.6666L11.333 13.3333L13.333 10.6666"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-check" viewBox="0 0 16 16" fill="none">
<path d="M3.33301 8.33333L6.33301 11.3333L12.6663 5" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-info" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="7.99992" r="6.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M8 11.3333V7.33325" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<circle cx="8" cy="5.33333" r="0.666667" fill="currentColor" />
</symbol>
<symbol id="i-person" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="4.00004" r="2.66667" stroke="currentColor" stroke-width="1.5" />
<ellipse cx="7.99967" cy="11.3333" rx="4.66667" ry="2.66667" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-shield-check" viewBox="0 0 16 16" fill="none">
<path
d="M2 6.94448C2 4.81275 2 3.74689 2.25168 3.38831C2.50335 3.02973 3.50555 2.68668 5.50994 2.00057L5.89182 1.86985C6.93666 1.5122 7.45907 1.33337 8 1.33337C8.54093 1.33337 9.06335 1.5122 10.1082 1.86985L10.4901 2.00057C12.4945 2.68668 13.4966 3.02973 13.7483 3.38831C14 3.74689 14 4.81275 14 6.94448C14 7.26647 14 7.61565 14 7.99428C14 11.753 11.174 13.577 9.40096 14.3516C8.91999 14.5617 8.67951 14.6667 8 14.6667C7.32049 14.6667 7.08001 14.5617 6.59904 14.3516C4.82597 13.577 2 11.753 2 7.99428C2 7.61565 2 7.26647 2 6.94448Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M6.33301 8.26663L7.28539 9.33329L9.66634 6.66663" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-x" viewBox="0 0 16 16" fill="none">
<path d="M12.6663 3.33337L3.33301 12.6667M3.33301 3.33337L12.6663 12.6667" stroke="currentColor"
stroke-width="2" stroke-linecap="round" />
</symbol>
<symbol id="i-star" viewBox="0 0 12 12">
<path
d="M4.21205 2.06464C4.94362 0.701584 5.30941 0.0200537 5.87277 0.000515809C6.43613 -0.019022 6.82396 0.636371 7.59964 1.94716L7.80031 2.28628C8.02073 2.65876 8.13095 2.845 8.29997 2.96455C8.46899 3.08409 8.67769 3.12341 9.09509 3.20203L9.4751 3.27362C10.9439 3.55031 11.6784 3.68865 11.8616 4.23622C12.0448 4.78378 11.5555 5.37794 10.5768 6.56625L10.3236 6.87368C10.0455 7.21136 9.90649 7.3802 9.84606 7.58521C9.78563 7.79021 9.81067 8.00818 9.86075 8.44411L9.90634 8.84099C10.0826 10.3751 10.1707 11.1421 9.72055 11.5C9.27043 11.858 8.58018 11.5698 7.19966 10.9934L6.84251 10.8443C6.45021 10.6805 6.25406 10.5986 6.04769 10.6058C5.84132 10.613 5.6481 10.7084 5.26165 10.8991L4.90982 11.0729C3.54988 11.7443 2.86992 12.08 2.40851 11.7536C1.9471 11.4273 2.00982 10.655 2.13527 9.1105L2.16772 8.71092C2.20337 8.27201 2.2212 8.05256 2.15408 7.85197C2.08696 7.65139 1.9425 7.49238 1.65359 7.17437L1.39055 6.88484C0.373843 5.76573 -0.134512 5.20618 0.0304441 4.64653C0.1954 4.08689 0.924422 3.89779 2.38247 3.5196L2.75968 3.42175C3.17401 3.31428 3.38117 3.26054 3.54606 3.12942C3.71095 2.99829 3.8149 2.80462 4.02279 2.41729L4.21205 2.06464Z"
fill="currentColor" />
</symbol>
<symbol id="i-plus" viewBox="0 0 14 14" fill="none">
<path d="M12.75 6.75005L6.75 6.75005M6.75 6.75005L0.75 6.75005M6.75 6.75005L6.75 0.75M6.75 6.75005L6.75 12.75"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-minus" viewBox="0 0 14 14" fill="none">
<path d="M12.75 7L0.75 7" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-headset" viewBox="0 0 24 24" fill="none">
<path d="M21 17V12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12V17" stroke="currentColor"
stroke-width="1.5" />
<path d="M22 15.5V17.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2 15.5V17.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M8 13.8446C8 13.0802 8 12.698 7.82526 12.4323C7.73733 12.2985 7.62061 12.188 7.4844 12.1095C7.21371 11.9535 6.84812 11.9896 6.11694 12.0617C4.88487 12.1831 4.26884 12.2439 3.82737 12.5764C3.60394 12.7448 3.41638 12.9593 3.27646 13.2067C3 13.6955 3 14.3395 3 15.6276V17.1933C3 18.4685 3 19.1061 3.28198 19.5986C3.38752 19.7829 3.51981 19.9491 3.67416 20.0913C4.08652 20.4714 4.68844 20.5901 5.89227 20.8275C6.73944 20.9945 7.16302 21.078 7.47564 20.9021C7.591 20.8372 7.69296 20.7493 7.77572 20.6434C8 20.3565 8 19.9078 8 19.0104V13.8446Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M16 13.8446C16 13.0802 16 12.698 16.1747 12.4323C16.2627 12.2985 16.3794 12.188 16.5156 12.1095C16.7863 11.9535 17.1519 11.9896 17.8831 12.0617C19.1151 12.1831 19.7312 12.2439 20.1726 12.5764C20.3961 12.7448 20.5836 12.9593 20.7235 13.2067C21 13.6955 21 14.3395 21 15.6276V17.1933C21 18.4685 21 19.1061 20.718 19.5986C20.6125 19.7829 20.4802 19.9491 20.3258 20.0913C19.9135 20.4714 19.3116 20.5901 18.1077 20.8275C17.2606 20.9945 16.837 21.078 16.5244 20.9021C16.409 20.8372 16.307 20.7493 16.2243 20.6434C16 20.3565 16 19.9078 16 19.0104V13.8446Z"
stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-whatsapp" viewBox="0 0 20 20">
<path
d="M17 2.875C15.125 1 12.625 0 10 0C4.5 0 0 4.5 0 10C0 11.75 0.500008 13.5 1.37501 15L0 20L5.25002 18.625C6.75002 19.375 8.375 19.875 10 19.875C15.5 19.875 20 15.375 20 9.875C20 7.25 18.875 4.75 17 2.875ZM10 18.25C8.5 18.25 7.00001 17.875 5.75001 17.125L5.49999 17L2.37499 17.875L3.25001 14.875L2.99999 14.5C2.12499 13.125 1.74999 11.625 1.74999 10.125C1.74999 5.625 5.5 1.875 10 1.875C12.25 1.875 14.25 2.75 15.875 4.25C17.5 5.875 18.25 7.875 18.25 10.125C18.25 14.5 14.625 18.25 10 18.25ZM14.5 12C14.25 11.875 13 11.25 12.75 11.25C12.5 11.125 12.375 11.125 12.25 11.375C12.125 11.625 11.625 12.125 11.5 12.375C11.375 12.5 11.25 12.5 11 12.5C10.75 12.375 10 12.125 9.00002 11.25C8.25002 10.625 7.75001 9.75 7.62501 9.5C7.50001 9.25 7.62502 9.125 7.75002 9C7.87502 8.875 8 8.75 8.125 8.625C8.25 8.5 8.25002 8.375 8.37502 8.25C8.50002 8.125 8.37502 8 8.37502 7.875C8.37502 7.75 7.87501 6.5 7.62501 6C7.50001 5.625 7.25002 5.625 7.12502 5.625C7.00002 5.625 6.87498 5.625 6.62498 5.625C6.49998 5.625 6.24998 5.625 5.99998 5.875C5.74998 6.125 5.12501 6.75 5.12501 8C5.12501 9.25 5.99999 10.375 6.12499 10.625C6.24999 10.75 7.87498 13.375 10.375 14.375C12.5 15.25 12.875 15 13.375 15C13.875 15 14.875 14.375 15 13.875C15.25 13.25 15.25 12.75 15.125 12.75C15 12.125 14.75 12.125 14.5 12Z"
fill="currentColor" />
</symbol>
<symbol id="i-instagram" viewBox="0 0 20 20">
<path
d="M10 1.80723C12.6506 1.80723 13.0121 1.80723 14.0964 1.80723C15.0602 1.80723 15.5422 2.04819 15.9036 2.16868C16.3855 2.40964 16.747 2.53012 17.1084 2.89157C17.4699 3.25301 17.7108 3.61446 17.8313 4.09639C17.9518 4.45783 18.0723 4.93976 18.1928 5.90362C18.1928 6.98795 18.1928 7.22892 18.1928 10C18.1928 12.7711 18.1928 13.0121 18.1928 14.0964C18.1928 15.0602 17.9518 15.5422 17.8313 15.9036C17.5904 16.3855 17.4699 16.747 17.1084 17.1084C16.747 17.4699 16.3855 17.7108 15.9036 17.8313C15.5422 17.9518 15.0602 18.0723 14.0964 18.1928C13.0121 18.1928 12.7711 18.1928 10 18.1928C7.22892 18.1928 6.98795 18.1928 5.90362 18.1928C4.93976 18.1928 4.45783 17.9518 4.09639 17.8313C3.61446 17.5904 3.25301 17.4699 2.89157 17.1084C2.53012 16.747 2.28916 16.3855 2.16868 15.9036C2.04819 15.5422 1.92771 15.0602 1.80723 14.0964C1.80723 13.0121 1.80723 12.7711 1.80723 10C1.80723 7.22892 1.80723 6.98795 1.80723 5.90362C1.80723 4.93976 2.04819 4.45783 2.16868 4.09639C2.40964 3.61446 2.53012 3.25301 2.89157 2.89157C3.25301 2.53012 3.61446 2.28916 4.09639 2.16868C4.45783 2.04819 4.93976 1.92771 5.90362 1.80723C6.98795 1.80723 7.3494 1.80723 10 1.80723ZM10 0C7.22892 0 6.98795 0 5.90362 0C4.81928 0 4.09639 0.240965 3.49398 0.481928C2.89157 0.722892 2.28916 1.08434 1.68675 1.68675C1.08434 2.28916 0.843374 2.77109 0.481928 3.49398C0.240965 4.09639 0.120482 4.81928 0 5.90362C0 6.98795 0 7.3494 0 10C0 12.7711 0 13.0121 0 14.0964C0 15.1807 0.240965 15.9036 0.481928 16.506C0.722892 17.1084 1.08434 17.7108 1.68675 18.3133C2.28916 18.9157 2.77109 19.1566 3.49398 19.5181C4.09639 19.759 4.81928 19.8795 5.90362 20C6.98795 20 7.3494 20 10 20C12.6506 20 13.0121 20 14.0964 20C15.1807 20 15.9036 19.759 16.506 19.5181C17.1084 19.2771 17.7108 18.9157 18.3133 18.3133C18.9157 17.7108 19.1566 17.2289 19.5181 16.506C19.759 15.9036 19.8795 15.1807 20 14.0964C20 13.0121 20 12.6506 20 10C20 7.3494 20 6.98795 20 5.90362C20 4.81928 19.759 4.09639 19.5181 3.49398C19.2771 2.89157 18.9157 2.28916 18.3133 1.68675C17.7108 1.08434 17.2289 0.843374 16.506 0.481928C15.9036 0.240965 15.1807 0.120482 14.0964 0C13.0121 0 12.7711 0 10 0Z"
fill="currentColor" />
<path
d="M10 4.81928C7.10843 4.81928 4.81928 7.10843 4.81928 10C4.81928 12.8916 7.10843 15.1807 10 15.1807C12.8916 15.1807 15.1807 12.8916 15.1807 10C15.1807 7.10843 12.8916 4.81928 10 4.81928ZM10 13.3735C8.19277 13.3735 6.62651 11.9277 6.62651 10C6.62651 8.19277 8.07229 6.62651 10 6.62651C11.8072 6.62651 13.3735 8.07229 13.3735 10C13.3735 11.8072 11.8072 13.3735 10 13.3735Z"
fill="currentColor" />
<path
d="M15.3012 5.90362C15.9666 5.90362 16.506 5.3642 16.506 4.6988C16.506 4.03339 15.9666 3.49398 15.3012 3.49398C14.6358 3.49398 14.0964 4.03339 14.0964 4.6988C14.0964 5.3642 14.6358 5.90362 15.3012 5.90362Z"
fill="currentColor" />
</symbol>
<symbol id="i-telegram" viewBox="0 0 20 17">
<path
d="M1.3749 7.31846C6.74359 4.91938 10.3236 3.33777 12.1148 2.57361C17.2292 0.391776 18.2919 0.0127698 18.9846 0.00012133C19.1369 -0.00249777 19.4776 0.0362266 19.6982 0.219862C19.8845 0.37492 19.9358 0.584381 19.9603 0.731393C19.9848 0.878405 20.0154 1.2133 19.9911 1.47498C19.714 4.46174 18.5147 11.7098 17.9046 15.055C17.6465 16.4705 17.1382 16.9451 16.6461 16.9916C15.5766 17.0925 14.7645 16.2667 13.7287 15.5702C12.1078 14.4805 11.1921 13.8021 9.61879 12.7387C7.80053 11.5097 8.97923 10.8343 10.0154 9.73042C10.2866 9.44153 14.9987 5.04555 15.0899 4.64677C15.1013 4.59689 15.1119 4.41098 15.0042 4.31282C14.8965 4.21465 14.7376 4.24822 14.6229 4.27492C14.4604 4.31276 11.871 6.06814 6.85486 9.54107C6.11988 10.0587 5.45416 10.3109 4.8577 10.2977C4.20015 10.2831 2.93528 9.91637 1.99498 9.60288C0.84166 9.21836 -0.0749729 9.01506 0.00484519 8.36203C0.0464194 8.0219 0.503103 7.67404 1.3749 7.31846Z"
fill="currentColor" />
</symbol>
<symbol id="i-facebook" viewBox="0 0 20 20">
<path
d="M20 10C20 4.5 15.5 0 10 0C4.5 0 0 4.5 0 10C0 15 3.625 19.125 8.375 19.875V12.875H5.875V10H8.375V7.75C8.375 5.25 9.875 3.875 12.125 3.875C13.25 3.875 14.375 4.125 14.375 4.125V6.625H13.125C11.875 6.625 11.5 7.375 11.5 8.125V10H14.25L13.75 12.875H11.375V20C16.375 19.25 20 15 20 10Z"
fill="currentColor" />
</symbol>
<symbol id="i-chat" viewBox="0 0 16 16" fill="none">
<path d="M8.00033 14.6668C11.6822 14.6668 14.667 11.6821 14.667 8.00016C14.667 4.31826 11.6822 1.3335 8.00033 1.3335C4.31843 1.3335 1.33366 4.31826 1.33366 8.00016C1.33366 9.06662 1.58407 10.0746 2.0293 10.9685C2.14762 11.206 2.187 11.4775 2.11841 11.7339L1.72133 13.2179C1.54896 13.8622 2.13834 14.4515 2.78256 14.2792L4.26658 13.8821C4.52295 13.8135 4.79446 13.8529 5.03201 13.9712C5.9259 14.4164 6.93387 14.6668 8.00033 14.6668Z" stroke="currentColor" stroke-width="1.5" />
<path d="M5.33301 7H10.6663M5.33301 9.3335H8.99967" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-mail" viewBox="0 0 16 16" fill="none">
<path d="M1.33301 7.99984C1.33301 5.48568 1.33301 4.2286 2.11406 3.44755C2.8951 2.6665 4.15218 2.6665 6.66634 2.6665H9.33301C11.8472 2.6665 13.1042 2.6665 13.8853 3.44755C14.6663 4.2286 14.6663 5.48568 14.6663 7.99984C14.6663 10.514 14.6663 11.7711 13.8853 12.5521C13.1042 13.3332 11.8472 13.3332 9.33301 13.3332H6.66634C4.15218 13.3332 2.8951 13.3332 2.11406 12.5521C1.33301 11.7711 1.33301 10.514 1.33301 7.99984Z" stroke="currentColor" stroke-width="1.5" />
<path d="M4 5.3335L5.43926 6.53288C6.66369 7.55324 7.2759 8.06341 8 8.06341C8.7241 8.06341 9.33631 7.55324 10.5607 6.53288L12 5.3335" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-phone" viewBox="0 0 16 16" fill="none">
<path d="M9.33398 1.33301C9.33398 1.33301 10.8007 1.46634 12.6673 3.33301C14.534 5.19967 14.6673 6.66634 14.6673 6.66634" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M9.4707 3.69043C9.4707 3.69043 10.1307 3.87899 11.1206 4.86894C12.1106 5.85889 12.2991 6.51886 12.2991 6.51886" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M6.69108 3.54444L7.12375 4.31973C7.51422 5.01938 7.35747 5.93721 6.74249 6.55219C6.74249 6.55219 5.99653 7.29816 7.34903 8.65065C8.7015 10.0031 9.44748 9.25719 9.44748 9.25719C10.0625 8.6422 10.9803 8.48546 11.6799 8.87592L12.4552 9.3086C13.5117 9.89821 13.6365 11.3798 12.7079 12.3085C12.1499 12.8665 11.4663 13.3006 10.7106 13.3293C9.43853 13.3775 7.2782 13.0556 5.11115 10.8885C2.9441 8.72147 2.62216 6.56114 2.67038 5.28905C2.69903 4.53339 3.13322 3.84982 3.69122 3.29181C4.61985 2.36318 6.10146 2.48795 6.69108 3.54444Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-send" viewBox="0 0 16 16" fill="none">
<path d="M12.4244 10.4464L13.5687 7.01354C14.5684 4.01462 15.0682 2.51516 14.2767 1.72364C13.4852 0.932131 11.9857 1.43195 8.98679 2.43159L5.5539 3.57589C3.13347 4.3827 1.92326 4.7861 1.57936 5.37766C1.25219 5.94042 1.25219 6.63547 1.57936 7.19823C1.92326 7.78979 3.13347 8.1932 5.55389 9C5.94253 9.12955 6.13685 9.19432 6.29927 9.30306C6.45668 9.40843 6.5919 9.54365 6.69727 9.70106C6.806 9.86348 6.87078 10.0578 7.00032 10.4464C7.80713 12.8668 8.21053 14.0771 8.80209 14.421C9.36485 14.7481 10.0599 14.7481 10.6227 14.421C11.2142 14.0771 11.6176 12.8668 12.4244 10.4464Z" stroke="currentColor" stroke-width="1.5" />
<path d="M10.4571 5.54364L6.75781 9.20215" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-chev-right" viewBox="0 0 16 16" fill="none">
<path d="M6 3.33366L10 8.00033L6 12.667" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<path id="ringPathScroll" fill="none" d="M50,50 m-39,0 a39,39 0 1,1 78,0 a39,39 0 1,1 -78,0" />
</svg>
<!-- ============ header ============ -->
<header class="site-header" id="siteHeader">
<div class="container header__inner">
<div class="header__left">
<a class="header__logo" href="index.html" aria-label="Hop On Hop Off — home">
<svg class="logo" viewBox="0 0 91 40" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Logo">
<g clip-path="url(#clip0_117_3713)">
<path
d="M70.0559 6.63419C69.9035 7.36616 69.76 8.05456 69.6194 8.74587C69.2766 10.4306 68.9338 12.1153 68.6027 13.8C68.5471 14.0759 68.424 14.195 68.1311 14.1892C67.217 14.1776 66.3029 14.1863 65.3888 14.1863C65.0216 14.1863 64.8752 14.0023 64.9494 13.6344C65.2892 11.9381 65.632 10.2418 65.9719 8.54545C66.5021 5.90221 67.0324 3.26188 67.551 0.618649C67.6037 0.348516 67.7209 0.229425 67.9934 0.252662C68.8371 0.316565 69.678 0.235234 70.5217 0.243948C70.9289 0.249757 71.175 0.365944 71.3625 0.758072C72.4407 3.01499 73.551 5.25738 74.6526 7.50268C74.7053 7.61306 74.7288 7.74667 74.8929 7.83671C74.9749 7.44749 75.0569 7.0786 75.1302 6.70971C75.5286 4.72873 75.9212 2.74776 76.3196 0.763881C76.4192 0.272995 76.4397 0.243948 76.9349 0.255567C77.8343 0.272995 78.7366 0.272995 79.6361 0.264281C80.1195 0.258471 80.1458 0.316565 80.0521 0.769691C79.1527 5.11505 78.2474 9.45751 77.3567 13.8058C77.2923 14.1166 77.1575 14.2037 76.8645 14.2008C75.9856 14.1892 75.1067 14.1863 74.2278 14.2008C73.926 14.2066 73.759 14.0904 73.6331 13.8261C72.5374 11.5663 71.4299 9.30937 70.3254 7.05246C70.261 6.92465 70.2229 6.77361 70.0559 6.6429V6.63419Z"
fill="white"></path>
<path
d="M25.5852 14.4942C24.0706 14.5029 22.6584 14.1834 21.4426 13.2249C20.218 12.2605 19.5764 10.9825 19.4299 9.45462C19.0314 5.2661 22.1252 0.682561 27.2552 0.0783925C28.6204 -0.0842682 29.9739 -0.0232704 31.2659 0.502472C33.2464 1.30706 34.3363 2.79715 34.5853 4.8885C35.0658 8.90564 31.887 13.8435 26.7776 14.4303C26.3792 14.4768 25.9837 14.4855 25.5852 14.4942ZM30.6068 6.2014C30.6068 6.05036 30.6155 5.89932 30.6068 5.74828C30.5247 4.54866 29.7015 3.59012 28.5589 3.35484C27.5452 3.14571 26.5843 3.3258 25.7317 3.87478C23.9358 5.03664 23.2473 6.75619 23.4289 8.81559C23.5461 10.1575 24.425 11.0202 25.7288 11.2148C26.5901 11.3426 27.4192 11.1771 28.1546 10.7152C29.8157 9.66956 30.5247 8.09814 30.6068 6.20431V6.2014Z"
fill="white"></path>
<path
d="M31.9078 23.3679C31.8873 27.3705 29.107 30.9636 25.3159 31.8698C23.4995 32.3055 21.6889 32.3346 19.9428 31.5706C18.1176 30.7719 17.0717 29.3544 16.8314 27.4083C16.348 23.455 18.7855 19.6035 22.5766 18.2383C24.188 17.6573 25.8374 17.4831 27.5161 17.8607C30.3316 18.4939 31.9224 20.5039 31.9078 23.3679ZM27.9321 23.9343C27.9321 23.7716 27.9439 23.609 27.9321 23.4463C27.8208 22.0695 26.9184 21.111 25.6001 20.9745C24.8383 20.896 24.1118 21.0296 23.4145 21.3521C21.3139 22.328 20.3412 25.2675 20.9008 27.0858C21.1908 28.0299 21.8266 28.6398 22.8051 28.8461C23.7895 29.0523 24.7329 28.8838 25.5708 28.3552C27.1909 27.3327 27.8384 25.7671 27.9321 23.9314V23.9343Z"
fill="white"></path>
<path
d="M58.5507 0.0115716C60.0009 -0.00876093 61.2607 0.243944 62.3915 0.964298C63.83 1.88217 64.5859 3.21541 64.75 4.88558C65.122 8.63549 62.7783 12.7049 58.7792 14.0411C56.9569 14.651 55.1024 14.7324 53.2713 14.0556C51.1766 13.28 49.7937 11.3862 49.7557 9.16704C49.6912 5.3358 51.4051 2.53572 54.8592 0.807447C55.9549 0.261372 57.2733 0.00866699 58.5536 0.00866699L58.5507 0.0115716ZM60.8417 6.23044C60.8417 6.09101 60.8505 5.95159 60.8417 5.81217C60.7685 4.66773 60.08 3.72082 59.0985 3.42454C58.2079 3.15441 57.3378 3.22993 56.494 3.60172C54.5282 4.46731 53.4178 6.79103 53.7371 8.93177C53.9305 10.2243 54.7508 11.0144 56.0048 11.2119C56.6903 11.3194 57.37 11.2293 57.9911 10.9244C59.9482 9.96582 60.6952 8.27241 60.8388 6.22753L60.8417 6.23044Z"
fill="white"></path>
<path
d="M52.5947 32.1313C51.2353 32.1488 50.0048 31.9077 48.8915 31.2367C47.4149 30.3479 46.6444 28.9943 46.4364 27.3299C45.9969 23.8647 48.1122 20.0044 51.5898 18.4795C53.8046 17.5093 56.0869 17.2973 58.3721 18.2819C60.1328 19.043 61.1231 20.4285 61.3604 22.2904C61.6885 24.8552 60.9238 27.1266 59.2861 29.125C57.7012 31.0595 55.0293 32.201 52.5976 32.1313H52.5947ZM53.1718 28.9043C54.0126 28.9362 54.8095 28.669 55.4804 28.1229C57.0683 26.8332 57.707 25.1456 57.4463 23.1414C57.2969 21.9883 56.4414 21.1488 55.3076 20.9891C54.3378 20.8526 53.4003 21.0094 52.5859 21.5729C50.9716 22.6912 50.3036 24.2888 50.33 26.1971C50.3534 27.8383 51.4726 28.9014 53.1689 28.9014L53.1718 28.9043Z"
fill="white"></path>
<path
d="M11.6694 5.54499C12.3843 5.54499 13.0991 5.52466 13.814 5.55371C14.189 5.56823 14.3149 5.4259 14.3794 5.07444C14.6607 3.60178 14.9741 2.13783 15.2642 0.668076C15.3169 0.392134 15.4429 0.261425 15.7271 0.261425C16.7788 0.261425 17.8306 0.25852 18.8824 0.255615C19.1431 0.255615 19.2222 0.365992 19.1666 0.630316C18.4488 4.06362 17.7369 7.49692 17.0279 10.9302C16.8286 11.8859 16.6265 12.8386 16.4449 13.7971C16.3921 14.076 16.2749 14.1921 15.982 14.1892C14.9624 14.1776 13.9429 14.1892 12.9233 14.1834C12.5395 14.1834 12.5014 14.1341 12.5806 13.7448C12.8794 12.278 13.1811 10.8111 13.4829 9.34428C13.5767 8.89115 13.5767 8.88534 13.1284 8.88534C11.6518 8.88534 10.1753 8.89115 8.7016 8.87663C8.37934 8.87663 8.25629 8.98701 8.19476 9.30071C7.90472 10.8169 7.58538 12.3274 7.28362 13.8436C7.23382 14.0934 7.11956 14.1951 6.85881 14.1921C5.82755 14.1834 4.79629 14.1834 3.76503 14.1921C3.46327 14.1921 3.38416 14.0934 3.44276 13.7942C3.95546 11.2672 4.45351 8.74011 4.95742 6.21016C5.32364 4.37732 5.69571 2.54448 6.05021 0.708741C6.1088 0.403753 6.22892 0.278852 6.55412 0.284662C7.59417 0.30209 8.63422 0.29628 9.6772 0.290471C9.93209 0.290471 10.0083 0.374706 9.95552 0.624506C9.6479 2.09136 9.35493 3.55821 9.04731 5.02506C8.94184 5.53337 8.94477 5.5508 9.48384 5.55371C10.2104 5.55371 10.937 5.55371 11.6636 5.55371L11.6694 5.54499Z"
fill="white"></path>
<path
d="M8.30004 26.537C7.55003 26.537 6.80002 26.5486 6.05002 26.5311C5.76876 26.5253 5.66036 26.6328 5.60763 26.8971C5.31173 28.425 4.99825 29.9499 4.70528 31.4778C4.65254 31.7479 4.53535 31.8438 4.25996 31.8409C3.24042 31.8292 2.22087 31.8263 1.20426 31.8409C0.879063 31.8467 0.799961 31.7479 0.864414 31.4342C1.50895 28.2246 2.1447 25.012 2.78338 21.8024C3.0119 20.6521 3.24921 19.5048 3.46893 18.3516C3.51874 18.0815 3.64179 17.9856 3.91425 17.9915C4.93379 18.0031 5.95334 18.006 6.96995 17.9915C7.29515 17.9856 7.37132 18.0931 7.30687 18.4039C6.99925 19.8708 6.7092 21.3376 6.4133 22.8074C6.35666 23.0901 6.47287 23.2324 6.76194 23.2344C8.23852 23.2344 9.71509 23.2256 11.1887 23.2431C11.5315 23.246 11.6546 23.1298 11.7161 22.8074C12.0003 21.3492 12.3167 19.8969 12.6009 18.4388C12.6683 18.0989 12.8118 17.9856 13.1604 17.9944C14.1565 18.0176 15.1527 18.0118 16.1458 17.9944C16.4593 17.9886 16.5618 18.067 16.4974 18.3923C15.7152 22.1916 14.9417 25.9909 14.1653 29.7902C14.0481 30.3595 13.928 30.9259 13.8226 31.4981C13.7757 31.745 13.6614 31.8496 13.3978 31.8467C12.3665 31.835 11.3352 31.835 10.3069 31.8467C9.96998 31.8496 9.92018 31.7218 9.98463 31.4226C10.2952 29.9441 10.5852 28.4656 10.8841 26.9843C10.9719 26.5428 10.9778 26.5428 10.512 26.5428C9.77369 26.5428 9.0354 26.5428 8.29711 26.5428L8.30004 26.537Z"
fill="white"></path>
<path
d="M41.409 0.252687C42.3202 0.26721 43.536 0.223641 44.7548 0.287543C45.3817 0.319494 45.9882 0.426966 46.5683 0.659339C48.247 1.33031 48.7509 2.55608 48.7451 4.05198C48.7451 4.96404 48.5107 5.84124 48.1093 6.67197C47.1366 8.67909 45.4755 9.7451 43.3251 10.1547C42.1766 10.3754 41.0135 10.2912 39.8563 10.2854C39.4666 10.2854 39.3319 10.4045 39.2674 10.7733C39.0858 11.7784 38.8543 12.7747 38.6639 13.7768C38.6053 14.0905 38.4647 14.1979 38.1453 14.1921C37.1609 14.1776 36.1766 14.1776 35.1951 14.1921C34.8787 14.195 34.782 14.105 34.8494 13.7826C35.7342 9.4372 36.616 5.09184 37.4774 0.743574C37.5535 0.363064 37.7264 0.243973 38.0838 0.246878C39.0916 0.255592 40.0995 0.249782 41.412 0.249782L41.409 0.252687ZM42.1883 3.47395C41.8251 3.47395 41.4618 3.48557 41.1014 3.47104C40.87 3.46233 40.7674 3.54657 40.7206 3.77313C40.5213 4.78685 40.3133 5.79767 40.0995 6.80559C40.0497 7.03796 40.1082 7.128 40.3514 7.1251C41.0428 7.11639 41.7342 7.14253 42.4227 7.11639C43.7001 7.0641 44.4354 6.47446 44.6991 5.34164C44.9657 4.18849 44.4413 3.51461 43.243 3.47976C42.8915 3.46814 42.5399 3.47976 42.1913 3.47976L42.1883 3.47395Z"
fill="white"></path>
<path
d="M38.2882 27.9951C37.8546 27.9951 37.421 28.0038 36.9874 27.9922C36.7442 27.9864 36.6387 28.0793 36.5918 28.3233C36.3956 29.3486 36.1641 30.3682 35.9737 31.3964C35.9122 31.7392 35.7715 31.8554 35.42 31.8467C34.459 31.8234 33.4981 31.8408 32.54 31.8379C32.0947 31.8379 32.0772 31.8147 32.165 31.379C32.7305 28.5789 33.2988 25.7817 33.8643 22.9816C34.1778 21.4335 34.4971 19.8882 34.7989 18.34C34.8487 18.0844 34.9571 17.9915 35.2178 17.9944C37.4913 18.0031 39.7618 17.9769 42.0353 18.0147C43.1105 18.0321 44.1124 18.3458 44.9269 19.101C45.7062 19.8243 45.9435 20.7625 45.9289 21.7617C45.9025 23.4464 45.299 24.922 44.089 26.1129C42.9845 27.1992 41.6163 27.7598 40.0811 27.9399C39.4864 28.0096 38.8887 27.9922 38.2911 27.9951H38.2882ZM38.7833 24.7825C39.088 24.7825 39.3927 24.7883 39.6974 24.7825C40.9396 24.7593 41.6573 24.1871 41.9415 22.9904C42.2023 21.8982 41.6778 21.204 40.5499 21.1779C39.8233 21.1604 39.0968 21.1779 38.3731 21.1691C38.1475 21.1662 38.0362 21.2359 37.9923 21.4654C37.793 22.4791 37.585 23.49 37.3682 24.5008C37.3243 24.7099 37.3946 24.7825 37.5909 24.7825C37.9893 24.7825 38.3878 24.7825 38.7862 24.7825H38.7833Z"
fill="white"></path>
<path
d="M69.259 17.9973C70.7707 17.9973 72.2825 17.9973 73.7913 17.9973C74.2395 17.9973 74.2483 18.0147 74.1546 18.4562C73.9905 19.2288 73.8206 20.0015 73.677 20.777C73.6213 21.0733 73.4866 21.1779 73.1819 21.175C71.4006 21.1633 69.6193 21.1779 67.841 21.1633C67.507 21.1604 67.3547 21.265 67.299 21.5903C67.1994 22.1625 67.0734 22.729 66.9387 23.2954C66.8713 23.58 66.9562 23.6555 67.2463 23.6526C68.8869 23.641 70.5276 23.6468 72.1653 23.6468C72.637 23.6468 72.6545 23.6701 72.5666 24.1174C72.4172 24.8581 72.2532 25.5958 72.1213 26.3365C72.0569 26.6909 71.9192 26.839 71.5237 26.8332C69.9065 26.81 68.2893 26.8332 66.675 26.8187C66.3498 26.8158 66.2267 26.9291 66.1681 27.2341C65.9015 28.6254 65.6056 30.0109 65.342 31.4023C65.2804 31.7218 65.1632 31.8525 64.8175 31.8467C63.8566 31.8263 62.8956 31.8321 61.9347 31.8409C61.6212 31.8438 61.5275 31.7566 61.5948 31.4313C62.3449 27.7569 63.0802 24.0796 63.8214 20.4023C63.9591 19.7197 64.1056 19.0371 64.2316 18.3516C64.2785 18.096 64.3693 17.9827 64.6623 17.9857C66.1974 18.0031 67.7326 17.9944 69.2648 17.9944L69.259 17.9973Z"
fill="white"></path>
<path
d="M80.8548 17.9943C82.3783 17.9943 83.9017 18.0001 85.4252 17.9885C85.7181 17.9885 85.7972 18.067 85.7357 18.3516C85.5541 19.1562 85.3812 19.9637 85.2318 20.7741C85.1761 21.0762 85.0472 21.1778 84.7425 21.1749C82.9613 21.1633 81.18 21.1807 79.3987 21.1633C79.0442 21.1604 78.9007 21.2708 78.8479 21.6164C78.763 22.177 78.6458 22.7376 78.5081 23.2895C78.4319 23.5916 78.5345 23.6497 78.8128 23.6497C80.4534 23.641 82.0941 23.6468 83.7347 23.6497C84.2064 23.6497 84.2122 23.6642 84.1156 24.1261C83.9574 24.8871 83.7933 25.6481 83.6556 26.4149C83.5999 26.7199 83.4769 26.839 83.1488 26.8361C81.5198 26.8216 79.8909 26.8361 78.262 26.8245C77.9339 26.8245 77.7874 26.9058 77.7229 27.2457C77.4622 28.6254 77.1575 29.9993 76.8938 31.379C76.8264 31.7333 76.677 31.8583 76.3137 31.8495C75.3645 31.8263 74.4153 31.835 73.466 31.8437C73.1731 31.8437 73.0735 31.7711 73.1379 31.4545C73.9524 27.4722 74.7522 23.487 75.5579 19.5019C75.634 19.1271 75.7366 18.7554 75.7835 18.3748C75.8245 18.0495 75.9944 17.9943 76.2815 17.9972C77.805 18.006 79.3284 18.003 80.8519 18.003V17.9972L80.8548 17.9943Z"
fill="white"></path>
<path
d="M69.751 31.7769C70.4014 31.8728 70.999 31.9744 71.5967 32.0412C75.7891 32.5176 79.8409 31.9889 83.7287 30.3391C84.8713 29.854 85.9611 29.2644 87.0158 28.6108C87.2824 28.4453 87.3996 28.2797 87.3088 27.9602C87.2209 27.6494 87.1828 27.3241 87.1242 27.0046C87.1037 26.8826 87.01 26.7286 87.1242 26.6444C87.2385 26.5601 87.3644 26.6879 87.4699 26.7548C88.4397 27.3444 89.4065 27.9311 90.3703 28.5295C91.1643 29.0233 91.1614 29.0262 90.5989 29.7843C89.9045 30.7196 89.216 31.6607 88.5217 32.5931C88.4572 32.6802 88.4162 32.8371 88.2756 32.7993C88.1555 32.7674 88.1936 32.6222 88.1701 32.5263C88.0969 32.1865 88.0266 31.8437 87.965 31.501C87.9211 31.2541 87.8127 31.2076 87.5783 31.3034C85.4953 32.1458 83.3332 32.6919 81.1066 32.991C77.3595 33.4994 73.6797 33.2496 70.0938 31.9977C69.9883 31.9599 69.8652 31.9483 69.751 31.7798V31.7769Z"
fill="white"></path>
<path
d="M65.8896 15.0316C66.2324 15.0083 66.54 15.1274 66.8535 15.171C72.5343 15.9756 77.8634 15.081 82.7443 11.973C83.0432 11.7813 83.1252 11.5925 83.0314 11.2642C82.9435 10.9534 82.8996 10.6281 82.8439 10.3086C82.8293 10.2244 82.7648 10.114 82.8644 10.053C82.9582 9.99781 83.0432 10.085 83.1193 10.1314C84.1096 10.7327 85.094 11.3369 86.0813 11.9381C86.2893 12.0659 86.4973 12.1995 86.7082 12.3244C86.8811 12.4261 86.8899 12.5423 86.7698 12.6933C85.9026 13.8058 85.0412 14.9212 84.174 16.0337C84.1272 16.0947 84.0861 16.1905 83.9865 16.1586C83.8898 16.1295 83.9016 16.0279 83.8869 15.9524C83.8107 15.5893 83.7346 15.2262 83.6672 14.8602C83.6262 14.6365 83.5676 14.5378 83.301 14.6453C81.3029 15.444 79.2316 15.9698 77.0988 16.2544C75.1065 16.5188 73.1114 16.5449 71.1104 16.3271C69.4375 16.1441 67.8057 15.8013 66.2207 15.2407C66.1064 15.2 65.9629 15.203 65.8896 15.0345V15.0316Z"
fill="white"></path>
<path
d="M67.8024 37.6762C68.1276 37.1302 68.4997 36.6073 68.7663 36.0351C69.0592 35.4048 69.4577 35.0766 70.1725 35.2218C70.2165 35.2305 70.2663 35.2218 70.3132 35.2218C70.7175 35.2276 70.7468 35.2567 70.6764 35.643C70.4743 36.7264 70.2663 37.8098 70.0612 38.8933C70.0143 39.1315 69.9674 39.3726 69.9294 39.6136C69.8942 39.8315 69.7829 39.9215 69.5514 39.9302C68.7047 39.9593 68.7047 39.9651 68.8659 39.1344C68.986 38.5099 69.1061 37.8854 69.1559 37.2289C68.9567 37.5717 68.7604 37.9173 68.5612 38.2601C68.3122 38.6929 68.0573 39.1257 67.817 39.5643C67.7057 39.7647 67.5768 39.8954 67.3219 39.8634C67.0612 39.8286 67.067 39.6224 67.0319 39.4481C66.8766 38.6987 66.7242 37.9464 66.5133 37.1883C66.3961 37.8128 66.2789 38.4373 66.1617 39.0647C66.15 39.1228 66.1442 39.1808 66.1354 39.236C66.0035 39.9361 66.0035 39.9215 65.2682 39.9273C64.9371 39.9302 64.8668 39.8199 64.9283 39.5149C65.1568 38.3879 65.3678 37.258 65.5875 36.1281C65.6139 35.9915 65.6402 35.855 65.6695 35.7185C65.7379 35.3835 65.9381 35.216 66.2701 35.216C66.9303 35.216 67.32 35.5336 67.4391 36.1687C67.5329 36.6596 67.6325 37.1476 67.7291 37.6356C67.7555 37.6472 67.7819 37.6559 67.8082 37.6675L67.8024 37.6762Z"
fill="white"></path>
<path
d="M58.6563 37.9842C58.6681 36.3082 59.8868 35.1115 61.548 35.1521C62.5499 35.1754 63.2999 35.7941 63.4406 36.7787C63.6691 38.3763 62.4562 40.1656 60.423 39.9884C59.3126 39.8925 58.6475 39.1199 58.6563 37.9871V37.9842ZM59.8165 37.8099C59.8048 38.2543 59.8985 38.6551 60.3556 38.8498C60.8155 39.0444 61.2609 38.9747 61.6388 38.658C62.1368 38.2398 62.3478 37.685 62.2628 37.0431C62.1749 36.3605 61.6505 36.0264 60.9737 36.2007C60.297 36.375 59.8282 37.0256 59.8136 37.8099H59.8165Z"
fill="white"></path>
<path
d="M34.8758 39.9274C34.4305 39.9274 33.9852 39.9245 33.5399 39.9274C33.3143 39.9303 33.2176 39.8606 33.2645 39.6166C33.5311 38.2369 33.7889 36.8572 34.0438 35.4775C34.0789 35.2945 34.1727 35.219 34.3543 35.2219C35.2684 35.2219 36.1825 35.2219 37.0936 35.2219C37.3133 35.2219 37.3924 35.3119 37.3397 35.524C37.3221 35.5908 37.3192 35.6605 37.3075 35.7302C37.245 36.0633 37.0428 36.2298 36.701 36.2298C36.2674 36.2298 35.8338 36.2269 35.4002 36.2298C35.1043 36.2298 34.8143 36.6684 34.9198 36.9443C34.9666 37.0634 35.0721 37.0315 35.16 37.0315C35.6522 37.0344 36.1444 37.0489 36.6366 37.0315C36.9559 37.0199 37.0292 37.1477 36.9559 37.4265C36.9296 37.5282 36.9061 37.6298 36.8944 37.7344C36.871 37.9639 36.745 38.051 36.5165 38.0452C36.036 38.0365 35.5555 38.0394 35.075 38.0452C34.7528 38.0452 34.4334 38.5506 34.5682 38.8382C34.6209 38.9515 34.7264 38.9166 34.8143 38.9195C35.3416 38.9224 35.869 38.9311 36.3963 38.9195C36.6483 38.9137 36.745 39.0037 36.6835 39.2477C36.6747 39.2826 36.6747 39.3174 36.6688 39.3523C36.6024 39.7415 36.3661 39.9361 35.9598 39.9361C35.5965 39.9361 35.2332 39.9361 34.87 39.9361L34.8758 39.9274Z"
fill="white"></path>
<path
d="M78.8237 38.0422C77.1361 38.0422 75.4516 38.0422 73.764 38.0422C73.2806 38.0422 73.2689 38.0277 73.3539 37.5804C73.4281 37.1776 73.6732 36.9762 74.0892 36.9762C77.4145 36.9762 80.7397 36.9762 84.0649 36.9762C84.5776 36.9762 84.5835 36.9849 84.4809 37.4874C84.4067 37.8553 84.1831 38.0393 83.81 38.0393C82.146 38.0393 80.4848 38.0393 78.8207 38.0393L78.8237 38.0422Z"
fill="white"></path>
<path
d="M29.0368 36.9792C29.4616 36.5377 29.904 36.1078 30.3083 35.6489C30.5954 35.3236 30.9147 35.158 31.3512 35.2248C31.5739 35.2597 31.9167 35.1115 31.9928 35.3061C32.0661 35.4891 31.735 35.6489 31.5768 35.8086C31.1374 36.2589 30.695 36.7062 30.2321 37.1332C30.0299 37.3191 30.0182 37.473 30.1501 37.7025C30.5075 38.3299 30.8356 38.9689 31.1872 39.5992C31.3219 39.8403 31.2721 39.9332 30.9909 39.9245C29.8161 39.8984 30.1266 40.1017 29.6051 39.0967C29.4997 38.8905 29.3854 38.6842 29.3004 38.4693C29.1774 38.1643 29.0485 38.2224 28.8522 38.4112C28.6178 38.6378 28.6178 38.9369 28.5621 39.2129C28.4039 39.9942 28.6002 39.9216 27.6129 39.9245C27.358 39.9245 27.2906 39.8229 27.3405 39.5789C27.5543 38.4867 27.7565 37.3917 27.9616 36.2966C27.985 36.1717 28.0055 36.0439 28.0289 35.919C28.1637 35.2016 28.3248 35.0999 29.069 35.2219C29.3092 35.2626 29.2623 35.4136 29.2389 35.5588C29.1569 36.0207 29.069 36.4825 28.9811 36.9444C29.0016 36.956 29.0192 36.9647 29.0397 36.9763L29.0368 36.9792Z"
fill="white"></path>
<path
d="M45.7943 39.9971C45.267 39.9738 44.7133 39.8664 44.2445 39.4859C44.0424 39.3203 43.9955 39.1605 44.1918 38.9659C44.2093 38.9485 44.2211 38.9311 44.2386 38.9136C44.3881 38.751 44.5082 38.5157 44.6928 38.4431C44.9008 38.3589 45.0092 38.6609 45.1937 38.7539C45.5951 38.9543 46.0023 39.0618 46.4447 38.9107C46.6234 38.8497 46.7582 38.7365 46.767 38.5418C46.7758 38.3443 46.6264 38.2543 46.4652 38.2049C46.143 38.1032 45.809 38.0306 45.4896 37.9202C44.6049 37.6124 44.3383 36.8571 44.8129 36.0526C45.2025 35.3961 46.0609 35.0446 46.9604 35.1753C47.3588 35.2334 47.7309 35.3612 48.0619 35.5965C48.2377 35.7214 48.3051 35.8434 48.1322 36.0177C48.0824 36.0671 48.0443 36.1281 48.0004 36.1804C47.7719 36.4515 47.5024 36.5125 47.1918 36.3634C46.89 36.2181 46.5766 36.1339 46.2396 36.1775C46.017 36.2065 45.8119 36.3024 45.7826 36.5405C45.7504 36.7845 45.9818 36.8281 46.1547 36.8833C46.4096 36.9675 46.6762 37.0227 46.9311 37.1069C47.4115 37.2667 47.8715 37.47 47.9389 38.0481C48.0151 38.7219 47.7924 39.2883 47.1977 39.6659C46.7904 39.9245 46.3305 40 45.7973 40.0029L45.7943 39.9971Z"
fill="white"></path>
<path
d="M5.07682 38.0422C3.51821 38.0422 1.96253 38.0422 0.403916 38.0422C-0.0384717 38.0422 -0.0443311 38.0335 0.0435605 37.6094C0.131452 37.1873 0.398057 36.9762 0.843374 36.9762C3.84341 36.9762 6.84051 36.9762 9.84054 36.9762C10.2175 36.9762 10.3708 37.1553 10.3005 37.5136C10.2302 37.8718 10.0124 38.047 9.64718 38.0393C8.12373 38.0393 6.60027 38.0393 5.07975 38.0393L5.07682 38.0422Z"
fill="white"></path>
<path
d="M52.6826 37.9812C52.6914 36.0613 54.5401 34.6757 56.2422 35.2712C56.6524 35.4135 56.9307 35.6953 57.1387 36.0613C57.25 36.2559 57.209 36.3895 56.9922 36.4679C56.9043 36.4999 56.8135 36.5318 56.7373 36.5812C56.4385 36.7729 56.2159 36.7584 55.9815 36.4447C55.7412 36.1194 55.3574 36.1048 54.9883 36.2152C54.1797 36.4505 53.6436 37.4526 53.8867 38.2543C54.1182 39.0182 55.0821 39.2041 55.7149 38.6145C55.8174 38.5186 55.8789 38.292 56.0518 38.3618C56.3067 38.4663 56.5381 38.6348 56.7696 38.7887C56.837 38.8352 56.7842 38.9165 56.7432 38.9746C56.2627 39.6253 55.6153 39.9767 54.8008 39.9942C54.0274 40.0116 53.374 39.7734 52.9551 39.0763C52.7412 38.7248 52.668 38.3443 52.6855 37.9812H52.6826Z"
fill="white"></path>
<path
d="M21.4606 37.8941C21.4635 36.2966 22.7731 35.0563 24.4636 35.1579C25.1052 35.1957 25.5945 35.4978 25.9197 36.0555C26.0368 36.2559 26.0427 36.4011 25.782 36.4737C25.6823 36.5028 25.5798 36.5435 25.489 36.5928C25.2165 36.7497 25.0232 36.7729 24.7976 36.4592C24.5632 36.131 24.156 36.1019 23.7692 36.2094C22.902 36.4476 22.363 37.5368 22.697 38.3705C22.9665 39.0473 23.9245 39.1751 24.4958 38.6116C24.5954 38.5128 24.6511 38.2979 24.8415 38.3734C25.0993 38.478 25.3513 38.6145 25.5534 38.8091C25.6238 38.8788 25.5359 38.9572 25.4919 39.024C24.8298 40 23.2331 40.3108 22.2546 39.6427C21.6745 39.2477 21.446 38.6726 21.4606 37.8912V37.8941Z"
fill="white"></path>
<path
d="M14.983 35.2219C15.4986 35.2219 16.0113 35.2277 16.527 35.2219C16.776 35.219 16.8756 35.3119 16.8053 35.5588C16.7907 35.614 16.7877 35.6721 16.776 35.7302C16.7115 36.0632 16.5114 36.2298 16.1754 36.2298C15.4137 36.2298 15.4108 36.2298 15.2672 36.9763C15.1119 37.7954 14.9596 38.6174 14.8102 39.4394C14.7223 39.9216 14.7193 39.9245 14.2301 39.9274C13.7887 39.9274 13.61 39.7086 13.6939 39.271C13.8639 38.3821 14.025 37.4933 14.2066 36.6074C14.2652 36.3198 14.2066 36.1949 13.8873 36.2269C13.6676 36.2472 13.442 36.2298 13.2223 36.2269C13.0435 36.2269 12.9644 36.1397 13.0025 35.9597C13.0084 35.9364 13.0113 35.9132 13.0142 35.8899C13.0728 35.4426 13.3297 35.2199 13.7848 35.2219C13.9605 35.2219 14.1363 35.2219 14.3121 35.2219C14.5348 35.2219 14.7574 35.2219 14.9801 35.2219H14.983Z"
fill="white"></path>
<path
d="M41.2414 35.2219C41.7219 35.2219 42.2024 35.2393 42.6799 35.2161C43.0198 35.1987 43.0959 35.3352 43.011 35.6256C43.0051 35.6489 43.0022 35.6721 42.9993 35.6953C42.9309 36.0517 42.7151 36.2298 42.3518 36.2298C41.4524 36.2298 41.6457 36.1659 41.4875 36.9502C41.3117 37.8245 41.1447 38.7017 40.9953 39.5818C40.9514 39.8403 40.8488 39.9361 40.5852 39.9332C39.633 39.9158 39.759 40.0204 39.9201 39.1432C40.0783 38.2892 40.2424 37.4352 40.4211 36.5813C40.4768 36.3082 40.383 36.2124 40.1193 36.2327C40.049 36.2385 39.9787 36.2327 39.9084 36.2327C39.1203 36.2327 39.1994 36.3169 39.3313 35.5065C39.3664 35.2916 39.4895 35.2219 39.6975 35.2248C40.2131 35.2306 40.7258 35.2248 41.2414 35.2248V35.2219Z"
fill="white"></path>
<path
d="M18.5449 39.9216C18.4511 39.9216 18.3574 39.9216 18.2636 39.9216C18.0644 39.9216 17.9911 39.8374 18.0292 39.637C18.29 38.2689 18.5507 36.9008 18.8027 35.5327C18.8466 35.2887 18.9814 35.219 19.2158 35.2161C20.0214 35.2016 20.0097 35.1928 19.8574 35.9626C19.6347 37.1012 19.4296 38.2427 19.2128 39.3814C19.1103 39.9245 19.1074 39.9216 18.5419 39.9187L18.5449 39.9216Z"
fill="white"></path>
<path
d="M50.9005 39.2506C50.9005 39.6514 50.59 39.9797 50.212 39.9826C49.8839 39.9855 49.629 39.7357 49.6349 39.4133C49.6437 39.0095 49.9864 38.6493 50.3526 38.6522C50.6661 38.6522 50.9005 38.9108 50.9005 39.2506Z"
fill="white"></path>
</g>
<defs>
<clipPath id="clip0_117_3713">
<rect width="91" height="40" fill="white"></rect>
</clipPath>
</defs>
</svg>
</a>
<nav class="nav" id="primaryNav" aria-label="Primary">
<ul class="nav__list">
<li><a class="nav__link" href="index.html">Home</a></li>
<li class="nav__item--has-menu">
<button class="nav__link nav__toggle" type="button" aria-expanded="false" aria-controls="toursMenu">
<span>Tours</span>
<svg class="icon icon--chevron" aria-hidden="true">
<use href="#i-chevron" />
</svg>
</button>
<ul class="nav__submenu" id="toursMenu">
<li><a href="tours.html">All tours</a></li>
<li><a href="tours.html">London</a></li>
<li><a href="tours.html">Nashville</a></li>
<li><a href="tours.html">Sydney</a></li>
<li><a href="tours.html">San Diego</a></li>
<li><a href="tours.html">Paris</a></li>
</ul>
</li>
<li><a class="nav__link" href="blog.html">Weblog</a></li>
<li><a class="nav__link" href="faq.html">FAQ&rsquo;s</a></li>
<li><a class="nav__link" href="contact.html" aria-current="page">Contact us</a></li>
<li><a class="nav__link" href="about.html">About us</a></li>
</ul>
</nav>
</div>
<div class="header__actions">
<button class="icon-btn" type="button" aria-label="Search">
<svg class="icon icon--24" aria-hidden="true">
<use href="#i-search" />
</svg>
</button>
<button class="icon-btn" type="button" aria-label="Account">
<svg class="icon icon--24" aria-hidden="true">
<use href="#i-user" />
</svg>
</button>
<a class="btn btn--accent header__cta" href="tours.html">
<span>Book now</span>
<svg class="icon" aria-hidden="true">
<use href="#i-arrow-right" />
</svg>
</a>
<button class="burger" id="burger" type="button" aria-label="Open menu" aria-expanded="false"
aria-controls="primaryNav">
<span></span><span></span><span></span>
</button>
</div>
</div>
</header>
<main id="main">
<section class="hero hero--page hero--contact">
<div class="hero__media">
<img class="hero__img" src="assets/contact-hero.png" alt="" fetchpriority="high" />
</div>
<div class="container hero__content">
<nav class="crumbs" aria-label="Breadcrumb">
<ol class="crumbs__list">
<li><a href="index.html">Home</a></li>
<li aria-current="page">Contact us</li>
</ol>
</nav>
<h1 class="hero__title">Contact us</h1>
</div>
</section>
<div class="section pagebody contactpage">
<div class="container">
<div class="contactpage__grid">
<section class="rform contactcard" aria-labelledby="ciTitle">
<p class="rform__title" id="ciTitle"><svg class="icon" aria-hidden="true"><use href="#i-info" /></svg>Contact Information</p>
<ul class="facts facts--col">
<li class="fact">
<svg class="icon fact__icon" aria-hidden="true"><use href="#i-location" /></svg>
<div class="fact__text">
<span class="fact__k">Address</span>
<span class="fact__v">Up to 24 hrs</span>
</div>
</li>
<li class="fact">
<svg class="icon fact__icon" aria-hidden="true"><use href="#i-phone" /></svg>
<div class="fact__text">
<span class="fact__k">CEO unit</span>
<span class="fact__v">+1 1234 5678</span>
</div>
</li>
<li class="fact">
<svg class="icon fact__icon" aria-hidden="true"><use href="#i-phone" /></svg>
<div class="fact__text">
<span class="fact__k">Support</span>
<span class="fact__v">+1 1234 5678</span>
</div>
</li>
<li class="fact">
<svg class="icon fact__icon" aria-hidden="true"><use href="#i-mail" /></svg>
<div class="fact__text">
<span class="fact__k">Mail</span>
<span class="fact__v"><a href="mailto:info@hoho.com">info@hoho.com</a></span>
</div>
</li>
</ul>
<div class="contactcard__social">
<p class="rform__title"><svg class="icon" aria-hidden="true"><use href="#i-info" /></svg>Social Media</p>
<div class="share__btns">
<a class="share__btn" href="https://t.me/" target="_blank" rel="noopener" aria-label="Telegram"><svg class="icon" aria-hidden="true"><use href="#i-telegram" /></svg></a>
<a class="share__btn" href="https://www.facebook.com/" target="_blank" rel="noopener" aria-label="Facebook"><svg class="icon" aria-hidden="true"><use href="#i-facebook" /></svg></a>
<a class="share__btn" href="https://www.instagram.com/" target="_blank" rel="noopener" aria-label="Instagram"><svg class="icon" aria-hidden="true"><use href="#i-instagram" /></svg></a>
<a class="share__btn" href="https://wa.me/" target="_blank" rel="noopener" aria-label="WhatsApp"><svg class="icon" aria-hidden="true"><use href="#i-whatsapp" /></svg></a>
</div>
</div>
</section>
<form class="rform ticketform" id="ticketForm" novalidate>
<p class="rform__title"><svg class="icon" aria-hidden="true"><use href="#i-send" /></svg>Send Ticket</p>
<div class="rform__row">
<div class="field">
<span class="field__label"><svg class="icon" aria-hidden="true"><use href="#i-person" /></svg><label for="t-name">Full Name</label></span>
<input class="rinput" id="t-name" name="name" type="text" placeholder="Enter full name" autocomplete="name" required />
</div>
<div class="field">
<span class="field__label"><svg class="icon" aria-hidden="true"><use href="#i-mail" /></svg><label for="t-email">Email</label></span>
<input class="rinput" id="t-email" name="email" type="email" placeholder="Enter email" autocomplete="email" required />
</div>
</div>
<div class="field ticketform__grow">
<span class="field__label"><svg class="icon" aria-hidden="true"><use href="#i-chat" /></svg><label for="t-msg">Your message</label></span>
<textarea class="rinput rinput--area" id="t-msg" name="message" rows="6" placeholder="Type your message here ..." required></textarea>
</div>
<p class="rform__status" id="ticketStatus" role="status"></p>
<button class="btn btn--dark rform__submit" type="submit">Submit</button>
</form>
</div>
</div>
</div>
</main>
<!-- ============ footer ============ -->
<footer class="footer" id="footer">
<a class="ring-badge ring-badge--top" href="#main" aria-label="Back to top">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">BACK TO TOP &#183; </textPath>
</text>
</svg>
<span class="ring-badge__dot">
<svg class="icon" aria-hidden="true">
<use href="#i-arrow-up" />
</svg>
</span>
</a>
<div class="container footer__inner">
<div class="footer__brand">
<span class="footer__logo">
<svg class="logo" viewBox="0 0 91 40" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Logo">
<g clip-path="url(#clip0_117_3713)">
<path
d="M70.0559 6.63419C69.9035 7.36616 69.76 8.05456 69.6194 8.74587C69.2766 10.4306 68.9338 12.1153 68.6027 13.8C68.5471 14.0759 68.424 14.195 68.1311 14.1892C67.217 14.1776 66.3029 14.1863 65.3888 14.1863C65.0216 14.1863 64.8752 14.0023 64.9494 13.6344C65.2892 11.9381 65.632 10.2418 65.9719 8.54545C66.5021 5.90221 67.0324 3.26188 67.551 0.618649C67.6037 0.348516 67.7209 0.229425 67.9934 0.252662C68.8371 0.316565 69.678 0.235234 70.5217 0.243948C70.9289 0.249757 71.175 0.365944 71.3625 0.758072C72.4407 3.01499 73.551 5.25738 74.6526 7.50268C74.7053 7.61306 74.7288 7.74667 74.8929 7.83671C74.9749 7.44749 75.0569 7.0786 75.1302 6.70971C75.5286 4.72873 75.9212 2.74776 76.3196 0.763881C76.4192 0.272995 76.4397 0.243948 76.9349 0.255567C77.8343 0.272995 78.7366 0.272995 79.6361 0.264281C80.1195 0.258471 80.1458 0.316565 80.0521 0.769691C79.1527 5.11505 78.2474 9.45751 77.3567 13.8058C77.2923 14.1166 77.1575 14.2037 76.8645 14.2008C75.9856 14.1892 75.1067 14.1863 74.2278 14.2008C73.926 14.2066 73.759 14.0904 73.6331 13.8261C72.5374 11.5663 71.4299 9.30937 70.3254 7.05246C70.261 6.92465 70.2229 6.77361 70.0559 6.6429V6.63419Z"
fill="white"></path>
<path
d="M25.5852 14.4942C24.0706 14.5029 22.6584 14.1834 21.4426 13.2249C20.218 12.2605 19.5764 10.9825 19.4299 9.45462C19.0314 5.2661 22.1252 0.682561 27.2552 0.0783925C28.6204 -0.0842682 29.9739 -0.0232704 31.2659 0.502472C33.2464 1.30706 34.3363 2.79715 34.5853 4.8885C35.0658 8.90564 31.887 13.8435 26.7776 14.4303C26.3792 14.4768 25.9837 14.4855 25.5852 14.4942ZM30.6068 6.2014C30.6068 6.05036 30.6155 5.89932 30.6068 5.74828C30.5247 4.54866 29.7015 3.59012 28.5589 3.35484C27.5452 3.14571 26.5843 3.3258 25.7317 3.87478C23.9358 5.03664 23.2473 6.75619 23.4289 8.81559C23.5461 10.1575 24.425 11.0202 25.7288 11.2148C26.5901 11.3426 27.4192 11.1771 28.1546 10.7152C29.8157 9.66956 30.5247 8.09814 30.6068 6.20431V6.2014Z"
fill="white"></path>
<path
d="M31.9078 23.3679C31.8873 27.3705 29.107 30.9636 25.3159 31.8698C23.4995 32.3055 21.6889 32.3346 19.9428 31.5706C18.1176 30.7719 17.0717 29.3544 16.8314 27.4083C16.348 23.455 18.7855 19.6035 22.5766 18.2383C24.188 17.6573 25.8374 17.4831 27.5161 17.8607C30.3316 18.4939 31.9224 20.5039 31.9078 23.3679ZM27.9321 23.9343C27.9321 23.7716 27.9439 23.609 27.9321 23.4463C27.8208 22.0695 26.9184 21.111 25.6001 20.9745C24.8383 20.896 24.1118 21.0296 23.4145 21.3521C21.3139 22.328 20.3412 25.2675 20.9008 27.0858C21.1908 28.0299 21.8266 28.6398 22.8051 28.8461C23.7895 29.0523 24.7329 28.8838 25.5708 28.3552C27.1909 27.3327 27.8384 25.7671 27.9321 23.9314V23.9343Z"
fill="white"></path>
<path
d="M58.5507 0.0115716C60.0009 -0.00876093 61.2607 0.243944 62.3915 0.964298C63.83 1.88217 64.5859 3.21541 64.75 4.88558C65.122 8.63549 62.7783 12.7049 58.7792 14.0411C56.9569 14.651 55.1024 14.7324 53.2713 14.0556C51.1766 13.28 49.7937 11.3862 49.7557 9.16704C49.6912 5.3358 51.4051 2.53572 54.8592 0.807447C55.9549 0.261372 57.2733 0.00866699 58.5536 0.00866699L58.5507 0.0115716ZM60.8417 6.23044C60.8417 6.09101 60.8505 5.95159 60.8417 5.81217C60.7685 4.66773 60.08 3.72082 59.0985 3.42454C58.2079 3.15441 57.3378 3.22993 56.494 3.60172C54.5282 4.46731 53.4178 6.79103 53.7371 8.93177C53.9305 10.2243 54.7508 11.0144 56.0048 11.2119C56.6903 11.3194 57.37 11.2293 57.9911 10.9244C59.9482 9.96582 60.6952 8.27241 60.8388 6.22753L60.8417 6.23044Z"
fill="white"></path>
<path
d="M52.5947 32.1313C51.2353 32.1488 50.0048 31.9077 48.8915 31.2367C47.4149 30.3479 46.6444 28.9943 46.4364 27.3299C45.9969 23.8647 48.1122 20.0044 51.5898 18.4795C53.8046 17.5093 56.0869 17.2973 58.3721 18.2819C60.1328 19.043 61.1231 20.4285 61.3604 22.2904C61.6885 24.8552 60.9238 27.1266 59.2861 29.125C57.7012 31.0595 55.0293 32.201 52.5976 32.1313H52.5947ZM53.1718 28.9043C54.0126 28.9362 54.8095 28.669 55.4804 28.1229C57.0683 26.8332 57.707 25.1456 57.4463 23.1414C57.2969 21.9883 56.4414 21.1488 55.3076 20.9891C54.3378 20.8526 53.4003 21.0094 52.5859 21.5729C50.9716 22.6912 50.3036 24.2888 50.33 26.1971C50.3534 27.8383 51.4726 28.9014 53.1689 28.9014L53.1718 28.9043Z"
fill="white"></path>
<path
d="M11.6694 5.54499C12.3843 5.54499 13.0991 5.52466 13.814 5.55371C14.189 5.56823 14.3149 5.4259 14.3794 5.07444C14.6607 3.60178 14.9741 2.13783 15.2642 0.668076C15.3169 0.392134 15.4429 0.261425 15.7271 0.261425C16.7788 0.261425 17.8306 0.25852 18.8824 0.255615C19.1431 0.255615 19.2222 0.365992 19.1666 0.630316C18.4488 4.06362 17.7369 7.49692 17.0279 10.9302C16.8286 11.8859 16.6265 12.8386 16.4449 13.7971C16.3921 14.076 16.2749 14.1921 15.982 14.1892C14.9624 14.1776 13.9429 14.1892 12.9233 14.1834C12.5395 14.1834 12.5014 14.1341 12.5806 13.7448C12.8794 12.278 13.1811 10.8111 13.4829 9.34428C13.5767 8.89115 13.5767 8.88534 13.1284 8.88534C11.6518 8.88534 10.1753 8.89115 8.7016 8.87663C8.37934 8.87663 8.25629 8.98701 8.19476 9.30071C7.90472 10.8169 7.58538 12.3274 7.28362 13.8436C7.23382 14.0934 7.11956 14.1951 6.85881 14.1921C5.82755 14.1834 4.79629 14.1834 3.76503 14.1921C3.46327 14.1921 3.38416 14.0934 3.44276 13.7942C3.95546 11.2672 4.45351 8.74011 4.95742 6.21016C5.32364 4.37732 5.69571 2.54448 6.05021 0.708741C6.1088 0.403753 6.22892 0.278852 6.55412 0.284662C7.59417 0.30209 8.63422 0.29628 9.6772 0.290471C9.93209 0.290471 10.0083 0.374706 9.95552 0.624506C9.6479 2.09136 9.35493 3.55821 9.04731 5.02506C8.94184 5.53337 8.94477 5.5508 9.48384 5.55371C10.2104 5.55371 10.937 5.55371 11.6636 5.55371L11.6694 5.54499Z"
fill="white"></path>
<path
d="M8.30004 26.537C7.55003 26.537 6.80002 26.5486 6.05002 26.5311C5.76876 26.5253 5.66036 26.6328 5.60763 26.8971C5.31173 28.425 4.99825 29.9499 4.70528 31.4778C4.65254 31.7479 4.53535 31.8438 4.25996 31.8409C3.24042 31.8292 2.22087 31.8263 1.20426 31.8409C0.879063 31.8467 0.799961 31.7479 0.864414 31.4342C1.50895 28.2246 2.1447 25.012 2.78338 21.8024C3.0119 20.6521 3.24921 19.5048 3.46893 18.3516C3.51874 18.0815 3.64179 17.9856 3.91425 17.9915C4.93379 18.0031 5.95334 18.006 6.96995 17.9915C7.29515 17.9856 7.37132 18.0931 7.30687 18.4039C6.99925 19.8708 6.7092 21.3376 6.4133 22.8074C6.35666 23.0901 6.47287 23.2324 6.76194 23.2344C8.23852 23.2344 9.71509 23.2256 11.1887 23.2431C11.5315 23.246 11.6546 23.1298 11.7161 22.8074C12.0003 21.3492 12.3167 19.8969 12.6009 18.4388C12.6683 18.0989 12.8118 17.9856 13.1604 17.9944C14.1565 18.0176 15.1527 18.0118 16.1458 17.9944C16.4593 17.9886 16.5618 18.067 16.4974 18.3923C15.7152 22.1916 14.9417 25.9909 14.1653 29.7902C14.0481 30.3595 13.928 30.9259 13.8226 31.4981C13.7757 31.745 13.6614 31.8496 13.3978 31.8467C12.3665 31.835 11.3352 31.835 10.3069 31.8467C9.96998 31.8496 9.92018 31.7218 9.98463 31.4226C10.2952 29.9441 10.5852 28.4656 10.8841 26.9843C10.9719 26.5428 10.9778 26.5428 10.512 26.5428C9.77369 26.5428 9.0354 26.5428 8.29711 26.5428L8.30004 26.537Z"
fill="white"></path>
<path
d="M41.409 0.252687C42.3202 0.26721 43.536 0.223641 44.7548 0.287543C45.3817 0.319494 45.9882 0.426966 46.5683 0.659339C48.247 1.33031 48.7509 2.55608 48.7451 4.05198C48.7451 4.96404 48.5107 5.84124 48.1093 6.67197C47.1366 8.67909 45.4755 9.7451 43.3251 10.1547C42.1766 10.3754 41.0135 10.2912 39.8563 10.2854C39.4666 10.2854 39.3319 10.4045 39.2674 10.7733C39.0858 11.7784 38.8543 12.7747 38.6639 13.7768C38.6053 14.0905 38.4647 14.1979 38.1453 14.1921C37.1609 14.1776 36.1766 14.1776 35.1951 14.1921C34.8787 14.195 34.782 14.105 34.8494 13.7826C35.7342 9.4372 36.616 5.09184 37.4774 0.743574C37.5535 0.363064 37.7264 0.243973 38.0838 0.246878C39.0916 0.255592 40.0995 0.249782 41.412 0.249782L41.409 0.252687ZM42.1883 3.47395C41.8251 3.47395 41.4618 3.48557 41.1014 3.47104C40.87 3.46233 40.7674 3.54657 40.7206 3.77313C40.5213 4.78685 40.3133 5.79767 40.0995 6.80559C40.0497 7.03796 40.1082 7.128 40.3514 7.1251C41.0428 7.11639 41.7342 7.14253 42.4227 7.11639C43.7001 7.0641 44.4354 6.47446 44.6991 5.34164C44.9657 4.18849 44.4413 3.51461 43.243 3.47976C42.8915 3.46814 42.5399 3.47976 42.1913 3.47976L42.1883 3.47395Z"
fill="white"></path>
<path
d="M38.2882 27.9951C37.8546 27.9951 37.421 28.0038 36.9874 27.9922C36.7442 27.9864 36.6387 28.0793 36.5918 28.3233C36.3956 29.3486 36.1641 30.3682 35.9737 31.3964C35.9122 31.7392 35.7715 31.8554 35.42 31.8467C34.459 31.8234 33.4981 31.8408 32.54 31.8379C32.0947 31.8379 32.0772 31.8147 32.165 31.379C32.7305 28.5789 33.2988 25.7817 33.8643 22.9816C34.1778 21.4335 34.4971 19.8882 34.7989 18.34C34.8487 18.0844 34.9571 17.9915 35.2178 17.9944C37.4913 18.0031 39.7618 17.9769 42.0353 18.0147C43.1105 18.0321 44.1124 18.3458 44.9269 19.101C45.7062 19.8243 45.9435 20.7625 45.9289 21.7617C45.9025 23.4464 45.299 24.922 44.089 26.1129C42.9845 27.1992 41.6163 27.7598 40.0811 27.9399C39.4864 28.0096 38.8887 27.9922 38.2911 27.9951H38.2882ZM38.7833 24.7825C39.088 24.7825 39.3927 24.7883 39.6974 24.7825C40.9396 24.7593 41.6573 24.1871 41.9415 22.9904C42.2023 21.8982 41.6778 21.204 40.5499 21.1779C39.8233 21.1604 39.0968 21.1779 38.3731 21.1691C38.1475 21.1662 38.0362 21.2359 37.9923 21.4654C37.793 22.4791 37.585 23.49 37.3682 24.5008C37.3243 24.7099 37.3946 24.7825 37.5909 24.7825C37.9893 24.7825 38.3878 24.7825 38.7862 24.7825H38.7833Z"
fill="white"></path>
<path
d="M69.259 17.9973C70.7707 17.9973 72.2825 17.9973 73.7913 17.9973C74.2395 17.9973 74.2483 18.0147 74.1546 18.4562C73.9905 19.2288 73.8206 20.0015 73.677 20.777C73.6213 21.0733 73.4866 21.1779 73.1819 21.175C71.4006 21.1633 69.6193 21.1779 67.841 21.1633C67.507 21.1604 67.3547 21.265 67.299 21.5903C67.1994 22.1625 67.0734 22.729 66.9387 23.2954C66.8713 23.58 66.9562 23.6555 67.2463 23.6526C68.8869 23.641 70.5276 23.6468 72.1653 23.6468C72.637 23.6468 72.6545 23.6701 72.5666 24.1174C72.4172 24.8581 72.2532 25.5958 72.1213 26.3365C72.0569 26.6909 71.9192 26.839 71.5237 26.8332C69.9065 26.81 68.2893 26.8332 66.675 26.8187C66.3498 26.8158 66.2267 26.9291 66.1681 27.2341C65.9015 28.6254 65.6056 30.0109 65.342 31.4023C65.2804 31.7218 65.1632 31.8525 64.8175 31.8467C63.8566 31.8263 62.8956 31.8321 61.9347 31.8409C61.6212 31.8438 61.5275 31.7566 61.5948 31.4313C62.3449 27.7569 63.0802 24.0796 63.8214 20.4023C63.9591 19.7197 64.1056 19.0371 64.2316 18.3516C64.2785 18.096 64.3693 17.9827 64.6623 17.9857C66.1974 18.0031 67.7326 17.9944 69.2648 17.9944L69.259 17.9973Z"
fill="white"></path>
<path
d="M80.8548 17.9943C82.3783 17.9943 83.9017 18.0001 85.4252 17.9885C85.7181 17.9885 85.7972 18.067 85.7357 18.3516C85.5541 19.1562 85.3812 19.9637 85.2318 20.7741C85.1761 21.0762 85.0472 21.1778 84.7425 21.1749C82.9613 21.1633 81.18 21.1807 79.3987 21.1633C79.0442 21.1604 78.9007 21.2708 78.8479 21.6164C78.763 22.177 78.6458 22.7376 78.5081 23.2895C78.4319 23.5916 78.5345 23.6497 78.8128 23.6497C80.4534 23.641 82.0941 23.6468 83.7347 23.6497C84.2064 23.6497 84.2122 23.6642 84.1156 24.1261C83.9574 24.8871 83.7933 25.6481 83.6556 26.4149C83.5999 26.7199 83.4769 26.839 83.1488 26.8361C81.5198 26.8216 79.8909 26.8361 78.262 26.8245C77.9339 26.8245 77.7874 26.9058 77.7229 27.2457C77.4622 28.6254 77.1575 29.9993 76.8938 31.379C76.8264 31.7333 76.677 31.8583 76.3137 31.8495C75.3645 31.8263 74.4153 31.835 73.466 31.8437C73.1731 31.8437 73.0735 31.7711 73.1379 31.4545C73.9524 27.4722 74.7522 23.487 75.5579 19.5019C75.634 19.1271 75.7366 18.7554 75.7835 18.3748C75.8245 18.0495 75.9944 17.9943 76.2815 17.9972C77.805 18.006 79.3284 18.003 80.8519 18.003V17.9972L80.8548 17.9943Z"
fill="white"></path>
<path
d="M69.751 31.7769C70.4014 31.8728 70.999 31.9744 71.5967 32.0412C75.7891 32.5176 79.8409 31.9889 83.7287 30.3391C84.8713 29.854 85.9611 29.2644 87.0158 28.6108C87.2824 28.4453 87.3996 28.2797 87.3088 27.9602C87.2209 27.6494 87.1828 27.3241 87.1242 27.0046C87.1037 26.8826 87.01 26.7286 87.1242 26.6444C87.2385 26.5601 87.3644 26.6879 87.4699 26.7548C88.4397 27.3444 89.4065 27.9311 90.3703 28.5295C91.1643 29.0233 91.1614 29.0262 90.5989 29.7843C89.9045 30.7196 89.216 31.6607 88.5217 32.5931C88.4572 32.6802 88.4162 32.8371 88.2756 32.7993C88.1555 32.7674 88.1936 32.6222 88.1701 32.5263C88.0969 32.1865 88.0266 31.8437 87.965 31.501C87.9211 31.2541 87.8127 31.2076 87.5783 31.3034C85.4953 32.1458 83.3332 32.6919 81.1066 32.991C77.3595 33.4994 73.6797 33.2496 70.0938 31.9977C69.9883 31.9599 69.8652 31.9483 69.751 31.7798V31.7769Z"
fill="white"></path>
<path
d="M65.8896 15.0316C66.2324 15.0083 66.54 15.1274 66.8535 15.171C72.5343 15.9756 77.8634 15.081 82.7443 11.973C83.0432 11.7813 83.1252 11.5925 83.0314 11.2642C82.9435 10.9534 82.8996 10.6281 82.8439 10.3086C82.8293 10.2244 82.7648 10.114 82.8644 10.053C82.9582 9.99781 83.0432 10.085 83.1193 10.1314C84.1096 10.7327 85.094 11.3369 86.0813 11.9381C86.2893 12.0659 86.4973 12.1995 86.7082 12.3244C86.8811 12.4261 86.8899 12.5423 86.7698 12.6933C85.9026 13.8058 85.0412 14.9212 84.174 16.0337C84.1272 16.0947 84.0861 16.1905 83.9865 16.1586C83.8898 16.1295 83.9016 16.0279 83.8869 15.9524C83.8107 15.5893 83.7346 15.2262 83.6672 14.8602C83.6262 14.6365 83.5676 14.5378 83.301 14.6453C81.3029 15.444 79.2316 15.9698 77.0988 16.2544C75.1065 16.5188 73.1114 16.5449 71.1104 16.3271C69.4375 16.1441 67.8057 15.8013 66.2207 15.2407C66.1064 15.2 65.9629 15.203 65.8896 15.0345V15.0316Z"
fill="white"></path>
<path
d="M67.8024 37.6762C68.1276 37.1302 68.4997 36.6073 68.7663 36.0351C69.0592 35.4048 69.4577 35.0766 70.1725 35.2218C70.2165 35.2305 70.2663 35.2218 70.3132 35.2218C70.7175 35.2276 70.7468 35.2567 70.6764 35.643C70.4743 36.7264 70.2663 37.8098 70.0612 38.8933C70.0143 39.1315 69.9674 39.3726 69.9294 39.6136C69.8942 39.8315 69.7829 39.9215 69.5514 39.9302C68.7047 39.9593 68.7047 39.9651 68.8659 39.1344C68.986 38.5099 69.1061 37.8854 69.1559 37.2289C68.9567 37.5717 68.7604 37.9173 68.5612 38.2601C68.3122 38.6929 68.0573 39.1257 67.817 39.5643C67.7057 39.7647 67.5768 39.8954 67.3219 39.8634C67.0612 39.8286 67.067 39.6224 67.0319 39.4481C66.8766 38.6987 66.7242 37.9464 66.5133 37.1883C66.3961 37.8128 66.2789 38.4373 66.1617 39.0647C66.15 39.1228 66.1442 39.1808 66.1354 39.236C66.0035 39.9361 66.0035 39.9215 65.2682 39.9273C64.9371 39.9302 64.8668 39.8199 64.9283 39.5149C65.1568 38.3879 65.3678 37.258 65.5875 36.1281C65.6139 35.9915 65.6402 35.855 65.6695 35.7185C65.7379 35.3835 65.9381 35.216 66.2701 35.216C66.9303 35.216 67.32 35.5336 67.4391 36.1687C67.5329 36.6596 67.6325 37.1476 67.7291 37.6356C67.7555 37.6472 67.7819 37.6559 67.8082 37.6675L67.8024 37.6762Z"
fill="white"></path>
<path
d="M58.6563 37.9842C58.6681 36.3082 59.8868 35.1115 61.548 35.1521C62.5499 35.1754 63.2999 35.7941 63.4406 36.7787C63.6691 38.3763 62.4562 40.1656 60.423 39.9884C59.3126 39.8925 58.6475 39.1199 58.6563 37.9871V37.9842ZM59.8165 37.8099C59.8048 38.2543 59.8985 38.6551 60.3556 38.8498C60.8155 39.0444 61.2609 38.9747 61.6388 38.658C62.1368 38.2398 62.3478 37.685 62.2628 37.0431C62.1749 36.3605 61.6505 36.0264 60.9737 36.2007C60.297 36.375 59.8282 37.0256 59.8136 37.8099H59.8165Z"
fill="white"></path>
<path
d="M34.8758 39.9274C34.4305 39.9274 33.9852 39.9245 33.5399 39.9274C33.3143 39.9303 33.2176 39.8606 33.2645 39.6166C33.5311 38.2369 33.7889 36.8572 34.0438 35.4775C34.0789 35.2945 34.1727 35.219 34.3543 35.2219C35.2684 35.2219 36.1825 35.2219 37.0936 35.2219C37.3133 35.2219 37.3924 35.3119 37.3397 35.524C37.3221 35.5908 37.3192 35.6605 37.3075 35.7302C37.245 36.0633 37.0428 36.2298 36.701 36.2298C36.2674 36.2298 35.8338 36.2269 35.4002 36.2298C35.1043 36.2298 34.8143 36.6684 34.9198 36.9443C34.9666 37.0634 35.0721 37.0315 35.16 37.0315C35.6522 37.0344 36.1444 37.0489 36.6366 37.0315C36.9559 37.0199 37.0292 37.1477 36.9559 37.4265C36.9296 37.5282 36.9061 37.6298 36.8944 37.7344C36.871 37.9639 36.745 38.051 36.5165 38.0452C36.036 38.0365 35.5555 38.0394 35.075 38.0452C34.7528 38.0452 34.4334 38.5506 34.5682 38.8382C34.6209 38.9515 34.7264 38.9166 34.8143 38.9195C35.3416 38.9224 35.869 38.9311 36.3963 38.9195C36.6483 38.9137 36.745 39.0037 36.6835 39.2477C36.6747 39.2826 36.6747 39.3174 36.6688 39.3523C36.6024 39.7415 36.3661 39.9361 35.9598 39.9361C35.5965 39.9361 35.2332 39.9361 34.87 39.9361L34.8758 39.9274Z"
fill="white"></path>
<path
d="M78.8237 38.0422C77.1361 38.0422 75.4516 38.0422 73.764 38.0422C73.2806 38.0422 73.2689 38.0277 73.3539 37.5804C73.4281 37.1776 73.6732 36.9762 74.0892 36.9762C77.4145 36.9762 80.7397 36.9762 84.0649 36.9762C84.5776 36.9762 84.5835 36.9849 84.4809 37.4874C84.4067 37.8553 84.1831 38.0393 83.81 38.0393C82.146 38.0393 80.4848 38.0393 78.8207 38.0393L78.8237 38.0422Z"
fill="white"></path>
<path
d="M29.0368 36.9792C29.4616 36.5377 29.904 36.1078 30.3083 35.6489C30.5954 35.3236 30.9147 35.158 31.3512 35.2248C31.5739 35.2597 31.9167 35.1115 31.9928 35.3061C32.0661 35.4891 31.735 35.6489 31.5768 35.8086C31.1374 36.2589 30.695 36.7062 30.2321 37.1332C30.0299 37.3191 30.0182 37.473 30.1501 37.7025C30.5075 38.3299 30.8356 38.9689 31.1872 39.5992C31.3219 39.8403 31.2721 39.9332 30.9909 39.9245C29.8161 39.8984 30.1266 40.1017 29.6051 39.0967C29.4997 38.8905 29.3854 38.6842 29.3004 38.4693C29.1774 38.1643 29.0485 38.2224 28.8522 38.4112C28.6178 38.6378 28.6178 38.9369 28.5621 39.2129C28.4039 39.9942 28.6002 39.9216 27.6129 39.9245C27.358 39.9245 27.2906 39.8229 27.3405 39.5789C27.5543 38.4867 27.7565 37.3917 27.9616 36.2966C27.985 36.1717 28.0055 36.0439 28.0289 35.919C28.1637 35.2016 28.3248 35.0999 29.069 35.2219C29.3092 35.2626 29.2623 35.4136 29.2389 35.5588C29.1569 36.0207 29.069 36.4825 28.9811 36.9444C29.0016 36.956 29.0192 36.9647 29.0397 36.9763L29.0368 36.9792Z"
fill="white"></path>
<path
d="M45.7943 39.9971C45.267 39.9738 44.7133 39.8664 44.2445 39.4859C44.0424 39.3203 43.9955 39.1605 44.1918 38.9659C44.2093 38.9485 44.2211 38.9311 44.2386 38.9136C44.3881 38.751 44.5082 38.5157 44.6928 38.4431C44.9008 38.3589 45.0092 38.6609 45.1937 38.7539C45.5951 38.9543 46.0023 39.0618 46.4447 38.9107C46.6234 38.8497 46.7582 38.7365 46.767 38.5418C46.7758 38.3443 46.6264 38.2543 46.4652 38.2049C46.143 38.1032 45.809 38.0306 45.4896 37.9202C44.6049 37.6124 44.3383 36.8571 44.8129 36.0526C45.2025 35.3961 46.0609 35.0446 46.9604 35.1753C47.3588 35.2334 47.7309 35.3612 48.0619 35.5965C48.2377 35.7214 48.3051 35.8434 48.1322 36.0177C48.0824 36.0671 48.0443 36.1281 48.0004 36.1804C47.7719 36.4515 47.5024 36.5125 47.1918 36.3634C46.89 36.2181 46.5766 36.1339 46.2396 36.1775C46.017 36.2065 45.8119 36.3024 45.7826 36.5405C45.7504 36.7845 45.9818 36.8281 46.1547 36.8833C46.4096 36.9675 46.6762 37.0227 46.9311 37.1069C47.4115 37.2667 47.8715 37.47 47.9389 38.0481C48.0151 38.7219 47.7924 39.2883 47.1977 39.6659C46.7904 39.9245 46.3305 40 45.7973 40.0029L45.7943 39.9971Z"
fill="white"></path>
<path
d="M5.07682 38.0422C3.51821 38.0422 1.96253 38.0422 0.403916 38.0422C-0.0384717 38.0422 -0.0443311 38.0335 0.0435605 37.6094C0.131452 37.1873 0.398057 36.9762 0.843374 36.9762C3.84341 36.9762 6.84051 36.9762 9.84054 36.9762C10.2175 36.9762 10.3708 37.1553 10.3005 37.5136C10.2302 37.8718 10.0124 38.047 9.64718 38.0393C8.12373 38.0393 6.60027 38.0393 5.07975 38.0393L5.07682 38.0422Z"
fill="white"></path>
<path
d="M52.6826 37.9812C52.6914 36.0613 54.5401 34.6757 56.2422 35.2712C56.6524 35.4135 56.9307 35.6953 57.1387 36.0613C57.25 36.2559 57.209 36.3895 56.9922 36.4679C56.9043 36.4999 56.8135 36.5318 56.7373 36.5812C56.4385 36.7729 56.2159 36.7584 55.9815 36.4447C55.7412 36.1194 55.3574 36.1048 54.9883 36.2152C54.1797 36.4505 53.6436 37.4526 53.8867 38.2543C54.1182 39.0182 55.0821 39.2041 55.7149 38.6145C55.8174 38.5186 55.8789 38.292 56.0518 38.3618C56.3067 38.4663 56.5381 38.6348 56.7696 38.7887C56.837 38.8352 56.7842 38.9165 56.7432 38.9746C56.2627 39.6253 55.6153 39.9767 54.8008 39.9942C54.0274 40.0116 53.374 39.7734 52.9551 39.0763C52.7412 38.7248 52.668 38.3443 52.6855 37.9812H52.6826Z"
fill="white"></path>
<path
d="M21.4606 37.8941C21.4635 36.2966 22.7731 35.0563 24.4636 35.1579C25.1052 35.1957 25.5945 35.4978 25.9197 36.0555C26.0368 36.2559 26.0427 36.4011 25.782 36.4737C25.6823 36.5028 25.5798 36.5435 25.489 36.5928C25.2165 36.7497 25.0232 36.7729 24.7976 36.4592C24.5632 36.131 24.156 36.1019 23.7692 36.2094C22.902 36.4476 22.363 37.5368 22.697 38.3705C22.9665 39.0473 23.9245 39.1751 24.4958 38.6116C24.5954 38.5128 24.6511 38.2979 24.8415 38.3734C25.0993 38.478 25.3513 38.6145 25.5534 38.8091C25.6238 38.8788 25.5359 38.9572 25.4919 39.024C24.8298 40 23.2331 40.3108 22.2546 39.6427C21.6745 39.2477 21.446 38.6726 21.4606 37.8912V37.8941Z"
fill="white"></path>
<path
d="M14.983 35.2219C15.4986 35.2219 16.0113 35.2277 16.527 35.2219C16.776 35.219 16.8756 35.3119 16.8053 35.5588C16.7907 35.614 16.7877 35.6721 16.776 35.7302C16.7115 36.0632 16.5114 36.2298 16.1754 36.2298C15.4137 36.2298 15.4108 36.2298 15.2672 36.9763C15.1119 37.7954 14.9596 38.6174 14.8102 39.4394C14.7223 39.9216 14.7193 39.9245 14.2301 39.9274C13.7887 39.9274 13.61 39.7086 13.6939 39.271C13.8639 38.3821 14.025 37.4933 14.2066 36.6074C14.2652 36.3198 14.2066 36.1949 13.8873 36.2269C13.6676 36.2472 13.442 36.2298 13.2223 36.2269C13.0435 36.2269 12.9644 36.1397 13.0025 35.9597C13.0084 35.9364 13.0113 35.9132 13.0142 35.8899C13.0728 35.4426 13.3297 35.2199 13.7848 35.2219C13.9605 35.2219 14.1363 35.2219 14.3121 35.2219C14.5348 35.2219 14.7574 35.2219 14.9801 35.2219H14.983Z"
fill="white"></path>
<path
d="M41.2414 35.2219C41.7219 35.2219 42.2024 35.2393 42.6799 35.2161C43.0198 35.1987 43.0959 35.3352 43.011 35.6256C43.0051 35.6489 43.0022 35.6721 42.9993 35.6953C42.9309 36.0517 42.7151 36.2298 42.3518 36.2298C41.4524 36.2298 41.6457 36.1659 41.4875 36.9502C41.3117 37.8245 41.1447 38.7017 40.9953 39.5818C40.9514 39.8403 40.8488 39.9361 40.5852 39.9332C39.633 39.9158 39.759 40.0204 39.9201 39.1432C40.0783 38.2892 40.2424 37.4352 40.4211 36.5813C40.4768 36.3082 40.383 36.2124 40.1193 36.2327C40.049 36.2385 39.9787 36.2327 39.9084 36.2327C39.1203 36.2327 39.1994 36.3169 39.3313 35.5065C39.3664 35.2916 39.4895 35.2219 39.6975 35.2248C40.2131 35.2306 40.7258 35.2248 41.2414 35.2248V35.2219Z"
fill="white"></path>
<path
d="M18.5449 39.9216C18.4511 39.9216 18.3574 39.9216 18.2636 39.9216C18.0644 39.9216 17.9911 39.8374 18.0292 39.637C18.29 38.2689 18.5507 36.9008 18.8027 35.5327C18.8466 35.2887 18.9814 35.219 19.2158 35.2161C20.0214 35.2016 20.0097 35.1928 19.8574 35.9626C19.6347 37.1012 19.4296 38.2427 19.2128 39.3814C19.1103 39.9245 19.1074 39.9216 18.5419 39.9187L18.5449 39.9216Z"
fill="white"></path>
<path
d="M50.9005 39.2506C50.9005 39.6514 50.59 39.9797 50.212 39.9826C49.8839 39.9855 49.629 39.7357 49.6349 39.4133C49.6437 39.0095 49.9864 38.6493 50.3526 38.6522C50.6661 38.6522 50.9005 38.9108 50.9005 39.2506Z"
fill="white"></path>
</g>
<defs>
<clipPath id="clip0_117_3713">
<rect width="91" height="40" fill="white"></rect>
</clipPath>
</defs>
</svg>
</span>
<p class="footer__about">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet.</p>
</div>
<nav class="footer__cols" aria-label="Footer">
<div class="footer__col">
<h2 class="footer__ct">Quick Access</h2>
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="tours.html">Tours</a></li>
<li><a href="blog.html">Weblog</a></li>
<li><a href="contact.html">Contact us</a></li>
<li><a href="about.html">About us</a></li>
</ul>
</div>
<div class="footer__col">
<h2 class="footer__ct">Tours</h2>
<ul>
<li><a href="tours.html">London</a></li>
<li><a href="tours.html">Nashville</a></li>
<li><a href="tours.html">Sydney</a></li>
<li><a href="tours.html">San Diego</a></li>
<li><a href="tours.html">Paris</a></li>
</ul>
</div>
<div class="footer__col">
<h2 class="footer__ct">User Account</h2>
<ul>
<li><a href="#">Sign in</a></li>
<li><a href="#">Forget Password</a></li>
<li><a href="#">Booking History</a></li>
<li><a href="#">Support</a></li>
<li><a href="#">Dashboard</a></li>
</ul>
</div>
</nav>
</div>
<div class="container footer__bar">
<p class="footer__copy">&copy; 2026 Hop on Hop Off. All rights reserved.</p>
<ul class="socials">
<li><a href="#" aria-label="WhatsApp"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-whatsapp" />
</svg></a></li>
<li><a href="#" aria-label="Instagram"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-instagram" />
</svg></a></li>
<li><a href="#" aria-label="Telegram"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-telegram" />
</svg></a></li>
<li><a href="#" aria-label="Facebook"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-facebook" />
</svg></a></li>
</ul>
</div>
<a class="support" href="#" aria-label="Support">
<svg class="ring-badge__ring support__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">SUPPORT &#183; SUPPORT &#183; SUPPORT &#183; </textPath>
</text>
</svg>
<span class="support__tab">
<svg class="icon icon--24" aria-hidden="true">
<use href="#i-headset" />
</svg>
</span>
</a>
</footer>
<script src="js/main.js"></script>
</body>
</html>

4285
new front/css/style.css Normal file

File diff suppressed because it is too large Load Diff

836
new front/faq.html Normal file
View File

@@ -0,0 +1,836 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Hop On Hop Off &mdash; FAQ&rsquo;s</title>
<meta name="description" content="Answers to the most common questions about booking and joining a Hop On Hop Off tour." />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;700;800&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<a class="skip-link" href="#main">Skip to content</a>
<!-- ============ icon sprite ============ -->
<svg class="sprite" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg">
<symbol id="i-arrow-right" viewBox="0 0 16 16" fill="none">
<path d="M2.66699 8H13.3337M9.33366 12L13.3337 8L9.33366 4" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-left" viewBox="0 0 16 16" fill="none">
<path d="M13.333 8H2.66634M6.66634 12L2.66634 8L6.66634 4" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-ne" viewBox="0 0 16 16" fill="none">
<path d="M4 12L12 4M12 10V4H6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-up" viewBox="0 0 16 16" fill="none">
<path d="M8 13.3333L8 2.66659M12 6.66659L8 2.66659L4 6.66659" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-chevron" viewBox="0 0 16 16" fill="none">
<path d="M12.6663 6L7.99967 10L3.33301 6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
</symbol>
<symbol id="i-search" viewBox="0 0 24 24" fill="none">
<circle cx="11.5" cy="11.5" r="9.5" stroke="currentColor" stroke-width="1.5" />
<path d="M18.5 18.5L22 22" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-user" viewBox="0 0 24 24" fill="none">
<circle cx="12" cy="6" r="4" stroke="currentColor" stroke-width="1.5" />
<ellipse cx="12" cy="17" rx="7" ry="4" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-location" viewBox="0 0 16 16" fill="none">
<path
d="M2.66699 6.76224C2.66699 3.76396 5.05481 1.33337 8.00033 1.33337C10.9458 1.33337 13.3337 3.76396 13.3337 6.76224C13.3337 9.73702 11.6314 13.2083 8.97561 14.4497C8.3565 14.7391 7.64415 14.7391 7.02504 14.4497C4.36921 13.2083 2.66699 9.73702 2.66699 6.76224Z"
stroke="currentColor" stroke-width="1.5" />
<circle cx="8" cy="6.66663" r="2" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-calendar" viewBox="0 0 16 16" fill="none">
<path
d="M1.33301 7.99996C1.33301 5.4858 1.33301 4.22872 2.11406 3.44767C2.8951 2.66663 4.15218 2.66663 6.66634 2.66663H9.33301C11.8472 2.66663 13.1042 2.66663 13.8853 3.44767C14.6663 4.22872 14.6663 5.4858 14.6663 7.99996V9.33329C14.6663 11.8475 14.6663 13.1045 13.8853 13.8856C13.1042 14.6666 11.8472 14.6666 9.33301 14.6666H6.66634C4.15218 14.6666 2.8951 14.6666 2.11406 13.8856C1.33301 13.1045 1.33301 11.8475 1.33301 9.33329V7.99996Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M4.66699 2.66663V1.66663" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M11.333 2.66663V1.66663" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M1.66699 6H14.3337" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-seat" viewBox="0 0 16 16" fill="none">
<circle cx="5.99967" cy="4.00004" r="2.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M10 6C11.1046 6 12 5.10457 12 4C12 2.89543 11.1046 2 10 2" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" />
<ellipse cx="5.99967" cy="11.3333" rx="4.66667" ry="2.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M12 9.33337C13.1695 9.58984 14 10.2393 14 11C14 11.6863 13.3242 12.282 12.3333 12.5803"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-mouse" viewBox="0 0 16 16" fill="none">
<path
d="M3.33301 5.99998C3.33301 3.42265 5.42235 1.33331 7.99967 1.33331C10.577 1.33331 12.6663 3.42265 12.6663 5.99998V9.99998C12.6663 12.5773 10.577 14.6666 7.99967 14.6666C5.42235 14.6666 3.33301 12.5773 3.33301 9.99998V5.99998Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M7 5.66669C7 5.1144 7.44772 4.66669 8 4.66669C8.55228 4.66669 9 5.1144 9 5.66669V7.00002C9 7.5523 8.55228 8.00002 8 8.00002C7.44772 8.00002 7 7.5523 7 7.00002V5.66669Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M8 1.33331V4.66665" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-grid" viewBox="0 0 16 16" fill="none">
<path
d="M1.66699 4.33329C1.66699 3.07621 1.66699 2.44767 2.05752 2.05715C2.44804 1.66663 3.07658 1.66663 4.33366 1.66663C5.59074 1.66663 6.21928 1.66663 6.6098 2.05715C7.00033 2.44767 7.00033 3.07621 7.00033 4.33329C7.00033 5.59037 7.00033 6.21891 6.6098 6.60944C6.21928 6.99996 5.59074 6.99996 4.33366 6.99996C3.07658 6.99996 2.44804 6.99996 2.05752 6.60944C1.66699 6.21891 1.66699 5.59037 1.66699 4.33329Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M9 11.6667C9 10.4096 9 9.78105 9.39052 9.39052C9.78105 9 10.4096 9 11.6667 9C12.9237 9 13.5523 9 13.9428 9.39052C14.3333 9.78105 14.3333 10.4096 14.3333 11.6667C14.3333 12.9237 14.3333 13.5523 13.9428 13.9428C13.5523 14.3333 12.9237 14.3333 11.6667 14.3333C10.4096 14.3333 9.78105 14.3333 9.39052 13.9428C9 13.5523 9 12.9237 9 11.6667Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M1.66699 11.6667C1.66699 10.4096 1.66699 9.78105 2.05752 9.39052C2.44804 9 3.07658 9 4.33366 9C5.59074 9 6.21928 9 6.6098 9.39052C7.00033 9.78105 7.00033 10.4096 7.00033 11.6667C7.00033 12.9237 7.00033 13.5523 6.6098 13.9428C6.21928 14.3333 5.59074 14.3333 4.33366 14.3333C3.07658 14.3333 2.44804 14.3333 2.05752 13.9428C1.66699 13.5523 1.66699 12.9237 1.66699 11.6667Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M9 4.33329C9 3.07621 9 2.44767 9.39052 2.05715C9.78105 1.66663 10.4096 1.66663 11.6667 1.66663C12.9237 1.66663 13.5523 1.66663 13.9428 2.05715C14.3333 2.44767 14.3333 3.07621 14.3333 4.33329C14.3333 5.59037 14.3333 6.21891 13.9428 6.60944C13.5523 6.99996 12.9237 6.99996 11.6667 6.99996C10.4096 6.99996 9.78105 6.99996 9.39052 6.60944C9 6.21891 9 5.59037 9 4.33329Z"
stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-price" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="8.00004" r="6.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M8 4V12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M10 6.33335C10 5.41288 9.10457 4.66669 8 4.66669C6.89543 4.66669 6 5.41288 6 6.33335C6 7.25383 6.89543 8.00002 8 8.00002C9.10457 8.00002 10 8.74621 10 9.66669C10 10.5872 9.10457 11.3334 8 11.3334C6.89543 11.3334 6 10.5872 6 9.66669"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-duration" viewBox="0 0 16 16" fill="none">
<path
d="M1.33366 8.00004C1.33366 11.6819 4.31843 14.6667 8.00033 14.6667C11.6822 14.6667 14.667 11.6819 14.667 8.00004C14.667 4.31814 11.6822 1.33337 8.00033 1.33337"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M8 6V8.66667H10.6667" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
<circle cx="7.99967" cy="8.00004" r="6.66667" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-dasharray="0.5 3.5" />
</symbol>
<symbol id="i-sort" viewBox="0 0 16 16" fill="none">
<path d="M2.66699 11.3333H7.33366" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2.66699 8L7.33366 8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2.66699 4.66669L7.33366 4.66669" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M11.333 2.66665L11.333 13.3333M13.333 5.33331L11.333 2.66665L9.33301 5.33331M9.33301 10.6666L11.333 13.3333L13.333 10.6666"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-check" viewBox="0 0 16 16" fill="none">
<path d="M3.33301 8.33333L6.33301 11.3333L12.6663 5" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-info" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="7.99992" r="6.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M8 11.3333V7.33325" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<circle cx="8" cy="5.33333" r="0.666667" fill="currentColor" />
</symbol>
<symbol id="i-person" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="4.00004" r="2.66667" stroke="currentColor" stroke-width="1.5" />
<ellipse cx="7.99967" cy="11.3333" rx="4.66667" ry="2.66667" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-shield-check" viewBox="0 0 16 16" fill="none">
<path
d="M2 6.94448C2 4.81275 2 3.74689 2.25168 3.38831C2.50335 3.02973 3.50555 2.68668 5.50994 2.00057L5.89182 1.86985C6.93666 1.5122 7.45907 1.33337 8 1.33337C8.54093 1.33337 9.06335 1.5122 10.1082 1.86985L10.4901 2.00057C12.4945 2.68668 13.4966 3.02973 13.7483 3.38831C14 3.74689 14 4.81275 14 6.94448C14 7.26647 14 7.61565 14 7.99428C14 11.753 11.174 13.577 9.40096 14.3516C8.91999 14.5617 8.67951 14.6667 8 14.6667C7.32049 14.6667 7.08001 14.5617 6.59904 14.3516C4.82597 13.577 2 11.753 2 7.99428C2 7.61565 2 7.26647 2 6.94448Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M6.33301 8.26663L7.28539 9.33329L9.66634 6.66663" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-x" viewBox="0 0 16 16" fill="none">
<path d="M12.6663 3.33337L3.33301 12.6667M3.33301 3.33337L12.6663 12.6667" stroke="currentColor"
stroke-width="2" stroke-linecap="round" />
</symbol>
<symbol id="i-star" viewBox="0 0 12 12">
<path
d="M4.21205 2.06464C4.94362 0.701584 5.30941 0.0200537 5.87277 0.000515809C6.43613 -0.019022 6.82396 0.636371 7.59964 1.94716L7.80031 2.28628C8.02073 2.65876 8.13095 2.845 8.29997 2.96455C8.46899 3.08409 8.67769 3.12341 9.09509 3.20203L9.4751 3.27362C10.9439 3.55031 11.6784 3.68865 11.8616 4.23622C12.0448 4.78378 11.5555 5.37794 10.5768 6.56625L10.3236 6.87368C10.0455 7.21136 9.90649 7.3802 9.84606 7.58521C9.78563 7.79021 9.81067 8.00818 9.86075 8.44411L9.90634 8.84099C10.0826 10.3751 10.1707 11.1421 9.72055 11.5C9.27043 11.858 8.58018 11.5698 7.19966 10.9934L6.84251 10.8443C6.45021 10.6805 6.25406 10.5986 6.04769 10.6058C5.84132 10.613 5.6481 10.7084 5.26165 10.8991L4.90982 11.0729C3.54988 11.7443 2.86992 12.08 2.40851 11.7536C1.9471 11.4273 2.00982 10.655 2.13527 9.1105L2.16772 8.71092C2.20337 8.27201 2.2212 8.05256 2.15408 7.85197C2.08696 7.65139 1.9425 7.49238 1.65359 7.17437L1.39055 6.88484C0.373843 5.76573 -0.134512 5.20618 0.0304441 4.64653C0.1954 4.08689 0.924422 3.89779 2.38247 3.5196L2.75968 3.42175C3.17401 3.31428 3.38117 3.26054 3.54606 3.12942C3.71095 2.99829 3.8149 2.80462 4.02279 2.41729L4.21205 2.06464Z"
fill="currentColor" />
</symbol>
<symbol id="i-plus" viewBox="0 0 14 14" fill="none">
<path d="M12.75 6.75005L6.75 6.75005M6.75 6.75005L0.75 6.75005M6.75 6.75005L6.75 0.75M6.75 6.75005L6.75 12.75"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-minus" viewBox="0 0 14 14" fill="none">
<path d="M12.75 7L0.75 7" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-headset" viewBox="0 0 24 24" fill="none">
<path d="M21 17V12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12V17" stroke="currentColor"
stroke-width="1.5" />
<path d="M22 15.5V17.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2 15.5V17.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M8 13.8446C8 13.0802 8 12.698 7.82526 12.4323C7.73733 12.2985 7.62061 12.188 7.4844 12.1095C7.21371 11.9535 6.84812 11.9896 6.11694 12.0617C4.88487 12.1831 4.26884 12.2439 3.82737 12.5764C3.60394 12.7448 3.41638 12.9593 3.27646 13.2067C3 13.6955 3 14.3395 3 15.6276V17.1933C3 18.4685 3 19.1061 3.28198 19.5986C3.38752 19.7829 3.51981 19.9491 3.67416 20.0913C4.08652 20.4714 4.68844 20.5901 5.89227 20.8275C6.73944 20.9945 7.16302 21.078 7.47564 20.9021C7.591 20.8372 7.69296 20.7493 7.77572 20.6434C8 20.3565 8 19.9078 8 19.0104V13.8446Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M16 13.8446C16 13.0802 16 12.698 16.1747 12.4323C16.2627 12.2985 16.3794 12.188 16.5156 12.1095C16.7863 11.9535 17.1519 11.9896 17.8831 12.0617C19.1151 12.1831 19.7312 12.2439 20.1726 12.5764C20.3961 12.7448 20.5836 12.9593 20.7235 13.2067C21 13.6955 21 14.3395 21 15.6276V17.1933C21 18.4685 21 19.1061 20.718 19.5986C20.6125 19.7829 20.4802 19.9491 20.3258 20.0913C19.9135 20.4714 19.3116 20.5901 18.1077 20.8275C17.2606 20.9945 16.837 21.078 16.5244 20.9021C16.409 20.8372 16.307 20.7493 16.2243 20.6434C16 20.3565 16 19.9078 16 19.0104V13.8446Z"
stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-whatsapp" viewBox="0 0 20 20">
<path
d="M17 2.875C15.125 1 12.625 0 10 0C4.5 0 0 4.5 0 10C0 11.75 0.500008 13.5 1.37501 15L0 20L5.25002 18.625C6.75002 19.375 8.375 19.875 10 19.875C15.5 19.875 20 15.375 20 9.875C20 7.25 18.875 4.75 17 2.875ZM10 18.25C8.5 18.25 7.00001 17.875 5.75001 17.125L5.49999 17L2.37499 17.875L3.25001 14.875L2.99999 14.5C2.12499 13.125 1.74999 11.625 1.74999 10.125C1.74999 5.625 5.5 1.875 10 1.875C12.25 1.875 14.25 2.75 15.875 4.25C17.5 5.875 18.25 7.875 18.25 10.125C18.25 14.5 14.625 18.25 10 18.25ZM14.5 12C14.25 11.875 13 11.25 12.75 11.25C12.5 11.125 12.375 11.125 12.25 11.375C12.125 11.625 11.625 12.125 11.5 12.375C11.375 12.5 11.25 12.5 11 12.5C10.75 12.375 10 12.125 9.00002 11.25C8.25002 10.625 7.75001 9.75 7.62501 9.5C7.50001 9.25 7.62502 9.125 7.75002 9C7.87502 8.875 8 8.75 8.125 8.625C8.25 8.5 8.25002 8.375 8.37502 8.25C8.50002 8.125 8.37502 8 8.37502 7.875C8.37502 7.75 7.87501 6.5 7.62501 6C7.50001 5.625 7.25002 5.625 7.12502 5.625C7.00002 5.625 6.87498 5.625 6.62498 5.625C6.49998 5.625 6.24998 5.625 5.99998 5.875C5.74998 6.125 5.12501 6.75 5.12501 8C5.12501 9.25 5.99999 10.375 6.12499 10.625C6.24999 10.75 7.87498 13.375 10.375 14.375C12.5 15.25 12.875 15 13.375 15C13.875 15 14.875 14.375 15 13.875C15.25 13.25 15.25 12.75 15.125 12.75C15 12.125 14.75 12.125 14.5 12Z"
fill="currentColor" />
</symbol>
<symbol id="i-instagram" viewBox="0 0 20 20">
<path
d="M10 1.80723C12.6506 1.80723 13.0121 1.80723 14.0964 1.80723C15.0602 1.80723 15.5422 2.04819 15.9036 2.16868C16.3855 2.40964 16.747 2.53012 17.1084 2.89157C17.4699 3.25301 17.7108 3.61446 17.8313 4.09639C17.9518 4.45783 18.0723 4.93976 18.1928 5.90362C18.1928 6.98795 18.1928 7.22892 18.1928 10C18.1928 12.7711 18.1928 13.0121 18.1928 14.0964C18.1928 15.0602 17.9518 15.5422 17.8313 15.9036C17.5904 16.3855 17.4699 16.747 17.1084 17.1084C16.747 17.4699 16.3855 17.7108 15.9036 17.8313C15.5422 17.9518 15.0602 18.0723 14.0964 18.1928C13.0121 18.1928 12.7711 18.1928 10 18.1928C7.22892 18.1928 6.98795 18.1928 5.90362 18.1928C4.93976 18.1928 4.45783 17.9518 4.09639 17.8313C3.61446 17.5904 3.25301 17.4699 2.89157 17.1084C2.53012 16.747 2.28916 16.3855 2.16868 15.9036C2.04819 15.5422 1.92771 15.0602 1.80723 14.0964C1.80723 13.0121 1.80723 12.7711 1.80723 10C1.80723 7.22892 1.80723 6.98795 1.80723 5.90362C1.80723 4.93976 2.04819 4.45783 2.16868 4.09639C2.40964 3.61446 2.53012 3.25301 2.89157 2.89157C3.25301 2.53012 3.61446 2.28916 4.09639 2.16868C4.45783 2.04819 4.93976 1.92771 5.90362 1.80723C6.98795 1.80723 7.3494 1.80723 10 1.80723ZM10 0C7.22892 0 6.98795 0 5.90362 0C4.81928 0 4.09639 0.240965 3.49398 0.481928C2.89157 0.722892 2.28916 1.08434 1.68675 1.68675C1.08434 2.28916 0.843374 2.77109 0.481928 3.49398C0.240965 4.09639 0.120482 4.81928 0 5.90362C0 6.98795 0 7.3494 0 10C0 12.7711 0 13.0121 0 14.0964C0 15.1807 0.240965 15.9036 0.481928 16.506C0.722892 17.1084 1.08434 17.7108 1.68675 18.3133C2.28916 18.9157 2.77109 19.1566 3.49398 19.5181C4.09639 19.759 4.81928 19.8795 5.90362 20C6.98795 20 7.3494 20 10 20C12.6506 20 13.0121 20 14.0964 20C15.1807 20 15.9036 19.759 16.506 19.5181C17.1084 19.2771 17.7108 18.9157 18.3133 18.3133C18.9157 17.7108 19.1566 17.2289 19.5181 16.506C19.759 15.9036 19.8795 15.1807 20 14.0964C20 13.0121 20 12.6506 20 10C20 7.3494 20 6.98795 20 5.90362C20 4.81928 19.759 4.09639 19.5181 3.49398C19.2771 2.89157 18.9157 2.28916 18.3133 1.68675C17.7108 1.08434 17.2289 0.843374 16.506 0.481928C15.9036 0.240965 15.1807 0.120482 14.0964 0C13.0121 0 12.7711 0 10 0Z"
fill="currentColor" />
<path
d="M10 4.81928C7.10843 4.81928 4.81928 7.10843 4.81928 10C4.81928 12.8916 7.10843 15.1807 10 15.1807C12.8916 15.1807 15.1807 12.8916 15.1807 10C15.1807 7.10843 12.8916 4.81928 10 4.81928ZM10 13.3735C8.19277 13.3735 6.62651 11.9277 6.62651 10C6.62651 8.19277 8.07229 6.62651 10 6.62651C11.8072 6.62651 13.3735 8.07229 13.3735 10C13.3735 11.8072 11.8072 13.3735 10 13.3735Z"
fill="currentColor" />
<path
d="M15.3012 5.90362C15.9666 5.90362 16.506 5.3642 16.506 4.6988C16.506 4.03339 15.9666 3.49398 15.3012 3.49398C14.6358 3.49398 14.0964 4.03339 14.0964 4.6988C14.0964 5.3642 14.6358 5.90362 15.3012 5.90362Z"
fill="currentColor" />
</symbol>
<symbol id="i-telegram" viewBox="0 0 20 17">
<path
d="M1.3749 7.31846C6.74359 4.91938 10.3236 3.33777 12.1148 2.57361C17.2292 0.391776 18.2919 0.0127698 18.9846 0.00012133C19.1369 -0.00249777 19.4776 0.0362266 19.6982 0.219862C19.8845 0.37492 19.9358 0.584381 19.9603 0.731393C19.9848 0.878405 20.0154 1.2133 19.9911 1.47498C19.714 4.46174 18.5147 11.7098 17.9046 15.055C17.6465 16.4705 17.1382 16.9451 16.6461 16.9916C15.5766 17.0925 14.7645 16.2667 13.7287 15.5702C12.1078 14.4805 11.1921 13.8021 9.61879 12.7387C7.80053 11.5097 8.97923 10.8343 10.0154 9.73042C10.2866 9.44153 14.9987 5.04555 15.0899 4.64677C15.1013 4.59689 15.1119 4.41098 15.0042 4.31282C14.8965 4.21465 14.7376 4.24822 14.6229 4.27492C14.4604 4.31276 11.871 6.06814 6.85486 9.54107C6.11988 10.0587 5.45416 10.3109 4.8577 10.2977C4.20015 10.2831 2.93528 9.91637 1.99498 9.60288C0.84166 9.21836 -0.0749729 9.01506 0.00484519 8.36203C0.0464194 8.0219 0.503103 7.67404 1.3749 7.31846Z"
fill="currentColor" />
</symbol>
<symbol id="i-facebook" viewBox="0 0 20 20">
<path
d="M20 10C20 4.5 15.5 0 10 0C4.5 0 0 4.5 0 10C0 15 3.625 19.125 8.375 19.875V12.875H5.875V10H8.375V7.75C8.375 5.25 9.875 3.875 12.125 3.875C13.25 3.875 14.375 4.125 14.375 4.125V6.625H13.125C11.875 6.625 11.5 7.375 11.5 8.125V10H14.25L13.75 12.875H11.375V20C16.375 19.25 20 15 20 10Z"
fill="currentColor" />
</symbol>
<symbol id="i-chat" viewBox="0 0 16 16" fill="none">
<path d="M8.00033 14.6668C11.6822 14.6668 14.667 11.6821 14.667 8.00016C14.667 4.31826 11.6822 1.3335 8.00033 1.3335C4.31843 1.3335 1.33366 4.31826 1.33366 8.00016C1.33366 9.06662 1.58407 10.0746 2.0293 10.9685C2.14762 11.206 2.187 11.4775 2.11841 11.7339L1.72133 13.2179C1.54896 13.8622 2.13834 14.4515 2.78256 14.2792L4.26658 13.8821C4.52295 13.8135 4.79446 13.8529 5.03201 13.9712C5.9259 14.4164 6.93387 14.6668 8.00033 14.6668Z" stroke="currentColor" stroke-width="1.5" />
<path d="M5.33301 7H10.6663M5.33301 9.3335H8.99967" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-mail" viewBox="0 0 16 16" fill="none">
<path d="M1.33301 7.99984C1.33301 5.48568 1.33301 4.2286 2.11406 3.44755C2.8951 2.6665 4.15218 2.6665 6.66634 2.6665H9.33301C11.8472 2.6665 13.1042 2.6665 13.8853 3.44755C14.6663 4.2286 14.6663 5.48568 14.6663 7.99984C14.6663 10.514 14.6663 11.7711 13.8853 12.5521C13.1042 13.3332 11.8472 13.3332 9.33301 13.3332H6.66634C4.15218 13.3332 2.8951 13.3332 2.11406 12.5521C1.33301 11.7711 1.33301 10.514 1.33301 7.99984Z" stroke="currentColor" stroke-width="1.5" />
<path d="M4 5.3335L5.43926 6.53288C6.66369 7.55324 7.2759 8.06341 8 8.06341C8.7241 8.06341 9.33631 7.55324 10.5607 6.53288L12 5.3335" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-phone" viewBox="0 0 16 16" fill="none">
<path d="M9.33398 1.33301C9.33398 1.33301 10.8007 1.46634 12.6673 3.33301C14.534 5.19967 14.6673 6.66634 14.6673 6.66634" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M9.4707 3.69043C9.4707 3.69043 10.1307 3.87899 11.1206 4.86894C12.1106 5.85889 12.2991 6.51886 12.2991 6.51886" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M6.69108 3.54444L7.12375 4.31973C7.51422 5.01938 7.35747 5.93721 6.74249 6.55219C6.74249 6.55219 5.99653 7.29816 7.34903 8.65065C8.7015 10.0031 9.44748 9.25719 9.44748 9.25719C10.0625 8.6422 10.9803 8.48546 11.6799 8.87592L12.4552 9.3086C13.5117 9.89821 13.6365 11.3798 12.7079 12.3085C12.1499 12.8665 11.4663 13.3006 10.7106 13.3293C9.43853 13.3775 7.2782 13.0556 5.11115 10.8885C2.9441 8.72147 2.62216 6.56114 2.67038 5.28905C2.69903 4.53339 3.13322 3.84982 3.69122 3.29181C4.61985 2.36318 6.10146 2.48795 6.69108 3.54444Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-send" viewBox="0 0 16 16" fill="none">
<path d="M12.4244 10.4464L13.5687 7.01354C14.5684 4.01462 15.0682 2.51516 14.2767 1.72364C13.4852 0.932131 11.9857 1.43195 8.98679 2.43159L5.5539 3.57589C3.13347 4.3827 1.92326 4.7861 1.57936 5.37766C1.25219 5.94042 1.25219 6.63547 1.57936 7.19823C1.92326 7.78979 3.13347 8.1932 5.55389 9C5.94253 9.12955 6.13685 9.19432 6.29927 9.30306C6.45668 9.40843 6.5919 9.54365 6.69727 9.70106C6.806 9.86348 6.87078 10.0578 7.00032 10.4464C7.80713 12.8668 8.21053 14.0771 8.80209 14.421C9.36485 14.7481 10.0599 14.7481 10.6227 14.421C11.2142 14.0771 11.6176 12.8668 12.4244 10.4464Z" stroke="currentColor" stroke-width="1.5" />
<path d="M10.4571 5.54364L6.75781 9.20215" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-chev-right" viewBox="0 0 16 16" fill="none">
<path d="M6 3.33366L10 8.00033L6 12.667" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<path id="ringPathScroll" fill="none" d="M50,50 m-39,0 a39,39 0 1,1 78,0 a39,39 0 1,1 -78,0" />
</svg>
<!-- ============ header ============ -->
<header class="site-header" id="siteHeader">
<div class="container header__inner">
<div class="header__left">
<a class="header__logo" href="index.html" aria-label="Hop On Hop Off — home">
<svg class="logo" viewBox="0 0 91 40" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Logo">
<g clip-path="url(#clip0_117_3713)">
<path
d="M70.0559 6.63419C69.9035 7.36616 69.76 8.05456 69.6194 8.74587C69.2766 10.4306 68.9338 12.1153 68.6027 13.8C68.5471 14.0759 68.424 14.195 68.1311 14.1892C67.217 14.1776 66.3029 14.1863 65.3888 14.1863C65.0216 14.1863 64.8752 14.0023 64.9494 13.6344C65.2892 11.9381 65.632 10.2418 65.9719 8.54545C66.5021 5.90221 67.0324 3.26188 67.551 0.618649C67.6037 0.348516 67.7209 0.229425 67.9934 0.252662C68.8371 0.316565 69.678 0.235234 70.5217 0.243948C70.9289 0.249757 71.175 0.365944 71.3625 0.758072C72.4407 3.01499 73.551 5.25738 74.6526 7.50268C74.7053 7.61306 74.7288 7.74667 74.8929 7.83671C74.9749 7.44749 75.0569 7.0786 75.1302 6.70971C75.5286 4.72873 75.9212 2.74776 76.3196 0.763881C76.4192 0.272995 76.4397 0.243948 76.9349 0.255567C77.8343 0.272995 78.7366 0.272995 79.6361 0.264281C80.1195 0.258471 80.1458 0.316565 80.0521 0.769691C79.1527 5.11505 78.2474 9.45751 77.3567 13.8058C77.2923 14.1166 77.1575 14.2037 76.8645 14.2008C75.9856 14.1892 75.1067 14.1863 74.2278 14.2008C73.926 14.2066 73.759 14.0904 73.6331 13.8261C72.5374 11.5663 71.4299 9.30937 70.3254 7.05246C70.261 6.92465 70.2229 6.77361 70.0559 6.6429V6.63419Z"
fill="white"></path>
<path
d="M25.5852 14.4942C24.0706 14.5029 22.6584 14.1834 21.4426 13.2249C20.218 12.2605 19.5764 10.9825 19.4299 9.45462C19.0314 5.2661 22.1252 0.682561 27.2552 0.0783925C28.6204 -0.0842682 29.9739 -0.0232704 31.2659 0.502472C33.2464 1.30706 34.3363 2.79715 34.5853 4.8885C35.0658 8.90564 31.887 13.8435 26.7776 14.4303C26.3792 14.4768 25.9837 14.4855 25.5852 14.4942ZM30.6068 6.2014C30.6068 6.05036 30.6155 5.89932 30.6068 5.74828C30.5247 4.54866 29.7015 3.59012 28.5589 3.35484C27.5452 3.14571 26.5843 3.3258 25.7317 3.87478C23.9358 5.03664 23.2473 6.75619 23.4289 8.81559C23.5461 10.1575 24.425 11.0202 25.7288 11.2148C26.5901 11.3426 27.4192 11.1771 28.1546 10.7152C29.8157 9.66956 30.5247 8.09814 30.6068 6.20431V6.2014Z"
fill="white"></path>
<path
d="M31.9078 23.3679C31.8873 27.3705 29.107 30.9636 25.3159 31.8698C23.4995 32.3055 21.6889 32.3346 19.9428 31.5706C18.1176 30.7719 17.0717 29.3544 16.8314 27.4083C16.348 23.455 18.7855 19.6035 22.5766 18.2383C24.188 17.6573 25.8374 17.4831 27.5161 17.8607C30.3316 18.4939 31.9224 20.5039 31.9078 23.3679ZM27.9321 23.9343C27.9321 23.7716 27.9439 23.609 27.9321 23.4463C27.8208 22.0695 26.9184 21.111 25.6001 20.9745C24.8383 20.896 24.1118 21.0296 23.4145 21.3521C21.3139 22.328 20.3412 25.2675 20.9008 27.0858C21.1908 28.0299 21.8266 28.6398 22.8051 28.8461C23.7895 29.0523 24.7329 28.8838 25.5708 28.3552C27.1909 27.3327 27.8384 25.7671 27.9321 23.9314V23.9343Z"
fill="white"></path>
<path
d="M58.5507 0.0115716C60.0009 -0.00876093 61.2607 0.243944 62.3915 0.964298C63.83 1.88217 64.5859 3.21541 64.75 4.88558C65.122 8.63549 62.7783 12.7049 58.7792 14.0411C56.9569 14.651 55.1024 14.7324 53.2713 14.0556C51.1766 13.28 49.7937 11.3862 49.7557 9.16704C49.6912 5.3358 51.4051 2.53572 54.8592 0.807447C55.9549 0.261372 57.2733 0.00866699 58.5536 0.00866699L58.5507 0.0115716ZM60.8417 6.23044C60.8417 6.09101 60.8505 5.95159 60.8417 5.81217C60.7685 4.66773 60.08 3.72082 59.0985 3.42454C58.2079 3.15441 57.3378 3.22993 56.494 3.60172C54.5282 4.46731 53.4178 6.79103 53.7371 8.93177C53.9305 10.2243 54.7508 11.0144 56.0048 11.2119C56.6903 11.3194 57.37 11.2293 57.9911 10.9244C59.9482 9.96582 60.6952 8.27241 60.8388 6.22753L60.8417 6.23044Z"
fill="white"></path>
<path
d="M52.5947 32.1313C51.2353 32.1488 50.0048 31.9077 48.8915 31.2367C47.4149 30.3479 46.6444 28.9943 46.4364 27.3299C45.9969 23.8647 48.1122 20.0044 51.5898 18.4795C53.8046 17.5093 56.0869 17.2973 58.3721 18.2819C60.1328 19.043 61.1231 20.4285 61.3604 22.2904C61.6885 24.8552 60.9238 27.1266 59.2861 29.125C57.7012 31.0595 55.0293 32.201 52.5976 32.1313H52.5947ZM53.1718 28.9043C54.0126 28.9362 54.8095 28.669 55.4804 28.1229C57.0683 26.8332 57.707 25.1456 57.4463 23.1414C57.2969 21.9883 56.4414 21.1488 55.3076 20.9891C54.3378 20.8526 53.4003 21.0094 52.5859 21.5729C50.9716 22.6912 50.3036 24.2888 50.33 26.1971C50.3534 27.8383 51.4726 28.9014 53.1689 28.9014L53.1718 28.9043Z"
fill="white"></path>
<path
d="M11.6694 5.54499C12.3843 5.54499 13.0991 5.52466 13.814 5.55371C14.189 5.56823 14.3149 5.4259 14.3794 5.07444C14.6607 3.60178 14.9741 2.13783 15.2642 0.668076C15.3169 0.392134 15.4429 0.261425 15.7271 0.261425C16.7788 0.261425 17.8306 0.25852 18.8824 0.255615C19.1431 0.255615 19.2222 0.365992 19.1666 0.630316C18.4488 4.06362 17.7369 7.49692 17.0279 10.9302C16.8286 11.8859 16.6265 12.8386 16.4449 13.7971C16.3921 14.076 16.2749 14.1921 15.982 14.1892C14.9624 14.1776 13.9429 14.1892 12.9233 14.1834C12.5395 14.1834 12.5014 14.1341 12.5806 13.7448C12.8794 12.278 13.1811 10.8111 13.4829 9.34428C13.5767 8.89115 13.5767 8.88534 13.1284 8.88534C11.6518 8.88534 10.1753 8.89115 8.7016 8.87663C8.37934 8.87663 8.25629 8.98701 8.19476 9.30071C7.90472 10.8169 7.58538 12.3274 7.28362 13.8436C7.23382 14.0934 7.11956 14.1951 6.85881 14.1921C5.82755 14.1834 4.79629 14.1834 3.76503 14.1921C3.46327 14.1921 3.38416 14.0934 3.44276 13.7942C3.95546 11.2672 4.45351 8.74011 4.95742 6.21016C5.32364 4.37732 5.69571 2.54448 6.05021 0.708741C6.1088 0.403753 6.22892 0.278852 6.55412 0.284662C7.59417 0.30209 8.63422 0.29628 9.6772 0.290471C9.93209 0.290471 10.0083 0.374706 9.95552 0.624506C9.6479 2.09136 9.35493 3.55821 9.04731 5.02506C8.94184 5.53337 8.94477 5.5508 9.48384 5.55371C10.2104 5.55371 10.937 5.55371 11.6636 5.55371L11.6694 5.54499Z"
fill="white"></path>
<path
d="M8.30004 26.537C7.55003 26.537 6.80002 26.5486 6.05002 26.5311C5.76876 26.5253 5.66036 26.6328 5.60763 26.8971C5.31173 28.425 4.99825 29.9499 4.70528 31.4778C4.65254 31.7479 4.53535 31.8438 4.25996 31.8409C3.24042 31.8292 2.22087 31.8263 1.20426 31.8409C0.879063 31.8467 0.799961 31.7479 0.864414 31.4342C1.50895 28.2246 2.1447 25.012 2.78338 21.8024C3.0119 20.6521 3.24921 19.5048 3.46893 18.3516C3.51874 18.0815 3.64179 17.9856 3.91425 17.9915C4.93379 18.0031 5.95334 18.006 6.96995 17.9915C7.29515 17.9856 7.37132 18.0931 7.30687 18.4039C6.99925 19.8708 6.7092 21.3376 6.4133 22.8074C6.35666 23.0901 6.47287 23.2324 6.76194 23.2344C8.23852 23.2344 9.71509 23.2256 11.1887 23.2431C11.5315 23.246 11.6546 23.1298 11.7161 22.8074C12.0003 21.3492 12.3167 19.8969 12.6009 18.4388C12.6683 18.0989 12.8118 17.9856 13.1604 17.9944C14.1565 18.0176 15.1527 18.0118 16.1458 17.9944C16.4593 17.9886 16.5618 18.067 16.4974 18.3923C15.7152 22.1916 14.9417 25.9909 14.1653 29.7902C14.0481 30.3595 13.928 30.9259 13.8226 31.4981C13.7757 31.745 13.6614 31.8496 13.3978 31.8467C12.3665 31.835 11.3352 31.835 10.3069 31.8467C9.96998 31.8496 9.92018 31.7218 9.98463 31.4226C10.2952 29.9441 10.5852 28.4656 10.8841 26.9843C10.9719 26.5428 10.9778 26.5428 10.512 26.5428C9.77369 26.5428 9.0354 26.5428 8.29711 26.5428L8.30004 26.537Z"
fill="white"></path>
<path
d="M41.409 0.252687C42.3202 0.26721 43.536 0.223641 44.7548 0.287543C45.3817 0.319494 45.9882 0.426966 46.5683 0.659339C48.247 1.33031 48.7509 2.55608 48.7451 4.05198C48.7451 4.96404 48.5107 5.84124 48.1093 6.67197C47.1366 8.67909 45.4755 9.7451 43.3251 10.1547C42.1766 10.3754 41.0135 10.2912 39.8563 10.2854C39.4666 10.2854 39.3319 10.4045 39.2674 10.7733C39.0858 11.7784 38.8543 12.7747 38.6639 13.7768C38.6053 14.0905 38.4647 14.1979 38.1453 14.1921C37.1609 14.1776 36.1766 14.1776 35.1951 14.1921C34.8787 14.195 34.782 14.105 34.8494 13.7826C35.7342 9.4372 36.616 5.09184 37.4774 0.743574C37.5535 0.363064 37.7264 0.243973 38.0838 0.246878C39.0916 0.255592 40.0995 0.249782 41.412 0.249782L41.409 0.252687ZM42.1883 3.47395C41.8251 3.47395 41.4618 3.48557 41.1014 3.47104C40.87 3.46233 40.7674 3.54657 40.7206 3.77313C40.5213 4.78685 40.3133 5.79767 40.0995 6.80559C40.0497 7.03796 40.1082 7.128 40.3514 7.1251C41.0428 7.11639 41.7342 7.14253 42.4227 7.11639C43.7001 7.0641 44.4354 6.47446 44.6991 5.34164C44.9657 4.18849 44.4413 3.51461 43.243 3.47976C42.8915 3.46814 42.5399 3.47976 42.1913 3.47976L42.1883 3.47395Z"
fill="white"></path>
<path
d="M38.2882 27.9951C37.8546 27.9951 37.421 28.0038 36.9874 27.9922C36.7442 27.9864 36.6387 28.0793 36.5918 28.3233C36.3956 29.3486 36.1641 30.3682 35.9737 31.3964C35.9122 31.7392 35.7715 31.8554 35.42 31.8467C34.459 31.8234 33.4981 31.8408 32.54 31.8379C32.0947 31.8379 32.0772 31.8147 32.165 31.379C32.7305 28.5789 33.2988 25.7817 33.8643 22.9816C34.1778 21.4335 34.4971 19.8882 34.7989 18.34C34.8487 18.0844 34.9571 17.9915 35.2178 17.9944C37.4913 18.0031 39.7618 17.9769 42.0353 18.0147C43.1105 18.0321 44.1124 18.3458 44.9269 19.101C45.7062 19.8243 45.9435 20.7625 45.9289 21.7617C45.9025 23.4464 45.299 24.922 44.089 26.1129C42.9845 27.1992 41.6163 27.7598 40.0811 27.9399C39.4864 28.0096 38.8887 27.9922 38.2911 27.9951H38.2882ZM38.7833 24.7825C39.088 24.7825 39.3927 24.7883 39.6974 24.7825C40.9396 24.7593 41.6573 24.1871 41.9415 22.9904C42.2023 21.8982 41.6778 21.204 40.5499 21.1779C39.8233 21.1604 39.0968 21.1779 38.3731 21.1691C38.1475 21.1662 38.0362 21.2359 37.9923 21.4654C37.793 22.4791 37.585 23.49 37.3682 24.5008C37.3243 24.7099 37.3946 24.7825 37.5909 24.7825C37.9893 24.7825 38.3878 24.7825 38.7862 24.7825H38.7833Z"
fill="white"></path>
<path
d="M69.259 17.9973C70.7707 17.9973 72.2825 17.9973 73.7913 17.9973C74.2395 17.9973 74.2483 18.0147 74.1546 18.4562C73.9905 19.2288 73.8206 20.0015 73.677 20.777C73.6213 21.0733 73.4866 21.1779 73.1819 21.175C71.4006 21.1633 69.6193 21.1779 67.841 21.1633C67.507 21.1604 67.3547 21.265 67.299 21.5903C67.1994 22.1625 67.0734 22.729 66.9387 23.2954C66.8713 23.58 66.9562 23.6555 67.2463 23.6526C68.8869 23.641 70.5276 23.6468 72.1653 23.6468C72.637 23.6468 72.6545 23.6701 72.5666 24.1174C72.4172 24.8581 72.2532 25.5958 72.1213 26.3365C72.0569 26.6909 71.9192 26.839 71.5237 26.8332C69.9065 26.81 68.2893 26.8332 66.675 26.8187C66.3498 26.8158 66.2267 26.9291 66.1681 27.2341C65.9015 28.6254 65.6056 30.0109 65.342 31.4023C65.2804 31.7218 65.1632 31.8525 64.8175 31.8467C63.8566 31.8263 62.8956 31.8321 61.9347 31.8409C61.6212 31.8438 61.5275 31.7566 61.5948 31.4313C62.3449 27.7569 63.0802 24.0796 63.8214 20.4023C63.9591 19.7197 64.1056 19.0371 64.2316 18.3516C64.2785 18.096 64.3693 17.9827 64.6623 17.9857C66.1974 18.0031 67.7326 17.9944 69.2648 17.9944L69.259 17.9973Z"
fill="white"></path>
<path
d="M80.8548 17.9943C82.3783 17.9943 83.9017 18.0001 85.4252 17.9885C85.7181 17.9885 85.7972 18.067 85.7357 18.3516C85.5541 19.1562 85.3812 19.9637 85.2318 20.7741C85.1761 21.0762 85.0472 21.1778 84.7425 21.1749C82.9613 21.1633 81.18 21.1807 79.3987 21.1633C79.0442 21.1604 78.9007 21.2708 78.8479 21.6164C78.763 22.177 78.6458 22.7376 78.5081 23.2895C78.4319 23.5916 78.5345 23.6497 78.8128 23.6497C80.4534 23.641 82.0941 23.6468 83.7347 23.6497C84.2064 23.6497 84.2122 23.6642 84.1156 24.1261C83.9574 24.8871 83.7933 25.6481 83.6556 26.4149C83.5999 26.7199 83.4769 26.839 83.1488 26.8361C81.5198 26.8216 79.8909 26.8361 78.262 26.8245C77.9339 26.8245 77.7874 26.9058 77.7229 27.2457C77.4622 28.6254 77.1575 29.9993 76.8938 31.379C76.8264 31.7333 76.677 31.8583 76.3137 31.8495C75.3645 31.8263 74.4153 31.835 73.466 31.8437C73.1731 31.8437 73.0735 31.7711 73.1379 31.4545C73.9524 27.4722 74.7522 23.487 75.5579 19.5019C75.634 19.1271 75.7366 18.7554 75.7835 18.3748C75.8245 18.0495 75.9944 17.9943 76.2815 17.9972C77.805 18.006 79.3284 18.003 80.8519 18.003V17.9972L80.8548 17.9943Z"
fill="white"></path>
<path
d="M69.751 31.7769C70.4014 31.8728 70.999 31.9744 71.5967 32.0412C75.7891 32.5176 79.8409 31.9889 83.7287 30.3391C84.8713 29.854 85.9611 29.2644 87.0158 28.6108C87.2824 28.4453 87.3996 28.2797 87.3088 27.9602C87.2209 27.6494 87.1828 27.3241 87.1242 27.0046C87.1037 26.8826 87.01 26.7286 87.1242 26.6444C87.2385 26.5601 87.3644 26.6879 87.4699 26.7548C88.4397 27.3444 89.4065 27.9311 90.3703 28.5295C91.1643 29.0233 91.1614 29.0262 90.5989 29.7843C89.9045 30.7196 89.216 31.6607 88.5217 32.5931C88.4572 32.6802 88.4162 32.8371 88.2756 32.7993C88.1555 32.7674 88.1936 32.6222 88.1701 32.5263C88.0969 32.1865 88.0266 31.8437 87.965 31.501C87.9211 31.2541 87.8127 31.2076 87.5783 31.3034C85.4953 32.1458 83.3332 32.6919 81.1066 32.991C77.3595 33.4994 73.6797 33.2496 70.0938 31.9977C69.9883 31.9599 69.8652 31.9483 69.751 31.7798V31.7769Z"
fill="white"></path>
<path
d="M65.8896 15.0316C66.2324 15.0083 66.54 15.1274 66.8535 15.171C72.5343 15.9756 77.8634 15.081 82.7443 11.973C83.0432 11.7813 83.1252 11.5925 83.0314 11.2642C82.9435 10.9534 82.8996 10.6281 82.8439 10.3086C82.8293 10.2244 82.7648 10.114 82.8644 10.053C82.9582 9.99781 83.0432 10.085 83.1193 10.1314C84.1096 10.7327 85.094 11.3369 86.0813 11.9381C86.2893 12.0659 86.4973 12.1995 86.7082 12.3244C86.8811 12.4261 86.8899 12.5423 86.7698 12.6933C85.9026 13.8058 85.0412 14.9212 84.174 16.0337C84.1272 16.0947 84.0861 16.1905 83.9865 16.1586C83.8898 16.1295 83.9016 16.0279 83.8869 15.9524C83.8107 15.5893 83.7346 15.2262 83.6672 14.8602C83.6262 14.6365 83.5676 14.5378 83.301 14.6453C81.3029 15.444 79.2316 15.9698 77.0988 16.2544C75.1065 16.5188 73.1114 16.5449 71.1104 16.3271C69.4375 16.1441 67.8057 15.8013 66.2207 15.2407C66.1064 15.2 65.9629 15.203 65.8896 15.0345V15.0316Z"
fill="white"></path>
<path
d="M67.8024 37.6762C68.1276 37.1302 68.4997 36.6073 68.7663 36.0351C69.0592 35.4048 69.4577 35.0766 70.1725 35.2218C70.2165 35.2305 70.2663 35.2218 70.3132 35.2218C70.7175 35.2276 70.7468 35.2567 70.6764 35.643C70.4743 36.7264 70.2663 37.8098 70.0612 38.8933C70.0143 39.1315 69.9674 39.3726 69.9294 39.6136C69.8942 39.8315 69.7829 39.9215 69.5514 39.9302C68.7047 39.9593 68.7047 39.9651 68.8659 39.1344C68.986 38.5099 69.1061 37.8854 69.1559 37.2289C68.9567 37.5717 68.7604 37.9173 68.5612 38.2601C68.3122 38.6929 68.0573 39.1257 67.817 39.5643C67.7057 39.7647 67.5768 39.8954 67.3219 39.8634C67.0612 39.8286 67.067 39.6224 67.0319 39.4481C66.8766 38.6987 66.7242 37.9464 66.5133 37.1883C66.3961 37.8128 66.2789 38.4373 66.1617 39.0647C66.15 39.1228 66.1442 39.1808 66.1354 39.236C66.0035 39.9361 66.0035 39.9215 65.2682 39.9273C64.9371 39.9302 64.8668 39.8199 64.9283 39.5149C65.1568 38.3879 65.3678 37.258 65.5875 36.1281C65.6139 35.9915 65.6402 35.855 65.6695 35.7185C65.7379 35.3835 65.9381 35.216 66.2701 35.216C66.9303 35.216 67.32 35.5336 67.4391 36.1687C67.5329 36.6596 67.6325 37.1476 67.7291 37.6356C67.7555 37.6472 67.7819 37.6559 67.8082 37.6675L67.8024 37.6762Z"
fill="white"></path>
<path
d="M58.6563 37.9842C58.6681 36.3082 59.8868 35.1115 61.548 35.1521C62.5499 35.1754 63.2999 35.7941 63.4406 36.7787C63.6691 38.3763 62.4562 40.1656 60.423 39.9884C59.3126 39.8925 58.6475 39.1199 58.6563 37.9871V37.9842ZM59.8165 37.8099C59.8048 38.2543 59.8985 38.6551 60.3556 38.8498C60.8155 39.0444 61.2609 38.9747 61.6388 38.658C62.1368 38.2398 62.3478 37.685 62.2628 37.0431C62.1749 36.3605 61.6505 36.0264 60.9737 36.2007C60.297 36.375 59.8282 37.0256 59.8136 37.8099H59.8165Z"
fill="white"></path>
<path
d="M34.8758 39.9274C34.4305 39.9274 33.9852 39.9245 33.5399 39.9274C33.3143 39.9303 33.2176 39.8606 33.2645 39.6166C33.5311 38.2369 33.7889 36.8572 34.0438 35.4775C34.0789 35.2945 34.1727 35.219 34.3543 35.2219C35.2684 35.2219 36.1825 35.2219 37.0936 35.2219C37.3133 35.2219 37.3924 35.3119 37.3397 35.524C37.3221 35.5908 37.3192 35.6605 37.3075 35.7302C37.245 36.0633 37.0428 36.2298 36.701 36.2298C36.2674 36.2298 35.8338 36.2269 35.4002 36.2298C35.1043 36.2298 34.8143 36.6684 34.9198 36.9443C34.9666 37.0634 35.0721 37.0315 35.16 37.0315C35.6522 37.0344 36.1444 37.0489 36.6366 37.0315C36.9559 37.0199 37.0292 37.1477 36.9559 37.4265C36.9296 37.5282 36.9061 37.6298 36.8944 37.7344C36.871 37.9639 36.745 38.051 36.5165 38.0452C36.036 38.0365 35.5555 38.0394 35.075 38.0452C34.7528 38.0452 34.4334 38.5506 34.5682 38.8382C34.6209 38.9515 34.7264 38.9166 34.8143 38.9195C35.3416 38.9224 35.869 38.9311 36.3963 38.9195C36.6483 38.9137 36.745 39.0037 36.6835 39.2477C36.6747 39.2826 36.6747 39.3174 36.6688 39.3523C36.6024 39.7415 36.3661 39.9361 35.9598 39.9361C35.5965 39.9361 35.2332 39.9361 34.87 39.9361L34.8758 39.9274Z"
fill="white"></path>
<path
d="M78.8237 38.0422C77.1361 38.0422 75.4516 38.0422 73.764 38.0422C73.2806 38.0422 73.2689 38.0277 73.3539 37.5804C73.4281 37.1776 73.6732 36.9762 74.0892 36.9762C77.4145 36.9762 80.7397 36.9762 84.0649 36.9762C84.5776 36.9762 84.5835 36.9849 84.4809 37.4874C84.4067 37.8553 84.1831 38.0393 83.81 38.0393C82.146 38.0393 80.4848 38.0393 78.8207 38.0393L78.8237 38.0422Z"
fill="white"></path>
<path
d="M29.0368 36.9792C29.4616 36.5377 29.904 36.1078 30.3083 35.6489C30.5954 35.3236 30.9147 35.158 31.3512 35.2248C31.5739 35.2597 31.9167 35.1115 31.9928 35.3061C32.0661 35.4891 31.735 35.6489 31.5768 35.8086C31.1374 36.2589 30.695 36.7062 30.2321 37.1332C30.0299 37.3191 30.0182 37.473 30.1501 37.7025C30.5075 38.3299 30.8356 38.9689 31.1872 39.5992C31.3219 39.8403 31.2721 39.9332 30.9909 39.9245C29.8161 39.8984 30.1266 40.1017 29.6051 39.0967C29.4997 38.8905 29.3854 38.6842 29.3004 38.4693C29.1774 38.1643 29.0485 38.2224 28.8522 38.4112C28.6178 38.6378 28.6178 38.9369 28.5621 39.2129C28.4039 39.9942 28.6002 39.9216 27.6129 39.9245C27.358 39.9245 27.2906 39.8229 27.3405 39.5789C27.5543 38.4867 27.7565 37.3917 27.9616 36.2966C27.985 36.1717 28.0055 36.0439 28.0289 35.919C28.1637 35.2016 28.3248 35.0999 29.069 35.2219C29.3092 35.2626 29.2623 35.4136 29.2389 35.5588C29.1569 36.0207 29.069 36.4825 28.9811 36.9444C29.0016 36.956 29.0192 36.9647 29.0397 36.9763L29.0368 36.9792Z"
fill="white"></path>
<path
d="M45.7943 39.9971C45.267 39.9738 44.7133 39.8664 44.2445 39.4859C44.0424 39.3203 43.9955 39.1605 44.1918 38.9659C44.2093 38.9485 44.2211 38.9311 44.2386 38.9136C44.3881 38.751 44.5082 38.5157 44.6928 38.4431C44.9008 38.3589 45.0092 38.6609 45.1937 38.7539C45.5951 38.9543 46.0023 39.0618 46.4447 38.9107C46.6234 38.8497 46.7582 38.7365 46.767 38.5418C46.7758 38.3443 46.6264 38.2543 46.4652 38.2049C46.143 38.1032 45.809 38.0306 45.4896 37.9202C44.6049 37.6124 44.3383 36.8571 44.8129 36.0526C45.2025 35.3961 46.0609 35.0446 46.9604 35.1753C47.3588 35.2334 47.7309 35.3612 48.0619 35.5965C48.2377 35.7214 48.3051 35.8434 48.1322 36.0177C48.0824 36.0671 48.0443 36.1281 48.0004 36.1804C47.7719 36.4515 47.5024 36.5125 47.1918 36.3634C46.89 36.2181 46.5766 36.1339 46.2396 36.1775C46.017 36.2065 45.8119 36.3024 45.7826 36.5405C45.7504 36.7845 45.9818 36.8281 46.1547 36.8833C46.4096 36.9675 46.6762 37.0227 46.9311 37.1069C47.4115 37.2667 47.8715 37.47 47.9389 38.0481C48.0151 38.7219 47.7924 39.2883 47.1977 39.6659C46.7904 39.9245 46.3305 40 45.7973 40.0029L45.7943 39.9971Z"
fill="white"></path>
<path
d="M5.07682 38.0422C3.51821 38.0422 1.96253 38.0422 0.403916 38.0422C-0.0384717 38.0422 -0.0443311 38.0335 0.0435605 37.6094C0.131452 37.1873 0.398057 36.9762 0.843374 36.9762C3.84341 36.9762 6.84051 36.9762 9.84054 36.9762C10.2175 36.9762 10.3708 37.1553 10.3005 37.5136C10.2302 37.8718 10.0124 38.047 9.64718 38.0393C8.12373 38.0393 6.60027 38.0393 5.07975 38.0393L5.07682 38.0422Z"
fill="white"></path>
<path
d="M52.6826 37.9812C52.6914 36.0613 54.5401 34.6757 56.2422 35.2712C56.6524 35.4135 56.9307 35.6953 57.1387 36.0613C57.25 36.2559 57.209 36.3895 56.9922 36.4679C56.9043 36.4999 56.8135 36.5318 56.7373 36.5812C56.4385 36.7729 56.2159 36.7584 55.9815 36.4447C55.7412 36.1194 55.3574 36.1048 54.9883 36.2152C54.1797 36.4505 53.6436 37.4526 53.8867 38.2543C54.1182 39.0182 55.0821 39.2041 55.7149 38.6145C55.8174 38.5186 55.8789 38.292 56.0518 38.3618C56.3067 38.4663 56.5381 38.6348 56.7696 38.7887C56.837 38.8352 56.7842 38.9165 56.7432 38.9746C56.2627 39.6253 55.6153 39.9767 54.8008 39.9942C54.0274 40.0116 53.374 39.7734 52.9551 39.0763C52.7412 38.7248 52.668 38.3443 52.6855 37.9812H52.6826Z"
fill="white"></path>
<path
d="M21.4606 37.8941C21.4635 36.2966 22.7731 35.0563 24.4636 35.1579C25.1052 35.1957 25.5945 35.4978 25.9197 36.0555C26.0368 36.2559 26.0427 36.4011 25.782 36.4737C25.6823 36.5028 25.5798 36.5435 25.489 36.5928C25.2165 36.7497 25.0232 36.7729 24.7976 36.4592C24.5632 36.131 24.156 36.1019 23.7692 36.2094C22.902 36.4476 22.363 37.5368 22.697 38.3705C22.9665 39.0473 23.9245 39.1751 24.4958 38.6116C24.5954 38.5128 24.6511 38.2979 24.8415 38.3734C25.0993 38.478 25.3513 38.6145 25.5534 38.8091C25.6238 38.8788 25.5359 38.9572 25.4919 39.024C24.8298 40 23.2331 40.3108 22.2546 39.6427C21.6745 39.2477 21.446 38.6726 21.4606 37.8912V37.8941Z"
fill="white"></path>
<path
d="M14.983 35.2219C15.4986 35.2219 16.0113 35.2277 16.527 35.2219C16.776 35.219 16.8756 35.3119 16.8053 35.5588C16.7907 35.614 16.7877 35.6721 16.776 35.7302C16.7115 36.0632 16.5114 36.2298 16.1754 36.2298C15.4137 36.2298 15.4108 36.2298 15.2672 36.9763C15.1119 37.7954 14.9596 38.6174 14.8102 39.4394C14.7223 39.9216 14.7193 39.9245 14.2301 39.9274C13.7887 39.9274 13.61 39.7086 13.6939 39.271C13.8639 38.3821 14.025 37.4933 14.2066 36.6074C14.2652 36.3198 14.2066 36.1949 13.8873 36.2269C13.6676 36.2472 13.442 36.2298 13.2223 36.2269C13.0435 36.2269 12.9644 36.1397 13.0025 35.9597C13.0084 35.9364 13.0113 35.9132 13.0142 35.8899C13.0728 35.4426 13.3297 35.2199 13.7848 35.2219C13.9605 35.2219 14.1363 35.2219 14.3121 35.2219C14.5348 35.2219 14.7574 35.2219 14.9801 35.2219H14.983Z"
fill="white"></path>
<path
d="M41.2414 35.2219C41.7219 35.2219 42.2024 35.2393 42.6799 35.2161C43.0198 35.1987 43.0959 35.3352 43.011 35.6256C43.0051 35.6489 43.0022 35.6721 42.9993 35.6953C42.9309 36.0517 42.7151 36.2298 42.3518 36.2298C41.4524 36.2298 41.6457 36.1659 41.4875 36.9502C41.3117 37.8245 41.1447 38.7017 40.9953 39.5818C40.9514 39.8403 40.8488 39.9361 40.5852 39.9332C39.633 39.9158 39.759 40.0204 39.9201 39.1432C40.0783 38.2892 40.2424 37.4352 40.4211 36.5813C40.4768 36.3082 40.383 36.2124 40.1193 36.2327C40.049 36.2385 39.9787 36.2327 39.9084 36.2327C39.1203 36.2327 39.1994 36.3169 39.3313 35.5065C39.3664 35.2916 39.4895 35.2219 39.6975 35.2248C40.2131 35.2306 40.7258 35.2248 41.2414 35.2248V35.2219Z"
fill="white"></path>
<path
d="M18.5449 39.9216C18.4511 39.9216 18.3574 39.9216 18.2636 39.9216C18.0644 39.9216 17.9911 39.8374 18.0292 39.637C18.29 38.2689 18.5507 36.9008 18.8027 35.5327C18.8466 35.2887 18.9814 35.219 19.2158 35.2161C20.0214 35.2016 20.0097 35.1928 19.8574 35.9626C19.6347 37.1012 19.4296 38.2427 19.2128 39.3814C19.1103 39.9245 19.1074 39.9216 18.5419 39.9187L18.5449 39.9216Z"
fill="white"></path>
<path
d="M50.9005 39.2506C50.9005 39.6514 50.59 39.9797 50.212 39.9826C49.8839 39.9855 49.629 39.7357 49.6349 39.4133C49.6437 39.0095 49.9864 38.6493 50.3526 38.6522C50.6661 38.6522 50.9005 38.9108 50.9005 39.2506Z"
fill="white"></path>
</g>
<defs>
<clipPath id="clip0_117_3713">
<rect width="91" height="40" fill="white"></rect>
</clipPath>
</defs>
</svg>
</a>
<nav class="nav" id="primaryNav" aria-label="Primary">
<ul class="nav__list">
<li><a class="nav__link" href="index.html">Home</a></li>
<li class="nav__item--has-menu">
<button class="nav__link nav__toggle" type="button" aria-expanded="false" aria-controls="toursMenu">
<span>Tours</span>
<svg class="icon icon--chevron" aria-hidden="true">
<use href="#i-chevron" />
</svg>
</button>
<ul class="nav__submenu" id="toursMenu">
<li><a href="tours.html">All tours</a></li>
<li><a href="tours.html">London</a></li>
<li><a href="tours.html">Nashville</a></li>
<li><a href="tours.html">Sydney</a></li>
<li><a href="tours.html">San Diego</a></li>
<li><a href="tours.html">Paris</a></li>
</ul>
</li>
<li><a class="nav__link" href="blog.html">Weblog</a></li>
<li><a class="nav__link" href="faq.html" aria-current="page">FAQ&rsquo;s</a></li>
<li><a class="nav__link" href="contact.html">Contact us</a></li>
<li><a class="nav__link" href="about.html">About us</a></li>
</ul>
</nav>
</div>
<div class="header__actions">
<button class="icon-btn" type="button" aria-label="Search">
<svg class="icon icon--24" aria-hidden="true">
<use href="#i-search" />
</svg>
</button>
<button class="icon-btn" type="button" aria-label="Account">
<svg class="icon icon--24" aria-hidden="true">
<use href="#i-user" />
</svg>
</button>
<a class="btn btn--accent header__cta" href="tours.html">
<span>Book now</span>
<svg class="icon" aria-hidden="true">
<use href="#i-arrow-right" />
</svg>
</a>
<button class="burger" id="burger" type="button" aria-label="Open menu" aria-expanded="false"
aria-controls="primaryNav">
<span></span><span></span><span></span>
</button>
</div>
</div>
</header>
<main id="main">
<section class="hero hero--page hero--faq">
<div class="hero__media">
<img class="hero__img" src="assets/faq-hero.png" alt="" fetchpriority="high" />
</div>
<div class="container hero__content">
<nav class="crumbs" aria-label="Breadcrumb">
<ol class="crumbs__list">
<li><a href="index.html">Home</a></li>
<li aria-current="page">FAQ&rsquo;s</li>
</ol>
</nav>
<h1 class="hero__title">FAQ&rsquo;s</h1>
</div>
</section>
<div class="section pagebody faqpage">
<div class="container faqpage__layout">
<aside class="catnav" aria-label="FAQ categories">
<p class="catnav__title"><svg class="icon" aria-hidden="true"><use href="#i-grid" /></svg>Categorize</p>
<ul class="catnav__list">
<li><a class="catnav__link is-active" href="#faq-general" aria-current="true"><span>General</span><svg class="icon" aria-hidden="true"><use href="#i-chev-right" /></svg></a></li>
<li><a class="catnav__link" href="#faq-tours"><span>Tours</span><svg class="icon" aria-hidden="true"><use href="#i-chev-right" /></svg></a></li>
<li><a class="catnav__link" href="#faq-accounts"><span>Accounts</span><svg class="icon" aria-hidden="true"><use href="#i-chev-right" /></svg></a></li>
<li><a class="catnav__link" href="#faq-other"><span>Other</span><svg class="icon" aria-hidden="true"><use href="#i-chev-right" /></svg></a></li>
</ul>
</aside>
<div class="faqpage__main">
<section class="faqcard" id="faq-general" aria-labelledby="faq-general-t">
<h2 class="faqcard__title" id="faq-general-t">General</h2>
<div class="accordion" data-accordion>
<div class="acc">
<h3>
<button class="acc__q" type="button" aria-expanded="false">
<span>is the booking process, full online?</span>
<svg class="icon icon--14 acc__plus" aria-hidden="true"><use href="#i-plus" /></svg>
<svg class="icon icon--14 acc__minus" aria-hidden="true"><use href="#i-minus" /></svg>
</button>
</h3>
<div class="acc__a">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut laboreLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore</p>
</div>
</div>
<div class="acc">
<h3>
<button class="acc__q" type="button" aria-expanded="true">
<span>How can i book a tour ?</span>
<svg class="icon icon--14 acc__plus" aria-hidden="true"><use href="#i-plus" /></svg>
<svg class="icon icon--14 acc__minus" aria-hidden="true"><use href="#i-minus" /></svg>
</button>
</h3>
<div class="acc__a">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut laboreLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore</p>
</div>
</div>
<div class="acc">
<h3>
<button class="acc__q" type="button" aria-expanded="false">
<span>is the booking process, full online?</span>
<svg class="icon icon--14 acc__plus" aria-hidden="true"><use href="#i-plus" /></svg>
<svg class="icon icon--14 acc__minus" aria-hidden="true"><use href="#i-minus" /></svg>
</button>
</h3>
<div class="acc__a">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut laboreLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore</p>
</div>
</div>
<div class="acc">
<h3>
<button class="acc__q" type="button" aria-expanded="false">
<span>How can i book a tour ?</span>
<svg class="icon icon--14 acc__plus" aria-hidden="true"><use href="#i-plus" /></svg>
<svg class="icon icon--14 acc__minus" aria-hidden="true"><use href="#i-minus" /></svg>
</button>
</h3>
<div class="acc__a">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut laboreLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore</p>
</div>
</div>
<div class="acc">
<h3>
<button class="acc__q" type="button" aria-expanded="false">
<span>is the booking process, full online?</span>
<svg class="icon icon--14 acc__plus" aria-hidden="true"><use href="#i-plus" /></svg>
<svg class="icon icon--14 acc__minus" aria-hidden="true"><use href="#i-minus" /></svg>
</button>
</h3>
<div class="acc__a">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut laboreLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore</p>
</div>
</div>
</div>
</section>
<section class="faqcard" id="faq-tours" aria-labelledby="faq-tours-t">
<h2 class="faqcard__title" id="faq-tours-t">Tours</h2>
<div class="accordion" data-accordion>
<div class="acc">
<h3>
<button class="acc__q" type="button" aria-expanded="false">
<span>is the booking process, full online?</span>
<svg class="icon icon--14 acc__plus" aria-hidden="true"><use href="#i-plus" /></svg>
<svg class="icon icon--14 acc__minus" aria-hidden="true"><use href="#i-minus" /></svg>
</button>
</h3>
<div class="acc__a">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut laboreLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore</p>
</div>
</div>
<div class="acc">
<h3>
<button class="acc__q" type="button" aria-expanded="true">
<span>How can i book a tour ?</span>
<svg class="icon icon--14 acc__plus" aria-hidden="true"><use href="#i-plus" /></svg>
<svg class="icon icon--14 acc__minus" aria-hidden="true"><use href="#i-minus" /></svg>
</button>
</h3>
<div class="acc__a">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut laboreLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore</p>
</div>
</div>
<div class="acc">
<h3>
<button class="acc__q" type="button" aria-expanded="false">
<span>is the booking process, full online?</span>
<svg class="icon icon--14 acc__plus" aria-hidden="true"><use href="#i-plus" /></svg>
<svg class="icon icon--14 acc__minus" aria-hidden="true"><use href="#i-minus" /></svg>
</button>
</h3>
<div class="acc__a">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut laboreLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore</p>
</div>
</div>
<div class="acc">
<h3>
<button class="acc__q" type="button" aria-expanded="false">
<span>How can i book a tour ?</span>
<svg class="icon icon--14 acc__plus" aria-hidden="true"><use href="#i-plus" /></svg>
<svg class="icon icon--14 acc__minus" aria-hidden="true"><use href="#i-minus" /></svg>
</button>
</h3>
<div class="acc__a">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut laboreLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore</p>
</div>
</div>
<div class="acc">
<h3>
<button class="acc__q" type="button" aria-expanded="false">
<span>is the booking process, full online?</span>
<svg class="icon icon--14 acc__plus" aria-hidden="true"><use href="#i-plus" /></svg>
<svg class="icon icon--14 acc__minus" aria-hidden="true"><use href="#i-minus" /></svg>
</button>
</h3>
<div class="acc__a">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut laboreLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore</p>
</div>
</div>
</div>
</section>
<section class="faqcard" id="faq-accounts" aria-labelledby="faq-accounts-t">
<h2 class="faqcard__title" id="faq-accounts-t">Accounts</h2>
<div class="accordion" data-accordion>
<div class="acc">
<h3>
<button class="acc__q" type="button" aria-expanded="false">
<span>is the booking process, full online?</span>
<svg class="icon icon--14 acc__plus" aria-hidden="true"><use href="#i-plus" /></svg>
<svg class="icon icon--14 acc__minus" aria-hidden="true"><use href="#i-minus" /></svg>
</button>
</h3>
<div class="acc__a">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut laboreLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore</p>
</div>
</div>
<div class="acc">
<h3>
<button class="acc__q" type="button" aria-expanded="true">
<span>How can i book a tour ?</span>
<svg class="icon icon--14 acc__plus" aria-hidden="true"><use href="#i-plus" /></svg>
<svg class="icon icon--14 acc__minus" aria-hidden="true"><use href="#i-minus" /></svg>
</button>
</h3>
<div class="acc__a">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut laboreLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore</p>
</div>
</div>
<div class="acc">
<h3>
<button class="acc__q" type="button" aria-expanded="false">
<span>is the booking process, full online?</span>
<svg class="icon icon--14 acc__plus" aria-hidden="true"><use href="#i-plus" /></svg>
<svg class="icon icon--14 acc__minus" aria-hidden="true"><use href="#i-minus" /></svg>
</button>
</h3>
<div class="acc__a">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut laboreLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore</p>
</div>
</div>
<div class="acc">
<h3>
<button class="acc__q" type="button" aria-expanded="false">
<span>How can i book a tour ?</span>
<svg class="icon icon--14 acc__plus" aria-hidden="true"><use href="#i-plus" /></svg>
<svg class="icon icon--14 acc__minus" aria-hidden="true"><use href="#i-minus" /></svg>
</button>
</h3>
<div class="acc__a">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut laboreLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore</p>
</div>
</div>
<div class="acc">
<h3>
<button class="acc__q" type="button" aria-expanded="false">
<span>is the booking process, full online?</span>
<svg class="icon icon--14 acc__plus" aria-hidden="true"><use href="#i-plus" /></svg>
<svg class="icon icon--14 acc__minus" aria-hidden="true"><use href="#i-minus" /></svg>
</button>
</h3>
<div class="acc__a">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut laboreLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore</p>
</div>
</div>
</div>
</section>
<section class="faqcard" id="faq-other" aria-labelledby="faq-other-t">
<h2 class="faqcard__title" id="faq-other-t">Other</h2>
<div class="accordion" data-accordion>
<div class="acc">
<h3>
<button class="acc__q" type="button" aria-expanded="false">
<span>is the booking process, full online?</span>
<svg class="icon icon--14 acc__plus" aria-hidden="true"><use href="#i-plus" /></svg>
<svg class="icon icon--14 acc__minus" aria-hidden="true"><use href="#i-minus" /></svg>
</button>
</h3>
<div class="acc__a">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut laboreLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore</p>
</div>
</div>
<div class="acc">
<h3>
<button class="acc__q" type="button" aria-expanded="true">
<span>How can i book a tour ?</span>
<svg class="icon icon--14 acc__plus" aria-hidden="true"><use href="#i-plus" /></svg>
<svg class="icon icon--14 acc__minus" aria-hidden="true"><use href="#i-minus" /></svg>
</button>
</h3>
<div class="acc__a">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut laboreLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore</p>
</div>
</div>
<div class="acc">
<h3>
<button class="acc__q" type="button" aria-expanded="false">
<span>is the booking process, full online?</span>
<svg class="icon icon--14 acc__plus" aria-hidden="true"><use href="#i-plus" /></svg>
<svg class="icon icon--14 acc__minus" aria-hidden="true"><use href="#i-minus" /></svg>
</button>
</h3>
<div class="acc__a">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut laboreLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore</p>
</div>
</div>
<div class="acc">
<h3>
<button class="acc__q" type="button" aria-expanded="false">
<span>How can i book a tour ?</span>
<svg class="icon icon--14 acc__plus" aria-hidden="true"><use href="#i-plus" /></svg>
<svg class="icon icon--14 acc__minus" aria-hidden="true"><use href="#i-minus" /></svg>
</button>
</h3>
<div class="acc__a">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut laboreLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore</p>
</div>
</div>
<div class="acc">
<h3>
<button class="acc__q" type="button" aria-expanded="false">
<span>is the booking process, full online?</span>
<svg class="icon icon--14 acc__plus" aria-hidden="true"><use href="#i-plus" /></svg>
<svg class="icon icon--14 acc__minus" aria-hidden="true"><use href="#i-minus" /></svg>
</button>
</h3>
<div class="acc__a">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut laboreLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore</p>
</div>
</div>
</div>
</section>
</div>
</div>
</div>
</main>
<!-- ============ footer ============ -->
<footer class="footer" id="footer">
<a class="ring-badge ring-badge--top" href="#main" aria-label="Back to top">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">BACK TO TOP &#183; </textPath>
</text>
</svg>
<span class="ring-badge__dot">
<svg class="icon" aria-hidden="true">
<use href="#i-arrow-up" />
</svg>
</span>
</a>
<div class="container footer__inner">
<div class="footer__brand">
<span class="footer__logo">
<svg class="logo" viewBox="0 0 91 40" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Logo">
<g clip-path="url(#clip0_117_3713)">
<path
d="M70.0559 6.63419C69.9035 7.36616 69.76 8.05456 69.6194 8.74587C69.2766 10.4306 68.9338 12.1153 68.6027 13.8C68.5471 14.0759 68.424 14.195 68.1311 14.1892C67.217 14.1776 66.3029 14.1863 65.3888 14.1863C65.0216 14.1863 64.8752 14.0023 64.9494 13.6344C65.2892 11.9381 65.632 10.2418 65.9719 8.54545C66.5021 5.90221 67.0324 3.26188 67.551 0.618649C67.6037 0.348516 67.7209 0.229425 67.9934 0.252662C68.8371 0.316565 69.678 0.235234 70.5217 0.243948C70.9289 0.249757 71.175 0.365944 71.3625 0.758072C72.4407 3.01499 73.551 5.25738 74.6526 7.50268C74.7053 7.61306 74.7288 7.74667 74.8929 7.83671C74.9749 7.44749 75.0569 7.0786 75.1302 6.70971C75.5286 4.72873 75.9212 2.74776 76.3196 0.763881C76.4192 0.272995 76.4397 0.243948 76.9349 0.255567C77.8343 0.272995 78.7366 0.272995 79.6361 0.264281C80.1195 0.258471 80.1458 0.316565 80.0521 0.769691C79.1527 5.11505 78.2474 9.45751 77.3567 13.8058C77.2923 14.1166 77.1575 14.2037 76.8645 14.2008C75.9856 14.1892 75.1067 14.1863 74.2278 14.2008C73.926 14.2066 73.759 14.0904 73.6331 13.8261C72.5374 11.5663 71.4299 9.30937 70.3254 7.05246C70.261 6.92465 70.2229 6.77361 70.0559 6.6429V6.63419Z"
fill="white"></path>
<path
d="M25.5852 14.4942C24.0706 14.5029 22.6584 14.1834 21.4426 13.2249C20.218 12.2605 19.5764 10.9825 19.4299 9.45462C19.0314 5.2661 22.1252 0.682561 27.2552 0.0783925C28.6204 -0.0842682 29.9739 -0.0232704 31.2659 0.502472C33.2464 1.30706 34.3363 2.79715 34.5853 4.8885C35.0658 8.90564 31.887 13.8435 26.7776 14.4303C26.3792 14.4768 25.9837 14.4855 25.5852 14.4942ZM30.6068 6.2014C30.6068 6.05036 30.6155 5.89932 30.6068 5.74828C30.5247 4.54866 29.7015 3.59012 28.5589 3.35484C27.5452 3.14571 26.5843 3.3258 25.7317 3.87478C23.9358 5.03664 23.2473 6.75619 23.4289 8.81559C23.5461 10.1575 24.425 11.0202 25.7288 11.2148C26.5901 11.3426 27.4192 11.1771 28.1546 10.7152C29.8157 9.66956 30.5247 8.09814 30.6068 6.20431V6.2014Z"
fill="white"></path>
<path
d="M31.9078 23.3679C31.8873 27.3705 29.107 30.9636 25.3159 31.8698C23.4995 32.3055 21.6889 32.3346 19.9428 31.5706C18.1176 30.7719 17.0717 29.3544 16.8314 27.4083C16.348 23.455 18.7855 19.6035 22.5766 18.2383C24.188 17.6573 25.8374 17.4831 27.5161 17.8607C30.3316 18.4939 31.9224 20.5039 31.9078 23.3679ZM27.9321 23.9343C27.9321 23.7716 27.9439 23.609 27.9321 23.4463C27.8208 22.0695 26.9184 21.111 25.6001 20.9745C24.8383 20.896 24.1118 21.0296 23.4145 21.3521C21.3139 22.328 20.3412 25.2675 20.9008 27.0858C21.1908 28.0299 21.8266 28.6398 22.8051 28.8461C23.7895 29.0523 24.7329 28.8838 25.5708 28.3552C27.1909 27.3327 27.8384 25.7671 27.9321 23.9314V23.9343Z"
fill="white"></path>
<path
d="M58.5507 0.0115716C60.0009 -0.00876093 61.2607 0.243944 62.3915 0.964298C63.83 1.88217 64.5859 3.21541 64.75 4.88558C65.122 8.63549 62.7783 12.7049 58.7792 14.0411C56.9569 14.651 55.1024 14.7324 53.2713 14.0556C51.1766 13.28 49.7937 11.3862 49.7557 9.16704C49.6912 5.3358 51.4051 2.53572 54.8592 0.807447C55.9549 0.261372 57.2733 0.00866699 58.5536 0.00866699L58.5507 0.0115716ZM60.8417 6.23044C60.8417 6.09101 60.8505 5.95159 60.8417 5.81217C60.7685 4.66773 60.08 3.72082 59.0985 3.42454C58.2079 3.15441 57.3378 3.22993 56.494 3.60172C54.5282 4.46731 53.4178 6.79103 53.7371 8.93177C53.9305 10.2243 54.7508 11.0144 56.0048 11.2119C56.6903 11.3194 57.37 11.2293 57.9911 10.9244C59.9482 9.96582 60.6952 8.27241 60.8388 6.22753L60.8417 6.23044Z"
fill="white"></path>
<path
d="M52.5947 32.1313C51.2353 32.1488 50.0048 31.9077 48.8915 31.2367C47.4149 30.3479 46.6444 28.9943 46.4364 27.3299C45.9969 23.8647 48.1122 20.0044 51.5898 18.4795C53.8046 17.5093 56.0869 17.2973 58.3721 18.2819C60.1328 19.043 61.1231 20.4285 61.3604 22.2904C61.6885 24.8552 60.9238 27.1266 59.2861 29.125C57.7012 31.0595 55.0293 32.201 52.5976 32.1313H52.5947ZM53.1718 28.9043C54.0126 28.9362 54.8095 28.669 55.4804 28.1229C57.0683 26.8332 57.707 25.1456 57.4463 23.1414C57.2969 21.9883 56.4414 21.1488 55.3076 20.9891C54.3378 20.8526 53.4003 21.0094 52.5859 21.5729C50.9716 22.6912 50.3036 24.2888 50.33 26.1971C50.3534 27.8383 51.4726 28.9014 53.1689 28.9014L53.1718 28.9043Z"
fill="white"></path>
<path
d="M11.6694 5.54499C12.3843 5.54499 13.0991 5.52466 13.814 5.55371C14.189 5.56823 14.3149 5.4259 14.3794 5.07444C14.6607 3.60178 14.9741 2.13783 15.2642 0.668076C15.3169 0.392134 15.4429 0.261425 15.7271 0.261425C16.7788 0.261425 17.8306 0.25852 18.8824 0.255615C19.1431 0.255615 19.2222 0.365992 19.1666 0.630316C18.4488 4.06362 17.7369 7.49692 17.0279 10.9302C16.8286 11.8859 16.6265 12.8386 16.4449 13.7971C16.3921 14.076 16.2749 14.1921 15.982 14.1892C14.9624 14.1776 13.9429 14.1892 12.9233 14.1834C12.5395 14.1834 12.5014 14.1341 12.5806 13.7448C12.8794 12.278 13.1811 10.8111 13.4829 9.34428C13.5767 8.89115 13.5767 8.88534 13.1284 8.88534C11.6518 8.88534 10.1753 8.89115 8.7016 8.87663C8.37934 8.87663 8.25629 8.98701 8.19476 9.30071C7.90472 10.8169 7.58538 12.3274 7.28362 13.8436C7.23382 14.0934 7.11956 14.1951 6.85881 14.1921C5.82755 14.1834 4.79629 14.1834 3.76503 14.1921C3.46327 14.1921 3.38416 14.0934 3.44276 13.7942C3.95546 11.2672 4.45351 8.74011 4.95742 6.21016C5.32364 4.37732 5.69571 2.54448 6.05021 0.708741C6.1088 0.403753 6.22892 0.278852 6.55412 0.284662C7.59417 0.30209 8.63422 0.29628 9.6772 0.290471C9.93209 0.290471 10.0083 0.374706 9.95552 0.624506C9.6479 2.09136 9.35493 3.55821 9.04731 5.02506C8.94184 5.53337 8.94477 5.5508 9.48384 5.55371C10.2104 5.55371 10.937 5.55371 11.6636 5.55371L11.6694 5.54499Z"
fill="white"></path>
<path
d="M8.30004 26.537C7.55003 26.537 6.80002 26.5486 6.05002 26.5311C5.76876 26.5253 5.66036 26.6328 5.60763 26.8971C5.31173 28.425 4.99825 29.9499 4.70528 31.4778C4.65254 31.7479 4.53535 31.8438 4.25996 31.8409C3.24042 31.8292 2.22087 31.8263 1.20426 31.8409C0.879063 31.8467 0.799961 31.7479 0.864414 31.4342C1.50895 28.2246 2.1447 25.012 2.78338 21.8024C3.0119 20.6521 3.24921 19.5048 3.46893 18.3516C3.51874 18.0815 3.64179 17.9856 3.91425 17.9915C4.93379 18.0031 5.95334 18.006 6.96995 17.9915C7.29515 17.9856 7.37132 18.0931 7.30687 18.4039C6.99925 19.8708 6.7092 21.3376 6.4133 22.8074C6.35666 23.0901 6.47287 23.2324 6.76194 23.2344C8.23852 23.2344 9.71509 23.2256 11.1887 23.2431C11.5315 23.246 11.6546 23.1298 11.7161 22.8074C12.0003 21.3492 12.3167 19.8969 12.6009 18.4388C12.6683 18.0989 12.8118 17.9856 13.1604 17.9944C14.1565 18.0176 15.1527 18.0118 16.1458 17.9944C16.4593 17.9886 16.5618 18.067 16.4974 18.3923C15.7152 22.1916 14.9417 25.9909 14.1653 29.7902C14.0481 30.3595 13.928 30.9259 13.8226 31.4981C13.7757 31.745 13.6614 31.8496 13.3978 31.8467C12.3665 31.835 11.3352 31.835 10.3069 31.8467C9.96998 31.8496 9.92018 31.7218 9.98463 31.4226C10.2952 29.9441 10.5852 28.4656 10.8841 26.9843C10.9719 26.5428 10.9778 26.5428 10.512 26.5428C9.77369 26.5428 9.0354 26.5428 8.29711 26.5428L8.30004 26.537Z"
fill="white"></path>
<path
d="M41.409 0.252687C42.3202 0.26721 43.536 0.223641 44.7548 0.287543C45.3817 0.319494 45.9882 0.426966 46.5683 0.659339C48.247 1.33031 48.7509 2.55608 48.7451 4.05198C48.7451 4.96404 48.5107 5.84124 48.1093 6.67197C47.1366 8.67909 45.4755 9.7451 43.3251 10.1547C42.1766 10.3754 41.0135 10.2912 39.8563 10.2854C39.4666 10.2854 39.3319 10.4045 39.2674 10.7733C39.0858 11.7784 38.8543 12.7747 38.6639 13.7768C38.6053 14.0905 38.4647 14.1979 38.1453 14.1921C37.1609 14.1776 36.1766 14.1776 35.1951 14.1921C34.8787 14.195 34.782 14.105 34.8494 13.7826C35.7342 9.4372 36.616 5.09184 37.4774 0.743574C37.5535 0.363064 37.7264 0.243973 38.0838 0.246878C39.0916 0.255592 40.0995 0.249782 41.412 0.249782L41.409 0.252687ZM42.1883 3.47395C41.8251 3.47395 41.4618 3.48557 41.1014 3.47104C40.87 3.46233 40.7674 3.54657 40.7206 3.77313C40.5213 4.78685 40.3133 5.79767 40.0995 6.80559C40.0497 7.03796 40.1082 7.128 40.3514 7.1251C41.0428 7.11639 41.7342 7.14253 42.4227 7.11639C43.7001 7.0641 44.4354 6.47446 44.6991 5.34164C44.9657 4.18849 44.4413 3.51461 43.243 3.47976C42.8915 3.46814 42.5399 3.47976 42.1913 3.47976L42.1883 3.47395Z"
fill="white"></path>
<path
d="M38.2882 27.9951C37.8546 27.9951 37.421 28.0038 36.9874 27.9922C36.7442 27.9864 36.6387 28.0793 36.5918 28.3233C36.3956 29.3486 36.1641 30.3682 35.9737 31.3964C35.9122 31.7392 35.7715 31.8554 35.42 31.8467C34.459 31.8234 33.4981 31.8408 32.54 31.8379C32.0947 31.8379 32.0772 31.8147 32.165 31.379C32.7305 28.5789 33.2988 25.7817 33.8643 22.9816C34.1778 21.4335 34.4971 19.8882 34.7989 18.34C34.8487 18.0844 34.9571 17.9915 35.2178 17.9944C37.4913 18.0031 39.7618 17.9769 42.0353 18.0147C43.1105 18.0321 44.1124 18.3458 44.9269 19.101C45.7062 19.8243 45.9435 20.7625 45.9289 21.7617C45.9025 23.4464 45.299 24.922 44.089 26.1129C42.9845 27.1992 41.6163 27.7598 40.0811 27.9399C39.4864 28.0096 38.8887 27.9922 38.2911 27.9951H38.2882ZM38.7833 24.7825C39.088 24.7825 39.3927 24.7883 39.6974 24.7825C40.9396 24.7593 41.6573 24.1871 41.9415 22.9904C42.2023 21.8982 41.6778 21.204 40.5499 21.1779C39.8233 21.1604 39.0968 21.1779 38.3731 21.1691C38.1475 21.1662 38.0362 21.2359 37.9923 21.4654C37.793 22.4791 37.585 23.49 37.3682 24.5008C37.3243 24.7099 37.3946 24.7825 37.5909 24.7825C37.9893 24.7825 38.3878 24.7825 38.7862 24.7825H38.7833Z"
fill="white"></path>
<path
d="M69.259 17.9973C70.7707 17.9973 72.2825 17.9973 73.7913 17.9973C74.2395 17.9973 74.2483 18.0147 74.1546 18.4562C73.9905 19.2288 73.8206 20.0015 73.677 20.777C73.6213 21.0733 73.4866 21.1779 73.1819 21.175C71.4006 21.1633 69.6193 21.1779 67.841 21.1633C67.507 21.1604 67.3547 21.265 67.299 21.5903C67.1994 22.1625 67.0734 22.729 66.9387 23.2954C66.8713 23.58 66.9562 23.6555 67.2463 23.6526C68.8869 23.641 70.5276 23.6468 72.1653 23.6468C72.637 23.6468 72.6545 23.6701 72.5666 24.1174C72.4172 24.8581 72.2532 25.5958 72.1213 26.3365C72.0569 26.6909 71.9192 26.839 71.5237 26.8332C69.9065 26.81 68.2893 26.8332 66.675 26.8187C66.3498 26.8158 66.2267 26.9291 66.1681 27.2341C65.9015 28.6254 65.6056 30.0109 65.342 31.4023C65.2804 31.7218 65.1632 31.8525 64.8175 31.8467C63.8566 31.8263 62.8956 31.8321 61.9347 31.8409C61.6212 31.8438 61.5275 31.7566 61.5948 31.4313C62.3449 27.7569 63.0802 24.0796 63.8214 20.4023C63.9591 19.7197 64.1056 19.0371 64.2316 18.3516C64.2785 18.096 64.3693 17.9827 64.6623 17.9857C66.1974 18.0031 67.7326 17.9944 69.2648 17.9944L69.259 17.9973Z"
fill="white"></path>
<path
d="M80.8548 17.9943C82.3783 17.9943 83.9017 18.0001 85.4252 17.9885C85.7181 17.9885 85.7972 18.067 85.7357 18.3516C85.5541 19.1562 85.3812 19.9637 85.2318 20.7741C85.1761 21.0762 85.0472 21.1778 84.7425 21.1749C82.9613 21.1633 81.18 21.1807 79.3987 21.1633C79.0442 21.1604 78.9007 21.2708 78.8479 21.6164C78.763 22.177 78.6458 22.7376 78.5081 23.2895C78.4319 23.5916 78.5345 23.6497 78.8128 23.6497C80.4534 23.641 82.0941 23.6468 83.7347 23.6497C84.2064 23.6497 84.2122 23.6642 84.1156 24.1261C83.9574 24.8871 83.7933 25.6481 83.6556 26.4149C83.5999 26.7199 83.4769 26.839 83.1488 26.8361C81.5198 26.8216 79.8909 26.8361 78.262 26.8245C77.9339 26.8245 77.7874 26.9058 77.7229 27.2457C77.4622 28.6254 77.1575 29.9993 76.8938 31.379C76.8264 31.7333 76.677 31.8583 76.3137 31.8495C75.3645 31.8263 74.4153 31.835 73.466 31.8437C73.1731 31.8437 73.0735 31.7711 73.1379 31.4545C73.9524 27.4722 74.7522 23.487 75.5579 19.5019C75.634 19.1271 75.7366 18.7554 75.7835 18.3748C75.8245 18.0495 75.9944 17.9943 76.2815 17.9972C77.805 18.006 79.3284 18.003 80.8519 18.003V17.9972L80.8548 17.9943Z"
fill="white"></path>
<path
d="M69.751 31.7769C70.4014 31.8728 70.999 31.9744 71.5967 32.0412C75.7891 32.5176 79.8409 31.9889 83.7287 30.3391C84.8713 29.854 85.9611 29.2644 87.0158 28.6108C87.2824 28.4453 87.3996 28.2797 87.3088 27.9602C87.2209 27.6494 87.1828 27.3241 87.1242 27.0046C87.1037 26.8826 87.01 26.7286 87.1242 26.6444C87.2385 26.5601 87.3644 26.6879 87.4699 26.7548C88.4397 27.3444 89.4065 27.9311 90.3703 28.5295C91.1643 29.0233 91.1614 29.0262 90.5989 29.7843C89.9045 30.7196 89.216 31.6607 88.5217 32.5931C88.4572 32.6802 88.4162 32.8371 88.2756 32.7993C88.1555 32.7674 88.1936 32.6222 88.1701 32.5263C88.0969 32.1865 88.0266 31.8437 87.965 31.501C87.9211 31.2541 87.8127 31.2076 87.5783 31.3034C85.4953 32.1458 83.3332 32.6919 81.1066 32.991C77.3595 33.4994 73.6797 33.2496 70.0938 31.9977C69.9883 31.9599 69.8652 31.9483 69.751 31.7798V31.7769Z"
fill="white"></path>
<path
d="M65.8896 15.0316C66.2324 15.0083 66.54 15.1274 66.8535 15.171C72.5343 15.9756 77.8634 15.081 82.7443 11.973C83.0432 11.7813 83.1252 11.5925 83.0314 11.2642C82.9435 10.9534 82.8996 10.6281 82.8439 10.3086C82.8293 10.2244 82.7648 10.114 82.8644 10.053C82.9582 9.99781 83.0432 10.085 83.1193 10.1314C84.1096 10.7327 85.094 11.3369 86.0813 11.9381C86.2893 12.0659 86.4973 12.1995 86.7082 12.3244C86.8811 12.4261 86.8899 12.5423 86.7698 12.6933C85.9026 13.8058 85.0412 14.9212 84.174 16.0337C84.1272 16.0947 84.0861 16.1905 83.9865 16.1586C83.8898 16.1295 83.9016 16.0279 83.8869 15.9524C83.8107 15.5893 83.7346 15.2262 83.6672 14.8602C83.6262 14.6365 83.5676 14.5378 83.301 14.6453C81.3029 15.444 79.2316 15.9698 77.0988 16.2544C75.1065 16.5188 73.1114 16.5449 71.1104 16.3271C69.4375 16.1441 67.8057 15.8013 66.2207 15.2407C66.1064 15.2 65.9629 15.203 65.8896 15.0345V15.0316Z"
fill="white"></path>
<path
d="M67.8024 37.6762C68.1276 37.1302 68.4997 36.6073 68.7663 36.0351C69.0592 35.4048 69.4577 35.0766 70.1725 35.2218C70.2165 35.2305 70.2663 35.2218 70.3132 35.2218C70.7175 35.2276 70.7468 35.2567 70.6764 35.643C70.4743 36.7264 70.2663 37.8098 70.0612 38.8933C70.0143 39.1315 69.9674 39.3726 69.9294 39.6136C69.8942 39.8315 69.7829 39.9215 69.5514 39.9302C68.7047 39.9593 68.7047 39.9651 68.8659 39.1344C68.986 38.5099 69.1061 37.8854 69.1559 37.2289C68.9567 37.5717 68.7604 37.9173 68.5612 38.2601C68.3122 38.6929 68.0573 39.1257 67.817 39.5643C67.7057 39.7647 67.5768 39.8954 67.3219 39.8634C67.0612 39.8286 67.067 39.6224 67.0319 39.4481C66.8766 38.6987 66.7242 37.9464 66.5133 37.1883C66.3961 37.8128 66.2789 38.4373 66.1617 39.0647C66.15 39.1228 66.1442 39.1808 66.1354 39.236C66.0035 39.9361 66.0035 39.9215 65.2682 39.9273C64.9371 39.9302 64.8668 39.8199 64.9283 39.5149C65.1568 38.3879 65.3678 37.258 65.5875 36.1281C65.6139 35.9915 65.6402 35.855 65.6695 35.7185C65.7379 35.3835 65.9381 35.216 66.2701 35.216C66.9303 35.216 67.32 35.5336 67.4391 36.1687C67.5329 36.6596 67.6325 37.1476 67.7291 37.6356C67.7555 37.6472 67.7819 37.6559 67.8082 37.6675L67.8024 37.6762Z"
fill="white"></path>
<path
d="M58.6563 37.9842C58.6681 36.3082 59.8868 35.1115 61.548 35.1521C62.5499 35.1754 63.2999 35.7941 63.4406 36.7787C63.6691 38.3763 62.4562 40.1656 60.423 39.9884C59.3126 39.8925 58.6475 39.1199 58.6563 37.9871V37.9842ZM59.8165 37.8099C59.8048 38.2543 59.8985 38.6551 60.3556 38.8498C60.8155 39.0444 61.2609 38.9747 61.6388 38.658C62.1368 38.2398 62.3478 37.685 62.2628 37.0431C62.1749 36.3605 61.6505 36.0264 60.9737 36.2007C60.297 36.375 59.8282 37.0256 59.8136 37.8099H59.8165Z"
fill="white"></path>
<path
d="M34.8758 39.9274C34.4305 39.9274 33.9852 39.9245 33.5399 39.9274C33.3143 39.9303 33.2176 39.8606 33.2645 39.6166C33.5311 38.2369 33.7889 36.8572 34.0438 35.4775C34.0789 35.2945 34.1727 35.219 34.3543 35.2219C35.2684 35.2219 36.1825 35.2219 37.0936 35.2219C37.3133 35.2219 37.3924 35.3119 37.3397 35.524C37.3221 35.5908 37.3192 35.6605 37.3075 35.7302C37.245 36.0633 37.0428 36.2298 36.701 36.2298C36.2674 36.2298 35.8338 36.2269 35.4002 36.2298C35.1043 36.2298 34.8143 36.6684 34.9198 36.9443C34.9666 37.0634 35.0721 37.0315 35.16 37.0315C35.6522 37.0344 36.1444 37.0489 36.6366 37.0315C36.9559 37.0199 37.0292 37.1477 36.9559 37.4265C36.9296 37.5282 36.9061 37.6298 36.8944 37.7344C36.871 37.9639 36.745 38.051 36.5165 38.0452C36.036 38.0365 35.5555 38.0394 35.075 38.0452C34.7528 38.0452 34.4334 38.5506 34.5682 38.8382C34.6209 38.9515 34.7264 38.9166 34.8143 38.9195C35.3416 38.9224 35.869 38.9311 36.3963 38.9195C36.6483 38.9137 36.745 39.0037 36.6835 39.2477C36.6747 39.2826 36.6747 39.3174 36.6688 39.3523C36.6024 39.7415 36.3661 39.9361 35.9598 39.9361C35.5965 39.9361 35.2332 39.9361 34.87 39.9361L34.8758 39.9274Z"
fill="white"></path>
<path
d="M78.8237 38.0422C77.1361 38.0422 75.4516 38.0422 73.764 38.0422C73.2806 38.0422 73.2689 38.0277 73.3539 37.5804C73.4281 37.1776 73.6732 36.9762 74.0892 36.9762C77.4145 36.9762 80.7397 36.9762 84.0649 36.9762C84.5776 36.9762 84.5835 36.9849 84.4809 37.4874C84.4067 37.8553 84.1831 38.0393 83.81 38.0393C82.146 38.0393 80.4848 38.0393 78.8207 38.0393L78.8237 38.0422Z"
fill="white"></path>
<path
d="M29.0368 36.9792C29.4616 36.5377 29.904 36.1078 30.3083 35.6489C30.5954 35.3236 30.9147 35.158 31.3512 35.2248C31.5739 35.2597 31.9167 35.1115 31.9928 35.3061C32.0661 35.4891 31.735 35.6489 31.5768 35.8086C31.1374 36.2589 30.695 36.7062 30.2321 37.1332C30.0299 37.3191 30.0182 37.473 30.1501 37.7025C30.5075 38.3299 30.8356 38.9689 31.1872 39.5992C31.3219 39.8403 31.2721 39.9332 30.9909 39.9245C29.8161 39.8984 30.1266 40.1017 29.6051 39.0967C29.4997 38.8905 29.3854 38.6842 29.3004 38.4693C29.1774 38.1643 29.0485 38.2224 28.8522 38.4112C28.6178 38.6378 28.6178 38.9369 28.5621 39.2129C28.4039 39.9942 28.6002 39.9216 27.6129 39.9245C27.358 39.9245 27.2906 39.8229 27.3405 39.5789C27.5543 38.4867 27.7565 37.3917 27.9616 36.2966C27.985 36.1717 28.0055 36.0439 28.0289 35.919C28.1637 35.2016 28.3248 35.0999 29.069 35.2219C29.3092 35.2626 29.2623 35.4136 29.2389 35.5588C29.1569 36.0207 29.069 36.4825 28.9811 36.9444C29.0016 36.956 29.0192 36.9647 29.0397 36.9763L29.0368 36.9792Z"
fill="white"></path>
<path
d="M45.7943 39.9971C45.267 39.9738 44.7133 39.8664 44.2445 39.4859C44.0424 39.3203 43.9955 39.1605 44.1918 38.9659C44.2093 38.9485 44.2211 38.9311 44.2386 38.9136C44.3881 38.751 44.5082 38.5157 44.6928 38.4431C44.9008 38.3589 45.0092 38.6609 45.1937 38.7539C45.5951 38.9543 46.0023 39.0618 46.4447 38.9107C46.6234 38.8497 46.7582 38.7365 46.767 38.5418C46.7758 38.3443 46.6264 38.2543 46.4652 38.2049C46.143 38.1032 45.809 38.0306 45.4896 37.9202C44.6049 37.6124 44.3383 36.8571 44.8129 36.0526C45.2025 35.3961 46.0609 35.0446 46.9604 35.1753C47.3588 35.2334 47.7309 35.3612 48.0619 35.5965C48.2377 35.7214 48.3051 35.8434 48.1322 36.0177C48.0824 36.0671 48.0443 36.1281 48.0004 36.1804C47.7719 36.4515 47.5024 36.5125 47.1918 36.3634C46.89 36.2181 46.5766 36.1339 46.2396 36.1775C46.017 36.2065 45.8119 36.3024 45.7826 36.5405C45.7504 36.7845 45.9818 36.8281 46.1547 36.8833C46.4096 36.9675 46.6762 37.0227 46.9311 37.1069C47.4115 37.2667 47.8715 37.47 47.9389 38.0481C48.0151 38.7219 47.7924 39.2883 47.1977 39.6659C46.7904 39.9245 46.3305 40 45.7973 40.0029L45.7943 39.9971Z"
fill="white"></path>
<path
d="M5.07682 38.0422C3.51821 38.0422 1.96253 38.0422 0.403916 38.0422C-0.0384717 38.0422 -0.0443311 38.0335 0.0435605 37.6094C0.131452 37.1873 0.398057 36.9762 0.843374 36.9762C3.84341 36.9762 6.84051 36.9762 9.84054 36.9762C10.2175 36.9762 10.3708 37.1553 10.3005 37.5136C10.2302 37.8718 10.0124 38.047 9.64718 38.0393C8.12373 38.0393 6.60027 38.0393 5.07975 38.0393L5.07682 38.0422Z"
fill="white"></path>
<path
d="M52.6826 37.9812C52.6914 36.0613 54.5401 34.6757 56.2422 35.2712C56.6524 35.4135 56.9307 35.6953 57.1387 36.0613C57.25 36.2559 57.209 36.3895 56.9922 36.4679C56.9043 36.4999 56.8135 36.5318 56.7373 36.5812C56.4385 36.7729 56.2159 36.7584 55.9815 36.4447C55.7412 36.1194 55.3574 36.1048 54.9883 36.2152C54.1797 36.4505 53.6436 37.4526 53.8867 38.2543C54.1182 39.0182 55.0821 39.2041 55.7149 38.6145C55.8174 38.5186 55.8789 38.292 56.0518 38.3618C56.3067 38.4663 56.5381 38.6348 56.7696 38.7887C56.837 38.8352 56.7842 38.9165 56.7432 38.9746C56.2627 39.6253 55.6153 39.9767 54.8008 39.9942C54.0274 40.0116 53.374 39.7734 52.9551 39.0763C52.7412 38.7248 52.668 38.3443 52.6855 37.9812H52.6826Z"
fill="white"></path>
<path
d="M21.4606 37.8941C21.4635 36.2966 22.7731 35.0563 24.4636 35.1579C25.1052 35.1957 25.5945 35.4978 25.9197 36.0555C26.0368 36.2559 26.0427 36.4011 25.782 36.4737C25.6823 36.5028 25.5798 36.5435 25.489 36.5928C25.2165 36.7497 25.0232 36.7729 24.7976 36.4592C24.5632 36.131 24.156 36.1019 23.7692 36.2094C22.902 36.4476 22.363 37.5368 22.697 38.3705C22.9665 39.0473 23.9245 39.1751 24.4958 38.6116C24.5954 38.5128 24.6511 38.2979 24.8415 38.3734C25.0993 38.478 25.3513 38.6145 25.5534 38.8091C25.6238 38.8788 25.5359 38.9572 25.4919 39.024C24.8298 40 23.2331 40.3108 22.2546 39.6427C21.6745 39.2477 21.446 38.6726 21.4606 37.8912V37.8941Z"
fill="white"></path>
<path
d="M14.983 35.2219C15.4986 35.2219 16.0113 35.2277 16.527 35.2219C16.776 35.219 16.8756 35.3119 16.8053 35.5588C16.7907 35.614 16.7877 35.6721 16.776 35.7302C16.7115 36.0632 16.5114 36.2298 16.1754 36.2298C15.4137 36.2298 15.4108 36.2298 15.2672 36.9763C15.1119 37.7954 14.9596 38.6174 14.8102 39.4394C14.7223 39.9216 14.7193 39.9245 14.2301 39.9274C13.7887 39.9274 13.61 39.7086 13.6939 39.271C13.8639 38.3821 14.025 37.4933 14.2066 36.6074C14.2652 36.3198 14.2066 36.1949 13.8873 36.2269C13.6676 36.2472 13.442 36.2298 13.2223 36.2269C13.0435 36.2269 12.9644 36.1397 13.0025 35.9597C13.0084 35.9364 13.0113 35.9132 13.0142 35.8899C13.0728 35.4426 13.3297 35.2199 13.7848 35.2219C13.9605 35.2219 14.1363 35.2219 14.3121 35.2219C14.5348 35.2219 14.7574 35.2219 14.9801 35.2219H14.983Z"
fill="white"></path>
<path
d="M41.2414 35.2219C41.7219 35.2219 42.2024 35.2393 42.6799 35.2161C43.0198 35.1987 43.0959 35.3352 43.011 35.6256C43.0051 35.6489 43.0022 35.6721 42.9993 35.6953C42.9309 36.0517 42.7151 36.2298 42.3518 36.2298C41.4524 36.2298 41.6457 36.1659 41.4875 36.9502C41.3117 37.8245 41.1447 38.7017 40.9953 39.5818C40.9514 39.8403 40.8488 39.9361 40.5852 39.9332C39.633 39.9158 39.759 40.0204 39.9201 39.1432C40.0783 38.2892 40.2424 37.4352 40.4211 36.5813C40.4768 36.3082 40.383 36.2124 40.1193 36.2327C40.049 36.2385 39.9787 36.2327 39.9084 36.2327C39.1203 36.2327 39.1994 36.3169 39.3313 35.5065C39.3664 35.2916 39.4895 35.2219 39.6975 35.2248C40.2131 35.2306 40.7258 35.2248 41.2414 35.2248V35.2219Z"
fill="white"></path>
<path
d="M18.5449 39.9216C18.4511 39.9216 18.3574 39.9216 18.2636 39.9216C18.0644 39.9216 17.9911 39.8374 18.0292 39.637C18.29 38.2689 18.5507 36.9008 18.8027 35.5327C18.8466 35.2887 18.9814 35.219 19.2158 35.2161C20.0214 35.2016 20.0097 35.1928 19.8574 35.9626C19.6347 37.1012 19.4296 38.2427 19.2128 39.3814C19.1103 39.9245 19.1074 39.9216 18.5419 39.9187L18.5449 39.9216Z"
fill="white"></path>
<path
d="M50.9005 39.2506C50.9005 39.6514 50.59 39.9797 50.212 39.9826C49.8839 39.9855 49.629 39.7357 49.6349 39.4133C49.6437 39.0095 49.9864 38.6493 50.3526 38.6522C50.6661 38.6522 50.9005 38.9108 50.9005 39.2506Z"
fill="white"></path>
</g>
<defs>
<clipPath id="clip0_117_3713">
<rect width="91" height="40" fill="white"></rect>
</clipPath>
</defs>
</svg>
</span>
<p class="footer__about">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet.</p>
</div>
<nav class="footer__cols" aria-label="Footer">
<div class="footer__col">
<h2 class="footer__ct">Quick Access</h2>
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="tours.html">Tours</a></li>
<li><a href="blog.html">Weblog</a></li>
<li><a href="contact.html">Contact us</a></li>
<li><a href="about.html">About us</a></li>
</ul>
</div>
<div class="footer__col">
<h2 class="footer__ct">Tours</h2>
<ul>
<li><a href="tours.html">London</a></li>
<li><a href="tours.html">Nashville</a></li>
<li><a href="tours.html">Sydney</a></li>
<li><a href="tours.html">San Diego</a></li>
<li><a href="tours.html">Paris</a></li>
</ul>
</div>
<div class="footer__col">
<h2 class="footer__ct">User Account</h2>
<ul>
<li><a href="#">Sign in</a></li>
<li><a href="#">Forget Password</a></li>
<li><a href="#">Booking History</a></li>
<li><a href="#">Support</a></li>
<li><a href="#">Dashboard</a></li>
</ul>
</div>
</nav>
</div>
<div class="container footer__bar">
<p class="footer__copy">&copy; 2026 Hop on Hop Off. All rights reserved.</p>
<ul class="socials">
<li><a href="#" aria-label="WhatsApp"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-whatsapp" />
</svg></a></li>
<li><a href="#" aria-label="Instagram"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-instagram" />
</svg></a></li>
<li><a href="#" aria-label="Telegram"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-telegram" />
</svg></a></li>
<li><a href="#" aria-label="Facebook"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-facebook" />
</svg></a></li>
</ul>
</div>
<a class="support" href="#" aria-label="Support">
<svg class="ring-badge__ring support__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">SUPPORT &#183; SUPPORT &#183; SUPPORT &#183; </textPath>
</text>
</svg>
<span class="support__tab">
<svg class="icon icon--24" aria-hidden="true">
<use href="#i-headset" />
</svg>
</span>
</a>
</footer>
<script src="js/main.js"></script>
</body>
</html>

View File

@@ -303,10 +303,10 @@
<li><a href="tours.html">Paris</a></li> <li><a href="tours.html">Paris</a></li>
</ul> </ul>
</li> </li>
<li><a class="nav__link" href="#articles">Weblog</a></li> <li><a class="nav__link" href="blog.html">Weblog</a></li>
<li><a class="nav__link" href="#faq">FAQ&rsquo;s</a></li> <li><a class="nav__link" href="faq.html">FAQ&rsquo;s</a></li>
<li><a class="nav__link" href="#footer">Contact us</a></li> <li><a class="nav__link" href="contact.html">Contact us</a></li>
<li><a class="nav__link" href="#about">About us</a></li> <li><a class="nav__link" href="about.html">About us</a></li>
</ul> </ul>
</nav> </nav>
</div> </div>
@@ -1062,7 +1062,7 @@
<div class="about__body"> <div class="about__body">
<div class="about__head"> <div class="about__head">
<h2 class="about__title">Hop On Hop Off<span class="chip chip--accent about__chip">Memorable</span></h2> <h2 class="about__title">Hop On Hop Off<span class="chip chip--accent about__chip">Memorable</span></h2>
<a class="btn btn--dark" href="#about"> <a class="btn btn--dark" href="about.html">
<span>About us</span> <span>About us</span>
<svg class="icon" aria-hidden="true"> <svg class="icon" aria-hidden="true">
<use href="#i-arrow-right" /> <use href="#i-arrow-right" />
@@ -1169,7 +1169,7 @@
<p class="sec-head__lead">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor <p class="sec-head__lead">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua</p> incididunt ut labore et dolore magna aliqua</p>
<div class="sec-head__actions"> <div class="sec-head__actions">
<a class="btn btn--ghost btn--wide" href="#articles"> <a class="btn btn--ghost btn--wide" href="blog.html">
<span>See all</span> <span>See all</span>
<svg class="icon" aria-hidden="true"> <svg class="icon" aria-hidden="true">
<use href="#i-arrow-ne" /> <use href="#i-arrow-ne" />
@@ -1199,7 +1199,7 @@
<span class="chip chip--glass acard__time">3 hours ago</span> <span class="chip chip--glass acard__time">3 hours ago</span>
<div class="acard__overlay"> <div class="acard__overlay">
<h3 class="acard__title">Finding the best tour might be a little challange!</h3> <h3 class="acard__title">Finding the best tour might be a little challange!</h3>
<a class="ring-badge ring-badge--card" href="#articles" aria-label="Read the article"> <a class="ring-badge ring-badge--card" href="blog-post.html" aria-label="Read the article">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">READ MORE &#183; READ MORE &#183; </textPath> <textPath href="#ringPathScroll" startOffset="0">READ MORE &#183; READ MORE &#183; </textPath>
@@ -1223,7 +1223,7 @@
<span class="chip chip--glass acard__time">3 Days ago</span> <span class="chip chip--glass acard__time">3 Days ago</span>
<div class="acard__overlay"> <div class="acard__overlay">
<h3 class="acard__title">Finding the best tour might be a little challange!</h3> <h3 class="acard__title">Finding the best tour might be a little challange!</h3>
<a class="ring-badge ring-badge--card ring-badge--accent" href="#articles" aria-label="Read the article"> <a class="ring-badge ring-badge--card ring-badge--accent" href="blog-post.html" aria-label="Read the article">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">READ MORE &#183; READ MORE &#183; </textPath> <textPath href="#ringPathScroll" startOffset="0">READ MORE &#183; READ MORE &#183; </textPath>
@@ -1247,7 +1247,7 @@
<span class="chip chip--glass acard__time">2026/12/04</span> <span class="chip chip--glass acard__time">2026/12/04</span>
<div class="acard__overlay"> <div class="acard__overlay">
<h3 class="acard__title">Finding the best tour might be a little challange!</h3> <h3 class="acard__title">Finding the best tour might be a little challange!</h3>
<a class="ring-badge ring-badge--card" href="#articles" aria-label="Read the article"> <a class="ring-badge ring-badge--card" href="blog-post.html" aria-label="Read the article">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">READ MORE &#183; READ MORE &#183; </textPath> <textPath href="#ringPathScroll" startOffset="0">READ MORE &#183; READ MORE &#183; </textPath>
@@ -1495,9 +1495,9 @@
<ul> <ul>
<li><a href="#main">Home</a></li> <li><a href="#main">Home</a></li>
<li><a href="tours.html">Tours</a></li> <li><a href="tours.html">Tours</a></li>
<li><a href="#articles">Weblog</a></li> <li><a href="blog.html">Weblog</a></li>
<li><a href="#footer">Contact us</a></li> <li><a href="contact.html">Contact us</a></li>
<li><a href="#about">About us</a></li> <li><a href="about.html">About us</a></li>
</ul> </ul>
</div> </div>
<div class="footer__col"> <div class="footer__col">

View File

@@ -122,8 +122,7 @@
} }
/* ---------- FAQ accordion ---------- */ /* ---------- FAQ accordion ---------- */
var accordion = document.querySelector('[data-accordion]'); Array.prototype.forEach.call(document.querySelectorAll('[data-accordion]'), function (accordion) {
if (accordion) {
accordion.addEventListener('click', function (e) { accordion.addEventListener('click', function (e) {
var btn = e.target.closest('.acc__q'); var btn = e.target.closest('.acc__q');
if (!btn) return; if (!btn) return;
@@ -133,7 +132,7 @@
}); });
btn.setAttribute('aria-expanded', String(!open)); btn.setAttribute('aria-expanded', String(!open));
}); });
} });
/* ---------- date field: text placeholder, native picker on focus ---------- */ /* ---------- date field: text placeholder, native picker on focus ---------- */
var dateField = document.querySelector('[data-datefield]'); var dateField = document.querySelector('[data-datefield]');
@@ -253,7 +252,9 @@
'price-asc': function (a, b) { return Number(a.dataset.price) - Number(b.dataset.price); }, 'price-asc': function (a, b) { return Number(a.dataset.price) - Number(b.dataset.price); },
'price-desc': function (a, b) { return Number(b.dataset.price) - Number(a.dataset.price); }, 'price-desc': function (a, b) { return Number(b.dataset.price) - Number(a.dataset.price); },
rating: function (a, b) { return Number(b.dataset.rating) - Number(a.dataset.rating); }, rating: function (a, b) { return Number(b.dataset.rating) - Number(a.dataset.rating); },
duration: function (a, b) { return durationDays(a) - durationDays(b); } duration: function (a, b) { return durationDays(a) - durationDays(b); },
oldest: function (a, b) { return Number(a.dataset.added) - Number(b.dataset.added); },
title: function (a, b) { return a.dataset.title.localeCompare(b.dataset.title); }
}; };
function durationDays(el) { function durationDays(el) {
@@ -314,8 +315,9 @@
/* built from numbers only, so the markup here is safe to assign as HTML */ /* built from numbers only, so the markup here is safe to assign as HTML */
function countText(start, shownCount) { function countText(start, shownCount) {
var total = matches.length; var total = matches.length;
if (!total) return 'No tours found'; var base = (countEl && countEl.getAttribute('data-noun')) || 'tour';
var noun = total === 1 ? 'tour' : 'tours'; if (!total) return 'No ' + base + 's found';
var noun = total === 1 ? base : base + 's';
if (shownCount === total) return 'Showing <b>' + total + '</b> ' + noun; if (shownCount === total) return 'Showing <b>' + total + '</b> ' + noun;
return 'Showing <b>' + (start + 1) + '&ndash;' + (start + shownCount) + return 'Showing <b>' + (start + 1) + '&ndash;' + (start + shownCount) +
'</b> of <b>' + total + '</b> ' + noun; '</b> of <b>' + total + '</b> ' + noun;
@@ -351,7 +353,7 @@
function setHighlight(el, on) { function setHighlight(el, on) {
el.classList.toggle('is-active', on); el.classList.toggle('is-active', on);
var card = el.querySelector('.dcard'); var card = el.querySelector('.dcard, .acard');
var badge = el.querySelector('.ring-badge--card'); var badge = el.querySelector('.ring-badge--card');
if (card) card.classList.toggle('is-active', on); if (card) card.classList.toggle('is-active', on);
if (badge) badge.classList.toggle('ring-badge--accent', on); if (badge) badge.classList.toggle('ring-badge--accent', on);
@@ -370,7 +372,7 @@
if (next < 1 || next > totalPages || next === page) return; if (next < 1 || next > totalPages || next === page) return;
page = next; page = next;
render(); render();
var list = document.getElementById('tour-list'); var list = grid.closest('section');
if (list) list.scrollIntoView({ block: 'start', behavior: 'smooth' }); if (list) list.scrollIntoView({ block: 'start', behavior: 'smooth' });
} }
@@ -416,4 +418,157 @@
apply(); apply();
} }
/* ---------- single article: share, reviews ---------- */
var post = document.getElementById('post');
if (post) {
var pageUrl = encodeURIComponent(window.location.href);
var shareTargets = {
telegram: 'https://t.me/share/url?url=',
facebook: 'https://www.facebook.com/sharer/sharer.php?u=',
whatsapp: 'https://wa.me/?text='
};
Array.prototype.forEach.call(post.querySelectorAll('[data-share]'), function (a) {
var base = shareTargets[a.getAttribute('data-share')];
if (base) a.href = base + pageUrl;
});
var copyBtn = post.querySelector('[data-copy-link]');
if (copyBtn) {
var copyLabel = copyBtn.textContent;
copyBtn.addEventListener('click', function () {
var done = function () {
copyBtn.textContent = 'Link copied';
copyBtn.classList.add('is-done');
window.setTimeout(function () {
copyBtn.textContent = copyLabel;
copyBtn.classList.remove('is-done');
}, 2000);
};
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(window.location.href).then(done, function () {});
}
});
}
var reviewList = document.getElementById('reviewList');
var reviewMore = document.getElementById('reviewMore');
if (reviewList && reviewMore) {
var moreLabel = reviewMore.querySelector('span');
reviewMore.addEventListener('click', function () {
var open = reviewList.classList.toggle('is-collapsed') === false;
reviewMore.setAttribute('aria-expanded', String(open));
moreLabel.textContent = open ? 'Show fewer reviews' : 'Show all reviews';
});
}
/* a thumb is a toggle, and up and down are mutually exclusive */
post.addEventListener('click', function (e) {
var vote = e.target.closest('.vote');
if (!vote) return;
var pressed = vote.getAttribute('aria-pressed') !== 'true';
Array.prototype.forEach.call(vote.parentNode.querySelectorAll('.vote'), function (v) {
v.setAttribute('aria-pressed', 'false');
});
vote.setAttribute('aria-pressed', String(pressed));
});
var reviewForm = document.getElementById('reviewForm');
var reviewStatus = document.getElementById('reviewStatus');
if (reviewForm && reviewStatus) {
reviewForm.addEventListener('submit', function (e) {
e.preventDefault();
var bad = null;
Array.prototype.forEach.call(reviewForm.querySelectorAll('.rinput'), function (field) {
var ok = field.value.trim() !== '' && field.checkValidity();
field.setAttribute('aria-invalid', String(!ok));
if (!ok && !bad) bad = field;
});
reviewStatus.classList.toggle('is-error', !!bad);
if (bad) {
reviewStatus.textContent = 'Please fill in your name, a valid email and your review.';
bad.focus();
return;
}
reviewStatus.textContent = 'Thanks! Your review has been submitted for approval.';
reviewForm.reset();
});
}
}
/* ---------- FAQ page: category nav follows the scroll ---------- */
var catLinks = Array.prototype.slice.call(document.querySelectorAll('.catnav__link'));
if (catLinks.length && 'IntersectionObserver' in window) {
var setCat = function (id) {
catLinks.forEach(function (a) {
var on = a.getAttribute('href') === '#' + id;
a.classList.toggle('is-active', on);
if (on) a.setAttribute('aria-current', 'true');
else a.removeAttribute('aria-current');
});
};
var catObserver = new IntersectionObserver(function (entries) {
entries.forEach(function (entry) {
if (entry.isIntersecting) setCat(entry.target.id);
});
}, { rootMargin: '-30% 0px -60% 0px' });
catLinks.forEach(function (a) {
var target = document.querySelector(a.getAttribute('href'));
if (target) catObserver.observe(target);
});
}
/* ---------- contact ticket form ---------- */
var ticketForm = document.getElementById('ticketForm');
var ticketStatus = document.getElementById('ticketStatus');
if (ticketForm && ticketStatus) {
ticketForm.addEventListener('submit', function (e) {
e.preventDefault();
var bad = null;
Array.prototype.forEach.call(ticketForm.querySelectorAll('.rinput'), function (field) {
var ok = field.value.trim() !== '' && field.checkValidity();
field.setAttribute('aria-invalid', String(!ok));
if (!ok && !bad) bad = field;
});
ticketStatus.classList.toggle('is-error', !!bad);
if (bad) {
ticketStatus.textContent = 'Please fill in your name, a valid email and your message.';
bad.focus();
return;
}
ticketStatus.textContent = 'Thanks! Your ticket has been sent. We will reply by email.';
ticketForm.reset();
});
}
/* ---------- scroll reveal: sections fade/rise in, cards cascade after ---------- */
var reduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
if (!reduceMotion && 'IntersectionObserver' in window) {
var revealSections = Array.prototype.slice.call(document.querySelectorAll('#main > section'));
var cardSelector = '.dcard, .acard, .titem, .rcard, .quote, .statcard';
var groupCounts = new Map();
revealSections.forEach(function (section) {
section.classList.add('reveal');
Array.prototype.forEach.call(section.querySelectorAll(cardSelector), function (card) {
var group = card.parentElement;
var i = groupCounts.get(group) || 0;
groupCounts.set(group, i + 1);
card.classList.add('reveal-item');
card.style.animationDelay = (Math.min(i, 7) * 0.07) + 's';
});
});
var revealObserver = new IntersectionObserver(function (entries, obs) {
entries.forEach(function (entry) {
if (!entry.isIntersecting) return;
entry.target.classList.add('is-visible');
Array.prototype.forEach.call(entry.target.querySelectorAll('.reveal-item'), function (item) {
item.classList.add('is-visible');
});
obs.unobserve(entry.target);
});
}, { threshold: 0.15, rootMargin: '0px 0px -8% 0px' });
revealSections.forEach(function (section) { revealObserver.observe(section); });
}
})(); })();

View File

@@ -0,0 +1,823 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Hop On Hop Off &mdash; Nashville Tour</title>
<meta name="description" content="The Nashville hop on hop off tour &mdash; 1h 30m, free cancellation up to 24 hrs, from $30 per person." />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;700;800&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<a class="skip-link" href="#main">Skip to content</a>
<!-- ============ icon sprite ============ -->
<svg class="sprite" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg">
<symbol id="i-arrow-right" viewBox="0 0 16 16" fill="none">
<path d="M2.66699 8H13.3337M9.33366 12L13.3337 8L9.33366 4" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-left" viewBox="0 0 16 16" fill="none">
<path d="M13.333 8H2.66634M6.66634 12L2.66634 8L6.66634 4" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-ne" viewBox="0 0 16 16" fill="none">
<path d="M4 12L12 4M12 10V4H6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-up" viewBox="0 0 16 16" fill="none">
<path d="M8 13.3333L8 2.66659M12 6.66659L8 2.66659L4 6.66659" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-chevron" viewBox="0 0 16 16" fill="none">
<path d="M12.6663 6L7.99967 10L3.33301 6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
</symbol>
<symbol id="i-search" viewBox="0 0 24 24" fill="none">
<circle cx="11.5" cy="11.5" r="9.5" stroke="currentColor" stroke-width="1.5" />
<path d="M18.5 18.5L22 22" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-user" viewBox="0 0 24 24" fill="none">
<circle cx="12" cy="6" r="4" stroke="currentColor" stroke-width="1.5" />
<ellipse cx="12" cy="17" rx="7" ry="4" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-location" viewBox="0 0 16 16" fill="none">
<path
d="M2.66699 6.76224C2.66699 3.76396 5.05481 1.33337 8.00033 1.33337C10.9458 1.33337 13.3337 3.76396 13.3337 6.76224C13.3337 9.73702 11.6314 13.2083 8.97561 14.4497C8.3565 14.7391 7.64415 14.7391 7.02504 14.4497C4.36921 13.2083 2.66699 9.73702 2.66699 6.76224Z"
stroke="currentColor" stroke-width="1.5" />
<circle cx="8" cy="6.66663" r="2" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-calendar" viewBox="0 0 16 16" fill="none">
<path
d="M1.33301 7.99996C1.33301 5.4858 1.33301 4.22872 2.11406 3.44767C2.8951 2.66663 4.15218 2.66663 6.66634 2.66663H9.33301C11.8472 2.66663 13.1042 2.66663 13.8853 3.44767C14.6663 4.22872 14.6663 5.4858 14.6663 7.99996V9.33329C14.6663 11.8475 14.6663 13.1045 13.8853 13.8856C13.1042 14.6666 11.8472 14.6666 9.33301 14.6666H6.66634C4.15218 14.6666 2.8951 14.6666 2.11406 13.8856C1.33301 13.1045 1.33301 11.8475 1.33301 9.33329V7.99996Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M4.66699 2.66663V1.66663" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M11.333 2.66663V1.66663" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M1.66699 6H14.3337" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-seat" viewBox="0 0 16 16" fill="none">
<circle cx="5.99967" cy="4.00004" r="2.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M10 6C11.1046 6 12 5.10457 12 4C12 2.89543 11.1046 2 10 2" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" />
<ellipse cx="5.99967" cy="11.3333" rx="4.66667" ry="2.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M12 9.33337C13.1695 9.58984 14 10.2393 14 11C14 11.6863 13.3242 12.282 12.3333 12.5803"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-mouse" viewBox="0 0 16 16" fill="none">
<path
d="M3.33301 5.99998C3.33301 3.42265 5.42235 1.33331 7.99967 1.33331C10.577 1.33331 12.6663 3.42265 12.6663 5.99998V9.99998C12.6663 12.5773 10.577 14.6666 7.99967 14.6666C5.42235 14.6666 3.33301 12.5773 3.33301 9.99998V5.99998Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M7 5.66669C7 5.1144 7.44772 4.66669 8 4.66669C8.55228 4.66669 9 5.1144 9 5.66669V7.00002C9 7.5523 8.55228 8.00002 8 8.00002C7.44772 8.00002 7 7.5523 7 7.00002V5.66669Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M8 1.33331V4.66665" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-grid" viewBox="0 0 16 16" fill="none">
<path
d="M1.66699 4.33329C1.66699 3.07621 1.66699 2.44767 2.05752 2.05715C2.44804 1.66663 3.07658 1.66663 4.33366 1.66663C5.59074 1.66663 6.21928 1.66663 6.6098 2.05715C7.00033 2.44767 7.00033 3.07621 7.00033 4.33329C7.00033 5.59037 7.00033 6.21891 6.6098 6.60944C6.21928 6.99996 5.59074 6.99996 4.33366 6.99996C3.07658 6.99996 2.44804 6.99996 2.05752 6.60944C1.66699 6.21891 1.66699 5.59037 1.66699 4.33329Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M9 11.6667C9 10.4096 9 9.78105 9.39052 9.39052C9.78105 9 10.4096 9 11.6667 9C12.9237 9 13.5523 9 13.9428 9.39052C14.3333 9.78105 14.3333 10.4096 14.3333 11.6667C14.3333 12.9237 14.3333 13.5523 13.9428 13.9428C13.5523 14.3333 12.9237 14.3333 11.6667 14.3333C10.4096 14.3333 9.78105 14.3333 9.39052 13.9428C9 13.5523 9 12.9237 9 11.6667Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M1.66699 11.6667C1.66699 10.4096 1.66699 9.78105 2.05752 9.39052C2.44804 9 3.07658 9 4.33366 9C5.59074 9 6.21928 9 6.6098 9.39052C7.00033 9.78105 7.00033 10.4096 7.00033 11.6667C7.00033 12.9237 7.00033 13.5523 6.6098 13.9428C6.21928 14.3333 5.59074 14.3333 4.33366 14.3333C3.07658 14.3333 2.44804 14.3333 2.05752 13.9428C1.66699 13.5523 1.66699 12.9237 1.66699 11.6667Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M9 4.33329C9 3.07621 9 2.44767 9.39052 2.05715C9.78105 1.66663 10.4096 1.66663 11.6667 1.66663C12.9237 1.66663 13.5523 1.66663 13.9428 2.05715C14.3333 2.44767 14.3333 3.07621 14.3333 4.33329C14.3333 5.59037 14.3333 6.21891 13.9428 6.60944C13.5523 6.99996 12.9237 6.99996 11.6667 6.99996C10.4096 6.99996 9.78105 6.99996 9.39052 6.60944C9 6.21891 9 5.59037 9 4.33329Z"
stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-price" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="8.00004" r="6.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M8 4V12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M10 6.33335C10 5.41288 9.10457 4.66669 8 4.66669C6.89543 4.66669 6 5.41288 6 6.33335C6 7.25383 6.89543 8.00002 8 8.00002C9.10457 8.00002 10 8.74621 10 9.66669C10 10.5872 9.10457 11.3334 8 11.3334C6.89543 11.3334 6 10.5872 6 9.66669"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-duration" viewBox="0 0 16 16" fill="none">
<path
d="M1.33366 8.00004C1.33366 11.6819 4.31843 14.6667 8.00033 14.6667C11.6822 14.6667 14.667 11.6819 14.667 8.00004C14.667 4.31814 11.6822 1.33337 8.00033 1.33337"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M8 6V8.66667H10.6667" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
<circle cx="7.99967" cy="8.00004" r="6.66667" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-dasharray="0.5 3.5" />
</symbol>
<symbol id="i-sort" viewBox="0 0 16 16" fill="none">
<path d="M2.66699 11.3333H7.33366" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2.66699 8L7.33366 8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2.66699 4.66669L7.33366 4.66669" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M11.333 2.66665L11.333 13.3333M13.333 5.33331L11.333 2.66665L9.33301 5.33331M9.33301 10.6666L11.333 13.3333L13.333 10.6666"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-check" viewBox="0 0 16 16" fill="none">
<path d="M3.33301 8.33333L6.33301 11.3333L12.6663 5" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-info" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="7.99992" r="6.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M8 11.3333V7.33325" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<circle cx="8" cy="5.33333" r="0.666667" fill="currentColor" />
</symbol>
<symbol id="i-person" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="4.00004" r="2.66667" stroke="currentColor" stroke-width="1.5" />
<ellipse cx="7.99967" cy="11.3333" rx="4.66667" ry="2.66667" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-shield-check" viewBox="0 0 16 16" fill="none">
<path
d="M2 6.94448C2 4.81275 2 3.74689 2.25168 3.38831C2.50335 3.02973 3.50555 2.68668 5.50994 2.00057L5.89182 1.86985C6.93666 1.5122 7.45907 1.33337 8 1.33337C8.54093 1.33337 9.06335 1.5122 10.1082 1.86985L10.4901 2.00057C12.4945 2.68668 13.4966 3.02973 13.7483 3.38831C14 3.74689 14 4.81275 14 6.94448C14 7.26647 14 7.61565 14 7.99428C14 11.753 11.174 13.577 9.40096 14.3516C8.91999 14.5617 8.67951 14.6667 8 14.6667C7.32049 14.6667 7.08001 14.5617 6.59904 14.3516C4.82597 13.577 2 11.753 2 7.99428C2 7.61565 2 7.26647 2 6.94448Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M6.33301 8.26663L7.28539 9.33329L9.66634 6.66663" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-x" viewBox="0 0 16 16" fill="none">
<path d="M12.6663 3.33337L3.33301 12.6667M3.33301 3.33337L12.6663 12.6667" stroke="currentColor"
stroke-width="2" stroke-linecap="round" />
</symbol>
<symbol id="i-star" viewBox="0 0 12 12">
<path
d="M4.21205 2.06464C4.94362 0.701584 5.30941 0.0200537 5.87277 0.000515809C6.43613 -0.019022 6.82396 0.636371 7.59964 1.94716L7.80031 2.28628C8.02073 2.65876 8.13095 2.845 8.29997 2.96455C8.46899 3.08409 8.67769 3.12341 9.09509 3.20203L9.4751 3.27362C10.9439 3.55031 11.6784 3.68865 11.8616 4.23622C12.0448 4.78378 11.5555 5.37794 10.5768 6.56625L10.3236 6.87368C10.0455 7.21136 9.90649 7.3802 9.84606 7.58521C9.78563 7.79021 9.81067 8.00818 9.86075 8.44411L9.90634 8.84099C10.0826 10.3751 10.1707 11.1421 9.72055 11.5C9.27043 11.858 8.58018 11.5698 7.19966 10.9934L6.84251 10.8443C6.45021 10.6805 6.25406 10.5986 6.04769 10.6058C5.84132 10.613 5.6481 10.7084 5.26165 10.8991L4.90982 11.0729C3.54988 11.7443 2.86992 12.08 2.40851 11.7536C1.9471 11.4273 2.00982 10.655 2.13527 9.1105L2.16772 8.71092C2.20337 8.27201 2.2212 8.05256 2.15408 7.85197C2.08696 7.65139 1.9425 7.49238 1.65359 7.17437L1.39055 6.88484C0.373843 5.76573 -0.134512 5.20618 0.0304441 4.64653C0.1954 4.08689 0.924422 3.89779 2.38247 3.5196L2.75968 3.42175C3.17401 3.31428 3.38117 3.26054 3.54606 3.12942C3.71095 2.99829 3.8149 2.80462 4.02279 2.41729L4.21205 2.06464Z"
fill="currentColor" />
</symbol>
<symbol id="i-plus" viewBox="0 0 14 14" fill="none">
<path d="M12.75 6.75005L6.75 6.75005M6.75 6.75005L0.75 6.75005M6.75 6.75005L6.75 0.75M6.75 6.75005L6.75 12.75"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-minus" viewBox="0 0 14 14" fill="none">
<path d="M12.75 7L0.75 7" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-headset" viewBox="0 0 24 24" fill="none">
<path d="M21 17V12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12V17" stroke="currentColor"
stroke-width="1.5" />
<path d="M22 15.5V17.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2 15.5V17.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M8 13.8446C8 13.0802 8 12.698 7.82526 12.4323C7.73733 12.2985 7.62061 12.188 7.4844 12.1095C7.21371 11.9535 6.84812 11.9896 6.11694 12.0617C4.88487 12.1831 4.26884 12.2439 3.82737 12.5764C3.60394 12.7448 3.41638 12.9593 3.27646 13.2067C3 13.6955 3 14.3395 3 15.6276V17.1933C3 18.4685 3 19.1061 3.28198 19.5986C3.38752 19.7829 3.51981 19.9491 3.67416 20.0913C4.08652 20.4714 4.68844 20.5901 5.89227 20.8275C6.73944 20.9945 7.16302 21.078 7.47564 20.9021C7.591 20.8372 7.69296 20.7493 7.77572 20.6434C8 20.3565 8 19.9078 8 19.0104V13.8446Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M16 13.8446C16 13.0802 16 12.698 16.1747 12.4323C16.2627 12.2985 16.3794 12.188 16.5156 12.1095C16.7863 11.9535 17.1519 11.9896 17.8831 12.0617C19.1151 12.1831 19.7312 12.2439 20.1726 12.5764C20.3961 12.7448 20.5836 12.9593 20.7235 13.2067C21 13.6955 21 14.3395 21 15.6276V17.1933C21 18.4685 21 19.1061 20.718 19.5986C20.6125 19.7829 20.4802 19.9491 20.3258 20.0913C19.9135 20.4714 19.3116 20.5901 18.1077 20.8275C17.2606 20.9945 16.837 21.078 16.5244 20.9021C16.409 20.8372 16.307 20.7493 16.2243 20.6434C16 20.3565 16 19.9078 16 19.0104V13.8446Z"
stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-whatsapp" viewBox="0 0 20 20">
<path
d="M17 2.875C15.125 1 12.625 0 10 0C4.5 0 0 4.5 0 10C0 11.75 0.500008 13.5 1.37501 15L0 20L5.25002 18.625C6.75002 19.375 8.375 19.875 10 19.875C15.5 19.875 20 15.375 20 9.875C20 7.25 18.875 4.75 17 2.875ZM10 18.25C8.5 18.25 7.00001 17.875 5.75001 17.125L5.49999 17L2.37499 17.875L3.25001 14.875L2.99999 14.5C2.12499 13.125 1.74999 11.625 1.74999 10.125C1.74999 5.625 5.5 1.875 10 1.875C12.25 1.875 14.25 2.75 15.875 4.25C17.5 5.875 18.25 7.875 18.25 10.125C18.25 14.5 14.625 18.25 10 18.25ZM14.5 12C14.25 11.875 13 11.25 12.75 11.25C12.5 11.125 12.375 11.125 12.25 11.375C12.125 11.625 11.625 12.125 11.5 12.375C11.375 12.5 11.25 12.5 11 12.5C10.75 12.375 10 12.125 9.00002 11.25C8.25002 10.625 7.75001 9.75 7.62501 9.5C7.50001 9.25 7.62502 9.125 7.75002 9C7.87502 8.875 8 8.75 8.125 8.625C8.25 8.5 8.25002 8.375 8.37502 8.25C8.50002 8.125 8.37502 8 8.37502 7.875C8.37502 7.75 7.87501 6.5 7.62501 6C7.50001 5.625 7.25002 5.625 7.12502 5.625C7.00002 5.625 6.87498 5.625 6.62498 5.625C6.49998 5.625 6.24998 5.625 5.99998 5.875C5.74998 6.125 5.12501 6.75 5.12501 8C5.12501 9.25 5.99999 10.375 6.12499 10.625C6.24999 10.75 7.87498 13.375 10.375 14.375C12.5 15.25 12.875 15 13.375 15C13.875 15 14.875 14.375 15 13.875C15.25 13.25 15.25 12.75 15.125 12.75C15 12.125 14.75 12.125 14.5 12Z"
fill="currentColor" />
</symbol>
<symbol id="i-instagram" viewBox="0 0 20 20">
<path
d="M10 1.80723C12.6506 1.80723 13.0121 1.80723 14.0964 1.80723C15.0602 1.80723 15.5422 2.04819 15.9036 2.16868C16.3855 2.40964 16.747 2.53012 17.1084 2.89157C17.4699 3.25301 17.7108 3.61446 17.8313 4.09639C17.9518 4.45783 18.0723 4.93976 18.1928 5.90362C18.1928 6.98795 18.1928 7.22892 18.1928 10C18.1928 12.7711 18.1928 13.0121 18.1928 14.0964C18.1928 15.0602 17.9518 15.5422 17.8313 15.9036C17.5904 16.3855 17.4699 16.747 17.1084 17.1084C16.747 17.4699 16.3855 17.7108 15.9036 17.8313C15.5422 17.9518 15.0602 18.0723 14.0964 18.1928C13.0121 18.1928 12.7711 18.1928 10 18.1928C7.22892 18.1928 6.98795 18.1928 5.90362 18.1928C4.93976 18.1928 4.45783 17.9518 4.09639 17.8313C3.61446 17.5904 3.25301 17.4699 2.89157 17.1084C2.53012 16.747 2.28916 16.3855 2.16868 15.9036C2.04819 15.5422 1.92771 15.0602 1.80723 14.0964C1.80723 13.0121 1.80723 12.7711 1.80723 10C1.80723 7.22892 1.80723 6.98795 1.80723 5.90362C1.80723 4.93976 2.04819 4.45783 2.16868 4.09639C2.40964 3.61446 2.53012 3.25301 2.89157 2.89157C3.25301 2.53012 3.61446 2.28916 4.09639 2.16868C4.45783 2.04819 4.93976 1.92771 5.90362 1.80723C6.98795 1.80723 7.3494 1.80723 10 1.80723ZM10 0C7.22892 0 6.98795 0 5.90362 0C4.81928 0 4.09639 0.240965 3.49398 0.481928C2.89157 0.722892 2.28916 1.08434 1.68675 1.68675C1.08434 2.28916 0.843374 2.77109 0.481928 3.49398C0.240965 4.09639 0.120482 4.81928 0 5.90362C0 6.98795 0 7.3494 0 10C0 12.7711 0 13.0121 0 14.0964C0 15.1807 0.240965 15.9036 0.481928 16.506C0.722892 17.1084 1.08434 17.7108 1.68675 18.3133C2.28916 18.9157 2.77109 19.1566 3.49398 19.5181C4.09639 19.759 4.81928 19.8795 5.90362 20C6.98795 20 7.3494 20 10 20C12.6506 20 13.0121 20 14.0964 20C15.1807 20 15.9036 19.759 16.506 19.5181C17.1084 19.2771 17.7108 18.9157 18.3133 18.3133C18.9157 17.7108 19.1566 17.2289 19.5181 16.506C19.759 15.9036 19.8795 15.1807 20 14.0964C20 13.0121 20 12.6506 20 10C20 7.3494 20 6.98795 20 5.90362C20 4.81928 19.759 4.09639 19.5181 3.49398C19.2771 2.89157 18.9157 2.28916 18.3133 1.68675C17.7108 1.08434 17.2289 0.843374 16.506 0.481928C15.9036 0.240965 15.1807 0.120482 14.0964 0C13.0121 0 12.7711 0 10 0Z"
fill="currentColor" />
<path
d="M10 4.81928C7.10843 4.81928 4.81928 7.10843 4.81928 10C4.81928 12.8916 7.10843 15.1807 10 15.1807C12.8916 15.1807 15.1807 12.8916 15.1807 10C15.1807 7.10843 12.8916 4.81928 10 4.81928ZM10 13.3735C8.19277 13.3735 6.62651 11.9277 6.62651 10C6.62651 8.19277 8.07229 6.62651 10 6.62651C11.8072 6.62651 13.3735 8.07229 13.3735 10C13.3735 11.8072 11.8072 13.3735 10 13.3735Z"
fill="currentColor" />
<path
d="M15.3012 5.90362C15.9666 5.90362 16.506 5.3642 16.506 4.6988C16.506 4.03339 15.9666 3.49398 15.3012 3.49398C14.6358 3.49398 14.0964 4.03339 14.0964 4.6988C14.0964 5.3642 14.6358 5.90362 15.3012 5.90362Z"
fill="currentColor" />
</symbol>
<symbol id="i-telegram" viewBox="0 0 20 17">
<path
d="M1.3749 7.31846C6.74359 4.91938 10.3236 3.33777 12.1148 2.57361C17.2292 0.391776 18.2919 0.0127698 18.9846 0.00012133C19.1369 -0.00249777 19.4776 0.0362266 19.6982 0.219862C19.8845 0.37492 19.9358 0.584381 19.9603 0.731393C19.9848 0.878405 20.0154 1.2133 19.9911 1.47498C19.714 4.46174 18.5147 11.7098 17.9046 15.055C17.6465 16.4705 17.1382 16.9451 16.6461 16.9916C15.5766 17.0925 14.7645 16.2667 13.7287 15.5702C12.1078 14.4805 11.1921 13.8021 9.61879 12.7387C7.80053 11.5097 8.97923 10.8343 10.0154 9.73042C10.2866 9.44153 14.9987 5.04555 15.0899 4.64677C15.1013 4.59689 15.1119 4.41098 15.0042 4.31282C14.8965 4.21465 14.7376 4.24822 14.6229 4.27492C14.4604 4.31276 11.871 6.06814 6.85486 9.54107C6.11988 10.0587 5.45416 10.3109 4.8577 10.2977C4.20015 10.2831 2.93528 9.91637 1.99498 9.60288C0.84166 9.21836 -0.0749729 9.01506 0.00484519 8.36203C0.0464194 8.0219 0.503103 7.67404 1.3749 7.31846Z"
fill="currentColor" />
</symbol>
<symbol id="i-facebook" viewBox="0 0 20 20">
<path
d="M20 10C20 4.5 15.5 0 10 0C4.5 0 0 4.5 0 10C0 15 3.625 19.125 8.375 19.875V12.875H5.875V10H8.375V7.75C8.375 5.25 9.875 3.875 12.125 3.875C13.25 3.875 14.375 4.125 14.375 4.125V6.625H13.125C11.875 6.625 11.5 7.375 11.5 8.125V10H14.25L13.75 12.875H11.375V20C16.375 19.25 20 15 20 10Z"
fill="currentColor" />
</symbol>
</svg>
<!-- ============ header ============ -->
<header class="site-header" id="siteHeader">
<div class="container header__inner">
<div class="header__left">
<a class="header__logo" href="index.html" aria-label="Hop On Hop Off — home">
<svg class="logo" viewBox="0 0 91 40" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Logo">
<g clip-path="url(#clip0_117_3713)">
<path
d="M70.0559 6.63419C69.9035 7.36616 69.76 8.05456 69.6194 8.74587C69.2766 10.4306 68.9338 12.1153 68.6027 13.8C68.5471 14.0759 68.424 14.195 68.1311 14.1892C67.217 14.1776 66.3029 14.1863 65.3888 14.1863C65.0216 14.1863 64.8752 14.0023 64.9494 13.6344C65.2892 11.9381 65.632 10.2418 65.9719 8.54545C66.5021 5.90221 67.0324 3.26188 67.551 0.618649C67.6037 0.348516 67.7209 0.229425 67.9934 0.252662C68.8371 0.316565 69.678 0.235234 70.5217 0.243948C70.9289 0.249757 71.175 0.365944 71.3625 0.758072C72.4407 3.01499 73.551 5.25738 74.6526 7.50268C74.7053 7.61306 74.7288 7.74667 74.8929 7.83671C74.9749 7.44749 75.0569 7.0786 75.1302 6.70971C75.5286 4.72873 75.9212 2.74776 76.3196 0.763881C76.4192 0.272995 76.4397 0.243948 76.9349 0.255567C77.8343 0.272995 78.7366 0.272995 79.6361 0.264281C80.1195 0.258471 80.1458 0.316565 80.0521 0.769691C79.1527 5.11505 78.2474 9.45751 77.3567 13.8058C77.2923 14.1166 77.1575 14.2037 76.8645 14.2008C75.9856 14.1892 75.1067 14.1863 74.2278 14.2008C73.926 14.2066 73.759 14.0904 73.6331 13.8261C72.5374 11.5663 71.4299 9.30937 70.3254 7.05246C70.261 6.92465 70.2229 6.77361 70.0559 6.6429V6.63419Z"
fill="white"></path>
<path
d="M25.5852 14.4942C24.0706 14.5029 22.6584 14.1834 21.4426 13.2249C20.218 12.2605 19.5764 10.9825 19.4299 9.45462C19.0314 5.2661 22.1252 0.682561 27.2552 0.0783925C28.6204 -0.0842682 29.9739 -0.0232704 31.2659 0.502472C33.2464 1.30706 34.3363 2.79715 34.5853 4.8885C35.0658 8.90564 31.887 13.8435 26.7776 14.4303C26.3792 14.4768 25.9837 14.4855 25.5852 14.4942ZM30.6068 6.2014C30.6068 6.05036 30.6155 5.89932 30.6068 5.74828C30.5247 4.54866 29.7015 3.59012 28.5589 3.35484C27.5452 3.14571 26.5843 3.3258 25.7317 3.87478C23.9358 5.03664 23.2473 6.75619 23.4289 8.81559C23.5461 10.1575 24.425 11.0202 25.7288 11.2148C26.5901 11.3426 27.4192 11.1771 28.1546 10.7152C29.8157 9.66956 30.5247 8.09814 30.6068 6.20431V6.2014Z"
fill="white"></path>
<path
d="M31.9078 23.3679C31.8873 27.3705 29.107 30.9636 25.3159 31.8698C23.4995 32.3055 21.6889 32.3346 19.9428 31.5706C18.1176 30.7719 17.0717 29.3544 16.8314 27.4083C16.348 23.455 18.7855 19.6035 22.5766 18.2383C24.188 17.6573 25.8374 17.4831 27.5161 17.8607C30.3316 18.4939 31.9224 20.5039 31.9078 23.3679ZM27.9321 23.9343C27.9321 23.7716 27.9439 23.609 27.9321 23.4463C27.8208 22.0695 26.9184 21.111 25.6001 20.9745C24.8383 20.896 24.1118 21.0296 23.4145 21.3521C21.3139 22.328 20.3412 25.2675 20.9008 27.0858C21.1908 28.0299 21.8266 28.6398 22.8051 28.8461C23.7895 29.0523 24.7329 28.8838 25.5708 28.3552C27.1909 27.3327 27.8384 25.7671 27.9321 23.9314V23.9343Z"
fill="white"></path>
<path
d="M58.5507 0.0115716C60.0009 -0.00876093 61.2607 0.243944 62.3915 0.964298C63.83 1.88217 64.5859 3.21541 64.75 4.88558C65.122 8.63549 62.7783 12.7049 58.7792 14.0411C56.9569 14.651 55.1024 14.7324 53.2713 14.0556C51.1766 13.28 49.7937 11.3862 49.7557 9.16704C49.6912 5.3358 51.4051 2.53572 54.8592 0.807447C55.9549 0.261372 57.2733 0.00866699 58.5536 0.00866699L58.5507 0.0115716ZM60.8417 6.23044C60.8417 6.09101 60.8505 5.95159 60.8417 5.81217C60.7685 4.66773 60.08 3.72082 59.0985 3.42454C58.2079 3.15441 57.3378 3.22993 56.494 3.60172C54.5282 4.46731 53.4178 6.79103 53.7371 8.93177C53.9305 10.2243 54.7508 11.0144 56.0048 11.2119C56.6903 11.3194 57.37 11.2293 57.9911 10.9244C59.9482 9.96582 60.6952 8.27241 60.8388 6.22753L60.8417 6.23044Z"
fill="white"></path>
<path
d="M52.5947 32.1313C51.2353 32.1488 50.0048 31.9077 48.8915 31.2367C47.4149 30.3479 46.6444 28.9943 46.4364 27.3299C45.9969 23.8647 48.1122 20.0044 51.5898 18.4795C53.8046 17.5093 56.0869 17.2973 58.3721 18.2819C60.1328 19.043 61.1231 20.4285 61.3604 22.2904C61.6885 24.8552 60.9238 27.1266 59.2861 29.125C57.7012 31.0595 55.0293 32.201 52.5976 32.1313H52.5947ZM53.1718 28.9043C54.0126 28.9362 54.8095 28.669 55.4804 28.1229C57.0683 26.8332 57.707 25.1456 57.4463 23.1414C57.2969 21.9883 56.4414 21.1488 55.3076 20.9891C54.3378 20.8526 53.4003 21.0094 52.5859 21.5729C50.9716 22.6912 50.3036 24.2888 50.33 26.1971C50.3534 27.8383 51.4726 28.9014 53.1689 28.9014L53.1718 28.9043Z"
fill="white"></path>
<path
d="M11.6694 5.54499C12.3843 5.54499 13.0991 5.52466 13.814 5.55371C14.189 5.56823 14.3149 5.4259 14.3794 5.07444C14.6607 3.60178 14.9741 2.13783 15.2642 0.668076C15.3169 0.392134 15.4429 0.261425 15.7271 0.261425C16.7788 0.261425 17.8306 0.25852 18.8824 0.255615C19.1431 0.255615 19.2222 0.365992 19.1666 0.630316C18.4488 4.06362 17.7369 7.49692 17.0279 10.9302C16.8286 11.8859 16.6265 12.8386 16.4449 13.7971C16.3921 14.076 16.2749 14.1921 15.982 14.1892C14.9624 14.1776 13.9429 14.1892 12.9233 14.1834C12.5395 14.1834 12.5014 14.1341 12.5806 13.7448C12.8794 12.278 13.1811 10.8111 13.4829 9.34428C13.5767 8.89115 13.5767 8.88534 13.1284 8.88534C11.6518 8.88534 10.1753 8.89115 8.7016 8.87663C8.37934 8.87663 8.25629 8.98701 8.19476 9.30071C7.90472 10.8169 7.58538 12.3274 7.28362 13.8436C7.23382 14.0934 7.11956 14.1951 6.85881 14.1921C5.82755 14.1834 4.79629 14.1834 3.76503 14.1921C3.46327 14.1921 3.38416 14.0934 3.44276 13.7942C3.95546 11.2672 4.45351 8.74011 4.95742 6.21016C5.32364 4.37732 5.69571 2.54448 6.05021 0.708741C6.1088 0.403753 6.22892 0.278852 6.55412 0.284662C7.59417 0.30209 8.63422 0.29628 9.6772 0.290471C9.93209 0.290471 10.0083 0.374706 9.95552 0.624506C9.6479 2.09136 9.35493 3.55821 9.04731 5.02506C8.94184 5.53337 8.94477 5.5508 9.48384 5.55371C10.2104 5.55371 10.937 5.55371 11.6636 5.55371L11.6694 5.54499Z"
fill="white"></path>
<path
d="M8.30004 26.537C7.55003 26.537 6.80002 26.5486 6.05002 26.5311C5.76876 26.5253 5.66036 26.6328 5.60763 26.8971C5.31173 28.425 4.99825 29.9499 4.70528 31.4778C4.65254 31.7479 4.53535 31.8438 4.25996 31.8409C3.24042 31.8292 2.22087 31.8263 1.20426 31.8409C0.879063 31.8467 0.799961 31.7479 0.864414 31.4342C1.50895 28.2246 2.1447 25.012 2.78338 21.8024C3.0119 20.6521 3.24921 19.5048 3.46893 18.3516C3.51874 18.0815 3.64179 17.9856 3.91425 17.9915C4.93379 18.0031 5.95334 18.006 6.96995 17.9915C7.29515 17.9856 7.37132 18.0931 7.30687 18.4039C6.99925 19.8708 6.7092 21.3376 6.4133 22.8074C6.35666 23.0901 6.47287 23.2324 6.76194 23.2344C8.23852 23.2344 9.71509 23.2256 11.1887 23.2431C11.5315 23.246 11.6546 23.1298 11.7161 22.8074C12.0003 21.3492 12.3167 19.8969 12.6009 18.4388C12.6683 18.0989 12.8118 17.9856 13.1604 17.9944C14.1565 18.0176 15.1527 18.0118 16.1458 17.9944C16.4593 17.9886 16.5618 18.067 16.4974 18.3923C15.7152 22.1916 14.9417 25.9909 14.1653 29.7902C14.0481 30.3595 13.928 30.9259 13.8226 31.4981C13.7757 31.745 13.6614 31.8496 13.3978 31.8467C12.3665 31.835 11.3352 31.835 10.3069 31.8467C9.96998 31.8496 9.92018 31.7218 9.98463 31.4226C10.2952 29.9441 10.5852 28.4656 10.8841 26.9843C10.9719 26.5428 10.9778 26.5428 10.512 26.5428C9.77369 26.5428 9.0354 26.5428 8.29711 26.5428L8.30004 26.537Z"
fill="white"></path>
<path
d="M41.409 0.252687C42.3202 0.26721 43.536 0.223641 44.7548 0.287543C45.3817 0.319494 45.9882 0.426966 46.5683 0.659339C48.247 1.33031 48.7509 2.55608 48.7451 4.05198C48.7451 4.96404 48.5107 5.84124 48.1093 6.67197C47.1366 8.67909 45.4755 9.7451 43.3251 10.1547C42.1766 10.3754 41.0135 10.2912 39.8563 10.2854C39.4666 10.2854 39.3319 10.4045 39.2674 10.7733C39.0858 11.7784 38.8543 12.7747 38.6639 13.7768C38.6053 14.0905 38.4647 14.1979 38.1453 14.1921C37.1609 14.1776 36.1766 14.1776 35.1951 14.1921C34.8787 14.195 34.782 14.105 34.8494 13.7826C35.7342 9.4372 36.616 5.09184 37.4774 0.743574C37.5535 0.363064 37.7264 0.243973 38.0838 0.246878C39.0916 0.255592 40.0995 0.249782 41.412 0.249782L41.409 0.252687ZM42.1883 3.47395C41.8251 3.47395 41.4618 3.48557 41.1014 3.47104C40.87 3.46233 40.7674 3.54657 40.7206 3.77313C40.5213 4.78685 40.3133 5.79767 40.0995 6.80559C40.0497 7.03796 40.1082 7.128 40.3514 7.1251C41.0428 7.11639 41.7342 7.14253 42.4227 7.11639C43.7001 7.0641 44.4354 6.47446 44.6991 5.34164C44.9657 4.18849 44.4413 3.51461 43.243 3.47976C42.8915 3.46814 42.5399 3.47976 42.1913 3.47976L42.1883 3.47395Z"
fill="white"></path>
<path
d="M38.2882 27.9951C37.8546 27.9951 37.421 28.0038 36.9874 27.9922C36.7442 27.9864 36.6387 28.0793 36.5918 28.3233C36.3956 29.3486 36.1641 30.3682 35.9737 31.3964C35.9122 31.7392 35.7715 31.8554 35.42 31.8467C34.459 31.8234 33.4981 31.8408 32.54 31.8379C32.0947 31.8379 32.0772 31.8147 32.165 31.379C32.7305 28.5789 33.2988 25.7817 33.8643 22.9816C34.1778 21.4335 34.4971 19.8882 34.7989 18.34C34.8487 18.0844 34.9571 17.9915 35.2178 17.9944C37.4913 18.0031 39.7618 17.9769 42.0353 18.0147C43.1105 18.0321 44.1124 18.3458 44.9269 19.101C45.7062 19.8243 45.9435 20.7625 45.9289 21.7617C45.9025 23.4464 45.299 24.922 44.089 26.1129C42.9845 27.1992 41.6163 27.7598 40.0811 27.9399C39.4864 28.0096 38.8887 27.9922 38.2911 27.9951H38.2882ZM38.7833 24.7825C39.088 24.7825 39.3927 24.7883 39.6974 24.7825C40.9396 24.7593 41.6573 24.1871 41.9415 22.9904C42.2023 21.8982 41.6778 21.204 40.5499 21.1779C39.8233 21.1604 39.0968 21.1779 38.3731 21.1691C38.1475 21.1662 38.0362 21.2359 37.9923 21.4654C37.793 22.4791 37.585 23.49 37.3682 24.5008C37.3243 24.7099 37.3946 24.7825 37.5909 24.7825C37.9893 24.7825 38.3878 24.7825 38.7862 24.7825H38.7833Z"
fill="white"></path>
<path
d="M69.259 17.9973C70.7707 17.9973 72.2825 17.9973 73.7913 17.9973C74.2395 17.9973 74.2483 18.0147 74.1546 18.4562C73.9905 19.2288 73.8206 20.0015 73.677 20.777C73.6213 21.0733 73.4866 21.1779 73.1819 21.175C71.4006 21.1633 69.6193 21.1779 67.841 21.1633C67.507 21.1604 67.3547 21.265 67.299 21.5903C67.1994 22.1625 67.0734 22.729 66.9387 23.2954C66.8713 23.58 66.9562 23.6555 67.2463 23.6526C68.8869 23.641 70.5276 23.6468 72.1653 23.6468C72.637 23.6468 72.6545 23.6701 72.5666 24.1174C72.4172 24.8581 72.2532 25.5958 72.1213 26.3365C72.0569 26.6909 71.9192 26.839 71.5237 26.8332C69.9065 26.81 68.2893 26.8332 66.675 26.8187C66.3498 26.8158 66.2267 26.9291 66.1681 27.2341C65.9015 28.6254 65.6056 30.0109 65.342 31.4023C65.2804 31.7218 65.1632 31.8525 64.8175 31.8467C63.8566 31.8263 62.8956 31.8321 61.9347 31.8409C61.6212 31.8438 61.5275 31.7566 61.5948 31.4313C62.3449 27.7569 63.0802 24.0796 63.8214 20.4023C63.9591 19.7197 64.1056 19.0371 64.2316 18.3516C64.2785 18.096 64.3693 17.9827 64.6623 17.9857C66.1974 18.0031 67.7326 17.9944 69.2648 17.9944L69.259 17.9973Z"
fill="white"></path>
<path
d="M80.8548 17.9943C82.3783 17.9943 83.9017 18.0001 85.4252 17.9885C85.7181 17.9885 85.7972 18.067 85.7357 18.3516C85.5541 19.1562 85.3812 19.9637 85.2318 20.7741C85.1761 21.0762 85.0472 21.1778 84.7425 21.1749C82.9613 21.1633 81.18 21.1807 79.3987 21.1633C79.0442 21.1604 78.9007 21.2708 78.8479 21.6164C78.763 22.177 78.6458 22.7376 78.5081 23.2895C78.4319 23.5916 78.5345 23.6497 78.8128 23.6497C80.4534 23.641 82.0941 23.6468 83.7347 23.6497C84.2064 23.6497 84.2122 23.6642 84.1156 24.1261C83.9574 24.8871 83.7933 25.6481 83.6556 26.4149C83.5999 26.7199 83.4769 26.839 83.1488 26.8361C81.5198 26.8216 79.8909 26.8361 78.262 26.8245C77.9339 26.8245 77.7874 26.9058 77.7229 27.2457C77.4622 28.6254 77.1575 29.9993 76.8938 31.379C76.8264 31.7333 76.677 31.8583 76.3137 31.8495C75.3645 31.8263 74.4153 31.835 73.466 31.8437C73.1731 31.8437 73.0735 31.7711 73.1379 31.4545C73.9524 27.4722 74.7522 23.487 75.5579 19.5019C75.634 19.1271 75.7366 18.7554 75.7835 18.3748C75.8245 18.0495 75.9944 17.9943 76.2815 17.9972C77.805 18.006 79.3284 18.003 80.8519 18.003V17.9972L80.8548 17.9943Z"
fill="white"></path>
<path
d="M69.751 31.7769C70.4014 31.8728 70.999 31.9744 71.5967 32.0412C75.7891 32.5176 79.8409 31.9889 83.7287 30.3391C84.8713 29.854 85.9611 29.2644 87.0158 28.6108C87.2824 28.4453 87.3996 28.2797 87.3088 27.9602C87.2209 27.6494 87.1828 27.3241 87.1242 27.0046C87.1037 26.8826 87.01 26.7286 87.1242 26.6444C87.2385 26.5601 87.3644 26.6879 87.4699 26.7548C88.4397 27.3444 89.4065 27.9311 90.3703 28.5295C91.1643 29.0233 91.1614 29.0262 90.5989 29.7843C89.9045 30.7196 89.216 31.6607 88.5217 32.5931C88.4572 32.6802 88.4162 32.8371 88.2756 32.7993C88.1555 32.7674 88.1936 32.6222 88.1701 32.5263C88.0969 32.1865 88.0266 31.8437 87.965 31.501C87.9211 31.2541 87.8127 31.2076 87.5783 31.3034C85.4953 32.1458 83.3332 32.6919 81.1066 32.991C77.3595 33.4994 73.6797 33.2496 70.0938 31.9977C69.9883 31.9599 69.8652 31.9483 69.751 31.7798V31.7769Z"
fill="white"></path>
<path
d="M65.8896 15.0316C66.2324 15.0083 66.54 15.1274 66.8535 15.171C72.5343 15.9756 77.8634 15.081 82.7443 11.973C83.0432 11.7813 83.1252 11.5925 83.0314 11.2642C82.9435 10.9534 82.8996 10.6281 82.8439 10.3086C82.8293 10.2244 82.7648 10.114 82.8644 10.053C82.9582 9.99781 83.0432 10.085 83.1193 10.1314C84.1096 10.7327 85.094 11.3369 86.0813 11.9381C86.2893 12.0659 86.4973 12.1995 86.7082 12.3244C86.8811 12.4261 86.8899 12.5423 86.7698 12.6933C85.9026 13.8058 85.0412 14.9212 84.174 16.0337C84.1272 16.0947 84.0861 16.1905 83.9865 16.1586C83.8898 16.1295 83.9016 16.0279 83.8869 15.9524C83.8107 15.5893 83.7346 15.2262 83.6672 14.8602C83.6262 14.6365 83.5676 14.5378 83.301 14.6453C81.3029 15.444 79.2316 15.9698 77.0988 16.2544C75.1065 16.5188 73.1114 16.5449 71.1104 16.3271C69.4375 16.1441 67.8057 15.8013 66.2207 15.2407C66.1064 15.2 65.9629 15.203 65.8896 15.0345V15.0316Z"
fill="white"></path>
<path
d="M67.8024 37.6762C68.1276 37.1302 68.4997 36.6073 68.7663 36.0351C69.0592 35.4048 69.4577 35.0766 70.1725 35.2218C70.2165 35.2305 70.2663 35.2218 70.3132 35.2218C70.7175 35.2276 70.7468 35.2567 70.6764 35.643C70.4743 36.7264 70.2663 37.8098 70.0612 38.8933C70.0143 39.1315 69.9674 39.3726 69.9294 39.6136C69.8942 39.8315 69.7829 39.9215 69.5514 39.9302C68.7047 39.9593 68.7047 39.9651 68.8659 39.1344C68.986 38.5099 69.1061 37.8854 69.1559 37.2289C68.9567 37.5717 68.7604 37.9173 68.5612 38.2601C68.3122 38.6929 68.0573 39.1257 67.817 39.5643C67.7057 39.7647 67.5768 39.8954 67.3219 39.8634C67.0612 39.8286 67.067 39.6224 67.0319 39.4481C66.8766 38.6987 66.7242 37.9464 66.5133 37.1883C66.3961 37.8128 66.2789 38.4373 66.1617 39.0647C66.15 39.1228 66.1442 39.1808 66.1354 39.236C66.0035 39.9361 66.0035 39.9215 65.2682 39.9273C64.9371 39.9302 64.8668 39.8199 64.9283 39.5149C65.1568 38.3879 65.3678 37.258 65.5875 36.1281C65.6139 35.9915 65.6402 35.855 65.6695 35.7185C65.7379 35.3835 65.9381 35.216 66.2701 35.216C66.9303 35.216 67.32 35.5336 67.4391 36.1687C67.5329 36.6596 67.6325 37.1476 67.7291 37.6356C67.7555 37.6472 67.7819 37.6559 67.8082 37.6675L67.8024 37.6762Z"
fill="white"></path>
<path
d="M58.6563 37.9842C58.6681 36.3082 59.8868 35.1115 61.548 35.1521C62.5499 35.1754 63.2999 35.7941 63.4406 36.7787C63.6691 38.3763 62.4562 40.1656 60.423 39.9884C59.3126 39.8925 58.6475 39.1199 58.6563 37.9871V37.9842ZM59.8165 37.8099C59.8048 38.2543 59.8985 38.6551 60.3556 38.8498C60.8155 39.0444 61.2609 38.9747 61.6388 38.658C62.1368 38.2398 62.3478 37.685 62.2628 37.0431C62.1749 36.3605 61.6505 36.0264 60.9737 36.2007C60.297 36.375 59.8282 37.0256 59.8136 37.8099H59.8165Z"
fill="white"></path>
<path
d="M34.8758 39.9274C34.4305 39.9274 33.9852 39.9245 33.5399 39.9274C33.3143 39.9303 33.2176 39.8606 33.2645 39.6166C33.5311 38.2369 33.7889 36.8572 34.0438 35.4775C34.0789 35.2945 34.1727 35.219 34.3543 35.2219C35.2684 35.2219 36.1825 35.2219 37.0936 35.2219C37.3133 35.2219 37.3924 35.3119 37.3397 35.524C37.3221 35.5908 37.3192 35.6605 37.3075 35.7302C37.245 36.0633 37.0428 36.2298 36.701 36.2298C36.2674 36.2298 35.8338 36.2269 35.4002 36.2298C35.1043 36.2298 34.8143 36.6684 34.9198 36.9443C34.9666 37.0634 35.0721 37.0315 35.16 37.0315C35.6522 37.0344 36.1444 37.0489 36.6366 37.0315C36.9559 37.0199 37.0292 37.1477 36.9559 37.4265C36.9296 37.5282 36.9061 37.6298 36.8944 37.7344C36.871 37.9639 36.745 38.051 36.5165 38.0452C36.036 38.0365 35.5555 38.0394 35.075 38.0452C34.7528 38.0452 34.4334 38.5506 34.5682 38.8382C34.6209 38.9515 34.7264 38.9166 34.8143 38.9195C35.3416 38.9224 35.869 38.9311 36.3963 38.9195C36.6483 38.9137 36.745 39.0037 36.6835 39.2477C36.6747 39.2826 36.6747 39.3174 36.6688 39.3523C36.6024 39.7415 36.3661 39.9361 35.9598 39.9361C35.5965 39.9361 35.2332 39.9361 34.87 39.9361L34.8758 39.9274Z"
fill="white"></path>
<path
d="M78.8237 38.0422C77.1361 38.0422 75.4516 38.0422 73.764 38.0422C73.2806 38.0422 73.2689 38.0277 73.3539 37.5804C73.4281 37.1776 73.6732 36.9762 74.0892 36.9762C77.4145 36.9762 80.7397 36.9762 84.0649 36.9762C84.5776 36.9762 84.5835 36.9849 84.4809 37.4874C84.4067 37.8553 84.1831 38.0393 83.81 38.0393C82.146 38.0393 80.4848 38.0393 78.8207 38.0393L78.8237 38.0422Z"
fill="white"></path>
<path
d="M29.0368 36.9792C29.4616 36.5377 29.904 36.1078 30.3083 35.6489C30.5954 35.3236 30.9147 35.158 31.3512 35.2248C31.5739 35.2597 31.9167 35.1115 31.9928 35.3061C32.0661 35.4891 31.735 35.6489 31.5768 35.8086C31.1374 36.2589 30.695 36.7062 30.2321 37.1332C30.0299 37.3191 30.0182 37.473 30.1501 37.7025C30.5075 38.3299 30.8356 38.9689 31.1872 39.5992C31.3219 39.8403 31.2721 39.9332 30.9909 39.9245C29.8161 39.8984 30.1266 40.1017 29.6051 39.0967C29.4997 38.8905 29.3854 38.6842 29.3004 38.4693C29.1774 38.1643 29.0485 38.2224 28.8522 38.4112C28.6178 38.6378 28.6178 38.9369 28.5621 39.2129C28.4039 39.9942 28.6002 39.9216 27.6129 39.9245C27.358 39.9245 27.2906 39.8229 27.3405 39.5789C27.5543 38.4867 27.7565 37.3917 27.9616 36.2966C27.985 36.1717 28.0055 36.0439 28.0289 35.919C28.1637 35.2016 28.3248 35.0999 29.069 35.2219C29.3092 35.2626 29.2623 35.4136 29.2389 35.5588C29.1569 36.0207 29.069 36.4825 28.9811 36.9444C29.0016 36.956 29.0192 36.9647 29.0397 36.9763L29.0368 36.9792Z"
fill="white"></path>
<path
d="M45.7943 39.9971C45.267 39.9738 44.7133 39.8664 44.2445 39.4859C44.0424 39.3203 43.9955 39.1605 44.1918 38.9659C44.2093 38.9485 44.2211 38.9311 44.2386 38.9136C44.3881 38.751 44.5082 38.5157 44.6928 38.4431C44.9008 38.3589 45.0092 38.6609 45.1937 38.7539C45.5951 38.9543 46.0023 39.0618 46.4447 38.9107C46.6234 38.8497 46.7582 38.7365 46.767 38.5418C46.7758 38.3443 46.6264 38.2543 46.4652 38.2049C46.143 38.1032 45.809 38.0306 45.4896 37.9202C44.6049 37.6124 44.3383 36.8571 44.8129 36.0526C45.2025 35.3961 46.0609 35.0446 46.9604 35.1753C47.3588 35.2334 47.7309 35.3612 48.0619 35.5965C48.2377 35.7214 48.3051 35.8434 48.1322 36.0177C48.0824 36.0671 48.0443 36.1281 48.0004 36.1804C47.7719 36.4515 47.5024 36.5125 47.1918 36.3634C46.89 36.2181 46.5766 36.1339 46.2396 36.1775C46.017 36.2065 45.8119 36.3024 45.7826 36.5405C45.7504 36.7845 45.9818 36.8281 46.1547 36.8833C46.4096 36.9675 46.6762 37.0227 46.9311 37.1069C47.4115 37.2667 47.8715 37.47 47.9389 38.0481C48.0151 38.7219 47.7924 39.2883 47.1977 39.6659C46.7904 39.9245 46.3305 40 45.7973 40.0029L45.7943 39.9971Z"
fill="white"></path>
<path
d="M5.07682 38.0422C3.51821 38.0422 1.96253 38.0422 0.403916 38.0422C-0.0384717 38.0422 -0.0443311 38.0335 0.0435605 37.6094C0.131452 37.1873 0.398057 36.9762 0.843374 36.9762C3.84341 36.9762 6.84051 36.9762 9.84054 36.9762C10.2175 36.9762 10.3708 37.1553 10.3005 37.5136C10.2302 37.8718 10.0124 38.047 9.64718 38.0393C8.12373 38.0393 6.60027 38.0393 5.07975 38.0393L5.07682 38.0422Z"
fill="white"></path>
<path
d="M52.6826 37.9812C52.6914 36.0613 54.5401 34.6757 56.2422 35.2712C56.6524 35.4135 56.9307 35.6953 57.1387 36.0613C57.25 36.2559 57.209 36.3895 56.9922 36.4679C56.9043 36.4999 56.8135 36.5318 56.7373 36.5812C56.4385 36.7729 56.2159 36.7584 55.9815 36.4447C55.7412 36.1194 55.3574 36.1048 54.9883 36.2152C54.1797 36.4505 53.6436 37.4526 53.8867 38.2543C54.1182 39.0182 55.0821 39.2041 55.7149 38.6145C55.8174 38.5186 55.8789 38.292 56.0518 38.3618C56.3067 38.4663 56.5381 38.6348 56.7696 38.7887C56.837 38.8352 56.7842 38.9165 56.7432 38.9746C56.2627 39.6253 55.6153 39.9767 54.8008 39.9942C54.0274 40.0116 53.374 39.7734 52.9551 39.0763C52.7412 38.7248 52.668 38.3443 52.6855 37.9812H52.6826Z"
fill="white"></path>
<path
d="M21.4606 37.8941C21.4635 36.2966 22.7731 35.0563 24.4636 35.1579C25.1052 35.1957 25.5945 35.4978 25.9197 36.0555C26.0368 36.2559 26.0427 36.4011 25.782 36.4737C25.6823 36.5028 25.5798 36.5435 25.489 36.5928C25.2165 36.7497 25.0232 36.7729 24.7976 36.4592C24.5632 36.131 24.156 36.1019 23.7692 36.2094C22.902 36.4476 22.363 37.5368 22.697 38.3705C22.9665 39.0473 23.9245 39.1751 24.4958 38.6116C24.5954 38.5128 24.6511 38.2979 24.8415 38.3734C25.0993 38.478 25.3513 38.6145 25.5534 38.8091C25.6238 38.8788 25.5359 38.9572 25.4919 39.024C24.8298 40 23.2331 40.3108 22.2546 39.6427C21.6745 39.2477 21.446 38.6726 21.4606 37.8912V37.8941Z"
fill="white"></path>
<path
d="M14.983 35.2219C15.4986 35.2219 16.0113 35.2277 16.527 35.2219C16.776 35.219 16.8756 35.3119 16.8053 35.5588C16.7907 35.614 16.7877 35.6721 16.776 35.7302C16.7115 36.0632 16.5114 36.2298 16.1754 36.2298C15.4137 36.2298 15.4108 36.2298 15.2672 36.9763C15.1119 37.7954 14.9596 38.6174 14.8102 39.4394C14.7223 39.9216 14.7193 39.9245 14.2301 39.9274C13.7887 39.9274 13.61 39.7086 13.6939 39.271C13.8639 38.3821 14.025 37.4933 14.2066 36.6074C14.2652 36.3198 14.2066 36.1949 13.8873 36.2269C13.6676 36.2472 13.442 36.2298 13.2223 36.2269C13.0435 36.2269 12.9644 36.1397 13.0025 35.9597C13.0084 35.9364 13.0113 35.9132 13.0142 35.8899C13.0728 35.4426 13.3297 35.2199 13.7848 35.2219C13.9605 35.2219 14.1363 35.2219 14.3121 35.2219C14.5348 35.2219 14.7574 35.2219 14.9801 35.2219H14.983Z"
fill="white"></path>
<path
d="M41.2414 35.2219C41.7219 35.2219 42.2024 35.2393 42.6799 35.2161C43.0198 35.1987 43.0959 35.3352 43.011 35.6256C43.0051 35.6489 43.0022 35.6721 42.9993 35.6953C42.9309 36.0517 42.7151 36.2298 42.3518 36.2298C41.4524 36.2298 41.6457 36.1659 41.4875 36.9502C41.3117 37.8245 41.1447 38.7017 40.9953 39.5818C40.9514 39.8403 40.8488 39.9361 40.5852 39.9332C39.633 39.9158 39.759 40.0204 39.9201 39.1432C40.0783 38.2892 40.2424 37.4352 40.4211 36.5813C40.4768 36.3082 40.383 36.2124 40.1193 36.2327C40.049 36.2385 39.9787 36.2327 39.9084 36.2327C39.1203 36.2327 39.1994 36.3169 39.3313 35.5065C39.3664 35.2916 39.4895 35.2219 39.6975 35.2248C40.2131 35.2306 40.7258 35.2248 41.2414 35.2248V35.2219Z"
fill="white"></path>
<path
d="M18.5449 39.9216C18.4511 39.9216 18.3574 39.9216 18.2636 39.9216C18.0644 39.9216 17.9911 39.8374 18.0292 39.637C18.29 38.2689 18.5507 36.9008 18.8027 35.5327C18.8466 35.2887 18.9814 35.219 19.2158 35.2161C20.0214 35.2016 20.0097 35.1928 19.8574 35.9626C19.6347 37.1012 19.4296 38.2427 19.2128 39.3814C19.1103 39.9245 19.1074 39.9216 18.5419 39.9187L18.5449 39.9216Z"
fill="white"></path>
<path
d="M50.9005 39.2506C50.9005 39.6514 50.59 39.9797 50.212 39.9826C49.8839 39.9855 49.629 39.7357 49.6349 39.4133C49.6437 39.0095 49.9864 38.6493 50.3526 38.6522C50.6661 38.6522 50.9005 38.9108 50.9005 39.2506Z"
fill="white"></path>
</g>
<defs>
<clipPath id="clip0_117_3713">
<rect width="91" height="40" fill="white"></rect>
</clipPath>
</defs>
</svg>
</a>
<nav class="nav" id="primaryNav" aria-label="Primary">
<ul class="nav__list">
<li><a class="nav__link" href="index.html">Home</a></li>
<li class="nav__item--has-menu">
<button class="nav__link nav__toggle" type="button" aria-expanded="false" aria-controls="toursMenu">
<span>Tours</span>
<svg class="icon icon--chevron" aria-hidden="true">
<use href="#i-chevron" />
</svg>
</button>
<ul class="nav__submenu" id="toursMenu">
<li><a href="tours.html">All tours</a></li>
<li><a href="tours.html">London</a></li>
<li><a href="tours.html">Nashville</a></li>
<li><a href="tours.html">Sydney</a></li>
<li><a href="tours.html">San Diego</a></li>
<li><a href="tours.html">Paris</a></li>
</ul>
</li>
<li><a class="nav__link" href="blog.html">Weblog</a></li>
<li><a class="nav__link" href="faq.html">FAQ&rsquo;s</a></li>
<li><a class="nav__link" href="contact.html">Contact us</a></li>
<li><a class="nav__link" href="about.html">About us</a></li>
</ul>
</nav>
</div>
<div class="header__actions">
<button class="icon-btn" type="button" aria-label="Search">
<svg class="icon icon--24" aria-hidden="true">
<use href="#i-search" />
</svg>
</button>
<button class="icon-btn" type="button" aria-label="Account">
<svg class="icon icon--24" aria-hidden="true">
<use href="#i-user" />
</svg>
</button>
<a class="btn btn--accent header__cta" href="#availability">
<span>Book now</span>
<svg class="icon" aria-hidden="true">
<use href="#i-arrow-right" />
</svg>
</a>
<button class="burger" id="burger" type="button" aria-label="Open menu" aria-expanded="false"
aria-controls="primaryNav">
<span></span><span></span><span></span>
</button>
</div>
</div>
</header>
<main id="main">
<!-- ============ hero ============ -->
<section class="hero-tour">
<img class="hero-tour__photo" src="assets/hero3.jpg" alt="" fetchpriority="high" />
<div class="hero-tour__sky" aria-hidden="true"></div>
<div class="container hero-tour__inner">
<div class="hero-tour__block">
<nav class="crumbs" aria-label="Breadcrumb">
<ol class="crumbs__list">
<li><a href="index.html">Home</a></li>
<li><a href="tours.html">Tours</a></li>
<li aria-current="page">Nashville Tour</li>
</ol>
</nav>
<p class="hero-tour__kicker">Welcome to</p>
<div class="hero-tour__stage">
<h1 class="hero-tour__word">Nashville</h1>
<img class="hero-tour__figure hero-tour__figure--nashville" src="assets/nashvile.png" alt="" loading="eager" />
</div>
</div>
</div>
</section>
<!-- ============ tour ============ -->
<section class="section tour">
<div class="container tour__layout">
<div class="tour__main">
<header class="tour-head">
<h2 class="tour-head__title">Nashville Tour</h2>
<div class="tmeta">
<span class="tmeta__item">
<svg class="icon icon--12 tmeta__star" aria-hidden="true">
<use href="#i-star" />
</svg>
<b>4.8</b><i>/5</i>
</span>
<span class="tmeta__rule" aria-hidden="true"></span>
<span class="tmeta__item">
<svg class="icon tmeta__icon" aria-hidden="true">
<use href="#i-location" />
</svg>
Nashville
</span>
<span class="tmeta__rule" aria-hidden="true"></span>
<span class="tmeta__item">
<svg class="icon tmeta__icon" aria-hidden="true">
<use href="#i-person" />
</svg>
from Mr. Bill
</span>
</div>
</header>
<ul class="facts">
<li class="fact">
<svg class="icon fact__icon" aria-hidden="true">
<use href="#i-duration" />
</svg>
<div class="fact__text">
<span class="fact__k">Duration</span>
<span class="fact__v">1h 30m</span>
</div>
</li>
<li class="fact">
<svg class="icon fact__icon" aria-hidden="true">
<use href="#i-person" />
</svg>
<div class="fact__text">
<span class="fact__k">Max Travelers</span>
<span class="fact__v">15 people</span>
</div>
</li>
<li class="fact">
<svg class="icon fact__icon" aria-hidden="true">
<use href="#i-shield-check" />
</svg>
<div class="fact__text">
<span class="fact__k">Free Cancellation</span>
<span class="fact__v">Up to 24 hrs</span>
</div>
</li>
<li class="fact">
<svg class="icon fact__icon" aria-hidden="true">
<use href="#i-grid" />
</svg>
<div class="fact__text">
<span class="fact__k">Category</span>
<span class="fact__v">Best Conversion</span>
</div>
</li>
</ul>
<section class="tour__block">
<h3 class="tour__ct">Overview</h3>
<p class="tour__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed
do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit
amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem
ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua</p>
<p class="tour__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed
do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
</section>
<section class="tour__block">
<h3 class="tour__ct">Gallery</h3>
<div class="gallery">
<img class="gallery__hero" src="assets/city-nashville.png" alt="Nashville skyline" loading="lazy" />
<img src="assets/liked-nashville.png" alt="Nashville street" loading="lazy" />
<img src="assets/tour-san-diego.png" alt="A palm-lined avenue" loading="lazy" />
<img src="assets/city-sydney.png" alt="Sydney harbour" loading="lazy" />
<img src="assets/liked-san-diego.png" alt="Palm trees against the city skyline" loading="lazy" />
</div>
</section>
<div class="lists">
<section class="ilist">
<h3 class="tour__ct">Whats included</h3>
<ul class="ilist__items">
<li>
<span class="tick tick--yes" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-check" />
</svg>
</span>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.</p>
</li>
<li>
<span class="tick tick--yes" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-check" />
</svg>
</span>
<p>ed do eiusmod tempor incididunt ut labore et dolo</p>
</li>
<li>
<span class="tick tick--yes" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-check" />
</svg>
</span>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.</p>
</li>
<li>
<span class="tick tick--yes" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-check" />
</svg>
</span>
<p>ed do eiusmod tempor incididunt ut labore et dolo</p>
</li>
</ul>
</section>
<section class="ilist">
<h3 class="tour__ct">Whats Not included</h3>
<ul class="ilist__items">
<li>
<span class="tick tick--no" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-x" />
</svg>
</span>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.</p>
</li>
<li>
<span class="tick tick--no" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-x" />
</svg>
</span>
<p>ed do eiusmod tempor incididunt ut labore et dolo</p>
</li>
<li>
<span class="tick tick--no" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-x" />
</svg>
</span>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.</p>
</li>
</ul>
</section>
</div>
<section class="tour__block">
<h3 class="tour__ct">Good to know</h3>
<ul class="notes">
<li class="note">
<svg class="icon note__icon" aria-hidden="true">
<use href="#i-info" />
</svg>
<p>Public transportation options are available nearby</p>
</li>
<li class="note">
<svg class="icon note__icon" aria-hidden="true">
<use href="#i-info" />
</svg>
<p>Infants are required to sit on an adult&rsquo;s lap</p>
</li>
<li class="note">
<svg class="icon note__icon" aria-hidden="true">
<use href="#i-info" />
</svg>
<p>Not recommended for travelers with spinal injuries</p>
</li>
<li class="note">
<svg class="icon note__icon" aria-hidden="true">
<use href="#i-info" />
</svg>
<p>Not recommended for travelers with spinal injuries</p>
</li>
<li class="note">
<svg class="icon note__icon" aria-hidden="true">
<use href="#i-info" />
</svg>
<p>Public transportation options are available nearby</p>
</li>
<li class="note">
<svg class="icon note__icon" aria-hidden="true">
<use href="#i-info" />
</svg>
<p>Infants are required to sit on an adult&rsquo;s lap</p>
</li>
</ul>
</section>
<section class="tour__block">
<h3 class="tour__ct">Cancellation Policy</h3>
<p class="tour__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.</p>
<div class="policy">
<div class="statcard statcard--yes">
<svg class="icon icon--12 statcard__icon" aria-hidden="true">
<use href="#i-check" />
</svg>
<div class="statcard__text">
<span class="statcard__k">100% Refund</span>
<span class="statcard__v">24 hours or more before the start time</span>
</div>
</div>
<div class="statcard statcard--no">
<svg class="icon icon--12 statcard__icon" aria-hidden="true">
<use href="#i-x" />
</svg>
<div class="statcard__text">
<span class="statcard__k">0% Refund</span>
<span class="statcard__v">Less than 24 hours before the start time</span>
</div>
</div>
</div>
</section>
</div>
<aside class="tour__aside">
<div class="bookcard">
<h2 class="bookcard__title">
<svg class="icon" aria-hidden="true">
<use href="#i-info" />
</svg>
Tour Details
</h2>
<form class="bookcard__price" id="availability" novalidate>
<p class="price">
<span class="price__k">From</span>
<span class="price__v">$30</span>
<span class="price__unit">USD / Per person</span>
</p>
<button class="btn btn--dark bookcard__cta" type="submit">Check Availability</button>
</form>
<div class="statcard statcard--teal">
<svg class="icon statcard__icon" aria-hidden="true">
<use href="#i-shield-check" />
</svg>
<div class="statcard__text">
<span class="statcard__k">Free Cancellation</span>
<span class="statcard__v">Up to 24 hrs</span>
</div>
</div>
<div class="statcard statcard--yes">
<svg class="icon statcard__icon" aria-hidden="true">
<use href="#i-shield-check" />
</svg>
<div class="statcard__text">
<span class="statcard__k">Reserve now, pay later!</span>
<span class="statcard__v">Secure your spot today</span>
</div>
</div>
</div>
</aside>
</div>
</section>
</main>
<!-- ============ footer ============ -->
<footer class="footer" id="footer">
<a class="ring-badge ring-badge--top" href="#main" aria-label="Back to top">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">BACK TO TOP &#183; </textPath>
</text>
</svg>
<span class="ring-badge__dot">
<svg class="icon" aria-hidden="true">
<use href="#i-arrow-up" />
</svg>
</span>
</a>
<div class="container footer__inner">
<div class="footer__brand">
<span class="footer__logo">
<svg class="logo" viewBox="0 0 91 40" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Logo">
<g clip-path="url(#clip0_117_3713)">
<path
d="M70.0559 6.63419C69.9035 7.36616 69.76 8.05456 69.6194 8.74587C69.2766 10.4306 68.9338 12.1153 68.6027 13.8C68.5471 14.0759 68.424 14.195 68.1311 14.1892C67.217 14.1776 66.3029 14.1863 65.3888 14.1863C65.0216 14.1863 64.8752 14.0023 64.9494 13.6344C65.2892 11.9381 65.632 10.2418 65.9719 8.54545C66.5021 5.90221 67.0324 3.26188 67.551 0.618649C67.6037 0.348516 67.7209 0.229425 67.9934 0.252662C68.8371 0.316565 69.678 0.235234 70.5217 0.243948C70.9289 0.249757 71.175 0.365944 71.3625 0.758072C72.4407 3.01499 73.551 5.25738 74.6526 7.50268C74.7053 7.61306 74.7288 7.74667 74.8929 7.83671C74.9749 7.44749 75.0569 7.0786 75.1302 6.70971C75.5286 4.72873 75.9212 2.74776 76.3196 0.763881C76.4192 0.272995 76.4397 0.243948 76.9349 0.255567C77.8343 0.272995 78.7366 0.272995 79.6361 0.264281C80.1195 0.258471 80.1458 0.316565 80.0521 0.769691C79.1527 5.11505 78.2474 9.45751 77.3567 13.8058C77.2923 14.1166 77.1575 14.2037 76.8645 14.2008C75.9856 14.1892 75.1067 14.1863 74.2278 14.2008C73.926 14.2066 73.759 14.0904 73.6331 13.8261C72.5374 11.5663 71.4299 9.30937 70.3254 7.05246C70.261 6.92465 70.2229 6.77361 70.0559 6.6429V6.63419Z"
fill="white"></path>
<path
d="M25.5852 14.4942C24.0706 14.5029 22.6584 14.1834 21.4426 13.2249C20.218 12.2605 19.5764 10.9825 19.4299 9.45462C19.0314 5.2661 22.1252 0.682561 27.2552 0.0783925C28.6204 -0.0842682 29.9739 -0.0232704 31.2659 0.502472C33.2464 1.30706 34.3363 2.79715 34.5853 4.8885C35.0658 8.90564 31.887 13.8435 26.7776 14.4303C26.3792 14.4768 25.9837 14.4855 25.5852 14.4942ZM30.6068 6.2014C30.6068 6.05036 30.6155 5.89932 30.6068 5.74828C30.5247 4.54866 29.7015 3.59012 28.5589 3.35484C27.5452 3.14571 26.5843 3.3258 25.7317 3.87478C23.9358 5.03664 23.2473 6.75619 23.4289 8.81559C23.5461 10.1575 24.425 11.0202 25.7288 11.2148C26.5901 11.3426 27.4192 11.1771 28.1546 10.7152C29.8157 9.66956 30.5247 8.09814 30.6068 6.20431V6.2014Z"
fill="white"></path>
<path
d="M31.9078 23.3679C31.8873 27.3705 29.107 30.9636 25.3159 31.8698C23.4995 32.3055 21.6889 32.3346 19.9428 31.5706C18.1176 30.7719 17.0717 29.3544 16.8314 27.4083C16.348 23.455 18.7855 19.6035 22.5766 18.2383C24.188 17.6573 25.8374 17.4831 27.5161 17.8607C30.3316 18.4939 31.9224 20.5039 31.9078 23.3679ZM27.9321 23.9343C27.9321 23.7716 27.9439 23.609 27.9321 23.4463C27.8208 22.0695 26.9184 21.111 25.6001 20.9745C24.8383 20.896 24.1118 21.0296 23.4145 21.3521C21.3139 22.328 20.3412 25.2675 20.9008 27.0858C21.1908 28.0299 21.8266 28.6398 22.8051 28.8461C23.7895 29.0523 24.7329 28.8838 25.5708 28.3552C27.1909 27.3327 27.8384 25.7671 27.9321 23.9314V23.9343Z"
fill="white"></path>
<path
d="M58.5507 0.0115716C60.0009 -0.00876093 61.2607 0.243944 62.3915 0.964298C63.83 1.88217 64.5859 3.21541 64.75 4.88558C65.122 8.63549 62.7783 12.7049 58.7792 14.0411C56.9569 14.651 55.1024 14.7324 53.2713 14.0556C51.1766 13.28 49.7937 11.3862 49.7557 9.16704C49.6912 5.3358 51.4051 2.53572 54.8592 0.807447C55.9549 0.261372 57.2733 0.00866699 58.5536 0.00866699L58.5507 0.0115716ZM60.8417 6.23044C60.8417 6.09101 60.8505 5.95159 60.8417 5.81217C60.7685 4.66773 60.08 3.72082 59.0985 3.42454C58.2079 3.15441 57.3378 3.22993 56.494 3.60172C54.5282 4.46731 53.4178 6.79103 53.7371 8.93177C53.9305 10.2243 54.7508 11.0144 56.0048 11.2119C56.6903 11.3194 57.37 11.2293 57.9911 10.9244C59.9482 9.96582 60.6952 8.27241 60.8388 6.22753L60.8417 6.23044Z"
fill="white"></path>
<path
d="M52.5947 32.1313C51.2353 32.1488 50.0048 31.9077 48.8915 31.2367C47.4149 30.3479 46.6444 28.9943 46.4364 27.3299C45.9969 23.8647 48.1122 20.0044 51.5898 18.4795C53.8046 17.5093 56.0869 17.2973 58.3721 18.2819C60.1328 19.043 61.1231 20.4285 61.3604 22.2904C61.6885 24.8552 60.9238 27.1266 59.2861 29.125C57.7012 31.0595 55.0293 32.201 52.5976 32.1313H52.5947ZM53.1718 28.9043C54.0126 28.9362 54.8095 28.669 55.4804 28.1229C57.0683 26.8332 57.707 25.1456 57.4463 23.1414C57.2969 21.9883 56.4414 21.1488 55.3076 20.9891C54.3378 20.8526 53.4003 21.0094 52.5859 21.5729C50.9716 22.6912 50.3036 24.2888 50.33 26.1971C50.3534 27.8383 51.4726 28.9014 53.1689 28.9014L53.1718 28.9043Z"
fill="white"></path>
<path
d="M11.6694 5.54499C12.3843 5.54499 13.0991 5.52466 13.814 5.55371C14.189 5.56823 14.3149 5.4259 14.3794 5.07444C14.6607 3.60178 14.9741 2.13783 15.2642 0.668076C15.3169 0.392134 15.4429 0.261425 15.7271 0.261425C16.7788 0.261425 17.8306 0.25852 18.8824 0.255615C19.1431 0.255615 19.2222 0.365992 19.1666 0.630316C18.4488 4.06362 17.7369 7.49692 17.0279 10.9302C16.8286 11.8859 16.6265 12.8386 16.4449 13.7971C16.3921 14.076 16.2749 14.1921 15.982 14.1892C14.9624 14.1776 13.9429 14.1892 12.9233 14.1834C12.5395 14.1834 12.5014 14.1341 12.5806 13.7448C12.8794 12.278 13.1811 10.8111 13.4829 9.34428C13.5767 8.89115 13.5767 8.88534 13.1284 8.88534C11.6518 8.88534 10.1753 8.89115 8.7016 8.87663C8.37934 8.87663 8.25629 8.98701 8.19476 9.30071C7.90472 10.8169 7.58538 12.3274 7.28362 13.8436C7.23382 14.0934 7.11956 14.1951 6.85881 14.1921C5.82755 14.1834 4.79629 14.1834 3.76503 14.1921C3.46327 14.1921 3.38416 14.0934 3.44276 13.7942C3.95546 11.2672 4.45351 8.74011 4.95742 6.21016C5.32364 4.37732 5.69571 2.54448 6.05021 0.708741C6.1088 0.403753 6.22892 0.278852 6.55412 0.284662C7.59417 0.30209 8.63422 0.29628 9.6772 0.290471C9.93209 0.290471 10.0083 0.374706 9.95552 0.624506C9.6479 2.09136 9.35493 3.55821 9.04731 5.02506C8.94184 5.53337 8.94477 5.5508 9.48384 5.55371C10.2104 5.55371 10.937 5.55371 11.6636 5.55371L11.6694 5.54499Z"
fill="white"></path>
<path
d="M8.30004 26.537C7.55003 26.537 6.80002 26.5486 6.05002 26.5311C5.76876 26.5253 5.66036 26.6328 5.60763 26.8971C5.31173 28.425 4.99825 29.9499 4.70528 31.4778C4.65254 31.7479 4.53535 31.8438 4.25996 31.8409C3.24042 31.8292 2.22087 31.8263 1.20426 31.8409C0.879063 31.8467 0.799961 31.7479 0.864414 31.4342C1.50895 28.2246 2.1447 25.012 2.78338 21.8024C3.0119 20.6521 3.24921 19.5048 3.46893 18.3516C3.51874 18.0815 3.64179 17.9856 3.91425 17.9915C4.93379 18.0031 5.95334 18.006 6.96995 17.9915C7.29515 17.9856 7.37132 18.0931 7.30687 18.4039C6.99925 19.8708 6.7092 21.3376 6.4133 22.8074C6.35666 23.0901 6.47287 23.2324 6.76194 23.2344C8.23852 23.2344 9.71509 23.2256 11.1887 23.2431C11.5315 23.246 11.6546 23.1298 11.7161 22.8074C12.0003 21.3492 12.3167 19.8969 12.6009 18.4388C12.6683 18.0989 12.8118 17.9856 13.1604 17.9944C14.1565 18.0176 15.1527 18.0118 16.1458 17.9944C16.4593 17.9886 16.5618 18.067 16.4974 18.3923C15.7152 22.1916 14.9417 25.9909 14.1653 29.7902C14.0481 30.3595 13.928 30.9259 13.8226 31.4981C13.7757 31.745 13.6614 31.8496 13.3978 31.8467C12.3665 31.835 11.3352 31.835 10.3069 31.8467C9.96998 31.8496 9.92018 31.7218 9.98463 31.4226C10.2952 29.9441 10.5852 28.4656 10.8841 26.9843C10.9719 26.5428 10.9778 26.5428 10.512 26.5428C9.77369 26.5428 9.0354 26.5428 8.29711 26.5428L8.30004 26.537Z"
fill="white"></path>
<path
d="M41.409 0.252687C42.3202 0.26721 43.536 0.223641 44.7548 0.287543C45.3817 0.319494 45.9882 0.426966 46.5683 0.659339C48.247 1.33031 48.7509 2.55608 48.7451 4.05198C48.7451 4.96404 48.5107 5.84124 48.1093 6.67197C47.1366 8.67909 45.4755 9.7451 43.3251 10.1547C42.1766 10.3754 41.0135 10.2912 39.8563 10.2854C39.4666 10.2854 39.3319 10.4045 39.2674 10.7733C39.0858 11.7784 38.8543 12.7747 38.6639 13.7768C38.6053 14.0905 38.4647 14.1979 38.1453 14.1921C37.1609 14.1776 36.1766 14.1776 35.1951 14.1921C34.8787 14.195 34.782 14.105 34.8494 13.7826C35.7342 9.4372 36.616 5.09184 37.4774 0.743574C37.5535 0.363064 37.7264 0.243973 38.0838 0.246878C39.0916 0.255592 40.0995 0.249782 41.412 0.249782L41.409 0.252687ZM42.1883 3.47395C41.8251 3.47395 41.4618 3.48557 41.1014 3.47104C40.87 3.46233 40.7674 3.54657 40.7206 3.77313C40.5213 4.78685 40.3133 5.79767 40.0995 6.80559C40.0497 7.03796 40.1082 7.128 40.3514 7.1251C41.0428 7.11639 41.7342 7.14253 42.4227 7.11639C43.7001 7.0641 44.4354 6.47446 44.6991 5.34164C44.9657 4.18849 44.4413 3.51461 43.243 3.47976C42.8915 3.46814 42.5399 3.47976 42.1913 3.47976L42.1883 3.47395Z"
fill="white"></path>
<path
d="M38.2882 27.9951C37.8546 27.9951 37.421 28.0038 36.9874 27.9922C36.7442 27.9864 36.6387 28.0793 36.5918 28.3233C36.3956 29.3486 36.1641 30.3682 35.9737 31.3964C35.9122 31.7392 35.7715 31.8554 35.42 31.8467C34.459 31.8234 33.4981 31.8408 32.54 31.8379C32.0947 31.8379 32.0772 31.8147 32.165 31.379C32.7305 28.5789 33.2988 25.7817 33.8643 22.9816C34.1778 21.4335 34.4971 19.8882 34.7989 18.34C34.8487 18.0844 34.9571 17.9915 35.2178 17.9944C37.4913 18.0031 39.7618 17.9769 42.0353 18.0147C43.1105 18.0321 44.1124 18.3458 44.9269 19.101C45.7062 19.8243 45.9435 20.7625 45.9289 21.7617C45.9025 23.4464 45.299 24.922 44.089 26.1129C42.9845 27.1992 41.6163 27.7598 40.0811 27.9399C39.4864 28.0096 38.8887 27.9922 38.2911 27.9951H38.2882ZM38.7833 24.7825C39.088 24.7825 39.3927 24.7883 39.6974 24.7825C40.9396 24.7593 41.6573 24.1871 41.9415 22.9904C42.2023 21.8982 41.6778 21.204 40.5499 21.1779C39.8233 21.1604 39.0968 21.1779 38.3731 21.1691C38.1475 21.1662 38.0362 21.2359 37.9923 21.4654C37.793 22.4791 37.585 23.49 37.3682 24.5008C37.3243 24.7099 37.3946 24.7825 37.5909 24.7825C37.9893 24.7825 38.3878 24.7825 38.7862 24.7825H38.7833Z"
fill="white"></path>
<path
d="M69.259 17.9973C70.7707 17.9973 72.2825 17.9973 73.7913 17.9973C74.2395 17.9973 74.2483 18.0147 74.1546 18.4562C73.9905 19.2288 73.8206 20.0015 73.677 20.777C73.6213 21.0733 73.4866 21.1779 73.1819 21.175C71.4006 21.1633 69.6193 21.1779 67.841 21.1633C67.507 21.1604 67.3547 21.265 67.299 21.5903C67.1994 22.1625 67.0734 22.729 66.9387 23.2954C66.8713 23.58 66.9562 23.6555 67.2463 23.6526C68.8869 23.641 70.5276 23.6468 72.1653 23.6468C72.637 23.6468 72.6545 23.6701 72.5666 24.1174C72.4172 24.8581 72.2532 25.5958 72.1213 26.3365C72.0569 26.6909 71.9192 26.839 71.5237 26.8332C69.9065 26.81 68.2893 26.8332 66.675 26.8187C66.3498 26.8158 66.2267 26.9291 66.1681 27.2341C65.9015 28.6254 65.6056 30.0109 65.342 31.4023C65.2804 31.7218 65.1632 31.8525 64.8175 31.8467C63.8566 31.8263 62.8956 31.8321 61.9347 31.8409C61.6212 31.8438 61.5275 31.7566 61.5948 31.4313C62.3449 27.7569 63.0802 24.0796 63.8214 20.4023C63.9591 19.7197 64.1056 19.0371 64.2316 18.3516C64.2785 18.096 64.3693 17.9827 64.6623 17.9857C66.1974 18.0031 67.7326 17.9944 69.2648 17.9944L69.259 17.9973Z"
fill="white"></path>
<path
d="M80.8548 17.9943C82.3783 17.9943 83.9017 18.0001 85.4252 17.9885C85.7181 17.9885 85.7972 18.067 85.7357 18.3516C85.5541 19.1562 85.3812 19.9637 85.2318 20.7741C85.1761 21.0762 85.0472 21.1778 84.7425 21.1749C82.9613 21.1633 81.18 21.1807 79.3987 21.1633C79.0442 21.1604 78.9007 21.2708 78.8479 21.6164C78.763 22.177 78.6458 22.7376 78.5081 23.2895C78.4319 23.5916 78.5345 23.6497 78.8128 23.6497C80.4534 23.641 82.0941 23.6468 83.7347 23.6497C84.2064 23.6497 84.2122 23.6642 84.1156 24.1261C83.9574 24.8871 83.7933 25.6481 83.6556 26.4149C83.5999 26.7199 83.4769 26.839 83.1488 26.8361C81.5198 26.8216 79.8909 26.8361 78.262 26.8245C77.9339 26.8245 77.7874 26.9058 77.7229 27.2457C77.4622 28.6254 77.1575 29.9993 76.8938 31.379C76.8264 31.7333 76.677 31.8583 76.3137 31.8495C75.3645 31.8263 74.4153 31.835 73.466 31.8437C73.1731 31.8437 73.0735 31.7711 73.1379 31.4545C73.9524 27.4722 74.7522 23.487 75.5579 19.5019C75.634 19.1271 75.7366 18.7554 75.7835 18.3748C75.8245 18.0495 75.9944 17.9943 76.2815 17.9972C77.805 18.006 79.3284 18.003 80.8519 18.003V17.9972L80.8548 17.9943Z"
fill="white"></path>
<path
d="M69.751 31.7769C70.4014 31.8728 70.999 31.9744 71.5967 32.0412C75.7891 32.5176 79.8409 31.9889 83.7287 30.3391C84.8713 29.854 85.9611 29.2644 87.0158 28.6108C87.2824 28.4453 87.3996 28.2797 87.3088 27.9602C87.2209 27.6494 87.1828 27.3241 87.1242 27.0046C87.1037 26.8826 87.01 26.7286 87.1242 26.6444C87.2385 26.5601 87.3644 26.6879 87.4699 26.7548C88.4397 27.3444 89.4065 27.9311 90.3703 28.5295C91.1643 29.0233 91.1614 29.0262 90.5989 29.7843C89.9045 30.7196 89.216 31.6607 88.5217 32.5931C88.4572 32.6802 88.4162 32.8371 88.2756 32.7993C88.1555 32.7674 88.1936 32.6222 88.1701 32.5263C88.0969 32.1865 88.0266 31.8437 87.965 31.501C87.9211 31.2541 87.8127 31.2076 87.5783 31.3034C85.4953 32.1458 83.3332 32.6919 81.1066 32.991C77.3595 33.4994 73.6797 33.2496 70.0938 31.9977C69.9883 31.9599 69.8652 31.9483 69.751 31.7798V31.7769Z"
fill="white"></path>
<path
d="M65.8896 15.0316C66.2324 15.0083 66.54 15.1274 66.8535 15.171C72.5343 15.9756 77.8634 15.081 82.7443 11.973C83.0432 11.7813 83.1252 11.5925 83.0314 11.2642C82.9435 10.9534 82.8996 10.6281 82.8439 10.3086C82.8293 10.2244 82.7648 10.114 82.8644 10.053C82.9582 9.99781 83.0432 10.085 83.1193 10.1314C84.1096 10.7327 85.094 11.3369 86.0813 11.9381C86.2893 12.0659 86.4973 12.1995 86.7082 12.3244C86.8811 12.4261 86.8899 12.5423 86.7698 12.6933C85.9026 13.8058 85.0412 14.9212 84.174 16.0337C84.1272 16.0947 84.0861 16.1905 83.9865 16.1586C83.8898 16.1295 83.9016 16.0279 83.8869 15.9524C83.8107 15.5893 83.7346 15.2262 83.6672 14.8602C83.6262 14.6365 83.5676 14.5378 83.301 14.6453C81.3029 15.444 79.2316 15.9698 77.0988 16.2544C75.1065 16.5188 73.1114 16.5449 71.1104 16.3271C69.4375 16.1441 67.8057 15.8013 66.2207 15.2407C66.1064 15.2 65.9629 15.203 65.8896 15.0345V15.0316Z"
fill="white"></path>
<path
d="M67.8024 37.6762C68.1276 37.1302 68.4997 36.6073 68.7663 36.0351C69.0592 35.4048 69.4577 35.0766 70.1725 35.2218C70.2165 35.2305 70.2663 35.2218 70.3132 35.2218C70.7175 35.2276 70.7468 35.2567 70.6764 35.643C70.4743 36.7264 70.2663 37.8098 70.0612 38.8933C70.0143 39.1315 69.9674 39.3726 69.9294 39.6136C69.8942 39.8315 69.7829 39.9215 69.5514 39.9302C68.7047 39.9593 68.7047 39.9651 68.8659 39.1344C68.986 38.5099 69.1061 37.8854 69.1559 37.2289C68.9567 37.5717 68.7604 37.9173 68.5612 38.2601C68.3122 38.6929 68.0573 39.1257 67.817 39.5643C67.7057 39.7647 67.5768 39.8954 67.3219 39.8634C67.0612 39.8286 67.067 39.6224 67.0319 39.4481C66.8766 38.6987 66.7242 37.9464 66.5133 37.1883C66.3961 37.8128 66.2789 38.4373 66.1617 39.0647C66.15 39.1228 66.1442 39.1808 66.1354 39.236C66.0035 39.9361 66.0035 39.9215 65.2682 39.9273C64.9371 39.9302 64.8668 39.8199 64.9283 39.5149C65.1568 38.3879 65.3678 37.258 65.5875 36.1281C65.6139 35.9915 65.6402 35.855 65.6695 35.7185C65.7379 35.3835 65.9381 35.216 66.2701 35.216C66.9303 35.216 67.32 35.5336 67.4391 36.1687C67.5329 36.6596 67.6325 37.1476 67.7291 37.6356C67.7555 37.6472 67.7819 37.6559 67.8082 37.6675L67.8024 37.6762Z"
fill="white"></path>
<path
d="M58.6563 37.9842C58.6681 36.3082 59.8868 35.1115 61.548 35.1521C62.5499 35.1754 63.2999 35.7941 63.4406 36.7787C63.6691 38.3763 62.4562 40.1656 60.423 39.9884C59.3126 39.8925 58.6475 39.1199 58.6563 37.9871V37.9842ZM59.8165 37.8099C59.8048 38.2543 59.8985 38.6551 60.3556 38.8498C60.8155 39.0444 61.2609 38.9747 61.6388 38.658C62.1368 38.2398 62.3478 37.685 62.2628 37.0431C62.1749 36.3605 61.6505 36.0264 60.9737 36.2007C60.297 36.375 59.8282 37.0256 59.8136 37.8099H59.8165Z"
fill="white"></path>
<path
d="M34.8758 39.9274C34.4305 39.9274 33.9852 39.9245 33.5399 39.9274C33.3143 39.9303 33.2176 39.8606 33.2645 39.6166C33.5311 38.2369 33.7889 36.8572 34.0438 35.4775C34.0789 35.2945 34.1727 35.219 34.3543 35.2219C35.2684 35.2219 36.1825 35.2219 37.0936 35.2219C37.3133 35.2219 37.3924 35.3119 37.3397 35.524C37.3221 35.5908 37.3192 35.6605 37.3075 35.7302C37.245 36.0633 37.0428 36.2298 36.701 36.2298C36.2674 36.2298 35.8338 36.2269 35.4002 36.2298C35.1043 36.2298 34.8143 36.6684 34.9198 36.9443C34.9666 37.0634 35.0721 37.0315 35.16 37.0315C35.6522 37.0344 36.1444 37.0489 36.6366 37.0315C36.9559 37.0199 37.0292 37.1477 36.9559 37.4265C36.9296 37.5282 36.9061 37.6298 36.8944 37.7344C36.871 37.9639 36.745 38.051 36.5165 38.0452C36.036 38.0365 35.5555 38.0394 35.075 38.0452C34.7528 38.0452 34.4334 38.5506 34.5682 38.8382C34.6209 38.9515 34.7264 38.9166 34.8143 38.9195C35.3416 38.9224 35.869 38.9311 36.3963 38.9195C36.6483 38.9137 36.745 39.0037 36.6835 39.2477C36.6747 39.2826 36.6747 39.3174 36.6688 39.3523C36.6024 39.7415 36.3661 39.9361 35.9598 39.9361C35.5965 39.9361 35.2332 39.9361 34.87 39.9361L34.8758 39.9274Z"
fill="white"></path>
<path
d="M78.8237 38.0422C77.1361 38.0422 75.4516 38.0422 73.764 38.0422C73.2806 38.0422 73.2689 38.0277 73.3539 37.5804C73.4281 37.1776 73.6732 36.9762 74.0892 36.9762C77.4145 36.9762 80.7397 36.9762 84.0649 36.9762C84.5776 36.9762 84.5835 36.9849 84.4809 37.4874C84.4067 37.8553 84.1831 38.0393 83.81 38.0393C82.146 38.0393 80.4848 38.0393 78.8207 38.0393L78.8237 38.0422Z"
fill="white"></path>
<path
d="M29.0368 36.9792C29.4616 36.5377 29.904 36.1078 30.3083 35.6489C30.5954 35.3236 30.9147 35.158 31.3512 35.2248C31.5739 35.2597 31.9167 35.1115 31.9928 35.3061C32.0661 35.4891 31.735 35.6489 31.5768 35.8086C31.1374 36.2589 30.695 36.7062 30.2321 37.1332C30.0299 37.3191 30.0182 37.473 30.1501 37.7025C30.5075 38.3299 30.8356 38.9689 31.1872 39.5992C31.3219 39.8403 31.2721 39.9332 30.9909 39.9245C29.8161 39.8984 30.1266 40.1017 29.6051 39.0967C29.4997 38.8905 29.3854 38.6842 29.3004 38.4693C29.1774 38.1643 29.0485 38.2224 28.8522 38.4112C28.6178 38.6378 28.6178 38.9369 28.5621 39.2129C28.4039 39.9942 28.6002 39.9216 27.6129 39.9245C27.358 39.9245 27.2906 39.8229 27.3405 39.5789C27.5543 38.4867 27.7565 37.3917 27.9616 36.2966C27.985 36.1717 28.0055 36.0439 28.0289 35.919C28.1637 35.2016 28.3248 35.0999 29.069 35.2219C29.3092 35.2626 29.2623 35.4136 29.2389 35.5588C29.1569 36.0207 29.069 36.4825 28.9811 36.9444C29.0016 36.956 29.0192 36.9647 29.0397 36.9763L29.0368 36.9792Z"
fill="white"></path>
<path
d="M45.7943 39.9971C45.267 39.9738 44.7133 39.8664 44.2445 39.4859C44.0424 39.3203 43.9955 39.1605 44.1918 38.9659C44.2093 38.9485 44.2211 38.9311 44.2386 38.9136C44.3881 38.751 44.5082 38.5157 44.6928 38.4431C44.9008 38.3589 45.0092 38.6609 45.1937 38.7539C45.5951 38.9543 46.0023 39.0618 46.4447 38.9107C46.6234 38.8497 46.7582 38.7365 46.767 38.5418C46.7758 38.3443 46.6264 38.2543 46.4652 38.2049C46.143 38.1032 45.809 38.0306 45.4896 37.9202C44.6049 37.6124 44.3383 36.8571 44.8129 36.0526C45.2025 35.3961 46.0609 35.0446 46.9604 35.1753C47.3588 35.2334 47.7309 35.3612 48.0619 35.5965C48.2377 35.7214 48.3051 35.8434 48.1322 36.0177C48.0824 36.0671 48.0443 36.1281 48.0004 36.1804C47.7719 36.4515 47.5024 36.5125 47.1918 36.3634C46.89 36.2181 46.5766 36.1339 46.2396 36.1775C46.017 36.2065 45.8119 36.3024 45.7826 36.5405C45.7504 36.7845 45.9818 36.8281 46.1547 36.8833C46.4096 36.9675 46.6762 37.0227 46.9311 37.1069C47.4115 37.2667 47.8715 37.47 47.9389 38.0481C48.0151 38.7219 47.7924 39.2883 47.1977 39.6659C46.7904 39.9245 46.3305 40 45.7973 40.0029L45.7943 39.9971Z"
fill="white"></path>
<path
d="M5.07682 38.0422C3.51821 38.0422 1.96253 38.0422 0.403916 38.0422C-0.0384717 38.0422 -0.0443311 38.0335 0.0435605 37.6094C0.131452 37.1873 0.398057 36.9762 0.843374 36.9762C3.84341 36.9762 6.84051 36.9762 9.84054 36.9762C10.2175 36.9762 10.3708 37.1553 10.3005 37.5136C10.2302 37.8718 10.0124 38.047 9.64718 38.0393C8.12373 38.0393 6.60027 38.0393 5.07975 38.0393L5.07682 38.0422Z"
fill="white"></path>
<path
d="M52.6826 37.9812C52.6914 36.0613 54.5401 34.6757 56.2422 35.2712C56.6524 35.4135 56.9307 35.6953 57.1387 36.0613C57.25 36.2559 57.209 36.3895 56.9922 36.4679C56.9043 36.4999 56.8135 36.5318 56.7373 36.5812C56.4385 36.7729 56.2159 36.7584 55.9815 36.4447C55.7412 36.1194 55.3574 36.1048 54.9883 36.2152C54.1797 36.4505 53.6436 37.4526 53.8867 38.2543C54.1182 39.0182 55.0821 39.2041 55.7149 38.6145C55.8174 38.5186 55.8789 38.292 56.0518 38.3618C56.3067 38.4663 56.5381 38.6348 56.7696 38.7887C56.837 38.8352 56.7842 38.9165 56.7432 38.9746C56.2627 39.6253 55.6153 39.9767 54.8008 39.9942C54.0274 40.0116 53.374 39.7734 52.9551 39.0763C52.7412 38.7248 52.668 38.3443 52.6855 37.9812H52.6826Z"
fill="white"></path>
<path
d="M21.4606 37.8941C21.4635 36.2966 22.7731 35.0563 24.4636 35.1579C25.1052 35.1957 25.5945 35.4978 25.9197 36.0555C26.0368 36.2559 26.0427 36.4011 25.782 36.4737C25.6823 36.5028 25.5798 36.5435 25.489 36.5928C25.2165 36.7497 25.0232 36.7729 24.7976 36.4592C24.5632 36.131 24.156 36.1019 23.7692 36.2094C22.902 36.4476 22.363 37.5368 22.697 38.3705C22.9665 39.0473 23.9245 39.1751 24.4958 38.6116C24.5954 38.5128 24.6511 38.2979 24.8415 38.3734C25.0993 38.478 25.3513 38.6145 25.5534 38.8091C25.6238 38.8788 25.5359 38.9572 25.4919 39.024C24.8298 40 23.2331 40.3108 22.2546 39.6427C21.6745 39.2477 21.446 38.6726 21.4606 37.8912V37.8941Z"
fill="white"></path>
<path
d="M14.983 35.2219C15.4986 35.2219 16.0113 35.2277 16.527 35.2219C16.776 35.219 16.8756 35.3119 16.8053 35.5588C16.7907 35.614 16.7877 35.6721 16.776 35.7302C16.7115 36.0632 16.5114 36.2298 16.1754 36.2298C15.4137 36.2298 15.4108 36.2298 15.2672 36.9763C15.1119 37.7954 14.9596 38.6174 14.8102 39.4394C14.7223 39.9216 14.7193 39.9245 14.2301 39.9274C13.7887 39.9274 13.61 39.7086 13.6939 39.271C13.8639 38.3821 14.025 37.4933 14.2066 36.6074C14.2652 36.3198 14.2066 36.1949 13.8873 36.2269C13.6676 36.2472 13.442 36.2298 13.2223 36.2269C13.0435 36.2269 12.9644 36.1397 13.0025 35.9597C13.0084 35.9364 13.0113 35.9132 13.0142 35.8899C13.0728 35.4426 13.3297 35.2199 13.7848 35.2219C13.9605 35.2219 14.1363 35.2219 14.3121 35.2219C14.5348 35.2219 14.7574 35.2219 14.9801 35.2219H14.983Z"
fill="white"></path>
<path
d="M41.2414 35.2219C41.7219 35.2219 42.2024 35.2393 42.6799 35.2161C43.0198 35.1987 43.0959 35.3352 43.011 35.6256C43.0051 35.6489 43.0022 35.6721 42.9993 35.6953C42.9309 36.0517 42.7151 36.2298 42.3518 36.2298C41.4524 36.2298 41.6457 36.1659 41.4875 36.9502C41.3117 37.8245 41.1447 38.7017 40.9953 39.5818C40.9514 39.8403 40.8488 39.9361 40.5852 39.9332C39.633 39.9158 39.759 40.0204 39.9201 39.1432C40.0783 38.2892 40.2424 37.4352 40.4211 36.5813C40.4768 36.3082 40.383 36.2124 40.1193 36.2327C40.049 36.2385 39.9787 36.2327 39.9084 36.2327C39.1203 36.2327 39.1994 36.3169 39.3313 35.5065C39.3664 35.2916 39.4895 35.2219 39.6975 35.2248C40.2131 35.2306 40.7258 35.2248 41.2414 35.2248V35.2219Z"
fill="white"></path>
<path
d="M18.5449 39.9216C18.4511 39.9216 18.3574 39.9216 18.2636 39.9216C18.0644 39.9216 17.9911 39.8374 18.0292 39.637C18.29 38.2689 18.5507 36.9008 18.8027 35.5327C18.8466 35.2887 18.9814 35.219 19.2158 35.2161C20.0214 35.2016 20.0097 35.1928 19.8574 35.9626C19.6347 37.1012 19.4296 38.2427 19.2128 39.3814C19.1103 39.9245 19.1074 39.9216 18.5419 39.9187L18.5449 39.9216Z"
fill="white"></path>
<path
d="M50.9005 39.2506C50.9005 39.6514 50.59 39.9797 50.212 39.9826C49.8839 39.9855 49.629 39.7357 49.6349 39.4133C49.6437 39.0095 49.9864 38.6493 50.3526 38.6522C50.6661 38.6522 50.9005 38.9108 50.9005 39.2506Z"
fill="white"></path>
</g>
<defs>
<clipPath id="clip0_117_3713">
<rect width="91" height="40" fill="white"></rect>
</clipPath>
</defs>
</svg>
</span>
<p class="footer__about">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet.</p>
</div>
<nav class="footer__cols" aria-label="Footer">
<div class="footer__col">
<h2 class="footer__ct">Quick Access</h2>
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="tours.html">Tours</a></li>
<li><a href="blog.html">Weblog</a></li>
<li><a href="contact.html">Contact us</a></li>
<li><a href="about.html">About us</a></li>
</ul>
</div>
<div class="footer__col">
<h2 class="footer__ct">Tours</h2>
<ul>
<li><a href="tours.html">London</a></li>
<li><a href="tours.html">Nashville</a></li>
<li><a href="tours.html">Sydney</a></li>
<li><a href="tours.html">San Diego</a></li>
<li><a href="tours.html">Paris</a></li>
</ul>
</div>
<div class="footer__col">
<h2 class="footer__ct">User Account</h2>
<ul>
<li><a href="#">Sign in</a></li>
<li><a href="#">Forget Password</a></li>
<li><a href="#">Booking History</a></li>
<li><a href="#">Support</a></li>
<li><a href="#">Dashboard</a></li>
</ul>
</div>
</nav>
</div>
<div class="container footer__bar">
<p class="footer__copy">&copy; 2026 Hop on Hop Off. All rights reserved.</p>
<ul class="socials">
<li><a href="#" aria-label="WhatsApp"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-whatsapp" />
</svg></a></li>
<li><a href="#" aria-label="Instagram"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-instagram" />
</svg></a></li>
<li><a href="#" aria-label="Telegram"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-telegram" />
</svg></a></li>
<li><a href="#" aria-label="Facebook"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-facebook" />
</svg></a></li>
</ul>
</div>
<a class="support" href="#" aria-label="Support">
<svg class="ring-badge__ring support__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">SUPPORT &#183; SUPPORT &#183; SUPPORT &#183; </textPath>
</text>
</svg>
<span class="support__tab">
<svg class="icon icon--24" aria-hidden="true">
<use href="#i-headset" />
</svg>
</span>
</a>
</footer>
<script src="js/main.js"></script>
</body>
</html>

823
new front/tour-paris.html Normal file
View File

@@ -0,0 +1,823 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Hop On Hop Off &mdash; Paris Tour</title>
<meta name="description" content="The Paris hop on hop off tour &mdash; 1h 30m, free cancellation up to 24 hrs, from $30 per person." />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;700;800&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<a class="skip-link" href="#main">Skip to content</a>
<!-- ============ icon sprite ============ -->
<svg class="sprite" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg">
<symbol id="i-arrow-right" viewBox="0 0 16 16" fill="none">
<path d="M2.66699 8H13.3337M9.33366 12L13.3337 8L9.33366 4" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-left" viewBox="0 0 16 16" fill="none">
<path d="M13.333 8H2.66634M6.66634 12L2.66634 8L6.66634 4" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-ne" viewBox="0 0 16 16" fill="none">
<path d="M4 12L12 4M12 10V4H6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-up" viewBox="0 0 16 16" fill="none">
<path d="M8 13.3333L8 2.66659M12 6.66659L8 2.66659L4 6.66659" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-chevron" viewBox="0 0 16 16" fill="none">
<path d="M12.6663 6L7.99967 10L3.33301 6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
</symbol>
<symbol id="i-search" viewBox="0 0 24 24" fill="none">
<circle cx="11.5" cy="11.5" r="9.5" stroke="currentColor" stroke-width="1.5" />
<path d="M18.5 18.5L22 22" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-user" viewBox="0 0 24 24" fill="none">
<circle cx="12" cy="6" r="4" stroke="currentColor" stroke-width="1.5" />
<ellipse cx="12" cy="17" rx="7" ry="4" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-location" viewBox="0 0 16 16" fill="none">
<path
d="M2.66699 6.76224C2.66699 3.76396 5.05481 1.33337 8.00033 1.33337C10.9458 1.33337 13.3337 3.76396 13.3337 6.76224C13.3337 9.73702 11.6314 13.2083 8.97561 14.4497C8.3565 14.7391 7.64415 14.7391 7.02504 14.4497C4.36921 13.2083 2.66699 9.73702 2.66699 6.76224Z"
stroke="currentColor" stroke-width="1.5" />
<circle cx="8" cy="6.66663" r="2" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-calendar" viewBox="0 0 16 16" fill="none">
<path
d="M1.33301 7.99996C1.33301 5.4858 1.33301 4.22872 2.11406 3.44767C2.8951 2.66663 4.15218 2.66663 6.66634 2.66663H9.33301C11.8472 2.66663 13.1042 2.66663 13.8853 3.44767C14.6663 4.22872 14.6663 5.4858 14.6663 7.99996V9.33329C14.6663 11.8475 14.6663 13.1045 13.8853 13.8856C13.1042 14.6666 11.8472 14.6666 9.33301 14.6666H6.66634C4.15218 14.6666 2.8951 14.6666 2.11406 13.8856C1.33301 13.1045 1.33301 11.8475 1.33301 9.33329V7.99996Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M4.66699 2.66663V1.66663" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M11.333 2.66663V1.66663" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M1.66699 6H14.3337" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-seat" viewBox="0 0 16 16" fill="none">
<circle cx="5.99967" cy="4.00004" r="2.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M10 6C11.1046 6 12 5.10457 12 4C12 2.89543 11.1046 2 10 2" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" />
<ellipse cx="5.99967" cy="11.3333" rx="4.66667" ry="2.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M12 9.33337C13.1695 9.58984 14 10.2393 14 11C14 11.6863 13.3242 12.282 12.3333 12.5803"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-mouse" viewBox="0 0 16 16" fill="none">
<path
d="M3.33301 5.99998C3.33301 3.42265 5.42235 1.33331 7.99967 1.33331C10.577 1.33331 12.6663 3.42265 12.6663 5.99998V9.99998C12.6663 12.5773 10.577 14.6666 7.99967 14.6666C5.42235 14.6666 3.33301 12.5773 3.33301 9.99998V5.99998Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M7 5.66669C7 5.1144 7.44772 4.66669 8 4.66669C8.55228 4.66669 9 5.1144 9 5.66669V7.00002C9 7.5523 8.55228 8.00002 8 8.00002C7.44772 8.00002 7 7.5523 7 7.00002V5.66669Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M8 1.33331V4.66665" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-grid" viewBox="0 0 16 16" fill="none">
<path
d="M1.66699 4.33329C1.66699 3.07621 1.66699 2.44767 2.05752 2.05715C2.44804 1.66663 3.07658 1.66663 4.33366 1.66663C5.59074 1.66663 6.21928 1.66663 6.6098 2.05715C7.00033 2.44767 7.00033 3.07621 7.00033 4.33329C7.00033 5.59037 7.00033 6.21891 6.6098 6.60944C6.21928 6.99996 5.59074 6.99996 4.33366 6.99996C3.07658 6.99996 2.44804 6.99996 2.05752 6.60944C1.66699 6.21891 1.66699 5.59037 1.66699 4.33329Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M9 11.6667C9 10.4096 9 9.78105 9.39052 9.39052C9.78105 9 10.4096 9 11.6667 9C12.9237 9 13.5523 9 13.9428 9.39052C14.3333 9.78105 14.3333 10.4096 14.3333 11.6667C14.3333 12.9237 14.3333 13.5523 13.9428 13.9428C13.5523 14.3333 12.9237 14.3333 11.6667 14.3333C10.4096 14.3333 9.78105 14.3333 9.39052 13.9428C9 13.5523 9 12.9237 9 11.6667Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M1.66699 11.6667C1.66699 10.4096 1.66699 9.78105 2.05752 9.39052C2.44804 9 3.07658 9 4.33366 9C5.59074 9 6.21928 9 6.6098 9.39052C7.00033 9.78105 7.00033 10.4096 7.00033 11.6667C7.00033 12.9237 7.00033 13.5523 6.6098 13.9428C6.21928 14.3333 5.59074 14.3333 4.33366 14.3333C3.07658 14.3333 2.44804 14.3333 2.05752 13.9428C1.66699 13.5523 1.66699 12.9237 1.66699 11.6667Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M9 4.33329C9 3.07621 9 2.44767 9.39052 2.05715C9.78105 1.66663 10.4096 1.66663 11.6667 1.66663C12.9237 1.66663 13.5523 1.66663 13.9428 2.05715C14.3333 2.44767 14.3333 3.07621 14.3333 4.33329C14.3333 5.59037 14.3333 6.21891 13.9428 6.60944C13.5523 6.99996 12.9237 6.99996 11.6667 6.99996C10.4096 6.99996 9.78105 6.99996 9.39052 6.60944C9 6.21891 9 5.59037 9 4.33329Z"
stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-price" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="8.00004" r="6.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M8 4V12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M10 6.33335C10 5.41288 9.10457 4.66669 8 4.66669C6.89543 4.66669 6 5.41288 6 6.33335C6 7.25383 6.89543 8.00002 8 8.00002C9.10457 8.00002 10 8.74621 10 9.66669C10 10.5872 9.10457 11.3334 8 11.3334C6.89543 11.3334 6 10.5872 6 9.66669"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-duration" viewBox="0 0 16 16" fill="none">
<path
d="M1.33366 8.00004C1.33366 11.6819 4.31843 14.6667 8.00033 14.6667C11.6822 14.6667 14.667 11.6819 14.667 8.00004C14.667 4.31814 11.6822 1.33337 8.00033 1.33337"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M8 6V8.66667H10.6667" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
<circle cx="7.99967" cy="8.00004" r="6.66667" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-dasharray="0.5 3.5" />
</symbol>
<symbol id="i-sort" viewBox="0 0 16 16" fill="none">
<path d="M2.66699 11.3333H7.33366" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2.66699 8L7.33366 8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2.66699 4.66669L7.33366 4.66669" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M11.333 2.66665L11.333 13.3333M13.333 5.33331L11.333 2.66665L9.33301 5.33331M9.33301 10.6666L11.333 13.3333L13.333 10.6666"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-check" viewBox="0 0 16 16" fill="none">
<path d="M3.33301 8.33333L6.33301 11.3333L12.6663 5" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-info" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="7.99992" r="6.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M8 11.3333V7.33325" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<circle cx="8" cy="5.33333" r="0.666667" fill="currentColor" />
</symbol>
<symbol id="i-person" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="4.00004" r="2.66667" stroke="currentColor" stroke-width="1.5" />
<ellipse cx="7.99967" cy="11.3333" rx="4.66667" ry="2.66667" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-shield-check" viewBox="0 0 16 16" fill="none">
<path
d="M2 6.94448C2 4.81275 2 3.74689 2.25168 3.38831C2.50335 3.02973 3.50555 2.68668 5.50994 2.00057L5.89182 1.86985C6.93666 1.5122 7.45907 1.33337 8 1.33337C8.54093 1.33337 9.06335 1.5122 10.1082 1.86985L10.4901 2.00057C12.4945 2.68668 13.4966 3.02973 13.7483 3.38831C14 3.74689 14 4.81275 14 6.94448C14 7.26647 14 7.61565 14 7.99428C14 11.753 11.174 13.577 9.40096 14.3516C8.91999 14.5617 8.67951 14.6667 8 14.6667C7.32049 14.6667 7.08001 14.5617 6.59904 14.3516C4.82597 13.577 2 11.753 2 7.99428C2 7.61565 2 7.26647 2 6.94448Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M6.33301 8.26663L7.28539 9.33329L9.66634 6.66663" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-x" viewBox="0 0 16 16" fill="none">
<path d="M12.6663 3.33337L3.33301 12.6667M3.33301 3.33337L12.6663 12.6667" stroke="currentColor"
stroke-width="2" stroke-linecap="round" />
</symbol>
<symbol id="i-star" viewBox="0 0 12 12">
<path
d="M4.21205 2.06464C4.94362 0.701584 5.30941 0.0200537 5.87277 0.000515809C6.43613 -0.019022 6.82396 0.636371 7.59964 1.94716L7.80031 2.28628C8.02073 2.65876 8.13095 2.845 8.29997 2.96455C8.46899 3.08409 8.67769 3.12341 9.09509 3.20203L9.4751 3.27362C10.9439 3.55031 11.6784 3.68865 11.8616 4.23622C12.0448 4.78378 11.5555 5.37794 10.5768 6.56625L10.3236 6.87368C10.0455 7.21136 9.90649 7.3802 9.84606 7.58521C9.78563 7.79021 9.81067 8.00818 9.86075 8.44411L9.90634 8.84099C10.0826 10.3751 10.1707 11.1421 9.72055 11.5C9.27043 11.858 8.58018 11.5698 7.19966 10.9934L6.84251 10.8443C6.45021 10.6805 6.25406 10.5986 6.04769 10.6058C5.84132 10.613 5.6481 10.7084 5.26165 10.8991L4.90982 11.0729C3.54988 11.7443 2.86992 12.08 2.40851 11.7536C1.9471 11.4273 2.00982 10.655 2.13527 9.1105L2.16772 8.71092C2.20337 8.27201 2.2212 8.05256 2.15408 7.85197C2.08696 7.65139 1.9425 7.49238 1.65359 7.17437L1.39055 6.88484C0.373843 5.76573 -0.134512 5.20618 0.0304441 4.64653C0.1954 4.08689 0.924422 3.89779 2.38247 3.5196L2.75968 3.42175C3.17401 3.31428 3.38117 3.26054 3.54606 3.12942C3.71095 2.99829 3.8149 2.80462 4.02279 2.41729L4.21205 2.06464Z"
fill="currentColor" />
</symbol>
<symbol id="i-plus" viewBox="0 0 14 14" fill="none">
<path d="M12.75 6.75005L6.75 6.75005M6.75 6.75005L0.75 6.75005M6.75 6.75005L6.75 0.75M6.75 6.75005L6.75 12.75"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-minus" viewBox="0 0 14 14" fill="none">
<path d="M12.75 7L0.75 7" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-headset" viewBox="0 0 24 24" fill="none">
<path d="M21 17V12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12V17" stroke="currentColor"
stroke-width="1.5" />
<path d="M22 15.5V17.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2 15.5V17.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M8 13.8446C8 13.0802 8 12.698 7.82526 12.4323C7.73733 12.2985 7.62061 12.188 7.4844 12.1095C7.21371 11.9535 6.84812 11.9896 6.11694 12.0617C4.88487 12.1831 4.26884 12.2439 3.82737 12.5764C3.60394 12.7448 3.41638 12.9593 3.27646 13.2067C3 13.6955 3 14.3395 3 15.6276V17.1933C3 18.4685 3 19.1061 3.28198 19.5986C3.38752 19.7829 3.51981 19.9491 3.67416 20.0913C4.08652 20.4714 4.68844 20.5901 5.89227 20.8275C6.73944 20.9945 7.16302 21.078 7.47564 20.9021C7.591 20.8372 7.69296 20.7493 7.77572 20.6434C8 20.3565 8 19.9078 8 19.0104V13.8446Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M16 13.8446C16 13.0802 16 12.698 16.1747 12.4323C16.2627 12.2985 16.3794 12.188 16.5156 12.1095C16.7863 11.9535 17.1519 11.9896 17.8831 12.0617C19.1151 12.1831 19.7312 12.2439 20.1726 12.5764C20.3961 12.7448 20.5836 12.9593 20.7235 13.2067C21 13.6955 21 14.3395 21 15.6276V17.1933C21 18.4685 21 19.1061 20.718 19.5986C20.6125 19.7829 20.4802 19.9491 20.3258 20.0913C19.9135 20.4714 19.3116 20.5901 18.1077 20.8275C17.2606 20.9945 16.837 21.078 16.5244 20.9021C16.409 20.8372 16.307 20.7493 16.2243 20.6434C16 20.3565 16 19.9078 16 19.0104V13.8446Z"
stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-whatsapp" viewBox="0 0 20 20">
<path
d="M17 2.875C15.125 1 12.625 0 10 0C4.5 0 0 4.5 0 10C0 11.75 0.500008 13.5 1.37501 15L0 20L5.25002 18.625C6.75002 19.375 8.375 19.875 10 19.875C15.5 19.875 20 15.375 20 9.875C20 7.25 18.875 4.75 17 2.875ZM10 18.25C8.5 18.25 7.00001 17.875 5.75001 17.125L5.49999 17L2.37499 17.875L3.25001 14.875L2.99999 14.5C2.12499 13.125 1.74999 11.625 1.74999 10.125C1.74999 5.625 5.5 1.875 10 1.875C12.25 1.875 14.25 2.75 15.875 4.25C17.5 5.875 18.25 7.875 18.25 10.125C18.25 14.5 14.625 18.25 10 18.25ZM14.5 12C14.25 11.875 13 11.25 12.75 11.25C12.5 11.125 12.375 11.125 12.25 11.375C12.125 11.625 11.625 12.125 11.5 12.375C11.375 12.5 11.25 12.5 11 12.5C10.75 12.375 10 12.125 9.00002 11.25C8.25002 10.625 7.75001 9.75 7.62501 9.5C7.50001 9.25 7.62502 9.125 7.75002 9C7.87502 8.875 8 8.75 8.125 8.625C8.25 8.5 8.25002 8.375 8.37502 8.25C8.50002 8.125 8.37502 8 8.37502 7.875C8.37502 7.75 7.87501 6.5 7.62501 6C7.50001 5.625 7.25002 5.625 7.12502 5.625C7.00002 5.625 6.87498 5.625 6.62498 5.625C6.49998 5.625 6.24998 5.625 5.99998 5.875C5.74998 6.125 5.12501 6.75 5.12501 8C5.12501 9.25 5.99999 10.375 6.12499 10.625C6.24999 10.75 7.87498 13.375 10.375 14.375C12.5 15.25 12.875 15 13.375 15C13.875 15 14.875 14.375 15 13.875C15.25 13.25 15.25 12.75 15.125 12.75C15 12.125 14.75 12.125 14.5 12Z"
fill="currentColor" />
</symbol>
<symbol id="i-instagram" viewBox="0 0 20 20">
<path
d="M10 1.80723C12.6506 1.80723 13.0121 1.80723 14.0964 1.80723C15.0602 1.80723 15.5422 2.04819 15.9036 2.16868C16.3855 2.40964 16.747 2.53012 17.1084 2.89157C17.4699 3.25301 17.7108 3.61446 17.8313 4.09639C17.9518 4.45783 18.0723 4.93976 18.1928 5.90362C18.1928 6.98795 18.1928 7.22892 18.1928 10C18.1928 12.7711 18.1928 13.0121 18.1928 14.0964C18.1928 15.0602 17.9518 15.5422 17.8313 15.9036C17.5904 16.3855 17.4699 16.747 17.1084 17.1084C16.747 17.4699 16.3855 17.7108 15.9036 17.8313C15.5422 17.9518 15.0602 18.0723 14.0964 18.1928C13.0121 18.1928 12.7711 18.1928 10 18.1928C7.22892 18.1928 6.98795 18.1928 5.90362 18.1928C4.93976 18.1928 4.45783 17.9518 4.09639 17.8313C3.61446 17.5904 3.25301 17.4699 2.89157 17.1084C2.53012 16.747 2.28916 16.3855 2.16868 15.9036C2.04819 15.5422 1.92771 15.0602 1.80723 14.0964C1.80723 13.0121 1.80723 12.7711 1.80723 10C1.80723 7.22892 1.80723 6.98795 1.80723 5.90362C1.80723 4.93976 2.04819 4.45783 2.16868 4.09639C2.40964 3.61446 2.53012 3.25301 2.89157 2.89157C3.25301 2.53012 3.61446 2.28916 4.09639 2.16868C4.45783 2.04819 4.93976 1.92771 5.90362 1.80723C6.98795 1.80723 7.3494 1.80723 10 1.80723ZM10 0C7.22892 0 6.98795 0 5.90362 0C4.81928 0 4.09639 0.240965 3.49398 0.481928C2.89157 0.722892 2.28916 1.08434 1.68675 1.68675C1.08434 2.28916 0.843374 2.77109 0.481928 3.49398C0.240965 4.09639 0.120482 4.81928 0 5.90362C0 6.98795 0 7.3494 0 10C0 12.7711 0 13.0121 0 14.0964C0 15.1807 0.240965 15.9036 0.481928 16.506C0.722892 17.1084 1.08434 17.7108 1.68675 18.3133C2.28916 18.9157 2.77109 19.1566 3.49398 19.5181C4.09639 19.759 4.81928 19.8795 5.90362 20C6.98795 20 7.3494 20 10 20C12.6506 20 13.0121 20 14.0964 20C15.1807 20 15.9036 19.759 16.506 19.5181C17.1084 19.2771 17.7108 18.9157 18.3133 18.3133C18.9157 17.7108 19.1566 17.2289 19.5181 16.506C19.759 15.9036 19.8795 15.1807 20 14.0964C20 13.0121 20 12.6506 20 10C20 7.3494 20 6.98795 20 5.90362C20 4.81928 19.759 4.09639 19.5181 3.49398C19.2771 2.89157 18.9157 2.28916 18.3133 1.68675C17.7108 1.08434 17.2289 0.843374 16.506 0.481928C15.9036 0.240965 15.1807 0.120482 14.0964 0C13.0121 0 12.7711 0 10 0Z"
fill="currentColor" />
<path
d="M10 4.81928C7.10843 4.81928 4.81928 7.10843 4.81928 10C4.81928 12.8916 7.10843 15.1807 10 15.1807C12.8916 15.1807 15.1807 12.8916 15.1807 10C15.1807 7.10843 12.8916 4.81928 10 4.81928ZM10 13.3735C8.19277 13.3735 6.62651 11.9277 6.62651 10C6.62651 8.19277 8.07229 6.62651 10 6.62651C11.8072 6.62651 13.3735 8.07229 13.3735 10C13.3735 11.8072 11.8072 13.3735 10 13.3735Z"
fill="currentColor" />
<path
d="M15.3012 5.90362C15.9666 5.90362 16.506 5.3642 16.506 4.6988C16.506 4.03339 15.9666 3.49398 15.3012 3.49398C14.6358 3.49398 14.0964 4.03339 14.0964 4.6988C14.0964 5.3642 14.6358 5.90362 15.3012 5.90362Z"
fill="currentColor" />
</symbol>
<symbol id="i-telegram" viewBox="0 0 20 17">
<path
d="M1.3749 7.31846C6.74359 4.91938 10.3236 3.33777 12.1148 2.57361C17.2292 0.391776 18.2919 0.0127698 18.9846 0.00012133C19.1369 -0.00249777 19.4776 0.0362266 19.6982 0.219862C19.8845 0.37492 19.9358 0.584381 19.9603 0.731393C19.9848 0.878405 20.0154 1.2133 19.9911 1.47498C19.714 4.46174 18.5147 11.7098 17.9046 15.055C17.6465 16.4705 17.1382 16.9451 16.6461 16.9916C15.5766 17.0925 14.7645 16.2667 13.7287 15.5702C12.1078 14.4805 11.1921 13.8021 9.61879 12.7387C7.80053 11.5097 8.97923 10.8343 10.0154 9.73042C10.2866 9.44153 14.9987 5.04555 15.0899 4.64677C15.1013 4.59689 15.1119 4.41098 15.0042 4.31282C14.8965 4.21465 14.7376 4.24822 14.6229 4.27492C14.4604 4.31276 11.871 6.06814 6.85486 9.54107C6.11988 10.0587 5.45416 10.3109 4.8577 10.2977C4.20015 10.2831 2.93528 9.91637 1.99498 9.60288C0.84166 9.21836 -0.0749729 9.01506 0.00484519 8.36203C0.0464194 8.0219 0.503103 7.67404 1.3749 7.31846Z"
fill="currentColor" />
</symbol>
<symbol id="i-facebook" viewBox="0 0 20 20">
<path
d="M20 10C20 4.5 15.5 0 10 0C4.5 0 0 4.5 0 10C0 15 3.625 19.125 8.375 19.875V12.875H5.875V10H8.375V7.75C8.375 5.25 9.875 3.875 12.125 3.875C13.25 3.875 14.375 4.125 14.375 4.125V6.625H13.125C11.875 6.625 11.5 7.375 11.5 8.125V10H14.25L13.75 12.875H11.375V20C16.375 19.25 20 15 20 10Z"
fill="currentColor" />
</symbol>
</svg>
<!-- ============ header ============ -->
<header class="site-header" id="siteHeader">
<div class="container header__inner">
<div class="header__left">
<a class="header__logo" href="index.html" aria-label="Hop On Hop Off — home">
<svg class="logo" viewBox="0 0 91 40" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Logo">
<g clip-path="url(#clip0_117_3713)">
<path
d="M70.0559 6.63419C69.9035 7.36616 69.76 8.05456 69.6194 8.74587C69.2766 10.4306 68.9338 12.1153 68.6027 13.8C68.5471 14.0759 68.424 14.195 68.1311 14.1892C67.217 14.1776 66.3029 14.1863 65.3888 14.1863C65.0216 14.1863 64.8752 14.0023 64.9494 13.6344C65.2892 11.9381 65.632 10.2418 65.9719 8.54545C66.5021 5.90221 67.0324 3.26188 67.551 0.618649C67.6037 0.348516 67.7209 0.229425 67.9934 0.252662C68.8371 0.316565 69.678 0.235234 70.5217 0.243948C70.9289 0.249757 71.175 0.365944 71.3625 0.758072C72.4407 3.01499 73.551 5.25738 74.6526 7.50268C74.7053 7.61306 74.7288 7.74667 74.8929 7.83671C74.9749 7.44749 75.0569 7.0786 75.1302 6.70971C75.5286 4.72873 75.9212 2.74776 76.3196 0.763881C76.4192 0.272995 76.4397 0.243948 76.9349 0.255567C77.8343 0.272995 78.7366 0.272995 79.6361 0.264281C80.1195 0.258471 80.1458 0.316565 80.0521 0.769691C79.1527 5.11505 78.2474 9.45751 77.3567 13.8058C77.2923 14.1166 77.1575 14.2037 76.8645 14.2008C75.9856 14.1892 75.1067 14.1863 74.2278 14.2008C73.926 14.2066 73.759 14.0904 73.6331 13.8261C72.5374 11.5663 71.4299 9.30937 70.3254 7.05246C70.261 6.92465 70.2229 6.77361 70.0559 6.6429V6.63419Z"
fill="white"></path>
<path
d="M25.5852 14.4942C24.0706 14.5029 22.6584 14.1834 21.4426 13.2249C20.218 12.2605 19.5764 10.9825 19.4299 9.45462C19.0314 5.2661 22.1252 0.682561 27.2552 0.0783925C28.6204 -0.0842682 29.9739 -0.0232704 31.2659 0.502472C33.2464 1.30706 34.3363 2.79715 34.5853 4.8885C35.0658 8.90564 31.887 13.8435 26.7776 14.4303C26.3792 14.4768 25.9837 14.4855 25.5852 14.4942ZM30.6068 6.2014C30.6068 6.05036 30.6155 5.89932 30.6068 5.74828C30.5247 4.54866 29.7015 3.59012 28.5589 3.35484C27.5452 3.14571 26.5843 3.3258 25.7317 3.87478C23.9358 5.03664 23.2473 6.75619 23.4289 8.81559C23.5461 10.1575 24.425 11.0202 25.7288 11.2148C26.5901 11.3426 27.4192 11.1771 28.1546 10.7152C29.8157 9.66956 30.5247 8.09814 30.6068 6.20431V6.2014Z"
fill="white"></path>
<path
d="M31.9078 23.3679C31.8873 27.3705 29.107 30.9636 25.3159 31.8698C23.4995 32.3055 21.6889 32.3346 19.9428 31.5706C18.1176 30.7719 17.0717 29.3544 16.8314 27.4083C16.348 23.455 18.7855 19.6035 22.5766 18.2383C24.188 17.6573 25.8374 17.4831 27.5161 17.8607C30.3316 18.4939 31.9224 20.5039 31.9078 23.3679ZM27.9321 23.9343C27.9321 23.7716 27.9439 23.609 27.9321 23.4463C27.8208 22.0695 26.9184 21.111 25.6001 20.9745C24.8383 20.896 24.1118 21.0296 23.4145 21.3521C21.3139 22.328 20.3412 25.2675 20.9008 27.0858C21.1908 28.0299 21.8266 28.6398 22.8051 28.8461C23.7895 29.0523 24.7329 28.8838 25.5708 28.3552C27.1909 27.3327 27.8384 25.7671 27.9321 23.9314V23.9343Z"
fill="white"></path>
<path
d="M58.5507 0.0115716C60.0009 -0.00876093 61.2607 0.243944 62.3915 0.964298C63.83 1.88217 64.5859 3.21541 64.75 4.88558C65.122 8.63549 62.7783 12.7049 58.7792 14.0411C56.9569 14.651 55.1024 14.7324 53.2713 14.0556C51.1766 13.28 49.7937 11.3862 49.7557 9.16704C49.6912 5.3358 51.4051 2.53572 54.8592 0.807447C55.9549 0.261372 57.2733 0.00866699 58.5536 0.00866699L58.5507 0.0115716ZM60.8417 6.23044C60.8417 6.09101 60.8505 5.95159 60.8417 5.81217C60.7685 4.66773 60.08 3.72082 59.0985 3.42454C58.2079 3.15441 57.3378 3.22993 56.494 3.60172C54.5282 4.46731 53.4178 6.79103 53.7371 8.93177C53.9305 10.2243 54.7508 11.0144 56.0048 11.2119C56.6903 11.3194 57.37 11.2293 57.9911 10.9244C59.9482 9.96582 60.6952 8.27241 60.8388 6.22753L60.8417 6.23044Z"
fill="white"></path>
<path
d="M52.5947 32.1313C51.2353 32.1488 50.0048 31.9077 48.8915 31.2367C47.4149 30.3479 46.6444 28.9943 46.4364 27.3299C45.9969 23.8647 48.1122 20.0044 51.5898 18.4795C53.8046 17.5093 56.0869 17.2973 58.3721 18.2819C60.1328 19.043 61.1231 20.4285 61.3604 22.2904C61.6885 24.8552 60.9238 27.1266 59.2861 29.125C57.7012 31.0595 55.0293 32.201 52.5976 32.1313H52.5947ZM53.1718 28.9043C54.0126 28.9362 54.8095 28.669 55.4804 28.1229C57.0683 26.8332 57.707 25.1456 57.4463 23.1414C57.2969 21.9883 56.4414 21.1488 55.3076 20.9891C54.3378 20.8526 53.4003 21.0094 52.5859 21.5729C50.9716 22.6912 50.3036 24.2888 50.33 26.1971C50.3534 27.8383 51.4726 28.9014 53.1689 28.9014L53.1718 28.9043Z"
fill="white"></path>
<path
d="M11.6694 5.54499C12.3843 5.54499 13.0991 5.52466 13.814 5.55371C14.189 5.56823 14.3149 5.4259 14.3794 5.07444C14.6607 3.60178 14.9741 2.13783 15.2642 0.668076C15.3169 0.392134 15.4429 0.261425 15.7271 0.261425C16.7788 0.261425 17.8306 0.25852 18.8824 0.255615C19.1431 0.255615 19.2222 0.365992 19.1666 0.630316C18.4488 4.06362 17.7369 7.49692 17.0279 10.9302C16.8286 11.8859 16.6265 12.8386 16.4449 13.7971C16.3921 14.076 16.2749 14.1921 15.982 14.1892C14.9624 14.1776 13.9429 14.1892 12.9233 14.1834C12.5395 14.1834 12.5014 14.1341 12.5806 13.7448C12.8794 12.278 13.1811 10.8111 13.4829 9.34428C13.5767 8.89115 13.5767 8.88534 13.1284 8.88534C11.6518 8.88534 10.1753 8.89115 8.7016 8.87663C8.37934 8.87663 8.25629 8.98701 8.19476 9.30071C7.90472 10.8169 7.58538 12.3274 7.28362 13.8436C7.23382 14.0934 7.11956 14.1951 6.85881 14.1921C5.82755 14.1834 4.79629 14.1834 3.76503 14.1921C3.46327 14.1921 3.38416 14.0934 3.44276 13.7942C3.95546 11.2672 4.45351 8.74011 4.95742 6.21016C5.32364 4.37732 5.69571 2.54448 6.05021 0.708741C6.1088 0.403753 6.22892 0.278852 6.55412 0.284662C7.59417 0.30209 8.63422 0.29628 9.6772 0.290471C9.93209 0.290471 10.0083 0.374706 9.95552 0.624506C9.6479 2.09136 9.35493 3.55821 9.04731 5.02506C8.94184 5.53337 8.94477 5.5508 9.48384 5.55371C10.2104 5.55371 10.937 5.55371 11.6636 5.55371L11.6694 5.54499Z"
fill="white"></path>
<path
d="M8.30004 26.537C7.55003 26.537 6.80002 26.5486 6.05002 26.5311C5.76876 26.5253 5.66036 26.6328 5.60763 26.8971C5.31173 28.425 4.99825 29.9499 4.70528 31.4778C4.65254 31.7479 4.53535 31.8438 4.25996 31.8409C3.24042 31.8292 2.22087 31.8263 1.20426 31.8409C0.879063 31.8467 0.799961 31.7479 0.864414 31.4342C1.50895 28.2246 2.1447 25.012 2.78338 21.8024C3.0119 20.6521 3.24921 19.5048 3.46893 18.3516C3.51874 18.0815 3.64179 17.9856 3.91425 17.9915C4.93379 18.0031 5.95334 18.006 6.96995 17.9915C7.29515 17.9856 7.37132 18.0931 7.30687 18.4039C6.99925 19.8708 6.7092 21.3376 6.4133 22.8074C6.35666 23.0901 6.47287 23.2324 6.76194 23.2344C8.23852 23.2344 9.71509 23.2256 11.1887 23.2431C11.5315 23.246 11.6546 23.1298 11.7161 22.8074C12.0003 21.3492 12.3167 19.8969 12.6009 18.4388C12.6683 18.0989 12.8118 17.9856 13.1604 17.9944C14.1565 18.0176 15.1527 18.0118 16.1458 17.9944C16.4593 17.9886 16.5618 18.067 16.4974 18.3923C15.7152 22.1916 14.9417 25.9909 14.1653 29.7902C14.0481 30.3595 13.928 30.9259 13.8226 31.4981C13.7757 31.745 13.6614 31.8496 13.3978 31.8467C12.3665 31.835 11.3352 31.835 10.3069 31.8467C9.96998 31.8496 9.92018 31.7218 9.98463 31.4226C10.2952 29.9441 10.5852 28.4656 10.8841 26.9843C10.9719 26.5428 10.9778 26.5428 10.512 26.5428C9.77369 26.5428 9.0354 26.5428 8.29711 26.5428L8.30004 26.537Z"
fill="white"></path>
<path
d="M41.409 0.252687C42.3202 0.26721 43.536 0.223641 44.7548 0.287543C45.3817 0.319494 45.9882 0.426966 46.5683 0.659339C48.247 1.33031 48.7509 2.55608 48.7451 4.05198C48.7451 4.96404 48.5107 5.84124 48.1093 6.67197C47.1366 8.67909 45.4755 9.7451 43.3251 10.1547C42.1766 10.3754 41.0135 10.2912 39.8563 10.2854C39.4666 10.2854 39.3319 10.4045 39.2674 10.7733C39.0858 11.7784 38.8543 12.7747 38.6639 13.7768C38.6053 14.0905 38.4647 14.1979 38.1453 14.1921C37.1609 14.1776 36.1766 14.1776 35.1951 14.1921C34.8787 14.195 34.782 14.105 34.8494 13.7826C35.7342 9.4372 36.616 5.09184 37.4774 0.743574C37.5535 0.363064 37.7264 0.243973 38.0838 0.246878C39.0916 0.255592 40.0995 0.249782 41.412 0.249782L41.409 0.252687ZM42.1883 3.47395C41.8251 3.47395 41.4618 3.48557 41.1014 3.47104C40.87 3.46233 40.7674 3.54657 40.7206 3.77313C40.5213 4.78685 40.3133 5.79767 40.0995 6.80559C40.0497 7.03796 40.1082 7.128 40.3514 7.1251C41.0428 7.11639 41.7342 7.14253 42.4227 7.11639C43.7001 7.0641 44.4354 6.47446 44.6991 5.34164C44.9657 4.18849 44.4413 3.51461 43.243 3.47976C42.8915 3.46814 42.5399 3.47976 42.1913 3.47976L42.1883 3.47395Z"
fill="white"></path>
<path
d="M38.2882 27.9951C37.8546 27.9951 37.421 28.0038 36.9874 27.9922C36.7442 27.9864 36.6387 28.0793 36.5918 28.3233C36.3956 29.3486 36.1641 30.3682 35.9737 31.3964C35.9122 31.7392 35.7715 31.8554 35.42 31.8467C34.459 31.8234 33.4981 31.8408 32.54 31.8379C32.0947 31.8379 32.0772 31.8147 32.165 31.379C32.7305 28.5789 33.2988 25.7817 33.8643 22.9816C34.1778 21.4335 34.4971 19.8882 34.7989 18.34C34.8487 18.0844 34.9571 17.9915 35.2178 17.9944C37.4913 18.0031 39.7618 17.9769 42.0353 18.0147C43.1105 18.0321 44.1124 18.3458 44.9269 19.101C45.7062 19.8243 45.9435 20.7625 45.9289 21.7617C45.9025 23.4464 45.299 24.922 44.089 26.1129C42.9845 27.1992 41.6163 27.7598 40.0811 27.9399C39.4864 28.0096 38.8887 27.9922 38.2911 27.9951H38.2882ZM38.7833 24.7825C39.088 24.7825 39.3927 24.7883 39.6974 24.7825C40.9396 24.7593 41.6573 24.1871 41.9415 22.9904C42.2023 21.8982 41.6778 21.204 40.5499 21.1779C39.8233 21.1604 39.0968 21.1779 38.3731 21.1691C38.1475 21.1662 38.0362 21.2359 37.9923 21.4654C37.793 22.4791 37.585 23.49 37.3682 24.5008C37.3243 24.7099 37.3946 24.7825 37.5909 24.7825C37.9893 24.7825 38.3878 24.7825 38.7862 24.7825H38.7833Z"
fill="white"></path>
<path
d="M69.259 17.9973C70.7707 17.9973 72.2825 17.9973 73.7913 17.9973C74.2395 17.9973 74.2483 18.0147 74.1546 18.4562C73.9905 19.2288 73.8206 20.0015 73.677 20.777C73.6213 21.0733 73.4866 21.1779 73.1819 21.175C71.4006 21.1633 69.6193 21.1779 67.841 21.1633C67.507 21.1604 67.3547 21.265 67.299 21.5903C67.1994 22.1625 67.0734 22.729 66.9387 23.2954C66.8713 23.58 66.9562 23.6555 67.2463 23.6526C68.8869 23.641 70.5276 23.6468 72.1653 23.6468C72.637 23.6468 72.6545 23.6701 72.5666 24.1174C72.4172 24.8581 72.2532 25.5958 72.1213 26.3365C72.0569 26.6909 71.9192 26.839 71.5237 26.8332C69.9065 26.81 68.2893 26.8332 66.675 26.8187C66.3498 26.8158 66.2267 26.9291 66.1681 27.2341C65.9015 28.6254 65.6056 30.0109 65.342 31.4023C65.2804 31.7218 65.1632 31.8525 64.8175 31.8467C63.8566 31.8263 62.8956 31.8321 61.9347 31.8409C61.6212 31.8438 61.5275 31.7566 61.5948 31.4313C62.3449 27.7569 63.0802 24.0796 63.8214 20.4023C63.9591 19.7197 64.1056 19.0371 64.2316 18.3516C64.2785 18.096 64.3693 17.9827 64.6623 17.9857C66.1974 18.0031 67.7326 17.9944 69.2648 17.9944L69.259 17.9973Z"
fill="white"></path>
<path
d="M80.8548 17.9943C82.3783 17.9943 83.9017 18.0001 85.4252 17.9885C85.7181 17.9885 85.7972 18.067 85.7357 18.3516C85.5541 19.1562 85.3812 19.9637 85.2318 20.7741C85.1761 21.0762 85.0472 21.1778 84.7425 21.1749C82.9613 21.1633 81.18 21.1807 79.3987 21.1633C79.0442 21.1604 78.9007 21.2708 78.8479 21.6164C78.763 22.177 78.6458 22.7376 78.5081 23.2895C78.4319 23.5916 78.5345 23.6497 78.8128 23.6497C80.4534 23.641 82.0941 23.6468 83.7347 23.6497C84.2064 23.6497 84.2122 23.6642 84.1156 24.1261C83.9574 24.8871 83.7933 25.6481 83.6556 26.4149C83.5999 26.7199 83.4769 26.839 83.1488 26.8361C81.5198 26.8216 79.8909 26.8361 78.262 26.8245C77.9339 26.8245 77.7874 26.9058 77.7229 27.2457C77.4622 28.6254 77.1575 29.9993 76.8938 31.379C76.8264 31.7333 76.677 31.8583 76.3137 31.8495C75.3645 31.8263 74.4153 31.835 73.466 31.8437C73.1731 31.8437 73.0735 31.7711 73.1379 31.4545C73.9524 27.4722 74.7522 23.487 75.5579 19.5019C75.634 19.1271 75.7366 18.7554 75.7835 18.3748C75.8245 18.0495 75.9944 17.9943 76.2815 17.9972C77.805 18.006 79.3284 18.003 80.8519 18.003V17.9972L80.8548 17.9943Z"
fill="white"></path>
<path
d="M69.751 31.7769C70.4014 31.8728 70.999 31.9744 71.5967 32.0412C75.7891 32.5176 79.8409 31.9889 83.7287 30.3391C84.8713 29.854 85.9611 29.2644 87.0158 28.6108C87.2824 28.4453 87.3996 28.2797 87.3088 27.9602C87.2209 27.6494 87.1828 27.3241 87.1242 27.0046C87.1037 26.8826 87.01 26.7286 87.1242 26.6444C87.2385 26.5601 87.3644 26.6879 87.4699 26.7548C88.4397 27.3444 89.4065 27.9311 90.3703 28.5295C91.1643 29.0233 91.1614 29.0262 90.5989 29.7843C89.9045 30.7196 89.216 31.6607 88.5217 32.5931C88.4572 32.6802 88.4162 32.8371 88.2756 32.7993C88.1555 32.7674 88.1936 32.6222 88.1701 32.5263C88.0969 32.1865 88.0266 31.8437 87.965 31.501C87.9211 31.2541 87.8127 31.2076 87.5783 31.3034C85.4953 32.1458 83.3332 32.6919 81.1066 32.991C77.3595 33.4994 73.6797 33.2496 70.0938 31.9977C69.9883 31.9599 69.8652 31.9483 69.751 31.7798V31.7769Z"
fill="white"></path>
<path
d="M65.8896 15.0316C66.2324 15.0083 66.54 15.1274 66.8535 15.171C72.5343 15.9756 77.8634 15.081 82.7443 11.973C83.0432 11.7813 83.1252 11.5925 83.0314 11.2642C82.9435 10.9534 82.8996 10.6281 82.8439 10.3086C82.8293 10.2244 82.7648 10.114 82.8644 10.053C82.9582 9.99781 83.0432 10.085 83.1193 10.1314C84.1096 10.7327 85.094 11.3369 86.0813 11.9381C86.2893 12.0659 86.4973 12.1995 86.7082 12.3244C86.8811 12.4261 86.8899 12.5423 86.7698 12.6933C85.9026 13.8058 85.0412 14.9212 84.174 16.0337C84.1272 16.0947 84.0861 16.1905 83.9865 16.1586C83.8898 16.1295 83.9016 16.0279 83.8869 15.9524C83.8107 15.5893 83.7346 15.2262 83.6672 14.8602C83.6262 14.6365 83.5676 14.5378 83.301 14.6453C81.3029 15.444 79.2316 15.9698 77.0988 16.2544C75.1065 16.5188 73.1114 16.5449 71.1104 16.3271C69.4375 16.1441 67.8057 15.8013 66.2207 15.2407C66.1064 15.2 65.9629 15.203 65.8896 15.0345V15.0316Z"
fill="white"></path>
<path
d="M67.8024 37.6762C68.1276 37.1302 68.4997 36.6073 68.7663 36.0351C69.0592 35.4048 69.4577 35.0766 70.1725 35.2218C70.2165 35.2305 70.2663 35.2218 70.3132 35.2218C70.7175 35.2276 70.7468 35.2567 70.6764 35.643C70.4743 36.7264 70.2663 37.8098 70.0612 38.8933C70.0143 39.1315 69.9674 39.3726 69.9294 39.6136C69.8942 39.8315 69.7829 39.9215 69.5514 39.9302C68.7047 39.9593 68.7047 39.9651 68.8659 39.1344C68.986 38.5099 69.1061 37.8854 69.1559 37.2289C68.9567 37.5717 68.7604 37.9173 68.5612 38.2601C68.3122 38.6929 68.0573 39.1257 67.817 39.5643C67.7057 39.7647 67.5768 39.8954 67.3219 39.8634C67.0612 39.8286 67.067 39.6224 67.0319 39.4481C66.8766 38.6987 66.7242 37.9464 66.5133 37.1883C66.3961 37.8128 66.2789 38.4373 66.1617 39.0647C66.15 39.1228 66.1442 39.1808 66.1354 39.236C66.0035 39.9361 66.0035 39.9215 65.2682 39.9273C64.9371 39.9302 64.8668 39.8199 64.9283 39.5149C65.1568 38.3879 65.3678 37.258 65.5875 36.1281C65.6139 35.9915 65.6402 35.855 65.6695 35.7185C65.7379 35.3835 65.9381 35.216 66.2701 35.216C66.9303 35.216 67.32 35.5336 67.4391 36.1687C67.5329 36.6596 67.6325 37.1476 67.7291 37.6356C67.7555 37.6472 67.7819 37.6559 67.8082 37.6675L67.8024 37.6762Z"
fill="white"></path>
<path
d="M58.6563 37.9842C58.6681 36.3082 59.8868 35.1115 61.548 35.1521C62.5499 35.1754 63.2999 35.7941 63.4406 36.7787C63.6691 38.3763 62.4562 40.1656 60.423 39.9884C59.3126 39.8925 58.6475 39.1199 58.6563 37.9871V37.9842ZM59.8165 37.8099C59.8048 38.2543 59.8985 38.6551 60.3556 38.8498C60.8155 39.0444 61.2609 38.9747 61.6388 38.658C62.1368 38.2398 62.3478 37.685 62.2628 37.0431C62.1749 36.3605 61.6505 36.0264 60.9737 36.2007C60.297 36.375 59.8282 37.0256 59.8136 37.8099H59.8165Z"
fill="white"></path>
<path
d="M34.8758 39.9274C34.4305 39.9274 33.9852 39.9245 33.5399 39.9274C33.3143 39.9303 33.2176 39.8606 33.2645 39.6166C33.5311 38.2369 33.7889 36.8572 34.0438 35.4775C34.0789 35.2945 34.1727 35.219 34.3543 35.2219C35.2684 35.2219 36.1825 35.2219 37.0936 35.2219C37.3133 35.2219 37.3924 35.3119 37.3397 35.524C37.3221 35.5908 37.3192 35.6605 37.3075 35.7302C37.245 36.0633 37.0428 36.2298 36.701 36.2298C36.2674 36.2298 35.8338 36.2269 35.4002 36.2298C35.1043 36.2298 34.8143 36.6684 34.9198 36.9443C34.9666 37.0634 35.0721 37.0315 35.16 37.0315C35.6522 37.0344 36.1444 37.0489 36.6366 37.0315C36.9559 37.0199 37.0292 37.1477 36.9559 37.4265C36.9296 37.5282 36.9061 37.6298 36.8944 37.7344C36.871 37.9639 36.745 38.051 36.5165 38.0452C36.036 38.0365 35.5555 38.0394 35.075 38.0452C34.7528 38.0452 34.4334 38.5506 34.5682 38.8382C34.6209 38.9515 34.7264 38.9166 34.8143 38.9195C35.3416 38.9224 35.869 38.9311 36.3963 38.9195C36.6483 38.9137 36.745 39.0037 36.6835 39.2477C36.6747 39.2826 36.6747 39.3174 36.6688 39.3523C36.6024 39.7415 36.3661 39.9361 35.9598 39.9361C35.5965 39.9361 35.2332 39.9361 34.87 39.9361L34.8758 39.9274Z"
fill="white"></path>
<path
d="M78.8237 38.0422C77.1361 38.0422 75.4516 38.0422 73.764 38.0422C73.2806 38.0422 73.2689 38.0277 73.3539 37.5804C73.4281 37.1776 73.6732 36.9762 74.0892 36.9762C77.4145 36.9762 80.7397 36.9762 84.0649 36.9762C84.5776 36.9762 84.5835 36.9849 84.4809 37.4874C84.4067 37.8553 84.1831 38.0393 83.81 38.0393C82.146 38.0393 80.4848 38.0393 78.8207 38.0393L78.8237 38.0422Z"
fill="white"></path>
<path
d="M29.0368 36.9792C29.4616 36.5377 29.904 36.1078 30.3083 35.6489C30.5954 35.3236 30.9147 35.158 31.3512 35.2248C31.5739 35.2597 31.9167 35.1115 31.9928 35.3061C32.0661 35.4891 31.735 35.6489 31.5768 35.8086C31.1374 36.2589 30.695 36.7062 30.2321 37.1332C30.0299 37.3191 30.0182 37.473 30.1501 37.7025C30.5075 38.3299 30.8356 38.9689 31.1872 39.5992C31.3219 39.8403 31.2721 39.9332 30.9909 39.9245C29.8161 39.8984 30.1266 40.1017 29.6051 39.0967C29.4997 38.8905 29.3854 38.6842 29.3004 38.4693C29.1774 38.1643 29.0485 38.2224 28.8522 38.4112C28.6178 38.6378 28.6178 38.9369 28.5621 39.2129C28.4039 39.9942 28.6002 39.9216 27.6129 39.9245C27.358 39.9245 27.2906 39.8229 27.3405 39.5789C27.5543 38.4867 27.7565 37.3917 27.9616 36.2966C27.985 36.1717 28.0055 36.0439 28.0289 35.919C28.1637 35.2016 28.3248 35.0999 29.069 35.2219C29.3092 35.2626 29.2623 35.4136 29.2389 35.5588C29.1569 36.0207 29.069 36.4825 28.9811 36.9444C29.0016 36.956 29.0192 36.9647 29.0397 36.9763L29.0368 36.9792Z"
fill="white"></path>
<path
d="M45.7943 39.9971C45.267 39.9738 44.7133 39.8664 44.2445 39.4859C44.0424 39.3203 43.9955 39.1605 44.1918 38.9659C44.2093 38.9485 44.2211 38.9311 44.2386 38.9136C44.3881 38.751 44.5082 38.5157 44.6928 38.4431C44.9008 38.3589 45.0092 38.6609 45.1937 38.7539C45.5951 38.9543 46.0023 39.0618 46.4447 38.9107C46.6234 38.8497 46.7582 38.7365 46.767 38.5418C46.7758 38.3443 46.6264 38.2543 46.4652 38.2049C46.143 38.1032 45.809 38.0306 45.4896 37.9202C44.6049 37.6124 44.3383 36.8571 44.8129 36.0526C45.2025 35.3961 46.0609 35.0446 46.9604 35.1753C47.3588 35.2334 47.7309 35.3612 48.0619 35.5965C48.2377 35.7214 48.3051 35.8434 48.1322 36.0177C48.0824 36.0671 48.0443 36.1281 48.0004 36.1804C47.7719 36.4515 47.5024 36.5125 47.1918 36.3634C46.89 36.2181 46.5766 36.1339 46.2396 36.1775C46.017 36.2065 45.8119 36.3024 45.7826 36.5405C45.7504 36.7845 45.9818 36.8281 46.1547 36.8833C46.4096 36.9675 46.6762 37.0227 46.9311 37.1069C47.4115 37.2667 47.8715 37.47 47.9389 38.0481C48.0151 38.7219 47.7924 39.2883 47.1977 39.6659C46.7904 39.9245 46.3305 40 45.7973 40.0029L45.7943 39.9971Z"
fill="white"></path>
<path
d="M5.07682 38.0422C3.51821 38.0422 1.96253 38.0422 0.403916 38.0422C-0.0384717 38.0422 -0.0443311 38.0335 0.0435605 37.6094C0.131452 37.1873 0.398057 36.9762 0.843374 36.9762C3.84341 36.9762 6.84051 36.9762 9.84054 36.9762C10.2175 36.9762 10.3708 37.1553 10.3005 37.5136C10.2302 37.8718 10.0124 38.047 9.64718 38.0393C8.12373 38.0393 6.60027 38.0393 5.07975 38.0393L5.07682 38.0422Z"
fill="white"></path>
<path
d="M52.6826 37.9812C52.6914 36.0613 54.5401 34.6757 56.2422 35.2712C56.6524 35.4135 56.9307 35.6953 57.1387 36.0613C57.25 36.2559 57.209 36.3895 56.9922 36.4679C56.9043 36.4999 56.8135 36.5318 56.7373 36.5812C56.4385 36.7729 56.2159 36.7584 55.9815 36.4447C55.7412 36.1194 55.3574 36.1048 54.9883 36.2152C54.1797 36.4505 53.6436 37.4526 53.8867 38.2543C54.1182 39.0182 55.0821 39.2041 55.7149 38.6145C55.8174 38.5186 55.8789 38.292 56.0518 38.3618C56.3067 38.4663 56.5381 38.6348 56.7696 38.7887C56.837 38.8352 56.7842 38.9165 56.7432 38.9746C56.2627 39.6253 55.6153 39.9767 54.8008 39.9942C54.0274 40.0116 53.374 39.7734 52.9551 39.0763C52.7412 38.7248 52.668 38.3443 52.6855 37.9812H52.6826Z"
fill="white"></path>
<path
d="M21.4606 37.8941C21.4635 36.2966 22.7731 35.0563 24.4636 35.1579C25.1052 35.1957 25.5945 35.4978 25.9197 36.0555C26.0368 36.2559 26.0427 36.4011 25.782 36.4737C25.6823 36.5028 25.5798 36.5435 25.489 36.5928C25.2165 36.7497 25.0232 36.7729 24.7976 36.4592C24.5632 36.131 24.156 36.1019 23.7692 36.2094C22.902 36.4476 22.363 37.5368 22.697 38.3705C22.9665 39.0473 23.9245 39.1751 24.4958 38.6116C24.5954 38.5128 24.6511 38.2979 24.8415 38.3734C25.0993 38.478 25.3513 38.6145 25.5534 38.8091C25.6238 38.8788 25.5359 38.9572 25.4919 39.024C24.8298 40 23.2331 40.3108 22.2546 39.6427C21.6745 39.2477 21.446 38.6726 21.4606 37.8912V37.8941Z"
fill="white"></path>
<path
d="M14.983 35.2219C15.4986 35.2219 16.0113 35.2277 16.527 35.2219C16.776 35.219 16.8756 35.3119 16.8053 35.5588C16.7907 35.614 16.7877 35.6721 16.776 35.7302C16.7115 36.0632 16.5114 36.2298 16.1754 36.2298C15.4137 36.2298 15.4108 36.2298 15.2672 36.9763C15.1119 37.7954 14.9596 38.6174 14.8102 39.4394C14.7223 39.9216 14.7193 39.9245 14.2301 39.9274C13.7887 39.9274 13.61 39.7086 13.6939 39.271C13.8639 38.3821 14.025 37.4933 14.2066 36.6074C14.2652 36.3198 14.2066 36.1949 13.8873 36.2269C13.6676 36.2472 13.442 36.2298 13.2223 36.2269C13.0435 36.2269 12.9644 36.1397 13.0025 35.9597C13.0084 35.9364 13.0113 35.9132 13.0142 35.8899C13.0728 35.4426 13.3297 35.2199 13.7848 35.2219C13.9605 35.2219 14.1363 35.2219 14.3121 35.2219C14.5348 35.2219 14.7574 35.2219 14.9801 35.2219H14.983Z"
fill="white"></path>
<path
d="M41.2414 35.2219C41.7219 35.2219 42.2024 35.2393 42.6799 35.2161C43.0198 35.1987 43.0959 35.3352 43.011 35.6256C43.0051 35.6489 43.0022 35.6721 42.9993 35.6953C42.9309 36.0517 42.7151 36.2298 42.3518 36.2298C41.4524 36.2298 41.6457 36.1659 41.4875 36.9502C41.3117 37.8245 41.1447 38.7017 40.9953 39.5818C40.9514 39.8403 40.8488 39.9361 40.5852 39.9332C39.633 39.9158 39.759 40.0204 39.9201 39.1432C40.0783 38.2892 40.2424 37.4352 40.4211 36.5813C40.4768 36.3082 40.383 36.2124 40.1193 36.2327C40.049 36.2385 39.9787 36.2327 39.9084 36.2327C39.1203 36.2327 39.1994 36.3169 39.3313 35.5065C39.3664 35.2916 39.4895 35.2219 39.6975 35.2248C40.2131 35.2306 40.7258 35.2248 41.2414 35.2248V35.2219Z"
fill="white"></path>
<path
d="M18.5449 39.9216C18.4511 39.9216 18.3574 39.9216 18.2636 39.9216C18.0644 39.9216 17.9911 39.8374 18.0292 39.637C18.29 38.2689 18.5507 36.9008 18.8027 35.5327C18.8466 35.2887 18.9814 35.219 19.2158 35.2161C20.0214 35.2016 20.0097 35.1928 19.8574 35.9626C19.6347 37.1012 19.4296 38.2427 19.2128 39.3814C19.1103 39.9245 19.1074 39.9216 18.5419 39.9187L18.5449 39.9216Z"
fill="white"></path>
<path
d="M50.9005 39.2506C50.9005 39.6514 50.59 39.9797 50.212 39.9826C49.8839 39.9855 49.629 39.7357 49.6349 39.4133C49.6437 39.0095 49.9864 38.6493 50.3526 38.6522C50.6661 38.6522 50.9005 38.9108 50.9005 39.2506Z"
fill="white"></path>
</g>
<defs>
<clipPath id="clip0_117_3713">
<rect width="91" height="40" fill="white"></rect>
</clipPath>
</defs>
</svg>
</a>
<nav class="nav" id="primaryNav" aria-label="Primary">
<ul class="nav__list">
<li><a class="nav__link" href="index.html">Home</a></li>
<li class="nav__item--has-menu">
<button class="nav__link nav__toggle" type="button" aria-expanded="false" aria-controls="toursMenu">
<span>Tours</span>
<svg class="icon icon--chevron" aria-hidden="true">
<use href="#i-chevron" />
</svg>
</button>
<ul class="nav__submenu" id="toursMenu">
<li><a href="tours.html">All tours</a></li>
<li><a href="tours.html">London</a></li>
<li><a href="tours.html">Nashville</a></li>
<li><a href="tours.html">Sydney</a></li>
<li><a href="tours.html">San Diego</a></li>
<li><a href="tours.html">Paris</a></li>
</ul>
</li>
<li><a class="nav__link" href="blog.html">Weblog</a></li>
<li><a class="nav__link" href="faq.html">FAQ&rsquo;s</a></li>
<li><a class="nav__link" href="contact.html">Contact us</a></li>
<li><a class="nav__link" href="about.html">About us</a></li>
</ul>
</nav>
</div>
<div class="header__actions">
<button class="icon-btn" type="button" aria-label="Search">
<svg class="icon icon--24" aria-hidden="true">
<use href="#i-search" />
</svg>
</button>
<button class="icon-btn" type="button" aria-label="Account">
<svg class="icon icon--24" aria-hidden="true">
<use href="#i-user" />
</svg>
</button>
<a class="btn btn--accent header__cta" href="#availability">
<span>Book now</span>
<svg class="icon" aria-hidden="true">
<use href="#i-arrow-right" />
</svg>
</a>
<button class="burger" id="burger" type="button" aria-label="Open menu" aria-expanded="false"
aria-controls="primaryNav">
<span></span><span></span><span></span>
</button>
</div>
</div>
</header>
<main id="main">
<!-- ============ hero ============ -->
<section class="hero-tour">
<img class="hero-tour__photo" src="assets/hero3.jpg" alt="" fetchpriority="high" />
<div class="hero-tour__sky" aria-hidden="true"></div>
<div class="container hero-tour__inner">
<div class="hero-tour__block">
<nav class="crumbs" aria-label="Breadcrumb">
<ol class="crumbs__list">
<li><a href="index.html">Home</a></li>
<li><a href="tours.html">Tours</a></li>
<li aria-current="page">Paris Tour</li>
</ol>
</nav>
<p class="hero-tour__kicker">Welcome to</p>
<div class="hero-tour__stage">
<h1 class="hero-tour__word">Paris</h1>
<img class="hero-tour__figure hero-tour__figure--paris" src="assets/paris.png" alt="" loading="eager" />
</div>
</div>
</div>
</section>
<!-- ============ tour ============ -->
<section class="section tour">
<div class="container tour__layout">
<div class="tour__main">
<header class="tour-head">
<h2 class="tour-head__title">Paris Tour</h2>
<div class="tmeta">
<span class="tmeta__item">
<svg class="icon icon--12 tmeta__star" aria-hidden="true">
<use href="#i-star" />
</svg>
<b>4.8</b><i>/5</i>
</span>
<span class="tmeta__rule" aria-hidden="true"></span>
<span class="tmeta__item">
<svg class="icon tmeta__icon" aria-hidden="true">
<use href="#i-location" />
</svg>
Paris
</span>
<span class="tmeta__rule" aria-hidden="true"></span>
<span class="tmeta__item">
<svg class="icon tmeta__icon" aria-hidden="true">
<use href="#i-person" />
</svg>
from Mr. Bill
</span>
</div>
</header>
<ul class="facts">
<li class="fact">
<svg class="icon fact__icon" aria-hidden="true">
<use href="#i-duration" />
</svg>
<div class="fact__text">
<span class="fact__k">Duration</span>
<span class="fact__v">1h 30m</span>
</div>
</li>
<li class="fact">
<svg class="icon fact__icon" aria-hidden="true">
<use href="#i-person" />
</svg>
<div class="fact__text">
<span class="fact__k">Max Travelers</span>
<span class="fact__v">15 people</span>
</div>
</li>
<li class="fact">
<svg class="icon fact__icon" aria-hidden="true">
<use href="#i-shield-check" />
</svg>
<div class="fact__text">
<span class="fact__k">Free Cancellation</span>
<span class="fact__v">Up to 24 hrs</span>
</div>
</li>
<li class="fact">
<svg class="icon fact__icon" aria-hidden="true">
<use href="#i-grid" />
</svg>
<div class="fact__text">
<span class="fact__k">Category</span>
<span class="fact__v">Best Conversion</span>
</div>
</li>
</ul>
<section class="tour__block">
<h3 class="tour__ct">Overview</h3>
<p class="tour__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed
do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit
amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem
ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua</p>
<p class="tour__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed
do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
</section>
<section class="tour__block">
<h3 class="tour__ct">Gallery</h3>
<div class="gallery">
<img class="gallery__hero" src="assets/tour-paris.png" alt="A Paris street" loading="lazy" />
<img src="assets/liked-paris.png" alt="Paris landmark" loading="lazy" />
<img src="assets/city-paris.png" alt="Paris skyline" loading="lazy" />
<img src="assets/city-london.png" alt="Big Ben behind a red double-decker bus" loading="lazy" />
<img src="assets/liked-london.png" alt="A red telephone box on a London street" loading="lazy" />
</div>
</section>
<div class="lists">
<section class="ilist">
<h3 class="tour__ct">Whats included</h3>
<ul class="ilist__items">
<li>
<span class="tick tick--yes" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-check" />
</svg>
</span>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.</p>
</li>
<li>
<span class="tick tick--yes" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-check" />
</svg>
</span>
<p>ed do eiusmod tempor incididunt ut labore et dolo</p>
</li>
<li>
<span class="tick tick--yes" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-check" />
</svg>
</span>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.</p>
</li>
<li>
<span class="tick tick--yes" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-check" />
</svg>
</span>
<p>ed do eiusmod tempor incididunt ut labore et dolo</p>
</li>
</ul>
</section>
<section class="ilist">
<h3 class="tour__ct">Whats Not included</h3>
<ul class="ilist__items">
<li>
<span class="tick tick--no" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-x" />
</svg>
</span>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.</p>
</li>
<li>
<span class="tick tick--no" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-x" />
</svg>
</span>
<p>ed do eiusmod tempor incididunt ut labore et dolo</p>
</li>
<li>
<span class="tick tick--no" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-x" />
</svg>
</span>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.</p>
</li>
</ul>
</section>
</div>
<section class="tour__block">
<h3 class="tour__ct">Good to know</h3>
<ul class="notes">
<li class="note">
<svg class="icon note__icon" aria-hidden="true">
<use href="#i-info" />
</svg>
<p>Public transportation options are available nearby</p>
</li>
<li class="note">
<svg class="icon note__icon" aria-hidden="true">
<use href="#i-info" />
</svg>
<p>Infants are required to sit on an adult&rsquo;s lap</p>
</li>
<li class="note">
<svg class="icon note__icon" aria-hidden="true">
<use href="#i-info" />
</svg>
<p>Not recommended for travelers with spinal injuries</p>
</li>
<li class="note">
<svg class="icon note__icon" aria-hidden="true">
<use href="#i-info" />
</svg>
<p>Not recommended for travelers with spinal injuries</p>
</li>
<li class="note">
<svg class="icon note__icon" aria-hidden="true">
<use href="#i-info" />
</svg>
<p>Public transportation options are available nearby</p>
</li>
<li class="note">
<svg class="icon note__icon" aria-hidden="true">
<use href="#i-info" />
</svg>
<p>Infants are required to sit on an adult&rsquo;s lap</p>
</li>
</ul>
</section>
<section class="tour__block">
<h3 class="tour__ct">Cancellation Policy</h3>
<p class="tour__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.</p>
<div class="policy">
<div class="statcard statcard--yes">
<svg class="icon icon--12 statcard__icon" aria-hidden="true">
<use href="#i-check" />
</svg>
<div class="statcard__text">
<span class="statcard__k">100% Refund</span>
<span class="statcard__v">24 hours or more before the start time</span>
</div>
</div>
<div class="statcard statcard--no">
<svg class="icon icon--12 statcard__icon" aria-hidden="true">
<use href="#i-x" />
</svg>
<div class="statcard__text">
<span class="statcard__k">0% Refund</span>
<span class="statcard__v">Less than 24 hours before the start time</span>
</div>
</div>
</div>
</section>
</div>
<aside class="tour__aside">
<div class="bookcard">
<h2 class="bookcard__title">
<svg class="icon" aria-hidden="true">
<use href="#i-info" />
</svg>
Tour Details
</h2>
<form class="bookcard__price" id="availability" novalidate>
<p class="price">
<span class="price__k">From</span>
<span class="price__v">$30</span>
<span class="price__unit">USD / Per person</span>
</p>
<button class="btn btn--dark bookcard__cta" type="submit">Check Availability</button>
</form>
<div class="statcard statcard--teal">
<svg class="icon statcard__icon" aria-hidden="true">
<use href="#i-shield-check" />
</svg>
<div class="statcard__text">
<span class="statcard__k">Free Cancellation</span>
<span class="statcard__v">Up to 24 hrs</span>
</div>
</div>
<div class="statcard statcard--yes">
<svg class="icon statcard__icon" aria-hidden="true">
<use href="#i-shield-check" />
</svg>
<div class="statcard__text">
<span class="statcard__k">Reserve now, pay later!</span>
<span class="statcard__v">Secure your spot today</span>
</div>
</div>
</div>
</aside>
</div>
</section>
</main>
<!-- ============ footer ============ -->
<footer class="footer" id="footer">
<a class="ring-badge ring-badge--top" href="#main" aria-label="Back to top">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">BACK TO TOP &#183; </textPath>
</text>
</svg>
<span class="ring-badge__dot">
<svg class="icon" aria-hidden="true">
<use href="#i-arrow-up" />
</svg>
</span>
</a>
<div class="container footer__inner">
<div class="footer__brand">
<span class="footer__logo">
<svg class="logo" viewBox="0 0 91 40" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Logo">
<g clip-path="url(#clip0_117_3713)">
<path
d="M70.0559 6.63419C69.9035 7.36616 69.76 8.05456 69.6194 8.74587C69.2766 10.4306 68.9338 12.1153 68.6027 13.8C68.5471 14.0759 68.424 14.195 68.1311 14.1892C67.217 14.1776 66.3029 14.1863 65.3888 14.1863C65.0216 14.1863 64.8752 14.0023 64.9494 13.6344C65.2892 11.9381 65.632 10.2418 65.9719 8.54545C66.5021 5.90221 67.0324 3.26188 67.551 0.618649C67.6037 0.348516 67.7209 0.229425 67.9934 0.252662C68.8371 0.316565 69.678 0.235234 70.5217 0.243948C70.9289 0.249757 71.175 0.365944 71.3625 0.758072C72.4407 3.01499 73.551 5.25738 74.6526 7.50268C74.7053 7.61306 74.7288 7.74667 74.8929 7.83671C74.9749 7.44749 75.0569 7.0786 75.1302 6.70971C75.5286 4.72873 75.9212 2.74776 76.3196 0.763881C76.4192 0.272995 76.4397 0.243948 76.9349 0.255567C77.8343 0.272995 78.7366 0.272995 79.6361 0.264281C80.1195 0.258471 80.1458 0.316565 80.0521 0.769691C79.1527 5.11505 78.2474 9.45751 77.3567 13.8058C77.2923 14.1166 77.1575 14.2037 76.8645 14.2008C75.9856 14.1892 75.1067 14.1863 74.2278 14.2008C73.926 14.2066 73.759 14.0904 73.6331 13.8261C72.5374 11.5663 71.4299 9.30937 70.3254 7.05246C70.261 6.92465 70.2229 6.77361 70.0559 6.6429V6.63419Z"
fill="white"></path>
<path
d="M25.5852 14.4942C24.0706 14.5029 22.6584 14.1834 21.4426 13.2249C20.218 12.2605 19.5764 10.9825 19.4299 9.45462C19.0314 5.2661 22.1252 0.682561 27.2552 0.0783925C28.6204 -0.0842682 29.9739 -0.0232704 31.2659 0.502472C33.2464 1.30706 34.3363 2.79715 34.5853 4.8885C35.0658 8.90564 31.887 13.8435 26.7776 14.4303C26.3792 14.4768 25.9837 14.4855 25.5852 14.4942ZM30.6068 6.2014C30.6068 6.05036 30.6155 5.89932 30.6068 5.74828C30.5247 4.54866 29.7015 3.59012 28.5589 3.35484C27.5452 3.14571 26.5843 3.3258 25.7317 3.87478C23.9358 5.03664 23.2473 6.75619 23.4289 8.81559C23.5461 10.1575 24.425 11.0202 25.7288 11.2148C26.5901 11.3426 27.4192 11.1771 28.1546 10.7152C29.8157 9.66956 30.5247 8.09814 30.6068 6.20431V6.2014Z"
fill="white"></path>
<path
d="M31.9078 23.3679C31.8873 27.3705 29.107 30.9636 25.3159 31.8698C23.4995 32.3055 21.6889 32.3346 19.9428 31.5706C18.1176 30.7719 17.0717 29.3544 16.8314 27.4083C16.348 23.455 18.7855 19.6035 22.5766 18.2383C24.188 17.6573 25.8374 17.4831 27.5161 17.8607C30.3316 18.4939 31.9224 20.5039 31.9078 23.3679ZM27.9321 23.9343C27.9321 23.7716 27.9439 23.609 27.9321 23.4463C27.8208 22.0695 26.9184 21.111 25.6001 20.9745C24.8383 20.896 24.1118 21.0296 23.4145 21.3521C21.3139 22.328 20.3412 25.2675 20.9008 27.0858C21.1908 28.0299 21.8266 28.6398 22.8051 28.8461C23.7895 29.0523 24.7329 28.8838 25.5708 28.3552C27.1909 27.3327 27.8384 25.7671 27.9321 23.9314V23.9343Z"
fill="white"></path>
<path
d="M58.5507 0.0115716C60.0009 -0.00876093 61.2607 0.243944 62.3915 0.964298C63.83 1.88217 64.5859 3.21541 64.75 4.88558C65.122 8.63549 62.7783 12.7049 58.7792 14.0411C56.9569 14.651 55.1024 14.7324 53.2713 14.0556C51.1766 13.28 49.7937 11.3862 49.7557 9.16704C49.6912 5.3358 51.4051 2.53572 54.8592 0.807447C55.9549 0.261372 57.2733 0.00866699 58.5536 0.00866699L58.5507 0.0115716ZM60.8417 6.23044C60.8417 6.09101 60.8505 5.95159 60.8417 5.81217C60.7685 4.66773 60.08 3.72082 59.0985 3.42454C58.2079 3.15441 57.3378 3.22993 56.494 3.60172C54.5282 4.46731 53.4178 6.79103 53.7371 8.93177C53.9305 10.2243 54.7508 11.0144 56.0048 11.2119C56.6903 11.3194 57.37 11.2293 57.9911 10.9244C59.9482 9.96582 60.6952 8.27241 60.8388 6.22753L60.8417 6.23044Z"
fill="white"></path>
<path
d="M52.5947 32.1313C51.2353 32.1488 50.0048 31.9077 48.8915 31.2367C47.4149 30.3479 46.6444 28.9943 46.4364 27.3299C45.9969 23.8647 48.1122 20.0044 51.5898 18.4795C53.8046 17.5093 56.0869 17.2973 58.3721 18.2819C60.1328 19.043 61.1231 20.4285 61.3604 22.2904C61.6885 24.8552 60.9238 27.1266 59.2861 29.125C57.7012 31.0595 55.0293 32.201 52.5976 32.1313H52.5947ZM53.1718 28.9043C54.0126 28.9362 54.8095 28.669 55.4804 28.1229C57.0683 26.8332 57.707 25.1456 57.4463 23.1414C57.2969 21.9883 56.4414 21.1488 55.3076 20.9891C54.3378 20.8526 53.4003 21.0094 52.5859 21.5729C50.9716 22.6912 50.3036 24.2888 50.33 26.1971C50.3534 27.8383 51.4726 28.9014 53.1689 28.9014L53.1718 28.9043Z"
fill="white"></path>
<path
d="M11.6694 5.54499C12.3843 5.54499 13.0991 5.52466 13.814 5.55371C14.189 5.56823 14.3149 5.4259 14.3794 5.07444C14.6607 3.60178 14.9741 2.13783 15.2642 0.668076C15.3169 0.392134 15.4429 0.261425 15.7271 0.261425C16.7788 0.261425 17.8306 0.25852 18.8824 0.255615C19.1431 0.255615 19.2222 0.365992 19.1666 0.630316C18.4488 4.06362 17.7369 7.49692 17.0279 10.9302C16.8286 11.8859 16.6265 12.8386 16.4449 13.7971C16.3921 14.076 16.2749 14.1921 15.982 14.1892C14.9624 14.1776 13.9429 14.1892 12.9233 14.1834C12.5395 14.1834 12.5014 14.1341 12.5806 13.7448C12.8794 12.278 13.1811 10.8111 13.4829 9.34428C13.5767 8.89115 13.5767 8.88534 13.1284 8.88534C11.6518 8.88534 10.1753 8.89115 8.7016 8.87663C8.37934 8.87663 8.25629 8.98701 8.19476 9.30071C7.90472 10.8169 7.58538 12.3274 7.28362 13.8436C7.23382 14.0934 7.11956 14.1951 6.85881 14.1921C5.82755 14.1834 4.79629 14.1834 3.76503 14.1921C3.46327 14.1921 3.38416 14.0934 3.44276 13.7942C3.95546 11.2672 4.45351 8.74011 4.95742 6.21016C5.32364 4.37732 5.69571 2.54448 6.05021 0.708741C6.1088 0.403753 6.22892 0.278852 6.55412 0.284662C7.59417 0.30209 8.63422 0.29628 9.6772 0.290471C9.93209 0.290471 10.0083 0.374706 9.95552 0.624506C9.6479 2.09136 9.35493 3.55821 9.04731 5.02506C8.94184 5.53337 8.94477 5.5508 9.48384 5.55371C10.2104 5.55371 10.937 5.55371 11.6636 5.55371L11.6694 5.54499Z"
fill="white"></path>
<path
d="M8.30004 26.537C7.55003 26.537 6.80002 26.5486 6.05002 26.5311C5.76876 26.5253 5.66036 26.6328 5.60763 26.8971C5.31173 28.425 4.99825 29.9499 4.70528 31.4778C4.65254 31.7479 4.53535 31.8438 4.25996 31.8409C3.24042 31.8292 2.22087 31.8263 1.20426 31.8409C0.879063 31.8467 0.799961 31.7479 0.864414 31.4342C1.50895 28.2246 2.1447 25.012 2.78338 21.8024C3.0119 20.6521 3.24921 19.5048 3.46893 18.3516C3.51874 18.0815 3.64179 17.9856 3.91425 17.9915C4.93379 18.0031 5.95334 18.006 6.96995 17.9915C7.29515 17.9856 7.37132 18.0931 7.30687 18.4039C6.99925 19.8708 6.7092 21.3376 6.4133 22.8074C6.35666 23.0901 6.47287 23.2324 6.76194 23.2344C8.23852 23.2344 9.71509 23.2256 11.1887 23.2431C11.5315 23.246 11.6546 23.1298 11.7161 22.8074C12.0003 21.3492 12.3167 19.8969 12.6009 18.4388C12.6683 18.0989 12.8118 17.9856 13.1604 17.9944C14.1565 18.0176 15.1527 18.0118 16.1458 17.9944C16.4593 17.9886 16.5618 18.067 16.4974 18.3923C15.7152 22.1916 14.9417 25.9909 14.1653 29.7902C14.0481 30.3595 13.928 30.9259 13.8226 31.4981C13.7757 31.745 13.6614 31.8496 13.3978 31.8467C12.3665 31.835 11.3352 31.835 10.3069 31.8467C9.96998 31.8496 9.92018 31.7218 9.98463 31.4226C10.2952 29.9441 10.5852 28.4656 10.8841 26.9843C10.9719 26.5428 10.9778 26.5428 10.512 26.5428C9.77369 26.5428 9.0354 26.5428 8.29711 26.5428L8.30004 26.537Z"
fill="white"></path>
<path
d="M41.409 0.252687C42.3202 0.26721 43.536 0.223641 44.7548 0.287543C45.3817 0.319494 45.9882 0.426966 46.5683 0.659339C48.247 1.33031 48.7509 2.55608 48.7451 4.05198C48.7451 4.96404 48.5107 5.84124 48.1093 6.67197C47.1366 8.67909 45.4755 9.7451 43.3251 10.1547C42.1766 10.3754 41.0135 10.2912 39.8563 10.2854C39.4666 10.2854 39.3319 10.4045 39.2674 10.7733C39.0858 11.7784 38.8543 12.7747 38.6639 13.7768C38.6053 14.0905 38.4647 14.1979 38.1453 14.1921C37.1609 14.1776 36.1766 14.1776 35.1951 14.1921C34.8787 14.195 34.782 14.105 34.8494 13.7826C35.7342 9.4372 36.616 5.09184 37.4774 0.743574C37.5535 0.363064 37.7264 0.243973 38.0838 0.246878C39.0916 0.255592 40.0995 0.249782 41.412 0.249782L41.409 0.252687ZM42.1883 3.47395C41.8251 3.47395 41.4618 3.48557 41.1014 3.47104C40.87 3.46233 40.7674 3.54657 40.7206 3.77313C40.5213 4.78685 40.3133 5.79767 40.0995 6.80559C40.0497 7.03796 40.1082 7.128 40.3514 7.1251C41.0428 7.11639 41.7342 7.14253 42.4227 7.11639C43.7001 7.0641 44.4354 6.47446 44.6991 5.34164C44.9657 4.18849 44.4413 3.51461 43.243 3.47976C42.8915 3.46814 42.5399 3.47976 42.1913 3.47976L42.1883 3.47395Z"
fill="white"></path>
<path
d="M38.2882 27.9951C37.8546 27.9951 37.421 28.0038 36.9874 27.9922C36.7442 27.9864 36.6387 28.0793 36.5918 28.3233C36.3956 29.3486 36.1641 30.3682 35.9737 31.3964C35.9122 31.7392 35.7715 31.8554 35.42 31.8467C34.459 31.8234 33.4981 31.8408 32.54 31.8379C32.0947 31.8379 32.0772 31.8147 32.165 31.379C32.7305 28.5789 33.2988 25.7817 33.8643 22.9816C34.1778 21.4335 34.4971 19.8882 34.7989 18.34C34.8487 18.0844 34.9571 17.9915 35.2178 17.9944C37.4913 18.0031 39.7618 17.9769 42.0353 18.0147C43.1105 18.0321 44.1124 18.3458 44.9269 19.101C45.7062 19.8243 45.9435 20.7625 45.9289 21.7617C45.9025 23.4464 45.299 24.922 44.089 26.1129C42.9845 27.1992 41.6163 27.7598 40.0811 27.9399C39.4864 28.0096 38.8887 27.9922 38.2911 27.9951H38.2882ZM38.7833 24.7825C39.088 24.7825 39.3927 24.7883 39.6974 24.7825C40.9396 24.7593 41.6573 24.1871 41.9415 22.9904C42.2023 21.8982 41.6778 21.204 40.5499 21.1779C39.8233 21.1604 39.0968 21.1779 38.3731 21.1691C38.1475 21.1662 38.0362 21.2359 37.9923 21.4654C37.793 22.4791 37.585 23.49 37.3682 24.5008C37.3243 24.7099 37.3946 24.7825 37.5909 24.7825C37.9893 24.7825 38.3878 24.7825 38.7862 24.7825H38.7833Z"
fill="white"></path>
<path
d="M69.259 17.9973C70.7707 17.9973 72.2825 17.9973 73.7913 17.9973C74.2395 17.9973 74.2483 18.0147 74.1546 18.4562C73.9905 19.2288 73.8206 20.0015 73.677 20.777C73.6213 21.0733 73.4866 21.1779 73.1819 21.175C71.4006 21.1633 69.6193 21.1779 67.841 21.1633C67.507 21.1604 67.3547 21.265 67.299 21.5903C67.1994 22.1625 67.0734 22.729 66.9387 23.2954C66.8713 23.58 66.9562 23.6555 67.2463 23.6526C68.8869 23.641 70.5276 23.6468 72.1653 23.6468C72.637 23.6468 72.6545 23.6701 72.5666 24.1174C72.4172 24.8581 72.2532 25.5958 72.1213 26.3365C72.0569 26.6909 71.9192 26.839 71.5237 26.8332C69.9065 26.81 68.2893 26.8332 66.675 26.8187C66.3498 26.8158 66.2267 26.9291 66.1681 27.2341C65.9015 28.6254 65.6056 30.0109 65.342 31.4023C65.2804 31.7218 65.1632 31.8525 64.8175 31.8467C63.8566 31.8263 62.8956 31.8321 61.9347 31.8409C61.6212 31.8438 61.5275 31.7566 61.5948 31.4313C62.3449 27.7569 63.0802 24.0796 63.8214 20.4023C63.9591 19.7197 64.1056 19.0371 64.2316 18.3516C64.2785 18.096 64.3693 17.9827 64.6623 17.9857C66.1974 18.0031 67.7326 17.9944 69.2648 17.9944L69.259 17.9973Z"
fill="white"></path>
<path
d="M80.8548 17.9943C82.3783 17.9943 83.9017 18.0001 85.4252 17.9885C85.7181 17.9885 85.7972 18.067 85.7357 18.3516C85.5541 19.1562 85.3812 19.9637 85.2318 20.7741C85.1761 21.0762 85.0472 21.1778 84.7425 21.1749C82.9613 21.1633 81.18 21.1807 79.3987 21.1633C79.0442 21.1604 78.9007 21.2708 78.8479 21.6164C78.763 22.177 78.6458 22.7376 78.5081 23.2895C78.4319 23.5916 78.5345 23.6497 78.8128 23.6497C80.4534 23.641 82.0941 23.6468 83.7347 23.6497C84.2064 23.6497 84.2122 23.6642 84.1156 24.1261C83.9574 24.8871 83.7933 25.6481 83.6556 26.4149C83.5999 26.7199 83.4769 26.839 83.1488 26.8361C81.5198 26.8216 79.8909 26.8361 78.262 26.8245C77.9339 26.8245 77.7874 26.9058 77.7229 27.2457C77.4622 28.6254 77.1575 29.9993 76.8938 31.379C76.8264 31.7333 76.677 31.8583 76.3137 31.8495C75.3645 31.8263 74.4153 31.835 73.466 31.8437C73.1731 31.8437 73.0735 31.7711 73.1379 31.4545C73.9524 27.4722 74.7522 23.487 75.5579 19.5019C75.634 19.1271 75.7366 18.7554 75.7835 18.3748C75.8245 18.0495 75.9944 17.9943 76.2815 17.9972C77.805 18.006 79.3284 18.003 80.8519 18.003V17.9972L80.8548 17.9943Z"
fill="white"></path>
<path
d="M69.751 31.7769C70.4014 31.8728 70.999 31.9744 71.5967 32.0412C75.7891 32.5176 79.8409 31.9889 83.7287 30.3391C84.8713 29.854 85.9611 29.2644 87.0158 28.6108C87.2824 28.4453 87.3996 28.2797 87.3088 27.9602C87.2209 27.6494 87.1828 27.3241 87.1242 27.0046C87.1037 26.8826 87.01 26.7286 87.1242 26.6444C87.2385 26.5601 87.3644 26.6879 87.4699 26.7548C88.4397 27.3444 89.4065 27.9311 90.3703 28.5295C91.1643 29.0233 91.1614 29.0262 90.5989 29.7843C89.9045 30.7196 89.216 31.6607 88.5217 32.5931C88.4572 32.6802 88.4162 32.8371 88.2756 32.7993C88.1555 32.7674 88.1936 32.6222 88.1701 32.5263C88.0969 32.1865 88.0266 31.8437 87.965 31.501C87.9211 31.2541 87.8127 31.2076 87.5783 31.3034C85.4953 32.1458 83.3332 32.6919 81.1066 32.991C77.3595 33.4994 73.6797 33.2496 70.0938 31.9977C69.9883 31.9599 69.8652 31.9483 69.751 31.7798V31.7769Z"
fill="white"></path>
<path
d="M65.8896 15.0316C66.2324 15.0083 66.54 15.1274 66.8535 15.171C72.5343 15.9756 77.8634 15.081 82.7443 11.973C83.0432 11.7813 83.1252 11.5925 83.0314 11.2642C82.9435 10.9534 82.8996 10.6281 82.8439 10.3086C82.8293 10.2244 82.7648 10.114 82.8644 10.053C82.9582 9.99781 83.0432 10.085 83.1193 10.1314C84.1096 10.7327 85.094 11.3369 86.0813 11.9381C86.2893 12.0659 86.4973 12.1995 86.7082 12.3244C86.8811 12.4261 86.8899 12.5423 86.7698 12.6933C85.9026 13.8058 85.0412 14.9212 84.174 16.0337C84.1272 16.0947 84.0861 16.1905 83.9865 16.1586C83.8898 16.1295 83.9016 16.0279 83.8869 15.9524C83.8107 15.5893 83.7346 15.2262 83.6672 14.8602C83.6262 14.6365 83.5676 14.5378 83.301 14.6453C81.3029 15.444 79.2316 15.9698 77.0988 16.2544C75.1065 16.5188 73.1114 16.5449 71.1104 16.3271C69.4375 16.1441 67.8057 15.8013 66.2207 15.2407C66.1064 15.2 65.9629 15.203 65.8896 15.0345V15.0316Z"
fill="white"></path>
<path
d="M67.8024 37.6762C68.1276 37.1302 68.4997 36.6073 68.7663 36.0351C69.0592 35.4048 69.4577 35.0766 70.1725 35.2218C70.2165 35.2305 70.2663 35.2218 70.3132 35.2218C70.7175 35.2276 70.7468 35.2567 70.6764 35.643C70.4743 36.7264 70.2663 37.8098 70.0612 38.8933C70.0143 39.1315 69.9674 39.3726 69.9294 39.6136C69.8942 39.8315 69.7829 39.9215 69.5514 39.9302C68.7047 39.9593 68.7047 39.9651 68.8659 39.1344C68.986 38.5099 69.1061 37.8854 69.1559 37.2289C68.9567 37.5717 68.7604 37.9173 68.5612 38.2601C68.3122 38.6929 68.0573 39.1257 67.817 39.5643C67.7057 39.7647 67.5768 39.8954 67.3219 39.8634C67.0612 39.8286 67.067 39.6224 67.0319 39.4481C66.8766 38.6987 66.7242 37.9464 66.5133 37.1883C66.3961 37.8128 66.2789 38.4373 66.1617 39.0647C66.15 39.1228 66.1442 39.1808 66.1354 39.236C66.0035 39.9361 66.0035 39.9215 65.2682 39.9273C64.9371 39.9302 64.8668 39.8199 64.9283 39.5149C65.1568 38.3879 65.3678 37.258 65.5875 36.1281C65.6139 35.9915 65.6402 35.855 65.6695 35.7185C65.7379 35.3835 65.9381 35.216 66.2701 35.216C66.9303 35.216 67.32 35.5336 67.4391 36.1687C67.5329 36.6596 67.6325 37.1476 67.7291 37.6356C67.7555 37.6472 67.7819 37.6559 67.8082 37.6675L67.8024 37.6762Z"
fill="white"></path>
<path
d="M58.6563 37.9842C58.6681 36.3082 59.8868 35.1115 61.548 35.1521C62.5499 35.1754 63.2999 35.7941 63.4406 36.7787C63.6691 38.3763 62.4562 40.1656 60.423 39.9884C59.3126 39.8925 58.6475 39.1199 58.6563 37.9871V37.9842ZM59.8165 37.8099C59.8048 38.2543 59.8985 38.6551 60.3556 38.8498C60.8155 39.0444 61.2609 38.9747 61.6388 38.658C62.1368 38.2398 62.3478 37.685 62.2628 37.0431C62.1749 36.3605 61.6505 36.0264 60.9737 36.2007C60.297 36.375 59.8282 37.0256 59.8136 37.8099H59.8165Z"
fill="white"></path>
<path
d="M34.8758 39.9274C34.4305 39.9274 33.9852 39.9245 33.5399 39.9274C33.3143 39.9303 33.2176 39.8606 33.2645 39.6166C33.5311 38.2369 33.7889 36.8572 34.0438 35.4775C34.0789 35.2945 34.1727 35.219 34.3543 35.2219C35.2684 35.2219 36.1825 35.2219 37.0936 35.2219C37.3133 35.2219 37.3924 35.3119 37.3397 35.524C37.3221 35.5908 37.3192 35.6605 37.3075 35.7302C37.245 36.0633 37.0428 36.2298 36.701 36.2298C36.2674 36.2298 35.8338 36.2269 35.4002 36.2298C35.1043 36.2298 34.8143 36.6684 34.9198 36.9443C34.9666 37.0634 35.0721 37.0315 35.16 37.0315C35.6522 37.0344 36.1444 37.0489 36.6366 37.0315C36.9559 37.0199 37.0292 37.1477 36.9559 37.4265C36.9296 37.5282 36.9061 37.6298 36.8944 37.7344C36.871 37.9639 36.745 38.051 36.5165 38.0452C36.036 38.0365 35.5555 38.0394 35.075 38.0452C34.7528 38.0452 34.4334 38.5506 34.5682 38.8382C34.6209 38.9515 34.7264 38.9166 34.8143 38.9195C35.3416 38.9224 35.869 38.9311 36.3963 38.9195C36.6483 38.9137 36.745 39.0037 36.6835 39.2477C36.6747 39.2826 36.6747 39.3174 36.6688 39.3523C36.6024 39.7415 36.3661 39.9361 35.9598 39.9361C35.5965 39.9361 35.2332 39.9361 34.87 39.9361L34.8758 39.9274Z"
fill="white"></path>
<path
d="M78.8237 38.0422C77.1361 38.0422 75.4516 38.0422 73.764 38.0422C73.2806 38.0422 73.2689 38.0277 73.3539 37.5804C73.4281 37.1776 73.6732 36.9762 74.0892 36.9762C77.4145 36.9762 80.7397 36.9762 84.0649 36.9762C84.5776 36.9762 84.5835 36.9849 84.4809 37.4874C84.4067 37.8553 84.1831 38.0393 83.81 38.0393C82.146 38.0393 80.4848 38.0393 78.8207 38.0393L78.8237 38.0422Z"
fill="white"></path>
<path
d="M29.0368 36.9792C29.4616 36.5377 29.904 36.1078 30.3083 35.6489C30.5954 35.3236 30.9147 35.158 31.3512 35.2248C31.5739 35.2597 31.9167 35.1115 31.9928 35.3061C32.0661 35.4891 31.735 35.6489 31.5768 35.8086C31.1374 36.2589 30.695 36.7062 30.2321 37.1332C30.0299 37.3191 30.0182 37.473 30.1501 37.7025C30.5075 38.3299 30.8356 38.9689 31.1872 39.5992C31.3219 39.8403 31.2721 39.9332 30.9909 39.9245C29.8161 39.8984 30.1266 40.1017 29.6051 39.0967C29.4997 38.8905 29.3854 38.6842 29.3004 38.4693C29.1774 38.1643 29.0485 38.2224 28.8522 38.4112C28.6178 38.6378 28.6178 38.9369 28.5621 39.2129C28.4039 39.9942 28.6002 39.9216 27.6129 39.9245C27.358 39.9245 27.2906 39.8229 27.3405 39.5789C27.5543 38.4867 27.7565 37.3917 27.9616 36.2966C27.985 36.1717 28.0055 36.0439 28.0289 35.919C28.1637 35.2016 28.3248 35.0999 29.069 35.2219C29.3092 35.2626 29.2623 35.4136 29.2389 35.5588C29.1569 36.0207 29.069 36.4825 28.9811 36.9444C29.0016 36.956 29.0192 36.9647 29.0397 36.9763L29.0368 36.9792Z"
fill="white"></path>
<path
d="M45.7943 39.9971C45.267 39.9738 44.7133 39.8664 44.2445 39.4859C44.0424 39.3203 43.9955 39.1605 44.1918 38.9659C44.2093 38.9485 44.2211 38.9311 44.2386 38.9136C44.3881 38.751 44.5082 38.5157 44.6928 38.4431C44.9008 38.3589 45.0092 38.6609 45.1937 38.7539C45.5951 38.9543 46.0023 39.0618 46.4447 38.9107C46.6234 38.8497 46.7582 38.7365 46.767 38.5418C46.7758 38.3443 46.6264 38.2543 46.4652 38.2049C46.143 38.1032 45.809 38.0306 45.4896 37.9202C44.6049 37.6124 44.3383 36.8571 44.8129 36.0526C45.2025 35.3961 46.0609 35.0446 46.9604 35.1753C47.3588 35.2334 47.7309 35.3612 48.0619 35.5965C48.2377 35.7214 48.3051 35.8434 48.1322 36.0177C48.0824 36.0671 48.0443 36.1281 48.0004 36.1804C47.7719 36.4515 47.5024 36.5125 47.1918 36.3634C46.89 36.2181 46.5766 36.1339 46.2396 36.1775C46.017 36.2065 45.8119 36.3024 45.7826 36.5405C45.7504 36.7845 45.9818 36.8281 46.1547 36.8833C46.4096 36.9675 46.6762 37.0227 46.9311 37.1069C47.4115 37.2667 47.8715 37.47 47.9389 38.0481C48.0151 38.7219 47.7924 39.2883 47.1977 39.6659C46.7904 39.9245 46.3305 40 45.7973 40.0029L45.7943 39.9971Z"
fill="white"></path>
<path
d="M5.07682 38.0422C3.51821 38.0422 1.96253 38.0422 0.403916 38.0422C-0.0384717 38.0422 -0.0443311 38.0335 0.0435605 37.6094C0.131452 37.1873 0.398057 36.9762 0.843374 36.9762C3.84341 36.9762 6.84051 36.9762 9.84054 36.9762C10.2175 36.9762 10.3708 37.1553 10.3005 37.5136C10.2302 37.8718 10.0124 38.047 9.64718 38.0393C8.12373 38.0393 6.60027 38.0393 5.07975 38.0393L5.07682 38.0422Z"
fill="white"></path>
<path
d="M52.6826 37.9812C52.6914 36.0613 54.5401 34.6757 56.2422 35.2712C56.6524 35.4135 56.9307 35.6953 57.1387 36.0613C57.25 36.2559 57.209 36.3895 56.9922 36.4679C56.9043 36.4999 56.8135 36.5318 56.7373 36.5812C56.4385 36.7729 56.2159 36.7584 55.9815 36.4447C55.7412 36.1194 55.3574 36.1048 54.9883 36.2152C54.1797 36.4505 53.6436 37.4526 53.8867 38.2543C54.1182 39.0182 55.0821 39.2041 55.7149 38.6145C55.8174 38.5186 55.8789 38.292 56.0518 38.3618C56.3067 38.4663 56.5381 38.6348 56.7696 38.7887C56.837 38.8352 56.7842 38.9165 56.7432 38.9746C56.2627 39.6253 55.6153 39.9767 54.8008 39.9942C54.0274 40.0116 53.374 39.7734 52.9551 39.0763C52.7412 38.7248 52.668 38.3443 52.6855 37.9812H52.6826Z"
fill="white"></path>
<path
d="M21.4606 37.8941C21.4635 36.2966 22.7731 35.0563 24.4636 35.1579C25.1052 35.1957 25.5945 35.4978 25.9197 36.0555C26.0368 36.2559 26.0427 36.4011 25.782 36.4737C25.6823 36.5028 25.5798 36.5435 25.489 36.5928C25.2165 36.7497 25.0232 36.7729 24.7976 36.4592C24.5632 36.131 24.156 36.1019 23.7692 36.2094C22.902 36.4476 22.363 37.5368 22.697 38.3705C22.9665 39.0473 23.9245 39.1751 24.4958 38.6116C24.5954 38.5128 24.6511 38.2979 24.8415 38.3734C25.0993 38.478 25.3513 38.6145 25.5534 38.8091C25.6238 38.8788 25.5359 38.9572 25.4919 39.024C24.8298 40 23.2331 40.3108 22.2546 39.6427C21.6745 39.2477 21.446 38.6726 21.4606 37.8912V37.8941Z"
fill="white"></path>
<path
d="M14.983 35.2219C15.4986 35.2219 16.0113 35.2277 16.527 35.2219C16.776 35.219 16.8756 35.3119 16.8053 35.5588C16.7907 35.614 16.7877 35.6721 16.776 35.7302C16.7115 36.0632 16.5114 36.2298 16.1754 36.2298C15.4137 36.2298 15.4108 36.2298 15.2672 36.9763C15.1119 37.7954 14.9596 38.6174 14.8102 39.4394C14.7223 39.9216 14.7193 39.9245 14.2301 39.9274C13.7887 39.9274 13.61 39.7086 13.6939 39.271C13.8639 38.3821 14.025 37.4933 14.2066 36.6074C14.2652 36.3198 14.2066 36.1949 13.8873 36.2269C13.6676 36.2472 13.442 36.2298 13.2223 36.2269C13.0435 36.2269 12.9644 36.1397 13.0025 35.9597C13.0084 35.9364 13.0113 35.9132 13.0142 35.8899C13.0728 35.4426 13.3297 35.2199 13.7848 35.2219C13.9605 35.2219 14.1363 35.2219 14.3121 35.2219C14.5348 35.2219 14.7574 35.2219 14.9801 35.2219H14.983Z"
fill="white"></path>
<path
d="M41.2414 35.2219C41.7219 35.2219 42.2024 35.2393 42.6799 35.2161C43.0198 35.1987 43.0959 35.3352 43.011 35.6256C43.0051 35.6489 43.0022 35.6721 42.9993 35.6953C42.9309 36.0517 42.7151 36.2298 42.3518 36.2298C41.4524 36.2298 41.6457 36.1659 41.4875 36.9502C41.3117 37.8245 41.1447 38.7017 40.9953 39.5818C40.9514 39.8403 40.8488 39.9361 40.5852 39.9332C39.633 39.9158 39.759 40.0204 39.9201 39.1432C40.0783 38.2892 40.2424 37.4352 40.4211 36.5813C40.4768 36.3082 40.383 36.2124 40.1193 36.2327C40.049 36.2385 39.9787 36.2327 39.9084 36.2327C39.1203 36.2327 39.1994 36.3169 39.3313 35.5065C39.3664 35.2916 39.4895 35.2219 39.6975 35.2248C40.2131 35.2306 40.7258 35.2248 41.2414 35.2248V35.2219Z"
fill="white"></path>
<path
d="M18.5449 39.9216C18.4511 39.9216 18.3574 39.9216 18.2636 39.9216C18.0644 39.9216 17.9911 39.8374 18.0292 39.637C18.29 38.2689 18.5507 36.9008 18.8027 35.5327C18.8466 35.2887 18.9814 35.219 19.2158 35.2161C20.0214 35.2016 20.0097 35.1928 19.8574 35.9626C19.6347 37.1012 19.4296 38.2427 19.2128 39.3814C19.1103 39.9245 19.1074 39.9216 18.5419 39.9187L18.5449 39.9216Z"
fill="white"></path>
<path
d="M50.9005 39.2506C50.9005 39.6514 50.59 39.9797 50.212 39.9826C49.8839 39.9855 49.629 39.7357 49.6349 39.4133C49.6437 39.0095 49.9864 38.6493 50.3526 38.6522C50.6661 38.6522 50.9005 38.9108 50.9005 39.2506Z"
fill="white"></path>
</g>
<defs>
<clipPath id="clip0_117_3713">
<rect width="91" height="40" fill="white"></rect>
</clipPath>
</defs>
</svg>
</span>
<p class="footer__about">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet.</p>
</div>
<nav class="footer__cols" aria-label="Footer">
<div class="footer__col">
<h2 class="footer__ct">Quick Access</h2>
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="tours.html">Tours</a></li>
<li><a href="blog.html">Weblog</a></li>
<li><a href="contact.html">Contact us</a></li>
<li><a href="about.html">About us</a></li>
</ul>
</div>
<div class="footer__col">
<h2 class="footer__ct">Tours</h2>
<ul>
<li><a href="tours.html">London</a></li>
<li><a href="tours.html">Nashville</a></li>
<li><a href="tours.html">Sydney</a></li>
<li><a href="tours.html">San Diego</a></li>
<li><a href="tours.html">Paris</a></li>
</ul>
</div>
<div class="footer__col">
<h2 class="footer__ct">User Account</h2>
<ul>
<li><a href="#">Sign in</a></li>
<li><a href="#">Forget Password</a></li>
<li><a href="#">Booking History</a></li>
<li><a href="#">Support</a></li>
<li><a href="#">Dashboard</a></li>
</ul>
</div>
</nav>
</div>
<div class="container footer__bar">
<p class="footer__copy">&copy; 2026 Hop on Hop Off. All rights reserved.</p>
<ul class="socials">
<li><a href="#" aria-label="WhatsApp"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-whatsapp" />
</svg></a></li>
<li><a href="#" aria-label="Instagram"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-instagram" />
</svg></a></li>
<li><a href="#" aria-label="Telegram"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-telegram" />
</svg></a></li>
<li><a href="#" aria-label="Facebook"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-facebook" />
</svg></a></li>
</ul>
</div>
<a class="support" href="#" aria-label="Support">
<svg class="ring-badge__ring support__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">SUPPORT &#183; SUPPORT &#183; SUPPORT &#183; </textPath>
</text>
</svg>
<span class="support__tab">
<svg class="icon icon--24" aria-hidden="true">
<use href="#i-headset" />
</svg>
</span>
</a>
</footer>
<script src="js/main.js"></script>
</body>
</html>

View File

@@ -0,0 +1,823 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Hop On Hop Off &mdash; San Diego Tour</title>
<meta name="description" content="The San Diego hop on hop off tour &mdash; 1h 30m, free cancellation up to 24 hrs, from $30 per person." />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;700;800&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<a class="skip-link" href="#main">Skip to content</a>
<!-- ============ icon sprite ============ -->
<svg class="sprite" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg">
<symbol id="i-arrow-right" viewBox="0 0 16 16" fill="none">
<path d="M2.66699 8H13.3337M9.33366 12L13.3337 8L9.33366 4" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-left" viewBox="0 0 16 16" fill="none">
<path d="M13.333 8H2.66634M6.66634 12L2.66634 8L6.66634 4" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-ne" viewBox="0 0 16 16" fill="none">
<path d="M4 12L12 4M12 10V4H6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-up" viewBox="0 0 16 16" fill="none">
<path d="M8 13.3333L8 2.66659M12 6.66659L8 2.66659L4 6.66659" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-chevron" viewBox="0 0 16 16" fill="none">
<path d="M12.6663 6L7.99967 10L3.33301 6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
</symbol>
<symbol id="i-search" viewBox="0 0 24 24" fill="none">
<circle cx="11.5" cy="11.5" r="9.5" stroke="currentColor" stroke-width="1.5" />
<path d="M18.5 18.5L22 22" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-user" viewBox="0 0 24 24" fill="none">
<circle cx="12" cy="6" r="4" stroke="currentColor" stroke-width="1.5" />
<ellipse cx="12" cy="17" rx="7" ry="4" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-location" viewBox="0 0 16 16" fill="none">
<path
d="M2.66699 6.76224C2.66699 3.76396 5.05481 1.33337 8.00033 1.33337C10.9458 1.33337 13.3337 3.76396 13.3337 6.76224C13.3337 9.73702 11.6314 13.2083 8.97561 14.4497C8.3565 14.7391 7.64415 14.7391 7.02504 14.4497C4.36921 13.2083 2.66699 9.73702 2.66699 6.76224Z"
stroke="currentColor" stroke-width="1.5" />
<circle cx="8" cy="6.66663" r="2" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-calendar" viewBox="0 0 16 16" fill="none">
<path
d="M1.33301 7.99996C1.33301 5.4858 1.33301 4.22872 2.11406 3.44767C2.8951 2.66663 4.15218 2.66663 6.66634 2.66663H9.33301C11.8472 2.66663 13.1042 2.66663 13.8853 3.44767C14.6663 4.22872 14.6663 5.4858 14.6663 7.99996V9.33329C14.6663 11.8475 14.6663 13.1045 13.8853 13.8856C13.1042 14.6666 11.8472 14.6666 9.33301 14.6666H6.66634C4.15218 14.6666 2.8951 14.6666 2.11406 13.8856C1.33301 13.1045 1.33301 11.8475 1.33301 9.33329V7.99996Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M4.66699 2.66663V1.66663" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M11.333 2.66663V1.66663" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M1.66699 6H14.3337" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-seat" viewBox="0 0 16 16" fill="none">
<circle cx="5.99967" cy="4.00004" r="2.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M10 6C11.1046 6 12 5.10457 12 4C12 2.89543 11.1046 2 10 2" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" />
<ellipse cx="5.99967" cy="11.3333" rx="4.66667" ry="2.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M12 9.33337C13.1695 9.58984 14 10.2393 14 11C14 11.6863 13.3242 12.282 12.3333 12.5803"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-mouse" viewBox="0 0 16 16" fill="none">
<path
d="M3.33301 5.99998C3.33301 3.42265 5.42235 1.33331 7.99967 1.33331C10.577 1.33331 12.6663 3.42265 12.6663 5.99998V9.99998C12.6663 12.5773 10.577 14.6666 7.99967 14.6666C5.42235 14.6666 3.33301 12.5773 3.33301 9.99998V5.99998Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M7 5.66669C7 5.1144 7.44772 4.66669 8 4.66669C8.55228 4.66669 9 5.1144 9 5.66669V7.00002C9 7.5523 8.55228 8.00002 8 8.00002C7.44772 8.00002 7 7.5523 7 7.00002V5.66669Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M8 1.33331V4.66665" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-grid" viewBox="0 0 16 16" fill="none">
<path
d="M1.66699 4.33329C1.66699 3.07621 1.66699 2.44767 2.05752 2.05715C2.44804 1.66663 3.07658 1.66663 4.33366 1.66663C5.59074 1.66663 6.21928 1.66663 6.6098 2.05715C7.00033 2.44767 7.00033 3.07621 7.00033 4.33329C7.00033 5.59037 7.00033 6.21891 6.6098 6.60944C6.21928 6.99996 5.59074 6.99996 4.33366 6.99996C3.07658 6.99996 2.44804 6.99996 2.05752 6.60944C1.66699 6.21891 1.66699 5.59037 1.66699 4.33329Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M9 11.6667C9 10.4096 9 9.78105 9.39052 9.39052C9.78105 9 10.4096 9 11.6667 9C12.9237 9 13.5523 9 13.9428 9.39052C14.3333 9.78105 14.3333 10.4096 14.3333 11.6667C14.3333 12.9237 14.3333 13.5523 13.9428 13.9428C13.5523 14.3333 12.9237 14.3333 11.6667 14.3333C10.4096 14.3333 9.78105 14.3333 9.39052 13.9428C9 13.5523 9 12.9237 9 11.6667Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M1.66699 11.6667C1.66699 10.4096 1.66699 9.78105 2.05752 9.39052C2.44804 9 3.07658 9 4.33366 9C5.59074 9 6.21928 9 6.6098 9.39052C7.00033 9.78105 7.00033 10.4096 7.00033 11.6667C7.00033 12.9237 7.00033 13.5523 6.6098 13.9428C6.21928 14.3333 5.59074 14.3333 4.33366 14.3333C3.07658 14.3333 2.44804 14.3333 2.05752 13.9428C1.66699 13.5523 1.66699 12.9237 1.66699 11.6667Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M9 4.33329C9 3.07621 9 2.44767 9.39052 2.05715C9.78105 1.66663 10.4096 1.66663 11.6667 1.66663C12.9237 1.66663 13.5523 1.66663 13.9428 2.05715C14.3333 2.44767 14.3333 3.07621 14.3333 4.33329C14.3333 5.59037 14.3333 6.21891 13.9428 6.60944C13.5523 6.99996 12.9237 6.99996 11.6667 6.99996C10.4096 6.99996 9.78105 6.99996 9.39052 6.60944C9 6.21891 9 5.59037 9 4.33329Z"
stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-price" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="8.00004" r="6.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M8 4V12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M10 6.33335C10 5.41288 9.10457 4.66669 8 4.66669C6.89543 4.66669 6 5.41288 6 6.33335C6 7.25383 6.89543 8.00002 8 8.00002C9.10457 8.00002 10 8.74621 10 9.66669C10 10.5872 9.10457 11.3334 8 11.3334C6.89543 11.3334 6 10.5872 6 9.66669"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-duration" viewBox="0 0 16 16" fill="none">
<path
d="M1.33366 8.00004C1.33366 11.6819 4.31843 14.6667 8.00033 14.6667C11.6822 14.6667 14.667 11.6819 14.667 8.00004C14.667 4.31814 11.6822 1.33337 8.00033 1.33337"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M8 6V8.66667H10.6667" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
<circle cx="7.99967" cy="8.00004" r="6.66667" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-dasharray="0.5 3.5" />
</symbol>
<symbol id="i-sort" viewBox="0 0 16 16" fill="none">
<path d="M2.66699 11.3333H7.33366" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2.66699 8L7.33366 8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2.66699 4.66669L7.33366 4.66669" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M11.333 2.66665L11.333 13.3333M13.333 5.33331L11.333 2.66665L9.33301 5.33331M9.33301 10.6666L11.333 13.3333L13.333 10.6666"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-check" viewBox="0 0 16 16" fill="none">
<path d="M3.33301 8.33333L6.33301 11.3333L12.6663 5" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-info" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="7.99992" r="6.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M8 11.3333V7.33325" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<circle cx="8" cy="5.33333" r="0.666667" fill="currentColor" />
</symbol>
<symbol id="i-person" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="4.00004" r="2.66667" stroke="currentColor" stroke-width="1.5" />
<ellipse cx="7.99967" cy="11.3333" rx="4.66667" ry="2.66667" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-shield-check" viewBox="0 0 16 16" fill="none">
<path
d="M2 6.94448C2 4.81275 2 3.74689 2.25168 3.38831C2.50335 3.02973 3.50555 2.68668 5.50994 2.00057L5.89182 1.86985C6.93666 1.5122 7.45907 1.33337 8 1.33337C8.54093 1.33337 9.06335 1.5122 10.1082 1.86985L10.4901 2.00057C12.4945 2.68668 13.4966 3.02973 13.7483 3.38831C14 3.74689 14 4.81275 14 6.94448C14 7.26647 14 7.61565 14 7.99428C14 11.753 11.174 13.577 9.40096 14.3516C8.91999 14.5617 8.67951 14.6667 8 14.6667C7.32049 14.6667 7.08001 14.5617 6.59904 14.3516C4.82597 13.577 2 11.753 2 7.99428C2 7.61565 2 7.26647 2 6.94448Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M6.33301 8.26663L7.28539 9.33329L9.66634 6.66663" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-x" viewBox="0 0 16 16" fill="none">
<path d="M12.6663 3.33337L3.33301 12.6667M3.33301 3.33337L12.6663 12.6667" stroke="currentColor"
stroke-width="2" stroke-linecap="round" />
</symbol>
<symbol id="i-star" viewBox="0 0 12 12">
<path
d="M4.21205 2.06464C4.94362 0.701584 5.30941 0.0200537 5.87277 0.000515809C6.43613 -0.019022 6.82396 0.636371 7.59964 1.94716L7.80031 2.28628C8.02073 2.65876 8.13095 2.845 8.29997 2.96455C8.46899 3.08409 8.67769 3.12341 9.09509 3.20203L9.4751 3.27362C10.9439 3.55031 11.6784 3.68865 11.8616 4.23622C12.0448 4.78378 11.5555 5.37794 10.5768 6.56625L10.3236 6.87368C10.0455 7.21136 9.90649 7.3802 9.84606 7.58521C9.78563 7.79021 9.81067 8.00818 9.86075 8.44411L9.90634 8.84099C10.0826 10.3751 10.1707 11.1421 9.72055 11.5C9.27043 11.858 8.58018 11.5698 7.19966 10.9934L6.84251 10.8443C6.45021 10.6805 6.25406 10.5986 6.04769 10.6058C5.84132 10.613 5.6481 10.7084 5.26165 10.8991L4.90982 11.0729C3.54988 11.7443 2.86992 12.08 2.40851 11.7536C1.9471 11.4273 2.00982 10.655 2.13527 9.1105L2.16772 8.71092C2.20337 8.27201 2.2212 8.05256 2.15408 7.85197C2.08696 7.65139 1.9425 7.49238 1.65359 7.17437L1.39055 6.88484C0.373843 5.76573 -0.134512 5.20618 0.0304441 4.64653C0.1954 4.08689 0.924422 3.89779 2.38247 3.5196L2.75968 3.42175C3.17401 3.31428 3.38117 3.26054 3.54606 3.12942C3.71095 2.99829 3.8149 2.80462 4.02279 2.41729L4.21205 2.06464Z"
fill="currentColor" />
</symbol>
<symbol id="i-plus" viewBox="0 0 14 14" fill="none">
<path d="M12.75 6.75005L6.75 6.75005M6.75 6.75005L0.75 6.75005M6.75 6.75005L6.75 0.75M6.75 6.75005L6.75 12.75"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-minus" viewBox="0 0 14 14" fill="none">
<path d="M12.75 7L0.75 7" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-headset" viewBox="0 0 24 24" fill="none">
<path d="M21 17V12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12V17" stroke="currentColor"
stroke-width="1.5" />
<path d="M22 15.5V17.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2 15.5V17.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M8 13.8446C8 13.0802 8 12.698 7.82526 12.4323C7.73733 12.2985 7.62061 12.188 7.4844 12.1095C7.21371 11.9535 6.84812 11.9896 6.11694 12.0617C4.88487 12.1831 4.26884 12.2439 3.82737 12.5764C3.60394 12.7448 3.41638 12.9593 3.27646 13.2067C3 13.6955 3 14.3395 3 15.6276V17.1933C3 18.4685 3 19.1061 3.28198 19.5986C3.38752 19.7829 3.51981 19.9491 3.67416 20.0913C4.08652 20.4714 4.68844 20.5901 5.89227 20.8275C6.73944 20.9945 7.16302 21.078 7.47564 20.9021C7.591 20.8372 7.69296 20.7493 7.77572 20.6434C8 20.3565 8 19.9078 8 19.0104V13.8446Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M16 13.8446C16 13.0802 16 12.698 16.1747 12.4323C16.2627 12.2985 16.3794 12.188 16.5156 12.1095C16.7863 11.9535 17.1519 11.9896 17.8831 12.0617C19.1151 12.1831 19.7312 12.2439 20.1726 12.5764C20.3961 12.7448 20.5836 12.9593 20.7235 13.2067C21 13.6955 21 14.3395 21 15.6276V17.1933C21 18.4685 21 19.1061 20.718 19.5986C20.6125 19.7829 20.4802 19.9491 20.3258 20.0913C19.9135 20.4714 19.3116 20.5901 18.1077 20.8275C17.2606 20.9945 16.837 21.078 16.5244 20.9021C16.409 20.8372 16.307 20.7493 16.2243 20.6434C16 20.3565 16 19.9078 16 19.0104V13.8446Z"
stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-whatsapp" viewBox="0 0 20 20">
<path
d="M17 2.875C15.125 1 12.625 0 10 0C4.5 0 0 4.5 0 10C0 11.75 0.500008 13.5 1.37501 15L0 20L5.25002 18.625C6.75002 19.375 8.375 19.875 10 19.875C15.5 19.875 20 15.375 20 9.875C20 7.25 18.875 4.75 17 2.875ZM10 18.25C8.5 18.25 7.00001 17.875 5.75001 17.125L5.49999 17L2.37499 17.875L3.25001 14.875L2.99999 14.5C2.12499 13.125 1.74999 11.625 1.74999 10.125C1.74999 5.625 5.5 1.875 10 1.875C12.25 1.875 14.25 2.75 15.875 4.25C17.5 5.875 18.25 7.875 18.25 10.125C18.25 14.5 14.625 18.25 10 18.25ZM14.5 12C14.25 11.875 13 11.25 12.75 11.25C12.5 11.125 12.375 11.125 12.25 11.375C12.125 11.625 11.625 12.125 11.5 12.375C11.375 12.5 11.25 12.5 11 12.5C10.75 12.375 10 12.125 9.00002 11.25C8.25002 10.625 7.75001 9.75 7.62501 9.5C7.50001 9.25 7.62502 9.125 7.75002 9C7.87502 8.875 8 8.75 8.125 8.625C8.25 8.5 8.25002 8.375 8.37502 8.25C8.50002 8.125 8.37502 8 8.37502 7.875C8.37502 7.75 7.87501 6.5 7.62501 6C7.50001 5.625 7.25002 5.625 7.12502 5.625C7.00002 5.625 6.87498 5.625 6.62498 5.625C6.49998 5.625 6.24998 5.625 5.99998 5.875C5.74998 6.125 5.12501 6.75 5.12501 8C5.12501 9.25 5.99999 10.375 6.12499 10.625C6.24999 10.75 7.87498 13.375 10.375 14.375C12.5 15.25 12.875 15 13.375 15C13.875 15 14.875 14.375 15 13.875C15.25 13.25 15.25 12.75 15.125 12.75C15 12.125 14.75 12.125 14.5 12Z"
fill="currentColor" />
</symbol>
<symbol id="i-instagram" viewBox="0 0 20 20">
<path
d="M10 1.80723C12.6506 1.80723 13.0121 1.80723 14.0964 1.80723C15.0602 1.80723 15.5422 2.04819 15.9036 2.16868C16.3855 2.40964 16.747 2.53012 17.1084 2.89157C17.4699 3.25301 17.7108 3.61446 17.8313 4.09639C17.9518 4.45783 18.0723 4.93976 18.1928 5.90362C18.1928 6.98795 18.1928 7.22892 18.1928 10C18.1928 12.7711 18.1928 13.0121 18.1928 14.0964C18.1928 15.0602 17.9518 15.5422 17.8313 15.9036C17.5904 16.3855 17.4699 16.747 17.1084 17.1084C16.747 17.4699 16.3855 17.7108 15.9036 17.8313C15.5422 17.9518 15.0602 18.0723 14.0964 18.1928C13.0121 18.1928 12.7711 18.1928 10 18.1928C7.22892 18.1928 6.98795 18.1928 5.90362 18.1928C4.93976 18.1928 4.45783 17.9518 4.09639 17.8313C3.61446 17.5904 3.25301 17.4699 2.89157 17.1084C2.53012 16.747 2.28916 16.3855 2.16868 15.9036C2.04819 15.5422 1.92771 15.0602 1.80723 14.0964C1.80723 13.0121 1.80723 12.7711 1.80723 10C1.80723 7.22892 1.80723 6.98795 1.80723 5.90362C1.80723 4.93976 2.04819 4.45783 2.16868 4.09639C2.40964 3.61446 2.53012 3.25301 2.89157 2.89157C3.25301 2.53012 3.61446 2.28916 4.09639 2.16868C4.45783 2.04819 4.93976 1.92771 5.90362 1.80723C6.98795 1.80723 7.3494 1.80723 10 1.80723ZM10 0C7.22892 0 6.98795 0 5.90362 0C4.81928 0 4.09639 0.240965 3.49398 0.481928C2.89157 0.722892 2.28916 1.08434 1.68675 1.68675C1.08434 2.28916 0.843374 2.77109 0.481928 3.49398C0.240965 4.09639 0.120482 4.81928 0 5.90362C0 6.98795 0 7.3494 0 10C0 12.7711 0 13.0121 0 14.0964C0 15.1807 0.240965 15.9036 0.481928 16.506C0.722892 17.1084 1.08434 17.7108 1.68675 18.3133C2.28916 18.9157 2.77109 19.1566 3.49398 19.5181C4.09639 19.759 4.81928 19.8795 5.90362 20C6.98795 20 7.3494 20 10 20C12.6506 20 13.0121 20 14.0964 20C15.1807 20 15.9036 19.759 16.506 19.5181C17.1084 19.2771 17.7108 18.9157 18.3133 18.3133C18.9157 17.7108 19.1566 17.2289 19.5181 16.506C19.759 15.9036 19.8795 15.1807 20 14.0964C20 13.0121 20 12.6506 20 10C20 7.3494 20 6.98795 20 5.90362C20 4.81928 19.759 4.09639 19.5181 3.49398C19.2771 2.89157 18.9157 2.28916 18.3133 1.68675C17.7108 1.08434 17.2289 0.843374 16.506 0.481928C15.9036 0.240965 15.1807 0.120482 14.0964 0C13.0121 0 12.7711 0 10 0Z"
fill="currentColor" />
<path
d="M10 4.81928C7.10843 4.81928 4.81928 7.10843 4.81928 10C4.81928 12.8916 7.10843 15.1807 10 15.1807C12.8916 15.1807 15.1807 12.8916 15.1807 10C15.1807 7.10843 12.8916 4.81928 10 4.81928ZM10 13.3735C8.19277 13.3735 6.62651 11.9277 6.62651 10C6.62651 8.19277 8.07229 6.62651 10 6.62651C11.8072 6.62651 13.3735 8.07229 13.3735 10C13.3735 11.8072 11.8072 13.3735 10 13.3735Z"
fill="currentColor" />
<path
d="M15.3012 5.90362C15.9666 5.90362 16.506 5.3642 16.506 4.6988C16.506 4.03339 15.9666 3.49398 15.3012 3.49398C14.6358 3.49398 14.0964 4.03339 14.0964 4.6988C14.0964 5.3642 14.6358 5.90362 15.3012 5.90362Z"
fill="currentColor" />
</symbol>
<symbol id="i-telegram" viewBox="0 0 20 17">
<path
d="M1.3749 7.31846C6.74359 4.91938 10.3236 3.33777 12.1148 2.57361C17.2292 0.391776 18.2919 0.0127698 18.9846 0.00012133C19.1369 -0.00249777 19.4776 0.0362266 19.6982 0.219862C19.8845 0.37492 19.9358 0.584381 19.9603 0.731393C19.9848 0.878405 20.0154 1.2133 19.9911 1.47498C19.714 4.46174 18.5147 11.7098 17.9046 15.055C17.6465 16.4705 17.1382 16.9451 16.6461 16.9916C15.5766 17.0925 14.7645 16.2667 13.7287 15.5702C12.1078 14.4805 11.1921 13.8021 9.61879 12.7387C7.80053 11.5097 8.97923 10.8343 10.0154 9.73042C10.2866 9.44153 14.9987 5.04555 15.0899 4.64677C15.1013 4.59689 15.1119 4.41098 15.0042 4.31282C14.8965 4.21465 14.7376 4.24822 14.6229 4.27492C14.4604 4.31276 11.871 6.06814 6.85486 9.54107C6.11988 10.0587 5.45416 10.3109 4.8577 10.2977C4.20015 10.2831 2.93528 9.91637 1.99498 9.60288C0.84166 9.21836 -0.0749729 9.01506 0.00484519 8.36203C0.0464194 8.0219 0.503103 7.67404 1.3749 7.31846Z"
fill="currentColor" />
</symbol>
<symbol id="i-facebook" viewBox="0 0 20 20">
<path
d="M20 10C20 4.5 15.5 0 10 0C4.5 0 0 4.5 0 10C0 15 3.625 19.125 8.375 19.875V12.875H5.875V10H8.375V7.75C8.375 5.25 9.875 3.875 12.125 3.875C13.25 3.875 14.375 4.125 14.375 4.125V6.625H13.125C11.875 6.625 11.5 7.375 11.5 8.125V10H14.25L13.75 12.875H11.375V20C16.375 19.25 20 15 20 10Z"
fill="currentColor" />
</symbol>
</svg>
<!-- ============ header ============ -->
<header class="site-header" id="siteHeader">
<div class="container header__inner">
<div class="header__left">
<a class="header__logo" href="index.html" aria-label="Hop On Hop Off — home">
<svg class="logo" viewBox="0 0 91 40" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Logo">
<g clip-path="url(#clip0_117_3713)">
<path
d="M70.0559 6.63419C69.9035 7.36616 69.76 8.05456 69.6194 8.74587C69.2766 10.4306 68.9338 12.1153 68.6027 13.8C68.5471 14.0759 68.424 14.195 68.1311 14.1892C67.217 14.1776 66.3029 14.1863 65.3888 14.1863C65.0216 14.1863 64.8752 14.0023 64.9494 13.6344C65.2892 11.9381 65.632 10.2418 65.9719 8.54545C66.5021 5.90221 67.0324 3.26188 67.551 0.618649C67.6037 0.348516 67.7209 0.229425 67.9934 0.252662C68.8371 0.316565 69.678 0.235234 70.5217 0.243948C70.9289 0.249757 71.175 0.365944 71.3625 0.758072C72.4407 3.01499 73.551 5.25738 74.6526 7.50268C74.7053 7.61306 74.7288 7.74667 74.8929 7.83671C74.9749 7.44749 75.0569 7.0786 75.1302 6.70971C75.5286 4.72873 75.9212 2.74776 76.3196 0.763881C76.4192 0.272995 76.4397 0.243948 76.9349 0.255567C77.8343 0.272995 78.7366 0.272995 79.6361 0.264281C80.1195 0.258471 80.1458 0.316565 80.0521 0.769691C79.1527 5.11505 78.2474 9.45751 77.3567 13.8058C77.2923 14.1166 77.1575 14.2037 76.8645 14.2008C75.9856 14.1892 75.1067 14.1863 74.2278 14.2008C73.926 14.2066 73.759 14.0904 73.6331 13.8261C72.5374 11.5663 71.4299 9.30937 70.3254 7.05246C70.261 6.92465 70.2229 6.77361 70.0559 6.6429V6.63419Z"
fill="white"></path>
<path
d="M25.5852 14.4942C24.0706 14.5029 22.6584 14.1834 21.4426 13.2249C20.218 12.2605 19.5764 10.9825 19.4299 9.45462C19.0314 5.2661 22.1252 0.682561 27.2552 0.0783925C28.6204 -0.0842682 29.9739 -0.0232704 31.2659 0.502472C33.2464 1.30706 34.3363 2.79715 34.5853 4.8885C35.0658 8.90564 31.887 13.8435 26.7776 14.4303C26.3792 14.4768 25.9837 14.4855 25.5852 14.4942ZM30.6068 6.2014C30.6068 6.05036 30.6155 5.89932 30.6068 5.74828C30.5247 4.54866 29.7015 3.59012 28.5589 3.35484C27.5452 3.14571 26.5843 3.3258 25.7317 3.87478C23.9358 5.03664 23.2473 6.75619 23.4289 8.81559C23.5461 10.1575 24.425 11.0202 25.7288 11.2148C26.5901 11.3426 27.4192 11.1771 28.1546 10.7152C29.8157 9.66956 30.5247 8.09814 30.6068 6.20431V6.2014Z"
fill="white"></path>
<path
d="M31.9078 23.3679C31.8873 27.3705 29.107 30.9636 25.3159 31.8698C23.4995 32.3055 21.6889 32.3346 19.9428 31.5706C18.1176 30.7719 17.0717 29.3544 16.8314 27.4083C16.348 23.455 18.7855 19.6035 22.5766 18.2383C24.188 17.6573 25.8374 17.4831 27.5161 17.8607C30.3316 18.4939 31.9224 20.5039 31.9078 23.3679ZM27.9321 23.9343C27.9321 23.7716 27.9439 23.609 27.9321 23.4463C27.8208 22.0695 26.9184 21.111 25.6001 20.9745C24.8383 20.896 24.1118 21.0296 23.4145 21.3521C21.3139 22.328 20.3412 25.2675 20.9008 27.0858C21.1908 28.0299 21.8266 28.6398 22.8051 28.8461C23.7895 29.0523 24.7329 28.8838 25.5708 28.3552C27.1909 27.3327 27.8384 25.7671 27.9321 23.9314V23.9343Z"
fill="white"></path>
<path
d="M58.5507 0.0115716C60.0009 -0.00876093 61.2607 0.243944 62.3915 0.964298C63.83 1.88217 64.5859 3.21541 64.75 4.88558C65.122 8.63549 62.7783 12.7049 58.7792 14.0411C56.9569 14.651 55.1024 14.7324 53.2713 14.0556C51.1766 13.28 49.7937 11.3862 49.7557 9.16704C49.6912 5.3358 51.4051 2.53572 54.8592 0.807447C55.9549 0.261372 57.2733 0.00866699 58.5536 0.00866699L58.5507 0.0115716ZM60.8417 6.23044C60.8417 6.09101 60.8505 5.95159 60.8417 5.81217C60.7685 4.66773 60.08 3.72082 59.0985 3.42454C58.2079 3.15441 57.3378 3.22993 56.494 3.60172C54.5282 4.46731 53.4178 6.79103 53.7371 8.93177C53.9305 10.2243 54.7508 11.0144 56.0048 11.2119C56.6903 11.3194 57.37 11.2293 57.9911 10.9244C59.9482 9.96582 60.6952 8.27241 60.8388 6.22753L60.8417 6.23044Z"
fill="white"></path>
<path
d="M52.5947 32.1313C51.2353 32.1488 50.0048 31.9077 48.8915 31.2367C47.4149 30.3479 46.6444 28.9943 46.4364 27.3299C45.9969 23.8647 48.1122 20.0044 51.5898 18.4795C53.8046 17.5093 56.0869 17.2973 58.3721 18.2819C60.1328 19.043 61.1231 20.4285 61.3604 22.2904C61.6885 24.8552 60.9238 27.1266 59.2861 29.125C57.7012 31.0595 55.0293 32.201 52.5976 32.1313H52.5947ZM53.1718 28.9043C54.0126 28.9362 54.8095 28.669 55.4804 28.1229C57.0683 26.8332 57.707 25.1456 57.4463 23.1414C57.2969 21.9883 56.4414 21.1488 55.3076 20.9891C54.3378 20.8526 53.4003 21.0094 52.5859 21.5729C50.9716 22.6912 50.3036 24.2888 50.33 26.1971C50.3534 27.8383 51.4726 28.9014 53.1689 28.9014L53.1718 28.9043Z"
fill="white"></path>
<path
d="M11.6694 5.54499C12.3843 5.54499 13.0991 5.52466 13.814 5.55371C14.189 5.56823 14.3149 5.4259 14.3794 5.07444C14.6607 3.60178 14.9741 2.13783 15.2642 0.668076C15.3169 0.392134 15.4429 0.261425 15.7271 0.261425C16.7788 0.261425 17.8306 0.25852 18.8824 0.255615C19.1431 0.255615 19.2222 0.365992 19.1666 0.630316C18.4488 4.06362 17.7369 7.49692 17.0279 10.9302C16.8286 11.8859 16.6265 12.8386 16.4449 13.7971C16.3921 14.076 16.2749 14.1921 15.982 14.1892C14.9624 14.1776 13.9429 14.1892 12.9233 14.1834C12.5395 14.1834 12.5014 14.1341 12.5806 13.7448C12.8794 12.278 13.1811 10.8111 13.4829 9.34428C13.5767 8.89115 13.5767 8.88534 13.1284 8.88534C11.6518 8.88534 10.1753 8.89115 8.7016 8.87663C8.37934 8.87663 8.25629 8.98701 8.19476 9.30071C7.90472 10.8169 7.58538 12.3274 7.28362 13.8436C7.23382 14.0934 7.11956 14.1951 6.85881 14.1921C5.82755 14.1834 4.79629 14.1834 3.76503 14.1921C3.46327 14.1921 3.38416 14.0934 3.44276 13.7942C3.95546 11.2672 4.45351 8.74011 4.95742 6.21016C5.32364 4.37732 5.69571 2.54448 6.05021 0.708741C6.1088 0.403753 6.22892 0.278852 6.55412 0.284662C7.59417 0.30209 8.63422 0.29628 9.6772 0.290471C9.93209 0.290471 10.0083 0.374706 9.95552 0.624506C9.6479 2.09136 9.35493 3.55821 9.04731 5.02506C8.94184 5.53337 8.94477 5.5508 9.48384 5.55371C10.2104 5.55371 10.937 5.55371 11.6636 5.55371L11.6694 5.54499Z"
fill="white"></path>
<path
d="M8.30004 26.537C7.55003 26.537 6.80002 26.5486 6.05002 26.5311C5.76876 26.5253 5.66036 26.6328 5.60763 26.8971C5.31173 28.425 4.99825 29.9499 4.70528 31.4778C4.65254 31.7479 4.53535 31.8438 4.25996 31.8409C3.24042 31.8292 2.22087 31.8263 1.20426 31.8409C0.879063 31.8467 0.799961 31.7479 0.864414 31.4342C1.50895 28.2246 2.1447 25.012 2.78338 21.8024C3.0119 20.6521 3.24921 19.5048 3.46893 18.3516C3.51874 18.0815 3.64179 17.9856 3.91425 17.9915C4.93379 18.0031 5.95334 18.006 6.96995 17.9915C7.29515 17.9856 7.37132 18.0931 7.30687 18.4039C6.99925 19.8708 6.7092 21.3376 6.4133 22.8074C6.35666 23.0901 6.47287 23.2324 6.76194 23.2344C8.23852 23.2344 9.71509 23.2256 11.1887 23.2431C11.5315 23.246 11.6546 23.1298 11.7161 22.8074C12.0003 21.3492 12.3167 19.8969 12.6009 18.4388C12.6683 18.0989 12.8118 17.9856 13.1604 17.9944C14.1565 18.0176 15.1527 18.0118 16.1458 17.9944C16.4593 17.9886 16.5618 18.067 16.4974 18.3923C15.7152 22.1916 14.9417 25.9909 14.1653 29.7902C14.0481 30.3595 13.928 30.9259 13.8226 31.4981C13.7757 31.745 13.6614 31.8496 13.3978 31.8467C12.3665 31.835 11.3352 31.835 10.3069 31.8467C9.96998 31.8496 9.92018 31.7218 9.98463 31.4226C10.2952 29.9441 10.5852 28.4656 10.8841 26.9843C10.9719 26.5428 10.9778 26.5428 10.512 26.5428C9.77369 26.5428 9.0354 26.5428 8.29711 26.5428L8.30004 26.537Z"
fill="white"></path>
<path
d="M41.409 0.252687C42.3202 0.26721 43.536 0.223641 44.7548 0.287543C45.3817 0.319494 45.9882 0.426966 46.5683 0.659339C48.247 1.33031 48.7509 2.55608 48.7451 4.05198C48.7451 4.96404 48.5107 5.84124 48.1093 6.67197C47.1366 8.67909 45.4755 9.7451 43.3251 10.1547C42.1766 10.3754 41.0135 10.2912 39.8563 10.2854C39.4666 10.2854 39.3319 10.4045 39.2674 10.7733C39.0858 11.7784 38.8543 12.7747 38.6639 13.7768C38.6053 14.0905 38.4647 14.1979 38.1453 14.1921C37.1609 14.1776 36.1766 14.1776 35.1951 14.1921C34.8787 14.195 34.782 14.105 34.8494 13.7826C35.7342 9.4372 36.616 5.09184 37.4774 0.743574C37.5535 0.363064 37.7264 0.243973 38.0838 0.246878C39.0916 0.255592 40.0995 0.249782 41.412 0.249782L41.409 0.252687ZM42.1883 3.47395C41.8251 3.47395 41.4618 3.48557 41.1014 3.47104C40.87 3.46233 40.7674 3.54657 40.7206 3.77313C40.5213 4.78685 40.3133 5.79767 40.0995 6.80559C40.0497 7.03796 40.1082 7.128 40.3514 7.1251C41.0428 7.11639 41.7342 7.14253 42.4227 7.11639C43.7001 7.0641 44.4354 6.47446 44.6991 5.34164C44.9657 4.18849 44.4413 3.51461 43.243 3.47976C42.8915 3.46814 42.5399 3.47976 42.1913 3.47976L42.1883 3.47395Z"
fill="white"></path>
<path
d="M38.2882 27.9951C37.8546 27.9951 37.421 28.0038 36.9874 27.9922C36.7442 27.9864 36.6387 28.0793 36.5918 28.3233C36.3956 29.3486 36.1641 30.3682 35.9737 31.3964C35.9122 31.7392 35.7715 31.8554 35.42 31.8467C34.459 31.8234 33.4981 31.8408 32.54 31.8379C32.0947 31.8379 32.0772 31.8147 32.165 31.379C32.7305 28.5789 33.2988 25.7817 33.8643 22.9816C34.1778 21.4335 34.4971 19.8882 34.7989 18.34C34.8487 18.0844 34.9571 17.9915 35.2178 17.9944C37.4913 18.0031 39.7618 17.9769 42.0353 18.0147C43.1105 18.0321 44.1124 18.3458 44.9269 19.101C45.7062 19.8243 45.9435 20.7625 45.9289 21.7617C45.9025 23.4464 45.299 24.922 44.089 26.1129C42.9845 27.1992 41.6163 27.7598 40.0811 27.9399C39.4864 28.0096 38.8887 27.9922 38.2911 27.9951H38.2882ZM38.7833 24.7825C39.088 24.7825 39.3927 24.7883 39.6974 24.7825C40.9396 24.7593 41.6573 24.1871 41.9415 22.9904C42.2023 21.8982 41.6778 21.204 40.5499 21.1779C39.8233 21.1604 39.0968 21.1779 38.3731 21.1691C38.1475 21.1662 38.0362 21.2359 37.9923 21.4654C37.793 22.4791 37.585 23.49 37.3682 24.5008C37.3243 24.7099 37.3946 24.7825 37.5909 24.7825C37.9893 24.7825 38.3878 24.7825 38.7862 24.7825H38.7833Z"
fill="white"></path>
<path
d="M69.259 17.9973C70.7707 17.9973 72.2825 17.9973 73.7913 17.9973C74.2395 17.9973 74.2483 18.0147 74.1546 18.4562C73.9905 19.2288 73.8206 20.0015 73.677 20.777C73.6213 21.0733 73.4866 21.1779 73.1819 21.175C71.4006 21.1633 69.6193 21.1779 67.841 21.1633C67.507 21.1604 67.3547 21.265 67.299 21.5903C67.1994 22.1625 67.0734 22.729 66.9387 23.2954C66.8713 23.58 66.9562 23.6555 67.2463 23.6526C68.8869 23.641 70.5276 23.6468 72.1653 23.6468C72.637 23.6468 72.6545 23.6701 72.5666 24.1174C72.4172 24.8581 72.2532 25.5958 72.1213 26.3365C72.0569 26.6909 71.9192 26.839 71.5237 26.8332C69.9065 26.81 68.2893 26.8332 66.675 26.8187C66.3498 26.8158 66.2267 26.9291 66.1681 27.2341C65.9015 28.6254 65.6056 30.0109 65.342 31.4023C65.2804 31.7218 65.1632 31.8525 64.8175 31.8467C63.8566 31.8263 62.8956 31.8321 61.9347 31.8409C61.6212 31.8438 61.5275 31.7566 61.5948 31.4313C62.3449 27.7569 63.0802 24.0796 63.8214 20.4023C63.9591 19.7197 64.1056 19.0371 64.2316 18.3516C64.2785 18.096 64.3693 17.9827 64.6623 17.9857C66.1974 18.0031 67.7326 17.9944 69.2648 17.9944L69.259 17.9973Z"
fill="white"></path>
<path
d="M80.8548 17.9943C82.3783 17.9943 83.9017 18.0001 85.4252 17.9885C85.7181 17.9885 85.7972 18.067 85.7357 18.3516C85.5541 19.1562 85.3812 19.9637 85.2318 20.7741C85.1761 21.0762 85.0472 21.1778 84.7425 21.1749C82.9613 21.1633 81.18 21.1807 79.3987 21.1633C79.0442 21.1604 78.9007 21.2708 78.8479 21.6164C78.763 22.177 78.6458 22.7376 78.5081 23.2895C78.4319 23.5916 78.5345 23.6497 78.8128 23.6497C80.4534 23.641 82.0941 23.6468 83.7347 23.6497C84.2064 23.6497 84.2122 23.6642 84.1156 24.1261C83.9574 24.8871 83.7933 25.6481 83.6556 26.4149C83.5999 26.7199 83.4769 26.839 83.1488 26.8361C81.5198 26.8216 79.8909 26.8361 78.262 26.8245C77.9339 26.8245 77.7874 26.9058 77.7229 27.2457C77.4622 28.6254 77.1575 29.9993 76.8938 31.379C76.8264 31.7333 76.677 31.8583 76.3137 31.8495C75.3645 31.8263 74.4153 31.835 73.466 31.8437C73.1731 31.8437 73.0735 31.7711 73.1379 31.4545C73.9524 27.4722 74.7522 23.487 75.5579 19.5019C75.634 19.1271 75.7366 18.7554 75.7835 18.3748C75.8245 18.0495 75.9944 17.9943 76.2815 17.9972C77.805 18.006 79.3284 18.003 80.8519 18.003V17.9972L80.8548 17.9943Z"
fill="white"></path>
<path
d="M69.751 31.7769C70.4014 31.8728 70.999 31.9744 71.5967 32.0412C75.7891 32.5176 79.8409 31.9889 83.7287 30.3391C84.8713 29.854 85.9611 29.2644 87.0158 28.6108C87.2824 28.4453 87.3996 28.2797 87.3088 27.9602C87.2209 27.6494 87.1828 27.3241 87.1242 27.0046C87.1037 26.8826 87.01 26.7286 87.1242 26.6444C87.2385 26.5601 87.3644 26.6879 87.4699 26.7548C88.4397 27.3444 89.4065 27.9311 90.3703 28.5295C91.1643 29.0233 91.1614 29.0262 90.5989 29.7843C89.9045 30.7196 89.216 31.6607 88.5217 32.5931C88.4572 32.6802 88.4162 32.8371 88.2756 32.7993C88.1555 32.7674 88.1936 32.6222 88.1701 32.5263C88.0969 32.1865 88.0266 31.8437 87.965 31.501C87.9211 31.2541 87.8127 31.2076 87.5783 31.3034C85.4953 32.1458 83.3332 32.6919 81.1066 32.991C77.3595 33.4994 73.6797 33.2496 70.0938 31.9977C69.9883 31.9599 69.8652 31.9483 69.751 31.7798V31.7769Z"
fill="white"></path>
<path
d="M65.8896 15.0316C66.2324 15.0083 66.54 15.1274 66.8535 15.171C72.5343 15.9756 77.8634 15.081 82.7443 11.973C83.0432 11.7813 83.1252 11.5925 83.0314 11.2642C82.9435 10.9534 82.8996 10.6281 82.8439 10.3086C82.8293 10.2244 82.7648 10.114 82.8644 10.053C82.9582 9.99781 83.0432 10.085 83.1193 10.1314C84.1096 10.7327 85.094 11.3369 86.0813 11.9381C86.2893 12.0659 86.4973 12.1995 86.7082 12.3244C86.8811 12.4261 86.8899 12.5423 86.7698 12.6933C85.9026 13.8058 85.0412 14.9212 84.174 16.0337C84.1272 16.0947 84.0861 16.1905 83.9865 16.1586C83.8898 16.1295 83.9016 16.0279 83.8869 15.9524C83.8107 15.5893 83.7346 15.2262 83.6672 14.8602C83.6262 14.6365 83.5676 14.5378 83.301 14.6453C81.3029 15.444 79.2316 15.9698 77.0988 16.2544C75.1065 16.5188 73.1114 16.5449 71.1104 16.3271C69.4375 16.1441 67.8057 15.8013 66.2207 15.2407C66.1064 15.2 65.9629 15.203 65.8896 15.0345V15.0316Z"
fill="white"></path>
<path
d="M67.8024 37.6762C68.1276 37.1302 68.4997 36.6073 68.7663 36.0351C69.0592 35.4048 69.4577 35.0766 70.1725 35.2218C70.2165 35.2305 70.2663 35.2218 70.3132 35.2218C70.7175 35.2276 70.7468 35.2567 70.6764 35.643C70.4743 36.7264 70.2663 37.8098 70.0612 38.8933C70.0143 39.1315 69.9674 39.3726 69.9294 39.6136C69.8942 39.8315 69.7829 39.9215 69.5514 39.9302C68.7047 39.9593 68.7047 39.9651 68.8659 39.1344C68.986 38.5099 69.1061 37.8854 69.1559 37.2289C68.9567 37.5717 68.7604 37.9173 68.5612 38.2601C68.3122 38.6929 68.0573 39.1257 67.817 39.5643C67.7057 39.7647 67.5768 39.8954 67.3219 39.8634C67.0612 39.8286 67.067 39.6224 67.0319 39.4481C66.8766 38.6987 66.7242 37.9464 66.5133 37.1883C66.3961 37.8128 66.2789 38.4373 66.1617 39.0647C66.15 39.1228 66.1442 39.1808 66.1354 39.236C66.0035 39.9361 66.0035 39.9215 65.2682 39.9273C64.9371 39.9302 64.8668 39.8199 64.9283 39.5149C65.1568 38.3879 65.3678 37.258 65.5875 36.1281C65.6139 35.9915 65.6402 35.855 65.6695 35.7185C65.7379 35.3835 65.9381 35.216 66.2701 35.216C66.9303 35.216 67.32 35.5336 67.4391 36.1687C67.5329 36.6596 67.6325 37.1476 67.7291 37.6356C67.7555 37.6472 67.7819 37.6559 67.8082 37.6675L67.8024 37.6762Z"
fill="white"></path>
<path
d="M58.6563 37.9842C58.6681 36.3082 59.8868 35.1115 61.548 35.1521C62.5499 35.1754 63.2999 35.7941 63.4406 36.7787C63.6691 38.3763 62.4562 40.1656 60.423 39.9884C59.3126 39.8925 58.6475 39.1199 58.6563 37.9871V37.9842ZM59.8165 37.8099C59.8048 38.2543 59.8985 38.6551 60.3556 38.8498C60.8155 39.0444 61.2609 38.9747 61.6388 38.658C62.1368 38.2398 62.3478 37.685 62.2628 37.0431C62.1749 36.3605 61.6505 36.0264 60.9737 36.2007C60.297 36.375 59.8282 37.0256 59.8136 37.8099H59.8165Z"
fill="white"></path>
<path
d="M34.8758 39.9274C34.4305 39.9274 33.9852 39.9245 33.5399 39.9274C33.3143 39.9303 33.2176 39.8606 33.2645 39.6166C33.5311 38.2369 33.7889 36.8572 34.0438 35.4775C34.0789 35.2945 34.1727 35.219 34.3543 35.2219C35.2684 35.2219 36.1825 35.2219 37.0936 35.2219C37.3133 35.2219 37.3924 35.3119 37.3397 35.524C37.3221 35.5908 37.3192 35.6605 37.3075 35.7302C37.245 36.0633 37.0428 36.2298 36.701 36.2298C36.2674 36.2298 35.8338 36.2269 35.4002 36.2298C35.1043 36.2298 34.8143 36.6684 34.9198 36.9443C34.9666 37.0634 35.0721 37.0315 35.16 37.0315C35.6522 37.0344 36.1444 37.0489 36.6366 37.0315C36.9559 37.0199 37.0292 37.1477 36.9559 37.4265C36.9296 37.5282 36.9061 37.6298 36.8944 37.7344C36.871 37.9639 36.745 38.051 36.5165 38.0452C36.036 38.0365 35.5555 38.0394 35.075 38.0452C34.7528 38.0452 34.4334 38.5506 34.5682 38.8382C34.6209 38.9515 34.7264 38.9166 34.8143 38.9195C35.3416 38.9224 35.869 38.9311 36.3963 38.9195C36.6483 38.9137 36.745 39.0037 36.6835 39.2477C36.6747 39.2826 36.6747 39.3174 36.6688 39.3523C36.6024 39.7415 36.3661 39.9361 35.9598 39.9361C35.5965 39.9361 35.2332 39.9361 34.87 39.9361L34.8758 39.9274Z"
fill="white"></path>
<path
d="M78.8237 38.0422C77.1361 38.0422 75.4516 38.0422 73.764 38.0422C73.2806 38.0422 73.2689 38.0277 73.3539 37.5804C73.4281 37.1776 73.6732 36.9762 74.0892 36.9762C77.4145 36.9762 80.7397 36.9762 84.0649 36.9762C84.5776 36.9762 84.5835 36.9849 84.4809 37.4874C84.4067 37.8553 84.1831 38.0393 83.81 38.0393C82.146 38.0393 80.4848 38.0393 78.8207 38.0393L78.8237 38.0422Z"
fill="white"></path>
<path
d="M29.0368 36.9792C29.4616 36.5377 29.904 36.1078 30.3083 35.6489C30.5954 35.3236 30.9147 35.158 31.3512 35.2248C31.5739 35.2597 31.9167 35.1115 31.9928 35.3061C32.0661 35.4891 31.735 35.6489 31.5768 35.8086C31.1374 36.2589 30.695 36.7062 30.2321 37.1332C30.0299 37.3191 30.0182 37.473 30.1501 37.7025C30.5075 38.3299 30.8356 38.9689 31.1872 39.5992C31.3219 39.8403 31.2721 39.9332 30.9909 39.9245C29.8161 39.8984 30.1266 40.1017 29.6051 39.0967C29.4997 38.8905 29.3854 38.6842 29.3004 38.4693C29.1774 38.1643 29.0485 38.2224 28.8522 38.4112C28.6178 38.6378 28.6178 38.9369 28.5621 39.2129C28.4039 39.9942 28.6002 39.9216 27.6129 39.9245C27.358 39.9245 27.2906 39.8229 27.3405 39.5789C27.5543 38.4867 27.7565 37.3917 27.9616 36.2966C27.985 36.1717 28.0055 36.0439 28.0289 35.919C28.1637 35.2016 28.3248 35.0999 29.069 35.2219C29.3092 35.2626 29.2623 35.4136 29.2389 35.5588C29.1569 36.0207 29.069 36.4825 28.9811 36.9444C29.0016 36.956 29.0192 36.9647 29.0397 36.9763L29.0368 36.9792Z"
fill="white"></path>
<path
d="M45.7943 39.9971C45.267 39.9738 44.7133 39.8664 44.2445 39.4859C44.0424 39.3203 43.9955 39.1605 44.1918 38.9659C44.2093 38.9485 44.2211 38.9311 44.2386 38.9136C44.3881 38.751 44.5082 38.5157 44.6928 38.4431C44.9008 38.3589 45.0092 38.6609 45.1937 38.7539C45.5951 38.9543 46.0023 39.0618 46.4447 38.9107C46.6234 38.8497 46.7582 38.7365 46.767 38.5418C46.7758 38.3443 46.6264 38.2543 46.4652 38.2049C46.143 38.1032 45.809 38.0306 45.4896 37.9202C44.6049 37.6124 44.3383 36.8571 44.8129 36.0526C45.2025 35.3961 46.0609 35.0446 46.9604 35.1753C47.3588 35.2334 47.7309 35.3612 48.0619 35.5965C48.2377 35.7214 48.3051 35.8434 48.1322 36.0177C48.0824 36.0671 48.0443 36.1281 48.0004 36.1804C47.7719 36.4515 47.5024 36.5125 47.1918 36.3634C46.89 36.2181 46.5766 36.1339 46.2396 36.1775C46.017 36.2065 45.8119 36.3024 45.7826 36.5405C45.7504 36.7845 45.9818 36.8281 46.1547 36.8833C46.4096 36.9675 46.6762 37.0227 46.9311 37.1069C47.4115 37.2667 47.8715 37.47 47.9389 38.0481C48.0151 38.7219 47.7924 39.2883 47.1977 39.6659C46.7904 39.9245 46.3305 40 45.7973 40.0029L45.7943 39.9971Z"
fill="white"></path>
<path
d="M5.07682 38.0422C3.51821 38.0422 1.96253 38.0422 0.403916 38.0422C-0.0384717 38.0422 -0.0443311 38.0335 0.0435605 37.6094C0.131452 37.1873 0.398057 36.9762 0.843374 36.9762C3.84341 36.9762 6.84051 36.9762 9.84054 36.9762C10.2175 36.9762 10.3708 37.1553 10.3005 37.5136C10.2302 37.8718 10.0124 38.047 9.64718 38.0393C8.12373 38.0393 6.60027 38.0393 5.07975 38.0393L5.07682 38.0422Z"
fill="white"></path>
<path
d="M52.6826 37.9812C52.6914 36.0613 54.5401 34.6757 56.2422 35.2712C56.6524 35.4135 56.9307 35.6953 57.1387 36.0613C57.25 36.2559 57.209 36.3895 56.9922 36.4679C56.9043 36.4999 56.8135 36.5318 56.7373 36.5812C56.4385 36.7729 56.2159 36.7584 55.9815 36.4447C55.7412 36.1194 55.3574 36.1048 54.9883 36.2152C54.1797 36.4505 53.6436 37.4526 53.8867 38.2543C54.1182 39.0182 55.0821 39.2041 55.7149 38.6145C55.8174 38.5186 55.8789 38.292 56.0518 38.3618C56.3067 38.4663 56.5381 38.6348 56.7696 38.7887C56.837 38.8352 56.7842 38.9165 56.7432 38.9746C56.2627 39.6253 55.6153 39.9767 54.8008 39.9942C54.0274 40.0116 53.374 39.7734 52.9551 39.0763C52.7412 38.7248 52.668 38.3443 52.6855 37.9812H52.6826Z"
fill="white"></path>
<path
d="M21.4606 37.8941C21.4635 36.2966 22.7731 35.0563 24.4636 35.1579C25.1052 35.1957 25.5945 35.4978 25.9197 36.0555C26.0368 36.2559 26.0427 36.4011 25.782 36.4737C25.6823 36.5028 25.5798 36.5435 25.489 36.5928C25.2165 36.7497 25.0232 36.7729 24.7976 36.4592C24.5632 36.131 24.156 36.1019 23.7692 36.2094C22.902 36.4476 22.363 37.5368 22.697 38.3705C22.9665 39.0473 23.9245 39.1751 24.4958 38.6116C24.5954 38.5128 24.6511 38.2979 24.8415 38.3734C25.0993 38.478 25.3513 38.6145 25.5534 38.8091C25.6238 38.8788 25.5359 38.9572 25.4919 39.024C24.8298 40 23.2331 40.3108 22.2546 39.6427C21.6745 39.2477 21.446 38.6726 21.4606 37.8912V37.8941Z"
fill="white"></path>
<path
d="M14.983 35.2219C15.4986 35.2219 16.0113 35.2277 16.527 35.2219C16.776 35.219 16.8756 35.3119 16.8053 35.5588C16.7907 35.614 16.7877 35.6721 16.776 35.7302C16.7115 36.0632 16.5114 36.2298 16.1754 36.2298C15.4137 36.2298 15.4108 36.2298 15.2672 36.9763C15.1119 37.7954 14.9596 38.6174 14.8102 39.4394C14.7223 39.9216 14.7193 39.9245 14.2301 39.9274C13.7887 39.9274 13.61 39.7086 13.6939 39.271C13.8639 38.3821 14.025 37.4933 14.2066 36.6074C14.2652 36.3198 14.2066 36.1949 13.8873 36.2269C13.6676 36.2472 13.442 36.2298 13.2223 36.2269C13.0435 36.2269 12.9644 36.1397 13.0025 35.9597C13.0084 35.9364 13.0113 35.9132 13.0142 35.8899C13.0728 35.4426 13.3297 35.2199 13.7848 35.2219C13.9605 35.2219 14.1363 35.2219 14.3121 35.2219C14.5348 35.2219 14.7574 35.2219 14.9801 35.2219H14.983Z"
fill="white"></path>
<path
d="M41.2414 35.2219C41.7219 35.2219 42.2024 35.2393 42.6799 35.2161C43.0198 35.1987 43.0959 35.3352 43.011 35.6256C43.0051 35.6489 43.0022 35.6721 42.9993 35.6953C42.9309 36.0517 42.7151 36.2298 42.3518 36.2298C41.4524 36.2298 41.6457 36.1659 41.4875 36.9502C41.3117 37.8245 41.1447 38.7017 40.9953 39.5818C40.9514 39.8403 40.8488 39.9361 40.5852 39.9332C39.633 39.9158 39.759 40.0204 39.9201 39.1432C40.0783 38.2892 40.2424 37.4352 40.4211 36.5813C40.4768 36.3082 40.383 36.2124 40.1193 36.2327C40.049 36.2385 39.9787 36.2327 39.9084 36.2327C39.1203 36.2327 39.1994 36.3169 39.3313 35.5065C39.3664 35.2916 39.4895 35.2219 39.6975 35.2248C40.2131 35.2306 40.7258 35.2248 41.2414 35.2248V35.2219Z"
fill="white"></path>
<path
d="M18.5449 39.9216C18.4511 39.9216 18.3574 39.9216 18.2636 39.9216C18.0644 39.9216 17.9911 39.8374 18.0292 39.637C18.29 38.2689 18.5507 36.9008 18.8027 35.5327C18.8466 35.2887 18.9814 35.219 19.2158 35.2161C20.0214 35.2016 20.0097 35.1928 19.8574 35.9626C19.6347 37.1012 19.4296 38.2427 19.2128 39.3814C19.1103 39.9245 19.1074 39.9216 18.5419 39.9187L18.5449 39.9216Z"
fill="white"></path>
<path
d="M50.9005 39.2506C50.9005 39.6514 50.59 39.9797 50.212 39.9826C49.8839 39.9855 49.629 39.7357 49.6349 39.4133C49.6437 39.0095 49.9864 38.6493 50.3526 38.6522C50.6661 38.6522 50.9005 38.9108 50.9005 39.2506Z"
fill="white"></path>
</g>
<defs>
<clipPath id="clip0_117_3713">
<rect width="91" height="40" fill="white"></rect>
</clipPath>
</defs>
</svg>
</a>
<nav class="nav" id="primaryNav" aria-label="Primary">
<ul class="nav__list">
<li><a class="nav__link" href="index.html">Home</a></li>
<li class="nav__item--has-menu">
<button class="nav__link nav__toggle" type="button" aria-expanded="false" aria-controls="toursMenu">
<span>Tours</span>
<svg class="icon icon--chevron" aria-hidden="true">
<use href="#i-chevron" />
</svg>
</button>
<ul class="nav__submenu" id="toursMenu">
<li><a href="tours.html">All tours</a></li>
<li><a href="tours.html">London</a></li>
<li><a href="tours.html">Nashville</a></li>
<li><a href="tours.html">Sydney</a></li>
<li><a href="tours.html">San Diego</a></li>
<li><a href="tours.html">Paris</a></li>
</ul>
</li>
<li><a class="nav__link" href="blog.html">Weblog</a></li>
<li><a class="nav__link" href="faq.html">FAQ&rsquo;s</a></li>
<li><a class="nav__link" href="contact.html">Contact us</a></li>
<li><a class="nav__link" href="about.html">About us</a></li>
</ul>
</nav>
</div>
<div class="header__actions">
<button class="icon-btn" type="button" aria-label="Search">
<svg class="icon icon--24" aria-hidden="true">
<use href="#i-search" />
</svg>
</button>
<button class="icon-btn" type="button" aria-label="Account">
<svg class="icon icon--24" aria-hidden="true">
<use href="#i-user" />
</svg>
</button>
<a class="btn btn--accent header__cta" href="#availability">
<span>Book now</span>
<svg class="icon" aria-hidden="true">
<use href="#i-arrow-right" />
</svg>
</a>
<button class="burger" id="burger" type="button" aria-label="Open menu" aria-expanded="false"
aria-controls="primaryNav">
<span></span><span></span><span></span>
</button>
</div>
</div>
</header>
<main id="main">
<!-- ============ hero ============ -->
<section class="hero-tour">
<img class="hero-tour__photo" src="assets/hero3.jpg" alt="" fetchpriority="high" />
<div class="hero-tour__sky" aria-hidden="true"></div>
<div class="container hero-tour__inner">
<div class="hero-tour__block">
<nav class="crumbs" aria-label="Breadcrumb">
<ol class="crumbs__list">
<li><a href="index.html">Home</a></li>
<li><a href="tours.html">Tours</a></li>
<li aria-current="page">San Diego Tour</li>
</ol>
</nav>
<p class="hero-tour__kicker">Welcome to</p>
<div class="hero-tour__stage">
<h1 class="hero-tour__word">San Diego</h1>
<img class="hero-tour__figure hero-tour__figure--san-diego" src="assets/sandiego.png" alt="" loading="eager" />
</div>
</div>
</div>
</section>
<!-- ============ tour ============ -->
<section class="section tour">
<div class="container tour__layout">
<div class="tour__main">
<header class="tour-head">
<h2 class="tour-head__title">San Diego Tour</h2>
<div class="tmeta">
<span class="tmeta__item">
<svg class="icon icon--12 tmeta__star" aria-hidden="true">
<use href="#i-star" />
</svg>
<b>4.8</b><i>/5</i>
</span>
<span class="tmeta__rule" aria-hidden="true"></span>
<span class="tmeta__item">
<svg class="icon tmeta__icon" aria-hidden="true">
<use href="#i-location" />
</svg>
San Diego
</span>
<span class="tmeta__rule" aria-hidden="true"></span>
<span class="tmeta__item">
<svg class="icon tmeta__icon" aria-hidden="true">
<use href="#i-person" />
</svg>
from Mr. Bill
</span>
</div>
</header>
<ul class="facts">
<li class="fact">
<svg class="icon fact__icon" aria-hidden="true">
<use href="#i-duration" />
</svg>
<div class="fact__text">
<span class="fact__k">Duration</span>
<span class="fact__v">1h 30m</span>
</div>
</li>
<li class="fact">
<svg class="icon fact__icon" aria-hidden="true">
<use href="#i-person" />
</svg>
<div class="fact__text">
<span class="fact__k">Max Travelers</span>
<span class="fact__v">15 people</span>
</div>
</li>
<li class="fact">
<svg class="icon fact__icon" aria-hidden="true">
<use href="#i-shield-check" />
</svg>
<div class="fact__text">
<span class="fact__k">Free Cancellation</span>
<span class="fact__v">Up to 24 hrs</span>
</div>
</li>
<li class="fact">
<svg class="icon fact__icon" aria-hidden="true">
<use href="#i-grid" />
</svg>
<div class="fact__text">
<span class="fact__k">Category</span>
<span class="fact__v">Best Conversion</span>
</div>
</li>
</ul>
<section class="tour__block">
<h3 class="tour__ct">Overview</h3>
<p class="tour__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed
do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit
amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem
ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua</p>
<p class="tour__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed
do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
</section>
<section class="tour__block">
<h3 class="tour__ct">Gallery</h3>
<div class="gallery">
<img class="gallery__hero" src="assets/tour-san-diego.png" alt="A palm-lined avenue" loading="lazy" />
<img src="assets/liked-san-diego.png" alt="Palm trees against the city skyline" loading="lazy" />
<img src="assets/city-san-diego.png" alt="San Diego skyline" loading="lazy" />
<img src="assets/city-london.png" alt="Big Ben behind a red double-decker bus" loading="lazy" />
<img src="assets/liked-paris.png" alt="Paris landmark" loading="lazy" />
</div>
</section>
<div class="lists">
<section class="ilist">
<h3 class="tour__ct">Whats included</h3>
<ul class="ilist__items">
<li>
<span class="tick tick--yes" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-check" />
</svg>
</span>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.</p>
</li>
<li>
<span class="tick tick--yes" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-check" />
</svg>
</span>
<p>ed do eiusmod tempor incididunt ut labore et dolo</p>
</li>
<li>
<span class="tick tick--yes" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-check" />
</svg>
</span>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.</p>
</li>
<li>
<span class="tick tick--yes" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-check" />
</svg>
</span>
<p>ed do eiusmod tempor incididunt ut labore et dolo</p>
</li>
</ul>
</section>
<section class="ilist">
<h3 class="tour__ct">Whats Not included</h3>
<ul class="ilist__items">
<li>
<span class="tick tick--no" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-x" />
</svg>
</span>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.</p>
</li>
<li>
<span class="tick tick--no" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-x" />
</svg>
</span>
<p>ed do eiusmod tempor incididunt ut labore et dolo</p>
</li>
<li>
<span class="tick tick--no" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-x" />
</svg>
</span>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.</p>
</li>
</ul>
</section>
</div>
<section class="tour__block">
<h3 class="tour__ct">Good to know</h3>
<ul class="notes">
<li class="note">
<svg class="icon note__icon" aria-hidden="true">
<use href="#i-info" />
</svg>
<p>Public transportation options are available nearby</p>
</li>
<li class="note">
<svg class="icon note__icon" aria-hidden="true">
<use href="#i-info" />
</svg>
<p>Infants are required to sit on an adult&rsquo;s lap</p>
</li>
<li class="note">
<svg class="icon note__icon" aria-hidden="true">
<use href="#i-info" />
</svg>
<p>Not recommended for travelers with spinal injuries</p>
</li>
<li class="note">
<svg class="icon note__icon" aria-hidden="true">
<use href="#i-info" />
</svg>
<p>Not recommended for travelers with spinal injuries</p>
</li>
<li class="note">
<svg class="icon note__icon" aria-hidden="true">
<use href="#i-info" />
</svg>
<p>Public transportation options are available nearby</p>
</li>
<li class="note">
<svg class="icon note__icon" aria-hidden="true">
<use href="#i-info" />
</svg>
<p>Infants are required to sit on an adult&rsquo;s lap</p>
</li>
</ul>
</section>
<section class="tour__block">
<h3 class="tour__ct">Cancellation Policy</h3>
<p class="tour__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.</p>
<div class="policy">
<div class="statcard statcard--yes">
<svg class="icon icon--12 statcard__icon" aria-hidden="true">
<use href="#i-check" />
</svg>
<div class="statcard__text">
<span class="statcard__k">100% Refund</span>
<span class="statcard__v">24 hours or more before the start time</span>
</div>
</div>
<div class="statcard statcard--no">
<svg class="icon icon--12 statcard__icon" aria-hidden="true">
<use href="#i-x" />
</svg>
<div class="statcard__text">
<span class="statcard__k">0% Refund</span>
<span class="statcard__v">Less than 24 hours before the start time</span>
</div>
</div>
</div>
</section>
</div>
<aside class="tour__aside">
<div class="bookcard">
<h2 class="bookcard__title">
<svg class="icon" aria-hidden="true">
<use href="#i-info" />
</svg>
Tour Details
</h2>
<form class="bookcard__price" id="availability" novalidate>
<p class="price">
<span class="price__k">From</span>
<span class="price__v">$30</span>
<span class="price__unit">USD / Per person</span>
</p>
<button class="btn btn--dark bookcard__cta" type="submit">Check Availability</button>
</form>
<div class="statcard statcard--teal">
<svg class="icon statcard__icon" aria-hidden="true">
<use href="#i-shield-check" />
</svg>
<div class="statcard__text">
<span class="statcard__k">Free Cancellation</span>
<span class="statcard__v">Up to 24 hrs</span>
</div>
</div>
<div class="statcard statcard--yes">
<svg class="icon statcard__icon" aria-hidden="true">
<use href="#i-shield-check" />
</svg>
<div class="statcard__text">
<span class="statcard__k">Reserve now, pay later!</span>
<span class="statcard__v">Secure your spot today</span>
</div>
</div>
</div>
</aside>
</div>
</section>
</main>
<!-- ============ footer ============ -->
<footer class="footer" id="footer">
<a class="ring-badge ring-badge--top" href="#main" aria-label="Back to top">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">BACK TO TOP &#183; </textPath>
</text>
</svg>
<span class="ring-badge__dot">
<svg class="icon" aria-hidden="true">
<use href="#i-arrow-up" />
</svg>
</span>
</a>
<div class="container footer__inner">
<div class="footer__brand">
<span class="footer__logo">
<svg class="logo" viewBox="0 0 91 40" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Logo">
<g clip-path="url(#clip0_117_3713)">
<path
d="M70.0559 6.63419C69.9035 7.36616 69.76 8.05456 69.6194 8.74587C69.2766 10.4306 68.9338 12.1153 68.6027 13.8C68.5471 14.0759 68.424 14.195 68.1311 14.1892C67.217 14.1776 66.3029 14.1863 65.3888 14.1863C65.0216 14.1863 64.8752 14.0023 64.9494 13.6344C65.2892 11.9381 65.632 10.2418 65.9719 8.54545C66.5021 5.90221 67.0324 3.26188 67.551 0.618649C67.6037 0.348516 67.7209 0.229425 67.9934 0.252662C68.8371 0.316565 69.678 0.235234 70.5217 0.243948C70.9289 0.249757 71.175 0.365944 71.3625 0.758072C72.4407 3.01499 73.551 5.25738 74.6526 7.50268C74.7053 7.61306 74.7288 7.74667 74.8929 7.83671C74.9749 7.44749 75.0569 7.0786 75.1302 6.70971C75.5286 4.72873 75.9212 2.74776 76.3196 0.763881C76.4192 0.272995 76.4397 0.243948 76.9349 0.255567C77.8343 0.272995 78.7366 0.272995 79.6361 0.264281C80.1195 0.258471 80.1458 0.316565 80.0521 0.769691C79.1527 5.11505 78.2474 9.45751 77.3567 13.8058C77.2923 14.1166 77.1575 14.2037 76.8645 14.2008C75.9856 14.1892 75.1067 14.1863 74.2278 14.2008C73.926 14.2066 73.759 14.0904 73.6331 13.8261C72.5374 11.5663 71.4299 9.30937 70.3254 7.05246C70.261 6.92465 70.2229 6.77361 70.0559 6.6429V6.63419Z"
fill="white"></path>
<path
d="M25.5852 14.4942C24.0706 14.5029 22.6584 14.1834 21.4426 13.2249C20.218 12.2605 19.5764 10.9825 19.4299 9.45462C19.0314 5.2661 22.1252 0.682561 27.2552 0.0783925C28.6204 -0.0842682 29.9739 -0.0232704 31.2659 0.502472C33.2464 1.30706 34.3363 2.79715 34.5853 4.8885C35.0658 8.90564 31.887 13.8435 26.7776 14.4303C26.3792 14.4768 25.9837 14.4855 25.5852 14.4942ZM30.6068 6.2014C30.6068 6.05036 30.6155 5.89932 30.6068 5.74828C30.5247 4.54866 29.7015 3.59012 28.5589 3.35484C27.5452 3.14571 26.5843 3.3258 25.7317 3.87478C23.9358 5.03664 23.2473 6.75619 23.4289 8.81559C23.5461 10.1575 24.425 11.0202 25.7288 11.2148C26.5901 11.3426 27.4192 11.1771 28.1546 10.7152C29.8157 9.66956 30.5247 8.09814 30.6068 6.20431V6.2014Z"
fill="white"></path>
<path
d="M31.9078 23.3679C31.8873 27.3705 29.107 30.9636 25.3159 31.8698C23.4995 32.3055 21.6889 32.3346 19.9428 31.5706C18.1176 30.7719 17.0717 29.3544 16.8314 27.4083C16.348 23.455 18.7855 19.6035 22.5766 18.2383C24.188 17.6573 25.8374 17.4831 27.5161 17.8607C30.3316 18.4939 31.9224 20.5039 31.9078 23.3679ZM27.9321 23.9343C27.9321 23.7716 27.9439 23.609 27.9321 23.4463C27.8208 22.0695 26.9184 21.111 25.6001 20.9745C24.8383 20.896 24.1118 21.0296 23.4145 21.3521C21.3139 22.328 20.3412 25.2675 20.9008 27.0858C21.1908 28.0299 21.8266 28.6398 22.8051 28.8461C23.7895 29.0523 24.7329 28.8838 25.5708 28.3552C27.1909 27.3327 27.8384 25.7671 27.9321 23.9314V23.9343Z"
fill="white"></path>
<path
d="M58.5507 0.0115716C60.0009 -0.00876093 61.2607 0.243944 62.3915 0.964298C63.83 1.88217 64.5859 3.21541 64.75 4.88558C65.122 8.63549 62.7783 12.7049 58.7792 14.0411C56.9569 14.651 55.1024 14.7324 53.2713 14.0556C51.1766 13.28 49.7937 11.3862 49.7557 9.16704C49.6912 5.3358 51.4051 2.53572 54.8592 0.807447C55.9549 0.261372 57.2733 0.00866699 58.5536 0.00866699L58.5507 0.0115716ZM60.8417 6.23044C60.8417 6.09101 60.8505 5.95159 60.8417 5.81217C60.7685 4.66773 60.08 3.72082 59.0985 3.42454C58.2079 3.15441 57.3378 3.22993 56.494 3.60172C54.5282 4.46731 53.4178 6.79103 53.7371 8.93177C53.9305 10.2243 54.7508 11.0144 56.0048 11.2119C56.6903 11.3194 57.37 11.2293 57.9911 10.9244C59.9482 9.96582 60.6952 8.27241 60.8388 6.22753L60.8417 6.23044Z"
fill="white"></path>
<path
d="M52.5947 32.1313C51.2353 32.1488 50.0048 31.9077 48.8915 31.2367C47.4149 30.3479 46.6444 28.9943 46.4364 27.3299C45.9969 23.8647 48.1122 20.0044 51.5898 18.4795C53.8046 17.5093 56.0869 17.2973 58.3721 18.2819C60.1328 19.043 61.1231 20.4285 61.3604 22.2904C61.6885 24.8552 60.9238 27.1266 59.2861 29.125C57.7012 31.0595 55.0293 32.201 52.5976 32.1313H52.5947ZM53.1718 28.9043C54.0126 28.9362 54.8095 28.669 55.4804 28.1229C57.0683 26.8332 57.707 25.1456 57.4463 23.1414C57.2969 21.9883 56.4414 21.1488 55.3076 20.9891C54.3378 20.8526 53.4003 21.0094 52.5859 21.5729C50.9716 22.6912 50.3036 24.2888 50.33 26.1971C50.3534 27.8383 51.4726 28.9014 53.1689 28.9014L53.1718 28.9043Z"
fill="white"></path>
<path
d="M11.6694 5.54499C12.3843 5.54499 13.0991 5.52466 13.814 5.55371C14.189 5.56823 14.3149 5.4259 14.3794 5.07444C14.6607 3.60178 14.9741 2.13783 15.2642 0.668076C15.3169 0.392134 15.4429 0.261425 15.7271 0.261425C16.7788 0.261425 17.8306 0.25852 18.8824 0.255615C19.1431 0.255615 19.2222 0.365992 19.1666 0.630316C18.4488 4.06362 17.7369 7.49692 17.0279 10.9302C16.8286 11.8859 16.6265 12.8386 16.4449 13.7971C16.3921 14.076 16.2749 14.1921 15.982 14.1892C14.9624 14.1776 13.9429 14.1892 12.9233 14.1834C12.5395 14.1834 12.5014 14.1341 12.5806 13.7448C12.8794 12.278 13.1811 10.8111 13.4829 9.34428C13.5767 8.89115 13.5767 8.88534 13.1284 8.88534C11.6518 8.88534 10.1753 8.89115 8.7016 8.87663C8.37934 8.87663 8.25629 8.98701 8.19476 9.30071C7.90472 10.8169 7.58538 12.3274 7.28362 13.8436C7.23382 14.0934 7.11956 14.1951 6.85881 14.1921C5.82755 14.1834 4.79629 14.1834 3.76503 14.1921C3.46327 14.1921 3.38416 14.0934 3.44276 13.7942C3.95546 11.2672 4.45351 8.74011 4.95742 6.21016C5.32364 4.37732 5.69571 2.54448 6.05021 0.708741C6.1088 0.403753 6.22892 0.278852 6.55412 0.284662C7.59417 0.30209 8.63422 0.29628 9.6772 0.290471C9.93209 0.290471 10.0083 0.374706 9.95552 0.624506C9.6479 2.09136 9.35493 3.55821 9.04731 5.02506C8.94184 5.53337 8.94477 5.5508 9.48384 5.55371C10.2104 5.55371 10.937 5.55371 11.6636 5.55371L11.6694 5.54499Z"
fill="white"></path>
<path
d="M8.30004 26.537C7.55003 26.537 6.80002 26.5486 6.05002 26.5311C5.76876 26.5253 5.66036 26.6328 5.60763 26.8971C5.31173 28.425 4.99825 29.9499 4.70528 31.4778C4.65254 31.7479 4.53535 31.8438 4.25996 31.8409C3.24042 31.8292 2.22087 31.8263 1.20426 31.8409C0.879063 31.8467 0.799961 31.7479 0.864414 31.4342C1.50895 28.2246 2.1447 25.012 2.78338 21.8024C3.0119 20.6521 3.24921 19.5048 3.46893 18.3516C3.51874 18.0815 3.64179 17.9856 3.91425 17.9915C4.93379 18.0031 5.95334 18.006 6.96995 17.9915C7.29515 17.9856 7.37132 18.0931 7.30687 18.4039C6.99925 19.8708 6.7092 21.3376 6.4133 22.8074C6.35666 23.0901 6.47287 23.2324 6.76194 23.2344C8.23852 23.2344 9.71509 23.2256 11.1887 23.2431C11.5315 23.246 11.6546 23.1298 11.7161 22.8074C12.0003 21.3492 12.3167 19.8969 12.6009 18.4388C12.6683 18.0989 12.8118 17.9856 13.1604 17.9944C14.1565 18.0176 15.1527 18.0118 16.1458 17.9944C16.4593 17.9886 16.5618 18.067 16.4974 18.3923C15.7152 22.1916 14.9417 25.9909 14.1653 29.7902C14.0481 30.3595 13.928 30.9259 13.8226 31.4981C13.7757 31.745 13.6614 31.8496 13.3978 31.8467C12.3665 31.835 11.3352 31.835 10.3069 31.8467C9.96998 31.8496 9.92018 31.7218 9.98463 31.4226C10.2952 29.9441 10.5852 28.4656 10.8841 26.9843C10.9719 26.5428 10.9778 26.5428 10.512 26.5428C9.77369 26.5428 9.0354 26.5428 8.29711 26.5428L8.30004 26.537Z"
fill="white"></path>
<path
d="M41.409 0.252687C42.3202 0.26721 43.536 0.223641 44.7548 0.287543C45.3817 0.319494 45.9882 0.426966 46.5683 0.659339C48.247 1.33031 48.7509 2.55608 48.7451 4.05198C48.7451 4.96404 48.5107 5.84124 48.1093 6.67197C47.1366 8.67909 45.4755 9.7451 43.3251 10.1547C42.1766 10.3754 41.0135 10.2912 39.8563 10.2854C39.4666 10.2854 39.3319 10.4045 39.2674 10.7733C39.0858 11.7784 38.8543 12.7747 38.6639 13.7768C38.6053 14.0905 38.4647 14.1979 38.1453 14.1921C37.1609 14.1776 36.1766 14.1776 35.1951 14.1921C34.8787 14.195 34.782 14.105 34.8494 13.7826C35.7342 9.4372 36.616 5.09184 37.4774 0.743574C37.5535 0.363064 37.7264 0.243973 38.0838 0.246878C39.0916 0.255592 40.0995 0.249782 41.412 0.249782L41.409 0.252687ZM42.1883 3.47395C41.8251 3.47395 41.4618 3.48557 41.1014 3.47104C40.87 3.46233 40.7674 3.54657 40.7206 3.77313C40.5213 4.78685 40.3133 5.79767 40.0995 6.80559C40.0497 7.03796 40.1082 7.128 40.3514 7.1251C41.0428 7.11639 41.7342 7.14253 42.4227 7.11639C43.7001 7.0641 44.4354 6.47446 44.6991 5.34164C44.9657 4.18849 44.4413 3.51461 43.243 3.47976C42.8915 3.46814 42.5399 3.47976 42.1913 3.47976L42.1883 3.47395Z"
fill="white"></path>
<path
d="M38.2882 27.9951C37.8546 27.9951 37.421 28.0038 36.9874 27.9922C36.7442 27.9864 36.6387 28.0793 36.5918 28.3233C36.3956 29.3486 36.1641 30.3682 35.9737 31.3964C35.9122 31.7392 35.7715 31.8554 35.42 31.8467C34.459 31.8234 33.4981 31.8408 32.54 31.8379C32.0947 31.8379 32.0772 31.8147 32.165 31.379C32.7305 28.5789 33.2988 25.7817 33.8643 22.9816C34.1778 21.4335 34.4971 19.8882 34.7989 18.34C34.8487 18.0844 34.9571 17.9915 35.2178 17.9944C37.4913 18.0031 39.7618 17.9769 42.0353 18.0147C43.1105 18.0321 44.1124 18.3458 44.9269 19.101C45.7062 19.8243 45.9435 20.7625 45.9289 21.7617C45.9025 23.4464 45.299 24.922 44.089 26.1129C42.9845 27.1992 41.6163 27.7598 40.0811 27.9399C39.4864 28.0096 38.8887 27.9922 38.2911 27.9951H38.2882ZM38.7833 24.7825C39.088 24.7825 39.3927 24.7883 39.6974 24.7825C40.9396 24.7593 41.6573 24.1871 41.9415 22.9904C42.2023 21.8982 41.6778 21.204 40.5499 21.1779C39.8233 21.1604 39.0968 21.1779 38.3731 21.1691C38.1475 21.1662 38.0362 21.2359 37.9923 21.4654C37.793 22.4791 37.585 23.49 37.3682 24.5008C37.3243 24.7099 37.3946 24.7825 37.5909 24.7825C37.9893 24.7825 38.3878 24.7825 38.7862 24.7825H38.7833Z"
fill="white"></path>
<path
d="M69.259 17.9973C70.7707 17.9973 72.2825 17.9973 73.7913 17.9973C74.2395 17.9973 74.2483 18.0147 74.1546 18.4562C73.9905 19.2288 73.8206 20.0015 73.677 20.777C73.6213 21.0733 73.4866 21.1779 73.1819 21.175C71.4006 21.1633 69.6193 21.1779 67.841 21.1633C67.507 21.1604 67.3547 21.265 67.299 21.5903C67.1994 22.1625 67.0734 22.729 66.9387 23.2954C66.8713 23.58 66.9562 23.6555 67.2463 23.6526C68.8869 23.641 70.5276 23.6468 72.1653 23.6468C72.637 23.6468 72.6545 23.6701 72.5666 24.1174C72.4172 24.8581 72.2532 25.5958 72.1213 26.3365C72.0569 26.6909 71.9192 26.839 71.5237 26.8332C69.9065 26.81 68.2893 26.8332 66.675 26.8187C66.3498 26.8158 66.2267 26.9291 66.1681 27.2341C65.9015 28.6254 65.6056 30.0109 65.342 31.4023C65.2804 31.7218 65.1632 31.8525 64.8175 31.8467C63.8566 31.8263 62.8956 31.8321 61.9347 31.8409C61.6212 31.8438 61.5275 31.7566 61.5948 31.4313C62.3449 27.7569 63.0802 24.0796 63.8214 20.4023C63.9591 19.7197 64.1056 19.0371 64.2316 18.3516C64.2785 18.096 64.3693 17.9827 64.6623 17.9857C66.1974 18.0031 67.7326 17.9944 69.2648 17.9944L69.259 17.9973Z"
fill="white"></path>
<path
d="M80.8548 17.9943C82.3783 17.9943 83.9017 18.0001 85.4252 17.9885C85.7181 17.9885 85.7972 18.067 85.7357 18.3516C85.5541 19.1562 85.3812 19.9637 85.2318 20.7741C85.1761 21.0762 85.0472 21.1778 84.7425 21.1749C82.9613 21.1633 81.18 21.1807 79.3987 21.1633C79.0442 21.1604 78.9007 21.2708 78.8479 21.6164C78.763 22.177 78.6458 22.7376 78.5081 23.2895C78.4319 23.5916 78.5345 23.6497 78.8128 23.6497C80.4534 23.641 82.0941 23.6468 83.7347 23.6497C84.2064 23.6497 84.2122 23.6642 84.1156 24.1261C83.9574 24.8871 83.7933 25.6481 83.6556 26.4149C83.5999 26.7199 83.4769 26.839 83.1488 26.8361C81.5198 26.8216 79.8909 26.8361 78.262 26.8245C77.9339 26.8245 77.7874 26.9058 77.7229 27.2457C77.4622 28.6254 77.1575 29.9993 76.8938 31.379C76.8264 31.7333 76.677 31.8583 76.3137 31.8495C75.3645 31.8263 74.4153 31.835 73.466 31.8437C73.1731 31.8437 73.0735 31.7711 73.1379 31.4545C73.9524 27.4722 74.7522 23.487 75.5579 19.5019C75.634 19.1271 75.7366 18.7554 75.7835 18.3748C75.8245 18.0495 75.9944 17.9943 76.2815 17.9972C77.805 18.006 79.3284 18.003 80.8519 18.003V17.9972L80.8548 17.9943Z"
fill="white"></path>
<path
d="M69.751 31.7769C70.4014 31.8728 70.999 31.9744 71.5967 32.0412C75.7891 32.5176 79.8409 31.9889 83.7287 30.3391C84.8713 29.854 85.9611 29.2644 87.0158 28.6108C87.2824 28.4453 87.3996 28.2797 87.3088 27.9602C87.2209 27.6494 87.1828 27.3241 87.1242 27.0046C87.1037 26.8826 87.01 26.7286 87.1242 26.6444C87.2385 26.5601 87.3644 26.6879 87.4699 26.7548C88.4397 27.3444 89.4065 27.9311 90.3703 28.5295C91.1643 29.0233 91.1614 29.0262 90.5989 29.7843C89.9045 30.7196 89.216 31.6607 88.5217 32.5931C88.4572 32.6802 88.4162 32.8371 88.2756 32.7993C88.1555 32.7674 88.1936 32.6222 88.1701 32.5263C88.0969 32.1865 88.0266 31.8437 87.965 31.501C87.9211 31.2541 87.8127 31.2076 87.5783 31.3034C85.4953 32.1458 83.3332 32.6919 81.1066 32.991C77.3595 33.4994 73.6797 33.2496 70.0938 31.9977C69.9883 31.9599 69.8652 31.9483 69.751 31.7798V31.7769Z"
fill="white"></path>
<path
d="M65.8896 15.0316C66.2324 15.0083 66.54 15.1274 66.8535 15.171C72.5343 15.9756 77.8634 15.081 82.7443 11.973C83.0432 11.7813 83.1252 11.5925 83.0314 11.2642C82.9435 10.9534 82.8996 10.6281 82.8439 10.3086C82.8293 10.2244 82.7648 10.114 82.8644 10.053C82.9582 9.99781 83.0432 10.085 83.1193 10.1314C84.1096 10.7327 85.094 11.3369 86.0813 11.9381C86.2893 12.0659 86.4973 12.1995 86.7082 12.3244C86.8811 12.4261 86.8899 12.5423 86.7698 12.6933C85.9026 13.8058 85.0412 14.9212 84.174 16.0337C84.1272 16.0947 84.0861 16.1905 83.9865 16.1586C83.8898 16.1295 83.9016 16.0279 83.8869 15.9524C83.8107 15.5893 83.7346 15.2262 83.6672 14.8602C83.6262 14.6365 83.5676 14.5378 83.301 14.6453C81.3029 15.444 79.2316 15.9698 77.0988 16.2544C75.1065 16.5188 73.1114 16.5449 71.1104 16.3271C69.4375 16.1441 67.8057 15.8013 66.2207 15.2407C66.1064 15.2 65.9629 15.203 65.8896 15.0345V15.0316Z"
fill="white"></path>
<path
d="M67.8024 37.6762C68.1276 37.1302 68.4997 36.6073 68.7663 36.0351C69.0592 35.4048 69.4577 35.0766 70.1725 35.2218C70.2165 35.2305 70.2663 35.2218 70.3132 35.2218C70.7175 35.2276 70.7468 35.2567 70.6764 35.643C70.4743 36.7264 70.2663 37.8098 70.0612 38.8933C70.0143 39.1315 69.9674 39.3726 69.9294 39.6136C69.8942 39.8315 69.7829 39.9215 69.5514 39.9302C68.7047 39.9593 68.7047 39.9651 68.8659 39.1344C68.986 38.5099 69.1061 37.8854 69.1559 37.2289C68.9567 37.5717 68.7604 37.9173 68.5612 38.2601C68.3122 38.6929 68.0573 39.1257 67.817 39.5643C67.7057 39.7647 67.5768 39.8954 67.3219 39.8634C67.0612 39.8286 67.067 39.6224 67.0319 39.4481C66.8766 38.6987 66.7242 37.9464 66.5133 37.1883C66.3961 37.8128 66.2789 38.4373 66.1617 39.0647C66.15 39.1228 66.1442 39.1808 66.1354 39.236C66.0035 39.9361 66.0035 39.9215 65.2682 39.9273C64.9371 39.9302 64.8668 39.8199 64.9283 39.5149C65.1568 38.3879 65.3678 37.258 65.5875 36.1281C65.6139 35.9915 65.6402 35.855 65.6695 35.7185C65.7379 35.3835 65.9381 35.216 66.2701 35.216C66.9303 35.216 67.32 35.5336 67.4391 36.1687C67.5329 36.6596 67.6325 37.1476 67.7291 37.6356C67.7555 37.6472 67.7819 37.6559 67.8082 37.6675L67.8024 37.6762Z"
fill="white"></path>
<path
d="M58.6563 37.9842C58.6681 36.3082 59.8868 35.1115 61.548 35.1521C62.5499 35.1754 63.2999 35.7941 63.4406 36.7787C63.6691 38.3763 62.4562 40.1656 60.423 39.9884C59.3126 39.8925 58.6475 39.1199 58.6563 37.9871V37.9842ZM59.8165 37.8099C59.8048 38.2543 59.8985 38.6551 60.3556 38.8498C60.8155 39.0444 61.2609 38.9747 61.6388 38.658C62.1368 38.2398 62.3478 37.685 62.2628 37.0431C62.1749 36.3605 61.6505 36.0264 60.9737 36.2007C60.297 36.375 59.8282 37.0256 59.8136 37.8099H59.8165Z"
fill="white"></path>
<path
d="M34.8758 39.9274C34.4305 39.9274 33.9852 39.9245 33.5399 39.9274C33.3143 39.9303 33.2176 39.8606 33.2645 39.6166C33.5311 38.2369 33.7889 36.8572 34.0438 35.4775C34.0789 35.2945 34.1727 35.219 34.3543 35.2219C35.2684 35.2219 36.1825 35.2219 37.0936 35.2219C37.3133 35.2219 37.3924 35.3119 37.3397 35.524C37.3221 35.5908 37.3192 35.6605 37.3075 35.7302C37.245 36.0633 37.0428 36.2298 36.701 36.2298C36.2674 36.2298 35.8338 36.2269 35.4002 36.2298C35.1043 36.2298 34.8143 36.6684 34.9198 36.9443C34.9666 37.0634 35.0721 37.0315 35.16 37.0315C35.6522 37.0344 36.1444 37.0489 36.6366 37.0315C36.9559 37.0199 37.0292 37.1477 36.9559 37.4265C36.9296 37.5282 36.9061 37.6298 36.8944 37.7344C36.871 37.9639 36.745 38.051 36.5165 38.0452C36.036 38.0365 35.5555 38.0394 35.075 38.0452C34.7528 38.0452 34.4334 38.5506 34.5682 38.8382C34.6209 38.9515 34.7264 38.9166 34.8143 38.9195C35.3416 38.9224 35.869 38.9311 36.3963 38.9195C36.6483 38.9137 36.745 39.0037 36.6835 39.2477C36.6747 39.2826 36.6747 39.3174 36.6688 39.3523C36.6024 39.7415 36.3661 39.9361 35.9598 39.9361C35.5965 39.9361 35.2332 39.9361 34.87 39.9361L34.8758 39.9274Z"
fill="white"></path>
<path
d="M78.8237 38.0422C77.1361 38.0422 75.4516 38.0422 73.764 38.0422C73.2806 38.0422 73.2689 38.0277 73.3539 37.5804C73.4281 37.1776 73.6732 36.9762 74.0892 36.9762C77.4145 36.9762 80.7397 36.9762 84.0649 36.9762C84.5776 36.9762 84.5835 36.9849 84.4809 37.4874C84.4067 37.8553 84.1831 38.0393 83.81 38.0393C82.146 38.0393 80.4848 38.0393 78.8207 38.0393L78.8237 38.0422Z"
fill="white"></path>
<path
d="M29.0368 36.9792C29.4616 36.5377 29.904 36.1078 30.3083 35.6489C30.5954 35.3236 30.9147 35.158 31.3512 35.2248C31.5739 35.2597 31.9167 35.1115 31.9928 35.3061C32.0661 35.4891 31.735 35.6489 31.5768 35.8086C31.1374 36.2589 30.695 36.7062 30.2321 37.1332C30.0299 37.3191 30.0182 37.473 30.1501 37.7025C30.5075 38.3299 30.8356 38.9689 31.1872 39.5992C31.3219 39.8403 31.2721 39.9332 30.9909 39.9245C29.8161 39.8984 30.1266 40.1017 29.6051 39.0967C29.4997 38.8905 29.3854 38.6842 29.3004 38.4693C29.1774 38.1643 29.0485 38.2224 28.8522 38.4112C28.6178 38.6378 28.6178 38.9369 28.5621 39.2129C28.4039 39.9942 28.6002 39.9216 27.6129 39.9245C27.358 39.9245 27.2906 39.8229 27.3405 39.5789C27.5543 38.4867 27.7565 37.3917 27.9616 36.2966C27.985 36.1717 28.0055 36.0439 28.0289 35.919C28.1637 35.2016 28.3248 35.0999 29.069 35.2219C29.3092 35.2626 29.2623 35.4136 29.2389 35.5588C29.1569 36.0207 29.069 36.4825 28.9811 36.9444C29.0016 36.956 29.0192 36.9647 29.0397 36.9763L29.0368 36.9792Z"
fill="white"></path>
<path
d="M45.7943 39.9971C45.267 39.9738 44.7133 39.8664 44.2445 39.4859C44.0424 39.3203 43.9955 39.1605 44.1918 38.9659C44.2093 38.9485 44.2211 38.9311 44.2386 38.9136C44.3881 38.751 44.5082 38.5157 44.6928 38.4431C44.9008 38.3589 45.0092 38.6609 45.1937 38.7539C45.5951 38.9543 46.0023 39.0618 46.4447 38.9107C46.6234 38.8497 46.7582 38.7365 46.767 38.5418C46.7758 38.3443 46.6264 38.2543 46.4652 38.2049C46.143 38.1032 45.809 38.0306 45.4896 37.9202C44.6049 37.6124 44.3383 36.8571 44.8129 36.0526C45.2025 35.3961 46.0609 35.0446 46.9604 35.1753C47.3588 35.2334 47.7309 35.3612 48.0619 35.5965C48.2377 35.7214 48.3051 35.8434 48.1322 36.0177C48.0824 36.0671 48.0443 36.1281 48.0004 36.1804C47.7719 36.4515 47.5024 36.5125 47.1918 36.3634C46.89 36.2181 46.5766 36.1339 46.2396 36.1775C46.017 36.2065 45.8119 36.3024 45.7826 36.5405C45.7504 36.7845 45.9818 36.8281 46.1547 36.8833C46.4096 36.9675 46.6762 37.0227 46.9311 37.1069C47.4115 37.2667 47.8715 37.47 47.9389 38.0481C48.0151 38.7219 47.7924 39.2883 47.1977 39.6659C46.7904 39.9245 46.3305 40 45.7973 40.0029L45.7943 39.9971Z"
fill="white"></path>
<path
d="M5.07682 38.0422C3.51821 38.0422 1.96253 38.0422 0.403916 38.0422C-0.0384717 38.0422 -0.0443311 38.0335 0.0435605 37.6094C0.131452 37.1873 0.398057 36.9762 0.843374 36.9762C3.84341 36.9762 6.84051 36.9762 9.84054 36.9762C10.2175 36.9762 10.3708 37.1553 10.3005 37.5136C10.2302 37.8718 10.0124 38.047 9.64718 38.0393C8.12373 38.0393 6.60027 38.0393 5.07975 38.0393L5.07682 38.0422Z"
fill="white"></path>
<path
d="M52.6826 37.9812C52.6914 36.0613 54.5401 34.6757 56.2422 35.2712C56.6524 35.4135 56.9307 35.6953 57.1387 36.0613C57.25 36.2559 57.209 36.3895 56.9922 36.4679C56.9043 36.4999 56.8135 36.5318 56.7373 36.5812C56.4385 36.7729 56.2159 36.7584 55.9815 36.4447C55.7412 36.1194 55.3574 36.1048 54.9883 36.2152C54.1797 36.4505 53.6436 37.4526 53.8867 38.2543C54.1182 39.0182 55.0821 39.2041 55.7149 38.6145C55.8174 38.5186 55.8789 38.292 56.0518 38.3618C56.3067 38.4663 56.5381 38.6348 56.7696 38.7887C56.837 38.8352 56.7842 38.9165 56.7432 38.9746C56.2627 39.6253 55.6153 39.9767 54.8008 39.9942C54.0274 40.0116 53.374 39.7734 52.9551 39.0763C52.7412 38.7248 52.668 38.3443 52.6855 37.9812H52.6826Z"
fill="white"></path>
<path
d="M21.4606 37.8941C21.4635 36.2966 22.7731 35.0563 24.4636 35.1579C25.1052 35.1957 25.5945 35.4978 25.9197 36.0555C26.0368 36.2559 26.0427 36.4011 25.782 36.4737C25.6823 36.5028 25.5798 36.5435 25.489 36.5928C25.2165 36.7497 25.0232 36.7729 24.7976 36.4592C24.5632 36.131 24.156 36.1019 23.7692 36.2094C22.902 36.4476 22.363 37.5368 22.697 38.3705C22.9665 39.0473 23.9245 39.1751 24.4958 38.6116C24.5954 38.5128 24.6511 38.2979 24.8415 38.3734C25.0993 38.478 25.3513 38.6145 25.5534 38.8091C25.6238 38.8788 25.5359 38.9572 25.4919 39.024C24.8298 40 23.2331 40.3108 22.2546 39.6427C21.6745 39.2477 21.446 38.6726 21.4606 37.8912V37.8941Z"
fill="white"></path>
<path
d="M14.983 35.2219C15.4986 35.2219 16.0113 35.2277 16.527 35.2219C16.776 35.219 16.8756 35.3119 16.8053 35.5588C16.7907 35.614 16.7877 35.6721 16.776 35.7302C16.7115 36.0632 16.5114 36.2298 16.1754 36.2298C15.4137 36.2298 15.4108 36.2298 15.2672 36.9763C15.1119 37.7954 14.9596 38.6174 14.8102 39.4394C14.7223 39.9216 14.7193 39.9245 14.2301 39.9274C13.7887 39.9274 13.61 39.7086 13.6939 39.271C13.8639 38.3821 14.025 37.4933 14.2066 36.6074C14.2652 36.3198 14.2066 36.1949 13.8873 36.2269C13.6676 36.2472 13.442 36.2298 13.2223 36.2269C13.0435 36.2269 12.9644 36.1397 13.0025 35.9597C13.0084 35.9364 13.0113 35.9132 13.0142 35.8899C13.0728 35.4426 13.3297 35.2199 13.7848 35.2219C13.9605 35.2219 14.1363 35.2219 14.3121 35.2219C14.5348 35.2219 14.7574 35.2219 14.9801 35.2219H14.983Z"
fill="white"></path>
<path
d="M41.2414 35.2219C41.7219 35.2219 42.2024 35.2393 42.6799 35.2161C43.0198 35.1987 43.0959 35.3352 43.011 35.6256C43.0051 35.6489 43.0022 35.6721 42.9993 35.6953C42.9309 36.0517 42.7151 36.2298 42.3518 36.2298C41.4524 36.2298 41.6457 36.1659 41.4875 36.9502C41.3117 37.8245 41.1447 38.7017 40.9953 39.5818C40.9514 39.8403 40.8488 39.9361 40.5852 39.9332C39.633 39.9158 39.759 40.0204 39.9201 39.1432C40.0783 38.2892 40.2424 37.4352 40.4211 36.5813C40.4768 36.3082 40.383 36.2124 40.1193 36.2327C40.049 36.2385 39.9787 36.2327 39.9084 36.2327C39.1203 36.2327 39.1994 36.3169 39.3313 35.5065C39.3664 35.2916 39.4895 35.2219 39.6975 35.2248C40.2131 35.2306 40.7258 35.2248 41.2414 35.2248V35.2219Z"
fill="white"></path>
<path
d="M18.5449 39.9216C18.4511 39.9216 18.3574 39.9216 18.2636 39.9216C18.0644 39.9216 17.9911 39.8374 18.0292 39.637C18.29 38.2689 18.5507 36.9008 18.8027 35.5327C18.8466 35.2887 18.9814 35.219 19.2158 35.2161C20.0214 35.2016 20.0097 35.1928 19.8574 35.9626C19.6347 37.1012 19.4296 38.2427 19.2128 39.3814C19.1103 39.9245 19.1074 39.9216 18.5419 39.9187L18.5449 39.9216Z"
fill="white"></path>
<path
d="M50.9005 39.2506C50.9005 39.6514 50.59 39.9797 50.212 39.9826C49.8839 39.9855 49.629 39.7357 49.6349 39.4133C49.6437 39.0095 49.9864 38.6493 50.3526 38.6522C50.6661 38.6522 50.9005 38.9108 50.9005 39.2506Z"
fill="white"></path>
</g>
<defs>
<clipPath id="clip0_117_3713">
<rect width="91" height="40" fill="white"></rect>
</clipPath>
</defs>
</svg>
</span>
<p class="footer__about">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet.</p>
</div>
<nav class="footer__cols" aria-label="Footer">
<div class="footer__col">
<h2 class="footer__ct">Quick Access</h2>
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="tours.html">Tours</a></li>
<li><a href="blog.html">Weblog</a></li>
<li><a href="contact.html">Contact us</a></li>
<li><a href="about.html">About us</a></li>
</ul>
</div>
<div class="footer__col">
<h2 class="footer__ct">Tours</h2>
<ul>
<li><a href="tours.html">London</a></li>
<li><a href="tours.html">Nashville</a></li>
<li><a href="tours.html">Sydney</a></li>
<li><a href="tours.html">San Diego</a></li>
<li><a href="tours.html">Paris</a></li>
</ul>
</div>
<div class="footer__col">
<h2 class="footer__ct">User Account</h2>
<ul>
<li><a href="#">Sign in</a></li>
<li><a href="#">Forget Password</a></li>
<li><a href="#">Booking History</a></li>
<li><a href="#">Support</a></li>
<li><a href="#">Dashboard</a></li>
</ul>
</div>
</nav>
</div>
<div class="container footer__bar">
<p class="footer__copy">&copy; 2026 Hop on Hop Off. All rights reserved.</p>
<ul class="socials">
<li><a href="#" aria-label="WhatsApp"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-whatsapp" />
</svg></a></li>
<li><a href="#" aria-label="Instagram"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-instagram" />
</svg></a></li>
<li><a href="#" aria-label="Telegram"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-telegram" />
</svg></a></li>
<li><a href="#" aria-label="Facebook"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-facebook" />
</svg></a></li>
</ul>
</div>
<a class="support" href="#" aria-label="Support">
<svg class="ring-badge__ring support__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">SUPPORT &#183; SUPPORT &#183; SUPPORT &#183; </textPath>
</text>
</svg>
<span class="support__tab">
<svg class="icon icon--24" aria-hidden="true">
<use href="#i-headset" />
</svg>
</span>
</a>
</footer>
<script src="js/main.js"></script>
</body>
</html>

823
new front/tour-sydney.html Normal file
View File

@@ -0,0 +1,823 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Hop On Hop Off &mdash; Sydney Tour</title>
<meta name="description" content="The Sydney hop on hop off tour &mdash; 1h 30m, free cancellation up to 24 hrs, from $30 per person." />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;700;800&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<a class="skip-link" href="#main">Skip to content</a>
<!-- ============ icon sprite ============ -->
<svg class="sprite" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg">
<symbol id="i-arrow-right" viewBox="0 0 16 16" fill="none">
<path d="M2.66699 8H13.3337M9.33366 12L13.3337 8L9.33366 4" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-left" viewBox="0 0 16 16" fill="none">
<path d="M13.333 8H2.66634M6.66634 12L2.66634 8L6.66634 4" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-ne" viewBox="0 0 16 16" fill="none">
<path d="M4 12L12 4M12 10V4H6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-up" viewBox="0 0 16 16" fill="none">
<path d="M8 13.3333L8 2.66659M12 6.66659L8 2.66659L4 6.66659" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-chevron" viewBox="0 0 16 16" fill="none">
<path d="M12.6663 6L7.99967 10L3.33301 6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
</symbol>
<symbol id="i-search" viewBox="0 0 24 24" fill="none">
<circle cx="11.5" cy="11.5" r="9.5" stroke="currentColor" stroke-width="1.5" />
<path d="M18.5 18.5L22 22" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-user" viewBox="0 0 24 24" fill="none">
<circle cx="12" cy="6" r="4" stroke="currentColor" stroke-width="1.5" />
<ellipse cx="12" cy="17" rx="7" ry="4" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-location" viewBox="0 0 16 16" fill="none">
<path
d="M2.66699 6.76224C2.66699 3.76396 5.05481 1.33337 8.00033 1.33337C10.9458 1.33337 13.3337 3.76396 13.3337 6.76224C13.3337 9.73702 11.6314 13.2083 8.97561 14.4497C8.3565 14.7391 7.64415 14.7391 7.02504 14.4497C4.36921 13.2083 2.66699 9.73702 2.66699 6.76224Z"
stroke="currentColor" stroke-width="1.5" />
<circle cx="8" cy="6.66663" r="2" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-calendar" viewBox="0 0 16 16" fill="none">
<path
d="M1.33301 7.99996C1.33301 5.4858 1.33301 4.22872 2.11406 3.44767C2.8951 2.66663 4.15218 2.66663 6.66634 2.66663H9.33301C11.8472 2.66663 13.1042 2.66663 13.8853 3.44767C14.6663 4.22872 14.6663 5.4858 14.6663 7.99996V9.33329C14.6663 11.8475 14.6663 13.1045 13.8853 13.8856C13.1042 14.6666 11.8472 14.6666 9.33301 14.6666H6.66634C4.15218 14.6666 2.8951 14.6666 2.11406 13.8856C1.33301 13.1045 1.33301 11.8475 1.33301 9.33329V7.99996Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M4.66699 2.66663V1.66663" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M11.333 2.66663V1.66663" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M1.66699 6H14.3337" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-seat" viewBox="0 0 16 16" fill="none">
<circle cx="5.99967" cy="4.00004" r="2.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M10 6C11.1046 6 12 5.10457 12 4C12 2.89543 11.1046 2 10 2" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" />
<ellipse cx="5.99967" cy="11.3333" rx="4.66667" ry="2.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M12 9.33337C13.1695 9.58984 14 10.2393 14 11C14 11.6863 13.3242 12.282 12.3333 12.5803"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-mouse" viewBox="0 0 16 16" fill="none">
<path
d="M3.33301 5.99998C3.33301 3.42265 5.42235 1.33331 7.99967 1.33331C10.577 1.33331 12.6663 3.42265 12.6663 5.99998V9.99998C12.6663 12.5773 10.577 14.6666 7.99967 14.6666C5.42235 14.6666 3.33301 12.5773 3.33301 9.99998V5.99998Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M7 5.66669C7 5.1144 7.44772 4.66669 8 4.66669C8.55228 4.66669 9 5.1144 9 5.66669V7.00002C9 7.5523 8.55228 8.00002 8 8.00002C7.44772 8.00002 7 7.5523 7 7.00002V5.66669Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M8 1.33331V4.66665" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-grid" viewBox="0 0 16 16" fill="none">
<path
d="M1.66699 4.33329C1.66699 3.07621 1.66699 2.44767 2.05752 2.05715C2.44804 1.66663 3.07658 1.66663 4.33366 1.66663C5.59074 1.66663 6.21928 1.66663 6.6098 2.05715C7.00033 2.44767 7.00033 3.07621 7.00033 4.33329C7.00033 5.59037 7.00033 6.21891 6.6098 6.60944C6.21928 6.99996 5.59074 6.99996 4.33366 6.99996C3.07658 6.99996 2.44804 6.99996 2.05752 6.60944C1.66699 6.21891 1.66699 5.59037 1.66699 4.33329Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M9 11.6667C9 10.4096 9 9.78105 9.39052 9.39052C9.78105 9 10.4096 9 11.6667 9C12.9237 9 13.5523 9 13.9428 9.39052C14.3333 9.78105 14.3333 10.4096 14.3333 11.6667C14.3333 12.9237 14.3333 13.5523 13.9428 13.9428C13.5523 14.3333 12.9237 14.3333 11.6667 14.3333C10.4096 14.3333 9.78105 14.3333 9.39052 13.9428C9 13.5523 9 12.9237 9 11.6667Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M1.66699 11.6667C1.66699 10.4096 1.66699 9.78105 2.05752 9.39052C2.44804 9 3.07658 9 4.33366 9C5.59074 9 6.21928 9 6.6098 9.39052C7.00033 9.78105 7.00033 10.4096 7.00033 11.6667C7.00033 12.9237 7.00033 13.5523 6.6098 13.9428C6.21928 14.3333 5.59074 14.3333 4.33366 14.3333C3.07658 14.3333 2.44804 14.3333 2.05752 13.9428C1.66699 13.5523 1.66699 12.9237 1.66699 11.6667Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M9 4.33329C9 3.07621 9 2.44767 9.39052 2.05715C9.78105 1.66663 10.4096 1.66663 11.6667 1.66663C12.9237 1.66663 13.5523 1.66663 13.9428 2.05715C14.3333 2.44767 14.3333 3.07621 14.3333 4.33329C14.3333 5.59037 14.3333 6.21891 13.9428 6.60944C13.5523 6.99996 12.9237 6.99996 11.6667 6.99996C10.4096 6.99996 9.78105 6.99996 9.39052 6.60944C9 6.21891 9 5.59037 9 4.33329Z"
stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-price" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="8.00004" r="6.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M8 4V12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M10 6.33335C10 5.41288 9.10457 4.66669 8 4.66669C6.89543 4.66669 6 5.41288 6 6.33335C6 7.25383 6.89543 8.00002 8 8.00002C9.10457 8.00002 10 8.74621 10 9.66669C10 10.5872 9.10457 11.3334 8 11.3334C6.89543 11.3334 6 10.5872 6 9.66669"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-duration" viewBox="0 0 16 16" fill="none">
<path
d="M1.33366 8.00004C1.33366 11.6819 4.31843 14.6667 8.00033 14.6667C11.6822 14.6667 14.667 11.6819 14.667 8.00004C14.667 4.31814 11.6822 1.33337 8.00033 1.33337"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M8 6V8.66667H10.6667" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
<circle cx="7.99967" cy="8.00004" r="6.66667" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-dasharray="0.5 3.5" />
</symbol>
<symbol id="i-sort" viewBox="0 0 16 16" fill="none">
<path d="M2.66699 11.3333H7.33366" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2.66699 8L7.33366 8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2.66699 4.66669L7.33366 4.66669" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M11.333 2.66665L11.333 13.3333M13.333 5.33331L11.333 2.66665L9.33301 5.33331M9.33301 10.6666L11.333 13.3333L13.333 10.6666"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-check" viewBox="0 0 16 16" fill="none">
<path d="M3.33301 8.33333L6.33301 11.3333L12.6663 5" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-info" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="7.99992" r="6.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M8 11.3333V7.33325" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<circle cx="8" cy="5.33333" r="0.666667" fill="currentColor" />
</symbol>
<symbol id="i-person" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="4.00004" r="2.66667" stroke="currentColor" stroke-width="1.5" />
<ellipse cx="7.99967" cy="11.3333" rx="4.66667" ry="2.66667" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-shield-check" viewBox="0 0 16 16" fill="none">
<path
d="M2 6.94448C2 4.81275 2 3.74689 2.25168 3.38831C2.50335 3.02973 3.50555 2.68668 5.50994 2.00057L5.89182 1.86985C6.93666 1.5122 7.45907 1.33337 8 1.33337C8.54093 1.33337 9.06335 1.5122 10.1082 1.86985L10.4901 2.00057C12.4945 2.68668 13.4966 3.02973 13.7483 3.38831C14 3.74689 14 4.81275 14 6.94448C14 7.26647 14 7.61565 14 7.99428C14 11.753 11.174 13.577 9.40096 14.3516C8.91999 14.5617 8.67951 14.6667 8 14.6667C7.32049 14.6667 7.08001 14.5617 6.59904 14.3516C4.82597 13.577 2 11.753 2 7.99428C2 7.61565 2 7.26647 2 6.94448Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M6.33301 8.26663L7.28539 9.33329L9.66634 6.66663" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-x" viewBox="0 0 16 16" fill="none">
<path d="M12.6663 3.33337L3.33301 12.6667M3.33301 3.33337L12.6663 12.6667" stroke="currentColor"
stroke-width="2" stroke-linecap="round" />
</symbol>
<symbol id="i-star" viewBox="0 0 12 12">
<path
d="M4.21205 2.06464C4.94362 0.701584 5.30941 0.0200537 5.87277 0.000515809C6.43613 -0.019022 6.82396 0.636371 7.59964 1.94716L7.80031 2.28628C8.02073 2.65876 8.13095 2.845 8.29997 2.96455C8.46899 3.08409 8.67769 3.12341 9.09509 3.20203L9.4751 3.27362C10.9439 3.55031 11.6784 3.68865 11.8616 4.23622C12.0448 4.78378 11.5555 5.37794 10.5768 6.56625L10.3236 6.87368C10.0455 7.21136 9.90649 7.3802 9.84606 7.58521C9.78563 7.79021 9.81067 8.00818 9.86075 8.44411L9.90634 8.84099C10.0826 10.3751 10.1707 11.1421 9.72055 11.5C9.27043 11.858 8.58018 11.5698 7.19966 10.9934L6.84251 10.8443C6.45021 10.6805 6.25406 10.5986 6.04769 10.6058C5.84132 10.613 5.6481 10.7084 5.26165 10.8991L4.90982 11.0729C3.54988 11.7443 2.86992 12.08 2.40851 11.7536C1.9471 11.4273 2.00982 10.655 2.13527 9.1105L2.16772 8.71092C2.20337 8.27201 2.2212 8.05256 2.15408 7.85197C2.08696 7.65139 1.9425 7.49238 1.65359 7.17437L1.39055 6.88484C0.373843 5.76573 -0.134512 5.20618 0.0304441 4.64653C0.1954 4.08689 0.924422 3.89779 2.38247 3.5196L2.75968 3.42175C3.17401 3.31428 3.38117 3.26054 3.54606 3.12942C3.71095 2.99829 3.8149 2.80462 4.02279 2.41729L4.21205 2.06464Z"
fill="currentColor" />
</symbol>
<symbol id="i-plus" viewBox="0 0 14 14" fill="none">
<path d="M12.75 6.75005L6.75 6.75005M6.75 6.75005L0.75 6.75005M6.75 6.75005L6.75 0.75M6.75 6.75005L6.75 12.75"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-minus" viewBox="0 0 14 14" fill="none">
<path d="M12.75 7L0.75 7" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-headset" viewBox="0 0 24 24" fill="none">
<path d="M21 17V12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12V17" stroke="currentColor"
stroke-width="1.5" />
<path d="M22 15.5V17.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2 15.5V17.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M8 13.8446C8 13.0802 8 12.698 7.82526 12.4323C7.73733 12.2985 7.62061 12.188 7.4844 12.1095C7.21371 11.9535 6.84812 11.9896 6.11694 12.0617C4.88487 12.1831 4.26884 12.2439 3.82737 12.5764C3.60394 12.7448 3.41638 12.9593 3.27646 13.2067C3 13.6955 3 14.3395 3 15.6276V17.1933C3 18.4685 3 19.1061 3.28198 19.5986C3.38752 19.7829 3.51981 19.9491 3.67416 20.0913C4.08652 20.4714 4.68844 20.5901 5.89227 20.8275C6.73944 20.9945 7.16302 21.078 7.47564 20.9021C7.591 20.8372 7.69296 20.7493 7.77572 20.6434C8 20.3565 8 19.9078 8 19.0104V13.8446Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M16 13.8446C16 13.0802 16 12.698 16.1747 12.4323C16.2627 12.2985 16.3794 12.188 16.5156 12.1095C16.7863 11.9535 17.1519 11.9896 17.8831 12.0617C19.1151 12.1831 19.7312 12.2439 20.1726 12.5764C20.3961 12.7448 20.5836 12.9593 20.7235 13.2067C21 13.6955 21 14.3395 21 15.6276V17.1933C21 18.4685 21 19.1061 20.718 19.5986C20.6125 19.7829 20.4802 19.9491 20.3258 20.0913C19.9135 20.4714 19.3116 20.5901 18.1077 20.8275C17.2606 20.9945 16.837 21.078 16.5244 20.9021C16.409 20.8372 16.307 20.7493 16.2243 20.6434C16 20.3565 16 19.9078 16 19.0104V13.8446Z"
stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-whatsapp" viewBox="0 0 20 20">
<path
d="M17 2.875C15.125 1 12.625 0 10 0C4.5 0 0 4.5 0 10C0 11.75 0.500008 13.5 1.37501 15L0 20L5.25002 18.625C6.75002 19.375 8.375 19.875 10 19.875C15.5 19.875 20 15.375 20 9.875C20 7.25 18.875 4.75 17 2.875ZM10 18.25C8.5 18.25 7.00001 17.875 5.75001 17.125L5.49999 17L2.37499 17.875L3.25001 14.875L2.99999 14.5C2.12499 13.125 1.74999 11.625 1.74999 10.125C1.74999 5.625 5.5 1.875 10 1.875C12.25 1.875 14.25 2.75 15.875 4.25C17.5 5.875 18.25 7.875 18.25 10.125C18.25 14.5 14.625 18.25 10 18.25ZM14.5 12C14.25 11.875 13 11.25 12.75 11.25C12.5 11.125 12.375 11.125 12.25 11.375C12.125 11.625 11.625 12.125 11.5 12.375C11.375 12.5 11.25 12.5 11 12.5C10.75 12.375 10 12.125 9.00002 11.25C8.25002 10.625 7.75001 9.75 7.62501 9.5C7.50001 9.25 7.62502 9.125 7.75002 9C7.87502 8.875 8 8.75 8.125 8.625C8.25 8.5 8.25002 8.375 8.37502 8.25C8.50002 8.125 8.37502 8 8.37502 7.875C8.37502 7.75 7.87501 6.5 7.62501 6C7.50001 5.625 7.25002 5.625 7.12502 5.625C7.00002 5.625 6.87498 5.625 6.62498 5.625C6.49998 5.625 6.24998 5.625 5.99998 5.875C5.74998 6.125 5.12501 6.75 5.12501 8C5.12501 9.25 5.99999 10.375 6.12499 10.625C6.24999 10.75 7.87498 13.375 10.375 14.375C12.5 15.25 12.875 15 13.375 15C13.875 15 14.875 14.375 15 13.875C15.25 13.25 15.25 12.75 15.125 12.75C15 12.125 14.75 12.125 14.5 12Z"
fill="currentColor" />
</symbol>
<symbol id="i-instagram" viewBox="0 0 20 20">
<path
d="M10 1.80723C12.6506 1.80723 13.0121 1.80723 14.0964 1.80723C15.0602 1.80723 15.5422 2.04819 15.9036 2.16868C16.3855 2.40964 16.747 2.53012 17.1084 2.89157C17.4699 3.25301 17.7108 3.61446 17.8313 4.09639C17.9518 4.45783 18.0723 4.93976 18.1928 5.90362C18.1928 6.98795 18.1928 7.22892 18.1928 10C18.1928 12.7711 18.1928 13.0121 18.1928 14.0964C18.1928 15.0602 17.9518 15.5422 17.8313 15.9036C17.5904 16.3855 17.4699 16.747 17.1084 17.1084C16.747 17.4699 16.3855 17.7108 15.9036 17.8313C15.5422 17.9518 15.0602 18.0723 14.0964 18.1928C13.0121 18.1928 12.7711 18.1928 10 18.1928C7.22892 18.1928 6.98795 18.1928 5.90362 18.1928C4.93976 18.1928 4.45783 17.9518 4.09639 17.8313C3.61446 17.5904 3.25301 17.4699 2.89157 17.1084C2.53012 16.747 2.28916 16.3855 2.16868 15.9036C2.04819 15.5422 1.92771 15.0602 1.80723 14.0964C1.80723 13.0121 1.80723 12.7711 1.80723 10C1.80723 7.22892 1.80723 6.98795 1.80723 5.90362C1.80723 4.93976 2.04819 4.45783 2.16868 4.09639C2.40964 3.61446 2.53012 3.25301 2.89157 2.89157C3.25301 2.53012 3.61446 2.28916 4.09639 2.16868C4.45783 2.04819 4.93976 1.92771 5.90362 1.80723C6.98795 1.80723 7.3494 1.80723 10 1.80723ZM10 0C7.22892 0 6.98795 0 5.90362 0C4.81928 0 4.09639 0.240965 3.49398 0.481928C2.89157 0.722892 2.28916 1.08434 1.68675 1.68675C1.08434 2.28916 0.843374 2.77109 0.481928 3.49398C0.240965 4.09639 0.120482 4.81928 0 5.90362C0 6.98795 0 7.3494 0 10C0 12.7711 0 13.0121 0 14.0964C0 15.1807 0.240965 15.9036 0.481928 16.506C0.722892 17.1084 1.08434 17.7108 1.68675 18.3133C2.28916 18.9157 2.77109 19.1566 3.49398 19.5181C4.09639 19.759 4.81928 19.8795 5.90362 20C6.98795 20 7.3494 20 10 20C12.6506 20 13.0121 20 14.0964 20C15.1807 20 15.9036 19.759 16.506 19.5181C17.1084 19.2771 17.7108 18.9157 18.3133 18.3133C18.9157 17.7108 19.1566 17.2289 19.5181 16.506C19.759 15.9036 19.8795 15.1807 20 14.0964C20 13.0121 20 12.6506 20 10C20 7.3494 20 6.98795 20 5.90362C20 4.81928 19.759 4.09639 19.5181 3.49398C19.2771 2.89157 18.9157 2.28916 18.3133 1.68675C17.7108 1.08434 17.2289 0.843374 16.506 0.481928C15.9036 0.240965 15.1807 0.120482 14.0964 0C13.0121 0 12.7711 0 10 0Z"
fill="currentColor" />
<path
d="M10 4.81928C7.10843 4.81928 4.81928 7.10843 4.81928 10C4.81928 12.8916 7.10843 15.1807 10 15.1807C12.8916 15.1807 15.1807 12.8916 15.1807 10C15.1807 7.10843 12.8916 4.81928 10 4.81928ZM10 13.3735C8.19277 13.3735 6.62651 11.9277 6.62651 10C6.62651 8.19277 8.07229 6.62651 10 6.62651C11.8072 6.62651 13.3735 8.07229 13.3735 10C13.3735 11.8072 11.8072 13.3735 10 13.3735Z"
fill="currentColor" />
<path
d="M15.3012 5.90362C15.9666 5.90362 16.506 5.3642 16.506 4.6988C16.506 4.03339 15.9666 3.49398 15.3012 3.49398C14.6358 3.49398 14.0964 4.03339 14.0964 4.6988C14.0964 5.3642 14.6358 5.90362 15.3012 5.90362Z"
fill="currentColor" />
</symbol>
<symbol id="i-telegram" viewBox="0 0 20 17">
<path
d="M1.3749 7.31846C6.74359 4.91938 10.3236 3.33777 12.1148 2.57361C17.2292 0.391776 18.2919 0.0127698 18.9846 0.00012133C19.1369 -0.00249777 19.4776 0.0362266 19.6982 0.219862C19.8845 0.37492 19.9358 0.584381 19.9603 0.731393C19.9848 0.878405 20.0154 1.2133 19.9911 1.47498C19.714 4.46174 18.5147 11.7098 17.9046 15.055C17.6465 16.4705 17.1382 16.9451 16.6461 16.9916C15.5766 17.0925 14.7645 16.2667 13.7287 15.5702C12.1078 14.4805 11.1921 13.8021 9.61879 12.7387C7.80053 11.5097 8.97923 10.8343 10.0154 9.73042C10.2866 9.44153 14.9987 5.04555 15.0899 4.64677C15.1013 4.59689 15.1119 4.41098 15.0042 4.31282C14.8965 4.21465 14.7376 4.24822 14.6229 4.27492C14.4604 4.31276 11.871 6.06814 6.85486 9.54107C6.11988 10.0587 5.45416 10.3109 4.8577 10.2977C4.20015 10.2831 2.93528 9.91637 1.99498 9.60288C0.84166 9.21836 -0.0749729 9.01506 0.00484519 8.36203C0.0464194 8.0219 0.503103 7.67404 1.3749 7.31846Z"
fill="currentColor" />
</symbol>
<symbol id="i-facebook" viewBox="0 0 20 20">
<path
d="M20 10C20 4.5 15.5 0 10 0C4.5 0 0 4.5 0 10C0 15 3.625 19.125 8.375 19.875V12.875H5.875V10H8.375V7.75C8.375 5.25 9.875 3.875 12.125 3.875C13.25 3.875 14.375 4.125 14.375 4.125V6.625H13.125C11.875 6.625 11.5 7.375 11.5 8.125V10H14.25L13.75 12.875H11.375V20C16.375 19.25 20 15 20 10Z"
fill="currentColor" />
</symbol>
</svg>
<!-- ============ header ============ -->
<header class="site-header" id="siteHeader">
<div class="container header__inner">
<div class="header__left">
<a class="header__logo" href="index.html" aria-label="Hop On Hop Off — home">
<svg class="logo" viewBox="0 0 91 40" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Logo">
<g clip-path="url(#clip0_117_3713)">
<path
d="M70.0559 6.63419C69.9035 7.36616 69.76 8.05456 69.6194 8.74587C69.2766 10.4306 68.9338 12.1153 68.6027 13.8C68.5471 14.0759 68.424 14.195 68.1311 14.1892C67.217 14.1776 66.3029 14.1863 65.3888 14.1863C65.0216 14.1863 64.8752 14.0023 64.9494 13.6344C65.2892 11.9381 65.632 10.2418 65.9719 8.54545C66.5021 5.90221 67.0324 3.26188 67.551 0.618649C67.6037 0.348516 67.7209 0.229425 67.9934 0.252662C68.8371 0.316565 69.678 0.235234 70.5217 0.243948C70.9289 0.249757 71.175 0.365944 71.3625 0.758072C72.4407 3.01499 73.551 5.25738 74.6526 7.50268C74.7053 7.61306 74.7288 7.74667 74.8929 7.83671C74.9749 7.44749 75.0569 7.0786 75.1302 6.70971C75.5286 4.72873 75.9212 2.74776 76.3196 0.763881C76.4192 0.272995 76.4397 0.243948 76.9349 0.255567C77.8343 0.272995 78.7366 0.272995 79.6361 0.264281C80.1195 0.258471 80.1458 0.316565 80.0521 0.769691C79.1527 5.11505 78.2474 9.45751 77.3567 13.8058C77.2923 14.1166 77.1575 14.2037 76.8645 14.2008C75.9856 14.1892 75.1067 14.1863 74.2278 14.2008C73.926 14.2066 73.759 14.0904 73.6331 13.8261C72.5374 11.5663 71.4299 9.30937 70.3254 7.05246C70.261 6.92465 70.2229 6.77361 70.0559 6.6429V6.63419Z"
fill="white"></path>
<path
d="M25.5852 14.4942C24.0706 14.5029 22.6584 14.1834 21.4426 13.2249C20.218 12.2605 19.5764 10.9825 19.4299 9.45462C19.0314 5.2661 22.1252 0.682561 27.2552 0.0783925C28.6204 -0.0842682 29.9739 -0.0232704 31.2659 0.502472C33.2464 1.30706 34.3363 2.79715 34.5853 4.8885C35.0658 8.90564 31.887 13.8435 26.7776 14.4303C26.3792 14.4768 25.9837 14.4855 25.5852 14.4942ZM30.6068 6.2014C30.6068 6.05036 30.6155 5.89932 30.6068 5.74828C30.5247 4.54866 29.7015 3.59012 28.5589 3.35484C27.5452 3.14571 26.5843 3.3258 25.7317 3.87478C23.9358 5.03664 23.2473 6.75619 23.4289 8.81559C23.5461 10.1575 24.425 11.0202 25.7288 11.2148C26.5901 11.3426 27.4192 11.1771 28.1546 10.7152C29.8157 9.66956 30.5247 8.09814 30.6068 6.20431V6.2014Z"
fill="white"></path>
<path
d="M31.9078 23.3679C31.8873 27.3705 29.107 30.9636 25.3159 31.8698C23.4995 32.3055 21.6889 32.3346 19.9428 31.5706C18.1176 30.7719 17.0717 29.3544 16.8314 27.4083C16.348 23.455 18.7855 19.6035 22.5766 18.2383C24.188 17.6573 25.8374 17.4831 27.5161 17.8607C30.3316 18.4939 31.9224 20.5039 31.9078 23.3679ZM27.9321 23.9343C27.9321 23.7716 27.9439 23.609 27.9321 23.4463C27.8208 22.0695 26.9184 21.111 25.6001 20.9745C24.8383 20.896 24.1118 21.0296 23.4145 21.3521C21.3139 22.328 20.3412 25.2675 20.9008 27.0858C21.1908 28.0299 21.8266 28.6398 22.8051 28.8461C23.7895 29.0523 24.7329 28.8838 25.5708 28.3552C27.1909 27.3327 27.8384 25.7671 27.9321 23.9314V23.9343Z"
fill="white"></path>
<path
d="M58.5507 0.0115716C60.0009 -0.00876093 61.2607 0.243944 62.3915 0.964298C63.83 1.88217 64.5859 3.21541 64.75 4.88558C65.122 8.63549 62.7783 12.7049 58.7792 14.0411C56.9569 14.651 55.1024 14.7324 53.2713 14.0556C51.1766 13.28 49.7937 11.3862 49.7557 9.16704C49.6912 5.3358 51.4051 2.53572 54.8592 0.807447C55.9549 0.261372 57.2733 0.00866699 58.5536 0.00866699L58.5507 0.0115716ZM60.8417 6.23044C60.8417 6.09101 60.8505 5.95159 60.8417 5.81217C60.7685 4.66773 60.08 3.72082 59.0985 3.42454C58.2079 3.15441 57.3378 3.22993 56.494 3.60172C54.5282 4.46731 53.4178 6.79103 53.7371 8.93177C53.9305 10.2243 54.7508 11.0144 56.0048 11.2119C56.6903 11.3194 57.37 11.2293 57.9911 10.9244C59.9482 9.96582 60.6952 8.27241 60.8388 6.22753L60.8417 6.23044Z"
fill="white"></path>
<path
d="M52.5947 32.1313C51.2353 32.1488 50.0048 31.9077 48.8915 31.2367C47.4149 30.3479 46.6444 28.9943 46.4364 27.3299C45.9969 23.8647 48.1122 20.0044 51.5898 18.4795C53.8046 17.5093 56.0869 17.2973 58.3721 18.2819C60.1328 19.043 61.1231 20.4285 61.3604 22.2904C61.6885 24.8552 60.9238 27.1266 59.2861 29.125C57.7012 31.0595 55.0293 32.201 52.5976 32.1313H52.5947ZM53.1718 28.9043C54.0126 28.9362 54.8095 28.669 55.4804 28.1229C57.0683 26.8332 57.707 25.1456 57.4463 23.1414C57.2969 21.9883 56.4414 21.1488 55.3076 20.9891C54.3378 20.8526 53.4003 21.0094 52.5859 21.5729C50.9716 22.6912 50.3036 24.2888 50.33 26.1971C50.3534 27.8383 51.4726 28.9014 53.1689 28.9014L53.1718 28.9043Z"
fill="white"></path>
<path
d="M11.6694 5.54499C12.3843 5.54499 13.0991 5.52466 13.814 5.55371C14.189 5.56823 14.3149 5.4259 14.3794 5.07444C14.6607 3.60178 14.9741 2.13783 15.2642 0.668076C15.3169 0.392134 15.4429 0.261425 15.7271 0.261425C16.7788 0.261425 17.8306 0.25852 18.8824 0.255615C19.1431 0.255615 19.2222 0.365992 19.1666 0.630316C18.4488 4.06362 17.7369 7.49692 17.0279 10.9302C16.8286 11.8859 16.6265 12.8386 16.4449 13.7971C16.3921 14.076 16.2749 14.1921 15.982 14.1892C14.9624 14.1776 13.9429 14.1892 12.9233 14.1834C12.5395 14.1834 12.5014 14.1341 12.5806 13.7448C12.8794 12.278 13.1811 10.8111 13.4829 9.34428C13.5767 8.89115 13.5767 8.88534 13.1284 8.88534C11.6518 8.88534 10.1753 8.89115 8.7016 8.87663C8.37934 8.87663 8.25629 8.98701 8.19476 9.30071C7.90472 10.8169 7.58538 12.3274 7.28362 13.8436C7.23382 14.0934 7.11956 14.1951 6.85881 14.1921C5.82755 14.1834 4.79629 14.1834 3.76503 14.1921C3.46327 14.1921 3.38416 14.0934 3.44276 13.7942C3.95546 11.2672 4.45351 8.74011 4.95742 6.21016C5.32364 4.37732 5.69571 2.54448 6.05021 0.708741C6.1088 0.403753 6.22892 0.278852 6.55412 0.284662C7.59417 0.30209 8.63422 0.29628 9.6772 0.290471C9.93209 0.290471 10.0083 0.374706 9.95552 0.624506C9.6479 2.09136 9.35493 3.55821 9.04731 5.02506C8.94184 5.53337 8.94477 5.5508 9.48384 5.55371C10.2104 5.55371 10.937 5.55371 11.6636 5.55371L11.6694 5.54499Z"
fill="white"></path>
<path
d="M8.30004 26.537C7.55003 26.537 6.80002 26.5486 6.05002 26.5311C5.76876 26.5253 5.66036 26.6328 5.60763 26.8971C5.31173 28.425 4.99825 29.9499 4.70528 31.4778C4.65254 31.7479 4.53535 31.8438 4.25996 31.8409C3.24042 31.8292 2.22087 31.8263 1.20426 31.8409C0.879063 31.8467 0.799961 31.7479 0.864414 31.4342C1.50895 28.2246 2.1447 25.012 2.78338 21.8024C3.0119 20.6521 3.24921 19.5048 3.46893 18.3516C3.51874 18.0815 3.64179 17.9856 3.91425 17.9915C4.93379 18.0031 5.95334 18.006 6.96995 17.9915C7.29515 17.9856 7.37132 18.0931 7.30687 18.4039C6.99925 19.8708 6.7092 21.3376 6.4133 22.8074C6.35666 23.0901 6.47287 23.2324 6.76194 23.2344C8.23852 23.2344 9.71509 23.2256 11.1887 23.2431C11.5315 23.246 11.6546 23.1298 11.7161 22.8074C12.0003 21.3492 12.3167 19.8969 12.6009 18.4388C12.6683 18.0989 12.8118 17.9856 13.1604 17.9944C14.1565 18.0176 15.1527 18.0118 16.1458 17.9944C16.4593 17.9886 16.5618 18.067 16.4974 18.3923C15.7152 22.1916 14.9417 25.9909 14.1653 29.7902C14.0481 30.3595 13.928 30.9259 13.8226 31.4981C13.7757 31.745 13.6614 31.8496 13.3978 31.8467C12.3665 31.835 11.3352 31.835 10.3069 31.8467C9.96998 31.8496 9.92018 31.7218 9.98463 31.4226C10.2952 29.9441 10.5852 28.4656 10.8841 26.9843C10.9719 26.5428 10.9778 26.5428 10.512 26.5428C9.77369 26.5428 9.0354 26.5428 8.29711 26.5428L8.30004 26.537Z"
fill="white"></path>
<path
d="M41.409 0.252687C42.3202 0.26721 43.536 0.223641 44.7548 0.287543C45.3817 0.319494 45.9882 0.426966 46.5683 0.659339C48.247 1.33031 48.7509 2.55608 48.7451 4.05198C48.7451 4.96404 48.5107 5.84124 48.1093 6.67197C47.1366 8.67909 45.4755 9.7451 43.3251 10.1547C42.1766 10.3754 41.0135 10.2912 39.8563 10.2854C39.4666 10.2854 39.3319 10.4045 39.2674 10.7733C39.0858 11.7784 38.8543 12.7747 38.6639 13.7768C38.6053 14.0905 38.4647 14.1979 38.1453 14.1921C37.1609 14.1776 36.1766 14.1776 35.1951 14.1921C34.8787 14.195 34.782 14.105 34.8494 13.7826C35.7342 9.4372 36.616 5.09184 37.4774 0.743574C37.5535 0.363064 37.7264 0.243973 38.0838 0.246878C39.0916 0.255592 40.0995 0.249782 41.412 0.249782L41.409 0.252687ZM42.1883 3.47395C41.8251 3.47395 41.4618 3.48557 41.1014 3.47104C40.87 3.46233 40.7674 3.54657 40.7206 3.77313C40.5213 4.78685 40.3133 5.79767 40.0995 6.80559C40.0497 7.03796 40.1082 7.128 40.3514 7.1251C41.0428 7.11639 41.7342 7.14253 42.4227 7.11639C43.7001 7.0641 44.4354 6.47446 44.6991 5.34164C44.9657 4.18849 44.4413 3.51461 43.243 3.47976C42.8915 3.46814 42.5399 3.47976 42.1913 3.47976L42.1883 3.47395Z"
fill="white"></path>
<path
d="M38.2882 27.9951C37.8546 27.9951 37.421 28.0038 36.9874 27.9922C36.7442 27.9864 36.6387 28.0793 36.5918 28.3233C36.3956 29.3486 36.1641 30.3682 35.9737 31.3964C35.9122 31.7392 35.7715 31.8554 35.42 31.8467C34.459 31.8234 33.4981 31.8408 32.54 31.8379C32.0947 31.8379 32.0772 31.8147 32.165 31.379C32.7305 28.5789 33.2988 25.7817 33.8643 22.9816C34.1778 21.4335 34.4971 19.8882 34.7989 18.34C34.8487 18.0844 34.9571 17.9915 35.2178 17.9944C37.4913 18.0031 39.7618 17.9769 42.0353 18.0147C43.1105 18.0321 44.1124 18.3458 44.9269 19.101C45.7062 19.8243 45.9435 20.7625 45.9289 21.7617C45.9025 23.4464 45.299 24.922 44.089 26.1129C42.9845 27.1992 41.6163 27.7598 40.0811 27.9399C39.4864 28.0096 38.8887 27.9922 38.2911 27.9951H38.2882ZM38.7833 24.7825C39.088 24.7825 39.3927 24.7883 39.6974 24.7825C40.9396 24.7593 41.6573 24.1871 41.9415 22.9904C42.2023 21.8982 41.6778 21.204 40.5499 21.1779C39.8233 21.1604 39.0968 21.1779 38.3731 21.1691C38.1475 21.1662 38.0362 21.2359 37.9923 21.4654C37.793 22.4791 37.585 23.49 37.3682 24.5008C37.3243 24.7099 37.3946 24.7825 37.5909 24.7825C37.9893 24.7825 38.3878 24.7825 38.7862 24.7825H38.7833Z"
fill="white"></path>
<path
d="M69.259 17.9973C70.7707 17.9973 72.2825 17.9973 73.7913 17.9973C74.2395 17.9973 74.2483 18.0147 74.1546 18.4562C73.9905 19.2288 73.8206 20.0015 73.677 20.777C73.6213 21.0733 73.4866 21.1779 73.1819 21.175C71.4006 21.1633 69.6193 21.1779 67.841 21.1633C67.507 21.1604 67.3547 21.265 67.299 21.5903C67.1994 22.1625 67.0734 22.729 66.9387 23.2954C66.8713 23.58 66.9562 23.6555 67.2463 23.6526C68.8869 23.641 70.5276 23.6468 72.1653 23.6468C72.637 23.6468 72.6545 23.6701 72.5666 24.1174C72.4172 24.8581 72.2532 25.5958 72.1213 26.3365C72.0569 26.6909 71.9192 26.839 71.5237 26.8332C69.9065 26.81 68.2893 26.8332 66.675 26.8187C66.3498 26.8158 66.2267 26.9291 66.1681 27.2341C65.9015 28.6254 65.6056 30.0109 65.342 31.4023C65.2804 31.7218 65.1632 31.8525 64.8175 31.8467C63.8566 31.8263 62.8956 31.8321 61.9347 31.8409C61.6212 31.8438 61.5275 31.7566 61.5948 31.4313C62.3449 27.7569 63.0802 24.0796 63.8214 20.4023C63.9591 19.7197 64.1056 19.0371 64.2316 18.3516C64.2785 18.096 64.3693 17.9827 64.6623 17.9857C66.1974 18.0031 67.7326 17.9944 69.2648 17.9944L69.259 17.9973Z"
fill="white"></path>
<path
d="M80.8548 17.9943C82.3783 17.9943 83.9017 18.0001 85.4252 17.9885C85.7181 17.9885 85.7972 18.067 85.7357 18.3516C85.5541 19.1562 85.3812 19.9637 85.2318 20.7741C85.1761 21.0762 85.0472 21.1778 84.7425 21.1749C82.9613 21.1633 81.18 21.1807 79.3987 21.1633C79.0442 21.1604 78.9007 21.2708 78.8479 21.6164C78.763 22.177 78.6458 22.7376 78.5081 23.2895C78.4319 23.5916 78.5345 23.6497 78.8128 23.6497C80.4534 23.641 82.0941 23.6468 83.7347 23.6497C84.2064 23.6497 84.2122 23.6642 84.1156 24.1261C83.9574 24.8871 83.7933 25.6481 83.6556 26.4149C83.5999 26.7199 83.4769 26.839 83.1488 26.8361C81.5198 26.8216 79.8909 26.8361 78.262 26.8245C77.9339 26.8245 77.7874 26.9058 77.7229 27.2457C77.4622 28.6254 77.1575 29.9993 76.8938 31.379C76.8264 31.7333 76.677 31.8583 76.3137 31.8495C75.3645 31.8263 74.4153 31.835 73.466 31.8437C73.1731 31.8437 73.0735 31.7711 73.1379 31.4545C73.9524 27.4722 74.7522 23.487 75.5579 19.5019C75.634 19.1271 75.7366 18.7554 75.7835 18.3748C75.8245 18.0495 75.9944 17.9943 76.2815 17.9972C77.805 18.006 79.3284 18.003 80.8519 18.003V17.9972L80.8548 17.9943Z"
fill="white"></path>
<path
d="M69.751 31.7769C70.4014 31.8728 70.999 31.9744 71.5967 32.0412C75.7891 32.5176 79.8409 31.9889 83.7287 30.3391C84.8713 29.854 85.9611 29.2644 87.0158 28.6108C87.2824 28.4453 87.3996 28.2797 87.3088 27.9602C87.2209 27.6494 87.1828 27.3241 87.1242 27.0046C87.1037 26.8826 87.01 26.7286 87.1242 26.6444C87.2385 26.5601 87.3644 26.6879 87.4699 26.7548C88.4397 27.3444 89.4065 27.9311 90.3703 28.5295C91.1643 29.0233 91.1614 29.0262 90.5989 29.7843C89.9045 30.7196 89.216 31.6607 88.5217 32.5931C88.4572 32.6802 88.4162 32.8371 88.2756 32.7993C88.1555 32.7674 88.1936 32.6222 88.1701 32.5263C88.0969 32.1865 88.0266 31.8437 87.965 31.501C87.9211 31.2541 87.8127 31.2076 87.5783 31.3034C85.4953 32.1458 83.3332 32.6919 81.1066 32.991C77.3595 33.4994 73.6797 33.2496 70.0938 31.9977C69.9883 31.9599 69.8652 31.9483 69.751 31.7798V31.7769Z"
fill="white"></path>
<path
d="M65.8896 15.0316C66.2324 15.0083 66.54 15.1274 66.8535 15.171C72.5343 15.9756 77.8634 15.081 82.7443 11.973C83.0432 11.7813 83.1252 11.5925 83.0314 11.2642C82.9435 10.9534 82.8996 10.6281 82.8439 10.3086C82.8293 10.2244 82.7648 10.114 82.8644 10.053C82.9582 9.99781 83.0432 10.085 83.1193 10.1314C84.1096 10.7327 85.094 11.3369 86.0813 11.9381C86.2893 12.0659 86.4973 12.1995 86.7082 12.3244C86.8811 12.4261 86.8899 12.5423 86.7698 12.6933C85.9026 13.8058 85.0412 14.9212 84.174 16.0337C84.1272 16.0947 84.0861 16.1905 83.9865 16.1586C83.8898 16.1295 83.9016 16.0279 83.8869 15.9524C83.8107 15.5893 83.7346 15.2262 83.6672 14.8602C83.6262 14.6365 83.5676 14.5378 83.301 14.6453C81.3029 15.444 79.2316 15.9698 77.0988 16.2544C75.1065 16.5188 73.1114 16.5449 71.1104 16.3271C69.4375 16.1441 67.8057 15.8013 66.2207 15.2407C66.1064 15.2 65.9629 15.203 65.8896 15.0345V15.0316Z"
fill="white"></path>
<path
d="M67.8024 37.6762C68.1276 37.1302 68.4997 36.6073 68.7663 36.0351C69.0592 35.4048 69.4577 35.0766 70.1725 35.2218C70.2165 35.2305 70.2663 35.2218 70.3132 35.2218C70.7175 35.2276 70.7468 35.2567 70.6764 35.643C70.4743 36.7264 70.2663 37.8098 70.0612 38.8933C70.0143 39.1315 69.9674 39.3726 69.9294 39.6136C69.8942 39.8315 69.7829 39.9215 69.5514 39.9302C68.7047 39.9593 68.7047 39.9651 68.8659 39.1344C68.986 38.5099 69.1061 37.8854 69.1559 37.2289C68.9567 37.5717 68.7604 37.9173 68.5612 38.2601C68.3122 38.6929 68.0573 39.1257 67.817 39.5643C67.7057 39.7647 67.5768 39.8954 67.3219 39.8634C67.0612 39.8286 67.067 39.6224 67.0319 39.4481C66.8766 38.6987 66.7242 37.9464 66.5133 37.1883C66.3961 37.8128 66.2789 38.4373 66.1617 39.0647C66.15 39.1228 66.1442 39.1808 66.1354 39.236C66.0035 39.9361 66.0035 39.9215 65.2682 39.9273C64.9371 39.9302 64.8668 39.8199 64.9283 39.5149C65.1568 38.3879 65.3678 37.258 65.5875 36.1281C65.6139 35.9915 65.6402 35.855 65.6695 35.7185C65.7379 35.3835 65.9381 35.216 66.2701 35.216C66.9303 35.216 67.32 35.5336 67.4391 36.1687C67.5329 36.6596 67.6325 37.1476 67.7291 37.6356C67.7555 37.6472 67.7819 37.6559 67.8082 37.6675L67.8024 37.6762Z"
fill="white"></path>
<path
d="M58.6563 37.9842C58.6681 36.3082 59.8868 35.1115 61.548 35.1521C62.5499 35.1754 63.2999 35.7941 63.4406 36.7787C63.6691 38.3763 62.4562 40.1656 60.423 39.9884C59.3126 39.8925 58.6475 39.1199 58.6563 37.9871V37.9842ZM59.8165 37.8099C59.8048 38.2543 59.8985 38.6551 60.3556 38.8498C60.8155 39.0444 61.2609 38.9747 61.6388 38.658C62.1368 38.2398 62.3478 37.685 62.2628 37.0431C62.1749 36.3605 61.6505 36.0264 60.9737 36.2007C60.297 36.375 59.8282 37.0256 59.8136 37.8099H59.8165Z"
fill="white"></path>
<path
d="M34.8758 39.9274C34.4305 39.9274 33.9852 39.9245 33.5399 39.9274C33.3143 39.9303 33.2176 39.8606 33.2645 39.6166C33.5311 38.2369 33.7889 36.8572 34.0438 35.4775C34.0789 35.2945 34.1727 35.219 34.3543 35.2219C35.2684 35.2219 36.1825 35.2219 37.0936 35.2219C37.3133 35.2219 37.3924 35.3119 37.3397 35.524C37.3221 35.5908 37.3192 35.6605 37.3075 35.7302C37.245 36.0633 37.0428 36.2298 36.701 36.2298C36.2674 36.2298 35.8338 36.2269 35.4002 36.2298C35.1043 36.2298 34.8143 36.6684 34.9198 36.9443C34.9666 37.0634 35.0721 37.0315 35.16 37.0315C35.6522 37.0344 36.1444 37.0489 36.6366 37.0315C36.9559 37.0199 37.0292 37.1477 36.9559 37.4265C36.9296 37.5282 36.9061 37.6298 36.8944 37.7344C36.871 37.9639 36.745 38.051 36.5165 38.0452C36.036 38.0365 35.5555 38.0394 35.075 38.0452C34.7528 38.0452 34.4334 38.5506 34.5682 38.8382C34.6209 38.9515 34.7264 38.9166 34.8143 38.9195C35.3416 38.9224 35.869 38.9311 36.3963 38.9195C36.6483 38.9137 36.745 39.0037 36.6835 39.2477C36.6747 39.2826 36.6747 39.3174 36.6688 39.3523C36.6024 39.7415 36.3661 39.9361 35.9598 39.9361C35.5965 39.9361 35.2332 39.9361 34.87 39.9361L34.8758 39.9274Z"
fill="white"></path>
<path
d="M78.8237 38.0422C77.1361 38.0422 75.4516 38.0422 73.764 38.0422C73.2806 38.0422 73.2689 38.0277 73.3539 37.5804C73.4281 37.1776 73.6732 36.9762 74.0892 36.9762C77.4145 36.9762 80.7397 36.9762 84.0649 36.9762C84.5776 36.9762 84.5835 36.9849 84.4809 37.4874C84.4067 37.8553 84.1831 38.0393 83.81 38.0393C82.146 38.0393 80.4848 38.0393 78.8207 38.0393L78.8237 38.0422Z"
fill="white"></path>
<path
d="M29.0368 36.9792C29.4616 36.5377 29.904 36.1078 30.3083 35.6489C30.5954 35.3236 30.9147 35.158 31.3512 35.2248C31.5739 35.2597 31.9167 35.1115 31.9928 35.3061C32.0661 35.4891 31.735 35.6489 31.5768 35.8086C31.1374 36.2589 30.695 36.7062 30.2321 37.1332C30.0299 37.3191 30.0182 37.473 30.1501 37.7025C30.5075 38.3299 30.8356 38.9689 31.1872 39.5992C31.3219 39.8403 31.2721 39.9332 30.9909 39.9245C29.8161 39.8984 30.1266 40.1017 29.6051 39.0967C29.4997 38.8905 29.3854 38.6842 29.3004 38.4693C29.1774 38.1643 29.0485 38.2224 28.8522 38.4112C28.6178 38.6378 28.6178 38.9369 28.5621 39.2129C28.4039 39.9942 28.6002 39.9216 27.6129 39.9245C27.358 39.9245 27.2906 39.8229 27.3405 39.5789C27.5543 38.4867 27.7565 37.3917 27.9616 36.2966C27.985 36.1717 28.0055 36.0439 28.0289 35.919C28.1637 35.2016 28.3248 35.0999 29.069 35.2219C29.3092 35.2626 29.2623 35.4136 29.2389 35.5588C29.1569 36.0207 29.069 36.4825 28.9811 36.9444C29.0016 36.956 29.0192 36.9647 29.0397 36.9763L29.0368 36.9792Z"
fill="white"></path>
<path
d="M45.7943 39.9971C45.267 39.9738 44.7133 39.8664 44.2445 39.4859C44.0424 39.3203 43.9955 39.1605 44.1918 38.9659C44.2093 38.9485 44.2211 38.9311 44.2386 38.9136C44.3881 38.751 44.5082 38.5157 44.6928 38.4431C44.9008 38.3589 45.0092 38.6609 45.1937 38.7539C45.5951 38.9543 46.0023 39.0618 46.4447 38.9107C46.6234 38.8497 46.7582 38.7365 46.767 38.5418C46.7758 38.3443 46.6264 38.2543 46.4652 38.2049C46.143 38.1032 45.809 38.0306 45.4896 37.9202C44.6049 37.6124 44.3383 36.8571 44.8129 36.0526C45.2025 35.3961 46.0609 35.0446 46.9604 35.1753C47.3588 35.2334 47.7309 35.3612 48.0619 35.5965C48.2377 35.7214 48.3051 35.8434 48.1322 36.0177C48.0824 36.0671 48.0443 36.1281 48.0004 36.1804C47.7719 36.4515 47.5024 36.5125 47.1918 36.3634C46.89 36.2181 46.5766 36.1339 46.2396 36.1775C46.017 36.2065 45.8119 36.3024 45.7826 36.5405C45.7504 36.7845 45.9818 36.8281 46.1547 36.8833C46.4096 36.9675 46.6762 37.0227 46.9311 37.1069C47.4115 37.2667 47.8715 37.47 47.9389 38.0481C48.0151 38.7219 47.7924 39.2883 47.1977 39.6659C46.7904 39.9245 46.3305 40 45.7973 40.0029L45.7943 39.9971Z"
fill="white"></path>
<path
d="M5.07682 38.0422C3.51821 38.0422 1.96253 38.0422 0.403916 38.0422C-0.0384717 38.0422 -0.0443311 38.0335 0.0435605 37.6094C0.131452 37.1873 0.398057 36.9762 0.843374 36.9762C3.84341 36.9762 6.84051 36.9762 9.84054 36.9762C10.2175 36.9762 10.3708 37.1553 10.3005 37.5136C10.2302 37.8718 10.0124 38.047 9.64718 38.0393C8.12373 38.0393 6.60027 38.0393 5.07975 38.0393L5.07682 38.0422Z"
fill="white"></path>
<path
d="M52.6826 37.9812C52.6914 36.0613 54.5401 34.6757 56.2422 35.2712C56.6524 35.4135 56.9307 35.6953 57.1387 36.0613C57.25 36.2559 57.209 36.3895 56.9922 36.4679C56.9043 36.4999 56.8135 36.5318 56.7373 36.5812C56.4385 36.7729 56.2159 36.7584 55.9815 36.4447C55.7412 36.1194 55.3574 36.1048 54.9883 36.2152C54.1797 36.4505 53.6436 37.4526 53.8867 38.2543C54.1182 39.0182 55.0821 39.2041 55.7149 38.6145C55.8174 38.5186 55.8789 38.292 56.0518 38.3618C56.3067 38.4663 56.5381 38.6348 56.7696 38.7887C56.837 38.8352 56.7842 38.9165 56.7432 38.9746C56.2627 39.6253 55.6153 39.9767 54.8008 39.9942C54.0274 40.0116 53.374 39.7734 52.9551 39.0763C52.7412 38.7248 52.668 38.3443 52.6855 37.9812H52.6826Z"
fill="white"></path>
<path
d="M21.4606 37.8941C21.4635 36.2966 22.7731 35.0563 24.4636 35.1579C25.1052 35.1957 25.5945 35.4978 25.9197 36.0555C26.0368 36.2559 26.0427 36.4011 25.782 36.4737C25.6823 36.5028 25.5798 36.5435 25.489 36.5928C25.2165 36.7497 25.0232 36.7729 24.7976 36.4592C24.5632 36.131 24.156 36.1019 23.7692 36.2094C22.902 36.4476 22.363 37.5368 22.697 38.3705C22.9665 39.0473 23.9245 39.1751 24.4958 38.6116C24.5954 38.5128 24.6511 38.2979 24.8415 38.3734C25.0993 38.478 25.3513 38.6145 25.5534 38.8091C25.6238 38.8788 25.5359 38.9572 25.4919 39.024C24.8298 40 23.2331 40.3108 22.2546 39.6427C21.6745 39.2477 21.446 38.6726 21.4606 37.8912V37.8941Z"
fill="white"></path>
<path
d="M14.983 35.2219C15.4986 35.2219 16.0113 35.2277 16.527 35.2219C16.776 35.219 16.8756 35.3119 16.8053 35.5588C16.7907 35.614 16.7877 35.6721 16.776 35.7302C16.7115 36.0632 16.5114 36.2298 16.1754 36.2298C15.4137 36.2298 15.4108 36.2298 15.2672 36.9763C15.1119 37.7954 14.9596 38.6174 14.8102 39.4394C14.7223 39.9216 14.7193 39.9245 14.2301 39.9274C13.7887 39.9274 13.61 39.7086 13.6939 39.271C13.8639 38.3821 14.025 37.4933 14.2066 36.6074C14.2652 36.3198 14.2066 36.1949 13.8873 36.2269C13.6676 36.2472 13.442 36.2298 13.2223 36.2269C13.0435 36.2269 12.9644 36.1397 13.0025 35.9597C13.0084 35.9364 13.0113 35.9132 13.0142 35.8899C13.0728 35.4426 13.3297 35.2199 13.7848 35.2219C13.9605 35.2219 14.1363 35.2219 14.3121 35.2219C14.5348 35.2219 14.7574 35.2219 14.9801 35.2219H14.983Z"
fill="white"></path>
<path
d="M41.2414 35.2219C41.7219 35.2219 42.2024 35.2393 42.6799 35.2161C43.0198 35.1987 43.0959 35.3352 43.011 35.6256C43.0051 35.6489 43.0022 35.6721 42.9993 35.6953C42.9309 36.0517 42.7151 36.2298 42.3518 36.2298C41.4524 36.2298 41.6457 36.1659 41.4875 36.9502C41.3117 37.8245 41.1447 38.7017 40.9953 39.5818C40.9514 39.8403 40.8488 39.9361 40.5852 39.9332C39.633 39.9158 39.759 40.0204 39.9201 39.1432C40.0783 38.2892 40.2424 37.4352 40.4211 36.5813C40.4768 36.3082 40.383 36.2124 40.1193 36.2327C40.049 36.2385 39.9787 36.2327 39.9084 36.2327C39.1203 36.2327 39.1994 36.3169 39.3313 35.5065C39.3664 35.2916 39.4895 35.2219 39.6975 35.2248C40.2131 35.2306 40.7258 35.2248 41.2414 35.2248V35.2219Z"
fill="white"></path>
<path
d="M18.5449 39.9216C18.4511 39.9216 18.3574 39.9216 18.2636 39.9216C18.0644 39.9216 17.9911 39.8374 18.0292 39.637C18.29 38.2689 18.5507 36.9008 18.8027 35.5327C18.8466 35.2887 18.9814 35.219 19.2158 35.2161C20.0214 35.2016 20.0097 35.1928 19.8574 35.9626C19.6347 37.1012 19.4296 38.2427 19.2128 39.3814C19.1103 39.9245 19.1074 39.9216 18.5419 39.9187L18.5449 39.9216Z"
fill="white"></path>
<path
d="M50.9005 39.2506C50.9005 39.6514 50.59 39.9797 50.212 39.9826C49.8839 39.9855 49.629 39.7357 49.6349 39.4133C49.6437 39.0095 49.9864 38.6493 50.3526 38.6522C50.6661 38.6522 50.9005 38.9108 50.9005 39.2506Z"
fill="white"></path>
</g>
<defs>
<clipPath id="clip0_117_3713">
<rect width="91" height="40" fill="white"></rect>
</clipPath>
</defs>
</svg>
</a>
<nav class="nav" id="primaryNav" aria-label="Primary">
<ul class="nav__list">
<li><a class="nav__link" href="index.html">Home</a></li>
<li class="nav__item--has-menu">
<button class="nav__link nav__toggle" type="button" aria-expanded="false" aria-controls="toursMenu">
<span>Tours</span>
<svg class="icon icon--chevron" aria-hidden="true">
<use href="#i-chevron" />
</svg>
</button>
<ul class="nav__submenu" id="toursMenu">
<li><a href="tours.html">All tours</a></li>
<li><a href="tours.html">London</a></li>
<li><a href="tours.html">Nashville</a></li>
<li><a href="tours.html">Sydney</a></li>
<li><a href="tours.html">San Diego</a></li>
<li><a href="tours.html">Paris</a></li>
</ul>
</li>
<li><a class="nav__link" href="blog.html">Weblog</a></li>
<li><a class="nav__link" href="faq.html">FAQ&rsquo;s</a></li>
<li><a class="nav__link" href="contact.html">Contact us</a></li>
<li><a class="nav__link" href="about.html">About us</a></li>
</ul>
</nav>
</div>
<div class="header__actions">
<button class="icon-btn" type="button" aria-label="Search">
<svg class="icon icon--24" aria-hidden="true">
<use href="#i-search" />
</svg>
</button>
<button class="icon-btn" type="button" aria-label="Account">
<svg class="icon icon--24" aria-hidden="true">
<use href="#i-user" />
</svg>
</button>
<a class="btn btn--accent header__cta" href="#availability">
<span>Book now</span>
<svg class="icon" aria-hidden="true">
<use href="#i-arrow-right" />
</svg>
</a>
<button class="burger" id="burger" type="button" aria-label="Open menu" aria-expanded="false"
aria-controls="primaryNav">
<span></span><span></span><span></span>
</button>
</div>
</div>
</header>
<main id="main">
<!-- ============ hero ============ -->
<section class="hero-tour">
<img class="hero-tour__photo" src="assets/hero3.jpg" alt="" fetchpriority="high" />
<div class="hero-tour__sky" aria-hidden="true"></div>
<div class="container hero-tour__inner">
<div class="hero-tour__block">
<nav class="crumbs" aria-label="Breadcrumb">
<ol class="crumbs__list">
<li><a href="index.html">Home</a></li>
<li><a href="tours.html">Tours</a></li>
<li aria-current="page">Sydney Tour</li>
</ol>
</nav>
<p class="hero-tour__kicker">Welcome to</p>
<div class="hero-tour__stage">
<h1 class="hero-tour__word">Sydney</h1>
<img class="hero-tour__figure hero-tour__figure--sydney" src="assets/sydney.png" alt="" loading="eager" />
</div>
</div>
</div>
</section>
<!-- ============ tour ============ -->
<section class="section tour">
<div class="container tour__layout">
<div class="tour__main">
<header class="tour-head">
<h2 class="tour-head__title">Sydney Tour</h2>
<div class="tmeta">
<span class="tmeta__item">
<svg class="icon icon--12 tmeta__star" aria-hidden="true">
<use href="#i-star" />
</svg>
<b>4.8</b><i>/5</i>
</span>
<span class="tmeta__rule" aria-hidden="true"></span>
<span class="tmeta__item">
<svg class="icon tmeta__icon" aria-hidden="true">
<use href="#i-location" />
</svg>
Sydney
</span>
<span class="tmeta__rule" aria-hidden="true"></span>
<span class="tmeta__item">
<svg class="icon tmeta__icon" aria-hidden="true">
<use href="#i-person" />
</svg>
from Mr. Bill
</span>
</div>
</header>
<ul class="facts">
<li class="fact">
<svg class="icon fact__icon" aria-hidden="true">
<use href="#i-duration" />
</svg>
<div class="fact__text">
<span class="fact__k">Duration</span>
<span class="fact__v">1h 30m</span>
</div>
</li>
<li class="fact">
<svg class="icon fact__icon" aria-hidden="true">
<use href="#i-person" />
</svg>
<div class="fact__text">
<span class="fact__k">Max Travelers</span>
<span class="fact__v">15 people</span>
</div>
</li>
<li class="fact">
<svg class="icon fact__icon" aria-hidden="true">
<use href="#i-shield-check" />
</svg>
<div class="fact__text">
<span class="fact__k">Free Cancellation</span>
<span class="fact__v">Up to 24 hrs</span>
</div>
</li>
<li class="fact">
<svg class="icon fact__icon" aria-hidden="true">
<use href="#i-grid" />
</svg>
<div class="fact__text">
<span class="fact__k">Category</span>
<span class="fact__v">Best Conversion</span>
</div>
</li>
</ul>
<section class="tour__block">
<h3 class="tour__ct">Overview</h3>
<p class="tour__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed
do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit
amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem
ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua</p>
<p class="tour__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed
do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
</section>
<section class="tour__block">
<h3 class="tour__ct">Gallery</h3>
<div class="gallery">
<img class="gallery__hero" src="assets/tour-sydney.png" alt="Sydney harbour" loading="lazy" />
<img src="assets/liked-sydney.png" alt="Sydney landmark" loading="lazy" />
<img src="assets/city-sydney.png" alt="Sydney skyline" loading="lazy" />
<img src="assets/city-san-diego.png" alt="A palm-lined avenue" loading="lazy" />
<img src="assets/liked-san-diego.png" alt="Palm trees against the city skyline" loading="lazy" />
</div>
</section>
<div class="lists">
<section class="ilist">
<h3 class="tour__ct">Whats included</h3>
<ul class="ilist__items">
<li>
<span class="tick tick--yes" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-check" />
</svg>
</span>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.</p>
</li>
<li>
<span class="tick tick--yes" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-check" />
</svg>
</span>
<p>ed do eiusmod tempor incididunt ut labore et dolo</p>
</li>
<li>
<span class="tick tick--yes" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-check" />
</svg>
</span>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.</p>
</li>
<li>
<span class="tick tick--yes" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-check" />
</svg>
</span>
<p>ed do eiusmod tempor incididunt ut labore et dolo</p>
</li>
</ul>
</section>
<section class="ilist">
<h3 class="tour__ct">Whats Not included</h3>
<ul class="ilist__items">
<li>
<span class="tick tick--no" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-x" />
</svg>
</span>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.</p>
</li>
<li>
<span class="tick tick--no" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-x" />
</svg>
</span>
<p>ed do eiusmod tempor incididunt ut labore et dolo</p>
</li>
<li>
<span class="tick tick--no" aria-hidden="true">
<svg class="icon icon--12">
<use href="#i-x" />
</svg>
</span>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.</p>
</li>
</ul>
</section>
</div>
<section class="tour__block">
<h3 class="tour__ct">Good to know</h3>
<ul class="notes">
<li class="note">
<svg class="icon note__icon" aria-hidden="true">
<use href="#i-info" />
</svg>
<p>Public transportation options are available nearby</p>
</li>
<li class="note">
<svg class="icon note__icon" aria-hidden="true">
<use href="#i-info" />
</svg>
<p>Infants are required to sit on an adult&rsquo;s lap</p>
</li>
<li class="note">
<svg class="icon note__icon" aria-hidden="true">
<use href="#i-info" />
</svg>
<p>Not recommended for travelers with spinal injuries</p>
</li>
<li class="note">
<svg class="icon note__icon" aria-hidden="true">
<use href="#i-info" />
</svg>
<p>Not recommended for travelers with spinal injuries</p>
</li>
<li class="note">
<svg class="icon note__icon" aria-hidden="true">
<use href="#i-info" />
</svg>
<p>Public transportation options are available nearby</p>
</li>
<li class="note">
<svg class="icon note__icon" aria-hidden="true">
<use href="#i-info" />
</svg>
<p>Infants are required to sit on an adult&rsquo;s lap</p>
</li>
</ul>
</section>
<section class="tour__block">
<h3 class="tour__ct">Cancellation Policy</h3>
<p class="tour__text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.</p>
<div class="policy">
<div class="statcard statcard--yes">
<svg class="icon icon--12 statcard__icon" aria-hidden="true">
<use href="#i-check" />
</svg>
<div class="statcard__text">
<span class="statcard__k">100% Refund</span>
<span class="statcard__v">24 hours or more before the start time</span>
</div>
</div>
<div class="statcard statcard--no">
<svg class="icon icon--12 statcard__icon" aria-hidden="true">
<use href="#i-x" />
</svg>
<div class="statcard__text">
<span class="statcard__k">0% Refund</span>
<span class="statcard__v">Less than 24 hours before the start time</span>
</div>
</div>
</div>
</section>
</div>
<aside class="tour__aside">
<div class="bookcard">
<h2 class="bookcard__title">
<svg class="icon" aria-hidden="true">
<use href="#i-info" />
</svg>
Tour Details
</h2>
<form class="bookcard__price" id="availability" novalidate>
<p class="price">
<span class="price__k">From</span>
<span class="price__v">$30</span>
<span class="price__unit">USD / Per person</span>
</p>
<button class="btn btn--dark bookcard__cta" type="submit">Check Availability</button>
</form>
<div class="statcard statcard--teal">
<svg class="icon statcard__icon" aria-hidden="true">
<use href="#i-shield-check" />
</svg>
<div class="statcard__text">
<span class="statcard__k">Free Cancellation</span>
<span class="statcard__v">Up to 24 hrs</span>
</div>
</div>
<div class="statcard statcard--yes">
<svg class="icon statcard__icon" aria-hidden="true">
<use href="#i-shield-check" />
</svg>
<div class="statcard__text">
<span class="statcard__k">Reserve now, pay later!</span>
<span class="statcard__v">Secure your spot today</span>
</div>
</div>
</div>
</aside>
</div>
</section>
</main>
<!-- ============ footer ============ -->
<footer class="footer" id="footer">
<a class="ring-badge ring-badge--top" href="#main" aria-label="Back to top">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">BACK TO TOP &#183; </textPath>
</text>
</svg>
<span class="ring-badge__dot">
<svg class="icon" aria-hidden="true">
<use href="#i-arrow-up" />
</svg>
</span>
</a>
<div class="container footer__inner">
<div class="footer__brand">
<span class="footer__logo">
<svg class="logo" viewBox="0 0 91 40" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Logo">
<g clip-path="url(#clip0_117_3713)">
<path
d="M70.0559 6.63419C69.9035 7.36616 69.76 8.05456 69.6194 8.74587C69.2766 10.4306 68.9338 12.1153 68.6027 13.8C68.5471 14.0759 68.424 14.195 68.1311 14.1892C67.217 14.1776 66.3029 14.1863 65.3888 14.1863C65.0216 14.1863 64.8752 14.0023 64.9494 13.6344C65.2892 11.9381 65.632 10.2418 65.9719 8.54545C66.5021 5.90221 67.0324 3.26188 67.551 0.618649C67.6037 0.348516 67.7209 0.229425 67.9934 0.252662C68.8371 0.316565 69.678 0.235234 70.5217 0.243948C70.9289 0.249757 71.175 0.365944 71.3625 0.758072C72.4407 3.01499 73.551 5.25738 74.6526 7.50268C74.7053 7.61306 74.7288 7.74667 74.8929 7.83671C74.9749 7.44749 75.0569 7.0786 75.1302 6.70971C75.5286 4.72873 75.9212 2.74776 76.3196 0.763881C76.4192 0.272995 76.4397 0.243948 76.9349 0.255567C77.8343 0.272995 78.7366 0.272995 79.6361 0.264281C80.1195 0.258471 80.1458 0.316565 80.0521 0.769691C79.1527 5.11505 78.2474 9.45751 77.3567 13.8058C77.2923 14.1166 77.1575 14.2037 76.8645 14.2008C75.9856 14.1892 75.1067 14.1863 74.2278 14.2008C73.926 14.2066 73.759 14.0904 73.6331 13.8261C72.5374 11.5663 71.4299 9.30937 70.3254 7.05246C70.261 6.92465 70.2229 6.77361 70.0559 6.6429V6.63419Z"
fill="white"></path>
<path
d="M25.5852 14.4942C24.0706 14.5029 22.6584 14.1834 21.4426 13.2249C20.218 12.2605 19.5764 10.9825 19.4299 9.45462C19.0314 5.2661 22.1252 0.682561 27.2552 0.0783925C28.6204 -0.0842682 29.9739 -0.0232704 31.2659 0.502472C33.2464 1.30706 34.3363 2.79715 34.5853 4.8885C35.0658 8.90564 31.887 13.8435 26.7776 14.4303C26.3792 14.4768 25.9837 14.4855 25.5852 14.4942ZM30.6068 6.2014C30.6068 6.05036 30.6155 5.89932 30.6068 5.74828C30.5247 4.54866 29.7015 3.59012 28.5589 3.35484C27.5452 3.14571 26.5843 3.3258 25.7317 3.87478C23.9358 5.03664 23.2473 6.75619 23.4289 8.81559C23.5461 10.1575 24.425 11.0202 25.7288 11.2148C26.5901 11.3426 27.4192 11.1771 28.1546 10.7152C29.8157 9.66956 30.5247 8.09814 30.6068 6.20431V6.2014Z"
fill="white"></path>
<path
d="M31.9078 23.3679C31.8873 27.3705 29.107 30.9636 25.3159 31.8698C23.4995 32.3055 21.6889 32.3346 19.9428 31.5706C18.1176 30.7719 17.0717 29.3544 16.8314 27.4083C16.348 23.455 18.7855 19.6035 22.5766 18.2383C24.188 17.6573 25.8374 17.4831 27.5161 17.8607C30.3316 18.4939 31.9224 20.5039 31.9078 23.3679ZM27.9321 23.9343C27.9321 23.7716 27.9439 23.609 27.9321 23.4463C27.8208 22.0695 26.9184 21.111 25.6001 20.9745C24.8383 20.896 24.1118 21.0296 23.4145 21.3521C21.3139 22.328 20.3412 25.2675 20.9008 27.0858C21.1908 28.0299 21.8266 28.6398 22.8051 28.8461C23.7895 29.0523 24.7329 28.8838 25.5708 28.3552C27.1909 27.3327 27.8384 25.7671 27.9321 23.9314V23.9343Z"
fill="white"></path>
<path
d="M58.5507 0.0115716C60.0009 -0.00876093 61.2607 0.243944 62.3915 0.964298C63.83 1.88217 64.5859 3.21541 64.75 4.88558C65.122 8.63549 62.7783 12.7049 58.7792 14.0411C56.9569 14.651 55.1024 14.7324 53.2713 14.0556C51.1766 13.28 49.7937 11.3862 49.7557 9.16704C49.6912 5.3358 51.4051 2.53572 54.8592 0.807447C55.9549 0.261372 57.2733 0.00866699 58.5536 0.00866699L58.5507 0.0115716ZM60.8417 6.23044C60.8417 6.09101 60.8505 5.95159 60.8417 5.81217C60.7685 4.66773 60.08 3.72082 59.0985 3.42454C58.2079 3.15441 57.3378 3.22993 56.494 3.60172C54.5282 4.46731 53.4178 6.79103 53.7371 8.93177C53.9305 10.2243 54.7508 11.0144 56.0048 11.2119C56.6903 11.3194 57.37 11.2293 57.9911 10.9244C59.9482 9.96582 60.6952 8.27241 60.8388 6.22753L60.8417 6.23044Z"
fill="white"></path>
<path
d="M52.5947 32.1313C51.2353 32.1488 50.0048 31.9077 48.8915 31.2367C47.4149 30.3479 46.6444 28.9943 46.4364 27.3299C45.9969 23.8647 48.1122 20.0044 51.5898 18.4795C53.8046 17.5093 56.0869 17.2973 58.3721 18.2819C60.1328 19.043 61.1231 20.4285 61.3604 22.2904C61.6885 24.8552 60.9238 27.1266 59.2861 29.125C57.7012 31.0595 55.0293 32.201 52.5976 32.1313H52.5947ZM53.1718 28.9043C54.0126 28.9362 54.8095 28.669 55.4804 28.1229C57.0683 26.8332 57.707 25.1456 57.4463 23.1414C57.2969 21.9883 56.4414 21.1488 55.3076 20.9891C54.3378 20.8526 53.4003 21.0094 52.5859 21.5729C50.9716 22.6912 50.3036 24.2888 50.33 26.1971C50.3534 27.8383 51.4726 28.9014 53.1689 28.9014L53.1718 28.9043Z"
fill="white"></path>
<path
d="M11.6694 5.54499C12.3843 5.54499 13.0991 5.52466 13.814 5.55371C14.189 5.56823 14.3149 5.4259 14.3794 5.07444C14.6607 3.60178 14.9741 2.13783 15.2642 0.668076C15.3169 0.392134 15.4429 0.261425 15.7271 0.261425C16.7788 0.261425 17.8306 0.25852 18.8824 0.255615C19.1431 0.255615 19.2222 0.365992 19.1666 0.630316C18.4488 4.06362 17.7369 7.49692 17.0279 10.9302C16.8286 11.8859 16.6265 12.8386 16.4449 13.7971C16.3921 14.076 16.2749 14.1921 15.982 14.1892C14.9624 14.1776 13.9429 14.1892 12.9233 14.1834C12.5395 14.1834 12.5014 14.1341 12.5806 13.7448C12.8794 12.278 13.1811 10.8111 13.4829 9.34428C13.5767 8.89115 13.5767 8.88534 13.1284 8.88534C11.6518 8.88534 10.1753 8.89115 8.7016 8.87663C8.37934 8.87663 8.25629 8.98701 8.19476 9.30071C7.90472 10.8169 7.58538 12.3274 7.28362 13.8436C7.23382 14.0934 7.11956 14.1951 6.85881 14.1921C5.82755 14.1834 4.79629 14.1834 3.76503 14.1921C3.46327 14.1921 3.38416 14.0934 3.44276 13.7942C3.95546 11.2672 4.45351 8.74011 4.95742 6.21016C5.32364 4.37732 5.69571 2.54448 6.05021 0.708741C6.1088 0.403753 6.22892 0.278852 6.55412 0.284662C7.59417 0.30209 8.63422 0.29628 9.6772 0.290471C9.93209 0.290471 10.0083 0.374706 9.95552 0.624506C9.6479 2.09136 9.35493 3.55821 9.04731 5.02506C8.94184 5.53337 8.94477 5.5508 9.48384 5.55371C10.2104 5.55371 10.937 5.55371 11.6636 5.55371L11.6694 5.54499Z"
fill="white"></path>
<path
d="M8.30004 26.537C7.55003 26.537 6.80002 26.5486 6.05002 26.5311C5.76876 26.5253 5.66036 26.6328 5.60763 26.8971C5.31173 28.425 4.99825 29.9499 4.70528 31.4778C4.65254 31.7479 4.53535 31.8438 4.25996 31.8409C3.24042 31.8292 2.22087 31.8263 1.20426 31.8409C0.879063 31.8467 0.799961 31.7479 0.864414 31.4342C1.50895 28.2246 2.1447 25.012 2.78338 21.8024C3.0119 20.6521 3.24921 19.5048 3.46893 18.3516C3.51874 18.0815 3.64179 17.9856 3.91425 17.9915C4.93379 18.0031 5.95334 18.006 6.96995 17.9915C7.29515 17.9856 7.37132 18.0931 7.30687 18.4039C6.99925 19.8708 6.7092 21.3376 6.4133 22.8074C6.35666 23.0901 6.47287 23.2324 6.76194 23.2344C8.23852 23.2344 9.71509 23.2256 11.1887 23.2431C11.5315 23.246 11.6546 23.1298 11.7161 22.8074C12.0003 21.3492 12.3167 19.8969 12.6009 18.4388C12.6683 18.0989 12.8118 17.9856 13.1604 17.9944C14.1565 18.0176 15.1527 18.0118 16.1458 17.9944C16.4593 17.9886 16.5618 18.067 16.4974 18.3923C15.7152 22.1916 14.9417 25.9909 14.1653 29.7902C14.0481 30.3595 13.928 30.9259 13.8226 31.4981C13.7757 31.745 13.6614 31.8496 13.3978 31.8467C12.3665 31.835 11.3352 31.835 10.3069 31.8467C9.96998 31.8496 9.92018 31.7218 9.98463 31.4226C10.2952 29.9441 10.5852 28.4656 10.8841 26.9843C10.9719 26.5428 10.9778 26.5428 10.512 26.5428C9.77369 26.5428 9.0354 26.5428 8.29711 26.5428L8.30004 26.537Z"
fill="white"></path>
<path
d="M41.409 0.252687C42.3202 0.26721 43.536 0.223641 44.7548 0.287543C45.3817 0.319494 45.9882 0.426966 46.5683 0.659339C48.247 1.33031 48.7509 2.55608 48.7451 4.05198C48.7451 4.96404 48.5107 5.84124 48.1093 6.67197C47.1366 8.67909 45.4755 9.7451 43.3251 10.1547C42.1766 10.3754 41.0135 10.2912 39.8563 10.2854C39.4666 10.2854 39.3319 10.4045 39.2674 10.7733C39.0858 11.7784 38.8543 12.7747 38.6639 13.7768C38.6053 14.0905 38.4647 14.1979 38.1453 14.1921C37.1609 14.1776 36.1766 14.1776 35.1951 14.1921C34.8787 14.195 34.782 14.105 34.8494 13.7826C35.7342 9.4372 36.616 5.09184 37.4774 0.743574C37.5535 0.363064 37.7264 0.243973 38.0838 0.246878C39.0916 0.255592 40.0995 0.249782 41.412 0.249782L41.409 0.252687ZM42.1883 3.47395C41.8251 3.47395 41.4618 3.48557 41.1014 3.47104C40.87 3.46233 40.7674 3.54657 40.7206 3.77313C40.5213 4.78685 40.3133 5.79767 40.0995 6.80559C40.0497 7.03796 40.1082 7.128 40.3514 7.1251C41.0428 7.11639 41.7342 7.14253 42.4227 7.11639C43.7001 7.0641 44.4354 6.47446 44.6991 5.34164C44.9657 4.18849 44.4413 3.51461 43.243 3.47976C42.8915 3.46814 42.5399 3.47976 42.1913 3.47976L42.1883 3.47395Z"
fill="white"></path>
<path
d="M38.2882 27.9951C37.8546 27.9951 37.421 28.0038 36.9874 27.9922C36.7442 27.9864 36.6387 28.0793 36.5918 28.3233C36.3956 29.3486 36.1641 30.3682 35.9737 31.3964C35.9122 31.7392 35.7715 31.8554 35.42 31.8467C34.459 31.8234 33.4981 31.8408 32.54 31.8379C32.0947 31.8379 32.0772 31.8147 32.165 31.379C32.7305 28.5789 33.2988 25.7817 33.8643 22.9816C34.1778 21.4335 34.4971 19.8882 34.7989 18.34C34.8487 18.0844 34.9571 17.9915 35.2178 17.9944C37.4913 18.0031 39.7618 17.9769 42.0353 18.0147C43.1105 18.0321 44.1124 18.3458 44.9269 19.101C45.7062 19.8243 45.9435 20.7625 45.9289 21.7617C45.9025 23.4464 45.299 24.922 44.089 26.1129C42.9845 27.1992 41.6163 27.7598 40.0811 27.9399C39.4864 28.0096 38.8887 27.9922 38.2911 27.9951H38.2882ZM38.7833 24.7825C39.088 24.7825 39.3927 24.7883 39.6974 24.7825C40.9396 24.7593 41.6573 24.1871 41.9415 22.9904C42.2023 21.8982 41.6778 21.204 40.5499 21.1779C39.8233 21.1604 39.0968 21.1779 38.3731 21.1691C38.1475 21.1662 38.0362 21.2359 37.9923 21.4654C37.793 22.4791 37.585 23.49 37.3682 24.5008C37.3243 24.7099 37.3946 24.7825 37.5909 24.7825C37.9893 24.7825 38.3878 24.7825 38.7862 24.7825H38.7833Z"
fill="white"></path>
<path
d="M69.259 17.9973C70.7707 17.9973 72.2825 17.9973 73.7913 17.9973C74.2395 17.9973 74.2483 18.0147 74.1546 18.4562C73.9905 19.2288 73.8206 20.0015 73.677 20.777C73.6213 21.0733 73.4866 21.1779 73.1819 21.175C71.4006 21.1633 69.6193 21.1779 67.841 21.1633C67.507 21.1604 67.3547 21.265 67.299 21.5903C67.1994 22.1625 67.0734 22.729 66.9387 23.2954C66.8713 23.58 66.9562 23.6555 67.2463 23.6526C68.8869 23.641 70.5276 23.6468 72.1653 23.6468C72.637 23.6468 72.6545 23.6701 72.5666 24.1174C72.4172 24.8581 72.2532 25.5958 72.1213 26.3365C72.0569 26.6909 71.9192 26.839 71.5237 26.8332C69.9065 26.81 68.2893 26.8332 66.675 26.8187C66.3498 26.8158 66.2267 26.9291 66.1681 27.2341C65.9015 28.6254 65.6056 30.0109 65.342 31.4023C65.2804 31.7218 65.1632 31.8525 64.8175 31.8467C63.8566 31.8263 62.8956 31.8321 61.9347 31.8409C61.6212 31.8438 61.5275 31.7566 61.5948 31.4313C62.3449 27.7569 63.0802 24.0796 63.8214 20.4023C63.9591 19.7197 64.1056 19.0371 64.2316 18.3516C64.2785 18.096 64.3693 17.9827 64.6623 17.9857C66.1974 18.0031 67.7326 17.9944 69.2648 17.9944L69.259 17.9973Z"
fill="white"></path>
<path
d="M80.8548 17.9943C82.3783 17.9943 83.9017 18.0001 85.4252 17.9885C85.7181 17.9885 85.7972 18.067 85.7357 18.3516C85.5541 19.1562 85.3812 19.9637 85.2318 20.7741C85.1761 21.0762 85.0472 21.1778 84.7425 21.1749C82.9613 21.1633 81.18 21.1807 79.3987 21.1633C79.0442 21.1604 78.9007 21.2708 78.8479 21.6164C78.763 22.177 78.6458 22.7376 78.5081 23.2895C78.4319 23.5916 78.5345 23.6497 78.8128 23.6497C80.4534 23.641 82.0941 23.6468 83.7347 23.6497C84.2064 23.6497 84.2122 23.6642 84.1156 24.1261C83.9574 24.8871 83.7933 25.6481 83.6556 26.4149C83.5999 26.7199 83.4769 26.839 83.1488 26.8361C81.5198 26.8216 79.8909 26.8361 78.262 26.8245C77.9339 26.8245 77.7874 26.9058 77.7229 27.2457C77.4622 28.6254 77.1575 29.9993 76.8938 31.379C76.8264 31.7333 76.677 31.8583 76.3137 31.8495C75.3645 31.8263 74.4153 31.835 73.466 31.8437C73.1731 31.8437 73.0735 31.7711 73.1379 31.4545C73.9524 27.4722 74.7522 23.487 75.5579 19.5019C75.634 19.1271 75.7366 18.7554 75.7835 18.3748C75.8245 18.0495 75.9944 17.9943 76.2815 17.9972C77.805 18.006 79.3284 18.003 80.8519 18.003V17.9972L80.8548 17.9943Z"
fill="white"></path>
<path
d="M69.751 31.7769C70.4014 31.8728 70.999 31.9744 71.5967 32.0412C75.7891 32.5176 79.8409 31.9889 83.7287 30.3391C84.8713 29.854 85.9611 29.2644 87.0158 28.6108C87.2824 28.4453 87.3996 28.2797 87.3088 27.9602C87.2209 27.6494 87.1828 27.3241 87.1242 27.0046C87.1037 26.8826 87.01 26.7286 87.1242 26.6444C87.2385 26.5601 87.3644 26.6879 87.4699 26.7548C88.4397 27.3444 89.4065 27.9311 90.3703 28.5295C91.1643 29.0233 91.1614 29.0262 90.5989 29.7843C89.9045 30.7196 89.216 31.6607 88.5217 32.5931C88.4572 32.6802 88.4162 32.8371 88.2756 32.7993C88.1555 32.7674 88.1936 32.6222 88.1701 32.5263C88.0969 32.1865 88.0266 31.8437 87.965 31.501C87.9211 31.2541 87.8127 31.2076 87.5783 31.3034C85.4953 32.1458 83.3332 32.6919 81.1066 32.991C77.3595 33.4994 73.6797 33.2496 70.0938 31.9977C69.9883 31.9599 69.8652 31.9483 69.751 31.7798V31.7769Z"
fill="white"></path>
<path
d="M65.8896 15.0316C66.2324 15.0083 66.54 15.1274 66.8535 15.171C72.5343 15.9756 77.8634 15.081 82.7443 11.973C83.0432 11.7813 83.1252 11.5925 83.0314 11.2642C82.9435 10.9534 82.8996 10.6281 82.8439 10.3086C82.8293 10.2244 82.7648 10.114 82.8644 10.053C82.9582 9.99781 83.0432 10.085 83.1193 10.1314C84.1096 10.7327 85.094 11.3369 86.0813 11.9381C86.2893 12.0659 86.4973 12.1995 86.7082 12.3244C86.8811 12.4261 86.8899 12.5423 86.7698 12.6933C85.9026 13.8058 85.0412 14.9212 84.174 16.0337C84.1272 16.0947 84.0861 16.1905 83.9865 16.1586C83.8898 16.1295 83.9016 16.0279 83.8869 15.9524C83.8107 15.5893 83.7346 15.2262 83.6672 14.8602C83.6262 14.6365 83.5676 14.5378 83.301 14.6453C81.3029 15.444 79.2316 15.9698 77.0988 16.2544C75.1065 16.5188 73.1114 16.5449 71.1104 16.3271C69.4375 16.1441 67.8057 15.8013 66.2207 15.2407C66.1064 15.2 65.9629 15.203 65.8896 15.0345V15.0316Z"
fill="white"></path>
<path
d="M67.8024 37.6762C68.1276 37.1302 68.4997 36.6073 68.7663 36.0351C69.0592 35.4048 69.4577 35.0766 70.1725 35.2218C70.2165 35.2305 70.2663 35.2218 70.3132 35.2218C70.7175 35.2276 70.7468 35.2567 70.6764 35.643C70.4743 36.7264 70.2663 37.8098 70.0612 38.8933C70.0143 39.1315 69.9674 39.3726 69.9294 39.6136C69.8942 39.8315 69.7829 39.9215 69.5514 39.9302C68.7047 39.9593 68.7047 39.9651 68.8659 39.1344C68.986 38.5099 69.1061 37.8854 69.1559 37.2289C68.9567 37.5717 68.7604 37.9173 68.5612 38.2601C68.3122 38.6929 68.0573 39.1257 67.817 39.5643C67.7057 39.7647 67.5768 39.8954 67.3219 39.8634C67.0612 39.8286 67.067 39.6224 67.0319 39.4481C66.8766 38.6987 66.7242 37.9464 66.5133 37.1883C66.3961 37.8128 66.2789 38.4373 66.1617 39.0647C66.15 39.1228 66.1442 39.1808 66.1354 39.236C66.0035 39.9361 66.0035 39.9215 65.2682 39.9273C64.9371 39.9302 64.8668 39.8199 64.9283 39.5149C65.1568 38.3879 65.3678 37.258 65.5875 36.1281C65.6139 35.9915 65.6402 35.855 65.6695 35.7185C65.7379 35.3835 65.9381 35.216 66.2701 35.216C66.9303 35.216 67.32 35.5336 67.4391 36.1687C67.5329 36.6596 67.6325 37.1476 67.7291 37.6356C67.7555 37.6472 67.7819 37.6559 67.8082 37.6675L67.8024 37.6762Z"
fill="white"></path>
<path
d="M58.6563 37.9842C58.6681 36.3082 59.8868 35.1115 61.548 35.1521C62.5499 35.1754 63.2999 35.7941 63.4406 36.7787C63.6691 38.3763 62.4562 40.1656 60.423 39.9884C59.3126 39.8925 58.6475 39.1199 58.6563 37.9871V37.9842ZM59.8165 37.8099C59.8048 38.2543 59.8985 38.6551 60.3556 38.8498C60.8155 39.0444 61.2609 38.9747 61.6388 38.658C62.1368 38.2398 62.3478 37.685 62.2628 37.0431C62.1749 36.3605 61.6505 36.0264 60.9737 36.2007C60.297 36.375 59.8282 37.0256 59.8136 37.8099H59.8165Z"
fill="white"></path>
<path
d="M34.8758 39.9274C34.4305 39.9274 33.9852 39.9245 33.5399 39.9274C33.3143 39.9303 33.2176 39.8606 33.2645 39.6166C33.5311 38.2369 33.7889 36.8572 34.0438 35.4775C34.0789 35.2945 34.1727 35.219 34.3543 35.2219C35.2684 35.2219 36.1825 35.2219 37.0936 35.2219C37.3133 35.2219 37.3924 35.3119 37.3397 35.524C37.3221 35.5908 37.3192 35.6605 37.3075 35.7302C37.245 36.0633 37.0428 36.2298 36.701 36.2298C36.2674 36.2298 35.8338 36.2269 35.4002 36.2298C35.1043 36.2298 34.8143 36.6684 34.9198 36.9443C34.9666 37.0634 35.0721 37.0315 35.16 37.0315C35.6522 37.0344 36.1444 37.0489 36.6366 37.0315C36.9559 37.0199 37.0292 37.1477 36.9559 37.4265C36.9296 37.5282 36.9061 37.6298 36.8944 37.7344C36.871 37.9639 36.745 38.051 36.5165 38.0452C36.036 38.0365 35.5555 38.0394 35.075 38.0452C34.7528 38.0452 34.4334 38.5506 34.5682 38.8382C34.6209 38.9515 34.7264 38.9166 34.8143 38.9195C35.3416 38.9224 35.869 38.9311 36.3963 38.9195C36.6483 38.9137 36.745 39.0037 36.6835 39.2477C36.6747 39.2826 36.6747 39.3174 36.6688 39.3523C36.6024 39.7415 36.3661 39.9361 35.9598 39.9361C35.5965 39.9361 35.2332 39.9361 34.87 39.9361L34.8758 39.9274Z"
fill="white"></path>
<path
d="M78.8237 38.0422C77.1361 38.0422 75.4516 38.0422 73.764 38.0422C73.2806 38.0422 73.2689 38.0277 73.3539 37.5804C73.4281 37.1776 73.6732 36.9762 74.0892 36.9762C77.4145 36.9762 80.7397 36.9762 84.0649 36.9762C84.5776 36.9762 84.5835 36.9849 84.4809 37.4874C84.4067 37.8553 84.1831 38.0393 83.81 38.0393C82.146 38.0393 80.4848 38.0393 78.8207 38.0393L78.8237 38.0422Z"
fill="white"></path>
<path
d="M29.0368 36.9792C29.4616 36.5377 29.904 36.1078 30.3083 35.6489C30.5954 35.3236 30.9147 35.158 31.3512 35.2248C31.5739 35.2597 31.9167 35.1115 31.9928 35.3061C32.0661 35.4891 31.735 35.6489 31.5768 35.8086C31.1374 36.2589 30.695 36.7062 30.2321 37.1332C30.0299 37.3191 30.0182 37.473 30.1501 37.7025C30.5075 38.3299 30.8356 38.9689 31.1872 39.5992C31.3219 39.8403 31.2721 39.9332 30.9909 39.9245C29.8161 39.8984 30.1266 40.1017 29.6051 39.0967C29.4997 38.8905 29.3854 38.6842 29.3004 38.4693C29.1774 38.1643 29.0485 38.2224 28.8522 38.4112C28.6178 38.6378 28.6178 38.9369 28.5621 39.2129C28.4039 39.9942 28.6002 39.9216 27.6129 39.9245C27.358 39.9245 27.2906 39.8229 27.3405 39.5789C27.5543 38.4867 27.7565 37.3917 27.9616 36.2966C27.985 36.1717 28.0055 36.0439 28.0289 35.919C28.1637 35.2016 28.3248 35.0999 29.069 35.2219C29.3092 35.2626 29.2623 35.4136 29.2389 35.5588C29.1569 36.0207 29.069 36.4825 28.9811 36.9444C29.0016 36.956 29.0192 36.9647 29.0397 36.9763L29.0368 36.9792Z"
fill="white"></path>
<path
d="M45.7943 39.9971C45.267 39.9738 44.7133 39.8664 44.2445 39.4859C44.0424 39.3203 43.9955 39.1605 44.1918 38.9659C44.2093 38.9485 44.2211 38.9311 44.2386 38.9136C44.3881 38.751 44.5082 38.5157 44.6928 38.4431C44.9008 38.3589 45.0092 38.6609 45.1937 38.7539C45.5951 38.9543 46.0023 39.0618 46.4447 38.9107C46.6234 38.8497 46.7582 38.7365 46.767 38.5418C46.7758 38.3443 46.6264 38.2543 46.4652 38.2049C46.143 38.1032 45.809 38.0306 45.4896 37.9202C44.6049 37.6124 44.3383 36.8571 44.8129 36.0526C45.2025 35.3961 46.0609 35.0446 46.9604 35.1753C47.3588 35.2334 47.7309 35.3612 48.0619 35.5965C48.2377 35.7214 48.3051 35.8434 48.1322 36.0177C48.0824 36.0671 48.0443 36.1281 48.0004 36.1804C47.7719 36.4515 47.5024 36.5125 47.1918 36.3634C46.89 36.2181 46.5766 36.1339 46.2396 36.1775C46.017 36.2065 45.8119 36.3024 45.7826 36.5405C45.7504 36.7845 45.9818 36.8281 46.1547 36.8833C46.4096 36.9675 46.6762 37.0227 46.9311 37.1069C47.4115 37.2667 47.8715 37.47 47.9389 38.0481C48.0151 38.7219 47.7924 39.2883 47.1977 39.6659C46.7904 39.9245 46.3305 40 45.7973 40.0029L45.7943 39.9971Z"
fill="white"></path>
<path
d="M5.07682 38.0422C3.51821 38.0422 1.96253 38.0422 0.403916 38.0422C-0.0384717 38.0422 -0.0443311 38.0335 0.0435605 37.6094C0.131452 37.1873 0.398057 36.9762 0.843374 36.9762C3.84341 36.9762 6.84051 36.9762 9.84054 36.9762C10.2175 36.9762 10.3708 37.1553 10.3005 37.5136C10.2302 37.8718 10.0124 38.047 9.64718 38.0393C8.12373 38.0393 6.60027 38.0393 5.07975 38.0393L5.07682 38.0422Z"
fill="white"></path>
<path
d="M52.6826 37.9812C52.6914 36.0613 54.5401 34.6757 56.2422 35.2712C56.6524 35.4135 56.9307 35.6953 57.1387 36.0613C57.25 36.2559 57.209 36.3895 56.9922 36.4679C56.9043 36.4999 56.8135 36.5318 56.7373 36.5812C56.4385 36.7729 56.2159 36.7584 55.9815 36.4447C55.7412 36.1194 55.3574 36.1048 54.9883 36.2152C54.1797 36.4505 53.6436 37.4526 53.8867 38.2543C54.1182 39.0182 55.0821 39.2041 55.7149 38.6145C55.8174 38.5186 55.8789 38.292 56.0518 38.3618C56.3067 38.4663 56.5381 38.6348 56.7696 38.7887C56.837 38.8352 56.7842 38.9165 56.7432 38.9746C56.2627 39.6253 55.6153 39.9767 54.8008 39.9942C54.0274 40.0116 53.374 39.7734 52.9551 39.0763C52.7412 38.7248 52.668 38.3443 52.6855 37.9812H52.6826Z"
fill="white"></path>
<path
d="M21.4606 37.8941C21.4635 36.2966 22.7731 35.0563 24.4636 35.1579C25.1052 35.1957 25.5945 35.4978 25.9197 36.0555C26.0368 36.2559 26.0427 36.4011 25.782 36.4737C25.6823 36.5028 25.5798 36.5435 25.489 36.5928C25.2165 36.7497 25.0232 36.7729 24.7976 36.4592C24.5632 36.131 24.156 36.1019 23.7692 36.2094C22.902 36.4476 22.363 37.5368 22.697 38.3705C22.9665 39.0473 23.9245 39.1751 24.4958 38.6116C24.5954 38.5128 24.6511 38.2979 24.8415 38.3734C25.0993 38.478 25.3513 38.6145 25.5534 38.8091C25.6238 38.8788 25.5359 38.9572 25.4919 39.024C24.8298 40 23.2331 40.3108 22.2546 39.6427C21.6745 39.2477 21.446 38.6726 21.4606 37.8912V37.8941Z"
fill="white"></path>
<path
d="M14.983 35.2219C15.4986 35.2219 16.0113 35.2277 16.527 35.2219C16.776 35.219 16.8756 35.3119 16.8053 35.5588C16.7907 35.614 16.7877 35.6721 16.776 35.7302C16.7115 36.0632 16.5114 36.2298 16.1754 36.2298C15.4137 36.2298 15.4108 36.2298 15.2672 36.9763C15.1119 37.7954 14.9596 38.6174 14.8102 39.4394C14.7223 39.9216 14.7193 39.9245 14.2301 39.9274C13.7887 39.9274 13.61 39.7086 13.6939 39.271C13.8639 38.3821 14.025 37.4933 14.2066 36.6074C14.2652 36.3198 14.2066 36.1949 13.8873 36.2269C13.6676 36.2472 13.442 36.2298 13.2223 36.2269C13.0435 36.2269 12.9644 36.1397 13.0025 35.9597C13.0084 35.9364 13.0113 35.9132 13.0142 35.8899C13.0728 35.4426 13.3297 35.2199 13.7848 35.2219C13.9605 35.2219 14.1363 35.2219 14.3121 35.2219C14.5348 35.2219 14.7574 35.2219 14.9801 35.2219H14.983Z"
fill="white"></path>
<path
d="M41.2414 35.2219C41.7219 35.2219 42.2024 35.2393 42.6799 35.2161C43.0198 35.1987 43.0959 35.3352 43.011 35.6256C43.0051 35.6489 43.0022 35.6721 42.9993 35.6953C42.9309 36.0517 42.7151 36.2298 42.3518 36.2298C41.4524 36.2298 41.6457 36.1659 41.4875 36.9502C41.3117 37.8245 41.1447 38.7017 40.9953 39.5818C40.9514 39.8403 40.8488 39.9361 40.5852 39.9332C39.633 39.9158 39.759 40.0204 39.9201 39.1432C40.0783 38.2892 40.2424 37.4352 40.4211 36.5813C40.4768 36.3082 40.383 36.2124 40.1193 36.2327C40.049 36.2385 39.9787 36.2327 39.9084 36.2327C39.1203 36.2327 39.1994 36.3169 39.3313 35.5065C39.3664 35.2916 39.4895 35.2219 39.6975 35.2248C40.2131 35.2306 40.7258 35.2248 41.2414 35.2248V35.2219Z"
fill="white"></path>
<path
d="M18.5449 39.9216C18.4511 39.9216 18.3574 39.9216 18.2636 39.9216C18.0644 39.9216 17.9911 39.8374 18.0292 39.637C18.29 38.2689 18.5507 36.9008 18.8027 35.5327C18.8466 35.2887 18.9814 35.219 19.2158 35.2161C20.0214 35.2016 20.0097 35.1928 19.8574 35.9626C19.6347 37.1012 19.4296 38.2427 19.2128 39.3814C19.1103 39.9245 19.1074 39.9216 18.5419 39.9187L18.5449 39.9216Z"
fill="white"></path>
<path
d="M50.9005 39.2506C50.9005 39.6514 50.59 39.9797 50.212 39.9826C49.8839 39.9855 49.629 39.7357 49.6349 39.4133C49.6437 39.0095 49.9864 38.6493 50.3526 38.6522C50.6661 38.6522 50.9005 38.9108 50.9005 39.2506Z"
fill="white"></path>
</g>
<defs>
<clipPath id="clip0_117_3713">
<rect width="91" height="40" fill="white"></rect>
</clipPath>
</defs>
</svg>
</span>
<p class="footer__about">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet.</p>
</div>
<nav class="footer__cols" aria-label="Footer">
<div class="footer__col">
<h2 class="footer__ct">Quick Access</h2>
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="tours.html">Tours</a></li>
<li><a href="blog.html">Weblog</a></li>
<li><a href="contact.html">Contact us</a></li>
<li><a href="about.html">About us</a></li>
</ul>
</div>
<div class="footer__col">
<h2 class="footer__ct">Tours</h2>
<ul>
<li><a href="tours.html">London</a></li>
<li><a href="tours.html">Nashville</a></li>
<li><a href="tours.html">Sydney</a></li>
<li><a href="tours.html">San Diego</a></li>
<li><a href="tours.html">Paris</a></li>
</ul>
</div>
<div class="footer__col">
<h2 class="footer__ct">User Account</h2>
<ul>
<li><a href="#">Sign in</a></li>
<li><a href="#">Forget Password</a></li>
<li><a href="#">Booking History</a></li>
<li><a href="#">Support</a></li>
<li><a href="#">Dashboard</a></li>
</ul>
</div>
</nav>
</div>
<div class="container footer__bar">
<p class="footer__copy">&copy; 2026 Hop on Hop Off. All rights reserved.</p>
<ul class="socials">
<li><a href="#" aria-label="WhatsApp"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-whatsapp" />
</svg></a></li>
<li><a href="#" aria-label="Instagram"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-instagram" />
</svg></a></li>
<li><a href="#" aria-label="Telegram"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-telegram" />
</svg></a></li>
<li><a href="#" aria-label="Facebook"><svg class="icon icon--20" aria-hidden="true">
<use href="#i-facebook" />
</svg></a></li>
</ul>
</div>
<a class="support" href="#" aria-label="Support">
<svg class="ring-badge__ring support__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text">
<textPath href="#ringPathScroll" startOffset="0">SUPPORT &#183; SUPPORT &#183; SUPPORT &#183; </textPath>
</text>
</svg>
<span class="support__tab">
<svg class="icon icon--24" aria-hidden="true">
<use href="#i-headset" />
</svg>
</span>
</a>
</footer>
<script src="js/main.js"></script>
</body>
</html>

View File

@@ -303,10 +303,10 @@
<li><a href="tours.html">Paris</a></li> <li><a href="tours.html">Paris</a></li>
</ul> </ul>
</li> </li>
<li><a class="nav__link" href="index.html#articles">Weblog</a></li> <li><a class="nav__link" href="blog.html">Weblog</a></li>
<li><a class="nav__link" href="index.html#faq">FAQ&rsquo;s</a></li> <li><a class="nav__link" href="faq.html">FAQ&rsquo;s</a></li>
<li><a class="nav__link" href="#footer">Contact us</a></li> <li><a class="nav__link" href="contact.html">Contact us</a></li>
<li><a class="nav__link" href="index.html#about">About us</a></li> <li><a class="nav__link" href="about.html">About us</a></li>
</ul> </ul>
</nav> </nav>
</div> </div>
@@ -758,9 +758,9 @@
<ul> <ul>
<li><a href="index.html">Home</a></li> <li><a href="index.html">Home</a></li>
<li><a href="tours.html">Tours</a></li> <li><a href="tours.html">Tours</a></li>
<li><a href="index.html#articles">Weblog</a></li> <li><a href="blog.html">Weblog</a></li>
<li><a href="#footer">Contact us</a></li> <li><a href="contact.html">Contact us</a></li>
<li><a href="index.html#about">About us</a></li> <li><a href="about.html">About us</a></li>
</ul> </ul>
</div> </div>
<div class="footer__col"> <div class="footer__col">

View File

@@ -303,10 +303,10 @@
<li><a href="tours.html">Paris</a></li> <li><a href="tours.html">Paris</a></li>
</ul> </ul>
</li> </li>
<li><a class="nav__link" href="index.html#articles">Weblog</a></li> <li><a class="nav__link" href="blog.html">Weblog</a></li>
<li><a class="nav__link" href="index.html#faq">FAQ&rsquo;s</a></li> <li><a class="nav__link" href="faq.html">FAQ&rsquo;s</a></li>
<li><a class="nav__link" href="#footer">Contact us</a></li> <li><a class="nav__link" href="contact.html">Contact us</a></li>
<li><a class="nav__link" href="index.html#about">About us</a></li> <li><a class="nav__link" href="about.html">About us</a></li>
</ul> </ul>
</nav> </nav>
</div> </div>
@@ -573,7 +573,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">7 Days</span> <span class="meta__v">7 Days</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-nashville.html"
aria-label="Open the Nashville Night tours tour"> aria-label="Open the Nashville Night tours tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -614,7 +614,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">3 Days</span> <span class="meta__v">3 Days</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-sydney.html"
aria-label="Open the Sydney Food &amp; drink tour"> aria-label="Open the Sydney Food &amp; drink tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -655,7 +655,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">1 Day</span> <span class="meta__v">1 Day</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-san-diego.html"
aria-label="Open the San Diego Museums tour"> aria-label="Open the San Diego Museums tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -696,7 +696,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">Half day</span> <span class="meta__v">Half day</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-paris.html"
aria-label="Open the Paris River cruises tour"> aria-label="Open the Paris River cruises tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -778,7 +778,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">3 Days</span> <span class="meta__v">3 Days</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-nashville.html"
aria-label="Open the Nashville Food &amp; drink tour"> aria-label="Open the Nashville Food &amp; drink tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -819,7 +819,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">1 Day</span> <span class="meta__v">1 Day</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-sydney.html"
aria-label="Open the Sydney Museums tour"> aria-label="Open the Sydney Museums tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -860,7 +860,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">Half day</span> <span class="meta__v">Half day</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-san-diego.html"
aria-label="Open the San Diego River cruises tour"> aria-label="Open the San Diego River cruises tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -901,7 +901,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">7 Days</span> <span class="meta__v">7 Days</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-paris.html"
aria-label="Open the Paris City sightseeing tour"> aria-label="Open the Paris City sightseeing tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -983,7 +983,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">1 Day</span> <span class="meta__v">1 Day</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-nashville.html"
aria-label="Open the Nashville Museums tour"> aria-label="Open the Nashville Museums tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -1024,7 +1024,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">Half day</span> <span class="meta__v">Half day</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-sydney.html"
aria-label="Open the Sydney River cruises tour"> aria-label="Open the Sydney River cruises tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -1065,7 +1065,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">7 Days</span> <span class="meta__v">7 Days</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-san-diego.html"
aria-label="Open the San Diego City sightseeing tour"> aria-label="Open the San Diego City sightseeing tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -1106,7 +1106,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">3 Days</span> <span class="meta__v">3 Days</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-paris.html"
aria-label="Open the Paris Night tours tour"> aria-label="Open the Paris Night tours tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -1188,7 +1188,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">Half day</span> <span class="meta__v">Half day</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-nashville.html"
aria-label="Open the Nashville River cruises tour"> aria-label="Open the Nashville River cruises tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -1229,7 +1229,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">7 Days</span> <span class="meta__v">7 Days</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-sydney.html"
aria-label="Open the Sydney City sightseeing tour"> aria-label="Open the Sydney City sightseeing tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -1270,7 +1270,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">3 Days</span> <span class="meta__v">3 Days</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-san-diego.html"
aria-label="Open the San Diego Night tours tour"> aria-label="Open the San Diego Night tours tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -1311,7 +1311,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">1 Day</span> <span class="meta__v">1 Day</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-paris.html"
aria-label="Open the Paris Food &amp; drink tour"> aria-label="Open the Paris Food &amp; drink tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -1393,7 +1393,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">7 Days</span> <span class="meta__v">7 Days</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-nashville.html"
aria-label="Open the Nashville City sightseeing tour"> aria-label="Open the Nashville City sightseeing tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -1434,7 +1434,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">3 Days</span> <span class="meta__v">3 Days</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-sydney.html"
aria-label="Open the Sydney Night tours tour"> aria-label="Open the Sydney Night tours tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -1475,7 +1475,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">1 Day</span> <span class="meta__v">1 Day</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-san-diego.html"
aria-label="Open the San Diego Food &amp; drink tour"> aria-label="Open the San Diego Food &amp; drink tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -1516,7 +1516,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">Half day</span> <span class="meta__v">Half day</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-paris.html"
aria-label="Open the Paris Museums tour"> aria-label="Open the Paris Museums tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -1598,7 +1598,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">3 Days</span> <span class="meta__v">3 Days</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-nashville.html"
aria-label="Open the Nashville Night tours tour"> aria-label="Open the Nashville Night tours tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -1639,7 +1639,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">1 Day</span> <span class="meta__v">1 Day</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-sydney.html"
aria-label="Open the Sydney Food &amp; drink tour"> aria-label="Open the Sydney Food &amp; drink tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -1680,7 +1680,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">Half day</span> <span class="meta__v">Half day</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-san-diego.html"
aria-label="Open the San Diego Museums tour"> aria-label="Open the San Diego Museums tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -1721,7 +1721,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">7 Days</span> <span class="meta__v">7 Days</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-paris.html"
aria-label="Open the Paris River cruises tour"> aria-label="Open the Paris River cruises tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -1803,7 +1803,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">1 Day</span> <span class="meta__v">1 Day</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-nashville.html"
aria-label="Open the Nashville Food &amp; drink tour"> aria-label="Open the Nashville Food &amp; drink tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -1844,7 +1844,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">Half day</span> <span class="meta__v">Half day</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-sydney.html"
aria-label="Open the Sydney Museums tour"> aria-label="Open the Sydney Museums tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -1885,7 +1885,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">7 Days</span> <span class="meta__v">7 Days</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-san-diego.html"
aria-label="Open the San Diego River cruises tour"> aria-label="Open the San Diego River cruises tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -1926,7 +1926,7 @@
<span class="meta__k">Duration</span> <span class="meta__k">Duration</span>
<span class="meta__v">3 Days</span> <span class="meta__v">3 Days</span>
</div> </div>
<a class="ring-badge ring-badge--card" href="tour.html" <a class="ring-badge ring-badge--card" href="tour-paris.html"
aria-label="Open the Paris City sightseeing tour"> aria-label="Open the Paris City sightseeing tour">
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true"> <svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"> <text class="ring-badge__text">
@@ -2125,9 +2125,9 @@
<ul> <ul>
<li><a href="index.html">Home</a></li> <li><a href="index.html">Home</a></li>
<li><a href="tours.html">Tours</a></li> <li><a href="tours.html">Tours</a></li>
<li><a href="index.html#articles">Weblog</a></li> <li><a href="blog.html">Weblog</a></li>
<li><a href="#footer">Contact us</a></li> <li><a href="contact.html">Contact us</a></li>
<li><a href="index.html#about">About us</a></li> <li><a href="about.html">About us</a></li>
</ul> </ul>
</div> </div>
<div class="footer__col"> <div class="footer__col">

BIN
removed-images/bus-iso.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 B

BIN
removed-images/hero.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 KiB

BIN
removed-images/hero2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 696 KiB

BIN
removed-images/hero3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 825 KiB

BIN
removed-images/tower.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

View File

@@ -1,774 +0,0 @@
<div className="flex flex-col justify-start items-start w-[856px] gap-8">
<div className="flex justify-between items-center self-stretch flex-grow-0 flex-shrink-0 relative">
<p className="flex-grow-0 flex-shrink-0 text-[40px] text-left text-black">London Tour</p>
<div className="flex justify-start items-center flex-grow-0 flex-shrink-0 relative gap-6">
<div className="flex justify-center items-center flex-grow-0 flex-shrink-0 relative gap-1 rounded-[40px]">
<svg
width={12}
height={12}
viewBox="0 0 12 12"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0"
preserveAspectRatio="xMidYMid meet"
>
<path
d="M4.21205 2.06452C4.94362 0.701462 5.30941 0.0199316 5.87277 0.000393684C6.43613 -0.0191442 6.82396 0.636249 7.59964 1.94704L7.80031 2.28615C8.02074 2.65864 8.13095 2.84488 8.29997 2.96443C8.46899 3.08397 8.67769 3.12328 9.09509 3.20191L9.4751 3.27349C10.9439 3.55018 11.6784 3.68853 11.8616 4.2361C12.0448 4.78366 11.5555 5.37782 10.5768 6.56613L10.3236 6.87356C10.0455 7.21124 9.90649 7.38008 9.84606 7.58508C9.78563 7.79009 9.81067 8.00806 9.86075 8.44399L9.90634 8.84087C10.0826 10.3749 10.1707 11.142 9.72055 11.4999C9.27043 11.8579 8.58018 11.5697 7.19966 10.9933L6.84251 10.8442C6.45021 10.6804 6.25406 10.5985 6.04769 10.6057C5.84132 10.6128 5.6481 10.7082 5.26165 10.899L4.90982 11.0727C3.54988 11.7441 2.86992 12.0799 2.40851 11.7535C1.9471 11.4272 2.00982 10.6549 2.13527 9.11038L2.16772 8.71079C2.20337 8.27189 2.2212 8.05243 2.15408 7.85185C2.08696 7.65127 1.9425 7.49226 1.65359 7.17424L1.39055 6.88472C0.373843 5.76561 -0.134512 5.20605 0.0304441 4.64641C0.1954 4.08677 0.924422 3.89767 2.38246 3.51947L2.75968 3.42163C3.17401 3.31416 3.38117 3.26042 3.54606 3.1293C3.71095 2.99817 3.8149 2.8045 4.02279 2.41716L4.21205 2.06452Z"
fill="#FFCC00"
/>
</svg>
<div className="flex justify-start items-center flex-grow-0 flex-shrink-0 relative gap-0.5">
<p className="flex-grow-0 flex-shrink-0 text-base font-medium text-left text-black">
4.8
</p>
<p className="flex-grow-0 flex-shrink-0 opacity-30 text-xs font-medium text-left text-black">
/5
</p>
</div>
</div>
<svg
width={1}
height={24}
viewBox="0 0 1 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0"
preserveAspectRatio="none"
>
<line x1="0.5" y1={24} x2="0.499999" y2="2.18557e-8" stroke="black" stroke-opacity="0.1" />
</svg>
<div className="flex justify-start items-center flex-grow-0 flex-shrink-0 relative gap-2">
<svg
width={16}
height={16}
viewBox="0 0 16 16"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0 w-4 h-4 relative"
preserveAspectRatio="xMidYMid meet"
>
<g opacity="0.5">
<path
d="M2.66699 6.76224C2.66699 3.76396 5.05481 1.33337 8.00033 1.33337C10.9458 1.33337 13.3337 3.76396 13.3337 6.76224C13.3337 9.73702 11.6314 13.2083 8.97561 14.4497C8.3565 14.7391 7.64415 14.7391 7.02504 14.4497C4.36921 13.2083 2.66699 9.73702 2.66699 6.76224Z"
stroke="black"
stroke-width="1.5"
/>
<circle cx={8} cy="6.66663" r={2} stroke="black" stroke-width="1.5" />
</g>
</svg>
<p className="flex-grow-0 flex-shrink-0 text-base font-medium text-left text-black">
London
</p>
</div>
<svg
width={1}
height={24}
viewBox="0 0 1 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0"
preserveAspectRatio="none"
>
<line x1="0.5" y1={24} x2="0.499999" y2="2.18557e-8" stroke="black" stroke-opacity="0.1" />
</svg>
<div className="flex justify-start items-center flex-grow-0 flex-shrink-0 relative gap-2">
<svg
width={16}
height={16}
viewBox="0 0 16 16"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0 w-4 h-4 relative"
preserveAspectRatio="xMidYMid meet"
>
<g opacity="0.5">
<circle cx="7.99967" cy="4.00004" r="2.66667" stroke="black" stroke-width="1.5" />
<ellipse
cx="7.99967"
cy="11.3333"
rx="4.66667"
ry="2.66667"
stroke="black"
stroke-width="1.5"
/>
</g>
</svg>
<p className="flex-grow-0 flex-shrink-0 text-base font-medium text-left text-black">
from Mr. Bill
</p>
</div>
</div>
</div>
<div className="flex justify-start items-center self-stretch flex-grow-0 flex-shrink-0 gap-2">
<div className="flex justify-start items-center flex-grow relative gap-2 p-6 rounded-3xl bg-[#2cafc2]/5 backdrop-blur-[20px]">
<svg
width={16}
height={16}
viewBox="0 0 16 16"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0 w-4 h-4 relative"
preserveAspectRatio="xMidYMid meet"
>
<g clip-path="url(#clip0_117_4920)">
<path
d="M1.33366 8.00004C1.33366 11.6819 4.31843 14.6667 8.00033 14.6667C11.6822 14.6667 14.667 11.6819 14.667 8.00004C14.667 4.31814 11.6822 1.33337 8.00033 1.33337"
stroke="#2CAFC2"
stroke-width="1.5"
stroke-linecap="round"
/>
<path
d="M8 6V8.66667H10.6667"
stroke="#2CAFC2"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
/>
<circle
cx="7.99967"
cy="8.00004"
r="6.66667"
stroke="#2CAFC2"
stroke-width="1.5"
stroke-linecap="round"
stroke-dasharray="0.5 3.5"
/>
</g>
<defs>
<clippath id="clip0_117_4920">
<rect width={16} height={16} fill="white" />
</clippath>
</defs>
</svg>
<div className="flex flex-col justify-center items-start flex-grow-0 flex-shrink-0 relative">
<p className="flex-grow-0 flex-shrink-0 text-xs font-medium text-left text-[#2cafc2]">
Duration
</p>
<p className="flex-grow-0 flex-shrink-0 text-base font-medium text-left text-black">
1h 30m
</p>
</div>
</div>
<div className="flex justify-start items-center flex-grow relative gap-2 p-6 rounded-3xl bg-[#2cafc2]/5 backdrop-blur-[20px]">
<svg
width={16}
height={16}
viewBox="0 0 16 16"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0 w-4 h-4 relative"
preserveAspectRatio="xMidYMid meet"
>
<circle cx="7.99967" cy="4.00004" r="2.66667" stroke="#2CAFC2" stroke-width="1.5" />
<ellipse
cx="7.99967"
cy="11.3333"
rx="4.66667"
ry="2.66667"
stroke="#2CAFC2"
stroke-width="1.5"
/>
</svg>
<div className="flex flex-col justify-center items-start flex-grow-0 flex-shrink-0 relative">
<p className="flex-grow-0 flex-shrink-0 text-xs font-medium text-left text-[#2cafc2]">
Max Travelers
</p>
<p className="flex-grow-0 flex-shrink-0 text-base font-medium text-left text-black">
15 people
</p>
</div>
</div>
<div className="flex justify-start items-center flex-grow relative gap-2 p-6 rounded-3xl bg-[#2cafc2]/5 backdrop-blur-[20px]">
<svg
width={16}
height={16}
viewBox="0 0 16 16"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0 w-4 h-4 relative"
preserveAspectRatio="xMidYMid meet"
>
<path
d="M2 6.94448C2 4.81275 2 3.74689 2.25168 3.38831C2.50335 3.02973 3.50555 2.68668 5.50994 2.00057L5.89182 1.86985C6.93666 1.5122 7.45907 1.33337 8 1.33337C8.54093 1.33337 9.06335 1.5122 10.1082 1.86985L10.4901 2.00057C12.4945 2.68668 13.4966 3.02973 13.7483 3.38831C14 3.74689 14 4.81275 14 6.94448C14 7.26647 14 7.61565 14 7.99428C14 11.753 11.174 13.577 9.40096 14.3516C8.91999 14.5617 8.67951 14.6667 8 14.6667C7.32049 14.6667 7.08001 14.5617 6.59904 14.3516C4.82597 13.577 2 11.753 2 7.99428C2 7.61565 2 7.26647 2 6.94448Z"
stroke="#2CAFC2"
stroke-width="1.5"
/>
<path
d="M6.33301 8.26663L7.28539 9.33329L9.66634 6.66663"
stroke="#2CAFC2"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg>
<div className="flex flex-col justify-center items-start flex-grow-0 flex-shrink-0 relative">
<p className="flex-grow-0 flex-shrink-0 text-xs font-medium text-left text-[#2cafc2]">
Free Cancellation
</p>
<p className="flex-grow-0 flex-shrink-0 text-base font-medium text-left text-black">
Up to 24 hrs
</p>
</div>
</div>
<div className="flex justify-start items-center flex-grow relative gap-2 p-6 rounded-3xl bg-[#2cafc2]/5 backdrop-blur-[20px]">
<svg
width={16}
height={16}
viewBox="0 0 16 16"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0 w-4 h-4 relative"
preserveAspectRatio="xMidYMid meet"
>
<g clip-path="url(#clip0_117_4935)">
<path
d="M1.66699 4.33329C1.66699 3.07621 1.66699 2.44767 2.05752 2.05715C2.44804 1.66663 3.07658 1.66663 4.33366 1.66663C5.59074 1.66663 6.21928 1.66663 6.6098 2.05715C7.00033 2.44767 7.00033 3.07621 7.00033 4.33329C7.00033 5.59037 7.00033 6.21891 6.6098 6.60944C6.21928 6.99996 5.59074 6.99996 4.33366 6.99996C3.07658 6.99996 2.44804 6.99996 2.05752 6.60944C1.66699 6.21891 1.66699 5.59037 1.66699 4.33329Z"
stroke="#2CAFC2"
stroke-width="1.5"
/>
<path
d="M9 11.6667C9 10.4096 9 9.78105 9.39052 9.39052C9.78105 9 10.4096 9 11.6667 9C12.9237 9 13.5523 9 13.9428 9.39052C14.3333 9.78105 14.3333 10.4096 14.3333 11.6667C14.3333 12.9237 14.3333 13.5523 13.9428 13.9428C13.5523 14.3333 12.9237 14.3333 11.6667 14.3333C10.4096 14.3333 9.78105 14.3333 9.39052 13.9428C9 13.5523 9 12.9237 9 11.6667Z"
stroke="#2CAFC2"
stroke-width="1.5"
/>
<path
d="M1.66699 11.6667C1.66699 10.4096 1.66699 9.78105 2.05752 9.39052C2.44804 9 3.07658 9 4.33366 9C5.59074 9 6.21928 9 6.6098 9.39052C7.00033 9.78105 7.00033 10.4096 7.00033 11.6667C7.00033 12.9237 7.00033 13.5523 6.6098 13.9428C6.21928 14.3333 5.59074 14.3333 4.33366 14.3333C3.07658 14.3333 2.44804 14.3333 2.05752 13.9428C1.66699 13.5523 1.66699 12.9237 1.66699 11.6667Z"
stroke="#2CAFC2"
stroke-width="1.5"
/>
<path
d="M9 4.33329C9 3.07621 9 2.44767 9.39052 2.05715C9.78105 1.66663 10.4096 1.66663 11.6667 1.66663C12.9237 1.66663 13.5523 1.66663 13.9428 2.05715C14.3333 2.44767 14.3333 3.07621 14.3333 4.33329C14.3333 5.59037 14.3333 6.21891 13.9428 6.60944C13.5523 6.99996 12.9237 6.99996 11.6667 6.99996C10.4096 6.99996 9.78105 6.99996 9.39052 6.60944C9 6.21891 9 5.59037 9 4.33329Z"
stroke="#2CAFC2"
stroke-width="1.5"
/>
</g>
<defs>
<clippath id="clip0_117_4935">
<rect width={16} height={16} rx={5} fill="white" />
</clippath>
</defs>
</svg>
<div className="flex flex-col justify-center items-start flex-grow-0 flex-shrink-0 relative">
<p className="flex-grow-0 flex-shrink-0 text-xs font-medium text-left text-[#2cafc2]">
Category
</p>
<p className="flex-grow-0 flex-shrink-0 text-base font-medium text-left text-black">
Best Conversion
</p>
</div>
</div>
</div>
<div className="flex flex-col justify-start items-start self-stretch flex-grow-0 flex-shrink-0 relative gap-2">
<p className="self-stretch flex-grow-0 flex-shrink-0 w-[856px] text-base font-bold text-left text-black">
Overview
</p>
<p className="self-stretch flex-grow-0 flex-shrink-0 w-[856px] opacity-70 text-base font-medium text-justify text-black">
<span className="self-stretch flex-grow-0 flex-shrink-0 w-[856px] opacity-70 text-base font-medium text-justify text-black">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet,
consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna
aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliquaLorem
ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua
</span>
<br />
<br />
<span className="self-stretch flex-grow-0 flex-shrink-0 w-[856px] opacity-70 text-base font-medium text-justify text-black">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
labore et dolore magna aliquaLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliquaLorem ipsum dolor sit amet,
consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua
</span>
</p>
</div>
<div className="flex flex-col justify-start items-start self-stretch flex-grow-0 flex-shrink-0 relative gap-2">
<p className="self-stretch flex-grow-0 flex-shrink-0 w-[856px] text-base font-bold text-left text-black">
Gallery
</p>
<div className="flex-grow-0 flex-shrink-0 w-[856px] h-[399px]">
<img
src="rectangle-4.png"
className="w-[350px] h-[399px] absolute left-[-0.5px] top-[29.5px] rounded-3xl object-cover"
/>
<div className="flex justify-start items-center w-[490px] absolute left-[366px] top-[30px] gap-4">
<img src="rectangle-5.png" className="flex-grow h-[193.59px] rounded-2xl object-none" />
<img src="rectangle-6.png" className="flex-grow h-[193.59px] rounded-2xl object-none" />
</div>
<div className="flex justify-start items-center w-[490px] absolute left-[366px] top-[235px] gap-4">
<img src="rectangle-5-2.png" className="flex-grow h-[193.59px] rounded-2xl object-cover" />
<img src="rectangle-6-2.png" className="flex-grow h-[193.59px] rounded-2xl object-none" />
</div>
</div>
</div>
<div className="flex justify-start items-start self-stretch flex-grow-0 flex-shrink-0 gap-[27px]">
<div className="flex flex-col justify-start items-start flex-grow relative gap-4">
<p className="self-stretch flex-grow-0 flex-shrink-0 w-[414.5px] text-base font-bold text-left text-black">
Whats included
</p>
<div className="flex justify-start items-center self-stretch flex-grow-0 flex-shrink-0 relative gap-4">
<div className="flex justify-center items-center flex-grow-0 flex-shrink-0 w-6 h-6 relative gap-2 p-2 rounded-[40px] bg-[#34c759]/10">
<svg
width={11}
height={9}
viewBox="0 0 11 9"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0"
preserveAspectRatio="xMidYMid meet"
>
<path
d="M0.75 4.95L3.32143 7.75L9.75 0.75"
stroke="#34C759"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg>
</div>
<p className="flex-grow w-[374.5px] opacity-70 text-base font-medium text-justify text-black">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.
</p>
</div>
<div className="flex justify-start items-center self-stretch flex-grow-0 flex-shrink-0 relative gap-4">
<div className="flex justify-center items-center flex-grow-0 flex-shrink-0 w-6 h-6 relative gap-2 p-2 rounded-[40px] bg-[#34c759]/10">
<svg
width={11}
height={9}
viewBox="0 0 11 9"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0"
preserveAspectRatio="xMidYMid meet"
>
<path
d="M0.75 4.95L3.32143 7.75L9.75 0.75"
stroke="#34C759"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg>
</div>
<p className="flex-grow w-[374.5px] opacity-70 text-base font-medium text-justify text-black">
ed do eiusmod tempor incididunt ut labore et dolo
</p>
</div>
<div className="flex justify-start items-center self-stretch flex-grow-0 flex-shrink-0 relative gap-4">
<div className="flex justify-center items-center flex-grow-0 flex-shrink-0 w-6 h-6 relative gap-2 p-2 rounded-[40px] bg-[#34c759]/10">
<svg
width={11}
height={9}
viewBox="0 0 11 9"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0"
preserveAspectRatio="xMidYMid meet"
>
<path
d="M0.75 4.95L3.32143 7.75L9.75 0.75"
stroke="#34C759"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg>
</div>
<p className="flex-grow w-[374.5px] opacity-70 text-base font-medium text-justify text-black">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.
</p>
</div>
<div className="flex justify-start items-center self-stretch flex-grow-0 flex-shrink-0 relative gap-4">
<div className="flex justify-center items-center flex-grow-0 flex-shrink-0 w-6 h-6 relative gap-2 p-2 rounded-[40px] bg-[#34c759]/10">
<svg
width={11}
height={9}
viewBox="0 0 11 9"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0"
preserveAspectRatio="xMidYMid meet"
>
<path
d="M0.75 4.95L3.32143 7.75L9.75 0.75"
stroke="#34C759"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg>
</div>
<p className="flex-grow w-[374.5px] opacity-70 text-base font-medium text-justify text-black">
ed do eiusmod tempor incididunt ut labore et dolo
</p>
</div>
</div>
<div className="flex flex-col justify-start items-start flex-grow relative gap-4">
<p className="self-stretch flex-grow-0 flex-shrink-0 w-[414.5px] text-base font-bold text-left text-black">
Whats Not included
</p>
<div className="flex justify-start items-center self-stretch flex-grow-0 flex-shrink-0 relative gap-4">
<div className="flex justify-center items-center flex-grow-0 flex-shrink-0 w-6 h-6 relative gap-2 p-2 rounded-[40px] bg-[#ff383c]/10">
<svg
width={11}
height={11}
viewBox="0 0 11 11"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0"
preserveAspectRatio="xMidYMid meet"
>
<path
d="M9.74996 0.750036L0.75 9.75M0.749962 0.75L9.74992 9.74996"
stroke="#FF383C"
stroke-width="1.5"
stroke-linecap="round"
/>
</svg>
</div>
<p className="flex-grow w-[374.5px] opacity-70 text-base font-medium text-justify text-black">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.
</p>
</div>
<div className="flex justify-start items-center self-stretch flex-grow-0 flex-shrink-0 relative gap-4">
<div className="flex justify-center items-center flex-grow-0 flex-shrink-0 w-6 h-6 relative gap-2 p-2 rounded-[40px] bg-[#ff383c]/10">
<svg
width={11}
height={11}
viewBox="0 0 11 11"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0"
preserveAspectRatio="xMidYMid meet"
>
<path
d="M9.74996 0.750036L0.75 9.75M0.749962 0.75L9.74992 9.74996"
stroke="#FF383C"
stroke-width="1.5"
stroke-linecap="round"
/>
</svg>
</div>
<p className="flex-grow w-[374.5px] opacity-70 text-base font-medium text-justify text-black">
ed do eiusmod tempor incididunt ut labore et dolo
</p>
</div>
<div className="flex justify-start items-center self-stretch flex-grow-0 flex-shrink-0 relative gap-4">
<div className="flex justify-center items-center flex-grow-0 flex-shrink-0 w-6 h-6 relative gap-2 p-2 rounded-[40px] bg-[#ff383c]/10">
<svg
width={11}
height={11}
viewBox="0 0 11 11"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0"
preserveAspectRatio="xMidYMid meet"
>
<path
d="M9.74996 0.750036L0.75 9.75M0.749962 0.75L9.74992 9.74996"
stroke="#FF383C"
stroke-width="1.5"
stroke-linecap="round"
/>
</svg>
</div>
<p className="flex-grow w-[374.5px] opacity-70 text-base font-medium text-justify text-black">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.
</p>
</div>
</div>
</div>
<div className="flex flex-col justify-start items-start self-stretch flex-grow-0 flex-shrink-0 relative gap-2">
<p className="self-stretch flex-grow-0 flex-shrink-0 w-[856px] text-base font-bold text-left text-black">
Good to know
</p>
<div className="flex justify-start items-center self-stretch flex-grow-0 flex-shrink-0 gap-2">
<div className="flex justify-start items-center flex-grow relative gap-3 px-4 py-6 rounded-3xl bg-[#2cafc2]/5 backdrop-blur-[20px]">
<svg
width={16}
height={16}
viewBox="0 0 16 16"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0 w-4 h-4 relative"
preserveAspectRatio="xMidYMid meet"
>
<g clip-path="url(#clip0_117_4989)">
<circle cx="7.99967" cy="7.99992" r="6.66667" stroke="#2CAFC2" stroke-width="1.5" />
<path
d="M8 11.3333V7.33325"
stroke="#2CAFC2"
stroke-width="1.5"
stroke-linecap="round"
/>
<circle
cx="0.666667"
cy="0.666667"
r="0.666667"
transform="matrix(1 0 0 -1 7.33301 6)"
fill="#2CAFC2"
/>
</g>
<defs>
<clippath id="clip0_117_4989">
<rect width={16} height={16} fill="white" />
</clippath>
</defs>
</svg>
<p className="flex-grow w-[220px] text-base font-medium text-left text-black">
Public transportation options are available nearby
</p>
</div>
<div className="flex justify-start items-center flex-grow relative gap-3 px-4 py-6 rounded-3xl bg-[#2cafc2]/5 backdrop-blur-[20px]">
<svg
width={16}
height={16}
viewBox="0 0 16 16"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0 w-4 h-4 relative"
preserveAspectRatio="xMidYMid meet"
>
<g clip-path="url(#clip0_117_4992)">
<circle cx="7.99967" cy="7.99992" r="6.66667" stroke="#2CAFC2" stroke-width="1.5" />
<path
d="M8 11.3333V7.33325"
stroke="#2CAFC2"
stroke-width="1.5"
stroke-linecap="round"
/>
<circle
cx="0.666667"
cy="0.666667"
r="0.666667"
transform="matrix(1 0 0 -1 7.33301 6)"
fill="#2CAFC2"
/>
</g>
<defs>
<clippath id="clip0_117_4992">
<rect width={16} height={16} fill="white" />
</clippath>
</defs>
</svg>
<p className="flex-grow w-[220px] text-base font-medium text-left text-black">
Infants are required to sit on an adultu2019s lap
</p>
</div>
<div className="flex justify-start items-center flex-grow relative gap-3 px-4 py-6 rounded-3xl bg-[#2cafc2]/5 backdrop-blur-[20px]">
<svg
width={16}
height={16}
viewBox="0 0 16 16"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0 w-4 h-4 relative"
preserveAspectRatio="xMidYMid meet"
>
<g clip-path="url(#clip0_117_4995)">
<circle cx="7.99967" cy="7.99992" r="6.66667" stroke="#2CAFC2" stroke-width="1.5" />
<path
d="M8 11.3333V7.33325"
stroke="#2CAFC2"
stroke-width="1.5"
stroke-linecap="round"
/>
<circle
cx="0.666667"
cy="0.666667"
r="0.666667"
transform="matrix(1 0 0 -1 7.33301 6)"
fill="#2CAFC2"
/>
</g>
<defs>
<clippath id="clip0_117_4995">
<rect width={16} height={16} fill="white" />
</clippath>
</defs>
</svg>
<p className="flex-grow w-[220px] text-base font-medium text-left text-black">
Not recommended for travelers with spinal injuries
</p>
</div>
</div>
<div className="flex justify-start items-center self-stretch flex-grow-0 flex-shrink-0 gap-2">
<div className="flex justify-start items-center flex-grow relative gap-3 px-4 py-6 rounded-3xl bg-[#2cafc2]/5 backdrop-blur-[20px]">
<svg
width={16}
height={16}
viewBox="0 0 16 16"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0 w-4 h-4 relative"
preserveAspectRatio="xMidYMid meet"
>
<g clip-path="url(#clip0_117_4999)">
<circle cx="7.99967" cy="7.99992" r="6.66667" stroke="#2CAFC2" stroke-width="1.5" />
<path
d="M8 11.3333V7.33325"
stroke="#2CAFC2"
stroke-width="1.5"
stroke-linecap="round"
/>
<circle
cx="0.666667"
cy="0.666667"
r="0.666667"
transform="matrix(1 0 0 -1 7.33301 6)"
fill="#2CAFC2"
/>
</g>
<defs>
<clippath id="clip0_117_4999">
<rect width={16} height={16} fill="white" />
</clippath>
</defs>
</svg>
<p className="flex-grow w-[220px] text-base font-medium text-left text-black">
Not recommended for travelers with spinal injuries
</p>
</div>
<div className="flex justify-start items-center flex-grow relative gap-3 px-4 py-6 rounded-3xl bg-[#2cafc2]/5 backdrop-blur-[20px]">
<svg
width={16}
height={16}
viewBox="0 0 16 16"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0 w-4 h-4 relative"
preserveAspectRatio="xMidYMid meet"
>
<g clip-path="url(#clip0_117_5002)">
<circle cx="7.99967" cy="7.99992" r="6.66667" stroke="#2CAFC2" stroke-width="1.5" />
<path
d="M8 11.3333V7.33325"
stroke="#2CAFC2"
stroke-width="1.5"
stroke-linecap="round"
/>
<circle
cx="0.666667"
cy="0.666667"
r="0.666667"
transform="matrix(1 0 0 -1 7.33301 6)"
fill="#2CAFC2"
/>
</g>
<defs>
<clippath id="clip0_117_5002">
<rect width={16} height={16} fill="white" />
</clippath>
</defs>
</svg>
<p className="flex-grow w-[220px] text-base font-medium text-left text-black">
Public transportation options are available nearby
</p>
</div>
<div className="flex justify-start items-center flex-grow relative gap-3 px-4 py-6 rounded-3xl bg-[#2cafc2]/5 backdrop-blur-[20px]">
<svg
width={16}
height={16}
viewBox="0 0 16 16"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0 w-4 h-4 relative"
preserveAspectRatio="xMidYMid meet"
>
<g clip-path="url(#clip0_117_5005)">
<circle cx="7.99967" cy="7.99992" r="6.66667" stroke="#2CAFC2" stroke-width="1.5" />
<path
d="M8 11.3333V7.33325"
stroke="#2CAFC2"
stroke-width="1.5"
stroke-linecap="round"
/>
<circle
cx="0.666667"
cy="0.666667"
r="0.666667"
transform="matrix(1 0 0 -1 7.33301 6)"
fill="#2CAFC2"
/>
</g>
<defs>
<clippath id="clip0_117_5005">
<rect width={16} height={16} fill="white" />
</clippath>
</defs>
</svg>
<p className="flex-grow w-[220px] text-base font-medium text-left text-black">
Infants are required to sit on an adultu2019s lap
</p>
</div>
</div>
</div>
<div className="flex flex-col justify-start items-start self-stretch flex-grow-0 flex-shrink-0 gap-4">
<div className="flex flex-col justify-start items-start self-stretch flex-grow-0 flex-shrink-0 relative gap-2">
<p className="self-stretch flex-grow-0 flex-shrink-0 w-[856px] text-base font-bold text-left text-black">
Cancellation Policy
</p>
<p className="self-stretch flex-grow-0 flex-shrink-0 w-[856px] opacity-70 text-base font-medium text-justify text-black">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.
</p>
</div>
<div className="flex justify-start items-start self-stretch flex-grow-0 flex-shrink-0 gap-4">
<div className="flex justify-start items-center flex-grow h-[70px] relative gap-4 p-6 rounded-2xl bg-[#34c759]/5 backdrop-blur-[20px]">
<svg
width={11}
height={9}
viewBox="0 0 11 9"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0"
preserveAspectRatio="xMidYMid meet"
>
<path
d="M0.75 4.95L3.32143 7.75L9.75 0.75"
stroke="#34C759"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg>
<div className="flex flex-col justify-center items-start flex-grow-0 flex-shrink-0 relative">
<p className="flex-grow-0 flex-shrink-0 text-xs font-medium text-left text-[#34c759]">
100% Refund
</p>
<p className="flex-grow-0 flex-shrink-0 text-base font-medium text-left text-black">
24 hours or more before the start time
</p>
</div>
</div>
<div className="flex justify-start items-center flex-grow h-[70px] relative gap-2 p-6 rounded-2xl bg-[#ff383c]/5 backdrop-blur-[20px]">
<svg
width={11}
height={11}
viewBox="0 0 11 11"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0"
preserveAspectRatio="xMidYMid meet"
>
<path
d="M9.74996 0.750036L0.75 9.75M0.749962 0.75L9.74992 9.74996"
stroke="#FF383C"
stroke-width="1.5"
stroke-linecap="round"
/>
</svg>
<div className="flex flex-col justify-center items-start flex-grow-0 flex-shrink-0 relative">
<p className="flex-grow-0 flex-shrink-0 text-xs font-medium text-left text-[#ff383c]">
0% Refund
</p>
<p className="flex-grow-0 flex-shrink-0 text-base font-medium text-left text-black">
Less than 24 hours before the start time
</p>
</div>
</div>
</div>
</div>
</div>;

View File

@@ -1,118 +0,0 @@
<div className="w-[416px] h-[308px]">
<div className="w-[416px] h-[308px] absolute left-[987.5px] top-[581.5px] rounded-3xl bg-white border border-black/10" />
<div className="flex justify-start items-center w-96 absolute left-[1004px] top-[598px] gap-2">
<svg
width={16}
height={16}
viewBox="0 0 16 16"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0 w-4 h-4 relative"
preserveAspectRatio="xMidYMid meet"
>
<g clip-path="url(#clip0_117_5025)">
<circle cx="7.99967" cy="8.00004" r="6.66667" stroke="black" stroke-width="1.5" />
<path d="M8 11.3334V7.33337" stroke="black" stroke-width="1.5" stroke-linecap="round" />
<circle
cx="0.666667"
cy="0.666667"
r="0.666667"
transform="matrix(1 0 0 -1 7.33301 6)"
fill="black"
/>
</g>
<defs>
<clippath id="clip0_117_5025">
<rect width={16} height={16} fill="white" />
</clippath>
</defs>
</svg>
<p className="flex-grow-0 flex-shrink-0 text-base font-medium text-left text-black">
Tour Details
</p>
</div>
<div className="flex justify-between items-center w-[400px] absolute left-[996px] top-[636px] p-4 rounded-3xl bg-white border border-black/10 border-dashed">
<div className="flex-grow-0 flex-shrink-0 w-[147px] h-14">
<div className="flex flex-col justify-start items-start absolute left-[17px] top-[17px]">
<p className="flex-grow-0 flex-shrink-0 opacity-30 text-xs font-medium text-left text-black">
From
</p>
<div className="flex justify-center items-center flex-grow-0 flex-shrink-0 relative">
<p className="flex-grow-0 flex-shrink-0 text-[32px] text-left text-black">$30</p>
</div>
</div>
<p className="absolute left-[70px] top-[52px] opacity-30 text-xs font-medium text-left text-black">
USD / Per person
</p>
</div>
<div className="flex justify-center items-center flex-grow-0 flex-shrink-0 w-[170px] h-12 relative gap-2 px-6 rounded-[40px] bg-black">
<p className="flex-grow-0 flex-shrink-0 text-base font-bold text-left text-white">
Check Availability
</p>
</div>
</div>
<div className="flex justify-start items-center w-[400px] h-[70px] absolute left-[996px] top-[734px] gap-2 p-6 rounded-2xl bg-[#2cafc2]/5 backdrop-blur-[20px]">
<svg
width={16}
height={16}
viewBox="0 0 16 16"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0 w-4 h-4 relative"
preserveAspectRatio="xMidYMid meet"
>
<path
d="M2 6.94448C2 4.81275 2 3.74689 2.25168 3.38831C2.50335 3.02973 3.50555 2.68668 5.50994 2.00057L5.89182 1.86985C6.93666 1.5122 7.45907 1.33337 8 1.33337C8.54093 1.33337 9.06335 1.5122 10.1082 1.86985L10.4901 2.00057C12.4945 2.68668 13.4966 3.02973 13.7483 3.38831C14 3.74689 14 4.81275 14 6.94448C14 7.26647 14 7.61565 14 7.99428C14 11.753 11.174 13.577 9.40096 14.3516C8.91999 14.5617 8.67951 14.6667 8 14.6667C7.32049 14.6667 7.08001 14.5617 6.59904 14.3516C4.82597 13.577 2 11.753 2 7.99428C2 7.61565 2 7.26647 2 6.94448Z"
stroke="#2CAFC2"
stroke-width="1.5"
/>
<path
d="M6.33301 8.26663L7.28539 9.33329L9.66634 6.66663"
stroke="#2CAFC2"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg>
<div className="flex flex-col justify-center items-start flex-grow-0 flex-shrink-0 relative">
<p className="flex-grow-0 flex-shrink-0 text-xs font-medium text-left text-[#2cafc2]">
Free Cancellation
</p>
<p className="flex-grow-0 flex-shrink-0 text-base font-medium text-left text-black">
Up to 24 hrs
</p>
</div>
</div>
<div className="flex justify-start items-center w-[400px] h-[70px] absolute left-[996px] top-[812px] gap-2 p-6 rounded-2xl bg-[#34c759]/5 backdrop-blur-[20px]">
<svg
width={16}
height={16}
viewBox="0 0 16 16"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className="flex-grow-0 flex-shrink-0 w-4 h-4 relative"
preserveAspectRatio="xMidYMid meet"
>
<path
d="M2 6.94448C2 4.81275 2 3.74689 2.25168 3.38831C2.50335 3.02973 3.50555 2.68668 5.50994 2.00057L5.89182 1.86985C6.93666 1.5122 7.45907 1.33337 8 1.33337C8.54093 1.33337 9.06335 1.5122 10.1082 1.86985L10.4901 2.00057C12.4945 2.68668 13.4966 3.02973 13.7483 3.38831C14 3.74689 14 4.81275 14 6.94448C14 7.26647 14 7.61565 14 7.99428C14 11.753 11.174 13.577 9.40096 14.3516C8.91999 14.5617 8.67951 14.6667 8 14.6667C7.32049 14.6667 7.08001 14.5617 6.59904 14.3516C4.82597 13.577 2 11.753 2 7.99428C2 7.61565 2 7.26647 2 6.94448Z"
stroke="#34C759"
stroke-width="1.5"
/>
<path
d="M6.33301 8.26663L7.28539 9.33329L9.66634 6.66663"
stroke="#34C759"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg>
<div className="flex flex-col justify-center items-start flex-grow-0 flex-shrink-0 relative">
<p className="flex-grow-0 flex-shrink-0 text-xs font-medium text-left text-[#34c759]">
Reserve now, pay later!
</p>
<p className="flex-grow-0 flex-shrink-0 text-base font-medium text-left text-black">
Secure your spot today
</p>
</div>
</div>
</div>;

BIN
viator-collector.zip Normal file

Binary file not shown.

1
viator-collector/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/gwc

View File

@@ -0,0 +1,268 @@
# Viator Collector — Shortcode Reference
All landing-page sections are shortcodes. Drop them into a **Shortcode block**, a
**Custom HTML block**, or a page template. Every section is wrapped in a
`.vc-app` container and styled by a single scoped stylesheet
(`assets/css/vc-design.css`), so the "Hop On Hop Off" design cannot leak into the
theme. Icons come from a bundled SVG sprite (no external icon library); the
listing/single/section assets load only on pages that use them.
## Quick reference
| Shortcode | Renders | Data source |
|---|---|---|
| `[viator_hero]` | Booking hero (location / date / seat) | `viator_destination` terms |
| `[viator_top_destinations]` | Rail of destination cards | `viator_destination` terms |
| `[viator_top_tours]` | Rail of tour cards | `viator_tour` posts |
| `[viator_top_attractions]` | Rail of tour cards | `viator_tour` posts |
| `[viator_browse_activities]` | Rail of tour cards | `viator_tour` posts |
| `[viator_bus_tours]` | "Open Top Bus Tours" promo + 4-up card grid | `viator_tour` posts |
| `[viator_about]` | Static "About / Memorable" block + stat counters | Shortcode attributes |
| `[viator_articles]` | Rail of latest blog-post cards | `post` posts |
| `[viator_faq]` | FAQ accordion | Shortcode `items` / `vc_faq_items` filter |
| `[viator_testimonials]` | Testimonials marquee | `vc_testimonials` filter |
`[viator_hero_slider]` is kept as a **back-compat alias** for `[viator_hero]`.
Home page matching the design mockup (`new front/index.html`), top to bottom:
```
[viator_hero image_id="125304"]
[viator_top_destinations]
[viator_bus_tours image_id="125310"]
[viator_top_tours]
[viator_about image_id="125311"]
[viator_testimonials]
[viator_articles]
[viator_faq]
```
Heavy decorative images (hero photo, open-top bus, isometric bus) are **not
bundled** — upload them in **Media** and pass the attachment `image_id` (exactly
like `[viator_hero image_id="…"]`). Icons and tiny decorations are inline SVG.
---
## `[viator_hero]`
Full-width booking hero: a Location / Date / Seat form that submits (GET) to the
tours archive, pre-filtering by the chosen destination.
| Attribute | Default | Description |
|---|---|---|
| `title` | `Set out on the journey.` | Hero heading. |
| `eyebrow` | `Tour & Travel` | Small pill above the heading. |
| `image` | *(setting / bundled)* | Background image URL. Falls back to the **Hero image** setting, then a bundled image. |
```
[viator_hero title="Explore the city your way." image="https://example.com/hero.jpg"]
```
---
## Shared attributes (tour rails)
`[viator_top_tours]`, `[viator_top_attractions]` and `[viator_browse_activities]`
all select tours the same way and render a horizontally-scrolling rail of cards.
| Attribute | Default | Description |
|---|---|---|
| `limit` | `8` | How many tours to show. |
| `ids` | — | Post IDs, comma-separated. **Order is preserved.** |
| `codes` | — | Viator product codes, e.g. `5010SYDNEY,2050ICON`. |
| `destination` | — | Destination term slug(s), e.g. `orlando,miami`. |
| `tag` | — | Activity/tag term slug(s), e.g. `theme-parks`. |
| `orderby` | `rating` | `rating` \| `price` (asc) \| `date` \| `rand`. Ignored when `ids` is used. |
| `title` | varies | Section heading (`<br>` allowed). |
| `lead` | varies | Sub-heading paragraph. |
```
[viator_top_tours limit="12" destination="london"]
[viator_top_tours ids="482,517,690" title="Editor's Picks"]
[viator_top_attractions codes="5010SYDNEY,2050ICON"]
```
> **`orderby="rating"`:** WordPress drops posts lacking the meta key when ordering
> by it, so if that would empty the section it falls back to newest-first.
---
## `[viator_top_destinations]`
Rail of destination-term cards; each links to that destination's tour archive.
| Attribute | Default | Description |
|---|---|---|
| `limit` | `8` | Number of destinations. |
| `orderby` | `count` | `count` (most tours first) or `name`. |
| `ids` | — | Term IDs, comma-separated. **Order preserved.** |
| `slugs` | — | Term slugs, e.g. `london,paris,sydney`. |
| `title` | `Where you<br>wanna go?` | Heading (`<br>` allowed). |
| `lead` | *(default copy)* | Sub-heading. |
| `link_text` | `View tours` | "See all" action text. |
Card image resolution: the term's own image (Viator Destinations → edit → Image),
otherwise the first tour photo in that destination (cached). Empty destinations
are hidden automatically.
---
## `[viator_bus_tours]`
The "Open Top Bus Tours…" promo block (route line, headline, "See all", a chip,
a bus illustration and note) followed by a 4-up grid of tour cards. Selects tours
with the **same attributes as the tour rails** (`ids` / `codes` / `destination` /
`tag` / `limit` / `orderby`), plus:
| Attribute | Default | Description |
|---|---|---|
| `title` | `Open Top<br>Bus Tours…` | Promo headline (`<br>` allowed). |
| `note` | *(default copy)* | Paragraph under the headline. |
| `chip` | `Very Fun!` | Small accent chip. |
| `image_id` | — | **Media attachment ID** of the open-top bus illustration. |
| `image` | — | …or a direct image URL (use `image_id` when possible). |
```
[viator_bus_tours image_id="125310" tag="hop-on-hop-off" limit="4"]
[viator_bus_tours ids="482,517,690,701"]
```
---
## `[viator_about]`
Static "About" marketing block: headline with an accent chip, a paragraph, four
stat counters and a decorative isometric bus. All copy is editable.
| Attribute | Default | Description |
|---|---|---|
| `title` | `Hop On Hop Off` | Headline. |
| `highlight` | `Memorable` | Accent chip appended to the headline. |
| `text` | *(default copy)* | Paragraph. |
| `button_text` | `About us` | Button label. |
| `button_url` | *(tours archive)* | Button link. |
| `image_id` | — | **Media attachment ID** of the isometric bus illustration. |
| `image` | — | …or a direct image URL. |
| `stats` | *(4 defaults)* | `25+|Years Experience;;500+|Tours Conducted` — `|` separates number from label, `;;` separates stats. A trailing `+` is styled. |
```
[viator_about image_id="125311" stats="25+|Years Experience;;500+|Tours Conducted;;430+|Tours this Year;;15+|Different Tours"]
```
---
## `[viator_articles]`
A rail of the latest blog posts styled as the design's "Latest Articles" cards
(featured image, relative time, title, excerpt → links to the post).
| Attribute | Default | Description |
|---|---|---|
| `title` | `Latest<br>Articles` | Heading (`<br>` allowed). |
| `lead` | *(default copy)* | Sub-heading. |
| `limit` | `8` | Number of posts. |
| `category` | — | Restrict to a category slug. |
| `view_all` | *(posts page)* | "See all" link; defaults to the blog page. |
Cards use each post's **featured image**; set one so the card isn't blank.
```
[viator_articles limit="8" category="travel-tips"]
```
---
## `[viator_faq]`
FAQ accordion.
| Attribute | Default | Description |
|---|---|---|
| `title` | `FAQ's` | Heading. |
| `lead` | *(default copy)* | Sub-heading. |
| `items` | *(defaults)* | `Question|Answer;;Question 2|Answer 2` — `|` separates Q from A, `;;` separates pairs. |
Without `items`, a sensible default set is used. Override globally in code:
```php
add_filter( 'vc_faq_items', function ( $items ) {
return array(
array( 'q' => 'Where do the buses depart?', 'a' => 'From the central stop on Main St.' ),
array( 'q' => 'Are tickets refundable?', 'a' => 'Yes, up to 24 hours before start.' ),
);
} );
```
```
[viator_faq items="Is it online?|Yes, fully.;;Can I cancel?|Up to 24h before."]
```
---
## `[viator_testimonials]`
Animated marquee of traveller quotes.
| Attribute | Default | Description |
|---|---|---|
| `title` | `Your Comments` | Heading. |
| `lead` | *(default copy)* | Sub-heading. |
Content comes from the `vc_testimonials` filter (each item:
`name`, `role`, `text`, `avatar`, optional `size` = `lg`\|`sm`):
```php
add_filter( 'vc_testimonials', function ( $items ) {
$items[] = array(
'name' => 'Jane Doe',
'role' => 'London Tour',
'text' => 'Absolutely loved it!',
'avatar' => 'https://example.com/jane.jpg',
'size' => 'lg',
);
return $items;
} );
```
---
## Listing & single-tour pages
These are **templates, not shortcodes** — they render automatically:
- **Tours archive:** `/tours/` (filter bar, sort, search, server pagination)
- **Destination archive:** `/tour-destination/{slug}/`
- **Single tour:** `/tours/{slug}/`
The archive banner text and hero image are filterable:
```php
add_filter( 'vc_listing_title', fn() => 'Discover London Tours' );
add_filter( 'vc_listing_subtitle', fn() => 'Hand-picked experiences.' );
add_filter( 'vc_hero_image_url', fn( $url ) => $url );
```
Useful archive query strings:
```
/tours/?bestdeal=1
/tours/?freecancel=1
/tours/?sellout=1
/tours/?dest=london&price=50-150&sort=price_asc
```
Filtering, sorting and pagination are **server-side** (GET params), so results are
shareable and crawlable.
---
## Notes & gotchas
- **One scoped stylesheet.** All surfaces use `assets/css/vc-design.css`, scoped
to `.vc-app`. No Swiper, no Lucide, no external icon CDN.
- **Icons** are a bundled SVG sprite (`assets/icons/sprite.svg`), printed once per
page and referenced with `<use href="#i-…">`.
- **Badges need flags.** `_vc_flags` is only populated on tours crawled after that
field was added — older tours may show no badge until the next full sync.
- **`max_travelers`** only appears once a tour's full detail has been fetched.
- If a section has no data it renders **nothing**, rather than an empty shell.

BIN
viator-collector/assets.zip Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,176 @@
<svg class="sprite" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" style="position:absolute;width:0;height:0;overflow:hidden">
<defs>
<path id="ringPathScroll" fill="none" d="M50,50 m-39,0 a39,39 0 1,1 78,0 a39,39 0 1,1 -78,0" />
</defs>
<symbol id="i-arrow-right" viewBox="0 0 16 16" fill="none">
<path d="M2.66699 8H13.3337M9.33366 12L13.3337 8L9.33366 4" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-left" viewBox="0 0 16 16" fill="none">
<path d="M13.333 8H2.66634M6.66634 12L2.66634 8L6.66634 4" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-ne" viewBox="0 0 16 16" fill="none">
<path d="M4 12L12 4M12 10V4H6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
</symbol>
<symbol id="i-arrow-up" viewBox="0 0 16 16" fill="none">
<path d="M8 13.3333L8 2.66659M12 6.66659L8 2.66659L4 6.66659" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-chevron" viewBox="0 0 16 16" fill="none">
<path d="M12.6663 6L7.99967 10L3.33301 6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
</symbol>
<symbol id="i-search" viewBox="0 0 24 24" fill="none">
<circle cx="11.5" cy="11.5" r="9.5" stroke="currentColor" stroke-width="1.5" />
<path d="M18.5 18.5L22 22" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-user" viewBox="0 0 24 24" fill="none">
<circle cx="12" cy="6" r="4" stroke="currentColor" stroke-width="1.5" />
<ellipse cx="12" cy="17" rx="7" ry="4" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-location" viewBox="0 0 16 16" fill="none">
<path
d="M2.66699 6.76224C2.66699 3.76396 5.05481 1.33337 8.00033 1.33337C10.9458 1.33337 13.3337 3.76396 13.3337 6.76224C13.3337 9.73702 11.6314 13.2083 8.97561 14.4497C8.3565 14.7391 7.64415 14.7391 7.02504 14.4497C4.36921 13.2083 2.66699 9.73702 2.66699 6.76224Z"
stroke="currentColor" stroke-width="1.5" />
<circle cx="8" cy="6.66663" r="2" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-calendar" viewBox="0 0 16 16" fill="none">
<path
d="M1.33301 7.99996C1.33301 5.4858 1.33301 4.22872 2.11406 3.44767C2.8951 2.66663 4.15218 2.66663 6.66634 2.66663H9.33301C11.8472 2.66663 13.1042 2.66663 13.8853 3.44767C14.6663 4.22872 14.6663 5.4858 14.6663 7.99996V9.33329C14.6663 11.8475 14.6663 13.1045 13.8853 13.8856C13.1042 14.6666 11.8472 14.6666 9.33301 14.6666H6.66634C4.15218 14.6666 2.8951 14.6666 2.11406 13.8856C1.33301 13.1045 1.33301 11.8475 1.33301 9.33329V7.99996Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M4.66699 2.66663V1.66663" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M11.333 2.66663V1.66663" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M1.66699 6H14.3337" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-seat" viewBox="0 0 16 16" fill="none">
<circle cx="5.99967" cy="4.00004" r="2.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M10 6C11.1046 6 12 5.10457 12 4C12 2.89543 11.1046 2 10 2" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" />
<ellipse cx="5.99967" cy="11.3333" rx="4.66667" ry="2.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M12 9.33337C13.1695 9.58984 14 10.2393 14 11C14 11.6863 13.3242 12.282 12.3333 12.5803"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-mouse" viewBox="0 0 16 16" fill="none">
<path
d="M3.33301 5.99998C3.33301 3.42265 5.42235 1.33331 7.99967 1.33331C10.577 1.33331 12.6663 3.42265 12.6663 5.99998V9.99998C12.6663 12.5773 10.577 14.6666 7.99967 14.6666C5.42235 14.6666 3.33301 12.5773 3.33301 9.99998V5.99998Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M7 5.66669C7 5.1144 7.44772 4.66669 8 4.66669C8.55228 4.66669 9 5.1144 9 5.66669V7.00002C9 7.5523 8.55228 8.00002 8 8.00002C7.44772 8.00002 7 7.5523 7 7.00002V5.66669Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M8 1.33331V4.66665" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-grid" viewBox="0 0 16 16" fill="none">
<path
d="M1.66699 4.33329C1.66699 3.07621 1.66699 2.44767 2.05752 2.05715C2.44804 1.66663 3.07658 1.66663 4.33366 1.66663C5.59074 1.66663 6.21928 1.66663 6.6098 2.05715C7.00033 2.44767 7.00033 3.07621 7.00033 4.33329C7.00033 5.59037 7.00033 6.21891 6.6098 6.60944C6.21928 6.99996 5.59074 6.99996 4.33366 6.99996C3.07658 6.99996 2.44804 6.99996 2.05752 6.60944C1.66699 6.21891 1.66699 5.59037 1.66699 4.33329Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M9 11.6667C9 10.4096 9 9.78105 9.39052 9.39052C9.78105 9 10.4096 9 11.6667 9C12.9237 9 13.5523 9 13.9428 9.39052C14.3333 9.78105 14.3333 10.4096 14.3333 11.6667C14.3333 12.9237 14.3333 13.5523 13.9428 13.9428C13.5523 14.3333 12.9237 14.3333 11.6667 14.3333C10.4096 14.3333 9.78105 14.3333 9.39052 13.9428C9 13.5523 9 12.9237 9 11.6667Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M1.66699 11.6667C1.66699 10.4096 1.66699 9.78105 2.05752 9.39052C2.44804 9 3.07658 9 4.33366 9C5.59074 9 6.21928 9 6.6098 9.39052C7.00033 9.78105 7.00033 10.4096 7.00033 11.6667C7.00033 12.9237 7.00033 13.5523 6.6098 13.9428C6.21928 14.3333 5.59074 14.3333 4.33366 14.3333C3.07658 14.3333 2.44804 14.3333 2.05752 13.9428C1.66699 13.5523 1.66699 12.9237 1.66699 11.6667Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M9 4.33329C9 3.07621 9 2.44767 9.39052 2.05715C9.78105 1.66663 10.4096 1.66663 11.6667 1.66663C12.9237 1.66663 13.5523 1.66663 13.9428 2.05715C14.3333 2.44767 14.3333 3.07621 14.3333 4.33329C14.3333 5.59037 14.3333 6.21891 13.9428 6.60944C13.5523 6.99996 12.9237 6.99996 11.6667 6.99996C10.4096 6.99996 9.78105 6.99996 9.39052 6.60944C9 6.21891 9 5.59037 9 4.33329Z"
stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-price" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="8.00004" r="6.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M8 4V12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M10 6.33335C10 5.41288 9.10457 4.66669 8 4.66669C6.89543 4.66669 6 5.41288 6 6.33335C6 7.25383 6.89543 8.00002 8 8.00002C9.10457 8.00002 10 8.74621 10 9.66669C10 10.5872 9.10457 11.3334 8 11.3334C6.89543 11.3334 6 10.5872 6 9.66669"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-duration" viewBox="0 0 16 16" fill="none">
<path
d="M1.33366 8.00004C1.33366 11.6819 4.31843 14.6667 8.00033 14.6667C11.6822 14.6667 14.667 11.6819 14.667 8.00004C14.667 4.31814 11.6822 1.33337 8.00033 1.33337"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M8 6V8.66667H10.6667" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-linejoin="round" />
<circle cx="7.99967" cy="8.00004" r="6.66667" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"
stroke-dasharray="0.5 3.5" />
</symbol>
<symbol id="i-sort" viewBox="0 0 16 16" fill="none">
<path d="M2.66699 11.3333H7.33366" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2.66699 8L7.33366 8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2.66699 4.66669L7.33366 4.66669" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M11.333 2.66665L11.333 13.3333M13.333 5.33331L11.333 2.66665L9.33301 5.33331M9.33301 10.6666L11.333 13.3333L13.333 10.6666"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-check" viewBox="0 0 16 16" fill="none">
<path d="M3.33301 8.33333L6.33301 11.3333L12.6663 5" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-info" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="7.99992" r="6.66667" stroke="currentColor" stroke-width="1.5" />
<path d="M8 11.3333V7.33325" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<circle cx="8" cy="5.33333" r="0.666667" fill="currentColor" />
</symbol>
<symbol id="i-person" viewBox="0 0 16 16" fill="none">
<circle cx="7.99967" cy="4.00004" r="2.66667" stroke="currentColor" stroke-width="1.5" />
<ellipse cx="7.99967" cy="11.3333" rx="4.66667" ry="2.66667" stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-shield-check" viewBox="0 0 16 16" fill="none">
<path
d="M2 6.94448C2 4.81275 2 3.74689 2.25168 3.38831C2.50335 3.02973 3.50555 2.68668 5.50994 2.00057L5.89182 1.86985C6.93666 1.5122 7.45907 1.33337 8 1.33337C8.54093 1.33337 9.06335 1.5122 10.1082 1.86985L10.4901 2.00057C12.4945 2.68668 13.4966 3.02973 13.7483 3.38831C14 3.74689 14 4.81275 14 6.94448C14 7.26647 14 7.61565 14 7.99428C14 11.753 11.174 13.577 9.40096 14.3516C8.91999 14.5617 8.67951 14.6667 8 14.6667C7.32049 14.6667 7.08001 14.5617 6.59904 14.3516C4.82597 13.577 2 11.753 2 7.99428C2 7.61565 2 7.26647 2 6.94448Z"
stroke="currentColor" stroke-width="1.5" />
<path d="M6.33301 8.26663L7.28539 9.33329L9.66634 6.66663" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</symbol>
<symbol id="i-x" viewBox="0 0 16 16" fill="none">
<path d="M12.6663 3.33337L3.33301 12.6667M3.33301 3.33337L12.6663 12.6667" stroke="currentColor"
stroke-width="2" stroke-linecap="round" />
</symbol>
<symbol id="i-star" viewBox="0 0 12 12">
<path
d="M4.21205 2.06464C4.94362 0.701584 5.30941 0.0200537 5.87277 0.000515809C6.43613 -0.019022 6.82396 0.636371 7.59964 1.94716L7.80031 2.28628C8.02073 2.65876 8.13095 2.845 8.29997 2.96455C8.46899 3.08409 8.67769 3.12341 9.09509 3.20203L9.4751 3.27362C10.9439 3.55031 11.6784 3.68865 11.8616 4.23622C12.0448 4.78378 11.5555 5.37794 10.5768 6.56625L10.3236 6.87368C10.0455 7.21136 9.90649 7.3802 9.84606 7.58521C9.78563 7.79021 9.81067 8.00818 9.86075 8.44411L9.90634 8.84099C10.0826 10.3751 10.1707 11.1421 9.72055 11.5C9.27043 11.858 8.58018 11.5698 7.19966 10.9934L6.84251 10.8443C6.45021 10.6805 6.25406 10.5986 6.04769 10.6058C5.84132 10.613 5.6481 10.7084 5.26165 10.8991L4.90982 11.0729C3.54988 11.7443 2.86992 12.08 2.40851 11.7536C1.9471 11.4273 2.00982 10.655 2.13527 9.1105L2.16772 8.71092C2.20337 8.27201 2.2212 8.05256 2.15408 7.85197C2.08696 7.65139 1.9425 7.49238 1.65359 7.17437L1.39055 6.88484C0.373843 5.76573 -0.134512 5.20618 0.0304441 4.64653C0.1954 4.08689 0.924422 3.89779 2.38247 3.5196L2.75968 3.42175C3.17401 3.31428 3.38117 3.26054 3.54606 3.12942C3.71095 2.99829 3.8149 2.80462 4.02279 2.41729L4.21205 2.06464Z"
fill="currentColor" />
</symbol>
<symbol id="i-plus" viewBox="0 0 14 14" fill="none">
<path d="M12.75 6.75005L6.75 6.75005M6.75 6.75005L0.75 6.75005M6.75 6.75005L6.75 0.75M6.75 6.75005L6.75 12.75"
stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-minus" viewBox="0 0 14 14" fill="none">
<path d="M12.75 7L0.75 7" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
</symbol>
<symbol id="i-headset" viewBox="0 0 24 24" fill="none">
<path d="M21 17V12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12V17" stroke="currentColor"
stroke-width="1.5" />
<path d="M22 15.5V17.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path d="M2 15.5V17.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
<path
d="M8 13.8446C8 13.0802 8 12.698 7.82526 12.4323C7.73733 12.2985 7.62061 12.188 7.4844 12.1095C7.21371 11.9535 6.84812 11.9896 6.11694 12.0617C4.88487 12.1831 4.26884 12.2439 3.82737 12.5764C3.60394 12.7448 3.41638 12.9593 3.27646 13.2067C3 13.6955 3 14.3395 3 15.6276V17.1933C3 18.4685 3 19.1061 3.28198 19.5986C3.38752 19.7829 3.51981 19.9491 3.67416 20.0913C4.08652 20.4714 4.68844 20.5901 5.89227 20.8275C6.73944 20.9945 7.16302 21.078 7.47564 20.9021C7.591 20.8372 7.69296 20.7493 7.77572 20.6434C8 20.3565 8 19.9078 8 19.0104V13.8446Z"
stroke="currentColor" stroke-width="1.5" />
<path
d="M16 13.8446C16 13.0802 16 12.698 16.1747 12.4323C16.2627 12.2985 16.3794 12.188 16.5156 12.1095C16.7863 11.9535 17.1519 11.9896 17.8831 12.0617C19.1151 12.1831 19.7312 12.2439 20.1726 12.5764C20.3961 12.7448 20.5836 12.9593 20.7235 13.2067C21 13.6955 21 14.3395 21 15.6276V17.1933C21 18.4685 21 19.1061 20.718 19.5986C20.6125 19.7829 20.4802 19.9491 20.3258 20.0913C19.9135 20.4714 19.3116 20.5901 18.1077 20.8275C17.2606 20.9945 16.837 21.078 16.5244 20.9021C16.409 20.8372 16.307 20.7493 16.2243 20.6434C16 20.3565 16 19.9078 16 19.0104V13.8446Z"
stroke="currentColor" stroke-width="1.5" />
</symbol>
<symbol id="i-whatsapp" viewBox="0 0 20 20">
<path
d="M17 2.875C15.125 1 12.625 0 10 0C4.5 0 0 4.5 0 10C0 11.75 0.500008 13.5 1.37501 15L0 20L5.25002 18.625C6.75002 19.375 8.375 19.875 10 19.875C15.5 19.875 20 15.375 20 9.875C20 7.25 18.875 4.75 17 2.875ZM10 18.25C8.5 18.25 7.00001 17.875 5.75001 17.125L5.49999 17L2.37499 17.875L3.25001 14.875L2.99999 14.5C2.12499 13.125 1.74999 11.625 1.74999 10.125C1.74999 5.625 5.5 1.875 10 1.875C12.25 1.875 14.25 2.75 15.875 4.25C17.5 5.875 18.25 7.875 18.25 10.125C18.25 14.5 14.625 18.25 10 18.25ZM14.5 12C14.25 11.875 13 11.25 12.75 11.25C12.5 11.125 12.375 11.125 12.25 11.375C12.125 11.625 11.625 12.125 11.5 12.375C11.375 12.5 11.25 12.5 11 12.5C10.75 12.375 10 12.125 9.00002 11.25C8.25002 10.625 7.75001 9.75 7.62501 9.5C7.50001 9.25 7.62502 9.125 7.75002 9C7.87502 8.875 8 8.75 8.125 8.625C8.25 8.5 8.25002 8.375 8.37502 8.25C8.50002 8.125 8.37502 8 8.37502 7.875C8.37502 7.75 7.87501 6.5 7.62501 6C7.50001 5.625 7.25002 5.625 7.12502 5.625C7.00002 5.625 6.87498 5.625 6.62498 5.625C6.49998 5.625 6.24998 5.625 5.99998 5.875C5.74998 6.125 5.12501 6.75 5.12501 8C5.12501 9.25 5.99999 10.375 6.12499 10.625C6.24999 10.75 7.87498 13.375 10.375 14.375C12.5 15.25 12.875 15 13.375 15C13.875 15 14.875 14.375 15 13.875C15.25 13.25 15.25 12.75 15.125 12.75C15 12.125 14.75 12.125 14.5 12Z"
fill="currentColor" />
</symbol>
<symbol id="i-instagram" viewBox="0 0 20 20">
<path
d="M10 1.80723C12.6506 1.80723 13.0121 1.80723 14.0964 1.80723C15.0602 1.80723 15.5422 2.04819 15.9036 2.16868C16.3855 2.40964 16.747 2.53012 17.1084 2.89157C17.4699 3.25301 17.7108 3.61446 17.8313 4.09639C17.9518 4.45783 18.0723 4.93976 18.1928 5.90362C18.1928 6.98795 18.1928 7.22892 18.1928 10C18.1928 12.7711 18.1928 13.0121 18.1928 14.0964C18.1928 15.0602 17.9518 15.5422 17.8313 15.9036C17.5904 16.3855 17.4699 16.747 17.1084 17.1084C16.747 17.4699 16.3855 17.7108 15.9036 17.8313C15.5422 17.9518 15.0602 18.0723 14.0964 18.1928C13.0121 18.1928 12.7711 18.1928 10 18.1928C7.22892 18.1928 6.98795 18.1928 5.90362 18.1928C4.93976 18.1928 4.45783 17.9518 4.09639 17.8313C3.61446 17.5904 3.25301 17.4699 2.89157 17.1084C2.53012 16.747 2.28916 16.3855 2.16868 15.9036C2.04819 15.5422 1.92771 15.0602 1.80723 14.0964C1.80723 13.0121 1.80723 12.7711 1.80723 10C1.80723 7.22892 1.80723 6.98795 1.80723 5.90362C1.80723 4.93976 2.04819 4.45783 2.16868 4.09639C2.40964 3.61446 2.53012 3.25301 2.89157 2.89157C3.25301 2.53012 3.61446 2.28916 4.09639 2.16868C4.45783 2.04819 4.93976 1.92771 5.90362 1.80723C6.98795 1.80723 7.3494 1.80723 10 1.80723ZM10 0C7.22892 0 6.98795 0 5.90362 0C4.81928 0 4.09639 0.240965 3.49398 0.481928C2.89157 0.722892 2.28916 1.08434 1.68675 1.68675C1.08434 2.28916 0.843374 2.77109 0.481928 3.49398C0.240965 4.09639 0.120482 4.81928 0 5.90362C0 6.98795 0 7.3494 0 10C0 12.7711 0 13.0121 0 14.0964C0 15.1807 0.240965 15.9036 0.481928 16.506C0.722892 17.1084 1.08434 17.7108 1.68675 18.3133C2.28916 18.9157 2.77109 19.1566 3.49398 19.5181C4.09639 19.759 4.81928 19.8795 5.90362 20C6.98795 20 7.3494 20 10 20C12.6506 20 13.0121 20 14.0964 20C15.1807 20 15.9036 19.759 16.506 19.5181C17.1084 19.2771 17.7108 18.9157 18.3133 18.3133C18.9157 17.7108 19.1566 17.2289 19.5181 16.506C19.759 15.9036 19.8795 15.1807 20 14.0964C20 13.0121 20 12.6506 20 10C20 7.3494 20 6.98795 20 5.90362C20 4.81928 19.759 4.09639 19.5181 3.49398C19.2771 2.89157 18.9157 2.28916 18.3133 1.68675C17.7108 1.08434 17.2289 0.843374 16.506 0.481928C15.9036 0.240965 15.1807 0.120482 14.0964 0C13.0121 0 12.7711 0 10 0Z"
fill="currentColor" />
<path
d="M10 4.81928C7.10843 4.81928 4.81928 7.10843 4.81928 10C4.81928 12.8916 7.10843 15.1807 10 15.1807C12.8916 15.1807 15.1807 12.8916 15.1807 10C15.1807 7.10843 12.8916 4.81928 10 4.81928ZM10 13.3735C8.19277 13.3735 6.62651 11.9277 6.62651 10C6.62651 8.19277 8.07229 6.62651 10 6.62651C11.8072 6.62651 13.3735 8.07229 13.3735 10C13.3735 11.8072 11.8072 13.3735 10 13.3735Z"
fill="currentColor" />
<path
d="M15.3012 5.90362C15.9666 5.90362 16.506 5.3642 16.506 4.6988C16.506 4.03339 15.9666 3.49398 15.3012 3.49398C14.6358 3.49398 14.0964 4.03339 14.0964 4.6988C14.0964 5.3642 14.6358 5.90362 15.3012 5.90362Z"
fill="currentColor" />
</symbol>
<symbol id="i-telegram" viewBox="0 0 20 17">
<path
d="M1.3749 7.31846C6.74359 4.91938 10.3236 3.33777 12.1148 2.57361C17.2292 0.391776 18.2919 0.0127698 18.9846 0.00012133C19.1369 -0.00249777 19.4776 0.0362266 19.6982 0.219862C19.8845 0.37492 19.9358 0.584381 19.9603 0.731393C19.9848 0.878405 20.0154 1.2133 19.9911 1.47498C19.714 4.46174 18.5147 11.7098 17.9046 15.055C17.6465 16.4705 17.1382 16.9451 16.6461 16.9916C15.5766 17.0925 14.7645 16.2667 13.7287 15.5702C12.1078 14.4805 11.1921 13.8021 9.61879 12.7387C7.80053 11.5097 8.97923 10.8343 10.0154 9.73042C10.2866 9.44153 14.9987 5.04555 15.0899 4.64677C15.1013 4.59689 15.1119 4.41098 15.0042 4.31282C14.8965 4.21465 14.7376 4.24822 14.6229 4.27492C14.4604 4.31276 11.871 6.06814 6.85486 9.54107C6.11988 10.0587 5.45416 10.3109 4.8577 10.2977C4.20015 10.2831 2.93528 9.91637 1.99498 9.60288C0.84166 9.21836 -0.0749729 9.01506 0.00484519 8.36203C0.0464194 8.0219 0.503103 7.67404 1.3749 7.31846Z"
fill="currentColor" />
</symbol>
<symbol id="i-facebook" viewBox="0 0 20 20">
<path
d="M20 10C20 4.5 15.5 0 10 0C4.5 0 0 4.5 0 10C0 15 3.625 19.125 8.375 19.875V12.875H5.875V10H8.375V7.75C8.375 5.25 9.875 3.875 12.125 3.875C13.25 3.875 14.375 4.125 14.375 4.125V6.625H13.125C11.875 6.625 11.5 7.375 11.5 8.125V10H14.25L13.75 12.875H11.375V20C16.375 19.25 20 15 20 10Z"
fill="currentColor" />
</symbol>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -0,0 +1,148 @@
/* Viator Collector — front-end interactions for the "Hop On Hop Off" design.
Ported from the mockup's main.js, trimmed to what the plugin renders inside
#vc-app. Listing filtering itself stays server-side (GET form submit); this
file only adds UX: card rails, FAQ accordion, testimonials marquee, the date
field, and auto-submit on quick filter toggles. */
(function () {
"use strict";
// The design is scoped to .vc-app wrappers; there can be several on one page
// (e.g. multiple homepage section shortcodes), so query document-wide.
var app = document;
/* ---------- card rails (prev / next) ---------- */
function railStep(rail) {
var card = rail.firstElementChild;
if (!card) return rail.clientWidth;
var gap = parseFloat(getComputedStyle(rail).columnGap) || 0;
return card.getBoundingClientRect().width + gap;
}
function syncRailButtons(rail, prev, next) {
var max = rail.scrollWidth - rail.clientWidth - 1;
if (prev) prev.disabled = rail.scrollLeft <= 0;
if (next) next.disabled = rail.scrollLeft >= max;
}
Array.prototype.forEach.call(app.querySelectorAll(".rail"), function (rail) {
var prev = document.querySelector('[data-rail-prev="' + rail.id + '"]');
var next = document.querySelector('[data-rail-next="' + rail.id + '"]');
if (prev) prev.addEventListener("click", function () {
rail.scrollBy({ left: -railStep(rail), behavior: "smooth" });
});
if (next) next.addEventListener("click", function () {
rail.scrollBy({ left: railStep(rail), behavior: "smooth" });
});
rail.addEventListener("scroll", function () {
syncRailButtons(rail, prev, next);
}, { passive: true });
window.addEventListener("resize", function () {
syncRailButtons(rail, prev, next);
});
syncRailButtons(rail, prev, next);
});
/* ---------- testimonials marquee: duplicate for a seamless loop ---------- */
Array.prototype.forEach.call(app.querySelectorAll("[data-marquee] .marquee__track"), function (track) {
Array.prototype.slice.call(track.children).forEach(function (node) {
var copy = node.cloneNode(true);
copy.setAttribute("aria-hidden", "true");
track.appendChild(copy);
});
});
/* ---------- FAQ accordion ---------- */
Array.prototype.forEach.call(app.querySelectorAll("[data-accordion]"), function (accordion) {
accordion.addEventListener("click", function (e) {
var btn = e.target.closest(".acc__q");
if (!btn) return;
var open = btn.getAttribute("aria-expanded") === "true";
Array.prototype.forEach.call(accordion.querySelectorAll(".acc__q"), function (other) {
other.setAttribute("aria-expanded", "false");
});
btn.setAttribute("aria-expanded", String(!open));
});
});
/* ---------- date field: text placeholder, native picker on focus ---------- */
Array.prototype.forEach.call(app.querySelectorAll("[data-datefield]"), function (dateField) {
dateField.addEventListener("focus", function () {
dateField.type = "date";
if (typeof dateField.showPicker === "function") {
try { dateField.showPicker(); } catch (err) { /* not user-activated */ }
}
});
dateField.addEventListener("blur", function () {
if (!dateField.value) dateField.type = "text";
});
});
/* ---------- listing: auto-submit on quick toggles (checks / sort) ---------- */
Array.prototype.forEach.call(app.querySelectorAll("form.filters, form#vc-filter-form"), function (form) {
form.addEventListener("change", function (e) {
if (e.target.closest(".vc-autosubmit")) form.submit();
});
});
/* ---------- single tour: "view all photos" scrolls the gallery ---------- */
var viewAll = app.querySelector(".tg-viewall, .gallery__viewall");
if (viewAll) viewAll.addEventListener("click", function () {
var g = app.querySelector(".gallery, .tour-gallery");
if (g) g.scrollIntoView({ behavior: "smooth" });
});
/* ---------- gallery lightbox (zoom / view photos) ---------- */
(function () {
var imgs = Array.prototype.slice.call(app.querySelectorAll(".gallery img"));
if (!imgs.length) return;
var host = imgs[0].closest(".vc-app") || document.body;
var box = document.createElement("div");
box.className = "vc-lightbox" + (imgs.length < 2 ? " vc-lightbox--single" : "");
box.setAttribute("role", "dialog");
box.setAttribute("aria-modal", "true");
box.innerHTML =
'<button class="vc-lightbox__btn vc-lightbox__prev" type="button" aria-label="Previous"><svg class="icon icon--24" aria-hidden="true"><use href="#i-arrow-left"></use></svg></button>' +
'<img class="vc-lightbox__img" alt="">' +
'<button class="vc-lightbox__btn vc-lightbox__next" type="button" aria-label="Next"><svg class="icon icon--24" aria-hidden="true"><use href="#i-arrow-right"></use></svg></button>' +
'<button class="vc-lightbox__btn vc-lightbox__close" type="button" aria-label="Close"><svg class="icon icon--24" aria-hidden="true"><use href="#i-x"></use></svg></button>' +
'<span class="vc-lightbox__count"></span>';
host.appendChild(box);
var bigImg = box.querySelector(".vc-lightbox__img");
var count = box.querySelector(".vc-lightbox__count");
var idx = 0;
function show(i) {
idx = (i + imgs.length) % imgs.length;
bigImg.src = imgs[idx].currentSrc || imgs[idx].src;
bigImg.alt = imgs[idx].alt || "";
count.textContent = (idx + 1) + " / " + imgs.length;
}
function open(i) {
show(i);
box.classList.add("is-open");
document.documentElement.style.overflow = "hidden";
}
function close() {
box.classList.remove("is-open");
document.documentElement.style.overflow = "";
}
imgs.forEach(function (img, i) {
img.addEventListener("click", function () { open(i); });
});
box.querySelector(".vc-lightbox__prev").addEventListener("click", function () { show(idx - 1); });
box.querySelector(".vc-lightbox__next").addEventListener("click", function () { show(idx + 1); });
box.querySelector(".vc-lightbox__close").addEventListener("click", close);
box.addEventListener("click", function (e) { if (e.target === box) close(); });
document.addEventListener("keydown", function (e) {
if (!box.classList.contains("is-open")) return;
if (e.key === "Escape") close();
else if (e.key === "ArrowLeft") show(idx - 1);
else if (e.key === "ArrowRight") show(idx + 1);
});
})();
})();

View File

@@ -0,0 +1,181 @@
/**
* Settings → Viator Structure editor. Regions and cities are plain DOM
* blocks; cities can only be added from the Viator destination search, and
* indexed field names are assigned on submit.
*/
(function () {
'use strict';
var cfg = window.vcStructure || {};
var i18n = cfg.i18n || {};
var form = document.getElementById('vc-structure-form');
var list = document.getElementById('vc-regions');
if (!form || !list) {
return;
}
function slugify(s) {
return String(s).toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-+|-+$/g, '');
}
function fromTemplate(id) {
var tpl = document.getElementById(id);
return tpl.content.firstElementChild.cloneNode(true);
}
function usedIds() {
var ids = {};
list.querySelectorAll('.vc-city [data-f="id"]').forEach(function (input) {
ids[input.value] = true;
});
return ids;
}
function move(el, dir) {
if (dir < 0 && el.previousElementSibling) {
el.parentNode.insertBefore(el, el.previousElementSibling);
} else if (dir > 0 && el.nextElementSibling) {
el.parentNode.insertBefore(el.nextElementSibling, el);
}
}
function addCity(region, item) {
var row = fromTemplate('vc-tpl-city');
row.querySelector('[data-f="id"]').value = item.id;
row.querySelector('[data-f="name"]').value = item.name;
row.querySelector('[data-f="slug"]').value = item.slug || slugify(item.name);
row.querySelector('.vc-city__name').textContent = item.name;
row.querySelector('.vc-city__id').textContent = item.id;
region.querySelector('.vc-cities tbody').appendChild(row);
}
function search(region) {
var q = region.querySelector('.vc-city-search input[type="search"]');
var out = region.querySelector('.vc-results');
out.textContent = i18n.searching || '…';
var data = new FormData();
data.append('action', 'vc_search_destinations');
data.append('_ajax_nonce', cfg.nonce);
data.append('q', q.value);
fetch(cfg.ajaxUrl, { method: 'POST', credentials: 'same-origin', body: data })
.then(function (r) { return r.json(); })
.then(function (res) {
if (!res || !res.success) {
out.textContent = (res && res.data && res.data.message) || i18n.failed;
return;
}
if (!res.data.results.length) {
out.textContent = i18n.noMatches;
return;
}
var used = usedIds();
out.innerHTML = '';
res.data.results.forEach(function (item) {
var row = document.createElement('div');
var btn = document.createElement('button');
btn.type = 'button';
btn.className = 'button button-small';
if (used[item.id]) {
btn.disabled = true;
btn.textContent = i18n.used;
} else {
btn.textContent = i18n.add;
btn.addEventListener('click', function () {
addCity(region, item);
out.innerHTML = '';
q.value = '';
});
}
var label = document.createElement('span');
label.textContent = item.name + ' (ID ' + item.id + ')';
row.appendChild(btn);
row.appendChild(label);
out.appendChild(row);
});
})
.catch(function () { out.textContent = i18n.failed; });
}
list.addEventListener('click', function (e) {
var btn = e.target.closest('[data-act]');
if (!btn) {
return;
}
var region = btn.closest('.vc-region');
var city = btn.closest('.vc-city');
var target = city || region;
switch (btn.getAttribute('data-act')) {
case 'up': move(target, -1); break;
case 'down': move(target, 1); break;
case 'remove-city': city.remove(); break;
case 'remove-region':
if (window.confirm(i18n.confirm)) {
region.remove();
}
break;
case 'search': search(region); break;
}
});
list.addEventListener('keydown', function (e) {
if (e.key === 'Enter' && e.target.matches('.vc-city-search input[type="search"]')) {
e.preventDefault();
search(e.target.closest('.vc-region'));
}
});
// Suggest a region slug from its name until the slug is edited by hand.
list.addEventListener('input', function (e) {
var input = e.target;
if (input.matches('.vc-region__head [data-f="slug"]')) {
input.dataset.touched = '1';
}
if (input.matches('.vc-region__head [data-f="name"]')) {
var slug = input.closest('.vc-region__head').querySelector('[data-f="slug"]');
if (!slug.dataset.touched && (slug.value === '' || slug.dataset.auto === '1')) {
slug.value = slugify(input.value);
slug.dataset.auto = '1';
}
}
});
document.getElementById('vc-add-region').addEventListener('click', function () {
var region = fromTemplate('vc-tpl-region');
list.appendChild(region);
region.querySelector('[data-f="name"]').focus();
});
function hidden(name) {
var input = document.createElement('input');
input.type = 'hidden';
input.name = name;
input.value = '1';
form.appendChild(input);
}
form.addEventListener('submit', function (e) {
var regions = list.querySelectorAll('.vc-region');
if (!regions.length) {
if (!window.confirm(i18n.confirmEmpty)) {
e.preventDefault();
return;
}
hidden('vc_confirm_empty');
}
// Proves the editor ran: the server refuses a save without it, so a
// failed script can never submit an empty structure by accident.
hidden('vc_structure_present');
regions.forEach(function (region, i) {
region.querySelectorAll('.vc-region__head [data-f]').forEach(function (input) {
input.name = 'vc_structure[' + i + '][' + input.dataset.f + ']';
});
region.querySelectorAll('.vc-city').forEach(function (city, j) {
city.querySelectorAll('[data-f]').forEach(function (input) {
input.name = 'vc_structure[' + i + '][cities][' + j + '][' + input.dataset.f + ']';
});
});
});
});
})();

View File

@@ -0,0 +1,163 @@
#!/usr/bin/env node
/**
* scope-css.js — prefix every selector in the "new front" stylesheet with
* `#vc-app` so the ported design cannot leak into (or fight) the WordPress
* theme. Dependency-free brace-aware parser.
*
* node build/scope-css.js "../new front/css/style.css" assets/css/vc-design.css
*
* Rules:
* - `:root { ... }` is left untouched (global custom properties).
* - `@keyframes` names and step selectors (`0%`, `from`, `to`) are untouched.
* - `@font-face` descriptors are untouched.
* - `@media` / `@supports` wrappers are kept; their inner rules are scoped.
* - Leading `html` / `body` / `*` tokens are mapped into the `#vc-app` scope.
* - Every other selector gets a `#vc-app ` prefix.
*/
'use strict';
const fs = require('fs');
// Doubled class (`.vc-app.vc-app`) so every ported rule carries an extra class
// of specificity — enough to win against Astra's content selectors (e.g.
// `.ast-… .entry-content a`) without touching the markup, which still only
// needs a single `class="vc-app"`. Override with VC_SCOPE if ever needed.
const SCOPE = process.env.VC_SCOPE || '.vc-app.vc-app';
function prefixSelector(sel) {
sel = sel.trim();
if (!sel) return sel;
// Leave :root and keyframe-ish untouched (keyframes handled by caller).
if (sel === ':root' || sel.startsWith(':root')) return sel;
// html -> scope root
if (sel === 'html' || sel.startsWith('html ') || sel.startsWith('html.') ||
sel.startsWith('html:') || sel.startsWith('html[')) {
return SCOPE + sel.slice(4);
}
// body -> scope root
if (sel === 'body' || sel.startsWith('body ') || sel.startsWith('body.') ||
sel.startsWith('body:') || sel.startsWith('body[') || sel.startsWith('body>')) {
return SCOPE + sel.slice(4);
}
// Universal selector: `*`, `*::before`, `* + *` ...
if (sel === '*' || sel.startsWith('*')) {
return SCOPE + ' ' + sel;
}
return SCOPE + ' ' + sel;
}
function prefixSelectorList(prelude) {
return prelude
.split(',')
.map(function (s) { return prefixSelector(s); })
.join(',\n');
}
/**
* Transform a run of CSS text at a given nesting context.
* @param {string} css
* @param {boolean} inKeyframes when true, rule preludes are step selectors -> keep as-is
*/
function transform(css, inKeyframes) {
let out = '';
let i = 0;
const n = css.length;
let buf = '';
while (i < n) {
const ch = css[i];
// Preserve comments verbatim.
if (ch === '/' && css[i + 1] === '*') {
const end = css.indexOf('*/', i + 2);
const stop = end === -1 ? n : end + 2;
buf += css.slice(i, stop);
i = stop;
continue;
}
if (ch === '{') {
const prelude = buf;
buf = '';
// Find the matching closing brace for this block.
let depth = 1;
let j = i + 1;
while (j < n && depth > 0) {
if (css[j] === '/' && css[j + 1] === '*') {
const e = css.indexOf('*/', j + 2);
j = e === -1 ? n : e + 2;
continue;
}
if (css[j] === '{') depth++;
else if (css[j] === '}') depth--;
if (depth === 0) break;
j++;
}
const inner = css.slice(i + 1, j);
// Pull any comments out of the prelude and emit them before the rule,
// so a comment sitting in front of a selector never gets scoped into it.
const split = extractComments(prelude);
out += split.comments;
const trimmed = split.clean.trim();
const lower = trimmed.toLowerCase();
if (lower.startsWith('@keyframes') || lower.startsWith('@-webkit-keyframes')) {
// Keep name; do not scope step selectors inside.
out += trimmed + ' {' + inner + '}';
} else if (lower.startsWith('@font-face')) {
out += trimmed + ' {' + inner + '}';
} else if (lower.startsWith('@media') || lower.startsWith('@supports') ||
lower.startsWith('@container') || lower.startsWith('@layer')) {
// Recurse into the block to scope inner rules.
out += trimmed + ' {\n' + transform(inner, false) + '}';
} else if (lower.startsWith('@')) {
// Any other at-rule with a block: leave prelude, recurse cautiously.
out += trimmed + ' {' + transform(inner, inKeyframes) + '}';
} else if (inKeyframes) {
out += trimmed + ' {' + inner + '}';
} else {
// Ordinary style rule -> scope the selector list.
out += prefixSelectorList(trimmed) + ' {' + inner + '}';
}
out += '\n\n';
i = j + 1;
continue;
}
if (ch === '}') {
// Stray close (end of a recursion slice) — flush and stop-ish.
out += buf;
buf = '';
i++;
continue;
}
buf += ch;
i++;
}
out += buf;
return out;
}
// Separate comments from the selector prelude. Comments are returned intact
// (to be emitted before the rule); `clean` is the comment-free selector text.
function extractComments(prelude) {
let comments = '';
const clean = prelude.replace(/\/\*[\s\S]*?\*\//g, function (c) {
comments += c + '\n';
return ' ';
});
return { comments: comments, clean: clean };
}
function main() {
const src = process.argv[2] || '../new front/css/style.css';
const dest = process.argv[3] || 'assets/css/vc-design.css';
const css = fs.readFileSync(src, 'utf8');
const header = '/* Generated by build/scope-css.js from ' + src +
' — do not edit by hand. */\n\n';
const out = header + transform(css, false).replace(/\n{3,}/g, '\n\n');
fs.writeFileSync(dest, out, 'utf8');
process.stdout.write('Wrote ' + dest + ' (' + out.length + ' bytes)\n');
}
main();

View File

@@ -0,0 +1,131 @@
# New Front Re-skin — Implementation Plan
> **For agentic workers:** Use superpowers:executing-plans to implement task-by-task. This is a WordPress/PHP visual re-skin: tasks verify by rendering markup / inspecting output, not by pytest.
**Goal:** Replace the `viator-collector` plugin's entire front-end look with the "Hop On Hop Off" design from `../new front/`, keeping all WordPress data/query logic.
**Architecture:** Port the mockup's markup into the plugin's PHP templates/shortcodes; port `new front/css/style.css` scoped under `#vc-app`; port the SVG icon sprite and the needed `main.js` interactions; ship decorative assets. Drop Lucide + noUiSlider + old CSS.
**Tech Stack:** PHP (WordPress), CSS (token-based), vanilla JS, Node (build-time CSS scoper only).
**Spec:** `docs/superpowers/specs/2026-09-11-new-front-reskin-design.md`
## Global Constraints
- All plugin output wrapped in `#vc-app`; every ported CSS rule prefixed `#vc-app` (except `:root`, `@keyframes` steps, `@font-face`).
- No change to CPT/taxonomy/meta keys, importer, cron, API, or filter/query logic.
- Server-side filtering/sort/pagination retained (GET params).
- Site header/nav/footer remain theme-owned (not rendered by plugin).
- Real tour data fills all content; only decorative images ship with plugin.
- Text domain `viator-collector`; escape all output.
---
## Phase 1 — Foundation assets
### Task 1: CSS scoper + scoped stylesheet
**Files:** Create `build/scope-css.js`, `assets/css/vc-design.css` (generated); source `../new front/css/style.css`.
- [ ] Write `build/scope-css.js`: brace-aware parser; prefix each selector with `#vc-app ` except `:root`, keyframe steps, `@font-face` descriptors; map `html`/`body`/`*` leading tokens to `#vc-app` scope; leave `@media`/`@supports` wrappers, recurse into them; keep `@keyframes` names/steps intact.
- [ ] Run it to generate `assets/css/vc-design.css`.
- [ ] Verify: no rule leaks (grep that every non-`:root`/non-keyframe selector line contains `#vc-app`); `:root` tokens present; keyframes intact.
- [ ] Commit.
### Task 2: Icon sprite + helpers
**Files:** Create `assets/icons/sprite.svg`, add helpers to `includes/helpers.php`.
- [ ] Extract the `<symbol id="i-…">` set from `new front/index.html` into `assets/icons/sprite.svg`, plus a `<defs><path id="ringPathScroll" …></defs>`.
- [ ] `vc_print_icon_sprite()` — prints the sprite once (static guard).
- [ ] `vc_icon($name, $extra_class='')` — returns `<svg class="icon …"><use href="#i-$name"></svg>`.
- [ ] `vc_ring_badge($label, $url, $variant='card')` — returns the ring-badge anchor markup.
- [ ] Verify: helpers return expected strings; sprite has all icons referenced by templates.
- [ ] Commit.
### Task 3: Decorative assets
**Files:** Create `assets/img/` (copy bus-iso.png, bus-open-top.png, tower.png, ellipse-17.png, ellipse-17-2.png, hero.png, hero2.png, hero3.jpg from `../new front/assets`).
- [ ] Copy the decorative images.
- [ ] Add `vc_asset_url($rel)` helper (returns `VC_PLUGIN_URL . 'assets/' . $rel`) if not present.
- [ ] Commit.
### Task 4: JS interactions
**Files:** Create `assets/js/vc-design.js`; trim `assets/js/vc-frontend.js`.
- [ ] Port from `main.js`: card rails, FAQ accordion, testimonials marquee (ring-badge spin is CSS). Omit header/nav/sticky and the client-side listing filter.
- [ ] In `vc-frontend.js`, remove noUiSlider init; keep auto-submit + mobile filter drawer behaviors used by the listing.
- [ ] Verify: no reference to removed globals; file loads without error.
- [ ] Commit.
### Task 5: Enqueue swap
**Files:** Modify `includes/class-vc-display.php::enqueue_assets`.
- [ ] Remove Lucide, noUiSlider (css+js), `vc-listing.css`, `vc-single.css`, `viator-collector.css` enqueues.
- [ ] Add Plus Jakarta Sans (Google Fonts), `vc-design.css`, `vc-design.js`. Print sprite via `wp_footer`/inline on our pages.
- [ ] Keep gating (single/archive/shortcode). Bump `VC_VERSION`.
- [ ] Verify: on a tour page only new assets load; Lucide/noUiSlider absent.
- [ ] Commit.
## Phase 2 — Tour card (shared)
### Task 6: `card-tour.php` → dcard
**Files:** Modify `templates/card-tour.php`.
- [ ] Rewrite to emit `article.dcard` (variants: `dcard--wide` for listing `li.titem`, plain `dcard` for homepage `li` rail). Slots: `.dcard__img` (`vc_tour_image_html`), `.rating` (`_vc_rating` + `vc_icon('star')`), `.dcard__title` (permalinked), `.dcard__meta` (Start at → `vc_money`, Duration → `vc_duration_human`), `vc_ring_badge('BOOK NOW', permalink)`, badge via `vc_card_badge`, `.titem__desc` (excerpt) for listing variant.
- [ ] Accept `$variant` arg; default `wide`.
- [ ] Verify: renders both variants with real data; icons resolve.
- [ ] Commit.
## Phase 3 — Listing / archive
### Task 7: `listing.php` hero + filter bar
**Files:** Modify `templates/listing.php`.
- [ ] Replace hero + sidebar with `section.hero.hero--archive` + `form.filters` (GET). Map controls to existing params: search→`vc_q`, `dest[]`, `cat[]`, price `<select>`→`price`, duration `<select>`→`dur[]` (half/full/multi), `filters__bar` checks→`freecancel`/`bestdeal`/`sellout`, sort control→`sort`, Apply submit.
- [ ] Verify: submitting each control updates results via server query; active-filter chips still work (restyled).
- [ ] Commit.
### Task 8: `listing.php` grid + results + pager
**Files:** Modify `templates/listing.php`.
- [ ] Render `ul.tgrid` of `card-tour.php` (`wide`); `.results` with server count; custom `.pager`/`.pager__num` from `$vc_query->max_num_pages` preserving query string; styled empty state.
- [ ] Verify: pagination navigates server pages; count correct; URLs shareable.
- [ ] Commit.
## Phase 4 — Single tour
### Task 9: `single-viator_tour.php` hero + head + facts
**Files:** Modify `templates/single-viator_tour.php`.
- [ ] `section.hero-tour` (primary image, kicker, destination word, `tower.png` figure), breadcrumb, `.tour-head` + `.tmeta` (rating/location/supplier), `ul.facts` (duration/max/free-cancel/category) via `vc_icon`.
- [ ] Verify: renders with real meta; missing fields omitted cleanly.
- [ ] Commit.
### Task 10: `single-viator_tour.php` body blocks
**Files:** Modify `templates/single-viator_tour.php`.
- [ ] `tour__block`s: Overview (`the_content`), Gallery (`.gallery` from gallery URLs), includes/excludes (`.ilist` + `.tick`), Good to know, Cancellation Policy (`.policy` + `.statcard--yes/--no`), Reviews.
- [ ] Verify: each block appears only when data present; matches mockup.
- [ ] Commit.
### Task 11: `single-viator_tour.php` booking aside + mobile bar
**Files:** Modify `templates/single-viator_tour.php`.
- [ ] `aside.tour__aside > .bookcard`: From/price, Check Availability → `_vc_booking_url`, `statcard--teal` free-cancel + `statcard--yes` reserve-now. Restyle mobile book bar.
- [ ] Verify: CTA links to booking URL; price from meta.
- [ ] Commit.
## Phase 5 — Homepage sections
### Task 12: Re-skin data shortcodes to rails
**Files:** Modify `includes/class-vc-display.php` (render_section) or `class-vc-sections.php`; `templates/card-destination.php`, `card-attraction.php`, `card-activity.php`.
- [ ] `viator_top_destinations`/`viator_top_tours` → `section.section` + `.sec-head` (title, lead, See-all, `.rail-nav` prev/next) + `ul.rail` of `.dcard`s. Attractions/activities → feature/activity section styling.
- [ ] Verify: rails scroll via `vc-design.js`; real terms/tours render.
- [ ] Commit.
### Task 13: New static-chrome shortcodes
**Files:** Modify `includes/class-vc-display.php` (register) + create `templates/section-hero.php`, `section-faq.php`, `section-testimonials.php`.
- [ ] `viator_hero` → `section.hero` + `form.booking` (Location from `viator_destination` terms, Date, Seats) submitting to listing archive with filter params.
- [ ] `viator_faq` → `section.faq` accordion; content via shortcode inner content / `atts` (Q/A pairs).
- [ ] `viator_testimonials` → `section.testimonials` marquee; items via inner content / `atts`.
- [ ] Register in `SHORTCODES` + enqueue gating.
- [ ] Verify: shortcodes render on a Page; booking form routes to filtered listing.
- [ ] Commit.
## Phase 6 — Verify & finish
### Task 14: Full-page verification
- [ ] With a theme (Astra) active, load listing, single, and a homepage-shortcode Page; confirm visual match to mockup within content area; no style bleed outside `#vc-app`; no console errors; Lucide/noUiSlider not loaded; server filtering/pagination work.
- [ ] Update `SHORTCODES.md`; bump version; final commit.
## Self-review notes
- Spec coverage: scoping (T1), icons/ring-badge (T2), assets (T3), JS (T4), enqueue (T5), card (T6), listing (T7–8), single (T9–11), homepage data+chrome (T12–13), acceptance (T14) — all mapped.
- Duration mismatch handled in T7 (plugin buckets). FAQ/testimonials content source resolved in T13 (inner content/atts). Footer back-to-top badge dropped (theme-owned) per spec default.

View File

@@ -0,0 +1,293 @@
# Region / City / Product URLs Implementation Plan
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
**Goal:** Serve regions at `/{region}/`, cities at `/{city}/` and products at `/{city}/{product}/`. The client manages the region → city structure from a validated settings screen.
**Architecture:** A pure-PHP `VC_Structure` class holds the structure, validation, canonical-city choice and rewrite-rule generation, and is unit-tested without WordPress. Thin WordPress layers sit on top of it:
- `VC_Structure_Admin`: settings screen, save, sync to `viator_destination` terms
- `VC_Routing`: rewrite rules, link filters, 301s
- `VC_Menu`: region items in the header menu
These layers are verified by `php -l` and a manual QA pass on a WordPress install.
**Tech Stack:** WordPress, PHP 8 (local CLI is PHP 8.4), plugin `viator-collector`, child theme `astra-child-hoponhopoff`. No Composer/PHPUnit: tests use a tiny runner at `viator-collector/tests/run.php`.
**Spec:** `viator-collector/docs/superpowers/specs/2026-10-29-region-city-urls-design.md`
## Global Constraints
- Preset regions, in order: UK `uk`, Europe `europe`, Asia `asia`, Middle East and Africa `middle-east-and-africa`, Americas `americas`, Australasia `australasia`.
- Valid slug: `^[a-z0-9]+(?:-[a-z0-9]+)*$`.
- Reserved slugs: `wp-admin`, `wp-content`, `wp-includes`, `wp-json`, `feed`, `page`, `search`, `tag`, `category`, `author`, `tours`, `tour-destination`, `tour-tag`, `tour-category`, `blog`, `about`, `contact`, `faq`, `embed`, `attachment`.
- Term meta: region flag `_vc_region` = `1`; city link `_vc_viator_destination_id` (already exists).
- Post meta: `_vc_primary_destination` (Viator destination ref string).
- Options: `vc_structure` (structure array), `vc_flush_rewrite` (flag).
- All redirects are 301 and keep the query string.
- Match plugin style: static classes, `VC_` prefix, tabs, `vc_get_option`, `VC_Logger`, text domain `viator-collector`.
- Work on branch `feature/region-city-urls`, not `main`.
- `tests/` and `docs/` never ship in the zip.
**Structure array shape** (used everywhere):
```php
array(
array(
'name' => 'Europe',
'slug' => 'europe',
'term_id' => 12, // 0 until synced
'cities' => array(
array( 'id' => '737', 'name' => 'Amsterdam', 'slug' => 'amsterdam' ),
),
),
)
```
## Review Focus
1. A city slug equal to an **unconfigured** existing destination term's slug (e.g. two Viator "Victoria"s) must be a validation error, not a silent `wp_update_term` failure. Covered by `test_validate_taken_slug` (Task 1).
2. A product whose Viator primary destination is not configured but which belongs to two configured cities must use the first city in settings order. Covered by `test_canonical_city_fallback_order` (Task 1).
3. A product in no configured city keeps `/tours/{slug}/`: `canonical_city()` returns `''`. Covered by `test_canonical_city_none` (Task 1).
4. An admin-typed slug like `New York` or `amsterdam!` must be rejected, not silently changed. Covered by `test_validate_bad_slug` (Task 1).
5. Filter and sort query strings (`?dest=…&sort=…&paged=2`) must survive every 301. Covered by manual check M6 (Task 7).
---
### Task 1: `VC_Structure` core and test runner
**Files:**
- Create: `viator-collector/includes/class-vc-structure.php`
- Create: `viator-collector/tests/run.php`, `viator-collector/tests/test-structure.php`
- Modify: `build-zip.php` (add `'tests'` to `$excluded_dirs`)
**Interfaces (Produces):** class `VC_Structure`, all `public static`:
- `const OPTION = 'vc_structure';`
- `default_regions(): array`: the six presets, `term_id` 0, no cities.
- `get(): array`: `get_option( self::OPTION, self::default_regions() )`, cached in a static per request. Untested; WordPress only.
- `normalize( array $raw ): array`
- Shape POST data into the structure shape: trim names, `trim(strtolower())` slugs, cast `term_id` to int and `id` to a digit string, drop city rows with an empty `id`, reindex.
- An empty region slug becomes `slugify( name )`. An empty city slug becomes `slugify( city name )`.
- `slugify( string $s ): string`: lowercase, runs of non `[a-z0-9]` become `-`, trim `-`.
- `reserved_slugs(): array`: the list in Global Constraints.
- `validate( array $structure, array $destination_map, array $taken ): array`
- `$destination_map` is Viator `id => name`. `$taken` is `slug => human label` for slugs owned by something outside the structure.
- Returns a list of error strings, empty when valid. Messages are exact:
- `Region %d has no name.` (1-based)
- `City ID %s is not a Viator destination.`
- `%s is listed more than once.` (city name)
- `Slug "%s" is invalid: use only a-z, 0-9 and -.`
- `Slug "%s" is reserved.`
- `Slug "%s" is used more than once.`
- `Slug "%s" is already used by %s.`
- `cities( array $structure ): array`: ordered `viator_id => city + array( 'region' => region slug )`.
- `canonical_city( array $structure, array $dest_ids, string $primary_id ): string`
- Returns the city slug for `$primary_id` if it is configured.
- Otherwise returns the slug of the first configured city (in `cities()` order) that appears in `$dest_ids`.
- Otherwise returns `''`.
- `primary_destination_id( array $destinations ): string`: `ref` (or `destinationId`) of the entry with truthy `primary`, else `''`.
- `rewrite_rules( array $structure ): array`, regex => query, in this order:
- each region: `'^europe/?$' => 'index.php?viator_destination=europe'`
- each city: `'^amsterdam/?$' => 'index.php?viator_destination=amsterdam'` and `'^amsterdam/([^/]+)/?$' => 'index.php?viator_tour=$matches[1]'`
- [ ] **Step 1: Write the runner.** `tests/run.php` defines `ABSPATH`, requires `includes/class-vc-structure.php` and every `tests/test-*.php`, then calls each function whose name starts with `test_`. It provides `vc_assert_same( $expected, $actual, string $msg )`, which throws on mismatch, and `vc_assert_contains( string $needle, array $errors )`. It prints `N passed, M failed` and exits 1 on any failure.
- [ ] **Step 2: Write the failing tests** in `tests/test-structure.php`. Use the fixture `$s` = Europe(`amsterdam` id 737, `paris` id 479) + Americas(`boston` id 678) and `$map = array('737'=>'Amsterdam','479'=>'Paris','678'=>'Boston','22'=>'Victoria')`.
```php
test_default_regions // 6 regions; slugs exactly the Global Constraints list, in order
test_normalize_fills_slugs // region name 'Middle East and Africa', slug '' -> 'middle-east-and-africa'; city row with id '' dropped
test_validate_ok // validate($s,$map,[]) === []
test_validate_unknown_city // city id '999' -> contains 'City ID 999 is not a Viator destination.'
test_validate_duplicate_city // 737 in Europe and Americas -> contains 'Amsterdam is listed more than once.'
test_validate_duplicate_slug // region slug 'paris' + city 'paris' -> contains 'Slug "paris" is used more than once.'
test_validate_bad_slug // 'New York' and 'amsterdam!' -> both 'Slug "…" is invalid: use only a-z, 0-9 and -.'
test_validate_reserved // city slug 'contact' -> contains 'Slug "contact" is reserved.'
test_validate_taken_slug // $taken=['victoria'=>'destination "Victoria"'], city slug 'victoria' -> contains 'Slug "victoria" is already used by destination "Victoria".'
test_validate_empty_region // region name '' -> contains 'Region 1 has no name.'
test_canonical_city_primary // canonical_city($s,['479','737'],'479') === 'paris'
test_canonical_city_fallback_order // canonical_city($s,['678','479','737'],'5555') === 'amsterdam'
test_canonical_city_none // canonical_city($s,['5555'],'') === ''
test_primary_destination_id // [['ref'=>'1'],['ref'=>'2','primary'=>true]] -> '2'; [] -> ''
test_rewrite_rules // exact array: europe, americas, amsterdam, amsterdam product, paris, paris product, boston, boston product (region rules first, then cities)
test_rewrite_rules_empty_region // region with no cities still yields '^europe/?$'
```
- [ ] **Step 3: Run and confirm the failure.** Run `php tests/run.php` from `viator-collector/`. Expected: a fatal error saying class `VC_Structure` was not found.
- [ ] **Step 4: Implement `VC_Structure`** with the interface above. Only `get()` may call WordPress functions.
- [ ] **Step 5: Run and confirm the pass.** Run `php tests/run.php`. Expected: `16 passed, 0 failed`.
- [ ] **Step 6: Exclude tests from the zip.** Add `'tests'` to `$excluded_dirs` in `build-zip.php`. Then run `php build-zip.php viator-collector "$TMP/vc.zip"` and confirm no `tests/` entries are in the zip.
- [ ] **Step 7: Commit.** Commit message: `feat(structure): add region/city structure model with validation`.
### Task 2: Importer stores the primary destination; crawl follows the structure
**Files:**
- Modify: `viator-collector/includes/class-vc-importer.php` (the `$meta` array in `save_tour_meta`, ~line 370)
- Modify: `viator-collector/includes/class-vc-cron.php` (`start_run`, ~lines 159-166)
- Modify: `viator-collector/includes/class-vc-settings.php` (description of the crawl destinations field)
- Modify: `viator-collector/includes/class-vc-plugin.php` (load `class-vc-structure.php` before the importer)
**Interfaces (Consumes):** `VC_Structure::primary_destination_id()`, `VC_Structure::cities()`, `VC_Structure::get()`.
- [ ] **Step 1: Store the primary destination.** Add `'_vc_primary_destination' => VC_Structure::primary_destination_id( (array) vc_array_get( $product, 'destinations', array() ) )` to the `$meta` array.
- [ ] **Step 2: Build the crawl queue from the structure.** In `start_run`:
- If `array_keys( VC_Structure::cities( VC_Structure::get() ) )` is non-empty, the queue is exactly that list.
- Otherwise keep the existing allowlist/full-catalogue logic.
- Log `Sync run started from structure — %d cities queued.` in the structure case.
- [ ] **Step 3: Relabel the old allowlist.** Append `Used only when no cities are set on the Viator Structure screen.` to the crawl destinations field's description.
- [ ] **Step 4: Lint.** Run `php -l` on each changed file. Expected: `No syntax errors detected` for each. Then run `php tests/run.php`, which should still pass.
- [ ] **Step 5: Commit.** Commit message: `feat(import): store primary destination; crawl configured cities`.
### Task 3: Structure settings screen, validated save, and term sync
**Files:**
- Create: `viator-collector/includes/class-vc-structure-admin.php`
- Create: `viator-collector/assets/js/vc-structure-admin.js`
- Modify: `viator-collector/includes/class-vc-plugin.php` (load the file and call `VC_Structure_Admin::init()`)
**Interfaces:**
- Consumes: all of `VC_Structure`; existing AJAX action `vc_search_destinations` (nonce `vc_search_destinations`, POST `q`, returns `{results:[{id,name}]}`); `VC_Taxonomies::get_or_create_destination_by_id( $id, $name )`; `VC_API::get_destination_map()`.
- Produces:
- `VC_Structure_Admin::init()`
- `VC_Structure_Admin::taken_slugs( array $structure ): array`, slug => label
- `VC_Structure_Admin::sync_terms( array $old, array $new ): array`, returns `$new` with region `term_id`s filled
- Sets option `vc_flush_rewrite` = 1 after a successful save
- [ ] **Step 1: Add the screen.** Register a submenu under Settings with `add_options_page`: title `Viator Structure`, slug `viator-collector-structure`, capability `manage_options`.
- The page renders one block per region: name input, slug input, a hidden `term_id`, and up/down/remove buttons.
- Each region block holds its city rows. A city row shows the name read-only, an editable slug, and a hidden `id` and `name`, with up/down/remove buttons.
- Each region has a city search box that calls `vc_search_destinations`. Results whose id is already used anywhere in the form are shown disabled.
- An "Add region" button sits at the end.
- Field names: `vc_structure[i][name|slug|term_id]` and `vc_structure[i][cities][j][id|name|slug]`. The JS renumbers indexes before submit.
- The form posts to `admin-post.php`, action `vc_save_structure`, nonce `vc_save_structure`.
- [ ] **Step 2: Implement `taken_slugs( $structure )`.** It returns these as `slug => label`:
- top-level Pages (`post_parent` 0), labelled `page "Title"`
- posts of every public post type in any status except trash and auto-draft, labelled `post "Title"`
- `viator_destination` terms that are neither a structure region (`term_id`) nor a structure city (matched through `_vc_viator_destination_id`), labelled `destination "Name"`
- [ ] **Step 3: Implement the save handler.**
1. Check the capability and nonce.
2. Run `normalize( wp_unslash( $_POST['vc_structure'] ?? array() ) )`.
3. Load the destination map. If that returns a `WP_Error`, treat it as the single error `Could not load Viator destinations; nothing was saved.`
4. Run `validate( $s, $map, self::taken_slugs( $s ) )`.
5. On errors, store `array( 'errors' => …, 'structure' => $s )` in transient `vc_structure_draft_{user_id}` (10 minutes) and redirect back. The screen re-renders that draft with a red notice listing every error. Nothing is saved.
6. On success: `$s = self::sync_terms( VC_Structure::get(), $s )`, then `update_option( VC_Structure::OPTION, $s )`, then `update_option( 'vc_flush_rewrite', 1 )`, then redirect with the notice `Structure saved.`
- [ ] **Step 4: Implement `sync_terms( $old, $new )`.**
- **Region:** update the term by `term_id` if it exists (name, slug, parent 0). Otherwise `wp_insert_term( name, 'viator_destination', array( 'slug' => slug ) )`. In both cases set `_vc_region` = 1 and store the `term_id` back.
- **City:** `$tid = VC_Taxonomies::get_or_create_destination_by_id( id, name )`, then `wp_update_term( $tid, 'viator_destination', array( 'slug' => slug, 'parent' => region term_id ) )`.
- **Removed regions** (old `term_id`s that are no longer present): `wp_delete_term`.
- **Removed cities** (old ids that are no longer present): set `parent` to 0.
- Log every `WP_Error` with `VC_Logger::error`.
- [ ] **Step 5: Add the page-slug clash notice.** On `admin_notices`, on the page edit screen, if the current page's `post_name` is a structure region or city slug, show the warning `This page's URL is also used by the Viator region/city "%s"; the Viator page will take priority.`
- [ ] **Step 6: Lint.** Run `php -l includes/class-vc-structure-admin.php` and `node --check assets/js/vc-structure-admin.js`. Expected: no errors.
- [ ] **Step 7: Commit.** Commit message: `feat(structure): admin screen with validated save and term sync`.
### Task 4: Routing — rewrite rules, links, redirects
**Files:**
- Create: `viator-collector/includes/class-vc-routing.php`
- Modify: `viator-collector/includes/class-vc-plugin.php` (load the file and call `VC_Routing::init()`)
**Interfaces:**
- Consumes: `VC_Structure::get()`, `::rewrite_rules()`, `::cities()`, `::canonical_city()`; option `vc_flush_rewrite`.
- Produces: `VC_Routing::init()`, `VC_Routing::is_configured_term( WP_Term $term ): bool`, `VC_Routing::product_city( int $post_id ): string`
- [ ] **Step 1: Register the rules.** On `init` at priority 20, call `add_rewrite_rule( $regex, $query, 'top' )` for each `rewrite_rules( get() )` entry. Then, if `get_option( 'vc_flush_rewrite' )` is set, delete it and call `flush_rewrite_rules( false )`.
- [ ] **Step 2: Implement `is_configured_term`.** It is true when the term is in `viator_destination` and either has `_vc_region` = 1 or its `_vc_viator_destination_id` is a key of `cities()`.
- [ ] **Step 3: Implement `product_city`.** Build `$dest_ids` from the `ref` / `destinationId` values in the post's `_vc_destinations` JSON meta. Return `canonical_city( get(), $dest_ids, (string) _vc_primary_destination )`. Cache the result per `post_id` in a static.
- [ ] **Step 4: Add the link filters.**
- `term_link`: for a configured term, return `home_url( '/' . $term->slug . '/' )`.
- `post_type_link`: for a `viator_tour` with a non-empty `post_name` and a non-empty `product_city`, return `home_url( "/{city}/{post_name}/" )`.
- Everything else is returned unchanged.
- [ ] **Step 5: Add the 301s.** On `template_redirect`, for `is_singular( 'viator_tour' )` (published, not a preview) and for configured `is_tax( 'viator_destination' )`:
- Compute the canonical URL (`get_permalink()` / `get_term_link()`).
- Compare `untrailingslashit` paths of the canonical URL and `REQUEST_URI` with the query string removed.
- If they differ, `wp_safe_redirect( canonical + '?' + original query string if any, 301 )` and exit.
- [ ] **Step 6: Add the term canonical tag.** On `wp_head`, for a configured term archive, print `<link rel="canonical" href="…">`. Skip this when `WPSEO_VERSION` or `RANK_MATH_VERSION` is defined. Singular products already get core's canonical from `get_permalink()`.
- [ ] **Step 7: Lint and commit.** Run `php -l includes/class-vc-routing.php`. Expected: no errors. Commit message: `feat(routing): region/city/product URLs with 301s from old paths`.
### Task 5: Region landing page
**Files:**
- Create: `viator-collector/templates/region.php`
- Modify: `viator-collector/includes/class-vc-display.php` (`taxonomy_template`, ~line 534)
- Modify: `viator-collector/templates/listing.php` (new optional arg `$vc_after_hero`)
**Interfaces (Consumes):** `VC_Routing::is_configured_term()`; existing `vc_get_template()`, `card-destination.php` (arg `term`), `listing.php`.
- [ ] **Step 1: Route region terms.** In `taxonomy_template`, when the queried term has `_vc_region` = 1, return `get_stylesheet_directory() . '/viator-collector/region.php'` if it exists, else `VC_PLUGIN_DIR . 'templates/region.php'`.
- [ ] **Step 2: Add `$vc_after_hero` to `listing.php`.** It is an optional HTML string, default `''`, echoed immediately after the listing hero section closes.
- [ ] **Step 3: Write `templates/region.php`.**
- Copy the structure of `taxonomy-viator.php`.
- Build `$vc_after_hero` as `<section class="vc-section vc-section--destinations">`. It holds the heading `Cities in %s` and a `vc-destination-grid` of `card-destination.php` cards.
- The cards are the child terms from `get_terms( array( 'taxonomy' => 'viator_destination', 'parent' => term_id, 'hide_empty' => false ) )`, ordered as in the structure (the order of `cities()`).
- The listing's main query already includes child terms, so it shows every tour in the region.
- [ ] **Step 4: Lint and commit.** Run `php -l` on the three files. Commit message: `feat(display): region landing page with city grid`.
### Task 6: Regions in the header menu
**Files:**
- Create: `viator-collector/includes/class-vc-menu.php`
- Modify: `viator-collector/includes/class-vc-plugin.php` (load the file and call `VC_Menu::init()`)
- Modify: `astra-child-hoponhopoff/inc/nav-walker.php` (`hoho_nav_fallback`)
**Interfaces:**
- Consumes: `VC_Structure::get()`; region and city terms (`term_id`, links via `get_term_link`).
- Produces: `VC_Menu::items(): array` of menu-item objects.
- [ ] **Step 1: Implement `VC_Menu::items()`.** Build `stdClass` items with these fields: `ID`, `db_id`, `menu_item_parent` (string), `title`, `url`, `classes` (array), `type` `'custom'`, `object` `'custom'`, `object_id`, `target` `''`, `xfn` `''`, `attr_title` `''`, `description` `''`, `current` false.
- Use negative unique `ID`/`db_id`: `-1000 - n`.
- Each region gets a top-level item.
- A region with cities gets these children, in order: `All of %s` (the region URL, because the theme walker turns a parent with children into a toggle button with no link), then one item per city.
- Regions whose term no longer exists are skipped.
- [ ] **Step 2: Append to the header menu.** Add the filter `wp_nav_menu_objects` (`$items`, `$args`). When `$args->theme_location === 'hoho_primary'`, return `array_merge( $items, self::items() )`. Set `menu_order` sequentially after the existing items.
- [ ] **Step 3: Update the theme fallback.** In `hoho_nav_fallback`, after the Tours link and when `class_exists( 'VC_Menu' )`, echo `walk_nav_menu_tree( VC_Menu::items(), 2, (object) array( 'walker' => new Hoho_Nav_Walker() ) )` inside the same `<ul>`.
- [ ] **Step 4: Lint and commit.** Run `php -l` on both PHP files. Commit message: `feat(menu): list regions and cities in the header menu`.
### Task 7: Version bump, build, and manual QA
**Files:**
- Modify: `viator-collector/viator-collector.php` (Version header and `VC_VERSION` → `1.9.0`)
- [ ] **Step 1: Bump the version, run the tests and build the zips.**
- Bump the version to 1.9.0.
- Run `php tests/run.php`. Expected: all tests pass.
- From the repo root, run `php build-zip.php viator-collector viator-collector.zip`.
- [ ] **Step 2: Manual QA on a WordPress install** with the client's live data copied over. Record pass or fail for each check:
- M1. Save the preset regions and add `Boston` and `New York City` under Americas. The menu shows the six regions, and Americas drops down to `All of Americas`, Boston and New York City.
- M2. `/americas/` shows the city grid and all of their tours. `/boston/` lists Boston tours.
- M3. `/tour-destination/boston/` gives a 301 to `/boston/`. Do the same check for all 15 of the client's URLs once those cities are added.
- M4. A Boston tour's card links to `/boston/{slug}/`. `/tours/{slug}/` and `/new-york-city/{slug}/` both give a 301 to it.
- M5. Saving each of these shows an error, and the previous structure is unchanged:
- a city twice
- slug `contact`
- slug `New York`
- a city slug equal to an existing page's slug
- M6. `/boston/?sort=price_asc&paged=2` keeps its query. `/tour-destination/boston/?sort=price_asc` gives a 301 to `/boston/?sort=price_asc`.
- M7. Run a manual sync. The log reads `cities queued` with the configured count.
- M8. `/contact/` and other pages still load.
- [ ] **Step 3: Commit.** Commit message: `chore: bump viator-collector to 1.9.0`.

View File

@@ -0,0 +1,299 @@
# Viator Collector — "Hop On Hop Off" Front-End Re-skin
**Date:** 2026-09-11
**Status:** Design — pending approval
**Author:** Amir Bagheri (with Claude)
## 1. Goal
Replace the entire visual front-end of the `viator-collector` WordPress
plugin with the new "Hop On Hop Off" design that currently exists as a
static mockup in `../new front/`, **without changing any of the plugin's
data model, query logic, or WordPress plumbing**. Every dynamic value
keeps coming from the `viator_tour` post type, its meta, and its
taxonomies exactly as today; only markup, CSS, icons, JS interactions,
and decorative assets change.
## 2. Decisions (locked)
| Question | Decision |
|---|---|
| Surfaces to re-skin | All three: listing/archive, single tour, homepage sections |
| Header / nav / footer | **Content only** — the WordPress theme (e.g. Astra) keeps providing site header/nav/footer. The plugin re-skins only its content area. |
| Listing filter behavior | **Keep server-side** (WP_Query + GET params + server pagination). Only the look changes. No switch to `main.js` client-side filtering. |
| Homepage static chrome | **Include it** — plugin also ships hero/booking, FAQ, and testimonials as shortcodes so the full `index.html` look is achievable. |
| Old CSS/JS | **Replace** — retire `vc-listing.css`, `vc-single.css`, `viator-collector.css`, `vc-sections.css`, and the Lucide dependency. |
## 3. Source of truth
The three canonical mockup pages are:
- `new front/index.html` — homepage (hero+booking, destinations rail, feature/bus section, most-liked tours rail, about, testimonials marquee, articles, FAQ)
- `new front/tours.html` — listing/archive (hero with horizontal filter bar, tour grid, results count, pager)
- `new front/tour.html` — single tour (hero-tour banner, facts, overview, gallery, includes/excludes, good-to-know, cancellation policy, reviews, booking aside)
Driven by `new front/css/style.css` (~3096 lines, token-based) and
`new front/js/main.js` (~419 lines).
**Ignored:** `new front/tourdetailsinfo.html` and
`new front/tourdetailscontent.html` are raw Figma/React export scraps
(absolute-positioned, Tailwind classNames). They are not part of the
design system and will not be used except as visual reference for the
booking aside (already fully expressed in `tour.html`).
## 4. Architecture
### 4.1 Scoping strategy (critical)
Because the plugin renders inside a WordPress theme, the new design's
generic class names (`.container`, `.section`, `.hero`, `.btn`,
`.rating`, `.meta`, `.dcard`, `.footer`, `.site-header`…) and its global
resets (`*`, `html`, `body`, `ul`, `a`, `button`) **must not leak** into
or fight the theme.
Approach:
- Every plugin surface is wrapped in the existing `#vc-app` scope
(already used by `shortcode_listing` and `single-viator_tour.php`).
Homepage section shortcodes get wrapped in `#vc-app` too.
- The ported stylesheet is transformed so **every rule is prefixed with
`#vc-app`** (e.g. `.dcard` → `#vc-app .dcard`). The `:root { --… }`
token block stays global (harmless custom properties).
- Global resets on `*`/`html`/`body` are dropped or converted to scoped
equivalents (`#vc-app`, `#vc-app *`). `scroll-behavior`,
`overflow-x:hidden` on `html`/`body` are dropped (theme's concern).
- Header/nav/footer CSS (`.site-header`, `.nav`, `.burger`, `.footer`,
`.skip-link`) from the mockup is **not** ported — the theme owns those.
Exception: the `.footer` "back to top" ring-badge is a reusable widget
we may keep for section use; TBD, default = drop.
### 4.2 Asset organization
New plugin asset layout:
```
viator-collector/assets/
css/
vc-design.css # ported + scoped style.css (single stylesheet)
js/
vc-frontend.js # existing server-side filter behaviors (kept, trimmed)
vc-design.js # ported interactions: rails, accordion, marquee, ring-badge
img/
(decorative design assets copied from new front/assets: bus-iso.png,
bus-open-top.png, tower.png, ellipse-17.png, ellipse-17-2.png,
hero.png, hero2.png, hero3.jpg)
icons/
sprite.svg # the <symbol> icon set + #ringPathScroll path def
```
- **Decorative** images (bus, tower, ellipses, hero backdrops) ship with
the plugin — they are chrome, not tour data.
- **Demo tour images** (`city-*.png`, `liked-*.png`, `tour-*.png`) are
NOT shipped; those slots are filled by real tour data
(`_vc_primary_image_url`, gallery URLs) via `vc_tour_image_html()`.
### 4.3 Icons
The mockup uses an inline SVG sprite: a hidden `<svg class="sprite">`
holding `<symbol id="i-…">` defs, referenced by
`<svg class="icon"><use href="#i-…"></svg>`. It also defines
`#ringPathScroll` (the circular text path for the "BOOK NOW" badge).
- Ship the sprite as `assets/icons/sprite.svg` and print it once per
plugin page via a small helper (`vc_print_icon_sprite()`), guarded so
it prints at most once.
- Add a helper `vc_icon( $name )` returning
`<svg class="icon"><use href="#i-$name"></svg>`.
- Replace all current `<i data-lucide="…">` usages with `vc_icon()`.
Lucide enqueue is removed.
Icon name mapping (Lucide → sprite):
| Lucide | Sprite |
|---|---|
| map-pin | i-location |
| clock | i-duration |
| users / user | i-person / i-user |
| shield-check | i-shield-check |
| calendar-check | i-calendar |
| rotate-ccw | i-duration (or reuse) |
| clipboard-list | i-grid |
| images | i-grid |
| star (rating) | i-star |
(Exact per-call mapping finalized during implementation; any missing
glyph is added to the sprite.)
### 4.4 JavaScript
`vc-design.js` (new) ports from `main.js` only what our content uses:
- **Card rails** — `.rail` horizontal scroll with `[data-rail-prev/next]`
buttons (used by homepage destination/tour rails).
- **FAQ accordion** — `[data-accordion]` / `.acc__q`.
- **Testimonials marquee** — `[data-marquee]` duplicate-for-loop.
- **Ring-badge** — the rotating "BOOK NOW" SVG textPath (needs
`#ringPathScroll` in the sprite; animation is CSS).
- Hero booking/availability form `preventDefault` demo handlers become
real submits to the tour's booking URL / listing action (no console
stubs).
**Explicitly NOT ported:** `main.js` client-side listing filter/sort/
pager (server-side stays), and header/nav/burger/sticky-header (theme's).
`vc-frontend.js` is kept for the server-side listing behaviors it already
provides (auto-submit selects/checks, filter drawer on mobile). The
noUiSlider price slider is **removed** — the new design uses a Price
Range `<select>`, which the existing `get_filter_state()` already parses.
### 4.5 Enqueue changes (`class-vc-display.php::enqueue_assets`)
- Remove: Lucide, noUiSlider (css+js), `vc-listing.css`, `vc-single.css`,
`viator-collector.css`.
- Add: Google Fonts "Plus Jakarta Sans"; `vc-design.css`; `vc-design.js`.
- Keep: `vc-frontend.js` (trimmed).
- Gating logic (single vs archive vs shortcode page) stays as-is.
## 5. Surface-by-surface mapping
### 5.1 Listing / archive — `templates/listing.php` + `templates/card-tour.php`
Target markup: `new front/tours.html`.
- **Hero** → `section.hero.hero--archive` with eyebrow pill, `h1`, and the
horizontal **filter bar** `form.filters` (submits GET to the same
action as today). Replaces the old sidebar + noUiSlider layout.
- Search input → `vc_q`
- Destination `<select>` → `dest[]` (single value)
- Category `<select>` → `cat[]`
- Price Range `<select>` → `price` (values like `0-50`, `50-150`,
`150-1000`; already parsed by `get_filter_state()`)
- Duration `<select>` → `dur[]` buckets (`half`/`full`/`multi`, labeled
Half Day / Full Day / Multi-Day — adapted from the mockup's day
options to the plugin's real buckets)
- "Apply Filters" submit button
- Checkbox row (`filters__bar`): Free Cancellation → `freecancel`,
Best Deal → `bestdeal`, Likely to Sell Out → `sellout`
- A sort control (styled to the design) → `sort`
- **Results head** → `.results` with `#resultCount` ("Showing X–Y of Z
tours", server values) and a "Clear filters" link when filters active.
- **Grid** → `ul.tgrid` of `li.titem > article.dcard.dcard--wide` cards
(see 5.2). Active-filter chips retained, restyled.
- **Pager** → custom server-rendered pager matching `.pager` /
`.pager__num` design (replaces `paginate_links` default markup and the
JS pager). Preserves current query string.
- Empty state → styled "no tours" message.
### 5.2 Tour card — `templates/card-tour.php`
Target: the `.dcard--wide` card in `tours.html` (and the rail `.dcard`
in `index.html` for homepage rails — one template, optional modifier).
Fields → design slots:
| Design slot | Data source |
|---|---|
| `.dcard__img` | `vc_tour_image_html()` (real image) |
| `.rating` pill (`<b>4.0</b>/5` + star) | `_vc_rating` |
| `.dcard__title` | `get_the_title()` |
| meta "Start at" `$xx` | `_vc_price_from` + `_vc_currency` via `vc_money()` |
| meta "Duration" | `_vc_duration_text` / `vc_duration_human()` |
| ring "BOOK NOW" badge link | permalink |
| `.titem__desc` (listing only) | excerpt |
| card badge (Best Deal / Sell-out) | `vc_card_badge()` |
| destination line (if kept) | `viator_destination` term |
The card must render correctly both as a listing `li.titem` and as a
homepage rail `li.dcard`; a `$variant` arg selects wrapper/markup.
### 5.3 Single tour — `templates/single-viator_tour.php`
Target: `new front/tour.html`.
- **Hero-tour banner** → `section.hero-tour` with `hero-tour__photo`
(primary image), `hero-tour__kicker` ("Welcome to"), `hero-tour__word`
(destination/title), decorative `hero-tour__figure` (`tower.png`,
decorative asset). Breadcrumb retained.
- **Layout** → `.container.tour__layout` = `.tour__main` + `aside.tour__aside`.
- **Head** → `.tour-head__title` + `.tmeta` (rating, location, supplier).
- **Facts** → `ul.facts` of `li.fact` (Duration, Max Travelers, Free
Cancellation, Category) from `_vc_duration_minutes`,
`_vc_max_travelers`, `_vc_free_cancellation`, `viator_tag`.
- **Overview** → `section.tour__block` with `the_content()`.
- **Gallery** → `.gallery` (hero + thumbs) from `_vc_gallery_image_urls`.
- **Includes / Excludes** → `.lists` of `.ilist` with `.tick--yes/--no`
from `_vc_inclusions` / `_vc_exclusions`.
- **Good to know** → `tour__block` from `_vc_additional_info`.
- **Cancellation policy** → `.policy` of `.statcard--yes/--no` refund
tiers from `_vc_cancellation_policy`.
- **Reviews** → restyled summary from `_vc_rating` / `_vc_review_count`.
- **Booking aside** → `.bookcard`: From/price (`_vc_price_from`),
"Check Availability" → `_vc_booking_url`, `statcard--teal` Free
Cancellation + `statcard--yes` Reserve-now cards.
- **Mobile book bar** retained, restyled.
### 5.4 Homepage sections — `class-vc-sections.php` / `class-vc-display.php` shortcodes
Existing data shortcodes are re-skinned; new static-chrome shortcodes are
added.
Re-skinned (data-driven):
- `viator_top_destinations` → "Where you wanna go?" section: `sec-head`
(title + lead + See-all + `rail-nav` prev/next) over a
`ul.rail.rail--dest` of `.dcard`s. (`card-destination.php`)
- `viator_top_tours` → "Most Liked Tours" rail (same rail pattern,
`card-tour.php` in `dcard` variant).
- `viator_top_attractions` → the feature / "bus-tours" section styling.
- `viator_browse_activities` → activity section styling.
New (static chrome, per decision — full `index.html` look):
- `viator_hero` → the homepage hero + booking form
(`section.hero` + `form.booking` with Location/Date/Seats). Location
select is populated from `viator_destination` terms; submit routes to
the listing archive with the chosen filters (real behavior, not a
console stub).
- `viator_faq` → `section.faq` accordion (`[data-accordion]`). Content
supplied via shortcode attributes / inner content or a simple options
list (final content source TBD in plan).
- `viator_testimonials` → `section.testimonials` marquee
(`[data-marquee]`). Content via shortcode attributes/inner content.
The About and Articles sections from `index.html` are ordinary editorial
content; they are **not** plugin shortcodes (the user builds them with
the theme/builder). Noted here to bound scope.
## 6. Out of scope
- Site header, primary nav, burger menu, sticky header, site footer
(theme-owned).
- Any change to importing, cron, API, CPT/taxonomy registration, meta
keys, or query/filter logic.
- Client-side filtering/sorting/pagination (server-side retained).
- About / Articles homepage sections as plugin features.
## 7. Risks & mitigations
- **Style leakage / theme conflicts** → strict `#vc-app` scoping; drop
global resets; no header/footer CSS. Verify against Astra.
- **Generic class collisions** (`.container`, `.btn`, `.hero`) → all
scoped under `#vc-app`; test with theme active.
- **Duration option mismatch** (mockup "1/3/7 days" vs plugin
half/full/multi buckets) → use the plugin's real buckets with mockup
styling.
- **Icon coverage** → any glyph used by a template but missing from the
sprite is added to `sprite.svg`.
- **Ring-badge dependency** → ensure `#ringPathScroll` path def is in the
sprite so the rotating badge renders.
## 8. Acceptance criteria
- Listing, single, and homepage sections visually match the mockup within
the plugin's content area, with the theme's header/footer around them.
- All dynamic values render from real tour data; no demo images/text ship
as content.
- Server-side filtering, sorting, and pagination work via GET params as
before; shareable URLs preserved.
- No new console errors; Lucide and noUiSlider no longer loaded.
- No style bleed into the theme outside `#vc-app` (verified with Astra).

View File

@@ -0,0 +1,159 @@
# Region / City / Product URL Structure — Design
Date: 2026-10-29
Status: draft, awaiting approval
## Intent
The client wants the site organised by place, like hoponhopoffplus.com:
visitors pick a **region**, then a **city**, then a **product**. URLs should
read the same way:
| Page | URL | Example |
|---------|---------------------------------------|----------------------------------------------------------------|
| Region | `/{region-slug}/` | `/europe/` |
| City | `/{city-slug}/` | `/amsterdam/` |
| Product | `/{city-slug}/{product-slug}/` | `/amsterdam/city-sightseeing-hop-on-hop-off-amsterdam-bus-tour-24-hours/` |
The header menu lists the regions: **UK, Europe, Asia, Middle East and
Africa, Americas, Australasia**.
## Goals
- The client builds the region → city structure in the plugin settings.
- Products keep importing automatically from Viator. A city page shows
**every** Viator product in that city, not only hop-on hop-off tours.
- The settings screen makes bad data impossible to save (see Validation).
- Existing live URLs keep working through 301 redirects. The client sent
these, which are live today and likely the first Americas cities:
washington-dc, boston, chicago, new-york-city, new-orleans, miami,
las-vegas, los-angeles, san-diego, san-francisco, seattle, victoria,
vancouver, montreal, toronto (all under `/tour-destination/{slug}/`).
## Non-goals
- The new static pages from `new front/` (about, contact, faq, blog,
blog-post). That is a separate, later project.
- A hand-built sample product page. Products come from the Viator plugin.
- Redesigning the listing, card or single-tour templates.
- Region in the city URL (`/europe/amsterdam/`). The client's examples
rule this out.
## Anti-goals (would count as failure even if it "works")
- A city or region URL that hijacks an existing WordPress page, post or
system path (e.g. a city slugged `about` or `wp-admin`).
- The same product reachable at two indexable URLs (duplicate content).
- Any of the client's existing `/tour-destination/...` links returning 404.
- Admin able to type a city that does not exist in Viator.
## Decisions (agreed in conversation)
- Structure lives in plugin settings; client owns it.
- Cities are picked only from Viator's destination list (reuse the existing
`vc_search_destinations` AJAX lookup in `class-vc-settings.php`).
- A product that belongs to several configured cities **appears on every
one of those city pages**.
- Old `/tour-destination/{slug}/` URLs 301 to `/{slug}/`.
## Decisions made by Claude (user delegated URL choices)
1. **One canonical product URL.** City in the URL = the product's Viator
*primary* destination if that destination is a configured city;
otherwise the first configured city (in settings order) the product
belongs to. Requesting the product under any other city
(`/paris/same-tour/`) 301s to the canonical URL. `/tours/{slug}/`
also 301s to the canonical URL.
2. **Products in no configured city** (left over from older crawls) keep
`/tours/{slug}/` and do not appear on any region/city page.
3. **Data model: reuse the `viator_destination` taxonomy (hierarchical).**
- Region = top-level term with no Viator ID, marked by term meta
`_vc_region = 1`.
- City = term linked to a Viator destination ID (existing
`_vc_viator_destination_id` meta), with its parent set to its region.
- Existing city terms are reused by Viator ID, so current slugs such as
`washington-dc` are kept as-is.
- A region page queries its child terms with `include_children`, so it
lists every product in its cities without extra assignment.
- The structure itself is stored as one option (`vc_structure`): an
ordered list of regions, each with an ordered list of
`{viator_id, name, slug}` cities. Saving the settings syncs it into
terms (create/re-parent/rename), never deleting products.
4. **The six regions come preset** (slugs: `uk`, `europe`, `asia`,
`middle-east-and-africa`, `americas`, `australasia`). The client can
rename, reorder, add or remove regions.
5. **City slug** defaults to `sanitize_title( Viator name )`, or the
existing term's slug if one exists. The admin may edit it; edits go
through the same validation.
6. **Routing: explicit rewrite rules per configured slug, not catch-alls.**
For each region and city, add rules for `^{slug}/?$`; for each city also
`^{slug}/([^/]+)/?$` → product. Rules are rebuilt and flushed when the
structure is saved. Unconfigured paths fall through to normal WordPress
routing, so pages like `/contact/` are unaffected. Listing pagination
already uses `?paged=`, so no `/page/N/` rule is needed (the builder
should confirm this).
7. **Links.** `term_link` filter returns `/{slug}/` for region and city
terms; `post_type_link` filter returns the canonical product URL.
Unconfigured destination terms keep `/tour-destination/{slug}/`.
8. **Crawl.** When the structure has at least one city, the crawl queue is
exactly the configured cities' Viator IDs. The old
`crawl_destinations` allowlist is used only when the structure is empty,
and its field is labelled as such.
9. **Primary destination.** The importer stores the Viator primary
destination ref (the entry in `destinations` with `primary: true`) in
post meta `_vc_primary_destination`. Products imported before this change
get it on the next sync; until then the fallback rule in (1) applies.
10. **Menu.** Regions are added automatically to the "HoHo — Header Menu"
location as top-level items, each with a dropdown of its cities (the
existing nav walker already renders dropdowns). Items the client added
by hand in the menu stay, and the regions are appended after them.
11. **Region landing page.** Hero (region name and term image), a grid of
its city cards (reuse `card-destination.php`), then the standard
listing of all tours in the region. **City landing page** = the
existing taxonomy listing template, unchanged apart from the URLs.
12. **SEO.** Canonical tags follow the canonical URLs above. All redirects
are 301.
## Validation (settings save)
The whole save is rejected, with the previous structure kept, and the admin
sees a list of every problem, if any of these is true:
- A city's Viator ID is not in Viator's destination list.
- The same city (Viator ID) appears twice, in one region or across regions.
- Two items (regions or cities) share a slug.
- A region has an empty name.
- A slug is empty or contains anything other than `a-z`, `0-9` and `-`.
- A slug collides with an existing page, post, or other public post-type
slug or archive (`tours`), or with a reserved word: WordPress reserved
query vars, `wp-admin`, `wp-content`, `wp-includes`, `feed`, `page`,
`search`, `tag`, `category`, `author`, `tour-destination`, `tour-tag`,
`tour-category`, `blog`, `about`, `contact`, `faq`.
The editor UI also prevents most of these before submit: cities are added
only from search results, and already-used cities are greyed out in the
results.
Also, when a Page is created or renamed to a slug a region or city already
uses, show an admin notice warning about the clash. (WordPress itself does
not block this.)
## Constraints
- WordPress, Astra child theme `astra-child-hoponhopoff`, plugin
`viator-collector`. Match the existing plugin style (static classes,
`VC_` prefix, `vc_get_option`, `VC_Logger`).
- Viator Basic access: the catalogue is only enumerable per destination,
which suits per-city crawling.
- No changes to how products are fetched or priced.
## Left to the builder
- Settings editor UI details (drag-to-reorder or up/down buttons, etc.)
as long as the validation and pick-from-Viator rules hold.
- Whether the structure editor is a section of the existing settings page
or its own sub-page.
- Exact redirect hook (`template_redirect` is the expected place).
- What happens to a city removed from the structure: its term stays (it is
un-parented and loses its `/{slug}/` route, so it falls back to
`/tour-destination/{slug}/`). Products are not deleted.

View File

@@ -0,0 +1,217 @@
<?php
defined( 'ABSPATH' ) || exit;
class VC_API {
public function get( $endpoint ) {
return $this->request( 'GET', $endpoint );
}
public function post( $endpoint, array $body = array() ) {
return $this->request( 'POST', $endpoint, $body );
}
public function request( $method, $endpoint, array $body = array() ) {
$api_key = vc_get_api_key();
if ( '' === $api_key ) {
return new WP_Error( 'vc_missing_api_key', __( 'Viator API key is missing.', 'viator-collector' ) );
}
$this->throttle();
$base = untrailingslashit( esc_url_raw( vc_get_option( 'api_base_url', 'https://api.viator.com/partner' ) ) );
$endpoint = '/' . ltrim( $endpoint, '/' );
$url = $base . $endpoint;
$timeout = max( 5, absint( vc_get_option( 'timeout', 20 ) ) );
$args = array(
'method' => strtoupper( $method ),
'timeout' => $timeout,
'headers' => array(
'Accept' => 'application/json;version=2.0',
'Accept-Language' => sanitize_text_field( vc_get_option( 'language', 'en-US' ) ),
'Content-Type' => 'application/json',
'exp-api-key' => $api_key,
),
);
if ( ! empty( $body ) && 'GET' !== strtoupper( $method ) ) {
$args['body'] = wp_json_encode( $body );
}
$response = wp_remote_request( $url, $args );
if ( is_wp_error( $response ) ) {
VC_Logger::log( 'API request failed: ' . $response->get_error_message(), true );
return $response;
}
$code = (int) wp_remote_retrieve_response_code( $response );
$raw = wp_remote_retrieve_body( $response );
if ( $code < 200 || $code >= 300 ) {
$message = sprintf( __( 'Viator API request failed with HTTP status %d.', 'viator-collector' ), $code );
$data = json_decode( $raw, true );
if ( is_array( $data ) && ! empty( $data['message'] ) ) {
$message .= ' ' . sanitize_text_field( $data['message'] );
}
VC_Logger::log( $message, true );
return new WP_Error( 'vc_api_http_error', $message, array( 'status' => $code ) );
}
$data = json_decode( $raw, true );
if ( JSON_ERROR_NONE !== json_last_error() ) {
return new WP_Error( 'vc_api_json_error', __( 'Viator API returned invalid JSON.', 'viator-collector' ) );
}
return is_array( $data ) ? $data : array();
}
/**
* Block until we are under the configured per-minute request budget.
*
* Timestamps of recent requests are persisted in an option so the limit
* holds across the separate PHP processes that WP-Cron continuation
* ticks run in, not just within a single request.
*/
private function throttle() {
$limit = max( 1, (int) vc_get_option( 'rate_limit_per_minute', 25 ) );
$now = microtime( true );
$window = get_option( 'vc_rate_window', array() );
if ( ! is_array( $window ) ) {
$window = array();
}
$window = array_values(
array_filter(
$window,
static function ( $t ) use ( $now ) {
return ( $now - (float) $t ) < 60.0;
}
)
);
if ( count( $window ) >= $limit ) {
$oldest = min( $window );
$wait = 60.0 - ( $now - (float) $oldest ) + 0.05;
if ( $wait > 0 ) {
usleep( (int) min( 60.0, $wait ) * 1000000 );
}
$now = microtime( true );
$window = array_values(
array_filter(
$window,
static function ( $t ) use ( $now ) {
return ( $now - (float) $t ) < 60.0;
}
)
);
}
$window[] = $now;
update_option( 'vc_rate_window', $window, false );
}
/**
* Search products within a single destination. This is the only way to
* enumerate the catalogue on Basic access: a destination filter is
* required and results are returned in pages (max 50 per page).
*
* @return array|WP_Error Decoded response, typically with `products` and `totalCount`.
*/
public function search_products( $destination, $start = 1, $count = 50, $currency = 'USD', array $extra_filters = array() ) {
$filtering = array_merge( array( 'destination' => (string) $destination ), $extra_filters );
$body = array(
'filtering' => $filtering,
'pagination' => array(
'start' => max( 1, (int) $start ),
'count' => max( 1, min( 50, (int) $count ) ),
),
'currency' => sanitize_text_field( $currency ),
);
return $this->post( '/products/search', $body );
}
public function get_product( string $product_code ) {
return $this->get( '/products/' . rawurlencode( $product_code ) );
}
public function get_destinations() {
$cache_key = 'vc_destinations_' . md5( vc_get_option( 'language', 'en-US' ) );
$cached = get_transient( $cache_key );
if ( false !== $cached ) {
return $cached;
}
$data = $this->get( '/destinations' );
if ( ! is_wp_error( $data ) ) {
set_transient( $cache_key, $data, 25 * HOUR_IN_SECONDS );
}
return $data;
}
public function get_tags() {
$cache_key = 'vc_tags_' . md5( vc_get_option( 'language', 'en-US' ) );
$cached = get_transient( $cache_key );
if ( false !== $cached ) {
return $cached;
}
$data = $this->get( '/products/tags' );
if ( ! is_wp_error( $data ) ) {
set_transient( $cache_key, $data, 25 * HOUR_IN_SECONDS );
}
return $data;
}
/**
* Destination dictionary as a map of destinationId => name.
*/
public function get_destination_map() {
$data = $this->get_destinations();
if ( is_wp_error( $data ) ) {
return $data;
}
$map = array();
foreach ( (array) vc_array_get( $data, 'destinations', array() ) as $destination ) {
$id = vc_array_get( $destination, 'destinationId' );
$name = vc_first_non_empty( array( vc_array_get( $destination, 'name' ), vc_array_get( $destination, 'destinationName' ) ) );
if ( null !== $id && '' !== (string) $name ) {
$map[ (string) $id ] = $name;
}
}
return $map;
}
/**
* Tag dictionary as a map of tagId => localized name.
*/
public function get_tag_map() {
$data = $this->get_tags();
if ( is_wp_error( $data ) ) {
return $data;
}
$lang = vc_get_option( 'language', 'en-US' );
$short = strtolower( substr( (string) $lang, 0, 2 ) );
$map = array();
foreach ( (array) vc_array_get( $data, 'tags', array() ) as $tag ) {
$id = vc_array_get( $tag, 'tagId' );
$names = vc_array_get( $tag, 'allNamesByLocale', array() );
$name = '';
if ( is_array( $names ) && ! empty( $names ) ) {
if ( isset( $names[ $lang ] ) ) {
$name = $names[ $lang ];
} elseif ( isset( $names[ $short ] ) ) {
$name = $names[ $short ];
} elseif ( isset( $names['en'] ) ) {
$name = $names['en'];
} else {
$name = reset( $names );
}
}
if ( '' === (string) $name ) {
$name = vc_array_get( $tag, 'name', '' );
}
if ( null !== $id && '' !== (string) $name ) {
$map[ (string) $id ] = $name;
}
}
return $map;
}
}

View File

@@ -0,0 +1,85 @@
<?php
defined( 'ABSPATH' ) || exit;
class VC_CPT {
public static function init() {
add_action( 'init', array( __CLASS__, 'register' ) );
// "Featured" flag: sorts a tour first in search/filter results.
add_action( 'add_meta_boxes', array( __CLASS__, 'add_featured_box' ) );
add_action( 'save_post_viator_tour', array( __CLASS__, 'save_featured' ) );
add_filter( 'manage_viator_tour_posts_columns', array( __CLASS__, 'featured_column' ) );
add_action( 'manage_viator_tour_posts_custom_column', array( __CLASS__, 'featured_column_value' ), 10, 2 );
}
public static function register() {
register_post_type(
'viator_tour',
array(
'labels' => array(
'name' => __( 'Viator Tours', 'viator-collector' ),
'singular_name' => __( 'Viator Tour', 'viator-collector' ),
'add_new_item' => __( 'Add New Viator Tour', 'viator-collector' ),
'edit_item' => __( 'Edit Viator Tour', 'viator-collector' ),
),
'public' => true,
'has_archive' => true,
'rewrite' => array( 'slug' => 'tours' ),
'show_in_rest' => true,
'menu_icon' => 'dashicons-location-alt',
'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', 'custom-fields' ),
)
);
}
public static function add_featured_box() {
add_meta_box(
'vc_featured',
__( 'Featured', 'viator-collector' ),
array( __CLASS__, 'render_featured_box' ),
'viator_tour',
'side',
'high'
);
}
public static function render_featured_box( $post ) {
wp_nonce_field( 'vc_featured', 'vc_featured_nonce' );
$on = (int) get_post_meta( $post->ID, '_vc_featured', true );
?>
<label>
<input type="checkbox" name="vc_featured" value="1" <?php checked( $on, 1 ); ?>>
<?php echo esc_html__( 'Show this tour first in search & filter results.', 'viator-collector' ); ?>
</label>
<?php
}
public static function save_featured( $post_id ) {
if ( ! isset( $_POST['vc_featured_nonce'] ) || ! wp_verify_nonce( sanitize_key( $_POST['vc_featured_nonce'] ), 'vc_featured' ) ) {
return;
}
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
return;
}
if ( ! current_user_can( 'edit_post', $post_id ) ) {
return;
}
if ( ! empty( $_POST['vc_featured'] ) ) {
update_post_meta( $post_id, '_vc_featured', '1' );
} else {
delete_post_meta( $post_id, '_vc_featured' );
}
}
public static function featured_column( $cols ) {
$cols['vc_featured'] = __( 'Featured', 'viator-collector' );
return $cols;
}
public static function featured_column_value( $col, $post_id ) {
if ( 'vc_featured' === $col && get_post_meta( $post_id, '_vc_featured', true ) ) {
echo '<span class="dashicons dashicons-star-filled" style="color:#f5a623" title="' . esc_attr__( 'Featured', 'viator-collector' ) . '"></span>';
}
}
}

View File

@@ -0,0 +1,352 @@
<?php
defined( 'ABSPATH' ) || exit;
/**
* Drives the catalogue sync.
*
* Basic access has no product "modified-since" feed, so the catalogue is
* enumerated by crawling /products/search one destination at a time. Each
* daily run rebuilds the destination queue and re-crawls everything, updating
* existing posts in place (products are deduplicated by code within a run).
*
* Because the catalogue is large, a run is processed across many short ticks:
* each tick crawls a few search pages, saves its position in the queue, and
* (if work remains) schedules an immediate follow-up tick. Requests are
* throttled by VC_API to stay under the per-minute budget.
*/
class VC_Cron {
const HOOK = 'vc_cron_sync'; // Recurring daily trigger.
const CONTINUE = 'vc_cron_continue'; // Single follow-up tick within a run.
const LOCK = 'vc_sync_lock';
const PAGE_SIZE = 50; // Search maximum per page.
const MAX_RUN_ERRORS = 6;
public static function init() {
add_action( self::HOOK, array( __CLASS__, 'run' ) );
add_action( self::CONTINUE, array( __CLASS__, 'run' ) );
add_action( 'update_option_vc_settings', array( __CLASS__, 'settings_updated' ), 10, 2 );
}
public static function settings_updated( $old, $new ) {
if ( ! empty( $new['automatic_sync'] ) ) {
self::maybe_schedule();
} else {
self::unschedule();
}
}
public static function maybe_schedule() {
if ( ! vc_get_option( 'automatic_sync', false ) ) {
return;
}
if ( ! wp_next_scheduled( self::HOOK ) ) {
wp_schedule_event( time() + MINUTE_IN_SECONDS, 'daily', self::HOOK );
}
}
public static function unschedule() {
foreach ( array( self::HOOK, self::CONTINUE ) as $hook ) {
$timestamp = wp_next_scheduled( $hook );
while ( $timestamp ) {
wp_unschedule_event( $timestamp, $hook );
$timestamp = wp_next_scheduled( $hook );
}
}
}
/**
* Abort any in-progress run and clear progress so the next run restarts.
*/
public static function reset() {
delete_option( 'vc_ingest_in_progress' );
delete_option( 'vc_crawl_run_id' );
delete_option( 'vc_crawl_queue' );
delete_option( 'vc_crawl_start' );
delete_option( 'vc_ingest_totals' );
delete_option( 'vc_ingest_error_count' );
delete_option( 'vc_log_last_count' );
delete_transient( self::LOCK );
VC_Logger::info( 'Ingestion progress reset.' );
}
/**
* Run one tick of the current sync run, starting a new run if idle.
*/
public static function run() {
if ( get_transient( self::LOCK ) ) {
VC_Logger::log( 'Sync tick skipped: another tick holds the lock.' );
return;
}
set_transient( self::LOCK, 1, 3 * MINUTE_IN_SECONDS );
// Keep working even if the triggering HTTP request goes away.
if ( function_exists( 'ignore_user_abort' ) ) {
ignore_user_abort( true );
}
try {
$importer = new VC_Importer();
if ( ! get_option( 'vc_ingest_in_progress' ) ) {
if ( is_wp_error( self::start_run( $importer ) ) ) {
return;
}
} else {
$importer->load_dictionaries();
}
self::process_tick( $importer, self::deadline() );
} finally {
delete_transient( self::LOCK );
// Spawn the next tick only after the lock is free, so the loopback
// request does not collide with this one.
if ( wp_next_scheduled( self::CONTINUE ) ) {
self::spawn();
}
}
}
/**
* Wall-clock time by which a tick must stop, so it never hits the PHP
* max_execution_time and dies mid-page (which would strand the lock).
*/
private static function deadline() {
$max = (int) ini_get( 'max_execution_time' );
$budget = ( $max > 0 ) ? min( 25, max( 8, $max - 5 ) ) : 25;
return microtime( true ) + $budget;
}
/**
* Products requested per search page (Viator caps this at 50).
*/
private static function page_size() {
return max( 1, min( 50, absint( vc_get_option( 'products_per_page', 50 ) ) ) );
}
/**
* Fire a non-blocking loopback request so WP-Cron processes the queued
* continuation tick even when the site has no visitor traffic.
*/
private static function spawn() {
if ( defined( 'DISABLE_WP_CRON' ) && DISABLE_WP_CRON ) {
// A real server cron is responsible for running events.
return;
}
$url = site_url( 'wp-cron.php?doing_wp_cron=' . sprintf( '%.22F', microtime( true ) ) );
wp_remote_post(
$url,
array(
'timeout' => 0.01,
'blocking' => false,
'sslverify' => apply_filters( 'https_local_ssl_verify', false ),
'headers' => array( 'Cache-Control' => 'no-cache' ),
)
);
}
/**
* Initialise a run: refresh dictionaries and build the destination queue.
*/
private static function start_run( VC_Importer $importer ) {
$primed = $importer->prime_dictionaries();
if ( is_wp_error( $primed ) ) {
VC_Logger::error( 'Sync aborted, could not load dictionaries: ' . $primed->get_error_message() );
return $primed;
}
$map = get_transient( 'vc_destination_map' );
// Cities configured on the Viator Structure screen define the crawl.
// Without any, a destination allowlist (comma-separated IDs) narrows
// the crawl to a focused set; empty means the whole catalogue.
$cities = array_map( 'strval', array_keys( VC_Structure::cities( VC_Structure::get() ) ) );
$allow = array_filter( array_map( 'trim', explode( ',', (string) vc_get_option( 'crawl_destinations', '' ) ) ) );
if ( ! empty( $cities ) ) {
$queue = $cities;
} elseif ( ! empty( $allow ) ) {
$queue = array_values( array_unique( $allow ) );
} else {
$queue = is_array( $map ) ? array_keys( $map ) : array();
}
if ( empty( $queue ) ) {
VC_Logger::error( 'Sync aborted: destination list is empty.' );
return new WP_Error( 'vc_no_destinations', 'No destinations to crawl.' );
}
update_option( 'vc_crawl_run_id', gmdate( 'Y-m-d\TH:i:s\Z' ) . '-' . wp_rand( 1000, 9999 ), false );
update_option( 'vc_crawl_queue', array_values( $queue ), false );
update_option( 'vc_crawl_start', 1, false );
update_option( 'vc_ingest_error_count', 0, false );
update_option( 'vc_log_last_count', 0, false );
update_option(
'vc_ingest_totals',
array(
'destinations_total' => count( $queue ),
'destinations_done' => 0,
'pages' => 0,
'imported' => 0,
'updated' => 0,
'duplicate' => 0,
'deactivated' => 0,
'failed' => 0,
),
false
);
update_option( 'vc_ingest_in_progress', 1, false );
update_option( 'vc_last_sync_started_at', current_time( 'mysql' ), false );
if ( ! empty( $cities ) ) {
VC_Logger::info( sprintf( 'Sync run started from structure — %d cities queued.', count( $queue ) ) );
} else {
VC_Logger::info( sprintf( 'Sync run started — %d destinations queued.', count( $queue ) ) );
}
return true;
}
private static function process_tick( VC_Importer $importer, $deadline ) {
// With full-detail ON every product costs an extra API call, so each
// tick must stay small: one short page per cron minute. Without it,
// search-only is cheap and we can sweep many pages per tick.
if ( vc_get_option( 'fetch_full_detail', 0 ) ) {
$pages_per_run = 1;
$page_size = max( 1, min( 25, absint( vc_get_option( 'detail_batch_size', 15 ) ) ) );
} else {
$pages_per_run = max( 1, absint( vc_get_option( 'pages_per_run', 10 ) ) );
$page_size = self::page_size();
}
$run_id = (string) get_option( 'vc_crawl_run_id', '' );
$totals = get_option( 'vc_ingest_totals', array() );
for ( $i = 0; $i < $pages_per_run; $i++ ) {
$queue = get_option( 'vc_crawl_queue', array() );
if ( empty( $queue ) ) {
self::finish_run( $totals );
return;
}
// Stop cleanly before we risk a PHP timeout; resume next tick.
if ( $i > 0 && microtime( true ) >= $deadline ) {
break;
}
$destination = (string) $queue[0];
$start = max( 1, (int) get_option( 'vc_crawl_start', 1 ) );
$result = $importer->crawl_destination( $destination, $start, $page_size, $run_id );
if ( is_wp_error( $result ) ) {
$errors = (int) get_option( 'vc_ingest_error_count', 0 ) + 1;
update_option( 'vc_ingest_error_count', $errors, false );
VC_Logger::error( 'Error on destination ' . $destination . ' (failure ' . $errors . ' of ' . self::MAX_RUN_ERRORS . '): ' . $result->get_error_message() );
if ( $errors >= self::MAX_RUN_ERRORS ) {
VC_Logger::error( 'Sync aborted after too many errors. It will retry on the next scheduled run.' );
update_option( 'vc_ingest_in_progress', 0, false );
return;
}
self::schedule_continue( MINUTE_IN_SECONDS );
return;
}
update_option( 'vc_ingest_error_count', 0, false );
$totals['pages'] = (int) $totals['pages'] + 1;
$totals['imported'] = (int) $totals['imported'] + (int) $result['imported'];
$totals['updated'] = (int) $totals['updated'] + (int) $result['updated'];
$totals['duplicate'] = (int) $totals['duplicate'] + (int) $result['duplicate'];
$totals['deactivated'] = (int) $totals['deactivated'] + (int) $result['deactivated'];
$totals['failed'] = (int) $totals['failed'] + (int) $result['failed'];
$returned = (int) $result['count'];
$total = (int) $result['total'];
$consumed = ( $start - 1 ) + $returned;
$has_more = $returned >= $page_size && ( $total <= 0 || $consumed < $total );
if ( $has_more ) {
update_option( 'vc_crawl_start', $start + $page_size, false );
} else {
array_shift( $queue );
update_option( 'vc_crawl_queue', array_values( $queue ), false );
update_option( 'vc_crawl_start', 1, false );
$totals['destinations_done'] = (int) $totals['destinations_done'] + 1;
}
update_option( 'vc_ingest_totals', $totals, false );
self::maybe_log_progress( $totals );
if ( empty( $queue ) && ! $has_more ) {
self::finish_run( $totals );
return;
}
}
self::schedule_continue( 0 );
}
/**
* Emit an info entry each time the processed-product count crosses the
* configured step (default every 10 products).
*/
private static function maybe_log_progress( array $totals ) {
$processed = (int) $totals['imported'] + (int) $totals['updated'] + (int) $totals['deactivated'];
$step = max( 1, absint( vc_get_option( 'log_every', 10 ) ) );
$last = (int) get_option( 'vc_log_last_count', 0 );
if ( $processed - $last < $step ) {
return;
}
update_option( 'vc_log_last_count', $processed, false );
VC_Logger::info( sprintf(
'Progress: %d products processed (new %d, updated %d, deactivated %d, failed %d) across %d pages; %d/%d destinations done.',
$processed,
(int) $totals['imported'],
(int) $totals['updated'],
(int) $totals['deactivated'],
(int) $totals['failed'],
(int) $totals['pages'],
(int) $totals['destinations_done'],
(int) $totals['destinations_total']
) );
}
private static function finish_run( array $totals ) {
update_option( 'vc_ingest_in_progress', 0, false );
update_option( 'vc_last_sync_completed_at', current_time( 'mysql' ), false );
update_option( 'vc_last_sync_totals', $totals, false );
delete_option( 'vc_crawl_queue' );
delete_option( 'vc_crawl_start' );
VC_Logger::info( sprintf(
'Sync run complete: %d new, %d updated, %d deactivated, %d failed (%d pages, %d destinations).',
(int) $totals['imported'],
(int) $totals['updated'],
(int) $totals['deactivated'],
(int) $totals['failed'],
(int) $totals['pages'],
(int) $totals['destinations_total']
) );
}
private static function schedule_continue( $delay ) {
if ( ! wp_next_scheduled( self::CONTINUE ) ) {
// The loopback spawn in run() runs due events, so default to "now".
wp_schedule_single_event( time() + max( 0, (int) $delay ), self::CONTINUE );
}
}
/**
* Human-readable status used by the settings screen.
*/
public static function status() {
$queue = get_option( 'vc_crawl_queue', array() );
return array(
'in_progress' => (bool) get_option( 'vc_ingest_in_progress' ),
'queue_remaining' => is_array( $queue ) ? count( $queue ) : 0,
'started_at' => get_option( 'vc_last_sync_started_at', '' ),
'completed_at' => get_option( 'vc_last_sync_completed_at', '' ),
'totals' => get_option( 'vc_ingest_totals', array() ),
'last_totals' => get_option( 'vc_last_sync_totals', array() ),
'next_scheduled' => wp_next_scheduled( self::HOOK ),
);
}
}

View File

@@ -0,0 +1,888 @@
<?php
defined( 'ABSPATH' ) || exit;
class VC_Display {
const SHORTCODES = array(
'viator_tours',
'viator_listing',
'viator_hero',
'viator_hero_slider',
'viator_top_tours',
'viator_top_destinations',
'viator_top_attractions',
'viator_browse_activities',
'viator_bus_tours',
'viator_about',
'viator_articles',
'viator_faq',
'viator_testimonials',
'viator_tour_card',
'viator_itinerary',
'viator_inclusions',
'viator_exclusions',
'viator_booking_button',
'viator_duration',
'viator_rating',
'viator_gallery',
);
public static function init() {
// Priority 100 so the theme (Astra + child) has already enqueued ALL of
// its stylesheets — including the parent style.css and the child's chrome
// CSS, which are enqueued by the theme at priority 20 and would otherwise
// print AFTER us (plugins run before themes at equal priority) and win
// equal-specificity ties. Loading last makes our design win those ties.
add_action( 'wp_enqueue_scripts', array( __CLASS__, 'enqueue_assets' ), 100 );
add_action( 'template_redirect', array( __CLASS__, 'maybe_enrich_single' ) );
add_action( 'pre_get_posts', array( __CLASS__, 'filter_archive_query' ) );
add_filter( 'single_template', array( __CLASS__, 'single_template' ) );
add_filter( 'archive_template', array( __CLASS__, 'archive_template' ) );
add_filter( 'taxonomy_template', array( __CLASS__, 'taxonomy_template' ) );
// Full-width layout, applied only to Viator pages.
add_filter( 'body_class', array( __CLASS__, 'body_class' ) );
add_filter( 'astra_page_layout', array( __CLASS__, 'astra_page_layout' ) );
add_filter( 'astra_get_content_layout', array( __CLASS__, 'astra_content_layout' ) );
add_shortcode( 'viator_tours', array( __CLASS__, 'shortcode_tours' ) );
add_shortcode( 'viator_listing', array( __CLASS__, 'shortcode_listing' ) );
// `viator_top_tours` is registered by VC_Sections (landing-page design).
// `viator_top_destinations` is registered by VC_Sections (landing-page design).
// `viator_top_attractions` is registered by VC_Sections (landing-page design).
// `viator_browse_activities` is registered by VC_Sections (landing-page design).
add_shortcode( 'viator_tour_card', array( __CLASS__, 'shortcode_card' ) );
add_shortcode( 'viator_itinerary', array( __CLASS__, 'shortcode_itinerary' ) );
add_shortcode( 'viator_inclusions', array( __CLASS__, 'shortcode_inclusions' ) );
add_shortcode( 'viator_exclusions', array( __CLASS__, 'shortcode_exclusions' ) );
add_shortcode( 'viator_booking_button', array( __CLASS__, 'shortcode_booking_button' ) );
add_shortcode( 'viator_duration', array( __CLASS__, 'shortcode_duration' ) );
add_shortcode( 'viator_rating', array( __CLASS__, 'shortcode_rating' ) );
add_shortcode( 'viator_gallery', array( __CLASS__, 'shortcode_gallery' ) );
}
/**
* True on the tours archive, a Viator term archive, or a single tour.
* Everything layout-related keys off this so nothing leaks site-wide.
*/
public static function is_vc_page() {
if ( is_singular( 'viator_tour' )
|| is_post_type_archive( 'viator_tour' )
|| is_tax( array( 'viator_destination', 'viator_tag', 'viator_category' ) ) ) {
return true;
}
// Any Page hosting a Viator shortcode (hero, sections, listing, …) also
// wants the full-width, no-sidebar canvas.
$post = ( is_singular() ) ? get_post() : null;
if ( ! $post ) {
return false;
}
foreach ( self::SHORTCODES as $shortcode ) {
if ( has_shortcode( $post->post_content, $shortcode ) ) {
return true;
}
}
return false;
}
/**
* Marker class so the full-width CSS can be gated to our pages only.
*/
public static function body_class( $classes ) {
if ( self::is_vc_page() ) {
$classes[] = 'vc-fullwidth';
}
return $classes;
}
/**
* Astra: drop the sidebar on Viator pages.
*/
public static function astra_page_layout( $layout ) {
return self::is_vc_page() ? 'no-sidebar' : $layout;
}
/**
* Astra: use the "page-builder" content layout, which removes the
* .ast-container max-width/padding for a true full-width canvas.
*/
public static function astra_content_layout( $layout ) {
return self::is_vc_page() ? 'page-builder' : $layout;
}
/**
* Lazily fetch and cache full product detail the first time a tour page is
* viewed, so itinerary/inclusions/etc. are available without crawling
* detail for the whole catalogue up front.
*/
public static function maybe_enrich_single() {
if ( is_admin() || ! is_singular( 'viator_tour' ) ) {
return;
}
$post_id = get_queried_object_id();
if ( ! $post_id || get_post_meta( $post_id, '_vc_detail_fetched', true ) ) {
return;
}
$code = get_post_meta( $post_id, '_vc_viator_product_code', true );
if ( ! $code ) {
return;
}
// Avoid repeated calls (and hammering on errors) for the same product.
$lock = 'vc_enrich_' . $post_id;
if ( get_transient( $lock ) ) {
return;
}
set_transient( $lock, 1, 10 * MINUTE_IN_SECONDS );
( new VC_Importer() )->enrich_from_detail( $post_id, $code );
}
public static function enqueue_assets() {
$is_single = is_singular( 'viator_tour' );
$is_archive = is_post_type_archive( 'viator_tour' ) || is_tax( array( 'viator_destination', 'viator_tag', 'viator_category' ) );
$has_short = self::post_has_shortcode();
if ( ! $is_single && ! $is_archive && ! $has_short ) {
return;
}
// Design typeface.
wp_enqueue_style( 'vc-fonts', 'https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;700;800&display=swap', array(), null );
// One scoped stylesheet (.vc-app) covers listing, single, and homepage
// sections — ported from the "Hop On Hop Off" design. Declare every theme
// stylesheet that could fight ours as a dependency (when present) so our
// rules always print AFTER them and win equal-specificity ties. We enqueue
// at priority 100, so by now the theme (priority 20) has registered them.
$deps = array( 'vc-fonts' );
foreach ( array( 'astra-theme-css', 'astra-parent', 'hoho-chrome' ) as $handle ) {
if ( wp_style_is( $handle, 'registered' ) ) {
$deps[] = $handle;
}
}
wp_enqueue_style( 'vc-design', VC_PLUGIN_URL . 'assets/css/vc-design.css', $deps, VC_VERSION );
wp_add_inline_style( 'vc-design', self::astra_overrides() );
// Front-end interactions: card rails, FAQ accordion, testimonials
// marquee, date field, and auto-submit on quick filter toggles.
wp_enqueue_script( 'vc-design', VC_PLUGIN_URL . 'assets/js/vc-design.js', array(), VC_VERSION, true );
// The SVG icon sprite (+ ring-badge path) is printed once in the footer.
add_action( 'wp_footer', 'vc_print_icon_sprite' );
}
/**
* CSS that neutralises Astra's content spacing/width on Viator pages and
* makes the design typography win over the theme. Injected after vc-design.css.
*/
private static function astra_overrides() {
return implode(
'',
array(
// Full-bleed: strip Astra's page-builder article padding/width so
// the hero and sections reach the viewport edges. !important beats
// Astra's own high-specificity rules (e.g. the 2em article padding
// that leaves a gap above the hero).
'.vc-fullwidth .site-main>article,'
. '.vc-fullwidth .ast-page-builder-template .site-main>article,'
. '.vc-fullwidth.ast-page-builder-template .site-main>article'
. '{padding:0!important;margin:0!important;border:0!important;max-width:none!important;}',
'.vc-fullwidth #primary,.vc-fullwidth #content{margin:0!important;padding:0!important;}',
// display:block undoes Astra's `.site-content .ast-container{display:flex}`
// (≥922px), which otherwise sizes our content to its contents instead
// of filling the full-width container.
'.vc-fullwidth .site-content .ast-container,.vc-fullwidth .ast-container'
. '{max-width:none!important;padding-left:0!important;padding-right:0!important;display:block!important;}',
'.vc-fullwidth .entry-content{margin-block:0!important;}',
'.vc-fullwidth .site-content{padding:0!important;}',
// Guard against a stray horizontal scrollbar from any full-bleed child.
'body.vc-fullwidth{overflow-x:hidden;}',
// A gradient stands in when no hero image is set, so the banner is
// never blank.
'.vc-app.vc-app .hero__media,.vc-app.vc-app .hero-tour{background:linear-gradient(120deg,#101317,#2cafc2);}',
// Normalize: stop Astra from decorating our components. Its
// .entry-content rules (underlined links, list bullets/indent)
// out-specify our scoped base, so reset them here (!important beats
// e.g. `.ast-single-post .entry-content a`). Every selector matches
// the doubled `.vc-app.vc-app` scope of the main stylesheet so these
// patches keep winning against it, not just against the theme.
'.vc-app.vc-app a{text-decoration:none;box-shadow:none;}',
// No !important on margin/padding: the doubled .vc-app.vc-app scope
// already out-specifies Astra's list rules, and !important here was
// steamrolling design lists that need their own spacing — e.g. the
// rail (<ul class="rail">) whose vertical padding gives the hover glow
// room. list-style stays !important (purely cosmetic; prose lists
// re-enable bullets via a higher-specificity rule).
'.vc-app.vc-app :is(ul,ol){list-style:none!important;margin:0;padding:0;}',
'.vc-app.vc-app li{margin:0;}',
// …but keep the tour "Overview" prose (the_content) readable.
'.vc-app.vc-app .tour__text a{text-decoration:underline;}',
'.vc-app.vc-app .tour__text ul{list-style:disc!important;margin:1em 0!important;padding-inline-start:1.5em!important;}',
'.vc-app.vc-app .tour__text ol{list-style:decimal!important;margin:1em 0!important;padding-inline-start:1.5em!important;}',
'.vc-app.vc-app .tour__text li{margin:.25em 0!important;}',
// Links must inherit the design colour (Astra colours links with its
// theme colour, which turned white card titles/destination names into
// coloured text). Buttons keep their own colour.
// …but not ring-badges: they set their own colour on the <a>, and this
// inherit rule out-specifies .ring-badge--top/--scroll, which turned
// the badge text white (inherited) on light backgrounds.
'.vc-app.vc-app a:not(.btn):not(.ring-badge){color:inherit;}',
'.vc-app.vc-app .tour__text a{color:var(--c-teal);}',
// Real tour titles are far longer than the mockup\'s city names — clamp
// them and stop price/duration values wrapping mid-number.
'.vc-app.vc-app .dcard__title{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}',
'.vc-app.vc-app .titem__desc{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}',
// Real tour descriptions run long; the on-hover card blurb clamps to
// three lines with an ellipsis instead of spilling over the card.
'.vc-app.vc-app .dcard__desc p{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}',
'.vc-app.vc-app .dcard__meta .meta__v{white-space:nowrap;}',
// Astra's page-builder layout centres/limits every entry-content child
// (max-width:none; margin:auto), which flattened the hero inset. Our
// sections are full-bleed, so re-assert 0 side-margins; !important
// beats Astra's 4-class selector. The hero keeps its small inset — the
// only section with an intentional side margin.
'.vc-app.vc-app>*{max-width:none!important;margin-inline:0!important;}',
// Heroes keep their small inset (rounded card look) — .hero on the
// home/archive pages and .hero-tour on the single-tour page. Without
// this they went full-bleed after the margin-inline:0 reset above.
'.vc-app.vc-app>.hero,.vc-app.vc-app>.hero-tour{margin:var(--page-inset)!important;}',
// Let vertical decorations (rotating badges, card glow, promo bus, FAQ
// watermark) escape, but keep the horizontal axis clipped so a
// full-bleed section or decorative element can't cause a mobile
// sideways scroll. overflow-x:clip (unlike hidden) does NOT force
// overflow-y to auto, so the y-axis stays truly visible.
'.vc-app.vc-app{overflow-x:clip;overflow-y:visible;}',
// Astra wraps the content in article/.entry-content/.ast-container,
// some of which clip overflow — that cut the card hover glow at the
// rail edges. Open them up on our pages only (page scroll stays
// contained by body.vc-fullwidth{overflow-x:hidden}).
'.vc-fullwidth .site-main,.vc-fullwidth #primary,.vc-fullwidth #content,'
. '.vc-fullwidth .site-content,.vc-fullwidth .ast-container,'
. '.vc-fullwidth .entry-content,.vc-fullwidth .site-main>article'
. '{overflow:visible!important;}',
// FAQ question buttons must stay flat — Astra gives <button> a shadow.
'.vc-app.vc-app .acc__q{box-shadow:none!important;}',
// Astra colours every heading on the element itself (h1–h6 and
// .entry-content :where(h1..h6)), beating our container-inherited
// colours. Make headings inherit again — no !important, so design
// classes (.hero__title, the white .tcard titles) keep their own.
'.vc-app.vc-app :is(h1,h2,h3,h4,h5,h6){color:inherit;}',
// Typography: force the design font over Astra inside our scopes.
'.vc-app.vc-app,.vc-app.vc-app h1,.vc-app.vc-app h2,.vc-app.vc-app h3,.vc-app.vc-app h4,.vc-app.vc-app h5,.vc-app.vc-app h6,'
. '.vc-app.vc-app p,.vc-app.vc-app a,.vc-app.vc-app span,.vc-app.vc-app li,.vc-app.vc-app button,.vc-app.vc-app input,'
. '.vc-app.vc-app select,.vc-app.vc-app textarea,.vc-app.vc-app blockquote'
. '{font-family:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;}',
)
);
}
/**
* Read + sanitize the current filter state from the query string. Shared by
* the query builder and the archive template so both stay in sync.
*/
public static function get_filter_state() {
$slug_list = function ( $key ) {
$raw = isset( $_GET[ $key ] ) ? wp_unslash( $_GET[ $key ] ) : array(); // phpcs:ignore WordPress.Security.NonceVerification
$raw = is_array( $raw ) ? $raw : array( $raw );
return array_values( array_filter( array_map( 'sanitize_title', $raw ) ) );
};
$pmin = isset( $_GET['pmin'] ) ? max( 0, absint( $_GET['pmin'] ) ) : 0; // phpcs:ignore WordPress.Security.NonceVerification
$pmax = isset( $_GET['pmax'] ) ? absint( $_GET['pmax'] ) : 1000; // phpcs:ignore WordPress.Security.NonceVerification
// A coarse "price" range select (value like "50-150") maps to pmin/pmax.
if ( isset( $_GET['price'] ) && '' !== $_GET['price'] ) { // phpcs:ignore WordPress.Security.NonceVerification
$parts = array_pad( explode( '-', sanitize_text_field( wp_unslash( $_GET['price'] ) ) ), 2, '' ); // phpcs:ignore WordPress.Security.NonceVerification
$pmin = absint( $parts[0] );
$pmax = ( '' === $parts[1] ) ? 1000 : absint( $parts[1] );
}
return array(
'q' => isset( $_GET['vc_q'] ) ? sanitize_text_field( wp_unslash( $_GET['vc_q'] ) ) : '', // phpcs:ignore WordPress.Security.NonceVerification
'dest' => $slug_list( 'dest' ),
'cat' => $slug_list( 'cat' ),
'dur' => array_values( array_intersect( array( 'half', 'full', 'multi' ), $slug_list( 'dur' ) ) ),
'pmin' => $pmin,
'pmax' => $pmax,
'rating' => isset( $_GET['rating'] ) ? floatval( $_GET['rating'] ) : 0, // phpcs:ignore WordPress.Security.NonceVerification
'freecancel' => ! empty( $_GET['freecancel'] ) ? 1 : 0, // phpcs:ignore WordPress.Security.NonceVerification
'bestdeal' => ! empty( $_GET['bestdeal'] ) ? 1 : 0, // phpcs:ignore WordPress.Security.NonceVerification
'sellout' => ! empty( $_GET['sellout'] ) ? 1 : 0, // phpcs:ignore WordPress.Security.NonceVerification
'sort' => isset( $_GET['sort'] ) ? sanitize_key( $_GET['sort'] ) : 'newest', // phpcs:ignore WordPress.Security.NonceVerification
);
}
/**
* Apply the filter state to the main tours query (archive + taxonomy pages).
*/
public static function filter_archive_query( $query ) {
if ( is_admin() || ! $query->is_main_query() ) {
return;
}
$is_archive = $query->is_post_type_archive( 'viator_tour' );
$is_tax = $query->is_tax( array( 'viator_destination', 'viator_tag', 'viator_category' ) );
if ( ! $is_archive && ! $is_tax ) {
return;
}
$base_tax = array();
foreach ( (array) $query->get( 'tax_query' ) as $k => $clause ) {
if ( 'relation' !== $k && is_array( $clause ) ) {
$base_tax[] = $clause;
}
}
foreach ( self::build_query_vars( $base_tax ) as $key => $value ) {
$query->set( $key, $value );
}
}
/**
* Build WP_Query vars from the current filter state (query string) plus any
* locked base tax constraints. Shared by the archive query and the
* [viator_listing] shortcode so both filter/sort identically.
*/
public static function build_query_vars( array $base_tax = array() ) {
$f = self::get_filter_state();
$vars = array( 'posts_per_page' => 12, 'ignore_sticky_posts' => true );
if ( '' !== $f['q'] ) {
$vars['s'] = $f['q'];
}
$tax_query = array();
foreach ( $base_tax as $clause ) {
if ( is_array( $clause ) ) {
$tax_query[] = $clause;
}
}
if ( ! empty( $f['dest'] ) ) {
$tax_query[] = array( 'taxonomy' => 'viator_destination', 'field' => 'slug', 'terms' => $f['dest'] );
}
if ( ! empty( $f['cat'] ) ) {
$tax_query[] = array( 'taxonomy' => 'viator_tag', 'field' => 'slug', 'terms' => $f['cat'] );
}
if ( count( $tax_query ) > 1 ) {
$tax_query['relation'] = 'AND';
}
if ( ! empty( $tax_query ) ) {
$vars['tax_query'] = $tax_query;
}
$meta_query = array();
if ( $f['pmin'] > 0 || $f['pmax'] < 1000 ) {
$meta_query[] = array( 'key' => '_vc_price_from', 'value' => array( $f['pmin'], $f['pmax'] ), 'type' => 'DECIMAL', 'compare' => 'BETWEEN' );
}
if ( ! empty( $f['dur'] ) ) {
$dur = array( 'relation' => 'OR' );
foreach ( $f['dur'] as $bucket ) {
if ( 'half' === $bucket ) {
$dur[] = array( 'key' => '_vc_duration_minutes', 'value' => array( 1, 300 ), 'type' => 'NUMERIC', 'compare' => 'BETWEEN' );
} elseif ( 'full' === $bucket ) {
$dur[] = array( 'key' => '_vc_duration_minutes', 'value' => array( 301, 1439 ), 'type' => 'NUMERIC', 'compare' => 'BETWEEN' );
} elseif ( 'multi' === $bucket ) {
$dur[] = array( 'key' => '_vc_duration_minutes', 'value' => 1440, 'type' => 'NUMERIC', 'compare' => '>=' );
}
}
if ( count( $dur ) > 1 ) {
$meta_query[] = $dur;
}
}
if ( $f['rating'] > 0 ) {
$meta_query[] = array( 'key' => '_vc_rating', 'value' => $f['rating'], 'type' => 'DECIMAL', 'compare' => '>=' );
}
if ( $f['freecancel'] ) {
$meta_query[] = array( 'key' => '_vc_free_cancellation', 'value' => '1' );
}
// _vc_flags is a JSON array, so match the flag name inside it.
if ( $f['bestdeal'] ) {
$meta_query[] = array( 'key' => '_vc_flags', 'value' => 'SPECIAL_OFFER', 'compare' => 'LIKE' );
}
if ( $f['sellout'] ) {
$meta_query[] = array( 'key' => '_vc_flags', 'value' => 'LIKELY_TO_SELL_OUT', 'compare' => 'LIKE' );
}
// Sort. Performance: the default (newest) orders by post date only — no
// postmeta JOIN and no featured/review tiebreak — so the unfiltered
// archive stays fast even with a very large catalogue (tens of thousands
// of tours). Price/rating sorts add a single meta_key JOIN, on demand.
switch ( $f['sort'] ) {
case 'price_asc':
$vars['meta_key'] = '_vc_price_from';
$vars['orderby'] = 'meta_value_num';
$vars['order'] = 'ASC';
break;
case 'price_desc':
$vars['meta_key'] = '_vc_price_from';
$vars['orderby'] = 'meta_value_num';
$vars['order'] = 'DESC';
break;
case 'rating':
$vars['meta_key'] = '_vc_rating';
$vars['orderby'] = 'meta_value_num';
$vars['order'] = 'DESC';
break;
default:
$vars['orderby'] = 'date';
$vars['order'] = 'DESC';
}
// Only attach a meta_query when a filter is actually active, so the plain
// archive query carries no postmeta joins at all.
if ( ! empty( $meta_query ) ) {
if ( count( $meta_query ) > 1 ) {
$meta_query['relation'] = 'AND';
}
$vars['meta_query'] = $meta_query;
}
return $vars;
}
/**
* [viator_listing tag="airport-hotel-transfers,private-transfers" title="Transportation"]
*
* Full listing UI (filters, sort, pagination) locked to a tag/destination.
* Use on a normal WordPress Page to build e.g. a "Transportation" page.
*/
public static function shortcode_listing( $atts ) {
$atts = shortcode_atts(
array(
'tag' => '',
'destination' => '',
'title' => __( 'Tours', 'viator-collector' ),
'subtitle' => '',
),
$atts,
'viator_listing'
);
$base_tax = array();
if ( '' !== $atts['tag'] ) {
$base_tax[] = array( 'taxonomy' => 'viator_tag', 'field' => 'slug', 'terms' => array_filter( array_map( 'sanitize_title', explode( ',', $atts['tag'] ) ) ) );
}
if ( '' !== $atts['destination'] ) {
$base_tax[] = array( 'taxonomy' => 'viator_destination', 'field' => 'slug', 'terms' => array_filter( array_map( 'sanitize_title', explode( ',', $atts['destination'] ) ) ) );
}
$vars = self::build_query_vars( $base_tax );
$vars['post_type'] = 'viator_tour';
$vars['post_status'] = 'publish';
$vars['paged'] = max( 1, (int) get_query_var( 'paged' ), (int) get_query_var( 'page' ), isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 1 ); // phpcs:ignore WordPress.Security.NonceVerification
$query = new WP_Query( $vars );
$inner = vc_get_template(
'listing.php',
array(
'vc_title' => $atts['title'],
'vc_subtitle' => $atts['subtitle'],
'vc_query' => $query,
'vc_form_action' => get_permalink(),
)
);
// .vc-app is the scope every rule in vc-design.css hangs off.
return '<div class="vc-app vc-listing">' . $inner . '</div>';
}
private static function post_has_shortcode() {
if ( ! is_singular() ) {
return false;
}
$post = get_post();
if ( ! $post ) {
return false;
}
foreach ( self::SHORTCODES as $shortcode ) {
if ( has_shortcode( $post->post_content, $shortcode ) ) {
return true;
}
}
return false;
}
public static function single_template( $template ) {
if ( is_singular( 'viator_tour' ) ) {
$path = get_stylesheet_directory() . '/viator-collector/single-viator_tour.php';
if ( file_exists( $path ) ) {
return $path;
}
$plugin = VC_PLUGIN_DIR . 'templates/single-viator_tour.php';
if ( file_exists( $plugin ) ) {
return $plugin;
}
}
return $template;
}
public static function archive_template( $template ) {
if ( is_post_type_archive( 'viator_tour' ) ) {
$path = get_stylesheet_directory() . '/viator-collector/archive-viator_tour.php';
if ( file_exists( $path ) ) {
return $path;
}
$plugin = VC_PLUGIN_DIR . 'templates/archive-viator_tour.php';
if ( file_exists( $plugin ) ) {
return $plugin;
}
}
return $template;
}
public static function taxonomy_template( $template ) {
if ( is_tax( 'viator_destination' ) && get_term_meta( get_queried_object_id(), '_vc_region', true ) ) {
$path = get_stylesheet_directory() . '/viator-collector/region.php';
return file_exists( $path ) ? $path : VC_PLUGIN_DIR . 'templates/region.php';
}
if ( is_tax( array( 'viator_destination', 'viator_tag', 'viator_category' ) ) ) {
$path = get_stylesheet_directory() . '/viator-collector/taxonomy-viator.php';
if ( file_exists( $path ) ) {
return $path;
}
$plugin = VC_PLUGIN_DIR . 'templates/taxonomy-viator.php';
if ( file_exists( $plugin ) ) {
return $plugin;
}
}
return $template;
}
public static function shortcode_tours( $atts ) {
$atts = shortcode_atts(
array(
'limit' => 12,
'destination' => '',
'tag' => '',
'category' => '',
'orderby' => 'date',
'order' => 'DESC',
),
$atts,
'viator_tours'
);
$primary_orderby = sanitize_key( $atts['orderby'] );
$primary_order = 'ASC' === strtoupper( $atts['order'] ) ? 'ASC' : 'DESC';
$args = array(
'post_type' => 'viator_tour',
'post_status' => 'publish',
'posts_per_page' => max( 1, absint( $atts['limit'] ) ),
);
if ( 'rand' === $primary_orderby ) {
$args['orderby'] = 'rand';
} else {
$args['meta_query'] = array(
'vc_reviews_sort' => array(
'key' => '_vc_review_count',
'type' => 'NUMERIC',
'compare' => 'EXISTS',
),
);
$args['orderby'] = array(
$primary_orderby => $primary_order,
'vc_reviews_sort' => 'DESC',
);
if ( 'date' !== $primary_orderby ) {
$args['orderby']['date'] = 'DESC';
}
}
$tax_query = array();
$tax_map = array(
'destination' => 'viator_destination',
'tag' => 'viator_tag',
'category' => 'viator_category',
);
foreach ( $tax_map as $att => $taxonomy ) {
if ( ! empty( $atts[ $att ] ) ) {
$tax_query[] = array(
'taxonomy' => $taxonomy,
'field' => 'slug',
'terms' => array_map( 'sanitize_title', array_map( 'trim', explode( ',', $atts[ $att ] ) ) ),
);
}
}
if ( $tax_query ) {
$args['tax_query'] = $tax_query;
}
return self::render_tour_grid( $args );
}
/**
* "Top Tours" section: a titled grid of tours, highest rated first.
*/
public static function shortcode_top_tours( $atts ) {
$atts = shortcode_atts(
array(
'limit' => 8,
'title' => __( 'Top Tours', 'viator-collector' ),
'eyebrow' => __( 'Hand-picked', 'viator-collector' ),
'view_all' => '',
'orderby' => 'rating',
),
$atts,
'viator_top_tours'
);
$args = array(
'post_type' => 'viator_tour',
'post_status' => 'publish',
'posts_per_page' => max( 1, absint( $atts['limit'] ) ),
);
if ( 'rating' === $atts['orderby'] ) {
$args['meta_key'] = '_vc_rating';
$args['orderby'] = 'meta_value_num';
$args['order'] = 'DESC';
} else {
$args['orderby'] = 'date';
$args['order'] = 'DESC';
}
$grid = self::render_tour_grid( $args );
if ( '' === $grid ) {
return '';
}
return self::render_section( 'vc-section--tours', $atts['eyebrow'], $atts['title'], $atts['view_all'], $grid );
}
/**
* "Top Destinations" section: a grid of destination term cards.
*/
public static function shortcode_top_destinations( $atts ) {
$atts = shortcode_atts(
array(
'count' => 8,
'ids' => '',
'title' => __( 'Top Destinations', 'viator-collector' ),
'eyebrow' => __( 'Explore', 'viator-collector' ),
'view_all' => '',
),
$atts,
'viator_top_destinations'
);
$terms = self::get_section_terms( 'viator_destination', $atts['count'], $atts['ids'] );
if ( empty( $terms ) ) {
return '';
}
ob_start();
echo '<div class="vc-destination-grid">';
foreach ( $terms as $term ) {
echo vc_get_template( 'card-destination.php', array( 'term' => $term ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
echo '</div>';
$grid = ob_get_clean();
return self::render_section( 'vc-section--destinations', $atts['eyebrow'], $atts['title'], $atts['view_all'], $grid );
}
/**
* "Top Attractions" section. Backed by top-rated tours rendered as large
* feature cards (repoint to a dedicated attraction taxonomy once ingested).
*/
public static function shortcode_top_attractions( $atts ) {
$atts = shortcode_atts(
array(
'limit' => 3,
'title' => __( 'Top Attractions', 'viator-collector' ),
'eyebrow' => __( 'Must see', 'viator-collector' ),
'view_all' => '',
),
$atts,
'viator_top_attractions'
);
$query = new WP_Query(
array(
'post_type' => 'viator_tour',
'post_status' => 'publish',
'posts_per_page' => max( 1, absint( $atts['limit'] ) ),
'meta_key' => '_vc_rating',
'orderby' => 'meta_value_num',
'order' => 'DESC',
)
);
if ( ! $query->have_posts() ) {
return '';
}
ob_start();
echo '<div class="vc-attraction-grid">';
while ( $query->have_posts() ) {
$query->the_post();
echo vc_get_template( 'card-attraction.php', array( 'post_id' => get_the_ID() ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
echo '</div>';
wp_reset_postdata();
$grid = ob_get_clean();
return self::render_section( 'vc-section--attractions', $atts['eyebrow'], $atts['title'], $atts['view_all'], $grid );
}
/**
* "Browse By Activity" section: a list of activity (tag) rows.
*/
public static function shortcode_browse_activities( $atts ) {
$atts = shortcode_atts(
array(
'count' => 8,
'ids' => '',
'title' => __( 'Browse By Activity', 'viator-collector' ),
'eyebrow' => __( 'Find your style', 'viator-collector' ),
'view_all' => '',
),
$atts,
'viator_browse_activities'
);
$terms = self::get_section_terms( 'viator_tag', $atts['count'], $atts['ids'] );
if ( empty( $terms ) ) {
return '';
}
ob_start();
echo '<div class="vc-activity-list">';
foreach ( $terms as $term ) {
echo vc_get_template( 'card-activity.php', array( 'term' => $term ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
echo '</div>';
$grid = ob_get_clean();
return self::render_section( 'vc-section--activities', $atts['eyebrow'], $atts['title'], $atts['view_all'], $grid );
}
/**
* Shared: render a WP_Query of tours into the card grid markup.
*/
private static function render_tour_grid( array $args ) {
$query = new WP_Query( $args );
if ( ! $query->have_posts() ) {
wp_reset_postdata();
return '';
}
ob_start();
echo '<div class="vc-app vc-listing"><ul class="tgrid">';
while ( $query->have_posts() ) {
$query->the_post();
echo vc_get_template( 'card-tour.php', array( 'post_id' => get_the_ID(), 'variant' => 'wide' ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
echo '</ul></div>';
wp_reset_postdata();
return ob_get_clean();
}
/**
* Shared: fetch terms for a section, either an explicit id list or the
* most-used terms in the taxonomy.
*/
private static function get_section_terms( $taxonomy, $count, $ids ) {
$args = array(
'taxonomy' => $taxonomy,
'hide_empty' => true,
'number' => max( 1, absint( $count ) ),
);
$ids = array_filter( array_map( 'absint', array_map( 'trim', explode( ',', (string) $ids ) ) ) );
if ( ! empty( $ids ) ) {
$args['include'] = $ids;
$args['orderby'] = 'include';
unset( $args['number'] );
} else {
$args['orderby'] = 'count';
$args['order'] = 'DESC';
}
$terms = get_terms( $args );
return ( is_wp_error( $terms ) || empty( $terms ) ) ? array() : $terms;
}
/**
* Shared: wrap inner markup in a titled, reveal-animated section.
*/
private static function render_section( $modifier, $eyebrow, $title, $view_all, $inner ) {
ob_start();
?>
<section class="vc-section <?php echo esc_attr( $modifier ); ?>">
<div class="vc-container">
<header class="vc-section__head vc-reveal">
<?php if ( $eyebrow ) : ?><span class="vc-eyebrow"><?php echo esc_html( $eyebrow ); ?></span><?php endif; ?>
<h2 class="vc-section__title"><?php echo esc_html( $title ); ?></h2>
<?php if ( $view_all ) : ?><a class="vc-view-all" href="<?php echo esc_url( $view_all ); ?>"><?php echo esc_html__( 'View all', 'viator-collector' ); ?> <span aria-hidden="true">&rarr;</span></a><?php endif; ?>
</header>
<?php echo $inner; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
</div>
</section>
<?php
return ob_get_clean();
}
public static function shortcode_card( $atts ) {
$post_id = self::post_id_from_atts( $atts );
if ( ! $post_id ) {
return '';
}
$card = vc_get_template( 'card-tour.php', array( 'post_id' => $post_id, 'variant' => 'wide' ) );
return '<div class="vc-app vc-listing"><ul class="tgrid">' . $card . '</ul></div>';
}
public static function shortcode_itinerary( $atts ) {
return vc_get_template( 'itinerary.php', array( 'post_id' => self::post_id_from_atts( $atts ) ) );
}
public static function shortcode_inclusions( $atts ) {
return vc_get_template( 'inclusions.php', array( 'post_id' => self::post_id_from_atts( $atts ) ) );
}
public static function shortcode_exclusions( $atts ) {
return vc_get_template( 'exclusions.php', array( 'post_id' => self::post_id_from_atts( $atts ) ) );
}
public static function shortcode_booking_button( $atts ) {
return vc_get_template( 'booking-button.php', array( 'post_id' => self::post_id_from_atts( $atts ) ) );
}
public static function shortcode_duration( $atts ) {
return vc_get_template( 'duration.php', array( 'post_id' => self::post_id_from_atts( $atts ) ) );
}
public static function shortcode_rating( $atts ) {
return vc_get_template( 'rating.php', array( 'post_id' => self::post_id_from_atts( $atts ) ) );
}
public static function shortcode_gallery( $atts ) {
$post_id = self::post_id_from_atts( $atts );
// Legacy installs may still have downloaded attachments.
$ids = vc_json_decode_meta( get_post_meta( $post_id, '_vc_gallery_image_ids', true ), array() );
if ( ! empty( $ids ) ) {
$out = '<div class="vc-gallery">';
foreach ( array_map( 'absint', $ids ) as $id ) {
$out .= wp_get_attachment_image( $id, 'large', false, array( 'class' => 'vc-gallery-image' ) );
}
$out .= '</div>';
return $out;
}
$urls = vc_json_decode_meta( get_post_meta( $post_id, '_vc_gallery_image_urls', true ), array() );
if ( empty( $urls ) ) {
return '';
}
$title = esc_attr( get_the_title( $post_id ) );
$out = '<div class="vc-gallery">';
foreach ( (array) $urls as $url ) {
$out .= '<img class="vc-gallery-image" src="' . esc_url( $url ) . '" alt="' . $title . '" loading="lazy">';
}
$out .= '</div>';
return $out;
}
private static function post_id_from_atts( $atts ) {
$atts = shortcode_atts( array( 'post_id' => get_the_ID() ), (array) $atts );
$post_id = absint( $atts['post_id'] );
return 'viator_tour' === get_post_type( $post_id ) ? $post_id : 0;
}
}

View File

@@ -0,0 +1,519 @@
<?php
defined( 'ABSPATH' ) || exit;
class VC_Importer {
private $api;
private $destination_map = array();
private $tag_map = array();
public function __construct( VC_API $api = null ) {
$this->api = $api ? $api : new VC_API();
}
/**
* Force-refresh the destination and tag dictionaries and cache them.
* Returns a WP_Error if either lookup fails (so a run can abort early).
*/
public function prime_dictionaries() {
$dest = $this->api->get_destination_map();
if ( is_wp_error( $dest ) ) {
return $dest;
}
$tags = $this->api->get_tag_map();
if ( is_wp_error( $tags ) ) {
return $tags;
}
set_transient( 'vc_destination_map', $dest, 25 * HOUR_IN_SECONDS );
set_transient( 'vc_tag_map', $tags, 25 * HOUR_IN_SECONDS );
$this->destination_map = $dest;
$this->tag_map = $tags;
return true;
}
/**
* Load dictionaries from cache, fetching them if the cache is cold.
*/
public function load_dictionaries() {
$dest = get_transient( 'vc_destination_map' );
if ( false === $dest ) {
$dest = $this->api->get_destination_map();
$dest = is_wp_error( $dest ) ? array() : $dest;
set_transient( 'vc_destination_map', $dest, 25 * HOUR_IN_SECONDS );
}
$tags = get_transient( 'vc_tag_map' );
if ( false === $tags ) {
$tags = $this->api->get_tag_map();
$tags = is_wp_error( $tags ) ? array() : $tags;
set_transient( 'vc_tag_map', $tags, 25 * HOUR_IN_SECONDS );
}
$this->destination_map = is_array( $dest ) ? $dest : array();
$this->tag_map = is_array( $tags ) ? $tags : array();
}
/**
* Crawl one page of products for a single destination.
*
* Each product is deduplicated by code within a run (via $run_id) so its
* full detail is only fetched once even though it surfaces under several
* destinations.
*
* @return array|WP_Error Per-page summary including totalCount and page size.
*/
public function crawl_destination( $destination_id, $start, $count, $run_id ) {
$currency = vc_get_option( 'currency', 'USD' );
$response = $this->api->search_products( $destination_id, $start, $count, $currency );
if ( is_wp_error( $response ) ) {
return $response;
}
$products = vc_array_get( $response, 'products', array() );
$summary = array(
'count' => 0,
'imported' => 0,
'updated' => 0,
'duplicate' => 0,
'deactivated' => 0,
'failed' => 0,
'total' => (int) vc_first_non_empty( array( vc_array_get( $response, 'totalCount' ), vc_array_get( $response, 'total' ) ), 0 ),
);
foreach ( (array) $products as $product ) {
if ( ! is_array( $product ) ) {
continue;
}
$summary['count']++;
$outcome = $this->process_search_product( $product, $destination_id, $run_id );
if ( isset( $summary[ $outcome ] ) ) {
$summary[ $outcome ]++;
}
}
return $summary;
}
/**
* Process one product returned by search: skip if already handled this
* run, otherwise optionally fetch full detail and create/update the post.
*
* @return string One of imported|updated|duplicate|deactivated|failed.
*/
private function process_search_product( array $product, $destination_id, $run_id ) {
$code = (string) vc_first_non_empty( array( vc_array_get( $product, 'productCode' ), vc_array_get( $product, 'code' ) ) );
if ( '' === $code ) {
return 'failed';
}
$existing = $this->find_existing_tour( $code );
if ( $existing && (string) get_post_meta( $existing, '_vc_synced_run', true ) === (string) $run_id ) {
// Already fully processed under another destination during this run.
return 'duplicate';
}
// Optionally enrich the summary with full product detail.
if ( vc_get_option( 'fetch_full_detail', 0 ) ) {
$detail = $this->api->get_product( $code );
if ( ! is_wp_error( $detail ) && is_array( $detail ) ) {
$product = $this->merge_detail( $product, $detail );
} elseif ( is_wp_error( $detail ) ) {
VC_Logger::log( 'Detail fetch failed (' . $code . '): ' . $detail->get_error_message() );
}
}
$product = $this->ensure_destination( $product, $destination_id );
$inactive = $this->is_product_inactive( $product );
$result = $this->create_or_update_tour( $product, $inactive );
if ( is_wp_error( $result ) ) {
VC_Logger::error( 'Product import failed (' . $code . '): ' . $result->get_error_message() );
return 'failed';
}
update_post_meta( (int) $result, '_vc_synced_run', (string) $run_id );
if ( $inactive ) {
return 'deactivated';
}
return $existing ? 'updated' : 'imported';
}
/**
* Overlay full-detail fields onto the search summary while keeping
* summary-only fields (pricing/destinations/tags) when detail omits them.
*/
private function merge_detail( array $summary, array $detail ) {
$merged = array_replace( $summary, $detail );
foreach ( array( 'pricing', 'destinations', 'tags', 'reviews', 'images' ) as $key ) {
if ( empty( $merged[ $key ] ) && ! empty( $summary[ $key ] ) ) {
$merged[ $key ] = $summary[ $key ];
}
}
return $merged;
}
/**
* Make sure the destination we searched is present on the product so its
* taxonomy term is assigned even if the payload omits it.
*/
private function ensure_destination( array $product, $destination_id ) {
$destinations = vc_array_get( $product, 'destinations', array() );
if ( ! is_array( $destinations ) ) {
$destinations = array();
}
foreach ( $destinations as $destination ) {
$ref = vc_first_non_empty( array( vc_array_get( $destination, 'ref' ), vc_array_get( $destination, 'destinationId' ), is_scalar( $destination ) ? $destination : null ) );
if ( (string) $ref === (string) $destination_id ) {
return $product;
}
}
$destinations[] = array( 'ref' => (string) $destination_id );
$product['destinations'] = $destinations;
return $product;
}
/**
* Fetch full product detail for an already-imported post and merge it into
* the stored summary. Used for lazy, on-view enrichment so we only pay the
* per-product request for tours that are actually viewed.
*
* @return bool True on success.
*/
public function enrich_from_detail( $post_id, $product_code ) {
$product_code = sanitize_text_field( (string) $product_code );
if ( '' === $product_code ) {
return false;
}
$detail = $this->api->get_product( $product_code );
if ( is_wp_error( $detail ) || ! is_array( $detail ) ) {
if ( is_wp_error( $detail ) ) {
VC_Logger::log( 'Detail enrichment failed (' . $product_code . '): ' . $detail->get_error_message() );
}
return false;
}
$this->load_dictionaries();
$summary = vc_json_decode_meta( get_post_meta( $post_id, '_vc_raw_response', true ), array() );
$product = is_array( $summary ) && ! empty( $summary ) ? $this->merge_detail( $summary, $detail ) : $detail;
$inactive = $this->is_product_inactive( $product );
$this->save_tour_meta( $post_id, $product, $inactive );
$this->assign_taxonomies( $post_id, $product );
$this->save_image_urls( $post_id, $product );
update_post_meta( $post_id, '_vc_detail_fetched', current_time( 'mysql' ) );
return true;
}
public function import_product_by_code( $product_code ) {
$product_code = sanitize_text_field( $product_code );
if ( '' === $product_code ) {
return new WP_Error( 'vc_missing_product_code', __( 'Product code is required.', 'viator-collector' ) );
}
$product = $this->api->get_product( $product_code );
if ( is_wp_error( $product ) ) {
return $product;
}
$this->load_dictionaries();
return $this->create_or_update_tour( $product, $this->is_product_inactive( $product ) );
}
public function find_existing_tour( $product_code ) {
$query = new WP_Query(
array(
'post_type' => 'viator_tour',
'post_status' => 'any',
'posts_per_page' => 1,
'fields' => 'ids',
'no_found_rows' => true,
'update_post_meta_cache' => false,
'update_post_term_cache' => false,
'meta_query' => array(
array(
'key' => '_vc_viator_product_code',
'value' => sanitize_text_field( (string) $product_code ),
),
),
)
);
return ! empty( $query->posts ) ? (int) $query->posts[0] : 0;
}
public function create_or_update_tour( array $product, $inactive = false ) {
$product_code = vc_first_non_empty( array( vc_array_get( $product, 'productCode' ), vc_array_get( $product, 'code' ) ) );
if ( '' === (string) $product_code ) {
return new WP_Error( 'vc_missing_product_code', __( 'Product data is missing a Viator product code.', 'viator-collector' ) );
}
$title = vc_first_non_empty( array( vc_array_get( $product, 'title' ), vc_array_get( $product, 'name' ), $product_code ) );
$desc = vc_first_non_empty( array( vc_array_get( $product, 'description' ), vc_array_get( $product, 'overview' ) ) );
$short = vc_first_non_empty( array( vc_array_get( $product, 'shortDescription' ), vc_array_get( $product, 'summary' ) ) );
if ( $inactive ) {
$status = 'draft';
} else {
$status = vc_get_option( 'default_post_status', 'publish' );
if ( ! in_array( $status, array( 'publish', 'draft', 'pending' ), true ) ) {
$status = 'publish';
}
}
$postarr = array(
'post_type' => 'viator_tour',
'post_title' => wp_strip_all_tags( $title ),
'post_content' => wp_kses_post( $desc ),
'post_excerpt' => wp_kses_post( $short ),
'post_status' => $status,
);
$post_id = $this->find_existing_tour( $product_code );
if ( $post_id ) {
$postarr['ID'] = $post_id;
$result = wp_update_post( wp_slash( $postarr ), true );
} else {
$result = wp_insert_post( wp_slash( $postarr ), true );
}
if ( is_wp_error( $result ) ) {
return $result;
}
$post_id = (int) $result;
update_post_meta( $post_id, '_vc_viator_product_code', sanitize_text_field( (string) $product_code ) );
$this->save_tour_meta( $post_id, $product, $inactive );
$this->assign_taxonomies( $post_id, $product );
$this->save_image_urls( $post_id, $product );
return $post_id;
}
public function save_tour_meta( $post_id, array $product, $inactive = false ) {
$price = vc_first_non_empty(
array(
vc_array_get( $product, 'pricing.summary.fromPrice' ),
vc_array_get( $product, 'price.fromPrice' ),
vc_array_get( $product, 'fromPrice' ),
)
);
$currency = vc_first_non_empty(
array(
vc_array_get( $product, 'pricing.currency' ),
vc_array_get( $product, 'currency' ),
vc_get_option( 'currency', 'USD' ),
)
);
$duration_minutes = vc_first_non_empty(
array(
vc_array_get( $product, 'duration.fixedDurationInMinutes' ),
vc_array_get( $product, 'duration.variableDurationFromMinutes' ),
vc_array_get( $product, 'durationMinutes' ),
)
);
$duration_text = vc_first_non_empty(
array(
vc_array_get( $product, 'duration.displayDuration' ),
vc_array_get( $product, 'durationText' ),
)
);
$booking_url = vc_first_non_empty(
array(
vc_array_get( $product, 'productUrl' ),
vc_array_get( $product, 'bookingUrl' ),
vc_array_get( $product, 'bookingLink' ),
)
);
$supplier = vc_first_non_empty(
array(
vc_array_get( $product, 'supplier.name' ),
vc_array_get( $product, 'supplierName' ),
)
);
$rating = vc_first_non_empty(
array(
vc_array_get( $product, 'reviews.combinedAverageRating' ),
vc_array_get( $product, 'rating' ),
)
);
$review_count = vc_first_non_empty(
array(
vc_array_get( $product, 'reviews.totalReviews' ),
vc_array_get( $product, 'reviewCount' ),
)
);
// Marketing flags (FREE_CANCELLATION, SPECIAL_OFFER, LIKELY_TO_SELL_OUT, …).
$flags = vc_array_get( $product, 'flags', array() );
$flags = is_array( $flags ) ? array_values( array_map( 'sanitize_text_field', $flags ) ) : array();
// Maximum group size (present in full product detail only).
$max_travelers = vc_first_non_empty(
array(
vc_array_get( $product, 'bookingRequirements.maxTravelersPerBooking' ),
vc_array_get( $product, 'bookingRequirements.maxTravelers' ),
vc_array_get( $product, 'maxTravelers' ),
)
);
$meta = array(
'_vc_booking_url' => esc_url_raw( $booking_url ),
'_vc_price_from' => $price,
'_vc_currency' => sanitize_text_field( $currency ),
'_vc_duration_minutes' => absint( $duration_minutes ),
'_vc_duration_text' => sanitize_text_field( $duration_text ),
'_vc_itinerary' => wp_json_encode( vc_array_get( $product, 'itinerary', array() ) ),
'_vc_inclusions' => wp_json_encode( vc_array_get( $product, 'inclusions', array() ) ),
'_vc_exclusions' => wp_json_encode( vc_array_get( $product, 'exclusions', array() ) ),
'_vc_additional_info' => wp_json_encode( vc_array_get( $product, 'additionalInfo', array() ) ),
'_vc_cancellation_policy' => wp_json_encode( vc_first_non_empty( array( vc_array_get( $product, 'cancellationPolicy' ), vc_array_get( $product, 'cancellation' ) ), array() ) ),
'_vc_supplier' => sanitize_text_field( $supplier ),
'_vc_destinations' => wp_json_encode( vc_array_get( $product, 'destinations', array() ) ),
'_vc_primary_destination' => VC_Structure::primary_destination_id( (array) vc_array_get( $product, 'destinations', array() ) ),
'_vc_tags' => wp_json_encode( vc_array_get( $product, 'tags', array() ) ),
'_vc_rating' => sanitize_text_field( (string) $rating ),
'_vc_review_count' => absint( $review_count ),
'_vc_flags' => wp_json_encode( $flags ),
'_vc_free_cancellation' => in_array( 'FREE_CANCELLATION', $flags, true ) ? 1 : 0,
'_vc_max_travelers' => absint( $max_travelers ),
'_vc_is_active' => $inactive ? 0 : 1,
'_vc_last_synced_at' => current_time( 'mysql' ),
);
foreach ( $meta as $key => $value ) {
update_post_meta( $post_id, $key, $value );
}
// The full API response is always stored so any field can be surfaced later.
update_post_meta( $post_id, '_vc_raw_response', wp_json_encode( $product ) );
}
public function assign_taxonomies( $post_id, array $product ) {
$destination_ids = array();
foreach ( (array) vc_array_get( $product, 'destinations', array() ) as $destination ) {
$ref = vc_first_non_empty(
array(
vc_array_get( $destination, 'ref' ),
vc_array_get( $destination, 'destinationId' ),
is_scalar( $destination ) ? $destination : null,
)
);
if ( '' === (string) $ref ) {
continue;
}
$name = isset( $this->destination_map[ (string) $ref ] ) ? $this->destination_map[ (string) $ref ] : '';
$term_id = VC_Taxonomies::get_or_create_destination_by_id( $ref, $name );
if ( $term_id ) {
$destination_ids[] = (int) $term_id;
}
}
$tag_ids = array();
foreach ( (array) vc_array_get( $product, 'tags', array() ) as $tag ) {
$id = is_scalar( $tag ) ? $tag : vc_first_non_empty( array( vc_array_get( $tag, 'tagId' ), vc_array_get( $tag, 'id' ) ) );
if ( '' === (string) $id ) {
continue;
}
$name = isset( $this->tag_map[ (string) $id ] ) ? $this->tag_map[ (string) $id ] : '';
$term_id = VC_Taxonomies::get_or_create_tag_by_id( $id, $name );
if ( $term_id ) {
$tag_ids[] = (int) $term_id;
}
}
wp_set_object_terms( $post_id, array_values( array_unique( $destination_ids ) ), 'viator_destination', false );
wp_set_object_terms( $post_id, array_values( array_unique( $tag_ids ) ), 'viator_tag', false );
}
/**
* Store image URLs (and a primary URL) without downloading anything.
*/
public function save_image_urls( $post_id, array $product ) {
$images = vc_first_non_empty(
array(
vc_array_get( $product, 'images', array() ),
vc_array_get( $product, 'media.images', array() ),
),
array()
);
$urls = array();
$primary = '';
foreach ( (array) $images as $image ) {
$url = $this->best_image_url( $image );
if ( '' === $url ) {
continue;
}
$urls[] = $url;
if ( '' === $primary && ( is_scalar( $image ) || vc_array_get( $image, 'isCover' ) ) ) {
$primary = $url;
}
}
$urls = array_values( array_unique( array_filter( $urls ) ) );
if ( '' === $primary && ! empty( $urls ) ) {
$primary = $urls[0];
}
update_post_meta( $post_id, '_vc_gallery_image_urls', wp_json_encode( $urls ) );
update_post_meta( $post_id, '_vc_primary_image_url', esc_url_raw( $primary ) );
}
/**
* Pick the highest-resolution variant available for an image entry.
*/
private function best_image_url( $image ) {
if ( is_string( $image ) ) {
return esc_url_raw( $image );
}
if ( ! is_array( $image ) ) {
return '';
}
$variants = vc_array_get( $image, 'variants', array() );
if ( is_array( $variants ) && ! empty( $variants ) ) {
$best = '';
$best_width = -1;
foreach ( $variants as $variant ) {
$url = vc_array_get( $variant, 'url' );
if ( ! $url ) {
continue;
}
$width = (int) vc_array_get( $variant, 'width', 0 );
if ( $width >= $best_width ) {
$best_width = $width;
$best = $url;
}
}
if ( '' !== $best ) {
return esc_url_raw( $best );
}
}
$url = vc_first_non_empty(
array(
vc_array_get( $image, 'url' ),
vc_array_get( $image, 'large' ),
vc_array_get( $image, 'medium' ),
vc_array_get( $image, 'imageSource' ),
)
);
return $url ? esc_url_raw( $url ) : '';
}
/**
* Detect whether the feed reports this product as no longer bookable.
*/
private function is_product_inactive( array $product ) {
$status = strtoupper( (string) vc_first_non_empty( array( vc_array_get( $product, 'status' ), vc_array_get( $product, 'productStatus' ) ) ) );
if ( '' !== $status && in_array( $status, array( 'INACTIVE', 'DEACTIVATED', 'EXPIRED', 'REMOVED', 'DELETED' ), true ) ) {
return true;
}
if ( false === vc_array_get( $product, 'active', null ) ) {
return true;
}
if ( vc_array_get( $product, 'isDeactivated', false ) ) {
return true;
}
return false;
}
}

View File

@@ -0,0 +1,103 @@
<?php
defined( 'ABSPATH' ) || exit;
class VC_Logger {
const STORE = 'vc_activity_log';
const MAX = 300;
public static function log( $message, $force = false ) {
if ( ! $force && ! vc_get_option( 'debug_logging', false ) ) {
return;
}
if ( is_array( $message ) || is_object( $message ) ) {
$message = wp_json_encode( self::redact( $message ) );
} else {
$message = self::redact_string( (string) $message );
}
error_log( '[Viator Collector] ' . $message ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
}
/**
* Record an informational event in the admin activity log.
*/
public static function info( $message ) {
self::record( 'info', $message );
self::log( $message );
}
/**
* Record an error event in the admin activity log and the PHP error log.
*/
public static function error( $message ) {
self::record( 'error', $message );
self::log( $message, true );
}
/**
* Append an entry to the rolling, in-database activity log shown in admin.
*/
public static function record( $level, $message ) {
if ( is_array( $message ) || is_object( $message ) ) {
$message = wp_json_encode( self::redact( $message ) );
} else {
$message = self::redact_string( (string) $message );
}
$log = get_option( self::STORE, array() );
if ( ! is_array( $log ) ) {
$log = array();
}
$log[] = array(
't' => current_time( 'mysql' ),
'level' => ( 'error' === $level ? 'error' : 'info' ),
'msg' => $message,
);
if ( count( $log ) > self::MAX ) {
$log = array_slice( $log, -self::MAX );
}
update_option( self::STORE, $log, false );
}
/**
* Recent activity log entries, newest first.
*/
public static function get_log() {
$log = get_option( self::STORE, array() );
if ( ! is_array( $log ) ) {
return array();
}
return array_reverse( $log );
}
public static function clear_log() {
delete_option( self::STORE );
}
private static function redact( $value ) {
if ( is_array( $value ) ) {
foreach ( $value as $key => $item ) {
if ( preg_match( '/api.?key|exp-api-key|authorization|token|secret/i', (string) $key ) ) {
$value[ $key ] = '[redacted]';
} else {
$value[ $key ] = self::redact( $item );
}
}
} elseif ( is_string( $value ) ) {
$value = self::redact_string( $value );
}
return $value;
}
private static function redact_string( $value ) {
$key = vc_get_api_key();
if ( $key ) {
$value = str_replace( $key, '[redacted]', $value );
}
return preg_replace( '/(exp-api-key|api_key|apiKey|token|secret)\s*[:=]\s*[^,\s]+/i', '$1=[redacted]', $value );
}
}

View File

@@ -0,0 +1,88 @@
<?php
defined( 'ABSPATH' ) || exit;
/**
* Appends the Viator Structure regions (each with a dropdown of its cities)
* to the theme's header menu, so the menu follows the structure without
* hand-editing Appearance → Menus.
*/
class VC_Menu {
const LOCATION = 'hoho_primary';
public static function init() {
add_filter( 'wp_nav_menu_objects', array( __CLASS__, 'append' ), 10, 2 );
}
public static function append( $items, $args ) {
if ( empty( $args->theme_location ) || self::LOCATION !== $args->theme_location ) {
return $items;
}
$order = count( $items );
$extra = self::items();
foreach ( $extra as $item ) {
$item->menu_order = ++$order;
}
return array_merge( $items, $extra );
}
/**
* Menu-item objects for the walker. The theme walker turns a parent with
* children into a toggle button (no link), so a region's dropdown starts
* with an "All of {region}" link to the region page itself.
*
* @return object[]
*/
public static function items() {
$items = array();
$n = 0;
foreach ( VC_Structure::get() as $region ) {
$term = $region['term_id'] ? get_term( (int) $region['term_id'], 'viator_destination' ) : null;
if ( ! $term instanceof WP_Term ) {
continue;
}
$region_url = get_term_link( $term );
if ( is_wp_error( $region_url ) ) {
continue;
}
$parent = self::item( ++$n, 0, $term->name, $region_url );
$items[] = $parent;
if ( ! $region['cities'] ) {
continue;
}
/* translators: %s: region name. */
$items[] = self::item( ++$n, $parent->db_id, sprintf( __( 'All of %s', 'viator-collector' ), $term->name ), $region_url );
foreach ( $region['cities'] as $city ) {
$items[] = self::item( ++$n, $parent->db_id, $city['name'], home_url( '/' . $city['slug'] . '/' ) );
}
}
return $items;
}
private static function item( $n, $parent_id, $title, $url ) {
$id = -1000 - $n;
$item = new stdClass();
$item->ID = $id;
$item->db_id = $id;
$item->menu_item_parent = (string) $parent_id;
$item->object_id = (string) $id;
$item->object = 'custom';
$item->type = 'custom';
$item->type_label = '';
$item->title = $title;
$item->url = $url;
$item->target = '';
$item->attr_title = '';
$item->description = '';
$item->classes = array( 'menu-item', 'vc-structure-item' );
$item->xfn = '';
$item->status = 'publish';
$item->post_parent = 0;
$item->menu_order = $n;
$item->current = false;
$item->current_item_ancestor = false;
$item->current_item_parent = false;
return $item;
}
}

View File

@@ -0,0 +1,74 @@
<?php
defined( 'ABSPATH' ) || exit;
final class VC_Plugin {
private static $instance = null;
public static function instance() {
if ( null === self::$instance ) {
self::$instance = new self();
}
return self::$instance;
}
private function __construct() {}
public function init() {
$this->load_files();
VC_CPT::init();
VC_Taxonomies::init();
VC_Settings::init();
VC_Structure_Admin::init();
VC_Routing::init();
VC_Menu::init();
VC_Cron::init();
VC_Display::init();
VC_Sections::init();
}
private function load_files() {
$files = array(
'includes/helpers.php',
'includes/class-vc-logger.php',
'includes/class-vc-cpt.php',
'includes/class-vc-taxonomies.php',
'includes/class-vc-structure.php',
'includes/class-vc-api.php',
'includes/class-vc-importer.php',
'includes/class-vc-cron.php',
'includes/class-vc-settings.php',
'includes/class-vc-structure-admin.php',
'includes/class-vc-routing.php',
'includes/class-vc-menu.php',
'includes/class-vc-display.php',
'includes/class-vc-sections.php',
);
foreach ( $files as $file ) {
require_once VC_PLUGIN_DIR . $file;
}
}
public static function activate() {
require_once VC_PLUGIN_DIR . 'includes/helpers.php';
require_once VC_PLUGIN_DIR . 'includes/class-vc-cpt.php';
require_once VC_PLUGIN_DIR . 'includes/class-vc-taxonomies.php';
require_once VC_PLUGIN_DIR . 'includes/class-vc-cron.php';
VC_CPT::register();
VC_Taxonomies::register();
VC_Cron::maybe_schedule();
flush_rewrite_rules();
// Structure routes are added on init, which has not run for this
// request; flush again on the next one so they are included.
update_option( 'vc_flush_rewrite', 1 );
}
public static function deactivate() {
require_once VC_PLUGIN_DIR . 'includes/class-vc-cron.php';
VC_Cron::unschedule();
delete_transient( 'vc_sync_lock' );
flush_rewrite_rules();
}
}

View File

@@ -0,0 +1,147 @@
<?php
defined( 'ABSPATH' ) || exit;
/**
* Place-based URLs from the Viator Structure: /{region}/, /{city}/ and
* /{city}/{tour}/. Old /tour-destination/… and /tours/… addresses 301 to
* the new ones, and a tour opened under the wrong city 301s to its one
* canonical city.
*/
class VC_Routing {
private static $product_city = array();
public static function init() {
// After the CPT/taxonomies register (default priority 10).
add_action( 'init', array( __CLASS__, 'add_rules' ), 20 );
add_filter( 'term_link', array( __CLASS__, 'term_link' ), 10, 3 );
add_filter( 'post_type_link', array( __CLASS__, 'post_type_link' ), 10, 2 );
// Ahead of core's redirect_canonical (priority 10).
add_action( 'template_redirect', array( __CLASS__, 'redirect' ), 5 );
add_action( 'wp_head', array( __CLASS__, 'term_canonical' ), 1 );
}
public static function add_rules() {
foreach ( VC_Structure::rewrite_rules( VC_Structure::get() ) as $regex => $query ) {
add_rewrite_rule( $regex, $query, 'top' );
}
if ( get_option( 'vc_flush_rewrite' ) ) {
delete_option( 'vc_flush_rewrite' );
flush_rewrite_rules( false );
}
}
public static function is_configured_term( $term ) {
if ( ! $term instanceof WP_Term || 'viator_destination' !== $term->taxonomy ) {
return false;
}
if ( get_term_meta( $term->term_id, '_vc_region', true ) ) {
return true;
}
$viator_id = (string) get_term_meta( $term->term_id, '_vc_viator_destination_id', true );
if ( '' === $viator_id ) {
return false;
}
$cities = VC_Structure::cities( VC_Structure::get() );
return isset( $cities[ $viator_id ] );
}
/**
* Slug of the city a tour's URL lives under, or '' (it stays at /tours/).
*/
public static function product_city( $post_id ) {
$post_id = (int) $post_id;
if ( isset( self::$product_city[ $post_id ] ) ) {
return self::$product_city[ $post_id ];
}
$dest_ids = array();
$destinations = json_decode( (string) get_post_meta( $post_id, '_vc_destinations', true ), true );
foreach ( is_array( $destinations ) ? $destinations : array() as $destination ) {
$ref = is_array( $destination ) ? ( $destination['ref'] ?? ( $destination['destinationId'] ?? '' ) ) : $destination;
if ( '' !== (string) $ref ) {
$dest_ids[] = (string) $ref;
}
}
$primary = (string) get_post_meta( $post_id, '_vc_primary_destination', true );
self::$product_city[ $post_id ] = VC_Structure::canonical_city( VC_Structure::get(), $dest_ids, $primary );
return self::$product_city[ $post_id ];
}
public static function term_link( $url, $term, $taxonomy ) {
if ( 'viator_destination' === $taxonomy && self::is_configured_term( $term ) ) {
return home_url( '/' . $term->slug . '/' );
}
return $url;
}
public static function post_type_link( $url, $post ) {
if ( 'viator_tour' !== $post->post_type || '' === $post->post_name ) {
return $url;
}
$city = self::product_city( $post->ID );
if ( '' === $city ) {
return $url;
}
return home_url( '/' . $city . '/' . $post->post_name . '/' );
}
public static function redirect() {
if ( is_preview() ) {
return;
}
$canonical = '';
if ( is_singular( 'viator_tour' ) ) {
$post = get_queried_object();
if ( $post && 'publish' === $post->post_status ) {
$canonical = get_permalink( $post );
}
} elseif ( is_tax( 'viator_destination' ) ) {
$term = get_queried_object();
if ( self::is_configured_term( $term ) ) {
$canonical = get_term_link( $term );
// Keep the page: /tour-destination/x/page/2/ and /x/?paged=2
// both land on /x/page/2/ (the form core's redirect_canonical
// would produce anyway).
$paged = (int) get_query_var( 'paged' );
if ( $paged > 1 && ! is_wp_error( $canonical ) ) {
$canonical = trailingslashit( $canonical ) . 'page/' . $paged . '/';
}
}
}
if ( ! $canonical || is_wp_error( $canonical ) ) {
return;
}
$request = isset( $_SERVER['REQUEST_URI'] ) ? wp_unslash( $_SERVER['REQUEST_URI'] ) : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
$parts = explode( '?', $request, 2 );
$current = untrailingslashit( rawurldecode( $parts[0] ) );
$target = untrailingslashit( rawurldecode( (string) wp_parse_url( $canonical, PHP_URL_PATH ) ) );
if ( $current === $target ) {
return;
}
if ( isset( $parts[1] ) && '' !== $parts[1] ) {
$canonical .= '?' . $parts[1];
$canonical = remove_query_arg( 'paged', $canonical );
}
wp_safe_redirect( $canonical, 301 );
exit;
}
/**
* Core prints rel=canonical for single tours only; add it for region and
* city archives unless an SEO plugin already handles canonicals.
*/
public static function term_canonical() {
if ( defined( 'WPSEO_VERSION' ) || defined( 'RANK_MATH_VERSION' ) || ! is_tax( 'viator_destination' ) ) {
return;
}
$term = get_queried_object();
if ( ! self::is_configured_term( $term ) ) {
return;
}
$link = get_term_link( $term );
if ( ! is_wp_error( $link ) ) {
echo '<link rel="canonical" href="' . esc_url( $link ) . '">' . "\n";
}
}
}

View File

@@ -0,0 +1,823 @@
<?php
defined( 'ABSPATH' ) || exit;
/**
* Front-page section shortcodes — "Hop On Hop Off" design.
*
* All markup is scoped under a .vc-app wrapper and styled by assets/css/
* vc-design.css. Assets are enqueued by VC_Display when a page contains one of
* these shortcodes, so nothing loads on pages that don't use them.
*/
class VC_Sections {
const HERO = 'viator_hero';
const TOP_DESTS = 'viator_top_destinations';
const TOP_ATTRS = 'viator_top_attractions';
const ACTIVITIES = 'viator_browse_activities';
const TOP_TOURS = 'viator_top_tours';
const BUS_TOURS = 'viator_bus_tours';
const ABOUT = 'viator_about';
const ARTICLES = 'viator_articles';
const FAQ = 'viator_faq';
const REVIEWS = 'viator_testimonials';
/** Per-request counter so each rail gets a unique id for its nav buttons. */
private static $rail_seq = 0;
public static function init() {
add_shortcode( self::HERO, array( __CLASS__, 'hero' ) );
add_shortcode( 'viator_hero_slider', array( __CLASS__, 'hero' ) ); // back-compat alias
add_shortcode( self::TOP_DESTS, array( __CLASS__, 'top_destinations' ) );
add_shortcode( self::TOP_ATTRS, array( __CLASS__, 'top_attractions' ) );
add_shortcode( self::ACTIVITIES, array( __CLASS__, 'browse_activities' ) );
add_shortcode( self::TOP_TOURS, array( __CLASS__, 'top_tours' ) );
add_shortcode( self::BUS_TOURS, array( __CLASS__, 'bus_tours' ) );
add_shortcode( self::ABOUT, array( __CLASS__, 'about' ) );
add_shortcode( self::ARTICLES, array( __CLASS__, 'articles' ) );
add_shortcode( self::FAQ, array( __CLASS__, 'faq' ) );
add_shortcode( self::REVIEWS, array( __CLASS__, 'testimonials' ) );
}
/**
* [viator_hero title="Set out on the journey." image="https://…"]
*
* The booking hero: a location/date/seat form that routes to the tours
* archive pre-filtered by the chosen destination.
*/
public static function hero( $atts ) {
$atts = shortcode_atts(
array(
'title' => __( 'Set out on the journey.', 'viator-collector' ),
'eyebrow' => __( 'Tour & Travel', 'viator-collector' ),
'image' => '',
'image_id' => '', // WordPress media attachment ID (responsive).
),
$atts,
self::HERO
);
// Prefer a media-library image (responsive srcset): shortcode image_id,
// then a shortcode URL, then the plugin's Hero image setting. No bundled
// fallback — an empty source shows the CSS gradient.
if ( '' !== $atts['image_id'] ) {
$img = absint( $atts['image_id'] );
} elseif ( '' !== $atts['image'] ) {
$img = $atts['image'];
} else {
$img = vc_hero_image_source();
}
$archive = get_post_type_archive_link( 'viator_tour' );
$archive = $archive ? $archive : home_url( '/' );
$dests = get_terms( array( 'taxonomy' => 'viator_destination', 'hide_empty' => true, 'number' => 12, 'orderby' => 'count', 'order' => 'DESC' ) );
$dests = is_wp_error( $dests ) ? array() : $dests;
ob_start();
?>
<div class="vc-app vc-sections">
<section class="hero">
<div class="hero__media">
<?php echo vc_hero_img_html( $img, 'hero__img', true ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
<div class="hero__scrim" aria-hidden="true"></div>
</div>
<div class="container hero__content">
<p class="pill hero__eyebrow"><?php echo esc_html( $atts['eyebrow'] ); ?></p>
<h1 class="hero__title"><?php echo esc_html( $atts['title'] ); ?></h1>
<form class="booking" method="get" action="<?php echo esc_url( $archive ); ?>" novalidate>
<div class="booking__row">
<div class="field">
<span class="field__label"><?php echo vc_icon( 'location' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?><label for="vc-f-location"><?php echo esc_html__( 'Location', 'viator-collector' ); ?></label></span>
<div class="select">
<select class="select__input" id="vc-f-location" name="dest[]">
<option value=""><?php echo esc_html__( 'All destinations', 'viator-collector' ); ?></option>
<?php foreach ( $dests as $t ) : ?>
<option value="<?php echo esc_attr( $t->slug ); ?>"><?php echo esc_html( $t->name ); ?></option>
<?php endforeach; ?>
</select>
<?php echo vc_icon( 'chevron', 'select__chevron' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
</div>
</div>
<div class="field">
<span class="field__label"><?php echo vc_icon( 'calendar' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?><label for="vc-f-date"><?php echo esc_html__( 'Date', 'viator-collector' ); ?></label></span>
<div class="select">
<input class="select__input select__input--date" id="vc-f-date" name="date" type="text" placeholder="<?php echo esc_attr__( 'Select Date', 'viator-collector' ); ?>" data-datefield>
<?php echo vc_icon( 'chevron', 'select__chevron' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
</div>
</div>
<div class="field">
<span class="field__label"><?php echo vc_icon( 'seat' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?><label for="vc-f-seat"><?php echo esc_html__( 'Seat', 'viator-collector' ); ?></label></span>
<div class="select">
<select class="select__input" id="vc-f-seat" name="seat">
<option value="1"><?php echo esc_html__( 'One Seat', 'viator-collector' ); ?></option>
<option value="2"><?php echo esc_html__( 'Two Seats', 'viator-collector' ); ?></option>
<option value="3"><?php echo esc_html__( 'Three Seats', 'viator-collector' ); ?></option>
<option value="4"><?php echo esc_html__( 'Four Seats', 'viator-collector' ); ?></option>
</select>
<?php echo vc_icon( 'chevron', 'select__chevron' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
</div>
</div>
<button class="btn btn--dark booking__submit" type="submit"><?php echo esc_html__( 'Book now', 'viator-collector' ); ?></button>
</div>
</form>
</div>
<?php echo vc_ring_badge( 'SCROLL DOWN · SCROLL DOWN · ', $archive, 'scroll' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
</section>
</div>
<?php
return ob_get_clean();
}
/**
* Open a titled rail section and return its unique rail id. Caller fills the
* <ul> with cards and then calls close_rail().
*/
private static function open_rail( $title, $lead, $view_all_url, $view_all_text, $rail_class = 'rail--dest' ) {
$id = 'vcRail' . ( ++self::$rail_seq );
ob_start();
?>
<div class="vc-app vc-sections">
<section class="section">
<div class="container">
<div class="sec-head">
<h2 class="sec-head__title"><?php echo wp_kses( $title, array( 'br' => array() ) ); ?></h2>
<?php if ( $lead ) : ?><p class="sec-head__lead"><?php echo esc_html( $lead ); ?></p><?php endif; ?>
<div class="sec-head__actions">
<?php if ( $view_all_url ) : ?>
<a class="btn btn--ghost btn--wide" href="<?php echo esc_url( $view_all_url ); ?>"><span><?php echo esc_html( $view_all_text ); ?></span><?php echo vc_icon( 'arrow-ne' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></a>
<?php endif; ?>
<div class="rail-nav">
<button class="btn btn--ghost rail-nav__btn" type="button" data-rail-prev="<?php echo esc_attr( $id ); ?>" aria-label="<?php echo esc_attr__( 'Previous', 'viator-collector' ); ?>"><?php echo vc_icon( 'arrow-left' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></button>
<button class="btn btn--ghost rail-nav__btn" type="button" data-rail-next="<?php echo esc_attr( $id ); ?>" aria-label="<?php echo esc_attr__( 'Next', 'viator-collector' ); ?>"><?php echo vc_icon( 'arrow-right' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></button>
</div>
</div>
</div>
<ul class="rail <?php echo esc_attr( $rail_class ); ?>" id="<?php echo esc_attr( $id ); ?>">
<?php
return array( 'id' => $id, 'head' => ob_get_clean() );
}
private static function close_rail() {
return '</ul></div></section></div>';
}
/**
* [viator_top_tours limit="8" title="Most Liked Tours"]
*/
public static function top_tours( $atts ) {
$atts = shortcode_atts(
array(
'ids' => '',
'codes' => '',
'destination' => '',
'tag' => '',
'limit' => 8,
'orderby' => 'rating',
'title' => __( 'Most Liked<br>Tours', 'viator-collector' ),
'lead' => __( 'Hand-picked tours travellers loved most.', 'viator-collector' ),
),
$atts,
self::TOP_TOURS
);
return self::tour_rail( $atts );
}
/**
* [viator_top_attractions limit="8"]
*/
public static function top_attractions( $atts ) {
$atts = shortcode_atts(
array(
'ids' => '',
'codes' => '',
'destination' => '',
'tag' => '',
'limit' => 8,
'orderby' => 'rating',
'title' => __( 'Top<br>Attractions', 'viator-collector' ),
'lead' => __( 'The must-see experiences everyone books.', 'viator-collector' ),
),
$atts,
self::TOP_ATTRS
);
return self::tour_rail( $atts );
}
/**
* [viator_browse_activities limit="8"]
*/
public static function browse_activities( $atts ) {
$atts = shortcode_atts(
array(
'ids' => '',
'codes' => '',
'destination' => '',
'tag' => '',
'limit' => 8,
'orderby' => 'rating',
'title' => __( 'Browse By<br>Activity', 'viator-collector' ),
'lead' => __( 'Find your style — from city sights to river cruises.', 'viator-collector' ),
),
$atts,
self::ACTIVITIES
);
return self::tour_rail( $atts );
}
/**
* Shared: a rail of tour cards from a curated/filtered query.
*/
private static function tour_rail( array $atts ) {
$query = self::tour_query( $atts );
if ( ! $query->have_posts() ) {
return '';
}
$archive = get_post_type_archive_link( 'viator_tour' );
$rail = self::open_rail( $atts['title'], $atts['lead'], $archive, __( 'See all', 'viator-collector' ) );
ob_start();
echo $rail['head']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
while ( $query->have_posts() ) {
$query->the_post();
echo vc_get_template( 'card-tour.php', array( 'post_id' => get_the_ID(), 'variant' => 'rail' ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
echo self::close_rail(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
wp_reset_postdata();
return ob_get_clean();
}
/**
* [viator_top_destinations limit="8" title="Where you wanna go?"]
*
* A rail of destination-term cards; each links to the term archive.
*/
public static function top_destinations( $atts ) {
$atts = shortcode_atts(
array(
'ids' => '',
'slugs' => '',
'limit' => 8,
'orderby' => 'count',
'title' => __( 'Where you<br>wanna go?', 'viator-collector' ),
'lead' => __( 'Popular destinations our travellers explore.', 'viator-collector' ),
'link_text' => __( 'View tours', 'viator-collector' ),
),
$atts,
self::TOP_DESTS
);
$args = array( 'taxonomy' => 'viator_destination', 'hide_empty' => true );
if ( '' !== $atts['ids'] ) {
$args['include'] = array_filter( array_map( 'absint', explode( ',', $atts['ids'] ) ) );
$args['orderby'] = 'include';
} elseif ( '' !== $atts['slugs'] ) {
$args['slug'] = array_filter( array_map( 'sanitize_title', explode( ',', $atts['slugs'] ) ) );
$args['orderby'] = 'name';
} else {
$args['number'] = max( 1, absint( $atts['limit'] ) );
$args['orderby'] = ( 'name' === $atts['orderby'] ) ? 'name' : 'count';
$args['order'] = ( 'name' === $atts['orderby'] ) ? 'ASC' : 'DESC';
}
$terms = get_terms( $args );
if ( is_wp_error( $terms ) || empty( $terms ) ) {
return '';
}
$archive = get_post_type_archive_link( 'viator_tour' );
$rail = self::open_rail( $atts['title'], $atts['lead'], $archive, __( 'See all', 'viator-collector' ) );
ob_start();
echo $rail['head']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
foreach ( $terms as $term ) {
$link = get_term_link( $term );
if ( is_wp_error( $link ) ) {
continue;
}
$image = vc_term_image_url( $term->term_id, 'viator_destination' );
?>
<li class="dcard">
<?php if ( $image ) : ?>
<img class="dcard__img" src="<?php echo esc_url( $image ); ?>" alt="<?php echo esc_attr( $term->name ); ?>" loading="lazy">
<?php endif; ?>
<div class="dcard__body">
<h3 class="dcard__title"><a href="<?php echo esc_url( $link ); ?>"><?php echo esc_html( $term->name ); ?></a></h3>
<div class="dcard__meta">
<div class="meta">
<span class="meta__k"><?php echo esc_html__( 'Tours', 'viator-collector' ); ?></span>
<span class="meta__v"><?php echo esc_html( number_format_i18n( (int) $term->count ) ); ?></span>
</div>
<?php echo vc_ring_badge( 'VIEW TOURS · VIEW TOURS · ', $link, 'card' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
</div>
</div>
</li>
<?php
}
echo self::close_rail(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
return ob_get_clean();
}
/**
* [viator_faq title="FAQ's" items="Question|Answer;;Question 2|Answer 2"]
*
* Items may also be supplied via the `vc_faq_items` filter.
*/
public static function faq( $atts ) {
$atts = shortcode_atts(
array(
'title' => __( "FAQ's", 'viator-collector' ),
'lead' => __( 'Everything you need to know before you book.', 'viator-collector' ),
'items' => '',
),
$atts,
self::FAQ
);
$items = array();
if ( '' !== $atts['items'] ) {
foreach ( explode( ';;', $atts['items'] ) as $pair ) {
$parts = array_map( 'trim', explode( '|', $pair, 2 ) );
if ( '' !== $parts[0] && isset( $parts[1] ) ) {
$items[] = array( 'q' => $parts[0], 'a' => $parts[1] );
}
}
}
if ( empty( $items ) ) {
$items = apply_filters(
'vc_faq_items',
array(
array( 'q' => __( 'Is the booking process fully online?', 'viator-collector' ), 'a' => __( 'Yes — you can browse, choose a date and complete your booking entirely online in a few minutes.', 'viator-collector' ) ),
array( 'q' => __( 'How can I book a tour?', 'viator-collector' ), 'a' => __( 'Pick a tour, choose your date and number of seats, then confirm. You will receive your tickets by email.', 'viator-collector' ) ),
array( 'q' => __( 'Can I cancel or change my booking?', 'viator-collector' ), 'a' => __( 'Most tours offer free cancellation up to 24 hours before the start time. Check each tour for details.', 'viator-collector' ) ),
array( 'q' => __( 'Do I need to print my ticket?', 'viator-collector' ), 'a' => __( 'No — a mobile ticket is accepted for the vast majority of tours.', 'viator-collector' ) ),
)
);
}
if ( empty( $items ) ) {
return '';
}
ob_start();
?>
<div class="vc-app vc-sections">
<section class="faq">
<span class="faq__watermark" aria-hidden="true">FAQ</span>
<div class="container faq__inner">
<div class="faq__intro">
<h2 class="faq__title"><?php echo esc_html( $atts['title'] ); ?></h2>
<?php if ( $atts['lead'] ) : ?><p class="faq__lead"><?php echo esc_html( $atts['lead'] ); ?></p><?php endif; ?>
</div>
<div class="accordion" data-accordion>
<?php foreach ( $items as $i => $item ) : ?>
<div class="acc">
<h3>
<button class="acc__q" type="button" aria-expanded="<?php echo 0 === $i ? 'true' : 'false'; ?>">
<span><?php echo esc_html( $item['q'] ); ?></span>
<?php echo vc_icon( 'plus', 'icon--14 acc__plus' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
<?php echo vc_icon( 'minus', 'icon--14 acc__minus' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
</button>
</h3>
<div class="acc__a"><p><?php echo esc_html( $item['a'] ); ?></p></div>
</div>
<?php endforeach; ?>
</div>
</div>
</section>
</div>
<?php
return ob_get_clean();
}
/**
* [viator_testimonials title="Your Comments"]
*
* Items may be supplied via the `vc_testimonials` filter
* (each: name, role, text, avatar).
*/
public static function testimonials( $atts ) {
$atts = shortcode_atts(
array(
'title' => __( 'Your Comments', 'viator-collector' ),
'lead' => __( 'What travellers say about their tours.', 'viator-collector' ),
),
$atts,
self::REVIEWS
);
// Avatars are optional; supply them via the vc_testimonials filter
// ('avatar' => attachment URL) — none are bundled with the plugin.
$items = apply_filters(
'vc_testimonials',
array(
array( 'name' => 'Malika Favre', 'role' => __( 'Paris Tour', 'viator-collector' ), 'text' => __( 'An unforgettable day — the open-top ride and the guide made the whole city feel new. Booking was effortless.', 'viator-collector' ), 'avatar' => '', 'size' => 'lg' ),
array( 'name' => 'James Carter', 'role' => __( 'London Tour', 'viator-collector' ), 'text' => __( 'Great value and flexible timing. We hopped on and off all day and saw everything on our list.', 'viator-collector' ), 'avatar' => '', 'size' => '' ),
array( 'name' => 'Sofia Rossi', 'role' => __( 'Sydney Tour', 'viator-collector' ), 'text' => __( 'Smooth from start to finish. Highly recommended.', 'viator-collector' ), 'avatar' => '', 'size' => 'sm' ),
array( 'name' => 'Liam Nguyen', 'role' => __( 'San Diego Tour', 'viator-collector' ), 'text' => __( 'Friendly crew, comfortable seats and the best views of the coast.', 'viator-collector' ), 'avatar' => '', 'size' => '' ),
)
);
if ( empty( $items ) ) {
return '';
}
ob_start();
?>
<div class="vc-app vc-sections">
<section class="section testimonials">
<div class="container">
<div class="testimonials__head">
<h2 class="testimonials__title"><?php echo esc_html( $atts['title'] ); ?></h2>
<?php if ( $atts['lead'] ) : ?><p class="testimonials__lead"><?php echo esc_html( $atts['lead'] ); ?></p><?php endif; ?>
</div>
</div>
<div class="marquee" data-marquee>
<div class="marquee__track">
<?php foreach ( $items as $item ) : ?>
<?php $size = ! empty( $item['size'] ) ? ' quote--' . sanitize_html_class( $item['size'] ) : ''; ?>
<figure class="quote<?php echo esc_attr( $size ); ?>">
<figcaption class="quote__head">
<?php if ( ! empty( $item['avatar'] ) ) : ?>
<img class="quote__avatar" src="<?php echo esc_url( $item['avatar'] ); ?>" alt="" loading="lazy">
<?php endif; ?>
<span><b><?php echo esc_html( $item['name'] ); ?></b><i><?php echo esc_html( $item['role'] ); ?></i></span>
</figcaption>
<blockquote><?php echo esc_html( $item['text'] ); ?></blockquote>
</figure>
<?php endforeach; ?>
</div>
</div>
</section>
</div>
<?php
return ob_get_clean();
}
/**
* [viator_bus_tours limit="4" tag="hop-on-hop-off" image_id="123"]
*
* The "Open Top Bus Tours…" promo block + a 4-up grid of tour cards. Backed
* by the same curated/filtered tour query as the rails. The bus illustration
* is a heavy image, so it comes from the Media Library via image_id (or a
* direct image URL) — nothing is bundled with the plugin.
*/
public static function bus_tours( $atts ) {
$atts = shortcode_atts(
array(
'ids' => '',
'codes' => '',
'destination' => '',
'tag' => '',
'limit' => 4,
'orderby' => 'rating',
'title' => __( 'Open Top<br>Bus Tours&hellip;', 'viator-collector' ),
'note' => __( 'An open-top hop on hop off bus is the best way to discover the historic and cultural sights of any city.', 'viator-collector' ),
'chip' => __( 'Very Fun!', 'viator-collector' ),
'image_id' => '', // WordPress media attachment ID for the bus illustration.
'image' => '', // …or a direct image URL.
),
$atts,
self::BUS_TOURS
);
$query = self::tour_query( $atts );
if ( ! $query->have_posts() ) {
return '';
}
$archive = get_post_type_archive_link( 'viator_tour' );
$archive = $archive ? $archive : home_url( '/' );
$bus_img = '';
if ( '' !== $atts['image_id'] ) {
// 'full' (uncropped original) — some sites register a hard-cropped
// square 'large', which slices decorative illustrations in half.
$bus_img = wp_get_attachment_image( absint( $atts['image_id'] ), 'full', false, array( 'alt' => '', 'loading' => 'lazy' ) );
} elseif ( '' !== $atts['image'] ) {
$bus_img = '<img src="' . esc_url( $atts['image'] ) . '" alt="" loading="lazy">';
}
ob_start();
?>
<div class="vc-app vc-sections">
<section class="section section--tight">
<div class="container bus">
<div class="promo">
<svg class="promo__route" viewBox="0 0 416 526" fill="none" aria-hidden="true" preserveAspectRatio="none">
<path d="M-20 470 C 90 470, 60 350, 150 330 S 300 300, 300 210 S 210 120, 300 60 S 430 40, 440 -10" stroke="#2CAFC2" stroke-dasharray="3 3" />
</svg>
<div class="promo__head">
<h2 class="promo__title"><?php echo wp_kses( $atts['title'], array( 'br' => array() ) ); ?></h2>
<a class="btn btn--white" href="<?php echo esc_url( $archive ); ?>"><span><?php echo esc_html__( 'See all', 'viator-collector' ); ?></span><?php echo vc_icon( 'arrow-ne' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></a>
</div>
<?php if ( $atts['chip'] ) : ?><span class="chip chip--accent promo__chip"><?php echo esc_html( $atts['chip'] ); ?></span><?php endif; ?>
<?php if ( $bus_img ) : ?><div class="promo__bus" aria-hidden="true"><?php echo $bus_img; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></div><?php endif; ?>
<?php if ( $atts['note'] ) : ?><p class="promo__note"><?php echo esc_html( $atts['note'] ); ?></p><?php endif; ?>
</div>
<ul class="bus__grid">
<?php
$i = 0;
while ( $query->have_posts() ) :
$query->the_post();
++$i;
$pid = get_the_ID();
$price = get_post_meta( $pid, '_vc_price_from', true );
$currency = get_post_meta( $pid, '_vc_currency', true );
$terms = get_the_terms( $pid, 'viator_destination' );
$kicker = ( $terms && ! is_wp_error( $terms ) ) ? $terms[0]->name : '';
$active = ( 1 === $i );
$badge = vc_ring_badge( 'BOOK NOW · BOOK NOW · ', get_permalink( $pid ), 'card' );
if ( $active ) {
$badge = str_replace( 'ring-badge--card', 'ring-badge--card ring-badge--accent', $badge );
}
?>
<li class="tcard<?php echo $active ? ' is-active' : ''; ?>">
<?php echo vc_tour_image_html( $pid, 'tcard__img' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
<div class="tcard__top">
<?php if ( $kicker ) : ?><span class="tcard__k"><?php echo esc_html( $kicker ); ?></span><?php endif; ?>
<h3 class="tcard__title"><a href="<?php echo esc_url( get_permalink( $pid ) ); ?>"><?php echo esc_html( get_the_title( $pid ) ); ?></a></h3>
</div>
<div class="tcard__bottom">
<?php if ( '' !== (string) $price ) : ?>
<div class="meta">
<span class="meta__k"><?php echo esc_html__( 'Start at', 'viator-collector' ); ?></span>
<span class="meta__v"><?php echo esc_html( vc_money( $price, $currency ) ); ?></span>
</div>
<?php endif; ?>
<?php echo $badge; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
</div>
</li>
<?php endwhile; ?>
</ul>
</div>
</section>
</div>
<?php
wp_reset_postdata();
return ob_get_clean();
}
/**
* [viator_about image_id="123" title="Hop On Hop Off" highlight="Memorable"
* stats="25+|Years Experience;;500+|Tours Conducted"]
*
* A static "About" marketing block (headline + chip, paragraph, stat counters
* and a decorative bus). All copy is editable via attributes; the isometric
* bus is a heavy image supplied from the Media Library (image_id / image).
*/
public static function about( $atts ) {
$atts = shortcode_atts(
array(
'title' => __( 'Hop On Hop Off', 'viator-collector' ),
'highlight' => __( 'Memorable', 'viator-collector' ),
'text' => __( 'Discover cities the memorable way — hop on and off our open-top buses at every major sight and explore each place at your own pace, with expert local commentary along the way.', 'viator-collector' ),
'button_text' => __( 'About us', 'viator-collector' ),
'button_url' => '',
'image_id' => '',
'image' => '',
'stats' => '', // "25+|Years Experience;;500+|Tours Conducted;;430+|Tours this Year;;15+|Different Tours"
),
$atts,
self::ABOUT
);
$stats = array();
if ( '' !== $atts['stats'] ) {
foreach ( explode( ';;', $atts['stats'] ) as $pair ) {
$p = array_map( 'trim', explode( '|', $pair, 2 ) );
if ( '' !== $p[0] && isset( $p[1] ) ) {
$stats[] = array( 'num' => $p[0], 'label' => $p[1] );
}
}
}
if ( empty( $stats ) ) {
$stats = array(
array( 'num' => '25+', 'label' => __( 'Years Experience', 'viator-collector' ) ),
array( 'num' => '500+', 'label' => __( 'Tours Conducted', 'viator-collector' ) ),
array( 'num' => '430+', 'label' => __( 'Tours this Year', 'viator-collector' ) ),
array( 'num' => '15+', 'label' => __( 'Different Tours', 'viator-collector' ) ),
);
}
$button_url = $atts['button_url'];
if ( '' === $button_url ) {
$button_url = get_post_type_archive_link( 'viator_tour' );
$button_url = $button_url ? $button_url : home_url( '/' );
}
$bus_img = '';
if ( '' !== $atts['image_id'] ) {
// 'full' (uncropped original) — some sites register a hard-cropped
// square 'large', which slices decorative illustrations in half.
$bus_img = wp_get_attachment_image( absint( $atts['image_id'] ), 'full', false, array( 'alt' => '', 'loading' => 'lazy' ) );
} elseif ( '' !== $atts['image'] ) {
$bus_img = '<img src="' . esc_url( $atts['image'] ) . '" alt="" loading="lazy">';
}
ob_start();
?>
<div class="vc-app vc-sections">
<section class="section">
<div class="container about">
<div class="about__art" aria-hidden="true">
<span class="about__glow"></span>
<span class="about__trail" aria-hidden="true"></span>
<?php if ( $bus_img ) : ?><span class="about__bus"><?php echo $bus_img; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></span><?php endif; ?>
<svg class="about__arcs" viewBox="0 0 480 440" fill="none" aria-hidden="true">
<defs>
<path id="busArc" pathLength="100" d="M20 336.6V221.6C20 96.6 170 23.4 170 148.4V263.4" />
</defs>
<g stroke="#FFCC00" stroke-width="9" stroke-linecap="round" fill="none" transform="translate(16 24)">
<use href="#busArc" opacity="0.1" stroke-dasharray="62 100" />
<use href="#busArc" opacity="0.25" stroke-dasharray="69 100" transform="translate(48 22)" />
<use href="#busArc" opacity="0.45" stroke-dasharray="76 100" transform="translate(96 44)" />
<use href="#busArc" opacity="0.8" stroke-dasharray="83 100" transform="translate(144 66)" />
</g>
</svg>
</div>
<div class="about__body">
<div class="about__head">
<h2 class="about__title"><?php echo esc_html( $atts['title'] ); ?><?php if ( $atts['highlight'] ) : ?><span class="chip chip--accent about__chip"><?php echo esc_html( $atts['highlight'] ); ?></span><?php endif; ?></h2>
<a class="btn btn--dark" href="<?php echo esc_url( $button_url ); ?>"><span><?php echo esc_html( $atts['button_text'] ); ?></span><?php echo vc_icon( 'arrow-right' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></a>
</div>
<?php if ( $atts['text'] ) : ?><p class="about__text"><?php echo esc_html( $atts['text'] ); ?></p><?php endif; ?>
<dl class="stats">
<?php
foreach ( $stats as $s ) :
$num = $s['num'];
$suffix = '';
if ( preg_match( '/^(.*?)(\+)$/', $num, $m ) ) {
$num = $m[1];
$suffix = $m[2];
}
?>
<div class="stat">
<dt class="stat__num"><?php echo esc_html( $num ); ?><?php if ( $suffix ) : ?><span><?php echo esc_html( $suffix ); ?></span><?php endif; ?></dt>
<dd class="stat__label"><?php echo esc_html( $s['label'] ); ?></dd>
</div>
<?php endforeach; ?>
</dl>
</div>
</div>
</section>
</div>
<?php
return ob_get_clean();
}
/**
* [viator_articles limit="8" category="news"]
*
* A rail of the latest blog posts, styled as the design's "Latest Articles"
* cards. Uses each post's featured image, time and excerpt; links to the post.
*/
public static function articles( $atts ) {
$atts = shortcode_atts(
array(
'title' => __( 'Latest<br>Articles', 'viator-collector' ),
'lead' => __( 'News, tips and stories from our tours.', 'viator-collector' ),
'limit' => 8,
'category' => '',
'view_all' => '',
),
$atts,
self::ARTICLES
);
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => max( 1, absint( $atts['limit'] ) ),
'ignore_sticky_posts' => true,
'no_found_rows' => true,
);
if ( '' !== $atts['category'] ) {
$args['category_name'] = sanitize_title( $atts['category'] );
}
$query = new WP_Query( $args );
if ( ! $query->have_posts() ) {
return '';
}
$view_all = $atts['view_all'];
if ( '' === $view_all ) {
$posts_page = (int) get_option( 'page_for_posts' );
$view_all = $posts_page ? get_permalink( $posts_page ) : home_url( '/' );
}
$rail = self::open_rail( $atts['title'], $atts['lead'], $view_all, __( 'See all', 'viator-collector' ), 'rail--art' );
ob_start();
echo $rail['head']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
$i = 0;
while ( $query->have_posts() ) :
$query->the_post();
++$i;
$pid = get_the_ID();
$active = ( 1 === $i );
$img = has_post_thumbnail( $pid ) ? get_the_post_thumbnail( $pid, 'large', array( 'class' => 'acard__img', 'loading' => 'lazy', 'alt' => '' ) ) : '';
$time = human_time_diff( (int) get_post_time( 'U', true, $pid ), (int) current_time( 'timestamp', true ) );
$excerpt = get_the_excerpt( $pid );
$badge = vc_ring_badge( 'READ MORE · READ MORE · ', get_permalink( $pid ), 'card' );
if ( $active ) {
$badge = str_replace( 'ring-badge--card', 'ring-badge--card ring-badge--accent', $badge );
}
?>
<li class="acard<?php echo $active ? ' is-active' : ''; ?>">
<div class="acard__media">
<?php echo $img; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
<span class="chip chip--glass acard__time"><?php printf( /* translators: %s: human-readable time difference, e.g. "3 hours". */ esc_html__( '%s ago', 'viator-collector' ), esc_html( $time ) ); ?></span>
<div class="acard__overlay">
<h3 class="acard__title"><a href="<?php echo esc_url( get_permalink( $pid ) ); ?>"><?php echo esc_html( get_the_title( $pid ) ); ?></a></h3>
<?php echo $badge; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
</div>
</div>
<?php if ( $excerpt ) : ?><p class="acard__excerpt"><?php echo esc_html( $excerpt ); ?></p><?php endif; ?>
</li>
<?php
endwhile;
echo self::close_rail(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
wp_reset_postdata();
return ob_get_clean();
}
/**
* Shared tour query for the landing sections. Supports curation (ids /
* product codes) and filtering (destination / tag), with a sane fallback.
*/
private static function tour_query( array $atts ) {
$args = array(
'post_type' => 'viator_tour',
'post_status' => 'publish',
'posts_per_page' => max( 1, absint( $atts['limit'] ) ),
'no_found_rows' => true,
'ignore_sticky_posts' => true,
);
if ( '' !== $atts['ids'] ) {
$args['post__in'] = array_filter( array_map( 'absint', explode( ',', $atts['ids'] ) ) );
$args['orderby'] = 'post__in';
} elseif ( '' !== $atts['codes'] ) {
$args['meta_query'] = array(
'vc_product_codes' => array(
'key' => '_vc_viator_product_code',
'value' => array_filter( array_map( 'sanitize_text_field', explode( ',', $atts['codes'] ) ) ),
'compare' => 'IN',
),
);
}
$tax_query = array();
if ( '' !== $atts['destination'] ) {
$tax_query[] = array( 'taxonomy' => 'viator_destination', 'field' => 'slug', 'terms' => array_map( 'sanitize_title', explode( ',', $atts['destination'] ) ) );
}
if ( '' !== $atts['tag'] ) {
$tax_query[] = array( 'taxonomy' => 'viator_tag', 'field' => 'slug', 'terms' => array_map( 'sanitize_title', explode( ',', $atts['tag'] ) ) );
}
if ( $tax_query ) {
$args['tax_query'] = $tax_query;
}
if ( ! isset( $args['orderby'] ) ) {
switch ( $atts['orderby'] ) {
case 'price':
$args['meta_key'] = '_vc_price_from';
$args['orderby'] = 'meta_value_num';
$args['order'] = 'ASC';
break;
case 'rand':
$args['orderby'] = 'rand';
break;
case 'date':
$args['orderby'] = 'date';
$args['order'] = 'DESC';
break;
default:
$args['meta_key'] = '_vc_rating';
$args['orderby'] = 'meta_value_num';
$args['order'] = 'DESC';
}
}
$query = new WP_Query( $args );
// Ordering by a meta key silently drops posts that lack it; fall back to
// newest so the section never empties.
if ( ! $query->have_posts() && isset( $args['meta_key'] ) ) {
unset( $args['meta_key'] );
$args['orderby'] = 'date';
$args['order'] = 'DESC';
$query = new WP_Query( $args );
}
return $query;
}
}

View File

@@ -0,0 +1,619 @@
<?php
defined( 'ABSPATH' ) || exit;
class VC_Settings {
public static function init() {
add_action( 'admin_menu', array( __CLASS__, 'admin_menu' ) );
add_action( 'admin_init', array( __CLASS__, 'register_settings' ) );
add_action( 'admin_post_vc_test_api', array( __CLASS__, 'handle_test_api' ) );
add_action( 'admin_post_vc_manual_sync', array( __CLASS__, 'handle_manual_sync' ) );
add_action( 'admin_post_vc_reset_sync', array( __CLASS__, 'handle_reset_sync' ) );
add_action( 'admin_post_vc_delete_all', array( __CLASS__, 'handle_delete_all' ) );
add_action( 'admin_post_vc_clear_log', array( __CLASS__, 'handle_clear_log' ) );
add_action( 'admin_post_vc_import_product', array( __CLASS__, 'handle_import_product' ) );
add_action( 'wp_ajax_vc_search_destinations', array( __CLASS__, 'ajax_search_destinations' ) );
add_action( 'admin_enqueue_scripts', array( __CLASS__, 'admin_assets' ) );
}
/**
* Load the WordPress media library on our settings screen so the hero
* image can be picked/uploaded without editing plugin files.
*/
public static function admin_assets( $hook ) {
if ( 'settings_page_viator-collector' === $hook ) {
wp_enqueue_media();
}
}
/**
* Keep only numeric, comma-separated destination IDs.
*/
public static function sanitize_id_list( $value ) {
$ids = array_filter( array_map( 'trim', explode( ',', (string) $value ) ), 'ctype_digit' );
return implode( ',', array_values( array_unique( $ids ) ) );
}
/**
* Live destination lookup for the settings screen so the exact Viator IDs
* can be found and added to the crawl filter.
*/
public static function ajax_search_destinations() {
check_ajax_referer( 'vc_search_destinations' );
if ( ! current_user_can( 'manage_options' ) ) {
wp_send_json_error( array( 'message' => __( 'Not allowed.', 'viator-collector' ) ) );
}
$query = isset( $_POST['q'] ) ? sanitize_text_field( wp_unslash( $_POST['q'] ) ) : '';
$map = ( new VC_API() )->get_destination_map();
if ( is_wp_error( $map ) ) {
wp_send_json_error( array( 'message' => $map->get_error_message() ) );
}
$needle = strtolower( $query );
$results = array();
foreach ( (array) $map as $id => $name ) {
if ( '' === $query || false !== strpos( strtolower( $name ), $needle ) ) {
$results[] = array(
'id' => (string) $id,
'name' => $name,
);
if ( count( $results ) >= 40 ) {
break;
}
}
}
// Suggested URL slug for the Viator Structure screen: keep an existing
// term's slug so live /tour-destination/{slug}/ links still resolve
// (and 301), otherwise WordPress's own slug for the name.
$existing = array();
if ( $results ) {
$terms = get_terms(
array(
'taxonomy' => 'viator_destination',
'hide_empty' => false,
'meta_query' => array( // phpcs:ignore WordPress.DB.SlowDBQuery
array(
'key' => '_vc_viator_destination_id',
'value' => array_column( $results, 'id' ),
'compare' => 'IN',
),
),
)
);
foreach ( is_wp_error( $terms ) ? array() : $terms as $term ) {
$existing[ (string) get_term_meta( $term->term_id, '_vc_viator_destination_id', true ) ] = $term->slug;
}
}
foreach ( $results as &$result ) {
$result['slug'] = isset( $existing[ $result['id'] ] ) ? $existing[ $result['id'] ] : sanitize_title( $result['name'] );
}
unset( $result );
wp_send_json_success( array( 'results' => $results ) );
}
public static function defaults() {
return array(
'api_key' => '',
'api_base_url' => 'https://api.viator.com/partner',
'language' => 'en-US',
'currency' => 'USD',
'timeout' => 20,
'default_post_status' => 'publish',
'hero_image' => '',
'hero_image_id' => 0,
'single_hero_figure_id' => 0,
'hero_slides' => '',
'crawl_destinations' => '',
'rate_limit_per_minute' => 25,
'products_per_page' => 50,
'pages_per_run' => 10,
'fetch_full_detail' => 0,
'detail_batch_size' => 15,
'log_every' => 10,
'automatic_sync' => 0,
'debug_logging' => 0,
);
}
public static function admin_menu() {
add_options_page(
__( 'Viator Collector', 'viator-collector' ),
__( 'Viator Collector', 'viator-collector' ),
'manage_options',
'viator-collector',
array( __CLASS__, 'render_page' )
);
}
public static function register_settings() {
register_setting(
'vc_settings_group',
'vc_settings',
array(
'type' => 'array',
'sanitize_callback' => array( __CLASS__, 'sanitize_settings' ),
'default' => self::defaults(),
)
);
}
public static function sanitize_settings( $input ) {
$input = is_array( $input ) ? $input : array();
$defaults = self::defaults();
$output = array(
'api_key' => sanitize_text_field( $input['api_key'] ?? '' ),
'api_base_url' => esc_url_raw( $input['api_base_url'] ?? $defaults['api_base_url'] ),
'language' => sanitize_text_field( $input['language'] ?? 'en-US' ),
'currency' => strtoupper( sanitize_text_field( $input['currency'] ?? 'USD' ) ),
'timeout' => max( 5, absint( $input['timeout'] ?? 20 ) ),
'default_post_status' => sanitize_key( $input['default_post_status'] ?? 'publish' ),
'hero_image' => esc_url_raw( $input['hero_image'] ?? '' ),
'hero_image_id' => absint( $input['hero_image_id'] ?? 0 ),
'single_hero_figure_id' => absint( $input['single_hero_figure_id'] ?? 0 ),
'hero_slides' => self::sanitize_id_list( $input['hero_slides'] ?? '' ),
'crawl_destinations' => self::sanitize_id_list( $input['crawl_destinations'] ?? '' ),
'rate_limit_per_minute' => max( 1, min( 60, absint( $input['rate_limit_per_minute'] ?? 25 ) ) ),
'products_per_page' => max( 1, min( 50, absint( $input['products_per_page'] ?? 50 ) ) ),
'pages_per_run' => max( 1, min( 100, absint( $input['pages_per_run'] ?? 10 ) ) ),
'fetch_full_detail' => ! empty( $input['fetch_full_detail'] ) ? 1 : 0,
'detail_batch_size' => max( 1, min( 25, absint( $input['detail_batch_size'] ?? 15 ) ) ),
'log_every' => max( 1, min( 1000, absint( $input['log_every'] ?? 10 ) ) ),
'automatic_sync' => ! empty( $input['automatic_sync'] ) ? 1 : 0,
'debug_logging' => ! empty( $input['debug_logging'] ) ? 1 : 0,
);
if ( ! in_array( $output['default_post_status'], array( 'publish', 'draft', 'pending' ), true ) ) {
$output['default_post_status'] = 'publish';
}
return $output;
}
public static function render_page() {
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
$options = wp_parse_args( vc_get_option( '', array() ), self::defaults() );
$notice = isset( $_GET['vc_notice'] ) ? sanitize_text_field( wp_unslash( $_GET['vc_notice'] ) ) : '';
$status = VC_Cron::status();
?>
<div class="wrap">
<h1><?php echo esc_html__( 'Viator Collector', 'viator-collector' ); ?></h1>
<?php if ( $notice ) : ?>
<div class="notice notice-info is-dismissible"><p><?php echo esc_html( $notice ); ?></p></div>
<?php endif; ?>
<h2><?php echo esc_html__( 'Sync status', 'viator-collector' ); ?></h2>
<table class="widefat striped" style="max-width:640px;margin-bottom:1.5em;">
<tbody>
<tr><td><?php echo esc_html__( 'State', 'viator-collector' ); ?></td><td><?php echo $status['in_progress'] ? esc_html__( 'Running', 'viator-collector' ) : esc_html__( 'Idle', 'viator-collector' ); ?></td></tr>
<tr><td><?php echo esc_html__( 'Destinations left in current run', 'viator-collector' ); ?></td><td><?php echo esc_html( (string) $status['queue_remaining'] ); ?></td></tr>
<tr><td><?php echo esc_html__( 'Last started', 'viator-collector' ); ?></td><td><?php echo esc_html( $status['started_at'] ? $status['started_at'] : '—' ); ?></td></tr>
<tr><td><?php echo esc_html__( 'Last completed', 'viator-collector' ); ?></td><td><?php echo esc_html( $status['completed_at'] ? $status['completed_at'] : '—' ); ?></td></tr>
<tr><td><?php echo esc_html__( 'Current run progress', 'viator-collector' ); ?></td><td><?php echo esc_html( wp_json_encode( $status['totals'] ) ); ?></td></tr>
<tr><td><?php echo esc_html__( 'Next automatic run', 'viator-collector' ); ?></td><td><?php echo esc_html( $status['next_scheduled'] ? gmdate( 'Y-m-d H:i:s', (int) $status['next_scheduled'] ) . ' UTC' : __( 'Not scheduled', 'viator-collector' ) ); ?></td></tr>
</tbody>
</table>
<form method="post" action="options.php">
<?php settings_fields( 'vc_settings_group' ); ?>
<table class="form-table" role="presentation">
<tr>
<th scope="row"><label for="vc_api_key"><?php echo esc_html__( 'API key', 'viator-collector' ); ?></label></th>
<td>
<input id="vc_api_key" type="password" class="regular-text" name="vc_settings[api_key]" value="<?php echo esc_attr( $options['api_key'] ); ?>" autocomplete="off">
<?php if ( defined( 'VIATOR_API_KEY' ) && VIATOR_API_KEY ) : ?>
<p class="description"><?php echo esc_html__( 'VIATOR_API_KEY is defined in wp-config.php and will be used instead.', 'viator-collector' ); ?></p>
<?php endif; ?>
</td>
</tr>
<tr><th scope="row"><label for="vc_api_base_url"><?php echo esc_html__( 'API base URL', 'viator-collector' ); ?></label></th><td><input id="vc_api_base_url" type="url" class="regular-text" name="vc_settings[api_base_url]" value="<?php echo esc_attr( $options['api_base_url'] ); ?>"></td></tr>
<tr><th scope="row"><label for="vc_language"><?php echo esc_html__( 'Language', 'viator-collector' ); ?></label></th><td><input id="vc_language" type="text" name="vc_settings[language]" value="<?php echo esc_attr( $options['language'] ); ?>"></td></tr>
<tr><th scope="row"><label for="vc_currency"><?php echo esc_html__( 'Currency', 'viator-collector' ); ?></label></th><td><input id="vc_currency" type="text" name="vc_settings[currency]" value="<?php echo esc_attr( $options['currency'] ); ?>" maxlength="3"></td></tr>
<tr><th scope="row"><label for="vc_timeout"><?php echo esc_html__( 'Timeout (seconds)', 'viator-collector' ); ?></label></th><td><input id="vc_timeout" type="number" min="5" name="vc_settings[timeout]" value="<?php echo esc_attr( $options['timeout'] ); ?>"></td></tr>
<tr>
<th scope="row"><label for="vc_default_post_status"><?php echo esc_html__( 'Default post status', 'viator-collector' ); ?></label></th>
<td>
<select id="vc_default_post_status" name="vc_settings[default_post_status]">
<?php foreach ( array( 'publish', 'draft', 'pending' ) as $post_status ) : ?>
<option value="<?php echo esc_attr( $post_status ); ?>" <?php selected( $options['default_post_status'], $post_status ); ?>><?php echo esc_html( ucfirst( $post_status ) ); ?></option>
<?php endforeach; ?>
</select>
<p class="description"><?php echo esc_html__( 'Deactivated products are always set to draft regardless of this setting.', 'viator-collector' ); ?></p>
</td>
</tr>
<tr>
<th scope="row"><label for="vc_hero_image"><?php echo esc_html__( 'Hero image', 'viator-collector' ); ?></label></th>
<td>
<input id="vc_hero_image" type="url" class="regular-text" name="vc_settings[hero_image]" value="<?php echo esc_attr( $options['hero_image'] ); ?>" placeholder="https://…">
<input id="vc_hero_image_id" type="hidden" name="vc_settings[hero_image_id]" value="<?php echo esc_attr( $options['hero_image_id'] ); ?>">
<button type="button" class="button" id="vc-hero-pick"><?php echo esc_html__( 'Select image', 'viator-collector' ); ?></button>
<button type="button" class="button" id="vc-hero-clear"><?php echo esc_html__( 'Clear', 'viator-collector' ); ?></button>
<p class="description"><?php echo esc_html__( 'Banner at the top of the tours listing / home hero. Pick from the Media Library so the browser gets responsive, device-sized images. Leave empty for a gradient. Destination pages use their own image when one is set.', 'viator-collector' ); ?></p>
<div id="vc-hero-preview" style="margin-top:8px;">
<?php if ( $options['hero_image'] ) : ?>
<img src="<?php echo esc_url( $options['hero_image'] ); ?>" alt="" style="max-width:320px;height:auto;border-radius:8px;">
<?php endif; ?>
</div>
<script>
jQuery(function ($) {
var frame;
$('#vc-hero-pick').on('click', function (e) {
e.preventDefault();
if (frame) { frame.open(); return; }
frame = wp.media({
title: <?php echo wp_json_encode( __( 'Select hero image', 'viator-collector' ) ); ?>,
button: { text: <?php echo wp_json_encode( __( 'Use this image', 'viator-collector' ) ); ?> },
library: { type: 'image' },
multiple: false
});
frame.on('select', function () {
var img = frame.state().get('selection').first().toJSON();
$('#vc_hero_image').val(img.url);
$('#vc_hero_image_id').val(img.id);
$('#vc-hero-preview').html($('<img>', { src: img.url, alt: '' }).css({ maxWidth: '320px', height: 'auto', borderRadius: '8px' }));
});
frame.open();
});
$('#vc-hero-clear').on('click', function (e) {
e.preventDefault();
$('#vc_hero_image').val('');
$('#vc_hero_image_id').val('');
$('#vc-hero-preview').empty();
});
});
</script>
</td>
</tr>
<tr>
<th scope="row"><label><?php echo esc_html__( 'Single tour hero figure', 'viator-collector' ); ?></label></th>
<td>
<input id="vc_single_figure_id" type="hidden" name="vc_settings[single_hero_figure_id]" value="<?php echo esc_attr( $options['single_hero_figure_id'] ); ?>">
<button type="button" class="button" id="vc-figure-pick"><?php echo esc_html__( 'Select image', 'viator-collector' ); ?></button>
<button type="button" class="button" id="vc-figure-clear"><?php echo esc_html__( 'Clear', 'viator-collector' ); ?></button>
<p class="description"><?php echo esc_html__( 'Optional decorative cut-out shown over the single-tour hero (e.g. a landmark PNG with a transparent background). Leave empty to hide it.', 'viator-collector' ); ?></p>
<div id="vc-figure-preview" style="margin-top:8px;">
<?php
if ( $options['single_hero_figure_id'] ) {
echo wp_get_attachment_image( (int) $options['single_hero_figure_id'], 'medium', false, array( 'style' => 'max-width:200px;height:auto;' ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
?>
</div>
<script>
jQuery(function ($) {
var frame;
$('#vc-figure-pick').on('click', function (e) {
e.preventDefault();
if (frame) { frame.open(); return; }
frame = wp.media({
title: <?php echo wp_json_encode( __( 'Select hero figure', 'viator-collector' ) ); ?>,
button: { text: <?php echo wp_json_encode( __( 'Use this image', 'viator-collector' ) ); ?> },
library: { type: 'image' },
multiple: false
});
frame.on('select', function () {
var img = frame.state().get('selection').first().toJSON();
$('#vc_single_figure_id').val(img.id);
var src = (img.sizes && img.sizes.medium) ? img.sizes.medium.url : img.url;
$('#vc-figure-preview').html($('<img>', { src: src, alt: '' }).css({ maxWidth: '200px', height: 'auto' }));
});
frame.open();
});
$('#vc-figure-clear').on('click', function (e) {
e.preventDefault();
$('#vc_single_figure_id').val('');
$('#vc-figure-preview').empty();
});
});
</script>
</td>
</tr>
<tr>
<th scope="row"><label for="vc_hero_slides"><?php echo esc_html__( 'Hero slider images', 'viator-collector' ); ?></label></th>
<td>
<input id="vc_hero_slides" type="hidden" name="vc_settings[hero_slides]" value="<?php echo esc_attr( $options['hero_slides'] ); ?>">
<button type="button" class="button" id="vc-slides-pick"><?php echo esc_html__( 'Select images', 'viator-collector' ); ?></button>
<button type="button" class="button" id="vc-slides-clear"><?php echo esc_html__( 'Clear', 'viator-collector' ); ?></button>
<p class="description">
<?php echo esc_html__( 'Slides for the [viator_hero_slider] shortcode. Drag is not supported — reselect to change the order.', 'viator-collector' ); ?>
</p>
<div id="vc-slides-preview" style="display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;">
<?php
$vc_slide_ids = array_filter( array_map( 'absint', explode( ',', (string) $options['hero_slides'] ) ) );
foreach ( $vc_slide_ids as $vc_slide_id ) {
echo wp_get_attachment_image( $vc_slide_id, 'thumbnail', false, array( 'style' => 'width:80px;height:60px;object-fit:cover;border-radius:6px;' ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
?>
</div>
<script>
jQuery(function ($) {
var frame;
function paint(list) {
var $p = $('#vc-slides-preview').empty();
list.forEach(function (item) {
$('<img>', { src: item.url }).css({
width: '80px', height: '60px', objectFit: 'cover', borderRadius: '6px'
}).appendTo($p);
});
}
$('#vc-slides-pick').on('click', function (e) {
e.preventDefault();
frame = wp.media({
title: <?php echo wp_json_encode( __( 'Select hero slides', 'viator-collector' ) ); ?>,
button: { text: <?php echo wp_json_encode( __( 'Use these images', 'viator-collector' ) ); ?> },
library: { type: 'image' },
multiple: 'add'
});
frame.on('select', function () {
var ids = [], list = [];
frame.state().get('selection').each(function (a) {
var j = a.toJSON();
ids.push(j.id);
list.push({ url: (j.sizes && j.sizes.thumbnail) ? j.sizes.thumbnail.url : j.url });
});
$('#vc_hero_slides').val(ids.join(','));
paint(list);
});
frame.open();
});
$('#vc-slides-clear').on('click', function (e) {
e.preventDefault();
$('#vc_hero_slides').val('');
$('#vc-slides-preview').empty();
});
});
</script>
</td>
</tr>
<tr>
<th scope="row"><label for="vc_crawl_destinations"><?php echo esc_html__( 'Destination filter', 'viator-collector' ); ?></label></th>
<td>
<input id="vc_crawl_destinations" type="text" class="large-text" name="vc_settings[crawl_destinations]" value="<?php echo esc_attr( $options['crawl_destinations'] ); ?>" placeholder="<?php echo esc_attr__( 'e.g. 664, 662, 761', 'viator-collector' ); ?>">
<p class="description"><?php echo esc_html__( 'Comma-separated Viator destination IDs to crawl. Leave empty to crawl the whole catalogue. Use the search below to find IDs. Used only when no cities are set on the Viator Structure screen.', 'viator-collector' ); ?></p>
<div class="vc-dest-finder" style="margin-top:8px;max-width:640px;">
<input type="search" id="vc-dest-search" class="regular-text" placeholder="<?php echo esc_attr__( 'Search destinations, e.g. Orlando', 'viator-collector' ); ?>">
<button type="button" class="button" id="vc-dest-search-btn"><?php echo esc_html__( 'Search', 'viator-collector' ); ?></button>
<div id="vc-dest-results" style="margin-top:8px;"></div>
</div>
<script>
(function(){
var btn=document.getElementById('vc-dest-search-btn'),
q=document.getElementById('vc-dest-search'),
out=document.getElementById('vc-dest-results'),
field=document.getElementById('vc_crawl_destinations'),
nonce=<?php echo wp_json_encode( wp_create_nonce( 'vc_search_destinations' ) ); ?>;
function addId(id){
var ids=field.value.split(',').map(function(s){return s.trim();}).filter(Boolean);
if(ids.indexOf(id)===-1){ids.push(id);} field.value=ids.join(', ');
}
function search(){
out.textContent='<?php echo esc_js( __( 'Searching…', 'viator-collector' ) ); ?>';
var d=new FormData();
d.append('action','vc_search_destinations');
d.append('_ajax_nonce',nonce);
d.append('q',q.value);
fetch(ajaxurl,{method:'POST',credentials:'same-origin',body:d})
.then(function(r){return r.json();})
.then(function(res){
if(!res||!res.success){out.textContent=(res&&res.data&&res.data.message)||'<?php echo esc_js( __( 'Search failed.', 'viator-collector' ) ); ?>';return;}
if(!res.data.results.length){out.textContent='<?php echo esc_js( __( 'No matches.', 'viator-collector' ) ); ?>';return;}
out.innerHTML='';
res.data.results.forEach(function(item){
var row=document.createElement('div');
row.style.cssText='display:flex;align-items:center;gap:8px;padding:3px 0;';
var b=document.createElement('button');
b.type='button';b.className='button button-small';b.textContent='<?php echo esc_js( __( 'Add', 'viator-collector' ) ); ?>';
b.addEventListener('click',function(){addId(item.id);});
var span=document.createElement('span');
span.textContent=item.name+' (ID '+item.id+')';
row.appendChild(b);row.appendChild(span);out.appendChild(row);
});
})
.catch(function(){out.textContent='<?php echo esc_js( __( 'Request failed.', 'viator-collector' ) ); ?>';});
}
btn.addEventListener('click',search);
q.addEventListener('keydown',function(e){if(e.key==='Enter'){e.preventDefault();search();}});
})();
</script>
</td>
</tr>
<tr><th scope="row"><label for="vc_rate_limit"><?php echo esc_html__( 'Max API requests per minute', 'viator-collector' ); ?></label></th><td><input id="vc_rate_limit" type="number" min="1" max="60" name="vc_settings[rate_limit_per_minute]" value="<?php echo esc_attr( $options['rate_limit_per_minute'] ); ?>"><p class="description"><?php echo esc_html__( 'Requests are throttled to stay under this limit. Viator Basic access allows 25.', 'viator-collector' ); ?></p></td></tr>
<tr><th scope="row"><label for="vc_products_per_page"><?php echo esc_html__( 'Products per search page', 'viator-collector' ); ?></label></th><td><input id="vc_products_per_page" type="number" min="1" max="50" name="vc_settings[products_per_page]" value="<?php echo esc_attr( $options['products_per_page'] ); ?>"><p class="description"><?php echo esc_html__( 'Maximum 50 (Viator limit). Lower this only if full detail is ON and ticks time out.', 'viator-collector' ); ?></p></td></tr>
<tr><th scope="row"><label for="vc_pages_per_run"><?php echo esc_html__( 'Search pages per tick', 'viator-collector' ); ?></label></th><td><input id="vc_pages_per_run" type="number" min="1" max="100" name="vc_settings[pages_per_run]" value="<?php echo esc_attr( $options['pages_per_run'] ); ?>"><p class="description"><?php echo esc_html__( 'How many search pages every background tick processes before scheduling the next. Lower values avoid PHP timeouts.', 'viator-collector' ); ?></p></td></tr>
<tr><th scope="row"><?php echo esc_html__( 'Fetch full detail during crawl', 'viator-collector' ); ?></th><td><label><input type="checkbox" name="vc_settings[fetch_full_detail]" value="1" <?php checked( $options['fetch_full_detail'], 1 ); ?>> <?php echo esc_html__( 'Call /products/{code} for every product while crawling.', 'viator-collector' ); ?></label><p class="description"><?php echo esc_html__( 'Leave OFF (recommended): the crawl stays fast (1 request per 50 products) and full detail (itinerary, inclusions, cancellation policy) is fetched and cached the first time each tour page is viewed. Turn ON only if you must have full detail for every product up front — far slower under the rate limit.', 'viator-collector' ); ?></p></td></tr>
<tr><th scope="row"><label for="vc_detail_batch_size"><?php echo esc_html__( 'Detail batch size per tick', 'viator-collector' ); ?></label></th><td><input id="vc_detail_batch_size" type="number" min="1" max="25" name="vc_settings[detail_batch_size]" value="<?php echo esc_attr( $options['detail_batch_size'] ); ?>"><p class="description"><?php echo esc_html__( 'Only used when full detail is ON. Products processed per cron minute. Lower this if ticks time out; raise it (up to ~20) to go faster, staying under your per-minute limit.', 'viator-collector' ); ?></p></td></tr>
<tr><th scope="row"><label for="vc_log_every"><?php echo esc_html__( 'Log progress every N products', 'viator-collector' ); ?></label></th><td><input id="vc_log_every" type="number" min="1" max="1000" name="vc_settings[log_every]" value="<?php echo esc_attr( $options['log_every'] ); ?>"><p class="description"><?php echo esc_html__( 'How often a progress line is written to the activity log below.', 'viator-collector' ); ?></p></td></tr>
<tr><th scope="row"><?php echo esc_html__( 'Automatic sync', 'viator-collector' ); ?></th><td><label><input type="checkbox" name="vc_settings[automatic_sync]" value="1" <?php checked( $options['automatic_sync'], 1 ); ?>> <?php echo esc_html__( 'Refresh the catalogue every 24 hours', 'viator-collector' ); ?></label></td></tr>
<tr><th scope="row"><?php echo esc_html__( 'Debug logging', 'viator-collector' ); ?></th><td><label><input type="checkbox" name="vc_settings[debug_logging]" value="1" <?php checked( $options['debug_logging'], 1 ); ?>> <?php echo esc_html__( 'Enable debug logging', 'viator-collector' ); ?></label></td></tr>
</table>
<?php submit_button(); ?>
</form>
<hr>
<h2><?php echo esc_html__( 'Manual actions', 'viator-collector' ); ?></h2>
<form method="post" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>" style="display:inline-block;margin-right:1em;">
<input type="hidden" name="action" value="vc_test_api">
<?php wp_nonce_field( 'vc_test_api' ); ?>
<?php submit_button( __( 'Test API connection', 'viator-collector' ), 'secondary', 'submit', false ); ?>
</form>
<form method="post" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>" style="display:inline-block;margin-right:1em;">
<input type="hidden" name="action" value="vc_manual_sync">
<?php wp_nonce_field( 'vc_manual_sync' ); ?>
<?php submit_button( __( 'Run sync now', 'viator-collector' ), 'primary', 'submit', false ); ?>
</form>
<form method="post" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>" style="display:inline-block;" onsubmit="return confirm('<?php echo esc_js( __( 'Reset ingestion progress and start a full crawl on the next run?', 'viator-collector' ) ); ?>');">
<input type="hidden" name="action" value="vc_reset_sync">
<?php wp_nonce_field( 'vc_reset_sync' ); ?>
<?php submit_button( __( 'Reset ingestion', 'viator-collector' ), 'delete', 'submit', false ); ?>
</form>
<form method="post" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>" style="display:inline-block;margin-left:1em;" onsubmit="return confirm('<?php echo esc_js( __( 'This permanently deletes ALL imported tours, destination/tag terms, and sync data. Your settings are kept. Continue?', 'viator-collector' ) ); ?>');">
<input type="hidden" name="action" value="vc_delete_all">
<?php wp_nonce_field( 'vc_delete_all' ); ?>
<?php submit_button( __( 'Delete all imported data', 'viator-collector' ), 'delete', 'submit', false ); ?>
<p class="description"><?php echo esc_html__( 'Removes every tour and term this plugin created. Settings (API key, destination filter) are preserved.', 'viator-collector' ); ?></p>
</form>
<hr>
<h2><?php echo esc_html__( 'Import a single product', 'viator-collector' ); ?></h2>
<form method="post" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>">
<input type="hidden" name="action" value="vc_import_product">
<?php wp_nonce_field( 'vc_import_product' ); ?>
<label for="vc_product_code"><?php echo esc_html__( 'Viator product code', 'viator-collector' ); ?></label>
<input id="vc_product_code" type="text" name="product_code" required>
<?php submit_button( __( 'Import product', 'viator-collector' ), 'secondary', 'submit', false ); ?>
</form>
<hr>
<h2><?php echo esc_html__( 'Activity log', 'viator-collector' ); ?></h2>
<?php $log = VC_Logger::get_log(); ?>
<form method="post" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>" style="margin-bottom:1em;">
<input type="hidden" name="action" value="vc_clear_log">
<?php wp_nonce_field( 'vc_clear_log' ); ?>
<?php submit_button( __( 'Clear log', 'viator-collector' ), 'secondary', 'submit', false ); ?>
</form>
<?php if ( empty( $log ) ) : ?>
<p><?php echo esc_html__( 'No activity recorded yet.', 'viator-collector' ); ?></p>
<?php else : ?>
<table class="widefat striped" style="max-width:900px;">
<thead>
<tr>
<th style="width:160px;"><?php echo esc_html__( 'Time', 'viator-collector' ); ?></th>
<th style="width:70px;"><?php echo esc_html__( 'Level', 'viator-collector' ); ?></th>
<th><?php echo esc_html__( 'Message', 'viator-collector' ); ?></th>
</tr>
</thead>
<tbody>
<?php foreach ( $log as $entry ) : ?>
<?php $is_error = isset( $entry['level'] ) && 'error' === $entry['level']; ?>
<tr>
<td><?php echo esc_html( isset( $entry['t'] ) ? $entry['t'] : '' ); ?></td>
<td><span style="font-weight:600;color:<?php echo $is_error ? '#b32d2e' : '#2271b1'; ?>;"><?php echo $is_error ? esc_html__( 'ERROR', 'viator-collector' ) : esc_html__( 'INFO', 'viator-collector' ); ?></span></td>
<td><?php echo esc_html( isset( $entry['msg'] ) ? $entry['msg'] : '' ); ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php endif; ?>
</div>
<?php
}
public static function handle_test_api() {
self::verify_action( 'vc_test_api' );
$result = ( new VC_API() )->get_destinations();
if ( is_wp_error( $result ) ) {
VC_Logger::error( 'API test failed: ' . $result->get_error_message() );
self::redirect_notice( $result->get_error_message() );
}
VC_Logger::info( 'API test connection successful.' );
self::redirect_notice( __( 'API connection successful.', 'viator-collector' ) );
}
public static function handle_manual_sync() {
self::verify_action( 'vc_manual_sync' );
VC_Cron::run();
$totals = get_option( 'vc_ingest_totals', array() );
if ( get_option( 'vc_ingest_in_progress' ) ) {
self::redirect_notice( sprintf(
/* translators: %s: JSON progress counts. */
__( 'Sync started and continues in the background. Progress so far: %s', 'viator-collector' ),
wp_json_encode( $totals )
) );
}
self::redirect_notice( sprintf(
/* translators: %s: JSON result counts. */
__( 'Sync complete. Result: %s', 'viator-collector' ),
wp_json_encode( get_option( 'vc_last_sync_totals', $totals ) )
) );
}
public static function handle_reset_sync() {
self::verify_action( 'vc_reset_sync' );
VC_Cron::reset();
self::redirect_notice( __( 'Ingestion progress reset. The next run will crawl the full catalogue.', 'viator-collector' ) );
}
public static function handle_clear_log() {
self::verify_action( 'vc_clear_log' );
VC_Logger::clear_log();
self::redirect_notice( __( 'Activity log cleared.', 'viator-collector' ) );
}
/**
* Delete every imported tour, all plugin taxonomy terms, and sync/log
* state. Plugin settings (API key, filter, etc.) are kept.
*/
public static function handle_delete_all() {
self::verify_action( 'vc_delete_all' );
global $wpdb;
// Stop and clear any in-progress run first.
VC_Cron::reset();
// Tour posts + their meta + term links.
$ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_type = %s", 'viator_tour' ) );
if ( ! empty( $ids ) ) {
$in = implode( ',', array_map( 'intval', $ids ) );
$wpdb->query( "DELETE FROM {$wpdb->postmeta} WHERE post_id IN ($in)" ); // phpcs:ignore WordPress.DB.PreparedSQL
$wpdb->query( "DELETE FROM {$wpdb->term_relationships} WHERE object_id IN ($in)" ); // phpcs:ignore WordPress.DB.PreparedSQL
$wpdb->query( "DELETE FROM {$wpdb->posts} WHERE ID IN ($in)" ); // phpcs:ignore WordPress.DB.PreparedSQL
}
// Plugin taxonomy terms (WP API is safe; counts are small).
foreach ( array( 'viator_destination', 'viator_tag', 'viator_category' ) as $taxonomy ) {
$terms = get_terms( array( 'taxonomy' => $taxonomy, 'hide_empty' => false, 'fields' => 'ids' ) );
if ( ! is_wp_error( $terms ) ) {
foreach ( $terms as $term_id ) {
wp_delete_term( (int) $term_id, $taxonomy );
}
}
}
// Sync state, logs, transients — but keep the saved settings.
$wpdb->query( "DELETE FROM {$wpdb->options} WHERE ( option_name LIKE 'vc\\_%' AND option_name <> 'vc_settings' ) OR option_name LIKE '\\_transient\\_vc\\_%' OR option_name LIKE '\\_transient\\_timeout\\_vc\\_%'" ); // phpcs:ignore WordPress.DB.PreparedSQL
wp_cache_flush();
$count = is_array( $ids ) ? count( $ids ) : 0;
self::redirect_notice( sprintf(
/* translators: %d: number of deleted tours. */
__( 'Deleted %d tours and all imported data. Your settings were kept.', 'viator-collector' ),
$count
) );
}
public static function handle_import_product() {
self::verify_action( 'vc_import_product' );
$product_code = isset( $_POST['product_code'] ) ? sanitize_text_field( wp_unslash( $_POST['product_code'] ) ) : '';
$result = ( new VC_Importer() )->import_product_by_code( $product_code );
if ( is_wp_error( $result ) ) {
VC_Logger::error( 'Manual product import failed (' . $product_code . '): ' . $result->get_error_message() );
self::redirect_notice( $result->get_error_message() );
}
VC_Logger::info( 'Manual product import succeeded: ' . $product_code );
self::redirect_notice( __( 'Product imported successfully.', 'viator-collector' ) );
}
private static function verify_action( $nonce_action ) {
if ( ! current_user_can( 'manage_options' ) ) {
wp_die( esc_html__( 'You do not have permission to perform this action.', 'viator-collector' ) );
}
check_admin_referer( $nonce_action );
}
private static function redirect_notice( $message ) {
wp_safe_redirect(
add_query_arg(
array(
'page' => 'viator-collector',
'vc_notice' => rawurlencode( sanitize_text_field( $message ) ),
),
admin_url( 'options-general.php' )
)
);
exit;
}
}

View File

@@ -0,0 +1,475 @@
<?php
defined( 'ABSPATH' ) || exit;
/**
* Settings → Viator Structure: the client's region → city tree. Cities can
* only be picked from Viator's destination list, and a save that fails
* VC_Structure::validate() is rejected as a whole (the draft is kept so the
* admin can fix it).
*/
class VC_Structure_Admin {
const PAGE = 'viator-collector-structure';
private static $sync_errors = array();
public static function init() {
add_action( 'admin_menu', array( __CLASS__, 'admin_menu' ) );
add_action( 'admin_post_vc_save_structure', array( __CLASS__, 'handle_save' ) );
add_action( 'admin_enqueue_scripts', array( __CLASS__, 'admin_assets' ) );
add_action( 'admin_notices', array( __CLASS__, 'page_clash_notice' ) );
}
public static function admin_menu() {
add_options_page(
__( 'Viator Structure', 'viator-collector' ),
__( 'Viator Structure', 'viator-collector' ),
'manage_options',
self::PAGE,
array( __CLASS__, 'render_page' )
);
}
public static function admin_assets( $hook ) {
if ( 'settings_page_' . self::PAGE !== $hook ) {
return;
}
wp_enqueue_script( 'vc-structure-admin', VC_PLUGIN_URL . 'assets/js/vc-structure-admin.js', array(), VC_VERSION, true );
wp_localize_script(
'vc-structure-admin',
'vcStructure',
array(
'ajaxUrl' => admin_url( 'admin-ajax.php' ),
'nonce' => wp_create_nonce( 'vc_search_destinations' ),
'i18n' => array(
'searching' => __( 'Searching…', 'viator-collector' ),
'noMatches' => __( 'No matches.', 'viator-collector' ),
'failed' => __( 'Search failed.', 'viator-collector' ),
'add' => __( 'Add', 'viator-collector' ),
'used' => __( 'Already added', 'viator-collector' ),
'confirm' => __( 'Remove this region and all its cities from the structure?', 'viator-collector' ),
'confirmEmpty' => __( 'Save with no regions at all? Every region and city URL will stop working.', 'viator-collector' ),
),
)
);
}
private static function draft_key() {
return 'vc_structure_draft_' . get_current_user_id();
}
public static function render_page() {
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
$draft = get_transient( self::draft_key() );
$errors = array();
$structure = VC_Structure::get();
if ( is_array( $draft ) ) {
delete_transient( self::draft_key() );
$errors = (array) $draft['errors'];
$structure = (array) $draft['structure'];
}
$warnings = get_transient( self::warnings_key() );
$warnings = is_array( $warnings ) ? $warnings : array();
if ( $warnings ) {
delete_transient( self::warnings_key() );
}
$notice = isset( $_GET['vc_notice'] ) ? sanitize_text_field( wp_unslash( $_GET['vc_notice'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification
?>
<div class="wrap">
<h1><?php echo esc_html__( 'Viator Structure', 'viator-collector' ); ?></h1>
<p><?php echo esc_html__( 'Regions appear in the header menu and at /{region}/. Each city is a Viator destination: its tours are imported automatically and listed at /{city}/, with tour pages at /{city}/{tour}/.', 'viator-collector' ); ?></p>
<?php if ( $notice ) : ?>
<div class="notice <?php echo $warnings ? 'notice-warning' : 'notice-success'; ?> is-dismissible"><p><?php echo esc_html( $notice ); ?></p></div>
<?php endif; ?>
<?php if ( $warnings ) : ?>
<div class="notice notice-warning">
<ul style="list-style:disc;margin-left:20px;">
<?php foreach ( $warnings as $warning ) : ?>
<li><?php echo esc_html( $warning ); ?></li>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>
<?php if ( $errors ) : ?>
<div class="notice notice-error">
<p><strong><?php echo esc_html__( 'Nothing was saved. Please fix these problems:', 'viator-collector' ); ?></strong></p>
<ul style="list-style:disc;margin-left:20px;">
<?php foreach ( $errors as $error ) : ?>
<li><?php echo esc_html( $error ); ?></li>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>
<style>
.vc-region{background:#fff;border:1px solid #c3c4c7;border-radius:6px;padding:12px 16px;margin:0 0 16px;max-width:900px}
.vc-region__head{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.vc-region__head .vc-tools{margin-left:auto}
.vc-cities{margin:12px 0;width:100%}
.vc-cities td{padding:4px 8px 4px 0;vertical-align:middle}
.vc-city-search{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.vc-results{width:100%}
.vc-results div{display:flex;gap:8px;align-items:center;padding:2px 0}
.vc-slug-prefix{color:#646970}
</style>
<form method="post" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>" id="vc-structure-form">
<input type="hidden" name="action" value="vc_save_structure">
<?php wp_nonce_field( 'vc_save_structure' ); ?>
<div id="vc-regions">
<?php
foreach ( $structure as $region ) {
self::render_region( $region );
}
?>
</div>
<p><button type="button" class="button" id="vc-add-region"><?php echo esc_html__( 'Add region', 'viator-collector' ); ?></button></p>
<?php submit_button( __( 'Save structure', 'viator-collector' ) ); ?>
</form>
<template id="vc-tpl-region"><?php self::render_region( array( 'name' => '', 'slug' => '', 'term_id' => 0, 'cities' => array() ) ); ?></template>
<template id="vc-tpl-city"><?php self::render_city( array( 'id' => '', 'name' => '', 'slug' => '' ) ); ?></template>
</div>
<?php
}
/**
* Inputs carry data-f (field) only; the script assigns indexed names on
* submit so reordering never leaves gaps.
*/
private static function render_region( array $region ) {
?>
<div class="vc-region">
<div class="vc-region__head">
<label><?php echo esc_html__( 'Region', 'viator-collector' ); ?>
<input type="text" data-f="name" value="<?php echo esc_attr( $region['name'] ); ?>" required>
</label>
<label><span class="vc-slug-prefix">/</span><input type="text" data-f="slug" value="<?php echo esc_attr( $region['slug'] ); ?>" pattern="[a-z0-9]+(-[a-z0-9]+)*" placeholder="europe">/</label>
<input type="hidden" data-f="term_id" value="<?php echo esc_attr( (string) (int) $region['term_id'] ); ?>">
<span class="vc-tools">
<button type="button" class="button button-small" data-act="up" aria-label="<?php echo esc_attr__( 'Move up', 'viator-collector' ); ?>">↑</button>
<button type="button" class="button button-small" data-act="down" aria-label="<?php echo esc_attr__( 'Move down', 'viator-collector' ); ?>">↓</button>
<button type="button" class="button button-small button-link-delete" data-act="remove-region"><?php echo esc_html__( 'Remove region', 'viator-collector' ); ?></button>
</span>
</div>
<table class="vc-cities"><tbody>
<?php
foreach ( $region['cities'] as $city ) {
self::render_city( $city );
}
?>
</tbody></table>
<div class="vc-city-search">
<input type="search" class="regular-text" placeholder="<?php echo esc_attr__( 'Find a Viator city, e.g. Amsterdam', 'viator-collector' ); ?>">
<button type="button" class="button" data-act="search"><?php echo esc_html__( 'Search', 'viator-collector' ); ?></button>
<div class="vc-results"></div>
</div>
</div>
<?php
}
private static function render_city( array $city ) {
?>
<tr class="vc-city">
<td>
<strong class="vc-city__name"><?php echo esc_html( $city['name'] ); ?></strong>
<span class="description">(ID <span class="vc-city__id"><?php echo esc_html( $city['id'] ); ?></span>)</span>
<input type="hidden" data-f="id" value="<?php echo esc_attr( $city['id'] ); ?>">
<input type="hidden" data-f="name" value="<?php echo esc_attr( $city['name'] ); ?>">
</td>
<td><span class="vc-slug-prefix">/</span><input type="text" data-f="slug" value="<?php echo esc_attr( $city['slug'] ); ?>" pattern="[a-z0-9]+(-[a-z0-9]+)*" required>/</td>
<td>
<button type="button" class="button button-small" data-act="up" aria-label="<?php echo esc_attr__( 'Move up', 'viator-collector' ); ?>">↑</button>
<button type="button" class="button button-small" data-act="down" aria-label="<?php echo esc_attr__( 'Move down', 'viator-collector' ); ?>">↓</button>
<button type="button" class="button button-small button-link-delete" data-act="remove-city"><?php echo esc_html__( 'Remove', 'viator-collector' ); ?></button>
</td>
</tr>
<?php
}
public static function handle_save() {
if ( ! current_user_can( 'manage_options' ) ) {
wp_die( esc_html__( 'You do not have permission to perform this action.', 'viator-collector' ) );
}
check_admin_referer( 'vc_save_structure' );
$raw = isset( $_POST['vc_structure'] ) && is_array( $_POST['vc_structure'] ) ? wp_unslash( $_POST['vc_structure'] ) : array(); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- normalized + validated below.
$structure = VC_Structure::normalize( $raw );
foreach ( $structure as &$region ) {
$region['name'] = sanitize_text_field( $region['name'] );
foreach ( $region['cities'] as &$city ) {
$city['name'] = sanitize_text_field( $city['name'] );
}
unset( $city );
}
unset( $region );
$map = ( new VC_API() )->get_destination_map();
if ( empty( $_POST['vc_structure_present'] ) ) {
$errors = array( __( 'The structure editor did not load correctly, so nothing was saved. Reload the page and try again.', 'viator-collector' ) );
} elseif ( ! $structure && empty( $_POST['vc_confirm_empty'] ) ) {
$errors = array( __( 'Saving an empty structure needs confirmation; nothing was saved.', 'viator-collector' ) );
} elseif ( is_wp_error( $map ) ) {
$errors = array( __( 'Could not load Viator destinations; nothing was saved.', 'viator-collector' ) );
} else {
$errors = VC_Structure::validate( $structure, (array) $map, self::taken_slugs( $structure ) );
// Names always come from Viator, never from the form.
foreach ( $structure as &$region ) {
foreach ( $region['cities'] as &$city ) {
if ( isset( $map[ $city['id'] ] ) ) {
$city['name'] = $map[ $city['id'] ];
}
}
unset( $city );
}
unset( $region );
}
if ( $errors ) {
set_transient(
self::draft_key(),
array(
'errors' => $errors,
// Without the editor's fields there is no draft worth keeping.
'structure' => empty( $_POST['vc_structure_present'] ) ? VC_Structure::get() : $structure,
),
10 * MINUTE_IN_SECONDS
);
self::redirect();
}
self::$sync_errors = array();
$structure = self::sync_terms( VC_Structure::get(), $structure );
update_option( VC_Structure::OPTION, $structure );
VC_Structure::flush_cache();
update_option( 'vc_flush_rewrite', 1 );
VC_Logger::info( sprintf( 'Structure saved: %d regions, %d cities.', count( $structure ), count( VC_Structure::cities( $structure ) ) ) );
if ( self::$sync_errors ) {
set_transient( self::warnings_key(), self::$sync_errors, 10 * MINUTE_IN_SECONDS );
self::redirect( __( 'Structure saved, but some pages could not be set up (see below).', 'viator-collector' ) );
}
self::redirect( __( 'Structure saved.', 'viator-collector' ) );
}
private static function warnings_key() {
return 'vc_structure_warnings_' . get_current_user_id();
}
/**
* Record a term-sync failure: logged, and shown to the admin after save.
*/
private static function sync_error( $message ) {
VC_Logger::error( 'Structure: ' . $message );
self::$sync_errors[] = $message;
}
private static function redirect( $notice = '' ) {
$args = array( 'page' => self::PAGE );
if ( '' !== $notice ) {
$args['vc_notice'] = rawurlencode( $notice );
}
wp_safe_redirect( add_query_arg( $args, admin_url( 'options-general.php' ) ) );
exit;
}
/**
* Slugs (from this structure) already owned by something outside it:
* slug => human label.
*/
public static function taken_slugs( array $structure ) {
global $wpdb;
$slugs = array();
foreach ( $structure as $region ) {
$slugs[] = $region['slug'];
}
$cities = VC_Structure::cities( $structure );
foreach ( $cities as $city ) {
$slugs[] = $city['slug'];
}
$slugs = array_values( array_filter( array_unique( $slugs ) ) );
if ( ! $slugs ) {
return array();
}
$taken = array();
$types = array_diff( get_post_types( array( 'public' => true ) ), array( 'attachment', 'viator_tour' ) );
if ( $types ) {
$slug_in = implode( ',', array_fill( 0, count( $slugs ), '%s' ) );
$type_in = implode( ',', array_fill( 0, count( $types ), '%s' ) );
// phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared,WordPress.DB.DirectDatabaseQuery
$rows = $wpdb->get_results( $wpdb->prepare( "SELECT post_name, post_title, post_type, post_parent FROM {$wpdb->posts} WHERE post_name IN ($slug_in) AND post_type IN ($type_in) AND post_status NOT IN ('trash','auto-draft','inherit')", array_merge( $slugs, array_values( $types ) ) ) );
foreach ( (array) $rows as $row ) {
if ( 'page' === $row->post_type && (int) $row->post_parent ) {
continue; // Child pages live under their parent's path.
}
$label = 'page' === $row->post_type ? 'page "%s"' : 'post "%s"';
$taken[ $row->post_name ] = sprintf( $label, $row->post_title );
}
}
// Destination terms that the structure does not own.
$region_ids = array_filter( array_map( 'intval', array_column( $structure, 'term_id' ) ) );
// A new region (no term yet) adopts an existing term with its slug.
$adoptable = array();
foreach ( $structure as $region ) {
if ( ! (int) $region['term_id'] ) {
$adoptable[] = $region['slug'];
}
}
$terms = get_terms(
array(
'taxonomy' => 'viator_destination',
'slug' => $slugs,
'hide_empty' => false,
)
);
foreach ( is_wp_error( $terms ) ? array() : $terms as $term ) {
if ( in_array( (int) $term->term_id, $region_ids, true ) || in_array( $term->slug, $adoptable, true ) ) {
continue;
}
$viator_id = (string) get_term_meta( $term->term_id, '_vc_viator_destination_id', true );
if ( '' !== $viator_id && isset( $cities[ $viator_id ] ) ) {
continue;
}
$taken[ $term->slug ] = sprintf( 'destination "%s"', $term->name );
}
return $taken;
}
/**
* Mirror the structure into viator_destination terms: regions are
* top-level terms flagged _vc_region, cities are re-parented under them.
* Products are never touched.
*
* @return array $new with every region's term_id filled in.
*/
public static function sync_terms( array $old, array $new ) {
$tax = 'viator_destination';
foreach ( $new as &$region ) {
$term_id = (int) $region['term_id'];
if ( $term_id && ! get_term( $term_id, $tax ) ) {
$term_id = 0;
}
if ( ! $term_id ) {
$existing = get_term_by( 'slug', $region['slug'], $tax );
$term_id = $existing ? (int) $existing->term_id : 0;
}
if ( $term_id ) {
$result = wp_update_term(
$term_id,
$tax,
array(
'name' => $region['name'],
'slug' => $region['slug'],
'parent' => 0,
)
);
} else {
$result = wp_insert_term( $region['name'], $tax, array( 'slug' => $region['slug'] ) );
}
if ( is_wp_error( $result ) ) {
self::sync_error( 'region "' . $region['name'] . '": ' . $result->get_error_message() );
continue;
}
$region['term_id'] = (int) $result['term_id'];
update_term_meta( $region['term_id'], '_vc_region', 1 );
foreach ( $region['cities'] as $city ) {
$city_term = VC_Taxonomies::get_or_create_destination_by_id( $city['id'], $city['name'] );
if ( ! $city_term ) {
self::sync_error( 'could not create the page for city ' . $city['id'] );
continue;
}
$result = wp_update_term(
$city_term,
$tax,
array(
'slug' => $city['slug'],
'parent' => $region['term_id'],
)
);
if ( is_wp_error( $result ) ) {
self::sync_error( 'city "' . $city['name'] . '": ' . $result->get_error_message() );
}
}
}
unset( $region );
// Regions that were removed: delete our own terms; an adopted Viator
// destination term just loses its region flag (it may carry products).
$kept = array_map( 'intval', array_column( $new, 'term_id' ) );
foreach ( $old as $region ) {
$term_id = (int) $region['term_id'];
if ( ! $term_id || in_array( $term_id, $kept, true ) ) {
continue;
}
if ( '' !== (string) get_term_meta( $term_id, '_vc_viator_destination_id', true ) ) {
delete_term_meta( $term_id, '_vc_region' );
} else {
wp_delete_term( $term_id, $tax );
}
}
// Cities that were removed go back to the top level.
$new_cities = VC_Structure::cities( $new );
foreach ( array_keys( VC_Structure::cities( $old ) ) as $id ) {
if ( isset( $new_cities[ (string) $id ] ) ) {
continue;
}
$found = get_terms(
array(
'taxonomy' => $tax,
'hide_empty' => false,
'number' => 1,
'meta_query' => array( // phpcs:ignore WordPress.DB.SlowDBQuery
array(
'key' => '_vc_viator_destination_id',
'value' => (string) $id,
),
),
)
);
if ( ! is_wp_error( $found ) && $found ) {
wp_update_term( $found[0]->term_id, $tax, array( 'parent' => 0 ) );
}
}
return $new;
}
/**
* WordPress does not stop a Page from taking a region/city slug, so warn.
*/
public static function page_clash_notice() {
$screen = function_exists( 'get_current_screen' ) ? get_current_screen() : null;
if ( ! $screen || 'post' !== $screen->base || 'page' !== $screen->post_type ) {
return;
}
$post = get_post();
if ( ! $post || '' === $post->post_name || $post->post_parent ) {
return;
}
$structure = VC_Structure::get();
$owner = '';
foreach ( $structure as $region ) {
if ( $region['slug'] === $post->post_name ) {
$owner = $region['name'];
}
}
foreach ( VC_Structure::cities( $structure ) as $city ) {
if ( $city['slug'] === $post->post_name ) {
$owner = $city['name'];
}
}
if ( '' === $owner ) {
return;
}
echo '<div class="notice notice-warning"><p>' . esc_html( sprintf( __( 'This page\'s URL is also used by the Viator region/city "%s"; the Viator page will take priority.', 'viator-collector' ), $owner ) ) . '</p></div>';
}
}

View File

@@ -0,0 +1,221 @@
<?php
defined( 'ABSPATH' ) || exit;
/**
* The client-managed region → city structure behind the /{region}/,
* /{city}/ and /{city}/{product}/ URLs.
*
* Everything here except get() is plain PHP so it can be unit-tested
* without WordPress (see tests/run.php).
*
* Shape: list of regions, each
* array( 'name', 'slug', 'term_id', 'cities' => list of array( 'id', 'name', 'slug' ) )
* where a city's 'id' is its Viator destination id.
*/
class VC_Structure {
const OPTION = 'vc_structure';
private static $cache = null;
public static function default_regions() {
$regions = array(
'uk' => 'UK',
'europe' => 'Europe',
'asia' => 'Asia',
'middle-east-and-africa' => 'Middle East and Africa',
'americas' => 'Americas',
'australasia' => 'Australasia',
);
$out = array();
foreach ( $regions as $slug => $name ) {
$out[] = array(
'name' => $name,
'slug' => $slug,
'term_id' => 0,
'cities' => array(),
);
}
return $out;
}
public static function get() {
if ( null === self::$cache ) {
$value = get_option( self::OPTION, self::default_regions() );
self::$cache = is_array( $value ) ? $value : self::default_regions();
}
return self::$cache;
}
/**
* Drop the per-request cache (after the option is saved).
*/
public static function flush_cache() {
self::$cache = null;
}
public static function slugify( $s ) {
$s = strtolower( (string) $s );
$s = preg_replace( '/[^a-z0-9]+/', '-', $s );
return trim( $s, '-' );
}
/**
* Shape submitted form data into the structure. Admin-typed slugs are only
* trimmed/lowercased here — validate() rejects anything still invalid
* rather than silently rewriting it.
*/
public static function normalize( array $raw ) {
$out = array();
foreach ( $raw as $region ) {
if ( ! is_array( $region ) ) {
continue;
}
$name = trim( (string) ( $region['name'] ?? '' ) );
$slug = strtolower( trim( (string) ( $region['slug'] ?? '' ) ) );
$cities = array();
foreach ( (array) ( $region['cities'] ?? array() ) as $city ) {
$id = trim( (string) ( is_array( $city ) ? ( $city['id'] ?? '' ) : '' ) );
if ( '' === $id ) {
continue;
}
$city_name = trim( (string) ( $city['name'] ?? '' ) );
$city_slug = strtolower( trim( (string) ( $city['slug'] ?? '' ) ) );
$cities[] = array(
'id' => $id,
'name' => $city_name,
'slug' => '' !== $city_slug ? $city_slug : self::slugify( $city_name ),
);
}
$out[] = array(
'name' => $name,
'slug' => '' !== $slug ? $slug : self::slugify( $name ),
'term_id' => (int) ( $region['term_id'] ?? 0 ),
'cities' => $cities,
);
}
return $out;
}
public static function reserved_slugs() {
return array( 'wp-admin', 'wp-content', 'wp-includes', 'wp-json', 'feed', 'page', 'search', 'tag', 'category', 'author', 'tours', 'tour-destination', 'tour-tag', 'tour-category', 'blog', 'about', 'contact', 'faq', 'embed', 'attachment' );
}
/**
* @param array $destination_map Viator destination id => name.
* @param array $taken slug => label, for slugs owned outside the structure.
* @return string[] Errors; empty when valid.
*/
public static function validate( array $structure, array $destination_map, array $taken ) {
$errors = array();
$slugs = array();
$city_ids = array();
foreach ( $structure as $i => $region ) {
if ( '' === trim( (string) $region['name'] ) ) {
$errors[] = sprintf( 'Region %d has no name.', $i + 1 );
}
$slugs[] = (string) $region['slug'];
foreach ( $region['cities'] as $city ) {
$id = (string) $city['id'];
if ( ! isset( $destination_map[ $id ] ) ) {
$errors[] = sprintf( 'City ID %s is not a Viator destination.', $id );
}
if ( isset( $city_ids[ $id ] ) ) {
$errors[] = sprintf( '%s is listed more than once.', '' !== $city['name'] ? $city['name'] : $id );
}
$city_ids[ $id ] = true;
$slugs[] = (string) $city['slug'];
}
}
$reserved = self::reserved_slugs();
foreach ( array_count_values( $slugs ) as $slug => $count ) {
$slug = (string) $slug;
if ( ! preg_match( '/^[a-z0-9]+(?:-[a-z0-9]+)*$/', $slug ) ) {
$errors[] = sprintf( 'Slug "%s" is invalid: use only a-z, 0-9 and -.', $slug );
continue;
}
if ( in_array( $slug, $reserved, true ) ) {
$errors[] = sprintf( 'Slug "%s" is reserved.', $slug );
}
if ( $count > 1 ) {
$errors[] = sprintf( 'Slug "%s" is used more than once.', $slug );
}
if ( isset( $taken[ $slug ] ) ) {
$errors[] = sprintf( 'Slug "%s" is already used by %s.', $slug, $taken[ $slug ] );
}
}
return array_values( array_unique( $errors ) );
}
/**
* Configured cities in settings order: viator id => city + 'region' slug.
*/
public static function cities( array $structure ) {
$out = array();
foreach ( $structure as $region ) {
foreach ( $region['cities'] as $city ) {
$out[ (string) $city['id'] ] = $city + array( 'region' => $region['slug'] );
}
}
return $out;
}
/**
* The city a product's URL lives under: its Viator primary destination
* when configured, else the first configured city it belongs to, else ''.
*/
public static function canonical_city( array $structure, array $dest_ids, $primary_id ) {
$cities = self::cities( $structure );
if ( '' !== (string) $primary_id && isset( $cities[ (string) $primary_id ] ) ) {
return $cities[ (string) $primary_id ]['slug'];
}
$dest_ids = array_map( 'strval', $dest_ids );
foreach ( $cities as $id => $city ) {
if ( in_array( (string) $id, $dest_ids, true ) ) {
return $city['slug'];
}
}
return '';
}
public static function primary_destination_id( array $destinations ) {
foreach ( $destinations as $destination ) {
if ( is_array( $destination ) && ! empty( $destination['primary'] ) ) {
$ref = $destination['ref'] ?? ( $destination['destinationId'] ?? '' );
return (string) $ref;
}
}
return '';
}
/**
* Explicit per-slug rules (no catch-alls), regions first, then cities.
* Only regions synced to a term (term_id set) are routed, so the unsaved
* presets never claim /europe/ etc. over existing pages. Archives get a
* /page/N/ rule because core's redirect_canonical turns ?paged=N into it.
*/
public static function rewrite_rules( array $structure ) {
$synced = array_values(
array_filter(
$structure,
function ( $region ) {
return (int) $region['term_id'] > 0;
}
)
);
$rules = array();
foreach ( $synced as $region ) {
$rules[ '^' . $region['slug'] . '/page/([0-9]+)/?$' ] = 'index.php?viator_destination=' . $region['slug'] . '&paged=$matches[1]';
$rules[ '^' . $region['slug'] . '/?$' ] = 'index.php?viator_destination=' . $region['slug'];
}
foreach ( self::cities( $synced ) as $city ) {
$rules[ '^' . $city['slug'] . '/page/([0-9]+)/?$' ] = 'index.php?viator_destination=' . $city['slug'] . '&paged=$matches[1]';
$rules[ '^' . $city['slug'] . '/?$' ] = 'index.php?viator_destination=' . $city['slug'];
$rules[ '^' . $city['slug'] . '/([^/]+)/?$' ] = 'index.php?viator_tour=$matches[1]';
}
return $rules;
}
}

View File

@@ -0,0 +1,257 @@
<?php
defined( 'ABSPATH' ) || exit;
class VC_Taxonomies {
public static function init() {
add_action( 'init', array( __CLASS__, 'register' ) );
foreach ( array( 'viator_destination', 'viator_tag', 'viator_category' ) as $taxonomy ) {
add_action( "{$taxonomy}_add_form_fields", array( __CLASS__, 'add_image_field' ) );
add_action( "{$taxonomy}_edit_form_fields", array( __CLASS__, 'edit_image_field' ), 10, 1 );
add_action( "created_{$taxonomy}", array( __CLASS__, 'save_image_field' ) );
add_action( "edited_{$taxonomy}", array( __CLASS__, 'save_image_field' ) );
}
add_action( 'admin_enqueue_scripts', array( __CLASS__, 'admin_media' ) );
}
/**
* The media library is only needed on our term screens.
*/
public static function admin_media( $hook ) {
if ( 'term.php' !== $hook && 'edit-tags.php' !== $hook ) {
return;
}
$taxonomy = isset( $_GET['taxonomy'] ) ? sanitize_key( $_GET['taxonomy'] ) : ''; // phpcs:ignore WordPress.Security.NonceVerification
if ( in_array( $taxonomy, array( 'viator_destination', 'viator_tag', 'viator_category' ), true ) ) {
wp_enqueue_media();
}
}
/**
* Media-library picker shared by the add and edit term forms.
*/
private static function image_picker( $value ) {
wp_nonce_field( 'vc_term_image', 'vc_term_image_nonce' );
?>
<input type="hidden" id="vc_image_url" name="vc_image_url" value="<?php echo esc_attr( $value ); ?>">
<button type="button" class="button" id="vc-term-img-pick"><?php echo esc_html__( 'Select image', 'viator-collector' ); ?></button>
<button type="button" class="button" id="vc-term-img-clear"><?php echo esc_html__( 'Remove', 'viator-collector' ); ?></button>
<div id="vc-term-img-preview" style="margin-top:8px;">
<?php if ( $value ) : ?>
<img src="<?php echo esc_url( $value ); ?>" alt="" style="max-width:200px;height:auto;border-radius:6px;">
<?php endif; ?>
</div>
<p class="description">
<?php echo esc_html__( 'Used on the Top Destinations cards and as this term archive\'s banner. If empty, a tour photo from this term is used automatically.', 'viator-collector' ); ?>
</p>
<script>
jQuery(function ($) {
var frame;
$('#vc-term-img-pick').on('click', function (e) {
e.preventDefault();
frame = wp.media({ library: { type: 'image' }, multiple: false });
frame.on('select', function () {
var img = frame.state().get('selection').first().toJSON();
$('#vc_image_url').val(img.url);
$('#vc-term-img-preview').html($('<img>', { src: img.url }).css({ maxWidth: '200px', height: 'auto', borderRadius: '6px' }));
});
frame.open();
});
$('#vc-term-img-clear').on('click', function (e) {
e.preventDefault();
$('#vc_image_url').val('');
$('#vc-term-img-preview').empty();
});
});
</script>
<?php
}
public static function add_image_field() {
?>
<div class="form-field">
<label><?php echo esc_html__( 'Image', 'viator-collector' ); ?></label>
<?php self::image_picker( '' ); ?>
</div>
<?php
}
public static function edit_image_field( $term ) {
$value = (string) get_term_meta( $term->term_id, '_vc_image_url', true );
?>
<tr class="form-field">
<th scope="row"><label><?php echo esc_html__( 'Image', 'viator-collector' ); ?></label></th>
<td><?php self::image_picker( $value ); ?></td>
</tr>
<?php
}
public static function save_image_field( $term_id ) {
if ( ! current_user_can( 'manage_categories' ) ) {
return;
}
if ( ! isset( $_POST['vc_term_image_nonce'] ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['vc_term_image_nonce'] ) ), 'vc_term_image' ) ) {
return;
}
if ( ! isset( $_POST['vc_image_url'] ) ) {
return;
}
$url = esc_url_raw( wp_unslash( $_POST['vc_image_url'] ) );
if ( '' === $url ) {
delete_term_meta( $term_id, '_vc_image_url' );
} else {
update_term_meta( $term_id, '_vc_image_url', $url );
}
delete_transient( 'vc_term_img_' . absint( $term_id ) );
}
public static function register() {
self::register_taxonomy( 'viator_destination', __( 'Viator Destinations', 'viator-collector' ), __( 'Viator Destination', 'viator-collector' ), true, 'tour-destination' );
self::register_taxonomy( 'viator_tag', __( 'Viator Tags', 'viator-collector' ), __( 'Viator Tag', 'viator-collector' ), false, 'tour-tag' );
self::register_taxonomy( 'viator_category', __( 'Viator Categories', 'viator-collector' ), __( 'Viator Category', 'viator-collector' ), true, 'tour-category' );
}
private static function register_taxonomy( $taxonomy, $plural, $singular, $hierarchical, $slug ) {
register_taxonomy(
$taxonomy,
array( 'viator_tour' ),
array(
'labels' => array(
'name' => $plural,
'singular_name' => $singular,
),
'public' => true,
'hierarchical' => $hierarchical,
'rewrite' => array( 'slug' => $slug ),
'show_in_rest' => true,
)
);
}
public static function get_or_create_destination( $item ) {
$name = self::term_name( $item );
if ( '' === $name ) {
return 0;
}
$id = vc_first_non_empty( array( vc_array_get( $item, 'destinationId' ), vc_array_get( $item, 'id' ) ) );
$ref = vc_first_non_empty( array( vc_array_get( $item, 'destinationRef' ), vc_array_get( $item, 'ref' ) ) );
return self::get_or_create_term( 'viator_destination', $name, '_vc_viator_destination_id', $id, array( '_vc_viator_destination_ref' => $ref ) );
}
public static function get_or_create_tag( $item ) {
$name = self::term_name( $item );
$id = vc_first_non_empty( array( vc_array_get( $item, 'tagId' ), vc_array_get( $item, 'id' ) ) );
return self::get_or_create_term( 'viator_tag', $name, '_vc_viator_tag_id', $id );
}
/**
* Resolve a destination term from a numeric Viator destination id, using
* a name looked up from the destinations dictionary.
*/
public static function get_or_create_destination_by_id( $id, $name = '' ) {
$id = (string) $id;
if ( '' === $id ) {
return 0;
}
$name = sanitize_text_field( (string) $name );
if ( '' === $name ) {
/* translators: %s: Viator destination id. */
$name = sprintf( __( 'Destination %s', 'viator-collector' ), $id );
}
return self::get_or_create_term( 'viator_destination', $name, '_vc_viator_destination_id', $id );
}
/**
* Resolve a tag term from a numeric Viator tag id, using a name looked up
* from the tags dictionary.
*/
public static function get_or_create_tag_by_id( $id, $name = '' ) {
$id = (string) $id;
if ( '' === $id ) {
return 0;
}
$name = sanitize_text_field( (string) $name );
if ( '' === $name ) {
/* translators: %s: Viator tag id. */
$name = sprintf( __( 'Tag %s', 'viator-collector' ), $id );
}
return self::get_or_create_term( 'viator_tag', $name, '_vc_viator_tag_id', $id );
}
public static function get_or_create_category( $item ) {
$name = self::term_name( $item );
$id = vc_first_non_empty( array( vc_array_get( $item, 'categoryId' ), vc_array_get( $item, 'id' ) ) );
return self::get_or_create_term( 'viator_category', $name, '_vc_viator_category_id', $id );
}
private static function term_name( $item ) {
if ( is_scalar( $item ) ) {
return sanitize_text_field( (string) $item );
}
if ( ! is_array( $item ) ) {
return '';
}
return sanitize_text_field(
vc_first_non_empty(
array(
vc_array_get( $item, 'name' ),
vc_array_get( $item, 'destinationName' ),
vc_array_get( $item, 'tagName' ),
vc_array_get( $item, 'categoryName' ),
vc_array_get( $item, 'title' ),
)
)
);
}
private static function get_or_create_term( $taxonomy, $name, $meta_key, $viator_id = '', $extra_meta = array() ) {
if ( '' === $name ) {
return 0;
}
if ( '' !== (string) $viator_id ) {
$found = get_terms(
array(
'taxonomy' => $taxonomy,
'hide_empty' => false,
'number' => 1,
'meta_query' => array(
array(
'key' => $meta_key,
'value' => (string) $viator_id,
),
),
)
);
if ( ! is_wp_error( $found ) && ! empty( $found ) ) {
self::update_term_meta( $found[0]->term_id, $meta_key, $viator_id, $extra_meta );
return (int) $found[0]->term_id;
}
}
$term = term_exists( $name, $taxonomy );
if ( 0 === $term || null === $term ) {
$term = wp_insert_term( $name, $taxonomy );
}
if ( is_wp_error( $term ) ) {
VC_Logger::log( 'Term error: ' . $term->get_error_message(), true );
return 0;
}
$term_id = is_array( $term ) ? (int) $term['term_id'] : (int) $term;
self::update_term_meta( $term_id, $meta_key, $viator_id, $extra_meta );
return $term_id;
}
private static function update_term_meta( $term_id, $meta_key, $viator_id, $extra_meta ) {
if ( '' !== (string) $viator_id ) {
update_term_meta( $term_id, $meta_key, sanitize_text_field( (string) $viator_id ) );
}
foreach ( $extra_meta as $key => $value ) {
if ( '' !== (string) $value ) {
update_term_meta( $term_id, $key, sanitize_text_field( (string) $value ) );
}
}
}
}

View File

@@ -0,0 +1,627 @@
<?php
defined( 'ABSPATH' ) || exit;
function vc_get_option( $key = '', $default = null ) {
$options = get_option( 'vc_settings', array() );
if ( '' === $key ) {
return is_array( $options ) ? $options : array();
}
return isset( $options[ $key ] ) ? $options[ $key ] : $default;
}
function vc_update_option( $key, $value ) {
$options = get_option( 'vc_settings', array() );
if ( ! is_array( $options ) ) {
$options = array();
}
$options[ $key ] = $value;
update_option( 'vc_settings', $options );
}
function vc_get_api_key() {
if ( defined( 'VIATOR_API_KEY' ) && VIATOR_API_KEY ) {
return (string) VIATOR_API_KEY;
}
return (string) vc_get_option( 'api_key', '' );
}
function vc_json_decode_meta( $value, $default = array() ) {
if ( is_array( $value ) || is_object( $value ) ) {
return $value;
}
if ( ! is_string( $value ) || '' === $value ) {
return $default;
}
$decoded = json_decode( $value, true );
return JSON_ERROR_NONE === json_last_error() ? $decoded : $default;
}
function vc_array_get( $array, $path, $default = null ) {
if ( ! is_array( $array ) ) {
return $default;
}
$segments = is_array( $path ) ? $path : explode( '.', (string) $path );
$value = $array;
foreach ( $segments as $segment ) {
if ( is_array( $value ) && array_key_exists( $segment, $value ) ) {
$value = $value[ $segment ];
} else {
return $default;
}
}
return $value;
}
function vc_first_non_empty( array $values, $default = '' ) {
foreach ( $values as $value ) {
if ( is_string( $value ) ) {
$value = trim( $value );
}
if ( ! empty( $value ) || '0' === $value || 0 === $value ) {
return $value;
}
}
return $default;
}
function vc_get_template( $template_name, $args = array() ) {
$template_name = ltrim( str_replace( array( '..', '\\' ), '', $template_name ), '/' );
$theme_path = trailingslashit( get_stylesheet_directory() ) . 'viator-collector/' . $template_name;
$plugin_path = VC_PLUGIN_DIR . 'templates/' . $template_name;
$template = file_exists( $theme_path ) ? $theme_path : $plugin_path;
if ( ! file_exists( $template ) ) {
return '';
}
if ( is_array( $args ) ) {
extract( $args, EXTR_SKIP );
}
ob_start();
include $template;
return ob_get_clean();
}
function vc_clean_text( $value ) {
if ( is_array( $value ) || is_object( $value ) ) {
return '';
}
return sanitize_text_field( wp_unslash( (string) $value ) );
}
function vc_tour_image_html( $post_id, $class = 'vc-tour-image' ) {
$post_id = absint( $post_id );
if ( $post_id && has_post_thumbnail( $post_id ) ) {
return get_the_post_thumbnail( $post_id, 'large', array( 'class' => $class, 'loading' => 'lazy' ) );
}
$url = get_post_meta( $post_id, '_vc_primary_image_url', true );
if ( ! $url ) {
$urls = vc_json_decode_meta( get_post_meta( $post_id, '_vc_gallery_image_urls', true ), array() );
$url = ! empty( $urls ) ? reset( $urls ) : '';
}
if ( ! $url ) {
return '';
}
return '<img class="' . esc_attr( $class ) . '" src="' . esc_url( $url ) . '" alt="' . esc_attr( get_the_title( $post_id ) ) . '" loading="lazy">';
}
/**
* Resolve an image URL for a taxonomy term: a custom URL set on the term,
* otherwise the primary image of a tour in that term. Result is cached.
*/
/**
* Banner image for the listing hero.
*
* Resolution order:
* 1. On a term archive, that term's own image (term meta `_vc_image_url`).
* 2. The "Hero image" chosen in Settings → Viator Collector.
* 3. Nothing — the CSS falls back to a gradient.
*
* Filterable via `vc_hero_image_url` so a theme can override without touching
* the plugin.
*/
function vc_hero_image_url() {
$url = '';
if ( is_tax( array( 'viator_destination', 'viator_tag', 'viator_category' ) ) ) {
$term = get_queried_object();
if ( $term && ! is_wp_error( $term ) ) {
$url = vc_term_image_url( $term->term_id, $term->taxonomy );
}
}
if ( ! $url ) {
$url = (string) vc_get_option( 'hero_image', '' );
}
return apply_filters( 'vc_hero_image_url', $url );
}
/**
* Hero image *source* for the current view: an attachment ID when available
* (so it can be rendered responsively), otherwise a URL. Resolution order:
* 1. On a term archive, that term's own image.
* 2. The "Hero image" chosen in Settings (attachment ID preferred).
* 3. Nothing.
*
* @return int|string Attachment ID, image URL, or '' .
*/
function vc_hero_image_source() {
if ( is_tax( array( 'viator_destination', 'viator_tag', 'viator_category' ) ) ) {
$term = get_queried_object();
if ( $term && ! is_wp_error( $term ) ) {
$url = vc_term_image_url( $term->term_id, $term->taxonomy );
if ( $url ) {
return apply_filters( 'vc_hero_image_source', $url );
}
}
}
$id = (int) vc_get_option( 'hero_image_id', 0 );
if ( $id ) {
return apply_filters( 'vc_hero_image_source', $id );
}
return apply_filters( 'vc_hero_image_source', (string) vc_get_option( 'hero_image', '' ) );
}
function vc_term_image_url( $term_id, $taxonomy = '' ) {
$term_id = absint( $term_id );
if ( ! $term_id ) {
return '';
}
$custom = get_term_meta( $term_id, '_vc_image_url', true );
if ( $custom ) {
return $custom;
}
$cache_key = 'vc_term_img_' . $term_id;
$cached = get_transient( $cache_key );
if ( false !== $cached ) {
return $cached;
}
if ( '' === $taxonomy ) {
$term = get_term( $term_id );
if ( $term && ! is_wp_error( $term ) ) {
$taxonomy = $term->taxonomy;
}
}
$url = '';
if ( $taxonomy ) {
$query = new WP_Query(
array(
'post_type' => 'viator_tour',
'posts_per_page' => 1,
'fields' => 'ids',
'no_found_rows' => true,
'update_post_term_cache' => false,
'tax_query' => array(
array(
'taxonomy' => $taxonomy,
'field' => 'term_id',
'terms' => $term_id,
),
),
'meta_query' => array(
array(
'key' => '_vc_primary_image_url',
'value' => '',
'compare' => '!=',
),
),
)
);
if ( ! empty( $query->posts ) ) {
$url = (string) get_post_meta( (int) $query->posts[0], '_vc_primary_image_url', true );
}
}
set_transient( $cache_key, $url, 12 * HOUR_IN_SECONDS );
return $url;
}
/**
* Number of published tours assigned to a term.
*/
function vc_term_tour_count( $term ) {
if ( is_object( $term ) && isset( $term->count ) ) {
return (int) $term->count;
}
return 0;
}
/**
* Render a 5-star rating widget from a numeric rating (0-5).
*/
function vc_render_stars( $rating ) {
$rating = (float) $rating;
if ( $rating <= 0 ) {
return '';
}
$pct = max( 0, min( 100, ( $rating / 5 ) * 100 ) );
return '<span class="vc-stars" role="img" aria-label="' . esc_attr( sprintf( __( 'Rated %s out of 5', 'viator-collector' ), number_format_i18n( $rating, 1 ) ) ) . '"><span class="vc-stars-fill" style="width:' . esc_attr( $pct ) . '%"></span></span>';
}
/**
* Human label for a Viator inclusion / exclusion / additional-info object.
* These come in several shapes, so try the known text fields in order.
*/
function vc_feature_text( $item ) {
if ( is_scalar( $item ) ) {
return (string) $item;
}
if ( ! is_array( $item ) ) {
return '';
}
return (string) vc_first_non_empty(
array(
vc_array_get( $item, 'description' ),
vc_array_get( $item, 'otherDescription' ),
vc_array_get( $item, 'typeDescription' ),
vc_array_get( $item, 'categoryDescription' ),
vc_array_get( $item, 'name' ),
vc_array_get( $item, 'title' ),
)
);
}
/**
* Format a duration given in minutes as "45 min" or "2h 15m".
*/
function vc_duration_human( $minutes ) {
$minutes = (int) $minutes;
if ( $minutes <= 0 ) {
return '';
}
if ( $minutes < 60 ) {
return sprintf( _n( '%d min', '%d min', $minutes, 'viator-collector' ), $minutes );
}
$hours = intdiv( $minutes, 60 );
$rem = $minutes % 60;
return $rem ? sprintf( '%dh %dm', $hours, $rem ) : sprintf( _n( '%d hour', '%d hours', $hours, 'viator-collector' ), $hours );
}
/**
* Normalise a Viator itinerary object into a flat list of steps.
* Handles unstructured itineraries, standard itineraryItems, and multi-day
* itineraries (days[].items[]).
*
* @return array[] Each step: description, duration (min), admission (bool), passby (bool).
*/
function vc_itinerary_steps( $itinerary ) {
if ( ! is_array( $itinerary ) ) {
return array();
}
$steps = array();
$unstructured = vc_first_non_empty(
array(
vc_array_get( $itinerary, 'unstructuredItinerary' ),
vc_array_get( $itinerary, 'unstructuredDescription' ),
)
);
if ( $unstructured ) {
$steps[] = array( 'description' => $unstructured );
}
$items = vc_array_get( $itinerary, 'itineraryItems', array() );
if ( empty( $items ) ) {
foreach ( (array) vc_array_get( $itinerary, 'days', array() ) as $day ) {
foreach ( (array) vc_array_get( $day, 'items', array() ) as $item ) {
$items[] = $item;
}
}
}
foreach ( (array) $items as $item ) {
if ( ! is_array( $item ) ) {
continue;
}
$description = vc_first_non_empty( array( vc_array_get( $item, 'description' ), vc_array_get( $item, 'name' ) ) );
if ( '' === (string) $description ) {
continue;
}
$steps[] = array(
'description' => $description,
'duration' => (int) vc_first_non_empty(
array(
vc_array_get( $item, 'duration.fixedDurationInMinutes' ),
vc_array_get( $item, 'duration.variableDurationFromMinutes' ),
),
0
),
'admission' => 'YES' === strtoupper( (string) vc_array_get( $item, 'admissionIncluded' ) ),
'passby' => (bool) vc_array_get( $item, 'passByWithoutStopping', false ),
);
}
return $steps;
}
/**
* Star string for a rating: gold stars + outlined stars, 5 total.
*/
/**
* Gold/grey star markup used by the listing + single templates.
* Matches the .stars / .stars.muted rules in vc-design.css.
*/
function vc_stars_html( $rating ) {
$full = (int) round( (float) $rating );
$full = max( 0, min( 5, $full ) );
$out = '';
if ( $full > 0 ) {
$out .= '<span class="stars">' . str_repeat( '★', $full ) . '</span>';
}
if ( $full < 5 ) {
$out .= '<span class="stars muted">' . str_repeat( '★', 5 - $full ) . '</span>';
}
return $out;
}
function vc_star_string( $rating ) {
$n = (int) round( (float) $rating );
$n = max( 0, min( 5, $n ) );
return str_repeat( '★', $n ) . str_repeat( '☆', 5 - $n );
}
/**
* Turn a product's flags array into display badges.
*
* @return array[] Each: array( 'label' => string, 'type' => blue|amber|red ).
*/
function vc_badges_from_flags( $flags ) {
$flags = is_array( $flags ) ? array_map( 'strtoupper', $flags ) : array();
$map = array(
'FREE_CANCELLATION' => array( 'label' => __( 'Free Cancellation', 'viator-collector' ), 'type' => 'blue' ),
'SPECIAL_OFFER' => array( 'label' => __( 'Best Deal', 'viator-collector' ), 'type' => 'amber' ),
'LIKELY_TO_SELL_OUT' => array( 'label' => __( 'Likely to Sell Out', 'viator-collector' ), 'type' => 'red' ),
);
$out = array();
foreach ( $map as $flag => $badge ) {
if ( in_array( $flag, $flags, true ) ) {
$out[] = $badge;
}
}
return $out;
}
/**
* Pick ONE badge for a tour card, by scarcity.
*
* Nearly every Viator product carries FREE_CANCELLATION, so using it as the
* card badge makes every card look identical. Only genuinely distinguishing
* signals earn the badge; free cancellation is shown as a trust line instead.
*
* @return array|null array( 'label' => string, 'type' => red|amber|blue )
*/
function vc_card_badge( $post_id ) {
$flags = vc_json_decode_meta( get_post_meta( $post_id, '_vc_flags', true ), array() );
$flags = is_array( $flags ) ? array_map( 'strtoupper', $flags ) : array();
if ( in_array( 'LIKELY_TO_SELL_OUT', $flags, true ) ) {
return array( 'label' => __( 'Likely to Sell Out', 'viator-collector' ), 'type' => 'red' );
}
if ( in_array( 'SPECIAL_OFFER', $flags, true ) ) {
return array( 'label' => __( 'Best Deal', 'viator-collector' ), 'type' => 'amber' );
}
// Derived from data we already store — highlights standouts.
$rating = (float) get_post_meta( $post_id, '_vc_rating', true );
$reviews = (int) get_post_meta( $post_id, '_vc_review_count', true );
if ( $rating >= 4.8 && $reviews >= 50 ) {
return array( 'label' => __( 'Top Rated', 'viator-collector' ), 'type' => 'blue' );
}
return null;
}
/**
* Map a Viator additional-info type to a Lucide icon name.
*/
function vc_infotype_icon( $type ) {
$type = strtoupper( (string) $type );
$map = array(
'STROLLER_ACCESSIBLE' => 'baby',
'INFANT_SEATS_AVAILABLE' => 'baby',
'INFANTS_MUST_SIT_ON_LAPS' => 'baby',
'PETS_WELCOME' => 'dog',
'SERVICE_ANIMALS_ALLOWED' => 'dog',
'PUBLIC_TRANSPORTATION_NEARBY' => 'bus',
'WHEELCHAIR_ACCESSIBLE' => 'accessibility',
'NOT_WHEELCHAIR_ACCESSIBLE' => 'accessibility',
'PHYSICAL_EASY' => 'dumbbell',
'PHYSICAL_MODERATE' => 'dumbbell',
'PHYSICAL_DIFFICULT' => 'dumbbell',
);
return isset( $map[ $type ] ) ? $map[ $type ] : 'info';
}
/**
* Currency symbol for an ISO code. Unknown codes fall back to the code itself
* (e.g. "PEN 45") rather than guessing.
*/
function vc_currency_symbol( $currency ) {
$currency = strtoupper( sanitize_text_field( (string) $currency ) );
if ( '' === $currency ) {
return '';
}
$symbols = apply_filters(
'vc_currency_symbols',
array(
'USD' => '$',
'EUR' => '€',
'GBP' => '£',
'JPY' => '¥',
'CNY' => '¥',
'AUD' => 'A$',
'CAD' => 'CA$',
'NZD' => 'NZ$',
'SGD' => 'S$',
'HKD' => 'HK$',
'MXN' => 'MX$',
'BRL' => 'R$',
'INR' => '₹',
'KRW' => '₩',
'THB' => '฿',
'TRY' => '₺',
'ILS' => '₪',
'ZAR' => 'R',
)
);
return isset( $symbols[ $currency ] ) ? $symbols[ $currency ] : $currency . ' ';
}
/**
* Format a price the way travel sites do: "$38", "$1,200", "$79.50".
*
* Trailing ".00" is dropped — Viator returns whole-dollar "from" prices for most
* products, and "USD 130.00" reads like an invoice, not a price tag.
*/
function vc_money( $amount, $currency ) {
if ( '' === $amount || null === $amount ) {
return '';
}
$amount = (float) $amount;
$decimals = ( 0.0 === fmod( $amount, 1 ) ) ? 0 : 2;
return vc_currency_symbol( $currency ) . number_format_i18n( $amount, $decimals );
}
/**
* Page numbers for the listing pager: a compact run with ellipsis gaps.
* Mirrors the mockup's pager (first, current±1, last). `null` marks an ellipsis.
*
* @return array<int|null>
*/
function vc_pager_range( $current, $total ) {
$current = max( 1, (int) $current );
$total = max( 1, (int) $total );
if ( $total <= 7 ) {
return range( 1, $total );
}
$want = array( 1, $current - 1, $current, $current + 1, $total );
$want = array_values( array_unique( array_filter( $want, function ( $n ) use ( $total ) {
return $n >= 1 && $n <= $total;
} ) ) );
sort( $want );
$out = array();
$prev = 0;
foreach ( $want as $n ) {
if ( $prev && $n - $prev > 1 ) {
$out[] = null; // ellipsis
}
$out[] = $n;
$prev = $n;
}
return $out;
}
/**
* URL to a bundled plugin asset, e.g. vc_asset_url( 'img/tower.png' ).
*/
function vc_asset_url( $rel ) {
return VC_PLUGIN_URL . 'assets/' . ltrim( (string) $rel, '/' );
}
/**
* Hero <img> markup. When the source is a WordPress media item (an attachment
* ID, or a URL that resolves to one), it is rendered with wp_get_attachment_image
* so the browser gets responsive `srcset`/`sizes` and device-appropriate files.
* Anything else (external URLs, bundled fallbacks) falls back to a plain <img>.
*
* @param int|string $src Attachment ID or image URL.
* @param string $class CSS class.
* @param bool $eager Prioritise loading (above-the-fold hero).
*/
function vc_hero_img_html( $src, $class = 'hero__img', $eager = true ) {
$loading = $eager ? 'eager' : 'lazy';
$id = is_numeric( $src ) ? (int) $src : (int) attachment_url_to_postid( (string) $src );
if ( $id ) {
$img = wp_get_attachment_image(
$id,
'full',
false,
array(
'class' => $class,
'loading' => $loading,
'alt' => '',
'sizes' => '100vw',
'fetchpriority' => $eager ? 'high' : 'auto',
)
);
if ( $img ) {
return $img;
}
}
if ( ! $src ) {
return '';
}
$fetch = $eager ? ' fetchpriority="high"' : '';
return '<img class="' . esc_attr( $class ) . '" src="' . esc_url( $src ) . '" alt="" loading="' . esc_attr( $loading ) . '"' . $fetch . '>';
}
/**
* Print the "Hop On Hop Off" SVG icon sprite once per request. The sprite
* holds every <symbol id="i-…"> plus the #ringPathScroll circular text path
* used by the rotating "BOOK NOW" badges. Referenced via vc_icon() / <use>.
*/
function vc_print_icon_sprite() {
static $done = false;
if ( $done ) {
return;
}
$done = true;
$path = VC_PLUGIN_DIR . 'assets/icons/sprite.svg';
if ( is_readable( $path ) ) {
echo file_get_contents( $path ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents
}
}
/**
* Inline-icon markup referencing a sprite symbol.
* e.g. vc_icon( 'star', 'rating__star' ) => <svg class="icon rating__star">…</svg>
*/
function vc_icon( $name, $extra_class = '' ) {
// Strip an existing "i-" prefix (once), then re-add it. ltrim() with a
// charlist would eat any leading i/-, turning "instagram" into "nstagram".
$slug = preg_replace( '/^i-/', '', (string) $name );
$name = preg_replace( '/[^a-z0-9\-]/', '', 'i-' . $slug );
$class = 'icon' . ( $extra_class ? ' ' . $extra_class : '' );
return '<svg class="' . esc_attr( $class ) . '" aria-hidden="true"><use href="#' . esc_attr( $name ) . '"></use></svg>';
}
/**
* Rotating ring badge (the circular "BOOK NOW ·" anchor in the design).
*
* @param string $label Repeating label text (e.g. "BOOK NOW · BOOK NOW · ").
* @param string $url Link target.
* @param string $variant Modifier suffix: card|top|scroll|accent.
* @param bool $blank Open in a new tab (external booking links).
*/
function vc_ring_badge( $label, $url, $variant = 'card', $blank = false ) {
$aria = trim( str_replace( '·', '', $label ) );
$target = $blank ? ' target="_blank" rel="nofollow noopener"' : '';
ob_start();
?>
<a class="ring-badge ring-badge--<?php echo esc_attr( $variant ); ?>" href="<?php echo esc_url( $url ); ?>" aria-label="<?php echo esc_attr( $aria ); ?>"<?php echo $target; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>>
<svg class="ring-badge__ring" viewBox="0 0 100 100" aria-hidden="true">
<text class="ring-badge__text"><textPath href="#ringPathScroll" startOffset="0"><?php echo esc_html( $label ); ?></textPath></text>
</svg>
<span class="ring-badge__dot"><?php echo vc_icon( 'arrow-ne' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></span>
</a>
<?php
return ob_get_clean();
}

View File

@@ -0,0 +1,22 @@
<?php
/**
* Post-type archive for viator_tour — renders the shared listing UI.
*/
defined( 'ABSPATH' ) || exit;
get_header();
?>
<main class="vc-app vc-listing">
<?php
echo vc_get_template( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
'listing.php',
array(
// Deliberately location-agnostic; override with the vc_listing_title filter.
'vc_title' => __( 'Explore Tours & Experiences', 'viator-collector' ),
'vc_subtitle' => __( 'Find the best tours, activities and unforgettable experiences.', 'viator-collector' ),
'vc_crumb_label' => __( 'Tours', 'viator-collector' ),
)
);
?>
</main>
<?php
get_footer();

View File

@@ -0,0 +1,9 @@
<?php
defined( 'ABSPATH' ) || exit;
$post_id = isset( $post_id ) ? absint( $post_id ) : get_the_ID();
$url = get_post_meta( $post_id, '_vc_booking_url', true );
if ( ! $url ) {
return;
}
?>
<a class="vc-booking-button" href="<?php echo esc_url( $url ); ?>" target="_blank" rel="nofollow sponsored noopener"><?php echo esc_html__( 'Book this tour', 'viator-collector' ); ?></a>

Some files were not shown because too many files have changed in this diff Show More