/*
 * The design is Togo's (assets/togo/css). This file only adds WordPress basics.
 */
.screen-reader-text { border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; word-wrap: normal !important; }
.skip-link:focus { clip: auto; clip-path: none; height: auto; width: auto; margin: 0; z-index: 100000; top: 8px; left: 8px; padding: 12px 18px; background: #fff; color: #111; }
.myvo-breadcrumbs ol { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 0 0 10px; padding: 0; list-style: none; color: #fff; }
.myvo-breadcrumbs li + li::before { content: "/"; margin-right: 6px; opacity: .7; }
.myvo-breadcrumbs a { color: #fff; }
.myvo-placeholder { display: block; width: 100%; aspect-ratio: 4 / 3; background: var(--togo-gray-2); }
/* Text logo until a logo image is uploaded (Appearance > Customize > Site identity). */
/* Brand logo: "SA" mark + heavy uppercase wordmark + spaced "by Kata Travels". */
.myvo-wordmark { display: inline-flex; align-items: center; gap: 12px; line-height: 1; color: #111; }
.myvo-wordmark-light { color: #fff; }
.myvo-mark { flex: 0 0 auto; width: 46px; height: 46px; }
.myvo-wordmark-text { display: inline-flex; flex-direction: column; }
.myvo-wordmark-main { font-family: var(--togo-ff-outfit); font-size: 25px; font-weight: 800; letter-spacing: .005em; text-transform: uppercase; color: inherit; white-space: nowrap; }
.myvo-wordmark-by { margin-top: 6px; font-family: var(--togo-ff-outfit); font-size: 10.5px; font-weight: 600; letter-spacing: .36em; text-transform: uppercase; color: var(--togo-theme-primary); white-space: nowrap; }
.myvo-wordmark-light .myvo-wordmark-by { color: rgba(255,255,255,.82); }
@media (max-width: 575px) { .myvo-mark { width: 40px; height: 40px; } .myvo-wordmark-main { font-size: 20px; } .myvo-wordmark-by { font-size: 9px; letter-spacing: .28em; } }
.custom-logo { max-height: 56px; width: auto; }
/* Keyboard users: open Togo dropdowns on focus as well as hover. */
.togo-header-menu > nav > ul > li:focus-within > .togo-submenu { top: 100%; opacity: 1; visibility: visible; transform: translateY(0); }
/* "Not included" list: Togo list style with a cross instead of the check. */
.myvo-excluded .myvo-x { display: inline-flex; width: 24px; justify-content: center; font-size: 22px; line-height: 1; color: var(--togo-common-black); }
.togo-tour-details-booking-item-title.h4 { margin-bottom: 8px; }
/* Togo's included list floats items at 50%; give the list full width so short items don't wrap. */
.togo-tour-details-list ul.incluid { display: block; overflow: hidden; }
/* Light header variant (Togo header-3 look) for pages without a dark banner. */
.myvo-header-light .togo-offcanvas-2-open-btn { color: var(--togo-common-black); }
.myvo-header-light .togo-offcanvas-2-open-btn svg path { stroke: var(--togo-common-black); }
/* Language switcher (Togo currency dropdown): button reset + keyboard open. */
.myvo-lang-toggle { background: none; border: 0; padding: 0; color: inherit; font: inherit; cursor: pointer; }
.myvo-lang .togo-footer-copyright-currence-btn:focus-within .togo-footer-copyright-currence-content,
.myvo-lang.is-open .togo-footer-copyright-currence-content { opacity: 1; visibility: visible; }
.myvo-lang ul { margin: 0; padding: 0; list-style: none; }
/* Inquiry forms (Togo contact form look). */
.myvo-label { display: block; font-size: 15px; font-weight: 500; color: var(--togo-common-black); margin-bottom: 6px; }
.myvo-native-select { width: 100%; height: 54px; padding: 0 40px 0 16px; border: 1px solid #DDD; border-radius: 8px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23333' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 16px center; -webkit-appearance: none; appearance: none; font-size: 16px; color: var(--togo-text-body); }
.myvo-native-select:focus, .myvo-inquiry-form input:focus-visible, .myvo-inquiry-form textarea:focus-visible { outline: 2px solid var(--togo-theme-primary); outline-offset: 2px; }
.myvo-inquiry-form .togo-contact-input textarea { height: 180px; }
.myvo-has-error input, .myvo-has-error textarea, .myvo-has-error select { border-color: #b3261e !important; }
.myvo-field-error { color: #b3261e; font-size: 14px; margin: 6px 0 0; }
.myvo-form-status { padding: 20px 24px; border-radius: 8px; margin-bottom: 25px; }
.myvo-form-errors { border: 1px solid #b3261e; background: #fdf3f2; }
.myvo-form-errors ul { margin: 0; padding-left: 18px; }
.myvo-form-errors a { color: #b3261e; text-decoration: underline; }
.myvo-form-success { border: 1px solid #1e7d3c; background: #f1faf3; }
.myvo-form-note { font-size: 14px; color: #555; margin-bottom: 0; }
.myvo-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.myvo-consent { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 9999; max-width: 720px; margin: 0 auto; padding: 18px 22px; background: #fff; border-radius: 12px; box-shadow: 0 8px 30px rgba(0,0,0,.15); }
.myvo-consent-actions { display: flex; gap: 10px; flex-wrap: wrap; }

/* QA: heading levels fixed for screen readers; keep Togo's original sizes. */
.togo-tour-details-booking-list h2 { font-size: 18px; margin-bottom: 20px; }

/* QA: cropped image slots never stretch the photo. */
.togo-destination-item-thumb img,
.togo-guide-2-thumb img,
.togo-guide-thumb img,
img.size-togo-dest,
img.size-togo-guide-1,
img.size-togo-guide-2 { object-fit: cover; }

/* QA (WCAG 2.4.7): Togo removes focus outlines; show one for keyboard users only. */
a:focus-visible,
button:focus-visible,
[tabindex]:focus-visible,
summary:focus-visible,
.nice-select:focus-visible { outline: 2px solid var(--togo-theme-primary); outline-offset: 3px; }

/* QA (CLS): photo slider on country/destination pages. Size slides like Swiper will
   and keep the slider invisible until it has initialised, so nothing jumps. */
.togo-tour-active-3:not(.swiper-initialized) { visibility: hidden; }
.togo-tour-active-3:not(.swiper-initialized) .swiper-wrapper { display: flex; gap: 10px; overflow: hidden; }
.togo-tour-active-3:not(.swiper-initialized) .swiper-slide { flex: 0 0 100%; }
@media (min-width: 576px) { .togo-tour-active-3:not(.swiper-initialized) .swiper-slide { flex-basis: calc((100% - 10px) / 1.5); } }
@media (min-width: 768px) { .togo-tour-active-3:not(.swiper-initialized) .swiper-slide { flex-basis: calc((100% - 10px) / 2); } }
@media (min-width: 992px) { .togo-tour-active-3:not(.swiper-initialized) .swiper-slide { flex-basis: calc((100% - 20px) / 3); } }

/* QA: journey pages. Clear the taller header (top bar + menu) on desktop, and show a
   single photo full width rather than next to an empty grid. */
@media (max-width: 767px) { .togo-breadcrumb-list ul { flex-wrap: wrap; row-gap: 4px; } .togo-breadcrumb-list ul li { flex: 0 0 auto; max-width: 100%; } }

/* Brand orange darkened for WCAG AA contrast with white text (#FD4621 3.46:1 -> #E42802 4.56:1).
   Togo's CSS is left untouched; these rules override it. Hover is a darker step (#C42202). */
:root { --togo-theme-primary: #E42802; --togo-common-orange: #C42202; }
.togo-step-item-num { background: #E42802; }
.togo-step-item-num::after { background-color: #E42802; }
.togo-about-map-item { border-color: #E42802; }
.datepicker__month-day--selected, .datepicker__month-day--hovering { background-color: rgba(228, 40, 2, 0.2); }
.togo-tour-details-about ul li span::before { background-color: rgba(228, 40, 2, 0.1); }

/* Header: language and phone in the main bar (visible at every width). */
.togo-header-2-right { gap: 18px; }
.togo-header-2-bar.ml-20 { margin-left: 0; }
.myvo-header-phone { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; color: inherit; white-space: nowrap; }
.myvo-header-overlay .myvo-header-phone, .myvo-header-overlay .myvo-header-lang .myvo-lang-toggle { color: #fff; }
.myvo-header-lang .myvo-lang-toggle { display: inline-flex; align-items: center; padding: 8px 12px; border: 1px solid currentColor; border-radius: 40px; font-weight: 500; line-height: 1; }
.myvo-header-lang .myvo-lang-toggle > span { display: inline-flex; align-items: center; gap: 6px; }
/* Togo colours the button's inner span #111; follow the button instead (white over the hero, dark when sticky). */
.myvo-header-lang .myvo-lang-toggle span, .myvo-header-lang .myvo-lang-toggle svg { color: inherit; }
.myvo-lang li.active a, .myvo-lang a[aria-current] { color: var(--togo-theme-primary); }
.myvo-header-lang .myvo-lang-toggle svg { flex: 0 0 auto; }
.myvo-header-lang .togo-footer-copyright-currence-content { right: 0; left: auto; min-width: 200px; z-index: 30; }
.myvo-header-light .myvo-header-lang .myvo-lang-toggle { border-color: #ddd; }
.myvo-lang-draft { font-size: 11px; font-weight: 400; color: #777; text-transform: lowercase; }

/* Off-canvas menu: languages as a visible list, contact block. */
.myvo-offcanvas-label { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #555; }
.myvo-lang-inline ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.myvo-lang-inline a { display: inline-block; padding: 8px 14px; border: 1px solid #ddd; border-radius: 40px; color: var(--togo-common-black); font-weight: 500; }
.myvo-lang-inline li.active a { border-color: var(--togo-theme-primary); color: var(--togo-theme-primary); }
.myvo-offcanvas-contact ul { margin: 0; padding: 0; list-style: none; }
.myvo-offcanvas-contact li a { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid #eee; color: var(--togo-common-black); font-weight: 500; }

/* Header language button drops down: chevron points down when closed, up when open. */
.myvo-lang-header .togo-footer-copyright-currence-btn span svg:last-child { transform: rotate(180deg); }
.myvo-lang-header .togo-footer-copyright-currence-btn span:hover svg:last-child,
.myvo-lang-header.is-open .togo-footer-copyright-currence-btn span svg:last-child { transform: rotate(0deg); }
.myvo-lang-header .togo-footer-copyright-currence-btn span:hover svg:first-child { transform: none; }

/* About: story photos share Togo's 412×470 frame. */
.togo-about-story-thumb img { aspect-ratio: 412 / 470; height: auto; object-fit: cover; }

/* Footer: contact column and bottom bar (legal links + language). */
.myvo-footer-contact .togo-footer-widget-info-item a { display: inline-flex; align-items: center; gap: 10px; }
.myvo-footer-contact .togo-btn-primary { display: inline-block; }
.myvo-footer-bottom-right { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 12px 28px; }
.myvo-footer-legal ul { display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 0; padding: 0; list-style: none; }
.myvo-footer-legal a { color: rgba(255,255,255,.75); font-size: 14px; }
.myvo-footer-legal a:hover { color: #fff; }
@media (max-width: 991px) { .myvo-footer-bottom-right { justify-content: flex-start; margin-top: 16px; } }

/* Journey overview facts: fixed icon size, tint circle anchored to the icon, space after the label
   (long values such as accommodation wrap without shrinking the icon). */
.togo-tour-details-about ul li span { align-items: flex-start; column-gap: 4px; line-height: 1.5; }
.togo-tour-details-about ul li span svg { flex: 0 0 28px; width: 28px; height: 28px; margin-right: 6px; margin-top: -2px; }
.togo-tour-details-about ul li span::before { top: 6px; bottom: auto; }
.togo-tour-details-about ul li span .myvo-fact { flex: 1 1 auto; min-width: 0; font-weight: 400; }
.myvo-footer-reg { display: inline-block; margin-top: 6px; color: rgba(255,255,255,.65); font-size: 13px; line-height: 1.5; }

/* Header: phone shows as an icon until there is room for the number; CTA never wraps. */
.togo-header-btn-box .togo-btn-primary { white-space: nowrap; }
.myvo-header-phone .myvo-phone-text { display: none; }
@media (min-width: 1600px) { .myvo-header-phone .myvo-phone-text { display: inline; } }
/* Breadcrumb on photo banners stays readable. */
.togo-breadcrumb-style-2-ptb .togo-breadcrumb-list a,
.togo-breadcrumb-style-2-ptb .togo-breadcrumb-list li,
.togo-breadcrumb-style-2-ptb .togo-breadcrumb-list span { color: #fff; }
.togo-breadcrumb-style-2-ptb .togo-breadcrumb-list svg path { stroke: #fff; }
/* Five menu items fit on one line on small desktops (1200–1399 px). */
@media (min-width: 1200px) and (max-width: 1399px) {
	.togo-header-menu > nav > ul { white-space: nowrap; }
	.togo-header-menu > nav > ul > li { margin: 0 6px; }
	.togo-header-menu > nav > ul > li > a { font-size: 15px; }
}

/* Inquiry form: phone = country code picker + number on one line. */
.myvo-phone-group { display: flex; gap: 10px; align-items: stretch; }
.myvo-phone-group .myvo-phone-cc { flex: 0 0 42%; min-width: 0; }
.myvo-phone-group .myvo-phone-cc select { width: 100%; text-overflow: ellipsis; }
.myvo-phone-group input[type="tel"] { flex: 1 1 auto; min-width: 0; }

/* Footer badges: accreditations and accepted cards on small white tiles. */
.myvo-footer-badges { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 24px 48px; padding: 28px 0; border-top: 1px solid rgba(255,255,255,.15); }
.myvo-badge-title { margin-bottom: 12px; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,.7); }
.myvo-badge-group ul { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0; padding: 0; list-style: none; }
.myvo-badge { display: inline-flex; align-items: center; justify-content: center; height: 44px; padding: 6px 12px; background: #fff; border-radius: 6px; }
.myvo-badge { min-width: 62px; }
.myvo-badge img { width: auto; height: auto; max-height: 28px; max-width: 96px; }
.myvo-badge-card { width: 62px; padding: 6px 10px; }
.myvo-badge-card svg { width: 100%; height: 28px; }

/* ===== Homepage hero: full-screen, cinematic ===== */
.togo-hero-2-item { height: 100vh; min-height: 680px; display: flex; align-items: center; padding-top: 120px; padding-bottom: 110px; }
@media (max-width: 767px) { .togo-hero-2-item { height: 88vh; min-height: 600px; padding-top: 110px; padding-bottom: 90px; } }
.togo-hero-2-item > .container { width: 100%; }
.togo-hero-2-bg { transform: scale(1); transition: transform 11s ease-out, opacity 1s ease-in; }
.togo-hero-2-active .swiper-slide-active .togo-hero-2-bg { transform: scale(1.09); }
@media (prefers-reduced-motion: reduce) { .togo-hero-2-active .swiper-slide-active .togo-hero-2-bg { transform: none; } }
/* Gradient instead of a flat grey veil: dark at the top (header) and bottom (search), photo breathes in between. */
.togo-hero-2-bg::before { background: linear-gradient(180deg, rgba(8,10,14,.66) 0%, rgba(8,10,14,.38) 34%, rgba(8,10,14,.40) 58%, rgba(8,10,14,.80) 100%), radial-gradient(ellipse at 50% 48%, rgba(0,0,0,.40) 0%, rgba(0,0,0,0) 62%); } /* Darker centre: the cultural photos are colourful and busy behind the text. */
.myvo-hero-eyebrow, .togo-hero-2-heading > p, .togo-hero-2-heading p:not(.myvo-hero-call) { text-shadow: 0 1px 12px rgba(0,0,0,.6); }
.myvo-hero-eyebrow { display: inline-flex; align-items: center; gap: 12px; margin-bottom: 18px !important; font-family: var(--togo-ff-outfit); font-size: 13px !important; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; color: #FFB547 !important; }
.myvo-hero-eyebrow::before, .myvo-hero-eyebrow::after { content: ""; width: 34px; height: 1.5px; background: currentColor; opacity: .8; }
.myvo-hero-title { font-size: clamp(42px, 6.4vw, 92px) !important; font-weight: 700; line-height: 1.02 !important; letter-spacing: -.02em; text-shadow: 0 2px 30px rgba(0,0,0,.35); }
.myvo-hero-accent { display: inline-block; font-family: var(--togo-ff-playfair); font-style: italic; font-weight: 500; color: #FFB547; letter-spacing: -.01em; }
.togo-hero-2-text p { font-size: clamp(17px, 1.5vw, 20px) !important; max-width: 640px; margin-left: auto; margin-right: auto; color: rgba(255,255,255,.92) !important; text-shadow: 0 1px 12px rgba(0,0,0,.4); }
.togo-hero-2-search-box { box-shadow: 0 18px 50px rgba(0,0,0,.35); }
.myvo-hero-trust { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 26px; margin: 26px 0 0; padding: 0; list-style: none; color: #fff; font-size: 15px; font-weight: 500; }
.myvo-hero-trust li { display: inline-flex; align-items: center; gap: 8px; text-shadow: 0 1px 10px rgba(0,0,0,.5); }
.myvo-hero-trust svg { width: 18px; height: 18px; padding: 3px; border-radius: 50%; background: var(--togo-theme-primary); stroke: #fff; stroke-width: 2.6; fill: none; }
.myvo-hero-place { position: absolute; left: 50px; bottom: 44px; z-index: 2; display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 8px 14px; border-radius: 40px; background: rgba(0,0,0,.32); backdrop-filter: blur(6px); color: #fff; font-size: 14px; font-weight: 500; letter-spacing: .02em; }
.myvo-hero-place svg { width: 16px; height: 16px; stroke: #FFB547; fill: none; stroke-width: 2; }
@media (max-width: 767px) { .myvo-hero-place { left: 16px; bottom: 18px; font-size: 12px; padding: 6px 11px; } .myvo-hero-trust { gap: 8px 16px; font-size: 13px; } .myvo-hero-eyebrow { font-size: 11px !important; letter-spacing: .22em; } .myvo-hero-eyebrow::before, .myvo-hero-eyebrow::after { width: 18px; } }

/* ===== Sticky header: appears as a white bar once you scroll past the top ===== */
@keyframes myvoSlideDown { from { transform: translateY(-100%); } to { transform: translateY(0); } }
.togo-header-2-ptb.myvo-sticky { position: fixed !important; top: var(--wp-admin--admin-bar--height, 0px); left: 0; right: 0; z-index: 999; background: rgba(255,255,255,.97) !important; backdrop-filter: blur(8px); box-shadow: 0 8px 30px rgba(15,20,30,.10); border-bottom: 0 !important; animation: myvoSlideDown .35s ease both; }
.myvo-sticky .togo-header-menu > nav > ul > li > a { padding-top: 16px; padding-bottom: 16px; }
.myvo-sticky .togo-header-style-2 .togo-header-menu > nav > ul > li > a { color: var(--togo-common-black); }
.myvo-sticky .togo-header-menu > nav > ul > li.current-menu-item > a,
.myvo-sticky .togo-header-menu > nav > ul > li > a:hover { color: var(--togo-theme-primary); }
.myvo-sticky .myvo-wordmark-light { color: #111; }
.myvo-sticky .myvo-wordmark-light .myvo-wordmark-by { color: var(--togo-theme-primary); }
.myvo-sticky .myvo-mark { width: 40px; height: 40px; }
.myvo-sticky .myvo-header-phone, .myvo-sticky .myvo-header-lang .myvo-lang-toggle { color: #111; }
.myvo-sticky .myvo-header-lang .myvo-lang-toggle { border-color: #ddd; }
.myvo-sticky .togo-offcanvas-2-open-btn svg path { stroke: #111; }

/* Team: Togo round portraits (About) and a face row on Contact / Plan. */
.myvo-team-thumb img { width: 100%; aspect-ratio: 1 / 1; height: auto; object-fit: cover; object-position: center 25%; }
.myvo-team-faces { display: flex; align-items: center; gap: 14px; }
.myvo-team-faces-row { display: flex; flex: 0 0 auto; }
.myvo-team-faces-row img { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; object-position: center 25%; border: 3px solid #fff; box-shadow: 0 2px 8px rgba(0,0,0,.12); margin-left: -12px; }
.myvo-team-faces-row img:first-child { margin-left: 0; }
.myvo-team-faces p { margin: 0; font-size: 14px; line-height: 1.4; color: var(--togo-common-black); font-weight: 500; }

/* Photo banners: breadcrumb centred above the title; optional eyebrow and subtitle. */
.togo-breadcrumb-style-2-ptb .myvo-banner-crumbs { margin-bottom: 18px; }
.togo-breadcrumb-style-2-ptb .togo-breadcrumb-list ul { justify-content: center; }
.myvo-banner-eyebrow { display: inline-flex; align-items: center; gap: 12px; margin-bottom: 14px; font-family: var(--togo-ff-outfit); font-size: 13px; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; color: #FFB547; }
.myvo-banner-eyebrow::before, .myvo-banner-eyebrow::after { content: ""; width: 28px; height: 1.5px; background: currentColor; opacity: .8; }
.togo-breadcrumb-style-2-ptb .togo-breadcrumb-title { text-shadow: 0 2px 24px rgba(0,0,0,.35); }
.togo-breadcrumb-style-2-ptb .togo-breadcrumb-text p { max-width: 640px; margin: 10px auto 0; color: rgba(255,255,255,.92); font-size: 18px; text-shadow: 0 1px 12px rgba(0,0,0,.4); }

/* Video call booking pop-up (Google Calendar appointment schedule). */
.myvo-video-dialog { position: fixed; inset: 0; margin: auto; width: min(960px, calc(100vw - 32px)); height: fit-content; max-height: calc(100vh - 48px); padding: 0; border: 0; border-radius: 16px; box-shadow: 0 30px 80px rgba(0,0,0,.35); overflow: hidden; }
.myvo-video-dialog::backdrop { background: rgba(10,14,20,.6); backdrop-filter: blur(3px); }
.myvo-video-dialog-head { display: flex; align-items: center; justify-content: space-between; padding: 18px 22px 4px; }
.myvo-video-dialog-head h2 { margin: 0; font-size: 22px; }
.myvo-video-close { width: 40px; height: 40px; border: 0; border-radius: 50%; background: #f2f2f2; font-size: 26px; line-height: 1; cursor: pointer; }
.myvo-video-note { margin: 0; padding: 0 22px 12px; color: #555; font-size: 15px; }
.myvo-video-dialog iframe { display: block; width: 100%; height: min(680px, calc(100vh - 160px)); border: 0; border-top: 1px solid #eee; }
.myvo-video-text-link { display: block; margin-top: 12px; text-align: center; font-weight: 500; color: var(--togo-common-black); text-decoration: underline; text-underline-offset: 3px; }

/* Video call prompts. */
.myvo-hero-call { margin: 16px 0 0 !important; color: rgba(255,255,255,.9) !important; font-size: 15px !important; text-shadow: 0 1px 10px rgba(0,0,0,.5); }
.myvo-hero-call-link { display: inline-flex; align-items: center; gap: 6px; margin-left: 4px; color: #fff; font-weight: 600; text-decoration: underline; text-decoration-color: #FFB547; text-underline-offset: 4px; }
.myvo-hero-call-link span svg { width: 17px; height: 17px; stroke: #FFB547; }
.myvo-hero-call-link:hover { color: #FFB547; }
.togo-guide-2-btn-box { flex-wrap: wrap; gap: 14px 24px; }
.myvo-call-note { display: flex; align-items: center; gap: 14px; margin-bottom: 28px; padding: 14px 16px; border: 1px solid #f3d9cf; border-radius: 12px; background: #fff7f3; }
.myvo-call-note > svg { flex: 0 0 auto; width: 22px; height: 22px; stroke: var(--togo-theme-primary); }
.myvo-call-note p { flex: 1 1 auto; margin: 0; font-size: 15px; line-height: 1.45; color: var(--togo-common-black); }
.myvo-call-note-btn { flex: 0 0 auto; padding: 9px 18px; border-radius: 40px; background: var(--togo-theme-primary); color: #fff; font-weight: 600; font-size: 14px; white-space: nowrap; }
.myvo-call-note-btn:hover { background: var(--togo-common-orange); color: #fff; }
@media (max-width: 575px) { .myvo-call-note { flex-wrap: wrap; } .myvo-call-note-btn { width: 100%; text-align: center; } }
.myvo-offcanvas-contact li a span, .myvo-footer-contact .togo-footer-widget-info-item a span { display: inline-flex; }
.myvo-band-call { margin-top: 18px !important; text-align: left; }
/* Small phones: language lives in the menu (shown as buttons there), so the header bar keeps logo, call and menu only. */
@media (max-width: 575px) { .myvo-header-lang { display: none; } .togo-header-2-right { gap: 14px; } }

/* Keep question and day titles as written (title case is wrong in DE/ES/PT/FR). */
.togo-faq-wrapper .accordion-buttons { text-transform: none; }

/* Trip header gallery: even grid for 1–5 photos (own photos, then photos of the places on the route). */
.myvo-gallery { display: grid; gap: 10px; height: 560px; grid-template-columns: 7fr 5fr; grid-template-rows: 1fr 1fr; }
.myvo-gallery-item, .myvo-gallery-item a { display: block; height: 100%; min-height: 0; }
.myvo-gallery-item img { width: 100%; height: 100%; object-fit: cover; }
.myvo-gallery-item:first-child { grid-row: 1 / -1; }
.myvo-gallery-n1 { grid-template-columns: 1fr; height: 470px; }
.myvo-gallery-n2 .myvo-gallery-item:nth-child(2) { grid-row: 1 / -1; }
.myvo-gallery-n4, .myvo-gallery-n5 { grid-template-columns: 7fr 2.5fr 2.5fr; }
.myvo-gallery-n4 .myvo-gallery-item:nth-child(2) { grid-column: 2 / -1; }
/* Phones and tablets: swipeable slider (next photo peeks in), with a 1 / n counter. */
.myvo-gallery-wrap { position: relative; }
.myvo-gallery-count { display: none; }
@media (max-width: 991px) {
	.myvo-gallery { display: flex; height: 340px; gap: 8px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
	.myvo-gallery::-webkit-scrollbar { display: none; }
	.myvo-gallery-item, .myvo-gallery-item:first-child { flex: 0 0 88%; height: 100%; scroll-snap-align: start; }
	.myvo-gallery-n1 .myvo-gallery-item { flex-basis: 100%; }
	.myvo-gallery-item img:hover { transform: none; }
	.myvo-gallery-count { display: block; position: absolute; right: 12px; bottom: 12px; padding: 4px 10px; border-radius: 20px; background: rgba(0,0,0,.6); color: #fff; font-size: 13px; line-height: 1.4; pointer-events: none; }
}
@media (max-width: 575px) { .myvo-gallery { height: 260px; } }

/* Mobile menu always above the sticky header (both were z-index 999, so the header covered the close button). */
.offcanvas-wrapper { z-index: 10001; overflow-y: auto; overscroll-behavior: contain; }
.body-overlay { z-index: 10000; }
html.myvo-menu-open, html.myvo-menu-open body { overflow: hidden; }
/* Menu top bar (logo + close) stays pinned while the menu content scrolls. */
.offcanvas-wrapper { padding-top: 0; }
.offcanvas-top { position: sticky; top: 0; z-index: 3; margin: 0 -40px 30px; padding: 24px 40px 16px; background: #fff; box-shadow: 0 1px 0 #eee; }
@media (max-width: 575px) { .offcanvas-wrapper { padding-left: 24px; padding-right: 24px; } .offcanvas-top { margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; } }
/* Mobile menu language select (Togo field look). */
.myvo-lang-select select { width: 100%; height: 48px; padding: 0 44px 0 16px; border: 1px solid #ddd; border-radius: 8px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23111' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 16px center; color: var(--togo-common-black); font-size: 15px; font-weight: 500; -webkit-appearance: none; appearance: none; cursor: pointer; }
.myvo-lang-select select:focus-visible { outline: 2px solid var(--togo-theme-primary); outline-offset: 2px; }
/* Mobile menu: WhatsApp in WhatsApp green, video call in Google Meet blue (text colours pass contrast). */
.myvo-offcanvas-contact li.myvo-c-whatsapp a { color: #0B7D4E; }
.myvo-offcanvas-contact li.myvo-c-whatsapp svg { color: #25D366; }
.myvo-offcanvas-contact li.myvo-c-meet a { color: #1A73E8; }
.myvo-offcanvas-contact li.myvo-c-whatsapp svg path, .myvo-offcanvas-contact li.myvo-c-meet svg path { stroke: currentColor; }
/* Guide and article text (destinations, countries, trips, travel guide): readable heading sizes, tables and lists. */
.togo-tour-details-text h2.wp-block-heading, .togo-postbox-details-text h2.wp-block-heading { font-size: 28px; line-height: 1.25; margin: 40px 0 12px; }
.togo-tour-details-text h3.wp-block-heading, .togo-postbox-details-text h3.wp-block-heading { font-size: 21px; line-height: 1.3; margin: 28px 0 8px; }
.togo-tour-details-text > h2.wp-block-heading:first-child, .togo-postbox-details-text > h2.wp-block-heading:first-child { margin-top: 0; }
.togo-tour-details-text ul.wp-block-list, .togo-postbox-details-text ul.wp-block-list { margin: 0 0 20px; padding-left: 20px; list-style: disc; }
.togo-tour-details-text ul.wp-block-list li, .togo-postbox-details-text ul.wp-block-list li { margin-bottom: 6px; }
.togo-tour-details-text .wp-block-table, .togo-postbox-details-text .wp-block-table { margin: 8px 0 20px; overflow-x: auto; }
.togo-tour-details-text .wp-block-table table, .togo-postbox-details-text .wp-block-table table { width: 100%; border-collapse: collapse; font-size: 15px; }
.togo-tour-details-text .wp-block-table th, .togo-postbox-details-text .wp-block-table th , .togo-tour-details-text .wp-block-table td, .togo-postbox-details-text .wp-block-table td { padding: 10px 12px; border: 1px solid #e5e5e5; text-align: left; vertical-align: top; }
.togo-tour-details-text .wp-block-table thead th, .togo-postbox-details-text .wp-block-table thead th { background: #f6f6f6; font-weight: 600; }
@media (max-width: 767px) {
	.togo-tour-details-text h2.wp-block-heading, .togo-postbox-details-text h2.wp-block-heading { font-size: 24px; margin-top: 32px; }
	.togo-tour-details-text h3.wp-block-heading, .togo-postbox-details-text h3.wp-block-heading { font-size: 19px; }
	.togo-tour-details-text .wp-block-table table, .togo-postbox-details-text .wp-block-table table { min-width: 520px; }
}
/* Loading screen: the SA logo (reversed colours on brand orange) in the centre of Togo's dot ring. */
.myvo-loader-mark { position: absolute; top: 50%; left: 50%; width: 60px; height: 60px; margin: -30px 0 0 -30px; animation: myvo-loader-pulse 1.6s ease-in-out infinite; }
.myvo-loader-mark svg { display: block; border-radius: 9px; box-shadow: 0 6px 18px rgba(0,0,0,.18); }
@keyframes myvo-loader-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.08); } }
@media (prefers-reduced-motion: reduce) { .myvo-loader-mark { animation: none; } }
/* Hero search: the destination dropdown must sit above the trust ticks and video-call line below it. */
.togo-hero-2-search-wrap, .togo-hero-2-search-box { position: relative; z-index: 30; } /* The wrap's fade-in transform creates the stacking layer, so it needs the z-index. */
.togo-hero-2-search-box .field-location__result { z-index: 31; }
.myvo-hero-trust, .myvo-hero-call { position: relative; z-index: 1; }
/* Calmer hero hierarchy: headline, one-line subheading, search, one row of ticks + video link. */
.myvo-hero-title { font-size: clamp(38px, 4.8vw, 68px) !important; line-height: 1.06 !important; }
.togo-hero-2-text p { max-width: 760px; margin-left: auto; margin-right: auto; font-size: 18px; }
.togo-hero-2-heading .togo-hero-2-text { max-width: none; }
.myvo-hero-trust { margin-top: 22px; font-size: 14px; }
.myvo-hero-trust-call { flex-basis: 100%; justify-content: center; }
@media (min-width: 1200px) { .myvo-hero-trust-call { flex-basis: auto; padding-left: 18px; border-left: 1px solid rgba(255,255,255,.35); } }
.myvo-hero-trust-call .myvo-hero-call-link { margin-left: 0; }
@media (max-width: 767px) { .togo-hero-2-text p { font-size: 16px; } }

/* Carousels on mobile: glimpse of the next card + progress bar (see site.js). */
.myvo-carousel-progress { display: none; }
@media (max-width: 767.98px) {
	.togo-tour-ptb .togo-destination-right,
	.togo-destination-ptb .togo-destination-right { display: none; }
	.togo-tour-ptb .togo-tour-2-heading,
	.togo-destination-ptb .togo-destination-heading { margin-bottom: 24px; }
	.togo-tour-2-slider-wrapper,
	.togo-destination-2-slider-wrapper { overflow: hidden; }
	.togo-tour-2-slider-wrapper .togo-tour-card-active .slider_pagination { display: none; }
	.myvo-carousel-progress.swiper-pagination-progressbar {
		display: block; position: relative; height: 3px; margin-top: 24px;
		background: rgba(0, 0, 0, .1); border-radius: 3px; overflow: hidden;
	}
	.myvo-carousel-progress .swiper-pagination-progressbar-fill {
		position: absolute; inset: 0; background: var(--togo-theme-primary, #FD4621);
		transform-origin: left top; border-radius: 3px;
	}
}
