html {
  background: var(--ctm-bg-page);
}

body.ctm-design-system {
  background-color: var(--ctm-bg-page) !important;
  color: var(--ctm-text-body);
}

body.ctm-design-system .site,
body.ctm-design-system .site-content,
body.ctm-design-system .site-main,
body.ctm-design-system main,
body.ctm-design-system .elementor-location-single,
body.ctm-design-system .elementor-location-archive {
  background-color: transparent;
}

body.ctm-design-system .site-main,
body.ctm-design-system .site-content,
body.ctm-design-system .elementor-location-single,
body.ctm-design-system .elementor-location-archive {
  max-width: var(--ctm-content-max);
  margin-left: auto;
  margin-right: auto;
}

body.ctm-design-system :is(h1, h2, h3, h4, h5, h6, .entry-title, .elementor-heading-title) {
  color: var(--ctm-text-heading);
}

body.ctm-design-system :is(p, li, dd, figcaption, .entry-content, .page-content) {
  color: var(--ctm-text-body);
}

body.ctm-design-system :is(small, .meta, .post-meta, .entry-meta, .ctm-article-meta, .ctm-index-card p, .ctm-faq-card p, .ctm-home-guide-copy em) {
  color: var(--ctm-text-muted) !important;
}

body.ctm-design-system a {
  color: var(--ctm-primary-hover);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

body.ctm-design-system a:hover,
body.ctm-design-system a:focus-visible {
  color: var(--ctm-primary-hover);
}

body.ctm-design-system :focus-visible {
  outline: 2px solid var(--ctm-primary);
  outline-offset: 3px;
}

body.ctm-design-system .ctm-faq-page {
  --sand: var(--ctm-bg-page);
  --cream: var(--ctm-bg-section);
  --paper: var(--ctm-bg-card);
  --line: var(--ctm-border-light);
  --ink: var(--ctm-text-heading);
  --muted: var(--ctm-text-muted);
  --red: var(--ctm-primary);
  --red-dark: var(--ctm-primary-hover);
  --sage: var(--ctm-secondary);
}

body.ctm-design-system :is(.site-header, .elementor-location-header, .ctm-faq-site-nav, .ctm-article-site-nav) {
  background: var(--ctm-bg-overlay) !important;
  border-bottom: 1px solid var(--ctm-border-light) !important;
  box-shadow: var(--ctm-shadow-site-header) !important;
  color: var(--ctm-text-heading);
}

body.ctm-design-system :is(.ctm-faq-site-nav, .ctm-article-site-nav) {
  border-radius: 0;
}

body.ctm-design-system :is(.ctm-faq-brand, .ctm-article-brand, .site-title a, .custom-logo-link) {
  color: var(--ctm-text-heading) !important;
}

body.ctm-design-system :is(.ctm-faq-brand span, .ctm-article-brand span, .site-title span) {
  color: var(--ctm-primary-hover) !important;
}

body.ctm-design-system :is(.ctm-faq-site-nav nav a, .ctm-article-site-nav nav a, .site-header a, .elementor-location-header a) {
  color: var(--ctm-text-heading) !important;
}

body.ctm-design-system :is(.ctm-faq-site-nav nav a:hover, .ctm-faq-site-nav nav a.is-active, .ctm-article-site-nav nav a:hover, .ctm-article-site-nav nav a.is-active, .site-header a:hover, .elementor-location-header a:hover) {
  color: var(--ctm-primary-hover) !important;
  border-bottom-color: var(--ctm-primary) !important;
}

body.ctm-design-system :is(.sub-menu, .elementor-nav-menu--dropdown) {
  background: var(--ctm-bg-card) !important;
  border: 1px solid var(--ctm-border-light) !important;
  border-radius: var(--ctm-radius-sm);
  box-shadow: var(--ctm-shadow-md);
}

body.ctm-design-system :is(.site-footer, footer, .elementor-location-footer) {
  background: var(--ctm-footer-bg) !important;
  color: var(--ctm-footer-text) !important;
  border-top: 0 !important;
}

body.ctm-design-system :is(.site-footer h2, .site-footer h3, .site-footer h4, footer h2, footer h3, footer h4, .elementor-location-footer h2, .elementor-location-footer h3) {
  color: var(--ctm-text-light) !important;
}

body.ctm-design-system :is(.site-footer a, footer a, .elementor-location-footer a) {
  color: var(--ctm-footer-text) !important;
}

body.ctm-design-system :is(.site-footer a:hover, footer a:hover, .elementor-location-footer a:hover) {
  color: var(--ctm-primary-soft) !important;
}

body.ctm-design-system :is(.ctm-index-hero, .ctm-index-card, .ctm-index-empty, .ctm-faq-hero, .ctm-faq-group-card, .ctm-faq-side-panel, .ctm-faq-side-card, .ctm-faq-card, .ctm-faq-single, .ctm-faq-single-hero, .ctm-faq-popular-card, .ctm-faq-stats div, .ctm-home-faq-item, .ctm-home-faq-empty, .ctm-home-guide-card, .ctm-home-guide-empty, .ctm-home-guide-panel, .ctm-side-card, .ctm-related-faq-list details, .ctm-faq-redesign-card, .ctm-faq-sidebar-card, .ctm-faq-redesign-empty, body.single-post .page-header, body.single-post .page-content, body.single-post .comment-form, body.single-post .comments-area, body.single-ctm_knowledge .page-header, body.single-ctm_knowledge .page-content, body.single-ctm_city_guide .page-header, body.single-ctm_city_guide .page-content, body.single-ctm_app_tool .page-header, body.single-ctm_app_tool .page-content, body.single-tour .page-header, body.single-tour .page-content, .uagb-post__inner-wrap, .wp-block-post, .vc_grid-item-mini) {
  background-color: var(--ctm-bg-card) !important;
  border-color: var(--ctm-border-light) !important;
  border-radius: var(--ctm-radius-md) !important;
  box-shadow: var(--ctm-shadow-sm) !important;
}

body.ctm-design-system.single-post :is(.page-header, .page-content, .comment-form, .comments-area),
body.ctm-design-system.single-ctm_knowledge :is(.page-header, .page-content),
body.ctm-design-system.single-ctm_city_guide :is(.page-header, .page-content),
body.ctm-design-system.single-ctm_app_tool :is(.page-header, .page-content),
body.ctm-design-system.single-tour :is(.page-header, .page-content) {
  background-color: var(--ctm-bg-card) !important;
  border-color: var(--ctm-border-light) !important;
  border-radius: var(--ctm-radius-md) !important;
  box-shadow: var(--ctm-shadow-sm) !important;
}

body.ctm-design-system :is(.ctm-faq-drawer, .ctm-related-faqs, .ctm-faq-direct-answer, .ctm-faq-redesign-row, .ctm-faq-minimal-search, .ctm-faq-searchbar, .wp-block-group, blockquote) {
  background-color: var(--ctm-bg-section) !important;
  border-color: var(--ctm-border-light) !important;
}

body.ctm-design-system :is(.ctm-faq-hub-hero, .ctm-faq-bottom-cta) {
  background: linear-gradient(105deg, var(--ctm-bg-section), var(--ctm-secondary-softest)) !important;
  border: 1px solid var(--ctm-border-light);
}

body.ctm-design-system :is(.ctm-index-card, .ctm-faq-popular-card, .ctm-faq-card, .ctm-home-guide-card, .ctm-home-faq-item, .ctm-faq-redesign-card) {
  transition: transform var(--ctm-motion-base), border-color var(--ctm-motion-base), box-shadow var(--ctm-motion-base), background-color var(--ctm-motion-base);
}

body.ctm-design-system :is(.ctm-index-card:hover, .ctm-faq-popular-card:hover, .ctm-faq-card:hover, .ctm-home-guide-card:hover, .ctm-home-faq-item:hover, .ctm-faq-redesign-card:hover) {
  border-color: var(--ctm-primary-soft) !important;
  box-shadow: var(--ctm-shadow-md) !important;
  transform: translateY(-1px);
}

body.ctm-design-system :is(.ctm-index-media, .ctm-faq-guide-media, .ctm-faq-redesign-thumb, .ctm-home-guide-media, body.single-post .page-content figure.wp-block-image) {
  background-color: var(--ctm-bg-card-muted) !important;
  border-color: var(--ctm-border-light) !important;
}

body.ctm-design-system.single-post .page-content figure.wp-block-image {
  background-color: var(--ctm-bg-card-muted) !important;
  border-color: var(--ctm-border-light) !important;
}

body.ctm-design-system :is(.ctm-index-kicker, .ctm-index-label, .ctm-faq-card span, .ctm-faq-group-heading span, .ctm-faq-hero p, .ctm-faq-single-hero p, .ctm-home-faqs-head p, .ctm-panel-kicker, .ctm-faq-side-list h3, .ctm-faq-side-title strong, .ctm-faq-redesign-copy > p, .ctm-faq-redesign-hero-copy > p) {
  color: var(--ctm-primary-hover) !important;
}

body.ctm-design-system :is(.ctm-index-label, .ctm-faq-card span, .ctm-home-guide-copy small) {
  background: var(--ctm-primary-softest) !important;
  border-radius: 999px;
  color: var(--ctm-primary-hover) !important;
  padding: 5px 9px;
}

body.ctm-design-system :is(.ctm-faq-topic-mark, .ctm-home-guide-media i, .ctm-faq-most-card i) {
  background: var(--ctm-primary-softest) !important;
  border-color: var(--ctm-primary-soft) !important;
  color: var(--ctm-primary-hover) !important;
}

body.ctm-design-system :is(.elementor-button, .wp-block-button__link, .button, button[type="submit"], input[type="submit"], .search-submit, .ctm-faq-read-guide, .ctm-home-panel-cta, .ctm-faq-minimal-search button, .ctm-faq-redesign-copy > a, .ctm-index-tax-nav a.is-active, .ctm-index-tax-nav button.is-active, .ctm-faq-primary-tabs button.is-active, .ctm-faq-secondary-row button.is-active, .vc_btn3.vc_btn3-color-danger, .vc_btn3.vc_btn3-color-red, .vc_btn3.vc_btn3-color-peacoc, .uagb-buttons-repeater.wp-block-button__link) {
  background: var(--ctm-action-accent-bg) !important;
  border-color: var(--ctm-action-accent-bg) !important;
  color: var(--ctm-action-accent-text) !important;
  border-radius: var(--ctm-radius-sm) !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

body.ctm-design-system :is(.elementor-button:hover, .wp-block-button__link:hover, .button:hover, button[type="submit"]:hover, input[type="submit"]:hover, .search-submit:hover, .ctm-faq-read-guide:hover, .ctm-home-panel-cta:hover, .ctm-faq-minimal-search button:hover, .ctm-faq-redesign-copy > a:hover, .vc_btn3.vc_btn3-color-danger:hover, .vc_btn3.vc_btn3-color-red:hover, .vc_btn3.vc_btn3-color-peacoc:hover, .uagb-buttons-repeater.wp-block-button__link:hover) {
  background: var(--ctm-action-accent-bg-hover) !important;
  border-color: var(--ctm-action-accent-bg-hover) !important;
  color: var(--ctm-action-accent-text) !important;
  transform: translateY(-1px);
}

body.ctm-design-system :is(.ctm-home-faqs-head > a, .ctm-home-faq-empty a, .ctm-faq-group-heading a, .ctm-faq-guide-link, .ctm-faq-actions a, .ctm-faq-drawer-actions a, .ctm-faq-guide-links a, .ctm-faq-help-panel a, .ctm-home-guide-empty a, .ctm-next-steps a, .vc_btn3.vc_btn3-style-outline, .elementor-button.elementor-size-sm) {
  background: var(--ctm-bg-card) !important;
  border: 1px solid var(--ctm-border) !important;
  color: var(--ctm-primary-hover) !important;
  border-radius: var(--ctm-radius-sm) !important;
  box-shadow: none !important;
}

body.ctm-design-system :is(.ctm-home-faqs-head > a:hover, .ctm-home-faq-empty a:hover, .ctm-faq-group-heading a:hover, .ctm-faq-guide-link:hover, .ctm-faq-actions a:hover, .ctm-faq-drawer-actions a:hover, .ctm-faq-guide-links a:hover, .ctm-faq-help-panel a:hover, .ctm-home-guide-empty a:hover, .ctm-next-steps a:hover, .vc_btn3.vc_btn3-style-outline:hover, .elementor-button.elementor-size-sm:hover) {
  background: var(--ctm-primary-softest) !important;
  border-color: var(--ctm-primary-soft) !important;
  color: var(--ctm-primary-hover) !important;
}

body.ctm-design-system :is(.ctm-faq-support-button, .ctm-faq-bottom-cta nav a:first-child, .ctm-quick-action-flights, .ctm-action-flights, [data-ctm-action="flights"]) {
  background: var(--ctm-secondary) !important;
  border-color: var(--ctm-secondary) !important;
  color: var(--ctm-text-light) !important;
}

body.ctm-design-system :is(.ctm-quick-action-train, .ctm-quick-action-trains, .ctm-action-train, .ctm-action-trains, [data-ctm-action="train"], [data-ctm-action="trains"]) {
  background: var(--ctm-accent-sand) !important;
  border-color: var(--ctm-accent-sand) !important;
  color: var(--ctm-text-heading) !important;
}

body.ctm-design-system :is(.ctm-quick-action-things, .ctm-action-things, [data-ctm-action="things"]) {
  background: var(--ctm-secondary-hover) !important;
  border-color: var(--ctm-secondary-hover) !important;
  color: var(--ctm-text-light) !important;
}

body.ctm-design-system :is(.ctm-index-tax-nav, .ctm-faq-tax-nav, .ctm-faq-primary-tabs, .ctm-faq-secondary-row) {
  background: var(--ctm-surface-section-overlay) !important;
  border-color: var(--ctm-border-light) !important;
  box-shadow: var(--ctm-shadow-sticky-panel) !important;
}

body.ctm-design-system :is(.ctm-index-tax-nav a, .ctm-index-tax-nav button, .ctm-faq-primary-tabs button, .ctm-faq-secondary-row button, .ctm-home-practical-guide .ctm-tab) {
  background: var(--ctm-bg-card) !important;
  border-color: var(--ctm-border-light) !important;
  color: var(--ctm-text-heading) !important;
  border-radius: var(--ctm-radius-sm) !important;
}

body.ctm-design-system :is(.ctm-index-tax-nav a:hover, .ctm-index-tax-nav button:hover, .ctm-faq-primary-tabs button:hover, .ctm-faq-secondary-row button:hover, .ctm-home-practical-guide .ctm-tab:hover) {
  background: var(--ctm-primary-softest) !important;
  border-color: var(--ctm-primary-soft) !important;
  color: var(--ctm-primary-hover) !important;
}

body.ctm-design-system :is(.ctm-home-practical-guide .ctm-tab.active, .ctm-home-practical-guide .ctm-tab.is-active) {
  background: var(--ctm-text-heading) !important;
  border-color: var(--ctm-text-heading) !important;
  color: var(--ctm-text-light) !important;
}

body.ctm-design-system :is(.ctm-faq-drawer summary, .ctm-home-faq-item summary, .ctm-faq-redesign-row button) {
  color: var(--ctm-text-heading) !important;
}

body.ctm-design-system .ctm-faq-drawer summary::after,
body.ctm-design-system :is(.ctm-home-faq-item summary i, .ctm-faq-redesign-row button i) {
  border-color: var(--ctm-border) !important;
  color: var(--ctm-primary-hover) !important;
}

body.ctm-design-system .ctm-faq-drawer[open] summary::after,
body.ctm-design-system :is(.ctm-home-faq-item[open] summary i, .ctm-faq-redesign-row button[aria-expanded="true"] i) {
  background: var(--ctm-action-accent-bg) !important;
  border-color: var(--ctm-action-accent-bg) !important;
  color: var(--ctm-text-light) !important;
}

body.ctm-design-system :is(.ctm-faq-direct-answer, blockquote, body.single-post .page-content blockquote) {
  background: var(--ctm-accent-sand-soft) !important;
  border-left-color: var(--ctm-primary) !important;
}

body.ctm-design-system :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]), select, textarea, .elementor-field, .wpforms-field-medium) {
  background: var(--ctm-bg-card) !important;
  border: 1px solid var(--ctm-border) !important;
  border-radius: var(--ctm-radius-sm) !important;
  color: var(--ctm-text-body) !important;
  box-shadow: none !important;
}

