/* CBMG Design Core v1.4.9 — immutable foundation engine.
   Foundation only: tokens, typography, layout, radius, motion, media, icon/logo/image rules.
   Strict rule: no global button/input/a/body/WooCommerce/Elementor/Admin styling and no universal selectors. */

.cbmg-ui,
.cbmg-scope,
.cbmg-design-core {
  font-family: var(--cbmg-font-family);
  color: var(--cbmg-text);
  font-size: var(--cbmg-text-size);
  font-weight: var(--cbmg-text-weight);
  line-height: 1.65;
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.cbmg-ui::before,
.cbmg-ui::after,
.cbmg-scope::before,
.cbmg-scope::after,
.cbmg-design-core::before,
.cbmg-design-core::after { box-sizing: border-box; }

.cbmg-page { width: var(--cbmg-site-width); min-height: 100%; background: var(--cbmg-bg); color: var(--cbmg-text); }

.cbmg-header,
.cbmg-footer,
.cbmg-hero,
.cbmg-theme-header,
.cbmg-theme-footer,
.cbmg-theme-hero { width: var(--cbmg-site-width); max-width: none; margin-inline: auto; }

.cbmg-full-width { width: var(--cbmg-site-width); max-width: none; }
.cbmg-inner { width: var(--cbmg-site-width); max-width: var(--cbmg-content-width); margin-inline: auto; padding-inline: var(--cbmg-inner-padding-desktop); }
.cbmg-inner-wide { width: var(--cbmg-site-width); max-width: var(--cbmg-wide-width); margin-inline: auto; padding-inline: var(--cbmg-inner-padding-desktop); }
.cbmg-inner-narrow,
.cbmg-inner-reading { width: var(--cbmg-site-width); max-width: var(--cbmg-narrow-width); margin-inline: auto; padding-inline: var(--cbmg-inner-padding-desktop); }

.cbmg-heading { margin: 0 0 12px; font-family: var(--cbmg-font-family); font-size: var(--cbmg-heading-size); font-weight: var(--cbmg-heading-weight); line-height: 1.35; color: var(--cbmg-text); letter-spacing: .2px; }
.cbmg-heading-strong { font-weight: var(--cbmg-heading-weight-strong); }
.cbmg-subheading { margin: 0 0 10px; font-family: var(--cbmg-font-family); font-size: var(--cbmg-subheading-size); font-weight: var(--cbmg-subheading-weight); color: var(--cbmg-secondary-text-day); line-height: 1.45; }
.cbmg-subheading-strong { font-weight: var(--cbmg-subheading-weight-strong); }
.cbmg-text { margin: 0 0 12px; color: var(--cbmg-text); font-size: var(--cbmg-text-size); font-weight: var(--cbmg-text-weight); }
.cbmg-muted { color: var(--cbmg-muted); }
html[data-cbmg-mode="night"] .cbmg-subheading { color: var(--cbmg-text-night); }

.cbmg-link { position: relative; color: var(--cbmg-primary); font-size: var(--cbmg-link-size); font-weight: var(--cbmg-link-weight); text-decoration: none; transition: color var(--cbmg-motion-duration) var(--cbmg-motion-ease); }
.cbmg-link:hover,
.cbmg-link:focus { color: var(--cbmg-terracotta); }
html[data-cbmg-mode="night"] .cbmg-link { color: var(--cbmg-text-night); }
html[data-cbmg-mode="night"] .cbmg-link:hover,
html[data-cbmg-mode="night"] .cbmg-link:focus { color: var(--cbmg-heading-night); }
.cbmg-link::after { content: ""; position: absolute; left: 50%; right: 50%; bottom: -3px; height: 1px; background: var(--cbmg-terracotta); transition: left var(--cbmg-motion-duration) var(--cbmg-motion-ease), right var(--cbmg-motion-duration) var(--cbmg-motion-ease); }
.cbmg-link:hover::after,
.cbmg-link:focus::after { left: 0; right: 0; }

.cbmg-focusable:focus-visible,
.cbmg-link:focus-visible,
.cbmg-mode-toggle:focus-visible { outline: 2px solid var(--cbmg-focus-ring); outline-offset: 2px; }

.cbmg-radius-sm { border-radius: var(--cbmg-radius-sm); }
.cbmg-radius-md { border-radius: var(--cbmg-radius-md); }
.cbmg-avatar { border-radius: var(--cbmg-avatar-radius); object-fit: var(--cbmg-image-object-fit); }
.cbmg-image,
.cbmg-card-image { border-radius: var(--cbmg-image-radius); object-fit: var(--cbmg-image-object-fit); }
.cbmg-logo,
.cbmg-button-logo { border-radius: var(--cbmg-logo-radius); object-fit: var(--cbmg-logo-object-fit); }
.cbmg-icon-sm { width: var(--cbmg-icon-size-sm); height: var(--cbmg-icon-size-sm); }
.cbmg-icon-md { width: var(--cbmg-icon-size-md); height: var(--cbmg-icon-size-md); }
.cbmg-icon-lg { width: var(--cbmg-icon-size-lg); height: var(--cbmg-icon-size-lg); }
.cbmg-icon-xl { width: var(--cbmg-icon-size-xl); height: var(--cbmg-icon-size-xl); }
.cbmg-logo-button { width: var(--cbmg-logo-button-size); height: var(--cbmg-logo-button-size); }
.cbmg-logo-button-lg { width: var(--cbmg-logo-button-size-lg); height: var(--cbmg-logo-button-size-lg); }

.cbmg-shadow-day { box-shadow: var(--cbmg-shadow-day); }
.cbmg-shadow-day-hover:hover { box-shadow: var(--cbmg-shadow-day-hover); }
.cbmg-shadow-night { box-shadow: var(--cbmg-shadow-night); }
.cbmg-motion-y-soft:hover { transform: translateY(var(--cbmg-hover-y-soft)); }
.cbmg-motion-y-strong:hover { transform: translateY(var(--cbmg-hover-y-strong)); }
.cbmg-motion-x-menu:hover { transform: translateX(var(--cbmg-hover-x-menu)); }
.cbmg-motion-stable { transition: color var(--cbmg-motion-duration) var(--cbmg-motion-ease), background-color var(--cbmg-motion-duration) var(--cbmg-motion-ease), border-color var(--cbmg-motion-duration) var(--cbmg-motion-ease), box-shadow var(--cbmg-motion-duration) var(--cbmg-motion-ease), transform var(--cbmg-motion-duration) var(--cbmg-motion-ease); }
.cbmg-motion-none { transition: none; animation: none; }

.cbmg-z-base { z-index: var(--cbmg-z-base); }
.cbmg-z-card { z-index: var(--cbmg-z-card); }
.cbmg-z-dropdown { z-index: var(--cbmg-z-dropdown); }
.cbmg-z-sticky { z-index: var(--cbmg-z-sticky); }
.cbmg-z-header { z-index: var(--cbmg-z-header); }
.cbmg-z-overlay { z-index: var(--cbmg-z-overlay); }
.cbmg-z-modal { z-index: var(--cbmg-z-modal); }
.cbmg-z-toast { z-index: var(--cbmg-z-toast); }
.cbmg-z-livechat { z-index: var(--cbmg-z-livechat); }

.cbmg-status-pending { color: var(--cbmg-warning); }
.cbmg-status-approved,
.cbmg-status-paid,
.cbmg-status-success { color: var(--cbmg-success); }
.cbmg-status-cancelled,
.cbmg-status-error,
.cbmg-status-expired { color: var(--cbmg-error); }
.cbmg-status-locked { color: var(--cbmg-muted); }

.cbmg-mode-toggle { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 28px; padding: 0; border: 0; border-radius: 999px; background: var(--cbmg-primary); color: var(--cbmg-white); cursor: pointer; transition: background-color var(--cbmg-motion-duration) var(--cbmg-motion-ease), color var(--cbmg-motion-duration) var(--cbmg-motion-ease); }
.cbmg-mode-toggle::before { content: "☾"; font-size: var(--cbmg-text-size); line-height: 1; }
html[data-cbmg-mode="night"] .cbmg-mode-toggle { background: var(--cbmg-bg-day); color: var(--cbmg-terracotta); }
html[data-cbmg-mode="night"] .cbmg-mode-toggle::before { content: "☀"; }


@media (prefers-reduced-motion: reduce) {
  .cbmg-motion-stable,
  .cbmg-link,
  .cbmg-link::after,
  .cbmg-mode-toggle { transition: none; animation: none; }
  .cbmg-motion-y-soft:hover,
  .cbmg-motion-y-strong:hover,
  .cbmg-motion-x-menu:hover { transform: none; }
}
