/* Cao Bang Travel — Dark Nature Premium design system */
:root {
  --cbt-bg: #17231f;
  --cbt-bg-elevated: #202d38;
  --cbt-bg-deep: #101a2a;
  --cbt-green: #1f865b;
  --cbt-green-bright: #19a974;
  --cbt-green-soft: #dff5e9;
  --cbt-lime: #d9ed32;
  --cbt-text: #f4f7f4;
  --cbt-text-muted: #bdc9c4;
  --cbt-surface: #ffffff;
  --cbt-surface-soft: #f4f7f4;
  --cbt-ink: #172033;
  --cbt-border: rgba(226, 232, 240, .16);
  --cbt-radius: 16px;
  --cbt-shadow: 0 12px 32px rgba(0, 0, 0, .16);
}

html { scroll-behavior: smooth; }
body,
.ast-separate-container,
.ast-plain-container,
#page,
.site-content,
.ast-separate-container .ast-article-post,
.ast-separate-container .ast-article-single {
  background: var(--cbt-bg) !important;
  color: var(--cbt-text);
}
body, button, input, select, textarea { font-family: inherit; }
body { line-height: 1.7; }
p, .entry-content { color: inherit; }
.ast-separate-container .ast-article-post,
.ast-separate-container .ast-article-single,
.ast-plain-container .site-content {
  border-radius: var(--cbt-radius);
}

/* Header and navigation */
.site-header,
.ast-primary-header-bar,
.ast-above-header-bar,
.ast-below-header-bar {
  background: #e8f5fb !important;
  color: #234b3d;
  border-bottom: 1px solid rgba(31, 134, 91, .14);
}
.main-header-menu .menu-link,
.ast-header-break-point .main-header-menu .menu-link,
.ast-builder-menu .main-header-menu .menu-item > .menu-link {
  color: #285846 !important;
  font-weight: 600;
  transition: color .2s ease;
}
.main-header-menu .menu-link:hover,
.main-header-menu .current-menu-item > .menu-link,
.ast-builder-menu .main-header-menu .current-menu-item > .menu-link {
  color: var(--cbt-green) !important;
}
.ast-mobile-header-wrap .ast-button-wrap .menu-toggle,
.ast-button, button, input[type="button"], input[type="submit"] {
  border-radius: 10px;
}

/* Typography and links */
h1, h2, h3, h4, h5, h6,
.entry-title, .entry-title a {
  color: var(--cbt-text);
  line-height: 1.3;
  letter-spacing: -.015em;
}
a { color: #47c68c; text-underline-offset: 3px; }
a:hover, a:focus { color: #8ce2b4; }
.entry-content a:not(.wp-block-button__link):not(.cbtm-btn):not(.cbtm-v3-related-cta) { text-decoration-thickness: 1px; }

/* Generic WordPress blocks */
.wp-block-group:not(.has-background),
.wp-block-cover__inner-container { color: inherit; }
.wp-block-quote { border-left-color: var(--cbt-green-bright); }
.wp-block-separator { border-color: var(--cbt-border); }
.wp-block-table table, .wp-block-table th, .wp-block-table td { border-color: var(--cbt-border); }

/* Reusable panels: preserve white cards when they contain forms, certificates or partner logos */
.cbtm-wrap { color: var(--cbt-ink); }
.cbtm-section-title { color: var(--cbt-text) !important; border-left-color: var(--cbt-green-bright) !important; }
.cbtm-tour-card, .cbtm-related-card,
.cbtm-v3-place-card, .cbtm-v3-related-card,
.cbtm-consultation-card, .cbtm-content-box,
.cbtm-tour-list-ajax .cbtm-filter,
.cbtm-v3-modal-inner {
  border-radius: var(--cbt-radius) !important;
  box-shadow: var(--cbt-shadow);
}
.cbtm-tour-card-title a, .cbtm-tour-card h2 a,
.cbtm-v3-related-title a, .cbtm-related-card a { color: #172033 !important; }
.cbtm-tour-card-title a:hover, .cbtm-v3-related-title a:hover { color: var(--cbt-green) !important; }
.cbtm-btn-primary, .cbtm-v3-related-cta,
.cbtm-card-actions .cbtm-btn-primary {
  background: var(--cbt-green) !important;
  border-color: var(--cbt-green) !important;
  color: #fff !important;
  border-radius: 10px !important;
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}
.cbtm-btn-primary:hover, .cbtm-v3-related-cta:hover {
  background: #176b49 !important;
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(31, 134, 91, .2);
}
.cbtm-btn-dark { background: #17231f !important; }
.cbtm-section-title { padding-left: 12px; }

/* Tour, destinations and lodging pages: dark canvas, clean light cards */
.cbtm-tour-list-ajax,
.cbtm-v3-library,
.cbtm-v3-place-grid,
.cbtm-v3-related-grid { color: var(--cbt-text); }
.cbtm-v3-place-card, .cbtm-v3-related-card,
.cbtm-tour-card, .cbtm-related-card { overflow: hidden; }
.cbtm-v3-place-body, .cbtm-v3-related-body, .cbtm-tour-card-body { color: var(--cbt-ink); }
.cbtm-v3-place-body h3, .cbtm-v3-related-title { color: var(--cbt-ink); }
.cbtm-v3-related-meta span { border-radius: 8px; }

/* Forms stay light for clarity and conversion */
input:not([type="checkbox"]):not([type="radio"]),
select, textarea {
  border-radius: 9px;
}
.cbtm-form-field input, .cbtm-form-field select, .cbtm-form-field textarea,
.cbtm-consultation-form input, .cbtm-consultation-form select,
.cbtm-consultation-form textarea {
  background: #fff;
  color: #172033;
  border-color: #d7e2dc;
}
input:focus, select:focus, textarea:focus,
.cbtm-form-field input:focus, .cbtm-form-field select:focus, .cbtm-form-field textarea:focus {
  outline: none;
  border-color: var(--cbt-green) !important;
  box-shadow: 0 0 0 3px rgba(31, 134, 91, .14) !important;
}

/* Footer and bottom information */
.site-footer, .ast-footer-wrap,
.site-below-footer-wrap, .ast-small-footer,
.footer-adv, .footer-adv-overlay {
  background: var(--cbt-bg-deep) !important;
  color: #e7eee9;
}
.site-footer h1, .site-footer h2, .site-footer h3,
.site-footer h4, .site-footer h5, .site-footer h6,
.ast-footer-wrap h1, .ast-footer-wrap h2, .ast-footer-wrap h3 {
  color: #f4f7f4;
}
.site-footer a, .ast-footer-wrap a { color: #7cdbab; }
.site-footer a:hover, .ast-footer-wrap a:hover { color: var(--cbt-lime); }

/* Accessibility and responsive refinements */
:focus-visible { outline: 3px solid var(--cbt-lime); outline-offset: 3px; }
img { max-width: 100%; }
@media (max-width: 921px) {
  .ast-separate-container .ast-article-post,
  .ast-separate-container .ast-article-single { border-radius: 12px; }
  .site-content { padding-inline: 12px; }
}
@media (max-width: 544px) {
  body { font-size: 15px; }
  h1 { font-size: clamp(1.8rem, 8vw, 2.5rem); }
  h2 { font-size: clamp(1.45rem, 6vw, 2rem); }
  .cbtm-tour-card, .cbtm-v3-place-card, .cbtm-v3-related-card { border-radius: 13px !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