body.ctm-design-system :is(input, textarea)::placeholder {
  color: var(--ctm-text-placeholder) !important;
}

body.ctm-design-system :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):focus, select:focus, textarea:focus, .elementor-field:focus) {
  border-color: var(--ctm-control-border-focus) !important;
  box-shadow: var(--ctm-shadow-focus) !important;
  outline: var(--ctm-focus-outline) !important;
  outline-offset: 3px !important;
}

body.ctm-design-system :is(.ctm-faq-minimal-search select) {
  background-color: transparent !important;
  background-image: linear-gradient(45deg, transparent 50%, var(--ctm-primary) 50%), linear-gradient(135deg, var(--ctm-primary) 50%, transparent 50%) !important;
}

body.ctm-design-system .ctm-faq-hero::before,
body.ctm-design-system.single-post .page-content h2::after,
body.ctm-design-system .ctm-home-topic-status span::before {
  background: var(--ctm-primary) !important;
}

body.ctm-design-system :is(.ctm-faq-card-ghost, .ctm-faq-line-art-train, .ctm-faq-line-art-city, .ctm-faq-line-art-payment, .ctm-faq-css-mountains) {
  opacity: 0.2;
}

body.ctm-design-system .ctm-faq-card-ghost {
  background: linear-gradient(135deg, transparent 0%, transparent 45%, var(--ctm-primary-soft) 46%, transparent 47%), linear-gradient(180deg, var(--ctm-primary-soft), var(--ctm-accent-sand-soft)) !important;
}

