/* Shared type system for Elementor documents and the theme components they use. */
@font-face {
  font-family: 'Cheetah Sans';
  src: url('../fonts/cheetah-inter.woff2') format('woff2');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
:root {
  --sans: 'Cheetah Sans', Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  --serif: var(--sans);
  --font-display: var(--sans);
  --font-body: var(--sans);
}
body { font-family: var(--sans); font-weight: 400; line-height: 1.6; }
body h1, body h2, body h3, body h4, body h5, body h6,
body .elementor .elementor-heading-title {
  font-family: var(--sans) !important;
  font-weight: 650 !important;
  letter-spacing: -.025em !important;
  line-height: 1.2 !important;
}
body h1, body .elementor h1.elementor-heading-title { font-weight: 700 !important; }
body .elementor h1.elementor-heading-title { font-size: clamp(2.4rem,5.2vw,4.75rem) !important; }
body .elementor h2.elementor-heading-title { font-size: clamp(1.65rem,3.1vw,2.9rem) !important; }
body .elementor h3.elementor-heading-title { font-size: clamp(1.15rem,1.8vw,1.5rem) !important; }
body .elementor .elementor-widget-text-editor,
body .elementor .elementor-button,
body input, body textarea, body select, body button { font-family: var(--sans) !important; }
body .elementor .elementor-button { font-weight: 700; letter-spacing: .01em; }
body .elementor :is(.cheetah-editable-card-body,.cheetah-cultural-package-card__body,.cheetah-adventure-package-card__body) h3.elementor-heading-title {
  font-size: clamp(1.15rem,1.65vw,1.4rem) !important;
  font-weight: 700 !important; line-height: 1.35 !important; letter-spacing: -.015em !important;
}
:is(.cheetah-editable-card-intro,.cheetah-cultural-package-card__copy,.cheetah-adventure-package-card__copy) p { font-weight: 400; line-height: 1.6; }
:is(.cheetah-editable-card-price,.cheetah-cultural-package-card__stat--price,.cheetah-adventure-package-card__stat--price) { font-variant-numeric: lining-nums tabular-nums; }
body:lang(ar) { --sans: Tahoma, 'Segoe UI', Arial, sans-serif; }
body:lang(ja) { --sans: 'Cheetah Sans', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', Meiryo, sans-serif; }
body:lang(zh) { --sans: 'Cheetah Sans', 'PingFang SC', 'Microsoft YaHei', sans-serif; }
body:lang(ar) :is(h1,h2,h3,h4,h5,h6), body:lang(ar) .elementor .elementor-heading-title,
body:lang(ja) .elementor .elementor-heading-title, body:lang(zh) .elementor .elementor-heading-title { letter-spacing: 0 !important; line-height: 1.4 !important; }

/* Dynamic Elementor tour widgets render native headings, outside heading widgets. */
body.single-product .tour-detail__legacy .legacy-heading h2 {
  font-size: clamp(1.65rem,2.8vw,2.5rem) !important; line-height: 1.25 !important;
}
body.single-product .tour-detail__legacy .legacy-heading h3 {
  font-size: clamp(1.2rem,2vw,1.6rem) !important; line-height: 1.35 !important;
}
body .cheetah-native-slider .cheetah-native-slider__caption h3,
body.single-product .tour-detail__legacy #gallery .cheetah-native-slider .cheetah-native-slider__caption h3 {
  font-size: clamp(1rem,1.6vw,1.375rem) !important; line-height: 1.4 !important;
  font-weight: 600 !important; letter-spacing: 0 !important; overflow-wrap: anywhere;
  margin: 0 !important; max-width: 100%;
}
body .cheetah-native-slider__caption { inset-inline: 22px; bottom: 100px; max-width: calc(100% - 44px); }
body .cheetah-native-slider__eyebrow { font-size: .65rem; }
@media(max-width:699px) {
  body .cheetah-native-slider__caption { inset-inline: 16px; bottom: 98px; max-width: calc(100% - 32px); }
  body .cheetah-native-slider__caption p { font-size: .82rem; line-height: 1.5; }
}

/* One heading scale for widget headings and the native content inside widgets. */
body .elementor h1, body .site-main h1 { font-size: clamp(2.1rem,4.5vw,4.5rem) !important; }
body .elementor h2, body .site-main h2 { font-size: clamp(1.55rem,2.8vw,2.75rem) !important; }
body .elementor h3, body .site-main h3 { font-size: clamp(1.15rem,1.8vw,1.6rem) !important; }
body .elementor h4, body .site-main h4 { font-size: clamp(1.05rem,1.5vw,1.25rem) !important; }
body .elementor h5, body .site-main h5, body .elementor h6, body .site-main h6 { font-size: 1rem !important; }

/* Imported WordPress captions may retain a fixed inline pixel width. */
body .site-main :is(.wp-caption,figure.legacy-image) { max-width: 100%; }
body .site-main :is(.legacy-text,.wp-caption) img { max-width: 100%; height: auto; }
body .site-main .wp-caption { margin-inline: auto; }

body :is(h1,h2,h3,h4,h5,h6) { overflow-wrap: anywhere; }
body .site-main :is(h1,h2,h3,h4,h5,h6) { max-width: 100%; }