body.ctm-design-system .ctm-faq-redesign-stats i {
  background: linear-gradient(135deg, var(--ctm-action-accent-bg), var(--ctm-action-accent-bg-hover)) !important;
  color: var(--ctm-text-light) !important;
}

body.ctm-design-system .ctm-faq-redesign-stats i.sage {
  background: var(--ctm-secondary) !important;
}

body.ctm-design-system :is(table, th, td) {
  border-color: var(--ctm-border) !important;
}

body.ctm-design-system th {
  background: var(--ctm-secondary-softest) !important;
  color: var(--ctm-text-heading) !important;
}

body.ctm-design-system :is(.has-primary-background-color, .has-vivid-red-background-color) {
  background-color: var(--ctm-action-accent-bg) !important;
  color: var(--ctm-action-accent-text) !important;
}

body.ctm-design-system :is(.has-primary-color, .has-vivid-red-color) {
  color: var(--ctm-primary-hover) !important;
}

body.ctm-design-system :is(.elementor-section, .elementor-top-section, .e-con, .wpb_row, .vc_row, .uagb-section__wrap) {
  --ctm-section-bg: var(--ctm-bg-section);
}

body.ctm-design-system :is(.elementor-section.ctm-muted, .e-con.ctm-muted, .wpb_row.ctm-muted, .vc_row.ctm-muted) {
  background-color: var(--ctm-bg-section) !important;
}

body.ctm-design-system :is(.elementor-widget-icon, .elementor-icon, .uagb-icon, .vc_icon_element-icon, .ctm-faq-redesign-search > svg) {
  color: var(--ctm-secondary) !important;
  fill: none;
}

body.ctm-design-system :is(.ctm-label-terracotta, .label-featured, .tag-featured, .badge-featured) {
  background: var(--ctm-primary-softest) !important;
  color: var(--ctm-primary-hover) !important;
}

body.ctm-design-system :is(.ctm-label-sage, .label-practical, .tag-practical, .badge-practical) {
  background: var(--ctm-secondary-softest) !important;
  color: var(--ctm-secondary-hover) !important;
}

body.ctm-design-system :is(.ctm-label-sand, .label-culture, .tag-culture, .badge-culture) {
  background: var(--ctm-accent-sand-soft) !important;
  color: var(--ctm-warning-text) !important;
}

@media (max-width: 1024px) {
  body.ctm-design-system .site-main,
  body.ctm-design-system .site-content {
    max-width: 100%;
  }
}

@media (max-width: 768px) {
  body.ctm-design-system :is(.ctm-faq-site-nav, .ctm-article-site-nav) {
    margin-left: 18px !important;
    margin-right: 18px !important;
    padding: 14px 18px !important;
  }

  body.ctm-design-system :is(.ctm-index-hero, .ctm-faq-hero, .ctm-faq-group-card, .ctm-faq-single, .ctm-faq-single-hero, .ctm-index-card, body.single-post .page-header, body.single-post .page-content) {
    border-radius: var(--ctm-radius-sm) !important;
  }

  body.ctm-design-system :is(.ctm-index-grid, .ctm-faq-hub-layout, .ctm-faq-group-list, .ctm-faq-list, .ctm-home-faqs, .ctm-faq-single-layout) {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }
}
