@charset "UTF-8";
:root {
  --btn-primary-bg: #5A3A28;
  --btn-primary-text: #FFFFFF;
  --btn-primary-border: #5A3A28;
  --btn-primary-hover-bg: #513525;
  --btn-primary-hover-text: #FFFFFF;
  --btn-secondary-bg: #5A3A28;
  --btn-secondary-text: #FFFFFF;
  --btn-secondary-border: #5A3A28;
  --btn-secondary-hover-bg: #513525;
  --btn-secondary-hover-text: #FFFFFF;
  --btn-tertiary-bg: #5A3A28;
  --btn-tertiary-text: #FFFFFF;
  --btn-tertiary-border: #5A3A28;
  --btn-tertiary-hover-bg: #513525;
  --btn-tertiary-hover-text: #FFFFFF;
  --btn-dark-primary-bg: #E0B15C;
  --btn-dark-primary-text: #17140F;
  --btn-dark-primary-border: #E0B15C;
  --btn-dark-primary-hover-bg: #E2B96E;
  --btn-dark-primary-hover-text: #141414;
  --btn-dark-secondary-bg: #E0B15C;
  --btn-dark-secondary-text: #141414;
  --btn-dark-secondary-border: #E0B15C;
  --btn-dark-secondary-hover-bg: #E2B96E;
  --btn-dark-secondary-hover-text: #141414;
  --btn-dark-tertiary-bg: #E0B15C;
  --btn-dark-tertiary-text: #141414;
  --btn-dark-tertiary-border: #E0B15C;
  --btn-dark-tertiary-hover-bg: #E2B96E;
  --btn-dark-tertiary-hover-text: #141414;
}
:root {
  --font-heading: Spectral, sans-serif;
  --bps-font-heading: Spectral, sans-serif;
  --font-body: "Source Sans 3", system-ui, sans-serif;
  --bps-font-body: "Source Sans 3", system-ui, sans-serif;
  --font-ui: "Source Sans 3", system-ui, sans-serif;
  --font-size-base: 17px;
  --line-height-body: 1.75;
  --letter-spacing-headings: -0.02em;
}
:root {
  --ast-global-color-0: #17140F;
  --ast-global-color-1: #5A3A28;
  --ast-global-color-2: #504C47;
  --ast-global-color-3: #1A1712;
  --ast-global-color-4: #F1E9E4;
  --ast-global-color-5: #E8E1DC;
  --ast-global-color-6: #DED6D1;
  --ast-global-color-7: #D3CCC7;
  --ast-global-color-8: #513525;
  /* Primary Brand Colors */
  --brand-color: var(--ast-global-color-1);
  /* Accent — live-linked to Astra Customizer Colour 2 */
  --brand-text: var(--ast-global-color-4);
  --alternate-brand: var(--ast-global-color-0);
  /* Dark bg — live-linked to Astra Customizer Colour 1 */
  --alternate-brand-text: var(--ast-global-color-4);
  --heading-color: var(--ast-global-color-3);
  /* For standard headings */
  --text-color: var(--ast-global-color-2);
  /* For body text */
  --secondary-brand: var(--ast-global-color-0);
  /* Same as alternate brand */
  --primary-bg: var(--ast-global-color-4);
  /* Light bg */
  --subtle-color: var(--ast-global-color-6);
  /* Dark2 bg / subtle elements */
  --alternate-subtle: var(--ast-global-color-7);
  /* Highlight / border colour */
  --supporting-color: var(--ast-global-color-1);
  /* Accent for CTAs and highlights */
  --white: #ffffff;
  --black: #000000;
  /* Additional utility variables */
  --dark-brand: var(--ast-global-color-0);
  /* Dark bg */
  --light-accent: var(--ast-global-color-5);
  /* Light2 bg for accents */
  --text-light: var(--ast-global-color-4);
  /* White text for dark/coloured backgrounds */
  --text-light-alt: var(--ast-global-color-4);
  /* Alt white text */
  --cta-color: #5A3A28;
  /* CORRECT: BPS palette primary accent */
  --cta-hover: #513525;
  /* CORRECT: BPS palette hover state */
  --button-color: #5A3A28;
  /* Global button background */
  --button-color-text: #FFFFFF;
  /* Global button text color */
  --card-bg: var(--primary-bg);
  /* White for cards */
  --section-bg: var(--ast-global-color-5);
  /* Light2 bg for section backgrounds */
  --stats-bg: var(--ast-global-color-0);
  /* Dark bg for stats section */
  --tag-bg: var(--ast-global-color-7);
  /* Highlight colour for tags */
  /* Light Palette Tokens — globally available for components that always need light context
   * e.g. .card inside a .dark section. Use these instead of hardcoded hex.
   * In a .light section these are redundant (cascade already sets them); they exist
   * specifically so structural components can reference them from any context. */
  --light-bg:              #F1E9E4;
  --light-bg2:             #E8E1DC;
  --light-text:            #1A1712;
  --light-text2:           #504C47;
  --light-text3:           #67635E;
  --light-text-highlight:  #1A1712;
  --light-border:          #D3CCC7;
  /* Dark Palette Tokens — globally available */
  --dark-bg:               #17140F;
  --dark-bg2:              #201D17;
  --dark-text:             #EDE9E0;
  --dark-text2:            #B8B4AC;
  /* Accent RGB — enables rgba() with brand accent: rgba(var(--accent-rgb), 0.15)
   * Derived from light-context accent (same gold in most skins).
   * Guard: when tokens use CSS vars (var(--x)) instead of hex, SCSS color
   * functions red()/green()/blue() cannot extract channels — use #0d6efd fallback. */
  --accent-rgb: 90, 58, 40;
  --accent-2-rgb: 90, 58, 40;
  --accent-3-rgb: 90, 58, 40;
  /* Surface RGB — enables rgba() over a brand surface: rgba(var(--light-bg-rgb), 0.7)
   * Consumed by the .bps-glass / .bps-glass-dark frosted panes.
   *
   * 🪤 Added 2026-08-03. `.bps-glass` had consumed `--light-bg-rgb` since it was
   * written, but NOTHING emitted it — the rgba() fallback of 255,255,255 always
   * won, so every glass pane on the estate rendered pure white and ignored the
   * palette entirely (OWED-006 / C11). Same guard as the accent block above:
   * red()/green()/blue() cannot read channels off a var() token, so a non-colour
   * scalar falls back to the literal that was previously being painted. */
  --light-bg-rgb: 241, 233, 228;
  --dark-bg-rgb: 23, 20, 15;
  /* Glow decorator tokens — consumed by .bps-glow-bg family */
  --glow-color:   var(--accent);
  --glow-color-2: var(--accent-2);
  /* Status Colors */
  --danger-color: #dc3545;
  /* Red for reporting/blocking */
  --success-color: #28a745;
  /* Green for success states */
  --warning-color: #ffc107;
  /* Yellow for warnings */
  --info-color: #0dcaf0;
  /* Blue for info states */
  --font-xs:   0.75rem;
  --font-sm:   0.875rem;
  --font-base: 1rem;
  --font-md:   1.125rem;
  --font-lg:   1.25rem;
  --font-xl:   1.5rem;
  --font-2xl:  1.875rem;
  --font-3xl:  2.25rem;
  --font-4xl:  3rem;
  --font-5xl:  3.75rem;
  --font-6xl:  4.5rem;
  --font-7xl:  6rem;
  --font-8xl:  8rem;
  --font-weight-base: 400;
  --font-weight-1: 300;
  --font-weight-2: 500;
  --font-weight-3: 700;
  --font-weight-4: 700;
  --step-1: 1.125rem;
  --step-2: 1.375rem;
  --step-3: 1.75rem;
  --step-4: 2.25rem;
  --step-5: 3rem;
  --step-6: 3.75rem;
  --lede-size: 1.25rem;
  --lede-leading: 1.6;
  --lede-tracking: normal;
  /* Spacing System */
  --moa-x:    24px;
  --moa-y-xs: 0.5rem;
  --moa-y-sd: 64px;
  --moa-y-sm: 64px;
  --moa-y-md: 2rem;
  --moa-y-lg: 104px;
  --moa-y-xl: 136px;
  --moa-y-xxl:176px;
  /* Tablet Spacing (token-driven — see build_spacing(); defaults reproduce the historic literals) */
  --moa-x-tablet: 23px;
  --moa-y-sd-tablet: 51px;
  --moa-y-lg-tablet: 78px;
  --moa-y-xl-tablet: 102px;
  --moa-y-xxl-tablet: 132px;
  /* Mobile Spacing (token-driven — see build_spacing(); defaults reproduce the historic literals) */
  --moa-x-mobile: 15px;
  --moa-y-sd-mobile: 38px;
  --moa-y-lg-mobile: 52px;
  --moa-y-xl-mobile: 68px;
  --moa-y-xxl-mobile: 88px;
  /* Padding Presets */
  --moa-p-1: 20px 40px;
  --moa-p-2: 20px 70px;
  /* Spacing */
  --spacing-xs:   0.25rem;
  --spacing-sm:   0.5rem;
  --spacing-md:   0.75rem;
  --spacing-base: 1rem;
  --spacing-lg:   1.25rem;
  --spacing-xl:   1.5rem;
  --spacing-2xl:  2rem;
  --spacing-3xl:  2.5rem;
  --spacing-4xl:  3rem;
  --spacing-5xl:  4rem;
  --spacing-6xl:  5rem;
  --spacing-7xl:  6rem;
  --spacing-8xl:  8rem;
  /* Border Radius */
  /* Border Radius */
  --radius-none:  0.25rem;
  --radius-xs:    0.125rem;
  --radius-sm:    0.25rem;
  --radius-base:  0.375rem;
  --border-radius: 0.375rem;
  --radius-md:    0.5rem;
  --radius-lg:    0.75rem;
  --radius-xl:    1rem;
  --radius-2xl:   1.25rem;
  --radius-3xl:   1.5rem;
  --radius-4xl:   2rem;
  --radius-full:  50%;
  /* Shadows */
  --shadow-xs:   0 1px 2px 0 rgba(0, 0, 0, 0.05);
  --shadow-sm:   0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
  --shadow-base: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  --shadow-md:   0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  --shadow-lg:   0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  --shadow-xl:   0 25px 50px -12px rgba(0, 0, 0, 0.25);
  --shadow-2xl:  0 25px 50px -12px rgba(0, 0, 0, 0.25);
  --transition-fast: 0.15s ease-out;
  --transition-base: 0.3s ease-out;
  --transition-slow: 0.5s ease-out;
  --transition-all: all 0.3s ease-out;
  --transition-colors: color 0.3s ease-out, background-color 0.3s ease-out, border-color 0.3s ease-out;
  --transition-transform: transform 0.3s ease-out;
  --transition-opacity: opacity 0.3s ease-out;
  /*Base*/
  --container-sm:   600px;
  --container-md:   960px;
  --container-base: 1200px;
  --container-lg:   1400px;
  --button-padding-sm:  8px;
  --button-padding-lg:  10px 25px;
  --button-padding-xl:   15px 25px;
  --button-padding-2xl:  20px 25px;
  --border-width-sm:    1px;
  --border-width-base:  2px;
  --border-width-md:    3px;
  --border-width-lg:    4px;
  --border-width-xl:    6px;
  /* Surface border — BPS-owned twin of --border-color.
   *
   * 🔴 Added 2026-08-24. Elementor's frontend.css declares `--border-color: initial`
   * on `.e-con` (its container class). For an unregistered custom property `initial`
   * is the GUARANTEED-INVALID value, so every Elementor container blanks the palette's
   * --border-color for itself and its whole subtree. A `.bps-card` IS an `.e-con`, so
   * it matched that declaration directly and the old `var(--border-color, #dee2e6)` fell
   * through to the Bootstrap fallback on EVERY BPS site — measured on the influencer
   * fleet as a light grey outline drawn on a near-black card.
   *
   * No selector weight recovers it: the value is invalid at computed-value time, not
   * merely outranked. Only a property name Elementor does not claim works, which is
   * what this is. Every tone block and every skin emits its own twin next to the
   * original; consumers read the twin first and fall back to the old name, so
   * anything authored against the old name still resolves.
   *
   * This :root default exists because the tone blocks are the ONLY other emitters —
   * chrome (header/footer) sits outside every tone band, and without a root value it
   * would keep painting the Bootstrap grey. Same trap as --accent-2/-3, which are
   * likewise declared per tone band and never at :root. */
  --bps-border-color: #D3CCC7;
}
:root {
  --step-1: 1.0625rem;
  --step-2: 1.25rem;
  --step-3: 1.5rem;
  --step-4: 1.875rem;
  --step-5: 2.375rem;
  --step-6: 3rem;
  --lede-size: 1.1875rem;
  --lede-leading: 1.55;
  --lede-tracking: -0.005em;
}
.light, .light2, .light3 {
  --bg: #F1E9E4;
  --bg2: #E8E1DC;
  --text-color: #1A1712;
  --text-color2: #504C47;
  --text-color3: #67635E;
  --text-highlight: #1A1712;
  --text-highlight2: #1A1712;
  --border-color: #D3CCC7;
  --bps-border-color: #D3CCC7;
  --b-border-color: #D3CCC7;
  --e-border-color: #D3CCC7;
  --accent: #5A3A28;
  --accent-text: #FFFFFF;
  --accent-2: #5A3A28;
  --accent-text-2: #FFFFFF;
  --accent-3: #5A3A28;
  --accent-text-3: #FFFFFF;
  --button-color: #5A3A28;
  --button-color-text: #FFFFFF;
  --button-border-color: #D3CCC7;
  --button-ghost-color-text: #5A3A28;
  --icon-color: #5A3A28;
}
.dark, .dark2, .dark3 {
  --bg: #17140F;
  --bg2: #201D17;
  --text-color: #EDE9E0;
  --text-color2: #B8B4AC;
  --text-color3: #8D8982;
  --text-highlight: #EDE9E0;
  --text-highlight2: #EDE9E0;
  --border-color: #35322C;
  --bps-border-color: #35322C;
  --b-border-color: #35322C;
  --e-border-color: #35322C;
  --accent: #E0B15C;
  --accent-text: #17140F;
  --accent-2: #E0B15C;
  --accent-text-2: #141414;
  --accent-3: #E0B15C;
  --accent-text-3: #141414;
  --button-color: #E0B15C;
  --button-color-text: #17140F;
  --button-border-color: #35322C;
  --button-ghost-color-text: #E0B15C;
  --icon-color: #E0B15C;
  --btn-dark-primary-bg:         #E0B15C;
  --btn-dark-primary-text:       #17140F;
  --btn-dark-primary-border:     #E0B15C;
  --btn-dark-primary-hover-bg:   color-mix(in srgb, #E0B15C 88%, white);
  --btn-dark-primary-hover-text: #17140F;
}
.dark2 {
  --bg: #201D17;
  --bg2: #2A2722;
  --text-color: #EDE9E0;
  --text-color2: #B8B4AC;
  --text-color3: #8D8982;
  --text-highlight: #EDE9E0;
  --border-color: #35322C;
  --bps-border-color: #35322C;
  --b-border-color: #35322C;
  --e-border-color: #35322C;
  --text-highlight2: #EDE9E0;
  --accent: #E0B15C;
  --accent-text: #17140F;
  --accent-2: #E0B15C;
  --accent-text-2: #141414;
  --accent-3: #E0B15C;
  --accent-text-3: #141414;
  --button-color: #E0B15C;
  --button-color-text: #17140F;
  --button-border-color: #35322C;
  --button-ghost-color-text: #E0B15C;
  --icon-color: #E0B15C;
  --btn-dark-primary-bg:         #E0B15C;
  --btn-dark-primary-text:       #17140F;
  --btn-dark-primary-border:     #E0B15C;
  --btn-dark-primary-hover-bg:   #E2B96E;
  --btn-dark-primary-hover-text: #17140F;
}
.section-opener {
  text-align: center;
  padding: 6rem 2rem;
  min-height: 80vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.section-opener.dark, .section-opener.dark2, .section-opener.dark3 {
  background: #17140F;
  color: #EDE9E0;
}
@media (max-width: 768px) {
  .section-opener {
    padding: 4rem 1.5rem;
    min-height: 70vh;
  }
}
.section-body {
  padding: 4rem 2rem;
}
.section-body.light, .section-body.light2, .section-body.light3 {
  background: #F1E9E4;
}
.section-body.light2 {
  background: #E8E1DC;
}
@media (max-width: 768px) {
  .section-body {
    padding: 3rem 1.5rem;
  }
}
.section-closer {
  text-align: center;
  padding: 5rem 2rem;
}
.section-closer.dark, .section-closer.dark2, .section-closer.dark3 {
  background: #17140F;
  color: #EDE9E0;
}
@media (max-width: 768px) {
  .section-closer {
    padding: 4rem 1.5rem;
  }
}
.section-insert {
  padding: 3rem 2rem;
}
.section-insert.dark, .section-insert.dark2, .section-insert.dark3 {
  background: #17140F;
  border-left: 4px solid #5A3A28;
}
.section-insert.light, .section-insert.light2, .section-insert.light3 {
  background: #E8E1DC;
  border-left: 4px solid #5A3A28;
}
@media (max-width: 768px) {
  .section-insert {
    padding: 2rem 1.5rem;
  }
}
.btn:not(.elementor-widget), .btn-cta:not(.elementor-widget), .btn-cta-secondary:not(.elementor-widget), .btn-cta-outline:not(.elementor-widget), .btn-cta-ghost:not(.elementor-widget) {
  font-family: var(--font-body, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
  font-weight: 600;
  padding: 0.875rem 2rem;
  border-radius: 6px;
  transition: all 0.3s ease;
  cursor: pointer;
  display: inline-block;
  text-decoration: none;
  border: 2px solid transparent;
}
@media (max-width: 768px) {
  .btn:not(.elementor-widget), .btn-cta:not(.elementor-widget), .btn-cta-secondary:not(.elementor-widget), .btn-cta-outline:not(.elementor-widget), .btn-cta-ghost:not(.elementor-widget) {
    padding: 0.75rem 1.5rem;
    font-size: 0.9375rem;
  }
}
.btn-primary:not(.elementor-widget) {
  background: #5A3A28;
  color: #FFFFFF;
  border-color: #5A3A28;
}
.btn-primary:not(.elementor-widget):hover {
  background: #372318;
  border-color: #372318;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(90, 58, 40, 0.3);
}
.btn-primary:not(.elementor-widget):active {
  transform: translateY(0);
}
.btn-secondary:not(.elementor-widget), .btn-cta-secondary:not(.elementor-widget) {
  background: #5A3A28;
  color: #FFFFFF;
  border-color: #5A3A28;
}
.btn-secondary:not(.elementor-widget):hover, .btn-cta-secondary:not(.elementor-widget):hover {
  background: #372318;
  border-color: #372318;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(90, 58, 40, 0.3);
}
.btn-ghost:not(.elementor-widget), .btn-cta-ghost:not(.elementor-widget) {
  background: transparent;
  color: var(--text-color);
  border: 2px solid currentColor;
}
.dark .btn-ghost:not(.elementor-widget), .dark2 .btn-ghost:not(.elementor-widget), .dark3 .btn-ghost:not(.elementor-widget), .dark .btn-cta-ghost:not(.elementor-widget), .dark2 .btn-cta-ghost:not(.elementor-widget), .dark3 .btn-cta-ghost:not(.elementor-widget) {
  color: rgba(237, 233, 224, 0.9);
  border-color: rgba(237, 233, 224, 0.5);
}
.dark .btn-ghost:not(.elementor-widget):hover, .dark2 .btn-ghost:not(.elementor-widget):hover, .dark3 .btn-ghost:not(.elementor-widget):hover, .dark .btn-cta-ghost:not(.elementor-widget):hover, .dark2 .btn-cta-ghost:not(.elementor-widget):hover, .dark3 .btn-cta-ghost:not(.elementor-widget):hover {
  background: rgba(237, 233, 224, 0.1);
  border-color: rgba(237, 233, 224, 0.8);
}
.light .btn-ghost:not(.elementor-widget), .light2 .btn-ghost:not(.elementor-widget), .light3 .btn-ghost:not(.elementor-widget), .light2 .btn-ghost:not(.elementor-widget), .light .btn-cta-ghost:not(.elementor-widget), .light2 .btn-cta-ghost:not(.elementor-widget), .light3 .btn-cta-ghost:not(.elementor-widget), .light2 .btn-cta-ghost:not(.elementor-widget) {
  color: #17140F;
  border-color: rgba(23, 20, 15, 0.3);
}
.light .btn-ghost:not(.elementor-widget):hover, .light2 .btn-ghost:not(.elementor-widget):hover, .light3 .btn-ghost:not(.elementor-widget):hover, .light2 .btn-ghost:not(.elementor-widget):hover, .light .btn-cta-ghost:not(.elementor-widget):hover, .light2 .btn-cta-ghost:not(.elementor-widget):hover, .light3 .btn-cta-ghost:not(.elementor-widget):hover, .light2 .btn-cta-ghost:not(.elementor-widget):hover {
  background: rgba(23, 20, 15, 0.05);
  border-color: rgba(23, 20, 15, 0.5);
}
.btn-outline:not(.elementor-widget), .btn-cta-outline:not(.elementor-widget) {
  background: transparent;
  color: #5A3A28;
  border: 2px solid #5A3A28;
}
.btn-outline:not(.elementor-widget):hover, .btn-cta-outline:not(.elementor-widget):hover {
  background: #5A3A28;
  color: #FFFFFF;
  transform: translateY(-2px);
}
.dark .btn-outline:not(.elementor-widget), .dark2 .btn-outline:not(.elementor-widget), .dark3 .btn-outline:not(.elementor-widget), .dark .btn-cta-outline:not(.elementor-widget), .dark2 .btn-cta-outline:not(.elementor-widget), .dark3 .btn-cta-outline:not(.elementor-widget) {
  color: #E0B15C;
  border-color: #E0B15C;
}
.dark .btn-outline:not(.elementor-widget):hover, .dark2 .btn-outline:not(.elementor-widget):hover, .dark3 .btn-outline:not(.elementor-widget):hover, .dark .btn-cta-outline:not(.elementor-widget):hover, .dark2 .btn-cta-outline:not(.elementor-widget):hover, .dark3 .btn-cta-outline:not(.elementor-widget):hover {
  background: #E0B15C;
  color: #17140F;
}
a.btn, a.btn-primary, a.btn-secondary, a.btn-outline, a.btn-ghost, a.btn-cta, a.btn-cta-secondary, a.btn-cta-outline, a.btn-cta-ghost {
  text-decoration: none;
}
a.btn:hover, a.btn:focus, a.btn:active, a.btn-primary:hover, a.btn-primary:focus, a.btn-primary:active, a.btn-secondary:hover, a.btn-secondary:focus, a.btn-secondary:active, a.btn-outline:hover, a.btn-outline:focus, a.btn-outline:active, a.btn-ghost:hover, a.btn-ghost:focus, a.btn-ghost:active, a.btn-cta:hover, a.btn-cta:focus, a.btn-cta:active, a.btn-cta-secondary:hover, a.btn-cta-secondary:focus, a.btn-cta-secondary:active, a.btn-cta-outline:hover, a.btn-cta-outline:focus, a.btn-cta-outline:active, a.btn-cta-ghost:hover, a.btn-cta-ghost:focus, a.btn-cta-ghost:active {
  text-decoration: none;
}
.entry-content a.btn:not(.bps-bypass), .entry-content a.btn-primary:not(.bps-bypass), .entry-content a.btn-secondary:not(.bps-bypass), .entry-content a.btn-outline:not(.bps-bypass), .entry-content a.btn-ghost:not(.bps-bypass), .entry-content a.btn-cta:not(.bps-bypass), .entry-content a.btn-cta-secondary:not(.bps-bypass), .entry-content a.btn-cta-outline:not(.bps-bypass), .entry-content a.btn-cta-ghost:not(.bps-bypass) {
  text-decoration: none;
}
.entry-content a.btn:not(.bps-bypass):hover, .entry-content a.btn:not(.bps-bypass):focus, .entry-content a.btn:not(.bps-bypass):active, .entry-content a.btn-primary:not(.bps-bypass):hover, .entry-content a.btn-primary:not(.bps-bypass):focus, .entry-content a.btn-primary:not(.bps-bypass):active, .entry-content a.btn-secondary:not(.bps-bypass):hover, .entry-content a.btn-secondary:not(.bps-bypass):focus, .entry-content a.btn-secondary:not(.bps-bypass):active, .entry-content a.btn-outline:not(.bps-bypass):hover, .entry-content a.btn-outline:not(.bps-bypass):focus, .entry-content a.btn-outline:not(.bps-bypass):active, .entry-content a.btn-ghost:not(.bps-bypass):hover, .entry-content a.btn-ghost:not(.bps-bypass):focus, .entry-content a.btn-ghost:not(.bps-bypass):active, .entry-content a.btn-cta:not(.bps-bypass):hover, .entry-content a.btn-cta:not(.bps-bypass):focus, .entry-content a.btn-cta:not(.bps-bypass):active, .entry-content a.btn-cta-secondary:not(.bps-bypass):hover, .entry-content a.btn-cta-secondary:not(.bps-bypass):focus, .entry-content a.btn-cta-secondary:not(.bps-bypass):active, .entry-content a.btn-cta-outline:not(.bps-bypass):hover, .entry-content a.btn-cta-outline:not(.bps-bypass):focus, .entry-content a.btn-cta-outline:not(.bps-bypass):active, .entry-content a.btn-cta-ghost:not(.bps-bypass):hover, .entry-content a.btn-cta-ghost:not(.bps-bypass):focus, .entry-content a.btn-cta-ghost:not(.bps-bypass):active {
  text-decoration: none;
}
.section .elementor-widget-heading.bps-accent .elementor-heading-title, .section .elementor-widget-text-editor.bps-accent, .section .elementor-widget-text-editor.bps-accent p, .section .bps-accent {
  color: var(--accent);
}
.btn-cta:not(.elementor-widget), .btn-cta-secondary:not(.elementor-widget), .btn-cta-outline:not(.elementor-widget), .btn-cta-ghost:not(.elementor-widget) {
  display: inline-block;
  padding: 0.75rem 1.5rem;
  border-radius: 8px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.2s ease;
  cursor: pointer;
}
.btn-cta {
  background: var(--cta-color, var(--accent));
  color: var(--cta-txt, var(--bg));
}
.btn-cta:hover {
  opacity: 0.9;
  transform: translateY(-2px);
  text-decoration: none;
  color: var(--cta-txt, var(--bg));
}
.prehead {
  font-family: var(--font-heading, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #5A3A28;
  margin-bottom: 0.75rem;
  display: block;
}
.dark .prehead, .dark2 .prehead, .dark3 .prehead {
  color: #E0B15C;
}
@media (max-width: 768px) {
  .prehead {
    font-size: 0.6875rem;
  }
}
.bps-skin-active .hero-title:not(.bps-bypass) :where(.elementor-widget-heading .elementor-heading-title) {
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.02em;
  font-family: var(--font-heading, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
}
.bps-skin-active .hero-title:not(.bps-bypass) > h1, .bps-skin-active .hero-title:not(.bps-bypass) :where(.elementor-widget-heading h1.elementor-heading-title) {
  font-size: var(--font-size-h1, clamp(2rem, 5vw, 3.5rem));
  font-weight: var(--font-weight-h1, 700);
  line-height: var(--line-height-h1, 1.1);
  letter-spacing: var(--letter-spacing-h1, -0.02em);
  font-family: var(--font-heading-h1, var(--font-heading, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif));
}
.bps-skin-active .hero-title:not(.bps-bypass) > h2, .bps-skin-active .hero-title:not(.bps-bypass) :where(.elementor-widget-heading h2.elementor-heading-title) {
  font-size: var(--font-size-h2, clamp(2rem, 5vw, 3.5rem));
  font-weight: var(--font-weight-h2, 700);
  line-height: var(--line-height-h2, 1.1);
  letter-spacing: var(--letter-spacing-h2, -0.02em);
  font-family: var(--font-heading-h2, var(--font-heading, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif));
}
.bps-skin-active .hero-title:not(.bps-bypass) > h3, .bps-skin-active .hero-title:not(.bps-bypass) :where(.elementor-widget-heading h3.elementor-heading-title) {
  font-size: var(--font-size-h3, clamp(2rem, 5vw, 3.5rem));
  font-weight: var(--font-weight-h3, 700);
  line-height: var(--line-height-h3, 1.1);
  letter-spacing: var(--letter-spacing-h3, -0.02em);
  font-family: var(--font-heading-h3, var(--font-heading, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif));
}
.bps-skin-active .hero-title:not(.bps-bypass) > h4, .bps-skin-active .hero-title:not(.bps-bypass) :where(.elementor-widget-heading h4.elementor-heading-title) {
  font-size: var(--font-size-h4, clamp(2rem, 5vw, 3.5rem));
  font-weight: var(--font-weight-h4, 700);
  line-height: var(--line-height-h4, 1.1);
  letter-spacing: var(--letter-spacing-h4, -0.02em);
  font-family: var(--font-heading-h4, var(--font-heading, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif));
}
.bps-skin-active .hero-title:not(.bps-bypass) > h5, .bps-skin-active .hero-title:not(.bps-bypass) :where(.elementor-widget-heading h5.elementor-heading-title) {
  font-size: var(--font-size-h5, clamp(2rem, 5vw, 3.5rem));
  font-weight: var(--font-weight-h5, 700);
  line-height: var(--line-height-h5, 1.1);
  letter-spacing: var(--letter-spacing-h5, -0.02em);
  font-family: var(--font-heading-h5, var(--font-heading, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif));
}
.bps-skin-active .hero-title:not(.bps-bypass) > h6, .bps-skin-active .hero-title:not(.bps-bypass) :where(.elementor-widget-heading h6.elementor-heading-title) {
  font-size: var(--font-size-h6, clamp(2rem, 5vw, 3.5rem));
  font-weight: var(--font-weight-h6, 700);
  line-height: var(--line-height-h6, 1.1);
  letter-spacing: var(--letter-spacing-h6, -0.02em);
  font-family: var(--font-heading-h6, var(--font-heading, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif));
}
.bps-skin-active .hero-title:not(.bps-bypass) :where(.elementor-widget-heading .elementor-heading-title), .bps-skin-active .hero-title:not(.bps-bypass) > h1, .bps-skin-active .hero-title:not(.bps-bypass) > h2, .bps-skin-active .hero-title:not(.bps-bypass) > h3, .bps-skin-active .hero-title:not(.bps-bypass) > h4, .bps-skin-active .hero-title:not(.bps-bypass) > h5, .bps-skin-active .hero-title:not(.bps-bypass) > h6 {
  margin-bottom: 1.5rem;
  color: var(--text-highlight);
}
.dark .bps-skin-active .hero-title:not(.bps-bypass) :where(.elementor-widget-heading .elementor-heading-title), .dark2 .bps-skin-active .hero-title:not(.bps-bypass) :where(.elementor-widget-heading .elementor-heading-title), .dark3 .bps-skin-active .hero-title:not(.bps-bypass) :where(.elementor-widget-heading .elementor-heading-title), .dark .bps-skin-active .hero-title:not(.bps-bypass) > h1, .dark2 .bps-skin-active .hero-title:not(.bps-bypass) > h1, .dark3 .bps-skin-active .hero-title:not(.bps-bypass) > h1, .dark .bps-skin-active .hero-title:not(.bps-bypass) > h2, .dark2 .bps-skin-active .hero-title:not(.bps-bypass) > h2, .dark3 .bps-skin-active .hero-title:not(.bps-bypass) > h2, .dark .bps-skin-active .hero-title:not(.bps-bypass) > h3, .dark2 .bps-skin-active .hero-title:not(.bps-bypass) > h3, .dark3 .bps-skin-active .hero-title:not(.bps-bypass) > h3, .dark .bps-skin-active .hero-title:not(.bps-bypass) > h4, .dark2 .bps-skin-active .hero-title:not(.bps-bypass) > h4, .dark3 .bps-skin-active .hero-title:not(.bps-bypass) > h4, .dark .bps-skin-active .hero-title:not(.bps-bypass) > h5, .dark2 .bps-skin-active .hero-title:not(.bps-bypass) > h5, .dark3 .bps-skin-active .hero-title:not(.bps-bypass) > h5, .dark .bps-skin-active .hero-title:not(.bps-bypass) > h6, .dark2 .bps-skin-active .hero-title:not(.bps-bypass) > h6, .dark3 .bps-skin-active .hero-title:not(.bps-bypass) > h6 {
  color: #EDE9E0;
}
.hero-subtitle {
  font-family: var(--font-body, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
  font-size: clamp(1.125rem, 2vw, 1.25rem);
  font-weight: 400;
  line-height: 1.6;
  color: var(--text-color2);
  max-width: 700px;
  margin: 0 0 2rem;
}
.dark .hero-subtitle, .dark2 .hero-subtitle, .dark3 .hero-subtitle {
  color: rgba(237, 233, 224, 0.85);
}
.bps-skin-active .section-title:not(.bps-bypass) :where(.elementor-widget-heading .elementor-heading-title) {
  font-size: clamp(1.375rem, 2.5vw, 1.875rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.01em;
  font-family: var(--font-heading, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
}
.bps-skin-active .section-title:not(.bps-bypass) > h1, .bps-skin-active .section-title:not(.bps-bypass) :where(.elementor-widget-heading h1.elementor-heading-title) {
  font-size: var(--font-size-h1, clamp(1.375rem, 2.5vw, 1.875rem));
  font-weight: var(--font-weight-h1, 700);
  line-height: var(--line-height-h1, 1.2);
  letter-spacing: var(--letter-spacing-h1, -0.01em);
  font-family: var(--font-heading-h1, var(--font-heading, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif));
}
.bps-skin-active .section-title:not(.bps-bypass) > h2, .bps-skin-active .section-title:not(.bps-bypass) :where(.elementor-widget-heading h2.elementor-heading-title) {
  font-size: var(--font-size-h2, clamp(1.375rem, 2.5vw, 1.875rem));
  font-weight: var(--font-weight-h2, 700);
  line-height: var(--line-height-h2, 1.2);
  letter-spacing: var(--letter-spacing-h2, -0.01em);
  font-family: var(--font-heading-h2, var(--font-heading, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif));
}
.bps-skin-active .section-title:not(.bps-bypass) > h3, .bps-skin-active .section-title:not(.bps-bypass) :where(.elementor-widget-heading h3.elementor-heading-title) {
  font-size: var(--font-size-h3, clamp(1.375rem, 2.5vw, 1.875rem));
  font-weight: var(--font-weight-h3, 700);
  line-height: var(--line-height-h3, 1.2);
  letter-spacing: var(--letter-spacing-h3, -0.01em);
  font-family: var(--font-heading-h3, var(--font-heading, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif));
}
.bps-skin-active .section-title:not(.bps-bypass) > h4, .bps-skin-active .section-title:not(.bps-bypass) :where(.elementor-widget-heading h4.elementor-heading-title) {
  font-size: var(--font-size-h4, clamp(1.375rem, 2.5vw, 1.875rem));
  font-weight: var(--font-weight-h4, 700);
  line-height: var(--line-height-h4, 1.2);
  letter-spacing: var(--letter-spacing-h4, -0.01em);
  font-family: var(--font-heading-h4, var(--font-heading, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif));
}
.bps-skin-active .section-title:not(.bps-bypass) > h5, .bps-skin-active .section-title:not(.bps-bypass) :where(.elementor-widget-heading h5.elementor-heading-title) {
  font-size: var(--font-size-h5, clamp(1.375rem, 2.5vw, 1.875rem));
  font-weight: var(--font-weight-h5, 700);
  line-height: var(--line-height-h5, 1.2);
  letter-spacing: var(--letter-spacing-h5, -0.01em);
  font-family: var(--font-heading-h5, var(--font-heading, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif));
}
.bps-skin-active .section-title:not(.bps-bypass) > h6, .bps-skin-active .section-title:not(.bps-bypass) :where(.elementor-widget-heading h6.elementor-heading-title) {
  font-size: var(--font-size-h6, clamp(1.375rem, 2.5vw, 1.875rem));
  font-weight: var(--font-weight-h6, 700);
  line-height: var(--line-height-h6, 1.2);
  letter-spacing: var(--letter-spacing-h6, -0.01em);
  font-family: var(--font-heading-h6, var(--font-heading, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif));
}
.bps-skin-active .section-title:not(.bps-bypass) :where(.elementor-widget-heading .elementor-heading-title), .bps-skin-active .section-title:not(.bps-bypass) > h1, .bps-skin-active .section-title:not(.bps-bypass) > h2, .bps-skin-active .section-title:not(.bps-bypass) > h3, .bps-skin-active .section-title:not(.bps-bypass) > h4, .bps-skin-active .section-title:not(.bps-bypass) > h5, .bps-skin-active .section-title:not(.bps-bypass) > h6 {
  margin-bottom: 1rem;
  color: var(--text-highlight);
}
.dark .bps-skin-active .section-title:not(.bps-bypass) :where(.elementor-widget-heading .elementor-heading-title), .dark2 .bps-skin-active .section-title:not(.bps-bypass) :where(.elementor-widget-heading .elementor-heading-title), .dark3 .bps-skin-active .section-title:not(.bps-bypass) :where(.elementor-widget-heading .elementor-heading-title), .dark .bps-skin-active .section-title:not(.bps-bypass) > h1, .dark2 .bps-skin-active .section-title:not(.bps-bypass) > h1, .dark3 .bps-skin-active .section-title:not(.bps-bypass) > h1, .dark .bps-skin-active .section-title:not(.bps-bypass) > h2, .dark2 .bps-skin-active .section-title:not(.bps-bypass) > h2, .dark3 .bps-skin-active .section-title:not(.bps-bypass) > h2, .dark .bps-skin-active .section-title:not(.bps-bypass) > h3, .dark2 .bps-skin-active .section-title:not(.bps-bypass) > h3, .dark3 .bps-skin-active .section-title:not(.bps-bypass) > h3, .dark .bps-skin-active .section-title:not(.bps-bypass) > h4, .dark2 .bps-skin-active .section-title:not(.bps-bypass) > h4, .dark3 .bps-skin-active .section-title:not(.bps-bypass) > h4, .dark .bps-skin-active .section-title:not(.bps-bypass) > h5, .dark2 .bps-skin-active .section-title:not(.bps-bypass) > h5, .dark3 .bps-skin-active .section-title:not(.bps-bypass) > h5, .dark .bps-skin-active .section-title:not(.bps-bypass) > h6, .dark2 .bps-skin-active .section-title:not(.bps-bypass) > h6, .dark3 .bps-skin-active .section-title:not(.bps-bypass) > h6 {
  color: #EDE9E0;
}
.text-highlight {
  color: var(--text-highlight);
  font-weight: 600;
}
.dark .text-highlight, .dark2 .text-highlight, .dark3 .text-highlight {
  color: var(--text-highlight);
}
.text-muted {
  color: var(--text-color3);
  font-size: 0.9375rem;
}
.dark .text-muted, .dark2 .text-muted, .dark3 .text-muted {
  color: rgba(237, 233, 224, 0.6);
}
.trust-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.625rem 1.25rem;
  background: rgba(90, 58, 40, 0.08);
  border: 1px solid rgba(90, 58, 40, 0.2);
  border-radius: 6px;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text-color);
}
.trust-badge::before {
  content: "✓";
  color: #5A3A28;
  font-weight: 700;
  font-size: 1rem;
}
.dark .trust-badge, .dark2 .trust-badge, .dark3 .trust-badge {
  background: rgba(224, 177, 92, 0.1);
  border-color: rgba(224, 177, 92, 0.3);
  color: rgba(237, 233, 224, 0.9);
}
.dark .trust-badge::before, .dark2 .trust-badge::before, .dark3 .trust-badge::before {
  color: #E0B15C;
}
@media (max-width: 768px) {
  .trust-badge {
    font-size: 0.8125rem;
    padding: 0.5rem 1rem;
  }
}
.stat-number {
  font-family: var(--font-heading, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
  font-size: clamp(2rem, 3vw, 2.625rem);
  font-weight: 700;
  line-height: 1;
  color: #5A3A28;
  display: block;
  margin-bottom: 0.5rem;
  white-space: nowrap;
}
.dark .stat-number, .dark2 .stat-number, .dark3 .stat-number {
  color: #E0B15C;
}
.stat-label {
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--text-color2);
  text-transform: none;
  letter-spacing: 0.02em;
}
.dark .stat-label, .dark2 .stat-label, .dark3 .stat-label {
  color: rgba(237, 233, 224, 0.7);
}
.avatar-circle {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--accent);
  color: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.875rem;
  flex-shrink: 0;
  overflow: hidden;
}
.avatar-circle-md {
  width: 48px;
  height: 48px;
}
.avatar-circle-lg {
  width: 64px;
  height: 64px;
  font-size: 1.25rem;
}
.card-highlight {
  border: 2px solid #5A3A28;
  border-radius: 8px;
  padding: 2rem;
  background: var(--bg);
  transition: all 0.3s ease;
}
.card-highlight:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(90, 58, 40, 0.15);
}
.dark .card-highlight, .dark2 .card-highlight, .dark3 .card-highlight {
  border-color: #E0B15C;
  background: #201D17;
}
.dark .card-highlight:hover, .dark2 .card-highlight:hover, .dark3 .card-highlight:hover {
  box-shadow: 0 8px 24px rgba(224, 177, 92, 0.2);
}
.divider-accent {
  width: 60px;
  height: 4px;
  background: #5A3A28;
  border: none;
  margin: 2rem auto;
}
.dark .divider-accent, .dark2 .divider-accent, .dark3 .divider-accent {
  background: #E0B15C;
}
.hero-ctas {
  display: flex;
  gap: 1rem;
  align-items: center;
  flex-wrap: wrap;
}
@media (max-width: 768px) {
  .hero-ctas {
    flex-direction: column;
    gap: 0.75rem;
  }
  .hero-ctas .btn {
    width: 100%;
    max-width: 300px;
  }
}
.feature-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 2rem;
  margin-top: 3rem;
}
@media (max-width: 768px) {
  .feature-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
}
.testimonial-card {
  background: var(--bg);
  border: 1px solid var(--bps-border-color, var(--border-color));
  border-radius: 8px;
  padding: 2rem;
}
.dark .testimonial-card, .dark2 .testimonial-card, .dark3 .testimonial-card {
  background: #201D17;
  border-color: rgba(237, 233, 224, 0.1);
}
.pricing-table {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem;
  margin-top: 3rem;
}
@media (max-width: 768px) {
  .pricing-table {
    grid-template-columns: 1fr;
  }
}
.callout-card {
  background: rgba(90, 58, 40, 0.05);
  border-left: 4px solid #5A3A28;
  padding: 1.5rem;
  border-radius: 0 8px 8px 0;
  margin: 2rem 0;
}
.dark .callout-card, .dark2 .callout-card, .dark3 .callout-card {
  background: rgba(224, 177, 92, 0.08);
  border-color: #E0B15C;
}
.highlight-quote {
  line-height: 1.5;
  font-size: 1.25rem;
  font-style: italic;
  color: var(--text-color2);
  padding: 2rem;
  border-left: 4px solid #5A3A28;
  margin: 2rem 0;
}
.dark .highlight-quote, .dark2 .highlight-quote, .dark3 .highlight-quote {
  border-color: #E0B15C;
  color: rgba(237, 233, 224, 0.8);
}
.steps-container {
  counter-reset: step-counter;
  margin: 2rem 0;
}
.step-item {
  position: relative;
  padding-left: 4rem;
  margin-bottom: 2rem;
  counter-increment: step-counter;
}
.step-item::before {
  content: counter(step-counter);
  position: absolute;
  left: 0;
  top: 0;
  width: 2.5rem;
  height: 2.5rem;
  background: #5A3A28;
  color: #FFFFFF;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1.125rem;
}
.dark .step-item::before, .dark2 .step-item::before, .dark3 .step-item::before {
  background: #E0B15C;
  color: #17140F;
}
.step-number {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #5A3A28;
  margin-bottom: 0.5rem;
}
.dark .step-number, .dark2 .step-number, .dark3 .step-number {
  color: #E0B15C;
}
.step-title {
  font-size: 1.25rem;
  font-weight: 700;
  margin-bottom: 0.75rem;
  color: var(--text-highlight);
}
.dark .step-title, .dark2 .step-title, .dark3 .step-title {
  color: #EDE9E0;
}
.comparison-columns {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
  margin: 2rem 0;
}
@media (max-width: 768px) {
  .comparison-columns {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
}
.comparison-col {
  background: var(--bg);
  border: 1px solid var(--bps-border-color, var(--border-color));
  border-radius: 8px;
  padding: 1.5rem;
}
.dark .comparison-col, .dark2 .comparison-col, .dark3 .comparison-col {
  background: #201D17;
  border-color: rgba(237, 233, 224, 0.1);
}
.comparison-header {
  font-size: 1.125rem;
  font-weight: 700;
  margin-bottom: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 2px solid #5A3A28;
  color: var(--text-highlight);
}
.dark .comparison-header, .dark2 .comparison-header, .dark3 .comparison-header {
  border-color: #E0B15C;
  color: #EDE9E0;
}
.section-header {
  font-size: 1.5rem;
  font-weight: 700;
  padding-bottom: 0.75rem;
  border-bottom: 3px solid #5A3A28;
  margin-bottom: 2rem;
  color: var(--text-highlight);
}
.dark .section-header, .dark2 .section-header, .dark3 .section-header {
  border-color: #E0B15C;
  color: #EDE9E0;
}
.part-divider {
  text-align: center;
  padding: 3rem 0;
  margin: 3rem 0;
  border-top: 2px solid var(--bps-border-color, var(--border-color));
  border-bottom: 2px solid var(--bps-border-color, var(--border-color));
}
.dark .part-divider, .dark2 .part-divider, .dark3 .part-divider {
  border-color: rgba(237, 233, 224, 0.2);
}
.part-number {
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #5A3A28;
  margin-bottom: 0.5rem;
}
.dark .part-number, .dark2 .part-number, .dark3 .part-number {
  color: #E0B15C;
}
.part-title {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
  color: var(--text-highlight);
}
.dark .part-title, .dark2 .part-title, .dark3 .part-title {
  color: #EDE9E0;
}
.part-subtitle {
  font-size: 1.125rem;
  color: var(--text-color2);
}
.dark .part-subtitle, .dark2 .part-subtitle, .dark3 .part-subtitle {
  color: rgba(237, 233, 224, 0.7);
}
.exercise-block {
  background: rgba(90, 58, 40, 0.03);
  border: 2px dashed #5A3A28;
  border-radius: 8px;
  padding: 2rem;
  margin: 2rem 0;
}
.dark .exercise-block, .dark2 .exercise-block, .dark3 .exercise-block {
  background: rgba(224, 177, 92, 0.05);
  border-color: #E0B15C;
}
.exercise-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #5A3A28;
  margin-bottom: 1rem;
}
.dark .exercise-title, .dark2 .exercise-title, .dark3 .exercise-title {
  color: #E0B15C;
}
.exercise-steps {
  margin-left: 1.5rem;
}
.exercise-notes {
  background: rgba(90, 58, 40, 0.08);
  border-left: 4px solid #5A3A28;
  padding: 1rem 1.5rem;
  margin-top: 1.5rem;
  border-radius: 0 4px 4px 0;
  font-size: 0.9375rem;
}
.dark .exercise-notes, .dark2 .exercise-notes, .dark3 .exercise-notes {
  background: rgba(224, 177, 92, 0.1);
  border-color: #E0B15C;
}
.lesson-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 2px solid var(--bps-border-color, var(--border-color));
}
.dark .lesson-nav, .dark2 .lesson-nav, .dark3 .lesson-nav {
  border-color: rgba(237, 233, 224, 0.2);
}
@media (max-width: 768px) {
  .lesson-nav {
    flex-direction: column;
  }
}
.nav-btn-previous, .nav-btn-next {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.5rem;
  background: var(--bg2);
  border: 1px solid var(--bps-border-color, var(--border-color));
  border-radius: 6px;
  font-weight: 600;
  color: var(--text-color);
  transition: all 0.3s ease;
  cursor: pointer;
  text-decoration: none;
}
.nav-btn-previous:hover, .nav-btn-next:hover {
  background: var(--accent);
  color: var(--accent-text);
  border-color: var(--accent);
  transform: translateX(-2px);
}
.dark .nav-btn-previous, .dark2 .nav-btn-previous, .dark3 .nav-btn-previous, .dark .nav-btn-next, .dark2 .nav-btn-next, .dark3 .nav-btn-next {
  background: #201D17;
  border-color: rgba(237, 233, 224, 0.1);
}
.dark .nav-btn-previous:hover, .dark2 .nav-btn-previous:hover, .dark3 .nav-btn-previous:hover, .dark .nav-btn-next:hover, .dark2 .nav-btn-next:hover, .dark3 .nav-btn-next:hover {
  background: #E0B15C;
  color: #17140F;
  border-color: #E0B15C;
}
.nav-btn-next:hover {
  transform: translateX(2px);
}
.bps-pill {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  background: rgba(90, 58, 40, 0.1);
  border: 1px solid rgba(90, 58, 40, 0.3);
  border-radius: 9999px;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #5A3A28;
  line-height: 1.4;
}
.dark .bps-pill, .dark2 .bps-pill, .dark3 .bps-pill {
  background: rgba(224, 177, 92, 0.12);
  border-color: rgba(224, 177, 92, 0.35);
  color: #E0B15C;
}
.bps-callout {
  border-left: 4px solid #5A3A28;
  background: rgba(90, 58, 40, 0.04);
  padding: 1rem 1.25rem;
  border-radius: 0 6px 6px 0;
}
.dark .bps-callout, .dark2 .bps-callout, .dark3 .bps-callout {
  border-color: #E0B15C;
  background: rgba(224, 177, 92, 0.06);
}
.bps-pill-badge {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  background: transparent;
  border: 1px solid rgba(90, 58, 40, 0.45);
  border-radius: 9999px;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #5A3A28;
  line-height: 1.4;
}
.dark .bps-pill-badge, .dark2 .bps-pill-badge, .dark3 .bps-pill-badge {
  border-color: rgba(224, 177, 92, 0.5);
  color: #E0B15C;
}
.bps-pill-prehead {
  display: inline-block;
  padding: 0.2rem 0.7rem;
  background: rgba(90, 58, 40, 0.08);
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #5A3A28;
  line-height: 1.5;
}
.dark .bps-pill-prehead, .dark2 .bps-pill-prehead, .dark3 .bps-pill-prehead {
  background: rgba(224, 177, 92, 0.14);
  color: #E0B15C;
}
.bps-text-xs {
  font-size: 0.8125rem;
}
.bps-text-sm {
  font-size: 0.9375rem;
}
.bps-text-lg {
  font-size: 1.25rem;
}
.bps-bullets-dot > ul, .bps-bullets-dot ul {
  list-style: none;
  padding-left: 1.25rem;
}
.bps-bullets-dot > ul li::before, .bps-bullets-dot ul li::before {
  content: "•";
  color: #5A3A28;
  font-weight: 700;
  display: inline-block;
  width: 1em;
  margin-left: -1em;
}
.dark .bps-bullets-dot > ul li::before, .dark2 .bps-bullets-dot > ul li::before, .dark3 .bps-bullets-dot > ul li::before, .dark .bps-bullets-dot ul li::before, .dark2 .bps-bullets-dot ul li::before, .dark3 .bps-bullets-dot ul li::before {
  color: #E0B15C;
}
.bps-bullets-quote > ul, .bps-bullets-quote ul {
  list-style: none;
  padding-left: 1.5rem;
}
.bps-bullets-quote > ul li, .bps-bullets-quote ul li {
  border-left: 3px solid rgba(90, 58, 40, 0.4);
  padding-left: 0.75rem;
  margin-bottom: 0.5rem;
}
.dark .bps-bullets-quote > ul li, .dark2 .bps-bullets-quote > ul li, .dark3 .bps-bullets-quote > ul li, .dark .bps-bullets-quote ul li, .dark2 .bps-bullets-quote ul li, .dark3 .bps-bullets-quote ul li {
  border-color: rgba(224, 177, 92, 0.4);
}
.section-opener.section-opener--auto {
  min-height: auto;
}
.card-grid-hairline {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(255px, 1fr));
  gap: 2px;
}
.card-grid-hairline > * {
  background: var(--bg);
  border-radius: 0;
  box-shadow: 0 0 0 1px var(--border-color);
}
.section .elementor-widget-heading.price-meta, .price-meta {
  font-family: var(--font-heading, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
  font-weight: 700;
  font-size: 1.1875rem;
  line-height: 1.2;
  color: var(--accent);
  margin-top: auto;
  padding-top: 0.875rem;
}
.section .elementor-widget-heading.price-meta .elementor-heading-title, .price-meta .elementor-heading-title {
  color: inherit;
  font: inherit;
}
.accent-rule-point {
  border-left: 3px solid var(--accent);
  padding-left: 1.125rem;
}
a.btn-outline-ink, button.btn-outline-ink, .elementor-widget-button.btn-outline-ink .elementor-button, .elementor-widget-button.btn-outline-ink a.elementor-button {
  background: none;
  border: 2px solid var(--text-color);
  color: var(--text-color);
}
a.btn-outline-ink:hover, a.btn-outline-ink:focus, button.btn-outline-ink:hover, .elementor-widget-button.btn-outline-ink a.elementor-button:hover, .elementor-widget-button.btn-outline-ink a.elementor-button:focus {
  background: var(--text-color);
  border-color: var(--text-color);
  color: var(--bg);
}
a.btn-solid-invert, button.btn-solid-invert, .elementor-widget-button.btn-solid-invert .elementor-button, .elementor-widget-button.btn-solid-invert a.elementor-button {
  background: var(--text-color);
  border: none;
  color: var(--bg);
}
a.btn-solid-invert:hover, a.btn-solid-invert:focus, .elementor-widget-button.btn-solid-invert a.elementor-button:hover, .elementor-widget-button.btn-solid-invert a.elementor-button:focus {
  background: var(--text-color);
  color: var(--bg);
  opacity: 0.88;
}
.head-condensed-uc, .head-condensed-uc .elementor-heading-title {
  text-transform: uppercase;
  letter-spacing: 0.01em;
}
.light, .light2, .light3 {
  --bg: #F1E9E4;
  --bg2: #E8E1DC;
  --bg3: #DED6D1;
  --text-color: #1A1712;
  --text-color2: #504C47;
  --text-color3: #67635E;
  --text-highlight: #1A1712;
  --text-highlight2: #34302B;
  --border-color: #D3CCC7;
  --bps-border-color: #D3CCC7;
  --b-border-color: #D3CCC7;
  --e-border-color: #D3CCC7;
  --accent: #5A3A28;
  --accent-text: #FFFFFF;
  --accent-2: #5A3A28;
  --accent-text-2: #FFFFFF;
  --accent-3: #5A3A28;
  --accent-text-3: #FFFFFF;
  --accent-2-border: #5A3A28;
  --accent-3-border: #5A3A28;
  --button-color: #5A3A28;
  --button-color-text: #FFFFFF;
  --button-border-color: #5A3A28;
  --button-ghost-color-text: #5A3A28;
  --cta-hover: #513525;
  --cta-hover-text: var(--accent-text);
  --cta-hover-border: #513525;
  --cta-2-hover: #513525;
  --cta-2-hover-text: var(--accent-text-2);
  --cta-2-hover-border: #513525;
  --cta-3-hover: #513525;
  --cta-3-hover-text: var(--accent-text-3);
  --cta-3-hover-border: #513525;
  --icon-color: #5A3A28;
}
.dark, .dark2, .dark3 {
  --bg: #17140F;
  --bg2: #201D17;
  --bg3: #2A2722;
  --text-color: #EDE9E0;
  --text-color2: #B8B4AC;
  --text-color3: #8D8982;
  --text-highlight: #EDE9E0;
  --text-highlight2: #D3CFC7;
  --border-color: #35322C;
  --bps-border-color: #35322C;
  --b-border-color: #35322C;
  --e-border-color: #35322C;
  --accent: #E0B15C;
  --accent-text: #17140F;
  --accent-2: #E0B15C;
  --accent-text-2: #141414;
  --accent-3: #E0B15C;
  --accent-text-3: #141414;
  --accent-2-border: #E0B15C;
  --accent-3-border: #E0B15C;
  --button-color: #E0B15C;
  --button-color-text: #17140F;
  --button-border-color: #E0B15C;
  --button-ghost-color-text: #E0B15C;
  --cta-hover: #E2B96E;
  --cta-hover-text: #141414;
  --cta-hover-border: #E2B96E;
  --cta-2-hover: #E2B96E;
  --cta-2-hover-text: var(--accent-text-2);
  --cta-2-hover-border: #E2B96E;
  --cta-3-hover: #E2B96E;
  --cta-3-hover-text: var(--accent-text-3);
  --cta-3-hover-border: #E2B96E;
  --icon-color: #E0B15C;
}
.bbg, .bbg svg {
  background: #F1E9E4;
  fill: #F1E9E4;
  color: #1A1712;
}
.bbg2, .bbg2 svg {
  background: #E8E1DC;
  fill: #E8E1DC;
  color: #1A1712;
}
.bbg3, .bbg3 svg {
  background: #DED6D1;
  fill: #DED6D1;
  color: #1A1712;
}
.bbg4, .bbg4 svg {
  background: #17140F;
  fill: #17140F;
  color: #EDE9E0;
}
.bbg5, .bbg5 svg {
  background: #201D17;
  fill: #201D17;
  color: #EDE9E0;
}
.bbg6, .bbg6 svg {
  background: #2A2722;
  fill: #2A2722;
  color: #EDE9E0;
}
.btxt1, .btxt1 svg {
  color: #1A1712;
}
.btxt2, .btxt2 svg {
  color: #504C47;
}
.btxt3, .btxt3 svg {
  color: #67635E;
}
.btxt4, .btxt4 svg {
  color: #EDE9E0;
}
.btxt5, .btxt5 svg {
  color: #B8B4AC;
}
.btxt6, .btxt6 svg {
  color: #8D8982;
}
.light2 {
  --bg: #E8E1DC;
}
.light3 {
  --bg: #DED6D1;
}
.dark2 {
  --bg: #201D17;
}
.dark3 {
  --bg: #2A2722;
}
.light.light2, .light2, .light2.light3 {
  --bg: #E8E1DC;
}
.light.light3, .light3.light2, .light3 {
  --bg: #DED6D1;
}
.dark.dark2, .dark2, .dark2.dark3 {
  --bg: #201D17;
}
.dark.dark3, .dark3.dark2, .dark3 {
  --bg: #2A2722;
}
.text2 h1, .text2 h2, .text2 h3, .text2 h4, .text2 h5, .text2 h6, .text2 p, .text2 a {
  color: var(--text-color2);
}
.text2 svg {
  fill: var(--text-color2);
}
.text3 h1, .text3 h2, .text3 h3, .text3 h4, .text3 h5, .text3 h6, .text3 p, .text3 a {
  color: var(--text-color3);
}
.text3 svg {
  fill: var(--text-color);
}
.text-highlight h1, .text-highlight h2, .text-highlight h3, .text-highlight h4, .text-highlight h5, .text-highlight h6, .text-highlight p, .text-highlight a {
  color: var(--text-highlight);
}
.text-highlight-2 h1, .text-highlight-2 h2, .text-highlight-2 h3, .text-highlight-2 h4, .text-highlight-2 h5, .text-highlight-2 h6, .text-highlight-2 p, .text-highlight-2 a {
  color: var(--text-highlight2);
}
.text-light h1, .text-light h2, .text-light h3, .text-light h4, .text-light h5, .text-light h6, .text-light p, .text-light a {
  color: #1A1712;
}
.text-light svg {
  fill: #1A1712;
}
.text-dark h1, .text-dark h2, .text-dark h3, .text-dark h4, .text-dark h5, .text-dark h6, .text-dark p, .text-dark a {
  color: #EDE9E0;
}
.text-dark svg {
  fill: #EDE9E0;
}
.button-secondary {
  --button-color: var(--accent-2);
  --button-color-text: var(--accent-text-2);
  --button-border-color: var(--accent-2-border, var(--accent-2));
}
.button-tertiary {
  --button-color: var(--accent-3);
  --button-color-text: var(--accent-text-3);
  --button-border-color: var(--accent-3-border, var(--accent-3));
}
.button-secondary .elementor-button-wrapper a:hover, .button-secondary .elementor-button-wrapper a:focus, .button-secondary a.elementor-button:hover, .button-secondary a.elementor-button:focus, .button-secondary .wp-block-button a.wp-element-button:hover, .button-secondary .wp-block-button a.wp-element-button:focus {
  background-color: var(--cta-2-hover, var(--cta-hover));
  color: var(--cta-2-hover-text, var(--cta-hover-text, var(--button-color-text)));
  border-color: var(--cta-2-hover-border, var(--cta-2-hover, var(--cta-hover)));
}
.button-tertiary .elementor-button-wrapper a:hover, .button-tertiary .elementor-button-wrapper a:focus, .button-tertiary a.elementor-button:hover, .button-tertiary a.elementor-button:focus, .button-tertiary .wp-block-button a.wp-element-button:hover, .button-tertiary .wp-block-button a.wp-element-button:focus {
  background-color: var(--cta-3-hover, var(--cta-hover));
  color: var(--cta-3-hover-text, var(--cta-hover-text, var(--button-color-text)));
  border-color: var(--cta-3-hover-border, var(--cta-3-hover, var(--cta-hover)));
}
.button-outline {
  --button-color: transparent;
  --button-color-text: var(--accent);
  --button-border-color: var(--accent);
}
.button-outline a.elementor-button, .button-outline .elementor-button, .button-outline .wp-block-button__link, .button-outline a.wp-element-button {
  border-width: 2px;
  border-style: solid;
}
.button-outline-secondary {
  --button-color: transparent;
  --button-color-text: var(--accent-2);
  --button-border-color: var(--accent-2);
}
.button-outline-secondary a.elementor-button, .button-outline-secondary .elementor-button, .button-outline-secondary .wp-block-button__link, .button-outline-secondary a.wp-element-button {
  border-width: 2px;
  border-style: solid;
}
.button-outline-tertiary {
  --button-color: transparent;
  --button-color-text: var(--accent-3);
  --button-border-color: var(--accent-3);
}
.button-outline-tertiary a.elementor-button, .button-outline-tertiary .elementor-button, .button-outline-tertiary .wp-block-button__link, .button-outline-tertiary a.wp-element-button {
  border-width: 2px;
  border-style: solid;
}
.button-outline .elementor-button-wrapper a:hover, .button-outline .elementor-button-wrapper a:focus, .button-outline a.elementor-button:hover, .button-outline a.elementor-button:focus, .button-outline .wp-block-button a.wp-element-button:hover, .button-outline .wp-block-button a.wp-element-button:focus {
  background-color: var(--accent);
  color: var(--accent-text, #fff);
  border-color: var(--accent);
}
.button-outline-secondary .elementor-button-wrapper a:hover, .button-outline-secondary .elementor-button-wrapper a:focus, .button-outline-secondary a.elementor-button:hover, .button-outline-secondary a.elementor-button:focus, .button-outline-secondary .wp-block-button a.wp-element-button:hover, .button-outline-secondary .wp-block-button a.wp-element-button:focus {
  background-color: var(--accent-2);
  color: var(--accent-text-2, var(--accent-text, #fff));
  border-color: var(--accent-2);
}
.button-outline-tertiary .elementor-button-wrapper a:hover, .button-outline-tertiary .elementor-button-wrapper a:focus, .button-outline-tertiary a.elementor-button:hover, .button-outline-tertiary a.elementor-button:focus, .button-outline-tertiary .wp-block-button a.wp-element-button:hover, .button-outline-tertiary .wp-block-button a.wp-element-button:focus {
  background-color: var(--accent-3);
  color: var(--accent-text-3, var(--accent-text-2, var(--accent-text, #fff)));
  border-color: var(--accent-3);
}
.bps-ghost, .bps-ghost-2, .bps-ghost-secondary, .bps-ghost-3, .bps-ghost-text {
  --button-color: transparent;
  --button-color-text: var(--ghost-color);
  --button-border-color: var(--ghost-color);
  --cta-hover: transparent;
  --cta-hover-text: var(--ghost-color);
  --cta-hover-border: var(--ghost-color);
}
.bps-ghost a.elementor-button, .bps-ghost-2 a.elementor-button, .bps-ghost-secondary a.elementor-button, .bps-ghost-3 a.elementor-button, .bps-ghost-text a.elementor-button {
  border-width: 2px;
  border-style: solid;
  border-color: var(--ghost-color);
}
.bps-ghost a.elementor-button:hover, .bps-ghost a.elementor-button:focus, .bps-ghost-2 a.elementor-button:hover, .bps-ghost-2 a.elementor-button:focus, .bps-ghost-secondary a.elementor-button:hover, .bps-ghost-secondary a.elementor-button:focus, .bps-ghost-3 a.elementor-button:hover, .bps-ghost-3 a.elementor-button:focus, .bps-ghost-text a.elementor-button:hover, .bps-ghost-text a.elementor-button:focus {
  background-color: transparent;
  color: var(--ghost-color);
  border-color: var(--ghost-color);
}
.bps-ghost {
  --ghost-color: var(--accent);
}
.bps-ghost-2, .bps-ghost-secondary {
  --ghost-color: var(--accent-2);
}
.bps-ghost-3 {
  --ghost-color: var(--accent-3);
}
.bps-ghost-text {
  --ghost-color: var(--text-color);
}
.bps-ghost-gold {
  --button-color: transparent;
  --button-color-text: var(--text-highlight);
  --button-border-color: var(--text-highlight);
}
.bps-ghost-gold a.elementor-button {
  border-width: 2px;
  border-style: solid;
  border-radius: 100px;
  color: var(--text-highlight);
  border-color: var(--text-highlight);
  background-color: transparent;
}
.bps-ghost-gold a.elementor-button:hover, .bps-ghost-gold a.elementor-button:focus {
  background-color: transparent;
  color: var(--text-highlight);
  border-color: var(--text-highlight);
}
body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) .bps-ghost-gold a.elementor-button:hover, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) .bps-ghost-gold a.elementor-button:focus, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) .bps-ghost-gold a.elementor-button:visited:hover, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) .bps-ghost-gold a.elementor-button:visited:focus {
  background-color: transparent;
  color: var(--text-highlight);
  border-color: var(--text-highlight);
}
.bps-btn-gold {
  --button-color: var(--text-highlight);
  --button-color-text: var(--accent-text, #fff);
  --button-border-color: var(--text-highlight);
}
.bps-btn-gold a.elementor-button {
  border-width: 2px;
  border-style: solid;
  border-radius: 100px;
  background-color: var(--text-highlight);
  border-color: var(--text-highlight);
  color: var(--accent-text, #fff);
}
body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) .bps-btn-gold a.elementor-button:hover, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) .bps-btn-gold a.elementor-button:focus {
  background-color: var(--text-highlight);
  border-color: var(--text-highlight);
  color: var(--accent-text, #fff);
}
.button-small {
  --button-padding: 0.5rem 1rem;
  --button-font-size: 0.875rem;
}
.button-large {
  --button-padding: 1rem 2rem;
  --button-font-size: 1.125rem;
}
.button-extra-large {
  --button-padding: 1.25rem 2.5rem;
  --button-font-size: 1.25rem;
}
.highlight b, .highlight strong {
  color: var(--accent, var(--text-color));
}
.highlight-2 b, .highlight-2 strong {
  color: var(--accent-2, var(--accent, var(--text-color)));
}
.highlight-3 b, .highlight-3 strong {
  color: var(--accent-3, var(--accent-2, var(--accent, var(--text-color))));
}
.highlight-gold b, .highlight-gold strong {
  color: var(--text-highlight, var(--accent, var(--text-color)));
  font-weight: 800;
}
.section.light, .section.light2, .section.light3, .section.dark, .section.dark2, .section.dark3 {
  background-color: var(--bg);
  color: var(--text-color);
}
.section.light h1:where(:not(.override)):where(:not(.override *)), .section.light2 h1:where(:not(.override)):where(:not(.override *)), .section.light3 h1:where(:not(.override)):where(:not(.override *)), .section.dark h1:where(:not(.override)):where(:not(.override *)), .section.dark2 h1:where(:not(.override)):where(:not(.override *)), .section.dark3 h1:where(:not(.override)):where(:not(.override *)), .section.light2 h1:where(:not(.override)):where(:not(.override *)), .section.dark2 h1:where(:not(.override)):where(:not(.override *)), .section.light3 h1:where(:not(.override)):where(:not(.override *)), .section.dark3 h1:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
}
.section.light h2:where(:not(.override)):where(:not(.override *)), .section.light2 h2:where(:not(.override)):where(:not(.override *)), .section.light3 h2:where(:not(.override)):where(:not(.override *)), .section.dark h2:where(:not(.override)):where(:not(.override *)), .section.dark2 h2:where(:not(.override)):where(:not(.override *)), .section.dark3 h2:where(:not(.override)):where(:not(.override *)), .section.light2 h2:where(:not(.override)):where(:not(.override *)), .section.dark2 h2:where(:not(.override)):where(:not(.override *)), .section.light3 h2:where(:not(.override)):where(:not(.override *)), .section.dark3 h2:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
}
.section.light h3:where(:not(.override)):where(:not(.override *)), .section.light2 h3:where(:not(.override)):where(:not(.override *)), .section.light3 h3:where(:not(.override)):where(:not(.override *)), .section.dark h3:where(:not(.override)):where(:not(.override *)), .section.dark2 h3:where(:not(.override)):where(:not(.override *)), .section.dark3 h3:where(:not(.override)):where(:not(.override *)), .section.light2 h3:where(:not(.override)):where(:not(.override *)), .section.dark2 h3:where(:not(.override)):where(:not(.override *)), .section.light3 h3:where(:not(.override)):where(:not(.override *)), .section.dark3 h3:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
}
.section.light h4:where(:not(.override)):where(:not(.override *)), .section.light2 h4:where(:not(.override)):where(:not(.override *)), .section.light3 h4:where(:not(.override)):where(:not(.override *)), .section.dark h4:where(:not(.override)):where(:not(.override *)), .section.dark2 h4:where(:not(.override)):where(:not(.override *)), .section.dark3 h4:where(:not(.override)):where(:not(.override *)), .section.light2 h4:where(:not(.override)):where(:not(.override *)), .section.dark2 h4:where(:not(.override)):where(:not(.override *)), .section.light3 h4:where(:not(.override)):where(:not(.override *)), .section.dark3 h4:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
}
.section.light h5:where(:not(.override)):where(:not(.override *)), .section.light2 h5:where(:not(.override)):where(:not(.override *)), .section.light3 h5:where(:not(.override)):where(:not(.override *)), .section.dark h5:where(:not(.override)):where(:not(.override *)), .section.dark2 h5:where(:not(.override)):where(:not(.override *)), .section.dark3 h5:where(:not(.override)):where(:not(.override *)), .section.light2 h5:where(:not(.override)):where(:not(.override *)), .section.dark2 h5:where(:not(.override)):where(:not(.override *)), .section.light3 h5:where(:not(.override)):where(:not(.override *)), .section.dark3 h5:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
}
.section.light h6:where(:not(.override)):where(:not(.override *)), .section.light2 h6:where(:not(.override)):where(:not(.override *)), .section.light3 h6:where(:not(.override)):where(:not(.override *)), .section.dark h6:where(:not(.override)):where(:not(.override *)), .section.dark2 h6:where(:not(.override)):where(:not(.override *)), .section.dark3 h6:where(:not(.override)):where(:not(.override *)), .section.light2 h6:where(:not(.override)):where(:not(.override *)), .section.dark2 h6:where(:not(.override)):where(:not(.override *)), .section.light3 h6:where(:not(.override)):where(:not(.override *)), .section.dark3 h6:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
}
.section.light p:where(:not(.override)):where(:not(.override *)), .section.light2 p:where(:not(.override)):where(:not(.override *)), .section.light3 p:where(:not(.override)):where(:not(.override *)), .section.dark p:where(:not(.override)):where(:not(.override *)), .section.dark2 p:where(:not(.override)):where(:not(.override *)), .section.dark3 p:where(:not(.override)):where(:not(.override *)), .section.light2 p:where(:not(.override)):where(:not(.override *)), .section.dark2 p:where(:not(.override)):where(:not(.override *)), .section.light3 p:where(:not(.override)):where(:not(.override *)), .section.dark3 p:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
}
.section.light a:where(:not(.override)):where(:not(.override *)), .section.light2 a:where(:not(.override)):where(:not(.override *)), .section.light3 a:where(:not(.override)):where(:not(.override *)), .section.dark a:where(:not(.override)):where(:not(.override *)), .section.dark2 a:where(:not(.override)):where(:not(.override *)), .section.dark3 a:where(:not(.override)):where(:not(.override *)), .section.light2 a:where(:not(.override)):where(:not(.override *)), .section.dark2 a:where(:not(.override)):where(:not(.override *)), .section.light3 a:where(:not(.override)):where(:not(.override *)), .section.dark3 a:where(:not(.override)):where(:not(.override *)) {
  color: var(--link-color, var(--text-color));
}
.section.light a.filled, .section.light2 a.filled, .section.light3 a.filled, .section.light button.filled, .section.light2 button.filled, .section.light3 button.filled, .section.dark a.filled, .section.dark2 a.filled, .section.dark3 a.filled, .section.dark button.filled, .section.dark2 button.filled, .section.dark3 button.filled {
  color: var(--accent-text);
}
.section.light a.alt, .section.light2 a.alt, .section.light3 a.alt, .section.light button.alt, .section.light2 button.alt, .section.light3 button.alt, .section.dark a.alt, .section.dark2 a.alt, .section.dark3 a.alt, .section.dark button.alt, .section.dark2 button.alt, .section.dark3 button.alt {
  background-color: var(--accent);
  color: var(--accent-text);
}
.section.light .nav-tabs.alt li, .section.light2 .nav-tabs.alt li, .section.light3 .nav-tabs.alt li, .section.dark .nav-tabs.alt li, .section.dark2 .nav-tabs.alt li, .section.dark3 .nav-tabs.alt li {
  background-color: var(--accent);
  color: var(--accent-text);
  margin: 0 8px;
}
.section.light .nav-tabs.alt li:hover, .section.light2 .nav-tabs.alt li:hover, .section.light3 .nav-tabs.alt li:hover, .section.dark .nav-tabs.alt li:hover, .section.dark2 .nav-tabs.alt li:hover, .section.dark3 .nav-tabs.alt li:hover {
  background-color: var(--accent-2);
  color: var(--accent-text-2);
}
.section.light .nav-tabs.alt li a, .section.light2 .nav-tabs.alt li a, .section.light3 .nav-tabs.alt li a, .section.light .nav-tabs.alt li button, .section.light2 .nav-tabs.alt li button, .section.light3 .nav-tabs.alt li button, .section.dark .nav-tabs.alt li a, .section.dark2 .nav-tabs.alt li a, .section.dark3 .nav-tabs.alt li a, .section.dark .nav-tabs.alt li button, .section.dark2 .nav-tabs.alt li button, .section.dark3 .nav-tabs.alt li button {
  color: var(--accent-text);
}
.section.light .nav-tabs.alt li a:hover, .section.light2 .nav-tabs.alt li a:hover, .section.light3 .nav-tabs.alt li a:hover, .section.light .nav-tabs.alt li button:hover, .section.light2 .nav-tabs.alt li button:hover, .section.light3 .nav-tabs.alt li button:hover, .section.dark .nav-tabs.alt li a:hover, .section.dark2 .nav-tabs.alt li a:hover, .section.dark3 .nav-tabs.alt li a:hover, .section.dark .nav-tabs.alt li button:hover, .section.dark2 .nav-tabs.alt li button:hover, .section.dark3 .nav-tabs.alt li button:hover {
  background-color: var(--accent-2);
  color: var(--accent-text-2);
}
.section.light .nav-tabs.alt li:first-child, .section.light2 .nav-tabs.alt li:first-child, .section.light3 .nav-tabs.alt li:first-child, .section.light .nav-tabs.alt li:last-child, .section.light2 .nav-tabs.alt li:last-child, .section.light3 .nav-tabs.alt li:last-child, .section.dark .nav-tabs.alt li:first-child, .section.dark2 .nav-tabs.alt li:first-child, .section.dark3 .nav-tabs.alt li:first-child, .section.dark .nav-tabs.alt li:last-child, .section.dark2 .nav-tabs.alt li:last-child, .section.dark3 .nav-tabs.alt li:last-child {
  margin: 0;
}
.section.light svg, .section.light2 svg, .section.light3 svg, .section.dark svg, .section.dark2 svg, .section.dark3 svg {
  fill: var(--text-color);
}
.section.light .highlight b, .section.light2 .highlight b, .section.light3 .highlight b, .section.dark .highlight b, .section.dark2 .highlight b, .section.dark3 .highlight b {
  color: var(--text-color2);
}
.section.light .wp-block-button .wp-block-button__link, .section.light2 .wp-block-button .wp-block-button__link, .section.light3 .wp-block-button .wp-block-button__link, .section.light .wp-block-button a.wp-element-button, .section.light2 .wp-block-button a.wp-element-button, .section.light3 .wp-block-button a.wp-element-button, .section.dark .wp-block-button .wp-block-button__link, .section.dark2 .wp-block-button .wp-block-button__link, .section.dark3 .wp-block-button .wp-block-button__link, .section.dark .wp-block-button a.wp-element-button, .section.dark2 .wp-block-button a.wp-element-button, .section.dark3 .wp-block-button a.wp-element-button {
  background-color: var(--button-color);
  color: var(--button-color-text);
  border-color: var(--button-color);
}
.section.light .wp-block-button .wp-block-button__link:hover, .section.light2 .wp-block-button .wp-block-button__link:hover, .section.light3 .wp-block-button .wp-block-button__link:hover, .section.light .wp-block-button .wp-block-button__link:focus, .section.light2 .wp-block-button .wp-block-button__link:focus, .section.light3 .wp-block-button .wp-block-button__link:focus, .section.light .wp-block-button .wp-block-button__link:active, .section.light2 .wp-block-button .wp-block-button__link:active, .section.light3 .wp-block-button .wp-block-button__link:active, .section.light .wp-block-button a.wp-element-button:hover, .section.light2 .wp-block-button a.wp-element-button:hover, .section.light3 .wp-block-button a.wp-element-button:hover, .section.light .wp-block-button a.wp-element-button:focus, .section.light2 .wp-block-button a.wp-element-button:focus, .section.light3 .wp-block-button a.wp-element-button:focus, .section.light .wp-block-button a.wp-element-button:active, .section.light2 .wp-block-button a.wp-element-button:active, .section.light3 .wp-block-button a.wp-element-button:active, .section.dark .wp-block-button .wp-block-button__link:hover, .section.dark2 .wp-block-button .wp-block-button__link:hover, .section.dark3 .wp-block-button .wp-block-button__link:hover, .section.dark .wp-block-button .wp-block-button__link:focus, .section.dark2 .wp-block-button .wp-block-button__link:focus, .section.dark3 .wp-block-button .wp-block-button__link:focus, .section.dark .wp-block-button .wp-block-button__link:active, .section.dark2 .wp-block-button .wp-block-button__link:active, .section.dark3 .wp-block-button .wp-block-button__link:active, .section.dark .wp-block-button a.wp-element-button:hover, .section.dark2 .wp-block-button a.wp-element-button:hover, .section.dark3 .wp-block-button a.wp-element-button:hover, .section.dark .wp-block-button a.wp-element-button:focus, .section.dark2 .wp-block-button a.wp-element-button:focus, .section.dark3 .wp-block-button a.wp-element-button:focus, .section.dark .wp-block-button a.wp-element-button:active, .section.dark2 .wp-block-button a.wp-element-button:active, .section.dark3 .wp-block-button a.wp-element-button:active {
  background-color: var(--cta-hover);
  color: var(--cta-hover-text, var(--button-color-text));
  border-color: var(--cta-hover-border, var(--cta-hover));
}
.section.light a.elementor-button, .section.light2 a.elementor-button, .section.light3 a.elementor-button, .section.dark a.elementor-button, .section.dark2 a.elementor-button, .section.dark3 a.elementor-button {
  background-color: var(--button-color);
  color: var(--button-color-text);
  border-color: var(--button-border-color, var(--button-color));
}
.section.light a.elementor-button:hover, .section.light2 a.elementor-button:hover, .section.light3 a.elementor-button:hover, .section.light a.elementor-button:focus, .section.light2 a.elementor-button:focus, .section.light3 a.elementor-button:focus, .section.dark a.elementor-button:hover, .section.dark2 a.elementor-button:hover, .section.dark3 a.elementor-button:hover, .section.dark a.elementor-button:focus, .section.dark2 a.elementor-button:focus, .section.dark3 a.elementor-button:focus {
  background-color: var(--cta-hover);
  color: var(--cta-hover-text, var(--button-color-text));
  border-color: var(--cta-hover-border, var(--cta-hover));
}
.section.light .elementor-button-wrapper a, .section.light2 .elementor-button-wrapper a, .section.light3 .elementor-button-wrapper a, .section.dark .elementor-button-wrapper a, .section.dark2 .elementor-button-wrapper a, .section.dark3 .elementor-button-wrapper a {
  color: var(--button-color-text);
  background-color: var(--button-color);
  border-color: var(--button-border-color, var(--button-color));
}
.section.light .elementor-button-wrapper a:hover, .section.light2 .elementor-button-wrapper a:hover, .section.light3 .elementor-button-wrapper a:hover, .section.light .elementor-button-wrapper a:focus, .section.light2 .elementor-button-wrapper a:focus, .section.light3 .elementor-button-wrapper a:focus, .section.dark .elementor-button-wrapper a:hover, .section.dark2 .elementor-button-wrapper a:hover, .section.dark3 .elementor-button-wrapper a:hover, .section.dark .elementor-button-wrapper a:focus, .section.dark2 .elementor-button-wrapper a:focus, .section.dark3 .elementor-button-wrapper a:focus {
  background-color: var(--cta-hover);
  color: var(--cta-hover-text, var(--button-color-text));
  border-color: var(--cta-hover-border, var(--cta-hover));
}
.section.light .elementor-social-icons-wrapper a, .section.light2 .elementor-social-icons-wrapper a, .section.light3 .elementor-social-icons-wrapper a, .section.dark .elementor-social-icons-wrapper a, .section.dark2 .elementor-social-icons-wrapper a, .section.dark3 .elementor-social-icons-wrapper a {
  background: var(--accent);
}
.section.light .elementor-social-icons-wrapper a svg, .section.light2 .elementor-social-icons-wrapper a svg, .section.light3 .elementor-social-icons-wrapper a svg, .section.dark .elementor-social-icons-wrapper a svg, .section.dark2 .elementor-social-icons-wrapper a svg, .section.dark3 .elementor-social-icons-wrapper a svg {
  fill: var(--accent-text);
}
.section.light .elementor-progress-bar, .section.light2 .elementor-progress-bar, .section.light3 .elementor-progress-bar, .section.dark .elementor-progress-bar, .section.dark2 .elementor-progress-bar, .section.dark3 .elementor-progress-bar {
  background-color: var(--accent);
}
.section.light span.elementor-progress-percentage, .section.light2 span.elementor-progress-percentage, .section.light3 span.elementor-progress-percentage, .section.light span.elementor-progress-text, .section.light2 span.elementor-progress-text, .section.light3 span.elementor-progress-text, .section.dark span.elementor-progress-percentage, .section.dark2 span.elementor-progress-percentage, .section.dark3 span.elementor-progress-percentage, .section.dark span.elementor-progress-text, .section.dark2 span.elementor-progress-text, .section.dark3 span.elementor-progress-text {
  color: var(--accent-text);
}
.section .wp-block-cover__background.has-background-dim {
  background-color: var(--bg);
}
.wp-block-button .wp-block-button__link, .wp-block-button a.wp-element-button {
  background-color: var(--button-color);
  color: var(--button-color-text);
  border-color: var(--button-color);
}
.wp-block-button .wp-block-button__link:hover, .wp-block-button .wp-block-button__link:focus, .wp-block-button .wp-block-button__link:active, .wp-block-button a.wp-element-button:hover, .wp-block-button a.wp-element-button:focus, .wp-block-button a.wp-element-button:active {
  background-color: var(--cta-hover);
  color: var(--cta-hover-text, var(--button-color-text));
  border-color: var(--cta-hover-border, var(--cta-hover));
}
.wp-block-button.is-style-outline .wp-block-button__link {
  background-color: transparent;
  border: 2px solid var(--button-color);
  color: var(--button-color);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover, .wp-block-button.is-style-outline .wp-block-button__link:focus {
  background-color: var(--button-color);
  color: var(--button-color-text);
}
.elementor-button, a.elementor-button {
  background-color: var(--button-color);
  color: var(--button-color-text);
  border-color: var(--button-border-color, var(--button-color));
}
.elementor-button:hover, .elementor-button:focus, a.elementor-button:hover, a.elementor-button:focus {
  background-color: var(--cta-hover);
  color: var(--cta-hover-text, var(--button-color-text));
  border-color: var(--cta-hover-border, var(--cta-hover));
}
body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) .wp-block-button__link, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) .wp-element-button, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) a.wp-element-button, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) .elementor-button, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) a.elementor-button {
  background-color: var(--button-color, #5A3A28);
  color: var(--button-color-text, #FFFFFF);
  border-color: var(--button-border-color, #5A3A28);
  padding: var(--button-padding, 20px 40px);
  border-radius: var(--button-radius, 50px);
  font-size: var(--button-font-size, 16px);
}
body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) .wp-block-button__link:hover, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) .wp-block-button__link:focus, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) .wp-block-button__link:active, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) .wp-block-button__link:visited:hover, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) .wp-element-button:hover, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) .wp-element-button:focus, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) .wp-element-button:active, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) .wp-element-button:visited:hover, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) a.wp-element-button:hover, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) a.wp-element-button:focus, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) a.wp-element-button:active, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) a.wp-element-button:visited:hover, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) .elementor-button:hover, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) .elementor-button:focus, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) .elementor-button:active, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) .elementor-button:visited:hover, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) a.elementor-button:hover, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) a.elementor-button:focus, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) a.elementor-button:active, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) a.elementor-button:visited:hover {
  background-color: var(--cta-hover, #513525);
  color: var(--cta-hover-text, var(--button-color-text, #FFFFFF));
  border-color: var(--cta-hover-border, var(--cta-hover, #513525));
}
body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) .wp-block-button.is-style-outline .wp-block-button__link {
  background-color: transparent;
  border: 2px solid var(--button-color, #5A3A28);
  color: var(--button-color, #5A3A28);
}
body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) .wp-block-button.is-style-outline .wp-block-button__link:hover, body.bps-palette-active:where(:not(.brutalist-skin)):where(:not(.neubrutalism-skin)) .wp-block-button.is-style-outline .wp-block-button__link:focus {
  background-color: var(--button-color, #5A3A28);
  color: var(--button-color-text, #FFFFFF);
}
.wp-block-button__link, .wp-element-button, a.wp-element-button, .elementor-button, a.elementor-button, button.button {
  background-clip: padding-box;
}
.wp-block-button__link:focus-visible, .wp-element-button:focus-visible, a.wp-element-button:focus-visible, .elementor-button:focus-visible, a.elementor-button:focus-visible, button.button:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--bg, #fff), 0 0 0 4px var(--accent, var(--ast-global-color-1, #5a9c9e));
}
button.button.button-brand {
  background-color: var(--button-color);
  color: var(--button-color-text);
}
.moa-sm {
  padding: 10px var(--moa-x);
}
.moa-sd {
  padding: var(--moa-y-sd) var(--moa-x);
}
/* 🔴 ALIAS of .moa-sd, not a new rung. `bps_size` writes its value through as a class
     with NO validation, so a plausible-but-undefined name paints NOTHING — measured on the
     trades fleet 2026-09-18: `moa-md` on 99 sections, every one with zero vertical padding
     and its text kissing the band below. `md` is the name everyone reaches for in the
     middle of sm/sd/lg/xl/xxl, so it is claimed here rather than left to fail silently. */
.moa-md {
  padding: var(--moa-y-sd) var(--moa-x);
}
.moa-lg {
  padding: var(--moa-y-lg) var(--moa-x);
}
.moa-xl {
  padding: var(--moa-y-xl) var(--moa-x);
}
.moa-xxl {
  padding: var(--moa-y-xxl) var(--moa-x);
}
.moa-border-rounding {
  border-radius: 10px;
}
.section.border-bottom {
  border-bottom: 2px solid var(--accent, var(--ast-global-color-1));
}
.no-p-blocks, .no-p-blocks > .e-con-inner {
  padding-block-start: 0 !important;
  padding-block-end: 0 !important;
}
.mbtn1 {
  --accent: #E0B15C;
  --accent-text: #17140F;
}
.mbtn1 .elementor-button-wrapper a {
  color: var(--button-color-text);
  background-color: var(--button-color);
  border-color: var(--button-border-color, var(--button-color));
}
.mbtn1 .elementor-button-wrapper a:hover, .mbtn1 .elementor-button-wrapper a:focus {
  background-color: var(--cta-hover);
  color: var(--cta-hover-text, var(--button-color-text));
  border-color: var(--cta-hover-border, var(--cta-hover));
}
.mbtn1 .elementor-social-icons-wrapper a {
  background: var(--accent);
}
.mbtn1 .elementor-social-icons-wrapper a svg {
  fill: var(--accent-text);
}
.mbtn1 .elementor-progress-bar {
  background-color: var(--accent);
}
.mbtn1 span.elementor-progress-percentage, .mbtn1 span.elementor-progress-text {
  color: var(--accent-text);
}
.elementor-widget-text-editor p:last-child {
  margin: 0;
}
.elementor-widget-text-editor p:first-child {
  margin-top: 0;
}
.style-hero h1 {
  font-size: 4rem;
}
.style-hero h2 {
  font-size: 3rem;
}
.style-hero b {
  color: var(--text-color2);
}
.style-hero a.elementor-button {
  padding: var(--moa-p-2);
}
.moa-features-icon-feed > div:last-child {
  border-bottom: 1px solid var(--b-border-color);
}
.moa-features-icon-feed .elementor-icon svg {
  fill: var(--accent);
}
.moa-features-grid .moa-grid {
  padding: 15px;
  text-align: center;
}
.moa-price p, .moa-discount-price p {
  font-size: 1.5em;
  font-weight: 700;
}
.moa-discount-price {
  text-decoration: line-through;
}
.moa-number-highlight h2 {
  display: inline-block;
  background-color: var(--accent);
  color: var(--accent-text);
  padding: 15px;
  border-radius: 100%;
  width: 70px;
  height: 70px;
  max-width: 100%;
}
.moa-icon span.elementor-divider-separator {
  border-block-color: var(--accent);
}
.moa-icon svg {
  fill: var(--accent);
}
hr.moa-icon {
  color: var(--accent);
}
.gform_wrapper.gravity-theme .gfield_label {
  color: var(--text-color);
}
input[type=submit].gform-button {
  color: var(--accent-text);
  background-color: var(--accent);
}
.pp-gravity-form .gform-footer input[type=submit] {
  background-color: var(--accent);
  color: var(--accent-text);
}
.wpcf7 label {
  color: var(--text-color);
}
.moa-gform-inline .gform_wrapper .gform-body .gform-grid-col span {
  padding-right: 0 !important;
}
.moa-gform-inline .gform_wrapper .gform-body fieldset legend {
  color: var(--text-color);
}
.moa-gform-inline .gform_wrapper .gform-body .gform_fields input[type=text], .moa-gform-inline .gform_wrapper .gform-body .gform_fields input[type=email], .moa-gform-inline .gform_wrapper .gform-body .gform_fields input[type=password] {
  width: 100%;
  padding: 20px;
}
.moa-gform-inline .gform_wrapper .gform-body .ginput_container label {
  color: var(--text-color);
}
.moa-gform-inline .gform_wrapper .gform-body .ginput_container label a {
  color: var(--text-color);
}
.moa-gform-inline .gform_footer .gform_button {
  background: var(--button-color);
  color: var(--button-color-text);
}
.moa-modal.gf .gform_wrapper .gform_heading {
  text-align: center;
}
.moa-modal.gf .gform_wrapper .gform_heading p {
  margin-top: 10px;
  font-size: 21px;
}
.moa-modal.gf .gform_wrapper.gravity-theme .ginput_container_email input[type=email] {
  width: 100%;
}
.moa-modal.gf .gform_wrapper.gravity-theme input {
  padding: 25px;
  font-size: 18px;
}
.moa-modal.gf .gform_wrapper.gravity-theme .ginput_complex:not(.ginput_container_address) fieldset:not([style*="display:none"]):not(.ginput_full), .moa-modal.gf .gform_wrapper.gravity-theme .ginput_complex:not(.ginput_container_address) span:not([style*="display:none"]):not(.ginput_full) {
  padding-right: 0 !important;
}
.moa-modal.gf .gform_wrapper.gravity-theme .gform-footer.gform_footer input[type=submit] {
  width: 100%;
}
.section.light .elementor-icon-list-text:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-icon-list-text:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-icon-list-text:where(:not(.override)):where(:not(.override *)), .section.dark .elementor-icon-list-text:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-icon-list-text:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-icon-list-text:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-icon-list-text:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-icon-list-text:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-icon-list-text:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-icon-list-text:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
}
.section.light .elementor-icon-list-icon i, .section.light2 .elementor-icon-list-icon i, .section.light3 .elementor-icon-list-icon i, .section.light .elementor-icon-list-icon svg, .section.light2 .elementor-icon-list-icon svg, .section.light3 .elementor-icon-list-icon svg, .section.dark .elementor-icon-list-icon i, .section.dark2 .elementor-icon-list-icon i, .section.dark3 .elementor-icon-list-icon i, .section.dark .elementor-icon-list-icon svg, .section.dark2 .elementor-icon-list-icon svg, .section.dark3 .elementor-icon-list-icon svg {
  color: var(--accent);
  fill: var(--accent);
}
.section.light .elementor-counter-number-wrapper:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-counter-number-wrapper:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-counter-number-wrapper:where(:not(.override)):where(:not(.override *)), .section.dark .elementor-counter-number-wrapper:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-counter-number-wrapper:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-counter-number-wrapper:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-counter-number-wrapper:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-counter-number-wrapper:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-counter-number-wrapper:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-counter-number-wrapper:where(:not(.override)):where(:not(.override *)) {
  color: var(--accent);
}
.section.light .elementor-counter-title:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-counter-title:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-counter-title:where(:not(.override)):where(:not(.override *)), .section.dark .elementor-counter-title:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-counter-title:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-counter-title:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-counter-title:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-counter-title:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-counter-title:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-counter-title:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
}
.section.light .elementor-testimonial-content:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-testimonial-content:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-testimonial-content:where(:not(.override)):where(:not(.override *)), .section.dark .elementor-testimonial-content:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-testimonial-content:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-testimonial-content:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-testimonial-content:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-testimonial-content:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-testimonial-content:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-testimonial-content:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
}
.section.light .elementor-testimonial-name:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-testimonial-name:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-testimonial-name:where(:not(.override)):where(:not(.override *)), .section.dark .elementor-testimonial-name:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-testimonial-name:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-testimonial-name:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-testimonial-name:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-testimonial-name:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-testimonial-name:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-testimonial-name:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color2);
}
.section.light .elementor-testimonial-job:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-testimonial-job:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-testimonial-job:where(:not(.override)):where(:not(.override *)), .section.dark .elementor-testimonial-job:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-testimonial-job:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-testimonial-job:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-testimonial-job:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-testimonial-job:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-testimonial-job:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-testimonial-job:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color3);
}
.section.light .elementor-tab-title:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-tab-title:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-tab-title:where(:not(.override)):where(:not(.override *)), .section.dark .elementor-tab-title:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-tab-title:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-tab-title:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-tab-title:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-tab-title:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-tab-title:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-tab-title:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
}
.section.light .elementor-tab-title:where(:not(.override)):where(:not(.override *)).elementor-active, .section.light2 .elementor-tab-title:where(:not(.override)):where(:not(.override *)).elementor-active, .section.light3 .elementor-tab-title:where(:not(.override)):where(:not(.override *)).elementor-active, .section.dark .elementor-tab-title:where(:not(.override)):where(:not(.override *)).elementor-active, .section.dark2 .elementor-tab-title:where(:not(.override)):where(:not(.override *)).elementor-active, .section.dark3 .elementor-tab-title:where(:not(.override)):where(:not(.override *)).elementor-active, .section.light2 .elementor-tab-title:where(:not(.override)):where(:not(.override *)).elementor-active, .section.dark2 .elementor-tab-title:where(:not(.override)):where(:not(.override *)).elementor-active, .section.light3 .elementor-tab-title:where(:not(.override)):where(:not(.override *)).elementor-active, .section.dark3 .elementor-tab-title:where(:not(.override)):where(:not(.override *)).elementor-active {
  color: var(--accent);
}
.section.light .elementor-tab-content:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-tab-content:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-tab-content:where(:not(.override)):where(:not(.override *)), .section.dark .elementor-tab-content:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-tab-content:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-tab-content:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-tab-content:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-tab-content:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-tab-content:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-tab-content:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
  border-color: var(--bps-border-color, var(--border-color));
}
.section.light .elementor-accordion-title:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-accordion-title:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-accordion-title:where(:not(.override)):where(:not(.override *)), .section.dark .elementor-accordion-title:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-accordion-title:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-accordion-title:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-accordion-title:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-accordion-title:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-accordion-title:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-accordion-title:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
}
.section.light .elementor-accordion-content:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-accordion-content:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-accordion-content:where(:not(.override)):where(:not(.override *)), .section.dark .elementor-accordion-content:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-accordion-content:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-accordion-content:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-accordion-content:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-accordion-content:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-accordion-content:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-accordion-content:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
}
.section.light .elementor-accordion-icon i, .section.light2 .elementor-accordion-icon i, .section.light3 .elementor-accordion-icon i, .section.light .elementor-accordion-icon svg, .section.light2 .elementor-accordion-icon svg, .section.light3 .elementor-accordion-icon svg, .section.dark .elementor-accordion-icon i, .section.dark2 .elementor-accordion-icon i, .section.dark3 .elementor-accordion-icon i, .section.dark .elementor-accordion-icon svg, .section.dark2 .elementor-accordion-icon svg, .section.dark3 .elementor-accordion-icon svg {
  color: var(--accent);
  fill: var(--accent);
}
.section.light .elementor-toggle-title:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-toggle-title:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-toggle-title:where(:not(.override)):where(:not(.override *)), .section.dark .elementor-toggle-title:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-toggle-title:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-toggle-title:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-toggle-title:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-toggle-title:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-toggle-title:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-toggle-title:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
}
.section.light .elementor-toggle-content:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-toggle-content:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-toggle-content:where(:not(.override)):where(:not(.override *)), .section.dark .elementor-toggle-content:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-toggle-content:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-toggle-content:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-toggle-content:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-toggle-content:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-toggle-content:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-toggle-content:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
}
.section.light .elementor-toggle-icon i, .section.light2 .elementor-toggle-icon i, .section.light3 .elementor-toggle-icon i, .section.light .elementor-toggle-icon svg, .section.light2 .elementor-toggle-icon svg, .section.light3 .elementor-toggle-icon svg, .section.dark .elementor-toggle-icon i, .section.dark2 .elementor-toggle-icon i, .section.dark3 .elementor-toggle-icon i, .section.dark .elementor-toggle-icon svg, .section.dark2 .elementor-toggle-icon svg, .section.dark3 .elementor-toggle-icon svg {
  color: var(--accent);
  fill: var(--accent);
}
.section.light .elementor-alert-title:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-alert-title:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-alert-title:where(:not(.override)):where(:not(.override *)), .section.dark .elementor-alert-title:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-alert-title:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-alert-title:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-alert-title:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-alert-title:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-alert-title:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-alert-title:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
}
.section.light .elementor-alert-description:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-alert-description:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-alert-description:where(:not(.override)):where(:not(.override *)), .section.dark .elementor-alert-description:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-alert-description:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-alert-description:where(:not(.override)):where(:not(.override *)), .section.light2 .elementor-alert-description:where(:not(.override)):where(:not(.override *)), .section.dark2 .elementor-alert-description:where(:not(.override)):where(:not(.override *)), .section.light3 .elementor-alert-description:where(:not(.override)):where(:not(.override *)), .section.dark3 .elementor-alert-description:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color2);
}
.section.light .wp-block-separator, .section.light2 .wp-block-separator, .section.light3 .wp-block-separator, .section.dark .wp-block-separator, .section.dark2 .wp-block-separator, .section.dark3 .wp-block-separator {
  border-color: var(--bps-border-color, var(--border-color));
}
.section.light .wp-block-separator.has-css-opacity, .section.light2 .wp-block-separator.has-css-opacity, .section.light3 .wp-block-separator.has-css-opacity, .section.dark .wp-block-separator.has-css-opacity, .section.dark2 .wp-block-separator.has-css-opacity, .section.dark3 .wp-block-separator.has-css-opacity {
  opacity: 1;
}
.section.light .wp-block-quote:where(:not(.override)):where(:not(.override *)), .section.light2 .wp-block-quote:where(:not(.override)):where(:not(.override *)), .section.light3 .wp-block-quote:where(:not(.override)):where(:not(.override *)), .section.dark .wp-block-quote:where(:not(.override)):where(:not(.override *)), .section.dark2 .wp-block-quote:where(:not(.override)):where(:not(.override *)), .section.dark3 .wp-block-quote:where(:not(.override)):where(:not(.override *)), .section.light2 .wp-block-quote:where(:not(.override)):where(:not(.override *)), .section.dark2 .wp-block-quote:where(:not(.override)):where(:not(.override *)), .section.light3 .wp-block-quote:where(:not(.override)):where(:not(.override *)), .section.dark3 .wp-block-quote:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
  border-left-color: var(--accent);
}
.section.light .wp-block-quote:where(:not(.override)):where(:not(.override *)) cite, .section.light2 .wp-block-quote:where(:not(.override)):where(:not(.override *)) cite, .section.light3 .wp-block-quote:where(:not(.override)):where(:not(.override *)) cite, .section.dark .wp-block-quote:where(:not(.override)):where(:not(.override *)) cite, .section.dark2 .wp-block-quote:where(:not(.override)):where(:not(.override *)) cite, .section.dark3 .wp-block-quote:where(:not(.override)):where(:not(.override *)) cite, .section.light2 .wp-block-quote:where(:not(.override)):where(:not(.override *)) cite, .section.dark2 .wp-block-quote:where(:not(.override)):where(:not(.override *)) cite, .section.light3 .wp-block-quote:where(:not(.override)):where(:not(.override *)) cite, .section.dark3 .wp-block-quote:where(:not(.override)):where(:not(.override *)) cite {
  color: var(--text-color3);
}
.section.light .wp-block-table td:where(:not(.override)):where(:not(.override *)), .section.light2 .wp-block-table td:where(:not(.override)):where(:not(.override *)), .section.light3 .wp-block-table td:where(:not(.override)):where(:not(.override *)), .section.light .wp-block-table th:where(:not(.override)):where(:not(.override *)), .section.light2 .wp-block-table th:where(:not(.override)):where(:not(.override *)), .section.light3 .wp-block-table th:where(:not(.override)):where(:not(.override *)), .section.dark .wp-block-table td:where(:not(.override)):where(:not(.override *)), .section.dark2 .wp-block-table td:where(:not(.override)):where(:not(.override *)), .section.dark3 .wp-block-table td:where(:not(.override)):where(:not(.override *)), .section.dark .wp-block-table th:where(:not(.override)):where(:not(.override *)), .section.dark2 .wp-block-table th:where(:not(.override)):where(:not(.override *)), .section.dark3 .wp-block-table th:where(:not(.override)):where(:not(.override *)), .section.light2 .wp-block-table td:where(:not(.override)):where(:not(.override *)), .section.light2 .wp-block-table th:where(:not(.override)):where(:not(.override *)), .section.dark2 .wp-block-table td:where(:not(.override)):where(:not(.override *)), .section.dark2 .wp-block-table th:where(:not(.override)):where(:not(.override *)), .section.light3 .wp-block-table td:where(:not(.override)):where(:not(.override *)), .section.light3 .wp-block-table th:where(:not(.override)):where(:not(.override *)), .section.dark3 .wp-block-table td:where(:not(.override)):where(:not(.override *)), .section.dark3 .wp-block-table th:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
  border-color: var(--bps-border-color, var(--border-color));
}
.section.light .wp-block-table th:where(:not(.override)):where(:not(.override *)), .section.light2 .wp-block-table th:where(:not(.override)):where(:not(.override *)), .section.light3 .wp-block-table th:where(:not(.override)):where(:not(.override *)), .section.dark .wp-block-table th:where(:not(.override)):where(:not(.override *)), .section.dark2 .wp-block-table th:where(:not(.override)):where(:not(.override *)), .section.dark3 .wp-block-table th:where(:not(.override)):where(:not(.override *)), .section.light2 .wp-block-table th:where(:not(.override)):where(:not(.override *)), .section.dark2 .wp-block-table th:where(:not(.override)):where(:not(.override *)), .section.light3 .wp-block-table th:where(:not(.override)):where(:not(.override *)), .section.dark3 .wp-block-table th:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color2);
}
.section.light .wp-block-list:where(:not(.override)):where(:not(.override *)), .section.light2 .wp-block-list:where(:not(.override)):where(:not(.override *)), .section.light3 .wp-block-list:where(:not(.override)):where(:not(.override *)), .section.dark .wp-block-list:where(:not(.override)):where(:not(.override *)), .section.dark2 .wp-block-list:where(:not(.override)):where(:not(.override *)), .section.dark3 .wp-block-list:where(:not(.override)):where(:not(.override *)), .section.light2 .wp-block-list:where(:not(.override)):where(:not(.override *)), .section.dark2 .wp-block-list:where(:not(.override)):where(:not(.override *)), .section.light3 .wp-block-list:where(:not(.override)):where(:not(.override *)), .section.dark3 .wp-block-list:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
}
.section.light .wp-block-list:where(:not(.override)):where(:not(.override *))::marker, .section.light2 .wp-block-list:where(:not(.override)):where(:not(.override *))::marker, .section.light3 .wp-block-list:where(:not(.override)):where(:not(.override *))::marker, .section.light .wp-block-list:where(:not(.override)):where(:not(.override *)) li::marker, .section.light2 .wp-block-list:where(:not(.override)):where(:not(.override *)) li::marker, .section.light3 .wp-block-list:where(:not(.override)):where(:not(.override *)) li::marker, .section.dark .wp-block-list:where(:not(.override)):where(:not(.override *))::marker, .section.dark2 .wp-block-list:where(:not(.override)):where(:not(.override *))::marker, .section.dark3 .wp-block-list:where(:not(.override)):where(:not(.override *))::marker, .section.dark .wp-block-list:where(:not(.override)):where(:not(.override *)) li::marker, .section.dark2 .wp-block-list:where(:not(.override)):where(:not(.override *)) li::marker, .section.dark3 .wp-block-list:where(:not(.override)):where(:not(.override *)) li::marker, .section.light2 .wp-block-list:where(:not(.override)):where(:not(.override *))::marker, .section.light2 .wp-block-list:where(:not(.override)):where(:not(.override *)) li::marker, .section.dark2 .wp-block-list:where(:not(.override)):where(:not(.override *))::marker, .section.dark2 .wp-block-list:where(:not(.override)):where(:not(.override *)) li::marker, .section.light3 .wp-block-list:where(:not(.override)):where(:not(.override *))::marker, .section.light3 .wp-block-list:where(:not(.override)):where(:not(.override *)) li::marker, .section.dark3 .wp-block-list:where(:not(.override)):where(:not(.override *))::marker, .section.dark3 .wp-block-list:where(:not(.override)):where(:not(.override *)) li::marker {
  color: var(--accent);
}
.section.light li:where(:not(.override)):where(:not(.override *)), .section.light2 li:where(:not(.override)):where(:not(.override *)), .section.light3 li:where(:not(.override)):where(:not(.override *)), .section.light dt:where(:not(.override)):where(:not(.override *)), .section.light2 dt:where(:not(.override)):where(:not(.override *)), .section.light3 dt:where(:not(.override)):where(:not(.override *)), .section.light dd:where(:not(.override)):where(:not(.override *)), .section.light2 dd:where(:not(.override)):where(:not(.override *)), .section.light3 dd:where(:not(.override)):where(:not(.override *)), .section.light figcaption:where(:not(.override)):where(:not(.override *)), .section.light2 figcaption:where(:not(.override)):where(:not(.override *)), .section.light3 figcaption:where(:not(.override)):where(:not(.override *)), .section.light caption:where(:not(.override)):where(:not(.override *)), .section.light2 caption:where(:not(.override)):where(:not(.override *)), .section.light3 caption:where(:not(.override)):where(:not(.override *)), .section.light td:where(:not(.override)):where(:not(.override *)), .section.light2 td:where(:not(.override)):where(:not(.override *)), .section.light3 td:where(:not(.override)):where(:not(.override *)), .section.light th:where(:not(.override)):where(:not(.override *)), .section.light2 th:where(:not(.override)):where(:not(.override *)), .section.light3 th:where(:not(.override)):where(:not(.override *)), .section.light label:where(:not(.override)):where(:not(.override *)), .section.light2 label:where(:not(.override)):where(:not(.override *)), .section.light3 label:where(:not(.override)):where(:not(.override *)), .section.dark li:where(:not(.override)):where(:not(.override *)), .section.dark2 li:where(:not(.override)):where(:not(.override *)), .section.dark3 li:where(:not(.override)):where(:not(.override *)), .section.dark dt:where(:not(.override)):where(:not(.override *)), .section.dark2 dt:where(:not(.override)):where(:not(.override *)), .section.dark3 dt:where(:not(.override)):where(:not(.override *)), .section.dark dd:where(:not(.override)):where(:not(.override *)), .section.dark2 dd:where(:not(.override)):where(:not(.override *)), .section.dark3 dd:where(:not(.override)):where(:not(.override *)), .section.dark figcaption:where(:not(.override)):where(:not(.override *)), .section.dark2 figcaption:where(:not(.override)):where(:not(.override *)), .section.dark3 figcaption:where(:not(.override)):where(:not(.override *)), .section.dark caption:where(:not(.override)):where(:not(.override *)), .section.dark2 caption:where(:not(.override)):where(:not(.override *)), .section.dark3 caption:where(:not(.override)):where(:not(.override *)), .section.dark td:where(:not(.override)):where(:not(.override *)), .section.dark2 td:where(:not(.override)):where(:not(.override *)), .section.dark3 td:where(:not(.override)):where(:not(.override *)), .section.dark th:where(:not(.override)):where(:not(.override *)), .section.dark2 th:where(:not(.override)):where(:not(.override *)), .section.dark3 th:where(:not(.override)):where(:not(.override *)), .section.dark label:where(:not(.override)):where(:not(.override *)), .section.dark2 label:where(:not(.override)):where(:not(.override *)), .section.dark3 label:where(:not(.override)):where(:not(.override *)), .section.light2 li:where(:not(.override)):where(:not(.override *)), .section.light2 dt:where(:not(.override)):where(:not(.override *)), .section.light2 dd:where(:not(.override)):where(:not(.override *)), .section.light2 figcaption:where(:not(.override)):where(:not(.override *)), .section.light2 caption:where(:not(.override)):where(:not(.override *)), .section.light2 td:where(:not(.override)):where(:not(.override *)), .section.light2 th:where(:not(.override)):where(:not(.override *)), .section.light2 label:where(:not(.override)):where(:not(.override *)), .section.dark2 li:where(:not(.override)):where(:not(.override *)), .section.dark2 dt:where(:not(.override)):where(:not(.override *)), .section.dark2 dd:where(:not(.override)):where(:not(.override *)), .section.dark2 figcaption:where(:not(.override)):where(:not(.override *)), .section.dark2 caption:where(:not(.override)):where(:not(.override *)), .section.dark2 td:where(:not(.override)):where(:not(.override *)), .section.dark2 th:where(:not(.override)):where(:not(.override *)), .section.dark2 label:where(:not(.override)):where(:not(.override *)), .section.light3 li:where(:not(.override)):where(:not(.override *)), .section.light3 dt:where(:not(.override)):where(:not(.override *)), .section.light3 dd:where(:not(.override)):where(:not(.override *)), .section.light3 figcaption:where(:not(.override)):where(:not(.override *)), .section.light3 caption:where(:not(.override)):where(:not(.override *)), .section.light3 td:where(:not(.override)):where(:not(.override *)), .section.light3 th:where(:not(.override)):where(:not(.override *)), .section.light3 label:where(:not(.override)):where(:not(.override *)), .section.dark3 li:where(:not(.override)):where(:not(.override *)), .section.dark3 dt:where(:not(.override)):where(:not(.override *)), .section.dark3 dd:where(:not(.override)):where(:not(.override *)), .section.dark3 figcaption:where(:not(.override)):where(:not(.override *)), .section.dark3 caption:where(:not(.override)):where(:not(.override *)), .section.dark3 td:where(:not(.override)):where(:not(.override *)), .section.dark3 th:where(:not(.override)):where(:not(.override *)), .section.dark3 label:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
}
.section.light blockquote:where(:not(.wp-block-quote)):where(:not(.override)):where(:not(.override *)), .section.light2 blockquote:where(:not(.wp-block-quote)):where(:not(.override)):where(:not(.override *)), .section.light3 blockquote:where(:not(.wp-block-quote)):where(:not(.override)):where(:not(.override *)), .section.dark blockquote:where(:not(.wp-block-quote)):where(:not(.override)):where(:not(.override *)), .section.dark2 blockquote:where(:not(.wp-block-quote)):where(:not(.override)):where(:not(.override *)), .section.dark3 blockquote:where(:not(.wp-block-quote)):where(:not(.override)):where(:not(.override *)), .section.light2 blockquote:where(:not(.wp-block-quote)):where(:not(.override)):where(:not(.override *)), .section.dark2 blockquote:where(:not(.wp-block-quote)):where(:not(.override)):where(:not(.override *)), .section.light3 blockquote:where(:not(.wp-block-quote)):where(:not(.override)):where(:not(.override *)), .section.dark3 blockquote:where(:not(.wp-block-quote)):where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
}
.entry-content > .wp-block-group.moa-sm {
  padding: 10px var(--moa-x);
}
.entry-content > .wp-block-group.moa-sd {
  padding: var(--moa-y-sd) var(--moa-x);
}
.entry-content > .wp-block-group.moa-lg {
  padding: var(--moa-y-lg) var(--moa-x);
}
.entry-content > .wp-block-group.moa-xl {
  padding: var(--moa-y-xl) var(--moa-x);
}
.entry-content > .wp-block-group.moa-xxl {
  padding: var(--moa-y-xxl) var(--moa-x);
}
.entry-content > .wp-block-cover.moa-sm {
  padding: 10px var(--moa-x);
}
.entry-content > .wp-block-cover.moa-sd {
  padding: var(--moa-y-sd) var(--moa-x);
}
.entry-content > .wp-block-cover.moa-lg {
  padding: var(--moa-y-lg) var(--moa-x);
}
.entry-content > .wp-block-cover.moa-xl {
  padding: var(--moa-y-xl) var(--moa-x);
}
.entry-content > .wp-block-cover.moa-xxl {
  padding: var(--moa-y-xxl) var(--moa-x);
}
.entry-content > .wp-block-columns.moa-sm {
  padding: 10px var(--moa-x);
}
.entry-content > .wp-block-columns.moa-sd {
  padding: var(--moa-y-sd) var(--moa-x);
}
.entry-content > .wp-block-columns.moa-lg {
  padding: var(--moa-y-lg) var(--moa-x);
}
.entry-content > .wp-block-columns.moa-xl {
  padding: var(--moa-y-xl) var(--moa-x);
}
.entry-content > .wp-block-columns.moa-xxl {
  padding: var(--moa-y-xxl) var(--moa-x);
}
#lesson-video .wp-video {
  width: 100% !important;
}
.moa-course-nav-btns {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
#video-tracker-wrapper {
  width: 100%;
  aspect-ratio: 1.7777777778;
}
#bps-vimeo-player, #bps-vimeo-player iframe {
  width: 100%;
  height: 100%;
}
.moa-overlay::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 0.8;
  background-color: var(--bg);
  color: var(--text-color);
}
.temp1 input[type=email], .temp1 input[type=number], .temp1 input[type=password], .temp1 input[type=reset], .temp1 input[type=search], .temp1 input[type=tel], .temp1 input[type=text], .temp1 input[type=url], .temp1 select, .temp1 textarea {
  color: #1A1712;
  padding: 0.75em;
  height: auto;
  border-width: 1px;
  border-style: solid;
  border-color: #d3d3d3;
  background: #ffffff;
}
.hfe-nav-menu__layout-horizontal li.menu-item, .hfe-nav-menu__layout-horizontal > li.menu-item {
  font-size: 1rem;
}
.e-con.moa-width-narrow, .moa-width-narrow {
  --width: 800px;
  width: 800px;
  max-width: 100%;
  margin: 0 auto;
}
.e-con.moa-width-regular, .moa-width-regular {
  --width: 1000px;
  width: 1000px;
  max-width: 100%;
  margin: 0 auto;
}
ul {
  margin: 0;
  list-style-position: inside;
}
img.card-img-to.profile-image {
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: var(--border-radius);
}
.profile-card {
  height: 100%;
  background: var(--card-bg);
  border-radius: var(--border-radius);
  overflow: hidden;
  transition: 0.3s ease-out;
}
.moa-media-item {
  background: var(--card-bg);
  border-radius: var(--border-radius);
  overflow: hidden;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  transition: 0.3s ease-out;
  margin-bottom: 1.5rem;
}
.moa-media-item:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
.moa-media-image-container {
  position: relative;
  width: 100%;
  aspect-ratio: 1;
  overflow: hidden;
  cursor: pointer;
}
.moa-media-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: 0.3s ease-out;
}
.moa-media-image:hover {
  transform: scale(1.05);
}
.moa-media-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: 0.3s ease-out;
}
.moa-media-overlay i {
  color: white;
  font-size: 2rem;
}
.moa-media-image-container:hover .moa-media-overlay {
  opacity: 1;
}
.moa-media-actions {
  padding: 1rem;
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
}
.moa-action-btn, a.moa-action-btn, button.moa-action-btn {
  flex: 1;
  padding: 0.5rem;
  border: none;
  border-radius: 6px;
  font-size: 0.875rem;
  font-weight: 500;
  transition: 0.3s ease-out;
  text-decoration: none;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  background-color: var(--cta-color);
  color: var(--cta-text);
}
.moa-action-btn.view, a.moa-action-btn.view, button.moa-action-btn.view {
  background-color: var(--cta-color);
  color: var(--cta-text);
}
.moa-action-btn.view:hover, a.moa-action-btn.view:hover, button.moa-action-btn.view:hover {
  background-color: var(--cta-hover);
  color: var(--cta-text);
  text-decoration: none;
}
.moa-action-btn.edit, a.moa-action-btn.edit, button.moa-action-btn.edit {
  background-color: var(--subtle-color);
  color: var(--text-color);
  border: 1px solid var(--bps-border-color, var(--border-color));
}
.moa-action-btn.edit:hover, a.moa-action-btn.edit:hover, button.moa-action-btn.edit:hover {
  background-color: var(--alternate-subtle);
  color: var(--text-color);
  text-decoration: none;
}
.moa-action-btn.delete, a.moa-action-btn.delete, button.moa-action-btn.delete {
  background-color: var(--danger-color);
  color: white;
}
.moa-action-btn.delete:hover, a.moa-action-btn.delete:hover, button.moa-action-btn.delete:hover {
  background-color: #c82333;
  color: white;
  text-decoration: none;
}
.bps-media-upload {
  --upload-size: 200px;
  --upload-aspect: 1;
  --upload-border-color: var(--bps-border-color, var(--border-color));
  --upload-border-hover: var(--brand-color);
  --upload-bg-color: var(--subtle-color);
  --upload-bg-hover: var(--alternate-subtle);
  position: relative;
}
.bps-media-upload .file-input {
  display: none !important;
}
.bps-media-upload.drag-over .upload-target, .bps-media-upload.drag-over .upload-slot {
  border-color: var(--upload-border-hover);
  background-color: var(--upload-bg-hover);
  transform: scale(1.02);
}
.bps-media-upload .upload-target {
  width: var(--upload-size);
  aspect-ratio: var(--upload-aspect);
  border: 3px dashed var(--upload-border-color);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: 0.3s ease-out;
  background-color: var(--upload-bg-color);
  position: relative;
  overflow: hidden;
  border-radius: var(--border-radius);
}
.bps-media-upload .upload-target:hover {
  border-color: var(--upload-border-hover);
  background-color: var(--upload-bg-hover);
}
.bps-media-upload .upload-target.has-image {
  border-style: solid;
  border-color: var(--upload-border-hover);
}
.bps-media-upload .upload-target[data-shape="circle"], .bps-media-upload[data-shape="circle"] .bps-media-upload .upload-target {
  border-radius: 50%;
}
.bps-media-upload .upload-target[data-shape="square"], .bps-media-upload[data-shape="square"] .bps-media-upload .upload-target {
  border-radius: var(--border-radius);
}
.bps-media-upload .upload-target[data-shape="rectangle"], .bps-media-upload[data-shape="rectangle"] .bps-media-upload .upload-target {
  border-radius: calc(var(--border-radius) * 1.5);
  width: 100%;
  height: 200px;
  aspect-ratio: unset;
}
.bps-media-upload .upload-placeholder {
  text-align: center;
  color: var(--text-color);
  pointer-events: none;
}
.bps-media-upload .upload-placeholder i {
  font-size: 2rem;
  display: block;
  margin-bottom: 0.5rem;
  opacity: 0.8;
}
.bps-media-upload .upload-placeholder span {
  font-size: 0.9rem;
  font-weight: 500;
}
.bps-media-upload .upload-preview {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
  display: none;
}
.bps-media-upload .upload-preview.show {
  display: block;
}
.bps-media-upload .upload-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.7);
  display: none;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: inherit;
}
.bps-media-upload .upload-overlay .btn {
  font-size: 0.8rem;
  padding: 0.25rem 0.5rem;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: 0.3s ease-out;
}
.bps-media-upload .upload-overlay .btn.btn-primary {
  background: var(--brand-color);
  color: var(--brand-text);
}
.bps-media-upload .upload-overlay .btn.btn-primary:hover {
  opacity: 0.9;
}
.bps-media-upload .upload-overlay .btn.btn-danger {
  background: var(--danger-color);
  color: white;
}
.bps-media-upload .upload-overlay .btn.btn-danger:hover {
  opacity: 0.9;
}
.bps-media-upload .upload-overlay .btn i {
  font-size: 0.7rem;
}
.bps-media-upload .upload-target:hover .upload-overlay {
  display: flex;
}
.bps-media-upload .upload-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 15px;
  margin: 20px 0;
}
@media (max-width: 992px) {
  .bps-media-upload .upload-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }
}
@media (max-width: 768px) {
  .bps-media-upload .upload-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }
}
.bps-media-upload .upload-slot {
  aspect-ratio: var(--upload-aspect);
  border: 2px dashed var(--upload-border-color);
  border-radius: var(--border-radius);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: 0.3s ease-out;
  background-color: var(--upload-bg-color);
  position: relative;
  overflow: hidden;
}
.bps-media-upload .upload-slot:hover {
  border-color: var(--upload-border-hover);
  background-color: var(--upload-bg-hover);
}
.bps-media-upload .upload-slot.filled {
  border-style: solid;
  border-color: var(--success-color);
}
.bps-media-upload .slot-placeholder {
  text-align: center;
  color: var(--text-color);
  font-size: 0.8rem;
  pointer-events: none;
}
.bps-media-upload .slot-placeholder i {
  font-size: 1.5rem;
  display: block;
  margin-bottom: 0.5rem;
  opacity: 0.8;
}
.bps-media-upload .slot-placeholder span {
  font-size: 0.75rem;
  font-weight: 500;
}
.bps-media-upload .slot-preview {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
  display: none;
}
.bps-media-upload .slot-preview.show {
  display: block;
}
.bps-media-upload .slot-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.7);
  display: none;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border-radius: inherit;
}
.bps-media-upload .slot-overlay .btn {
  font-size: 0.7rem;
  padding: 0.2rem 0.4rem;
  border: none;
  border-radius: 3px;
  cursor: pointer;
  transition: 0.3s ease-out;
}
.bps-media-upload .slot-overlay .btn.btn-primary {
  background: var(--brand-color);
  color: var(--brand-text);
}
.bps-media-upload .slot-overlay .btn.btn-danger {
  background: var(--danger-color);
  color: white;
}
.bps-media-upload .slot-overlay .btn i {
  font-size: 0.6rem;
}
.bps-media-upload .upload-slot:hover .slot-overlay {
  display: flex;
}
.moa-media-header {
  text-align: center;
  margin-bottom: 2rem;
}
.moa-media-header h2 {
  color: var(--heading-color);
  font-weight: 600;
  margin-bottom: 0.5rem;
}
.moa-media-header p {
  color: var(--text-color);
  margin: 0;
}
.moa-upload-area {
  border: 2px dashed var(--bps-border-color, var(--border-color));
  border-radius: var(--border-radius);
  padding: 2rem;
  text-align: center;
  background: var(--card-bg);
  transition: 0.3s ease-out;
  margin-bottom: 2rem;
}
.moa-upload-area:hover {
  border-color: var(--cta-color);
}
.moa-upload-btn {
  background-color: var(--cta-color);
  color: var(--brand-text);
  border: none;
  padding: 0.75rem 1.5rem;
  border-radius: 6px;
  font-weight: 500;
  transition: 0.3s ease-out;
}
.moa-upload-btn:hover {
  background-color: var(--cta-hover);
}
.profile-photo-section, .square-upload-section, .grid-upload-section, .cover-photo-section {
  text-align: center;
  margin: 2rem auto;
}
.profile-photo-section .upload-title, .square-upload-section .upload-title, .grid-upload-section .upload-title, .cover-photo-section .upload-title {
  margin-bottom: 0.5rem;
  color: var(--heading-color);
  font-size: 1.25rem;
  font-weight: 600;
}
.profile-photo-section .upload-description, .square-upload-section .upload-description, .grid-upload-section .upload-description, .cover-photo-section .upload-description {
  margin-bottom: 1.5rem;
  font-size: 0.9rem;
  color: var(--text-color);
}
.profile-photo-section {
  max-width: 400px;
}
.square-upload-section {
  max-width: 300px;
}
.grid-upload-section {
  max-width: 600px;
}
.cover-photo-section {
  max-width: 800px;
}
.cover-photo-section .bps-media-upload[data-shape="rectangle"] .upload-target {
  width: 100%;
  height: 200px;
  aspect-ratio: unset;
  border-radius: var(--border-radius);
}
.bps-media-upload.uploading .upload-target, .bps-media-upload.uploading .upload-slot {
  opacity: 0.6;
  cursor: not-allowed;
}
.bps-media-upload.uploading .upload-target::after, .bps-media-upload.uploading .upload-slot::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 20px;
  height: 20px;
  margin: -10px 0 0 -10px;
  border: 2px solid transparent;
  border-top: 2px solid var(--brand-color);
  border-radius: 50%;
  animation: upload-spin 1s linear infinite;
}
.bps-media-upload.uploading .upload-placeholder, .bps-media-upload.uploading .slot-placeholder {
  display: none;
}
@keyframes upload-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.bps-media-upload.error .upload-target, .bps-media-upload.error .upload-slot {
  border-color: var(--danger-color);
  background-color: rgba(220, 53, 69, 0.1);
}
.bps-media-upload.success .upload-target, .bps-media-upload.success .upload-slot {
  border-color: var(--success-color);
  background-color: rgba(40, 167, 69, 0.1);
}
.moa-empty-state {
  text-align: center;
  padding: 3rem 1rem;
  color: var(--text-color);
}
.moa-empty-state i {
  font-size: 4rem;
  color: var(--alternate-subtle);
  margin-bottom: 1rem;
}
.bps-media-upload .upload-target:focus-visible, .bps-media-upload .upload-slot:focus-visible {
  outline: 2px solid var(--brand-color);
  outline-offset: 2px;
}
.bps-media-upload .upload-target[tabindex]:focus, .bps-media-upload .upload-slot[tabindex]:focus {
  outline: 2px solid var(--brand-color);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  .bps-media-upload .upload-target, .bps-media-upload .upload-slot, .bps-media-upload .btn {
    transition: none;
  }
  .bps-media-upload.uploading .upload-target::after, .bps-media-upload.uploading .upload-slot::after {
    animation: none;
    opacity: 0.5;
  }
  .moa-media-item {
    transition: none;
  }
  .moa-media-item:hover {
    transform: none;
  }
}
.uploadGrid .upload-slot {
  aspect-ratio: 1;
  border: 2px dashed var(--bps-border-color, var(--border-color));
  border-radius: var(--border-radius);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  background: var(--subtle-color);
  transition: 0.3s ease-out;
  min-height: 120px;
}
.uploadGrid .upload-slot:hover {
  border-color: var(--brand-color);
  background: var(--alternate-subtle);
}
.uploadGrid .upload-slot.filled {
  border: 2px solid var(--success-color);
  cursor: default;
}
.uploadGrid .upload-slot.drag-over {
  border-color: var(--success-color);
  background: rgba(40, 167, 69, 0.1);
}
.uploadGrid .upload-slot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: calc(var(--border-radius) - 2px);
}
.uploadGrid .upload-slot .bps-placeholder {
  color: var(--text-color);
  font-size: 2.5rem;
  font-weight: 300;
  line-height: 1;
  opacity: 0.7;
  transition: 0.15s ease-out;
}
.uploadGrid .upload-slot:hover .bps-placeholder {
  color: var(--brand-color);
  transform: scale(1.1);
}
.uploadGrid .upload-slot .remove-btn {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  padding: 0;
  display: none;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  line-height: 1;
  background-color: var(--danger-color);
  border: none;
  color: white;
  cursor: pointer;
  transition: 0.15s ease-out;
}
.uploadGrid .upload-slot .remove-btn:hover {
  background-color: #c53030;
  transform: scale(1.1);
}
.uploadGrid .upload-slot:hover .remove-btn {
  display: flex;
}
.uploadGrid .upload-slot.has-image .bps-placeholder {
  display: none;
}
.uploadGrid .upload-slot.has-image .remove-btn {
  opacity: 0;
}
.uploadGrid .upload-slot.has-image:hover .remove-btn {
  opacity: 1;
  display: flex;
}
.upload-all-btn {
  background: linear-gradient(135deg, var(--brand-color) 0%, var(--cta-hover) 100%);
  border: none;
  color: white;
  padding: 12px 32px;
  border-radius: var(--border-radius);
  font-weight: 500;
  font-size: 1.1rem;
  transition: 0.3s ease-out;
  display: block;
  margin: 0 auto;
  min-width: 150px;
  cursor: pointer;
}
.upload-all-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4);
  background: linear-gradient(135deg, var(--cta-hover) 0%, var(--brand-color) 100%);
}
.upload-all-btn:disabled {
  background: var(--subtle-color);
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
  opacity: 0.6;
}
.upload-section h2 {
  color: var(--heading-color);
  font-size: 1.5rem;
  font-weight: 600;
  margin-bottom: 24px;
  text-align: center;
}
@media screen and (max-width: 992px) {
  .uploadGrid .upload-slot {
    min-height: 100px;
  }
  .uploadGrid .upload-slot .bps-placeholder {
    font-size: 2rem;
  }
  .uploadGrid .upload-slot .remove-btn {
    width: 24px;
    height: 24px;
    font-size: 14px;
  }
  .upload-all-btn {
    padding: 10px 24px;
    font-size: 1rem;
  }
}
@media screen and (max-width: 768px) {
  .uploadGrid .upload-slot {
    min-height: 80px;
  }
  .uploadGrid .upload-slot .bps-placeholder {
    font-size: 1.5rem;
  }
  .uploadGrid .upload-slot .remove-btn {
    width: 20px;
    height: 20px;
    font-size: 12px;
    top: 4px;
    right: 4px;
  }
  .upload-all-btn {
    padding: 8px 20px;
    font-size: 0.9rem;
    min-width: 120px;
  }
}
/**
 * BPS Framework CSS - Structural & Behavioral Companion
 * Version: 2.1.0
 * Last Modified: 2026-05-23
 *
 * Purpose: Provides the structural CSS required by framework.js
 * These are standalone behavioral classes - not part of the SCSS skin system.
 * They handle show/hide states, transitions, and layout for JS-driven components.
 *
 * Bootstrap Awareness:
 * - Loads AFTER Bootstrap CSS (assumes Bootstrap is present)
 * - Uses Bootstrap CSS variables (--bs-success, --bs-danger, etc.) with fallbacks
 * - body.modal-open deferred to Bootstrap's definition
 * - BPS modal sizes prefixed .bps-modal-sm/lg/xl to avoid .modal-sm/lg/xl collision
 * - Form validation scoped to .bps-form-validate to coexist with Bootstrap forms
 * - bps-ajax.js modals use Bootstrap's JS modal system (bootstrap.Modal)
 *   while framework.js modals (.bps-modal) are a separate class-toggle system
 *
 * Sections:
 * 1. Sticky Header
 * 2. Scroll Progress Bar
 * 3. Scroll Fade (pre-GSAP state)
 * 4. Mobile Menu
 * 5. Tabs
 * 6. Accordion
 * 7. Modal (Framework modal - not Bootstrap)
 * 8. Lightbox
 * 9. Form Validation & Enhancement
 * 10. Lazy Load
 * 11. Copy Code
 * 12. Loading States
 */
/* ==========================================================================
   1. STICKY HEADER
   Class: .bps-sticky-header
   JS: BPS.stickyHeader()
   ========================================================================== */
/*
 * 🔴 Added 2026-08-26. Astra chrome replacement (class-bps-astra-chrome-
 * replacement.php) disables Astra's own #masthead and renders the header
 * through a Themer global_part instead — Elementor's own wrapper
 * (`.elementor.elementor-{id}`) becomes the OUTERMOST element, a direct
 * child of Astra's standard `.hfeed.site` body wrapper, sitting alongside
 * `.site-content` at that same level.
 *
 * That wrapper is `position: static`. z-index has NO effect on a statically
 * positioned element, and a static element creates no stacking context of
 * its own — so a z-index set two levels deeper, on the header itself, never
 * reaches the level where the header's block actually competes against
 * `.site-content`'s block for paint order. With neither side positioned,
 * plain DOM order wins, and .site-content (later in the document) painted
 * over the still-open dropdown's overflow, cutting it off mid-panel.
 * Measured live: the panel's own reported bottom edge was already inside the
 * NEXT section's hit-test area, even with the header's own z-index raised.
 *
 * Fix belongs at the level where the competition actually happens. `.hfeed
 * .site` is Astra's own standard body wrapper, present whenever Astra is
 * active — which this whole replacement feature already requires — so this
 * is a safe, portable selector, not tied to any one site's Elementor
 * document ID. Scoped to a direct child that actually contains a
 * `.bps-sticky-header`, so an ordinary (non-replaced) Astra header, or the
 * page's own content .elementor instance, is untouched.
 */
.hfeed.site > .elementor:has(> .bps-sticky-header) {
  position: relative;
  z-index: 100;
}
.bps-sticky-header {
  /*
     * Only .is-sticky (below) ever got a real z-index — that class is added
     * by JS only once the page has been scrolled past the header's natural
     * position. The rule above now covers the pre-scroll state too.
     */
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  will-change: transform;
}
.bps-sticky-header.is-sticky {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1030;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.bps-sticky-header.is-hidden {
  transform: translateY(-100%);
}
.admin-bar .bps-sticky-header.is-sticky {
  top: 32px;
}
/* ==========================================================================
   2. SCROLL PROGRESS BAR
   Class: .bps-scroll-progress
   JS: BPS.scrollProgress()
   ========================================================================== */
.bps-scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  width: 0%;
  background: var(--accent, #0073aa);
  z-index: 1040;
  transition: width 0.1s linear;
}
/* ==========================================================================
   3. SCROLL FADE (Pre-animation state)
   Class: .bps-scroll-fade
   JS: BPS.scrollFade() - GSAP handles the animation
   ========================================================================== */
.bps-scroll-fade {
  opacity: 0;
}
/* ==========================================================================
   4. MOBILE MENU
   Class: .bps-mobile-menu (trigger), target via data-target
   JS: BPS.mobileMenu()
   ========================================================================== */
.bps-mobile-menu {
  cursor: pointer;
}
/* Menu target - hidden by default on mobile */
[class].is-open {
  /* Generic open state - specifics depend on menu implementation */
}
body.menu-open {
  overflow: hidden;
}
/* Hamburger active state */
.bps-mobile-menu.is-active {
  /* Override in theme if custom hamburger animation needed */
}
/* ==========================================================================
   5. TABS
   Class: .bps-tabs (container)
   Structure: .bps-tab-nav > button, .bps-tab-content
   JS: BPS.tabs()
   ========================================================================== */
.bps-tab-nav {
  display: flex;
  gap: 0;
  border-bottom: 2px solid var(--bps-border-color, var(--border-color, #dee2e6));
  margin-bottom: 1rem;
}
.bps-tab-nav button {
  padding: 0.75rem 1.25rem;
  border: none;
  background: none;
  cursor: pointer;
  font-size: inherit;
  font-family: inherit;
  color: var(--text-color2, #6c757d);
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: color 0.2s ease, border-color 0.2s ease;
}
.bps-tab-nav button:hover {
  color: var(--text-color, #212529);
}
.bps-tab-nav button.is-active {
  color: var(--accent, #0073aa);
  border-bottom-color: var(--accent, #0073aa);
  font-weight: 600;
}
.bps-tab-content {
  display: none;
}
.bps-tab-content.is-active {
  display: block;
}
/* ==========================================================================
   6. ACCORDION
   Class: .bps-accordion (container)
   Structure: .bps-accordion-item > .bps-accordion-header + .bps-accordion-content
   JS: BPS.accordion() - jQuery slideToggle handles animation
   ========================================================================== */
.bps-accordion-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  cursor: pointer;
  font-weight: 600;
  border: 1px solid var(--bps-border-color, var(--border-color, #dee2e6));
  border-bottom: none;
  background: var(--bg2, #f8f9fa);
  transition: background-color 0.2s ease;
  user-select: none;
}
.bps-accordion-header:hover {
  background: var(--bg, #e9ecef);
}
.bps-accordion-item:first-child .bps-accordion-header {
  border-radius: 4px 4px 0 0;
}
.bps-accordion-item:last-child .bps-accordion-header {
  border-bottom: 1px solid var(--bps-border-color, var(--border-color, #dee2e6));
}
.bps-accordion-item:last-child:not(.is-open) .bps-accordion-header {
  border-radius: 0 0 4px 4px;
}
/* Arrow indicator */
.bps-accordion-header::after {
  content: "❯";
  /* Right chevron */
  font-size: 0.85em;
  transition: transform 0.3s ease;
  flex-shrink: 0;
  margin-left: 1rem;
}
.bps-accordion-item.is-open > .bps-accordion-header::after {
  transform: rotate(90deg);
}
.bps-accordion-content {
  display: none;
  /* jQuery slideToggle manages this */
  padding: 1rem 1.25rem;
  border: 1px solid var(--bps-border-color, var(--border-color, #dee2e6));
  border-top: none;
}
.bps-accordion-item:last-child .bps-accordion-content {
  border-radius: 0 0 4px 4px;
}
/* ==========================================================================
   7. MODAL (Framework modal system - NOT Bootstrap modals)
   Class: .bps-modal
   Trigger: .bps-modal-trigger[data-modal="#id"]
   Close: .bps-modal-close, .bps-modal-overlay
   JS: BPS.modal()
   ========================================================================== */
.bps-modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1050;
  align-items: center;
  justify-content: center;
}
.bps-modal.is-open {
  display: flex;
}
.bps-modal-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  cursor: pointer;
}
.bps-modal-content {
  position: relative;
  z-index: 1;
  background: var(--bg, #fff);
  border-radius: 8px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
  max-width: 600px;
  width: 90%;
  max-height: 85vh;
  overflow-y: auto;
  padding: 2rem;
}
/* Size variants (used by Trigger system actionConfig.size) */
.bps-modal-content.bps-modal-sm {
  max-width: 400px;
}
.bps-modal-content.bps-modal-lg {
  max-width: 800px;
}
.bps-modal-content.bps-modal-xl {
  max-width: 1100px;
}
.bps-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--bps-border-color, var(--border-color, #dee2e6));
}
.bps-modal-header h2, .bps-modal-header h3, .bps-modal-header h4, .bps-modal-header h5 {
  margin: 0;
}
.bps-modal-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: none;
  background: none;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  color: var(--text-color2, #6c757d);
  border-radius: 4px;
  transition: background-color 0.2s ease;
  flex-shrink: 0;
}
.bps-modal-close:hover {
  background: rgba(0, 0, 0, 0.05);
  color: var(--text-color, #212529);
}
.bps-modal-body {
  margin-bottom: 1rem;
}
.bps-modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--bps-border-color, var(--border-color, #dee2e6));
}
/*
 * body.modal-open - NOT defined here.
 * Bootstrap already provides body.modal-open { overflow: hidden; }
 * Framework.js toggles this class, Bootstrap's CSS handles the style.
 */
/* ==========================================================================
   8. LIGHTBOX
   Class: .bps-lightbox (trigger on images/links)
   Container: #bps-lightbox (auto-created by JS)
   JS: BPS.lightbox()
   ========================================================================== */
#bps-lightbox {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1060;
  align-items: center;
  justify-content: center;
}
#bps-lightbox.is-open {
  display: flex;
}
.bps-lightbox-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.85);
  cursor: pointer;
}
.bps-lightbox-content {
  position: relative;
  z-index: 1;
  max-width: 90vw;
  max-height: 90vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bps-lightbox-content img {
  max-width: 100%;
  max-height: 85vh;
  object-fit: contain;
  border-radius: 4px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}
.bps-lightbox-close {
  position: absolute;
  top: -40px;
  right: 0;
  border: none;
  background: none;
  color: #fff;
  font-size: 2rem;
  cursor: pointer;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.8;
  transition: opacity 0.2s ease;
}
.bps-lightbox-close:hover {
  opacity: 1;
}
body.lightbox-open {
  overflow: hidden;
}
/* Trigger elements - indicate clickable */
a.bps-lightbox, img.bps-lightbox, [class*="bps-lightbox"][data-src] {
  cursor: zoom-in;
}
/* ==========================================================================
   9. FORM VALIDATION & ENHANCEMENT
   JS: BPS.formValidation(), BPS.charCount(), BPS.passwordToggle()
   ========================================================================== */
/* Validation states - uses Bootstrap's color variables with fallbacks */
.bps-form-validate input.is-valid, .bps-form-validate textarea.is-valid, .bps-form-validate select.is-valid {
  border-color: var(--bs-success, #198754);
}
.bps-form-validate input.is-invalid, .bps-form-validate textarea.is-invalid, .bps-form-validate select.is-invalid {
  border-color: var(--bs-danger, #dc3545);
}
.bps-error-message {
  display: block;
  font-size: 0.85em;
  color: var(--bs-danger, #dc3545);
  margin-top: 0.25rem;
}
/* Character counter */
.bps-char-counter {
  font-size: 0.85em;
  color: var(--text-color2, #6c757d);
  margin-top: 0.25rem;
}
.bps-char-counter.is-over {
  color: var(--bs-danger, #dc3545);
  font-weight: 600;
}
/* Password toggle */
.bps-password-toggle {
  position: relative;
  display: flex;
  align-items: stretch;
}
.bps-password-toggle .bps-password-input {
  flex: 1;
  padding-right: 4rem;
}
.bps-password-toggle-btn {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  border: none;
  background: none;
  padding: 0 0.75rem;
  cursor: pointer;
  font-size: 0.85em;
  color: var(--accent, #0073aa);
  font-weight: 600;
}
.bps-password-toggle-btn:hover {
  text-decoration: underline;
}
/* ==========================================================================
   10. LAZY LOAD
   Class: .bps-lazy-load
   JS: BPS.lazyLoad()
   ========================================================================== */
.bps-lazy-load {
  opacity: 0;
  transition: opacity 0.4s ease;
}
.bps-lazy-load[src] {
  opacity: 1;
}
/* ==========================================================================
   11. COPY CODE
   Class: .bps-copy-code
   JS: BPS.copyCode()
   ========================================================================== */
.bps-copy-code {
  position: relative;
}
.bps-copy-btn {
  position: absolute;
  top: 8px;
  right: 8px;
  padding: 4px 10px;
  font-size: 0.75em;
  border: 1px solid rgba(255, 255, 255, 0.3);
  background: rgba(0, 0, 0, 0.3);
  color: #fff;
  border-radius: 4px;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.2s ease, background-color 0.2s ease;
  z-index: 1;
}
.bps-copy-code:hover .bps-copy-btn {
  opacity: 1;
}
.bps-copy-btn:hover {
  background: rgba(0, 0, 0, 0.6);
}
.bps-copy-btn.copied {
  background: var(--bs-success, #198754);
  border-color: var(--bs-success, #198754);
}
/* ==========================================================================
   12. LOADING STATES (Infinite Scroll)
   Class: .bps-loading
   JS: BPS.infiniteScroll()
   ========================================================================== */
.bps-loading {
  text-align: center;
  padding: 2rem;
  color: var(--text-color2, #6c757d);
  font-size: 0.9em;
}
.bps-loading::before {
  content: "";
  display: inline-block;
  width: 20px;
  height: 20px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: bps-spin 0.6s linear infinite;
  vertical-align: middle;
  margin-right: 0.5rem;
}
@keyframes bps-spin {
  to {
    transform: rotate(360deg);
  }
}
/* ==========================================================================
   13. TRIGGER ANIMATIONS
   Used by BPS.Triggers via data-animation attribute.
   Applied as class on modal/toast/offcanvas wrapper on trigger fire.
   ========================================================================== */
@keyframes bps-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes bps-slide-in-left {
  from {
    opacity: 0;
    transform: translateX(-60px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes bps-slide-in-right {
  from {
    opacity: 0;
    transform: translateX(60px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes bps-slide-in-bottom {
  from {
    opacity: 0;
    transform: translateY(60px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes bps-slide-in-top {
  from {
    opacity: 0;
    transform: translateY(-60px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes bps-zoom-in {
  from {
    opacity: 0;
    transform: scale(0.8);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
.bps-anim-fade-in {
  animation: bps-fade-in var(--bps-anim-duration, 0.35s) ease-out both;
}
.bps-anim-slide-left {
  animation: bps-slide-in-left 0.35s ease-out both;
}
.bps-anim-slide-right {
  animation: bps-slide-in-right 0.35s ease-out both;
}
.bps-anim-slide-bottom {
  animation: bps-slide-in-bottom 0.35s ease-out both;
}
.bps-anim-slide-top {
  animation: bps-slide-in-top 0.35s ease-out both;
}
.bps-anim-slide-up {
  animation: bps-slide-in-bottom 0.35s ease-out both;
}
.bps-anim-slide-down {
  animation: bps-slide-in-top 0.35s ease-out both;
}
.bps-anim-zoom-in {
  animation: bps-zoom-in 0.35s ease-out both;
}
/* Animation duration/delay modifiers — stack with any .bps-anim-* class */
.bps-anim--fast {
  animation-duration: 0.2s;
}
.bps-anim--slow {
  animation-duration: 0.6s;
}
.bps-anim-delay-100 {
  animation-delay: 0.1s;
}
.bps-anim-delay-200 {
  animation-delay: 0.2s;
}
.bps-anim-delay-300 {
  animation-delay: 0.3s;
}
.bps-anim-delay-400 {
  animation-delay: 0.4s;
}
/* Required-field marker contrast, scoped to BPS forms only.
 *
 * Bootstrap's `.text-danger` is #dc3545, which measures 4.53:1 on pure white — it passes
 * AA there and ONLY there. Every BPS section paints a tinted ground instead (measured
 * 4.16:1 on the fleet's #F4F6F2), so the required-field asterisk fails AA on essentially
 * every real page while looking fine in isolation.
 *
 * Scoped to `.bps-form` deliberately: `.text-danger` is Bootstrap's utility, used far
 * beyond forms, and re-tinting it globally is a bigger blast radius than this defect
 * earns. #B02A37 is Bootstrap's own danger-emphasis value — 5.97:1 on that same ground,
 * still unmistakably red.
 *
 * 🪤 `!important` is required, not lazy: Bootstrap ships every `.text-*` utility with
 *    `!important`, so no amount of specificity beats it. Measured — a (0,2,0) override
 *    left the asterisk at 4.16:1 with no error and no visible change. */
.bps-form .text-danger {
  color: #B02A37 !important;
}
/* Accent colour utility classes.
 * --accent, --accent-2, --accent-3 are context-scoped to .light|.light2|.light3 and
 * .dark|.dark2|.dark3, NOT :root — so outside a tone wrapper they resolve to nothing
 * and the class paints nothing. The text and border rules below fall back so that a
 * hand-built container still gets a brand colour; see the 🪤 above .bps-text-accent
 * for why the FILL rules deliberately do not.
 *
 * 🔴 These REMAP THE INK TOKENS, not just `color` — added 2026-08-24.
 *
 * Setting `color` alone only reaches text that inherits. Anything painted from a token
 * kept the surrounding tone band's ink, because an accent band is not a tone band and
 * never re-declared those tokens. The loudest case: every skin paints `.section-title`
 * with `var(--text-highlight)` at (0,3,0), so a section heading on an accent background
 * took the LIGHT band's dark ink and sat on the dark accent fill —
 * measured 1.10:1 on 26 of the 30 influencer clubhouse sites (AA wants 3.0 for large
 * text). Invisible, and nothing errored.
 *
 * Same family as `.bps-cta-band` setting a fill and no ink. The rule now: any class that
 * changes the painted GROUND must re-declare the ink tokens for that ground, exactly as
 * `.light` / `.dark` do — otherwise every token-driven consumer silently keeps the
 * previous band's colour. */
.bps-bg-accent {
  background-color: var(--accent);
  color: var(--accent-text);
  --text-color:      var(--accent-text);
  --text-color2:     var(--accent-text);
  --text-color3:     var(--accent-text);
  --text-highlight:  var(--accent-text);
  --text-highlight2: var(--accent-text);
}
.bps-bg-accent-2 {
  background-color: var(--accent-2);
  color: var(--accent-text-2);
  --text-color:      var(--accent-text-2);
  --text-color2:     var(--accent-text-2);
  --text-color3:     var(--accent-text-2);
  --text-highlight:  var(--accent-text-2);
  --text-highlight2: var(--accent-text-2);
}
.bps-bg-accent-3 {
  background-color: var(--accent-3);
  color: var(--accent-text-3);
  --text-color:      var(--accent-text-3);
  --text-color2:     var(--accent-text-3);
  --text-color3:     var(--accent-text-3);
  --text-highlight:  var(--accent-text-3);
  --text-highlight2: var(--accent-text-3);
}
/* 🔴 A FILL CLASS MUST ALSO CLEAR THE BAND'S GRADIENT — BUG-lab-2, 2026-09-27 (3.11.14).
 *    Tone bands paint `background: linear-gradient(...)` at (0,2,0) (`.section-closer.dark3`),
 *    while the fills above set the accent colour AND the accent ink at (0,1,0). On a section that
 *    carries both, the ink switched to the accent's dark text while the dark gradient stayed on
 *    top: near-black on near-black. Measured on Amara Whitlock (clubhouses 89) — the closer bands on
 *    home and about read rgb(20,20,20) on rgb(24,8,4)→rgb(32,17,13). Same weight, later in source:
 *    only a section that carries a fill class is affected. */
.section.bps-bg-accent, .section.bps-bg-accent-2, .section.bps-bg-accent-3 {
  background-image: none;
}
/* 🪤 THE FALLBACK CHAINS ARE ASYMMETRIC ON PURPOSE — text and border get one, the
 *    .bps-bg-* fills above deliberately do NOT. Measured 2026-09-11 against a live
 *    compile (site-32/palette-1303): :root declares --light-accent, --light-text,
 *    --light-text2 and --light-text-highlight, but NOT --light-accent-2/-3 and NOT
 *    any --light-accent-text*. So a fill could fall back to a real GROUND while its
 *    paired INK fell back to nothing and kept the inherited colour — which is exactly
 *    the 1.10:1 failure documented above, reintroduced by the fix for it. A text or
 *    border rule has no paired ink, so its worst case is a visible brand colour
 *    instead of an invisible one.
 *
 *    The chains step through --light-accent-2/-3 first even though those are absent
 *    today: the moment the token generator emits them at :root, these pick them up
 *    and the -2/-3 variants stop degrading to the primary accent. Nothing to change
 *    here when that lands — and that is also what unblocks the fill fallbacks.
 *    Lite carries the full set at :root, so its copy of this file (bps-lite-utilities.css)
 *    can and does fall back on the fills too. */
.bps-text-accent {
  color: var(--accent, var(--light-accent));
}
.bps-text-accent-2 {
  color: var(--accent-2, var(--light-accent-2, var(--light-accent)));
}
.bps-text-accent-3 {
  color: var(--accent-3, var(--light-accent-3, var(--light-accent)));
}
.bps-border-accent {
  border-color: var(--accent, var(--light-accent));
}
.bps-border-accent-2 {
  border-color: var(--accent-2, var(--light-accent-2, var(--light-accent)));
}
.bps-border-accent-3 {
  border-color: var(--accent-3, var(--light-accent-3, var(--light-accent)));
}
/* The three ink roles, named for the job rather than the token. Ported FROM Lite
 * 0.6.0 so the pair stays symmetrical — Base already owned the nine accent classes,
 * Lite added these three. All three source tokens are declared at :root here, so the
 * fallbacks are real rather than aspirational. */
.bps-text-heading {
  color: var(--text-highlight, var(--light-text-highlight));
}
.bps-text-body {
  color: var(--text-color, var(--light-text));
}
.bps-text-soft {
  color: var(--text-color2, var(--light-text2));
}
/* Font family utilities. Same names and same tokens as BPS Lite 0.6.0, so a page
 * built on Lite keeps its type after an upgrade.
 *
 * 🪤 NO FALLBACK HERE, and that is deliberate — the opposite call to the colour
 *    rules above. token-generator.php:1500-1507 emits --font-heading / --font-body
 *    at :root ONLY when the palette actually assigns a family (typography_set,
 *    heading_font_family / body_font_family, or a font modifier). That is the
 *    generator's stated contract: BPS sets a font-family only when the user chose
 *    one, so Astra's own fonts win by default. 169 of 230 compiled stylesheets in
 *    the estate emit them; on the other 61 the token is absent and these classes
 *    correctly resolve to nothing, leaving the inherited font alone.
 *
 *    Giving them a fallback would INVERT that contract — it would force a BPS font
 *    onto sites that deliberately assign none. An absent token here is the feature. */
.bps-font-heading {
  font-family: var(--font-heading);
}
.bps-font-body {
  font-family: var(--font-body);
}
/* ========================================================================
   Sticky / Fixed Positioning
   ======================================================================== */
.bps-sticky {
  position: sticky;
  /* --bps-sticky-top set inline by the BPS Effects repeater (offset param);
       falls back to 0 so existing class-only pages are unchanged. */
  top: var(--bps-sticky-top, 0);
  z-index: 100;
}
/* Offset variants for use under a sticky/fixed header */
.bps-sticky--60 {
  position: sticky;
  top: 60px;
  z-index: 100;
}
.bps-sticky--80 {
  position: sticky;
  top: 80px;
  z-index: 100;
}
.bps-sticky--100 {
  position: sticky;
  top: 100px;
  z-index: 100;
}
.bps-fixed-top {
  position: fixed;
  /* --bps-fixed-top set inline by the BPS Effects repeater (offset param);
       falls back to 0 so existing class-only pages are unchanged. */
  top: var(--bps-fixed-top, 0);
  left: 0;
  right: 0;
  z-index: 1000;
  width: 100%;
}
.bps-fixed-bottom {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  width: 100%;
}
/* ========================================================================
   Visual Effects
   ======================================================================== */
/* Frosted panes for text over photography.
 *
 * Pair each with the matching root tone or the copy will be the wrong colour:
 *   .bps-glass      → root bps_tone: light  (dark brand text on a pale pane)
 *   .bps-glass-dark → root bps_tone: dark   (light brand text on a smoked pane)
 *
 * Neither wants a full-image background overlay underneath. The pane IS the
 * contrast device — darkening the whole photo as well defeats the point, which
 * is that the photograph stays legible around the copy. See b-hero-12 for the
 * reference build, and the header of dev/scripts/fix-hero-tone-overlay.php for
 * what happens when a pane hero is treated as an overlay hero. */
/* Pane alphas raised 2026-08-04 (0.7 → 0.85 light, 0.55 → 0.65 dark) after
 * measuring contrast from rendered PIXELS rather than from the DOM. The old
 * values let enough photograph through that hero copy landed below AA on real
 * imagery: the-quiet-room 3.40:1, harlow-systems 4.07:1, fenn-locke 3.80:1.
 * Swept against the live photos with
 *   dev/scripts/hero-contrast.py clubhouses --css '.bps-glass{...}'
 * these values clear every glass site with margin (light 5.05–6.22, dark
 * 5.22–7.98) while staying translucent enough to still read as glass —
 * 0.90 starts looking like a solid panel. */
.bps-glass {
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  background: rgba(var(--light-bg-rgb, 255, 255, 255), 0.85);
  border: 1px solid rgba(255, 255, 255, 0.3);
}
.bps-glass-dark {
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  background: rgba(var(--dark-bg-rgb, 10, 10, 12), 0.65);
  border: 1px solid rgba(255, 255, 255, 0.12);
}
.bps-gradient-text {
  background-image: linear-gradient(135deg, var(--accent), var(--accent-2, var(--accent)));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
.bps-glow {
  box-shadow: 0 0 24px rgba(var(--accent-rgb, 13, 110, 253), 0.35);
}
/* ========================================================================
   Radial Glow Background Decorator — .bps-glow-bg
   Chip Bar: decorator bucket. Reads --glow-color / --glow-color-2 tokens
   (default to --accent / --accent-2 set in _roots.scss).
   Usage: combine base + one positional + one intensity modifier.
   --dual adds a second ::after glow for two-colour hero/CTA sections.
   ======================================================================== */
.bps-glow-bg {
  position: relative;
}
.bps-glow-bg::before {
  content: "";
  position: absolute;
  width: 60vw;
  height: 60vw;
  max-width: 800px;
  max-height: 800px;
  border-radius: 50%;
  background: radial-gradient(circle, var(--glow-color, var(--accent)) 0%, transparent 70%);
  opacity: 0.25;
  pointer-events: none;
  z-index: 0;
  /* default position — overridden by positional modifiers */
  top: -20%;
  left: -10%;
  transform: none;
}
.bps-glow-bg > * {
  position: relative;
  z-index: 1;
}
/* Positional modifiers */
.bps-glow-bg--top-left::before {
  top: -20%;
  left: -10%;
  transform: none;
}
.bps-glow-bg--top-right::before {
  top: -20%;
  left: auto;
  right: -10%;
  transform: none;
}
.bps-glow-bg--center::before {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.bps-glow-bg--bottom-left::before {
  top: auto;
  bottom: -20%;
  left: -10%;
  transform: none;
}
.bps-glow-bg--bottom-right::before {
  top: auto;
  bottom: -20%;
  left: auto;
  right: -10%;
  transform: none;
}
/* Intensity modifiers */
.bps-glow-bg--soft::before {
  opacity: 0.15;
}
.bps-glow-bg--strong::before {
  opacity: 0.45;
}
/* Dual: second colour glow via ::after */
.bps-glow-bg--dual::after {
  content: "";
  position: absolute;
  width: 50vw;
  height: 50vw;
  max-width: 650px;
  max-height: 650px;
  border-radius: 50%;
  background: radial-gradient(circle, var(--glow-color-2, var(--accent-2, var(--accent))) 0%, transparent 70%);
  opacity: 0.2;
  pointer-events: none;
  z-index: 0;
  bottom: -15%;
  right: -5%;
}
.bps-gradient-overlay {
  position: relative;
}
.bps-gradient-overlay::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.55) 100%);
  pointer-events: none;
}
/* ---------------------------------------------------------------------------
   bps-card-flush — a card whose CONTENT reaches its edges.
   Added 2026-09-14, and it is not a nicety: without it `bps-card` cannot be put
   on a card that holds a photograph.

   `body.bps-base .bps-card` sets `padding: 1.75rem 1.625rem` at (0,2,1). Elementor
   emits an authored padding as `.elementor-element-<id>` at (0,1,0). So a card
   authored `padding: 0` — which is exactly what the OWED-489 recipe requires so
   the photograph reaches the card's edges — computes 28px 26px instead, and the
   image floats inset with a border of card colour around it.

   Measured 2026-09-14 on b-team-01. The two rules were in direct conflict and
   the hook class won. This resolves it at the same specificity the hook class
   uses, rather than asking every section to fight it with an override.

   Use it whenever the card's first child is an image, a map or a video. The
   inner text box keeps its own bps_size, which is where the padding belongs.
   ------------------------------------------------------------------------ */
body.bps-base .bps-card.bps-card-flush {
  padding: 0;
  overflow: hidden;
}
/* ---------------------------------------------------------------------------
   bps-card-row — a card that lays its content out HORIZONTALLY.
   Added 2026-09-14, and like bps-card-flush it is a prerequisite rather than a
   nicety.

   `body.bps-base .bps-card` declares `display:flex; flex-direction:column` at (0,2,1).
   Elementor emits a container's authored direction as
   `.elementor-element-<id>{flex-direction:row}` at (0,1,0). So a card authored as
   a ROW silently renders as a COLUMN: the second cell drops underneath the first
   and the layout is simply wrong, while the settings read correctly.

   Measured 2026-09-14 on b-services-07, whose rows are a wide prose cell beside a
   narrow figure cell. Caught by align.py, which was right to fire — the stacked
   cell's text no longer shared an edge with anything.

   🔴 THIS IS THE THIRD PROPERTY bps-card takes from the element it is put on:
   padding (see bps-card-flush), flex-direction (here), and background/border.
   Anyone retrofitting the hook class onto 505 existing sections must check all
   three, not just look at whether the card still has a surface.
   ------------------------------------------------------------------------ */
body.bps-base .bps-card.bps-card-row {
  flex-direction: row;
}
@media (max-width: 767px) {
  /* A two-cell card has nowhere to put the second cell on a phone. */
  body.bps-base .bps-card.bps-card-row {
    flex-direction: column;
  }
}
/* ===========================================================================
   SCRIM — a directional gradient veil over a background photograph.
   Added 2026-09-14. Mark's call: "add new classes to both base and lite".

   WHY THIS EXISTS, when `.bps-gradient-overlay` was already here.
   That one is vertical-only, fixed at transparent -> rgba(0,0,0,0.55), with no
   angle, colour or stop control, and its black belongs to no palette. It cannot
   express a hero whose copy sits on the LEFT and whose subject must stay legible
   on the right. It is left in place for anything already using it; new work uses
   this family.

   WHY A CLASS AND NOT ELEMENTOR'S OWN OVERLAY CONTROL.
   The Elementor route works — measured 2026-09-14, and its colour field passes a
   `color-mix()` through verbatim, so it is NOT restricted to a hardcoded colour.
   But it is seven settings keys per hero, written per site, and it does not port:
   the same mould has to build a BPS Base site (PC-70 section 0, OWED-501), and
   seven Elementor keys are exactly the kind of thing that does not survive that
   trip. One class token does. That, not the colour, is the argument.

   🔴 THE ONE RULE APPLIES HERE TOO: no bare `.bps-scrim { }` anywhere. Every
   rule below is scoped to the anchor body class, so the paint can be overridden
   back off and a flavour has something to beat.

   🪤 A MOULD REACHES THIS THROUGH `css_classes`, NOT `_css_classes`.
   Containers take `css_classes`; widgets take `_css_classes` with the leading
   underscore. A section root is a container. An earlier note in this estate
   recorded "a mould cannot apply a decorator class at all, because _css_classes
   is inert on a container in Elementor 4.2.4" — that finding was correct about
   the key and wrong about the conclusion. `css_classes` on a container works.

   HOW IT COMPOSES
     bps-scrim              the mechanism. Tint follows the band's own --bg.
     bps-scrim-left         copy left, subject right   (linear 100deg)
     bps-scrim-right        copy right, subject left   (linear 260deg)
     bps-scrim-centre       copy centred               (radial from centre)
     bps-scrim-dark | -light | -grey    force the tint instead of the palette

   The bare class takes `var(--bg)`, which is the tone the band already carries —
   so a dark band scrims dark and a light band scrims light without anyone
   choosing. The three tint classes are for when the band's own ground is the
   wrong colour to sit over that particular photograph.

   Tunable per element without touching this file:
     --bps-scrim-alpha   opacity at the copy edge      (default .95)
     --bps-scrim-hold    where the veil starts to fade (default 55%)
     --bps-scrim-fade    where it reaches clear        (default 92%)
   ======================================================================== */
body.bps-base .bps-scrim {
  position: relative;
  --bps-scrim-color: var(--bg, #101418);
  --bps-scrim-alpha: .95;
  --bps-scrim-hold: 55%;
  --bps-scrim-fade: 92%;
  --bps-scrim-angle: 100deg;
}
body.bps-base .bps-scrim::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: linear-gradient(var(--bps-scrim-angle), color-mix(in srgb, var(--bps-scrim-color) calc(var(--bps-scrim-alpha) * 100%), transparent) var(--bps-scrim-hold), transparent var(--bps-scrim-fade));
}
/* 🔴 The veil is a sibling of the content, so the content has to be lifted above
   it. Without this the copy sits UNDER the scrim and every contrast reading is
   taken against the wrong layer — which still passes, because the numbers are
   computed from a stack that happens to be equivalent. It shows as text that
   looks slightly washed and measures fine. */
body.bps-base .bps-scrim > * {
  position: relative;
  z-index: 1;
}
body.bps-base .bps-scrim-left {
  --bps-scrim-angle: 100deg;
}
body.bps-base .bps-scrim-right {
  --bps-scrim-angle: 260deg;
}
/* Centre is radial, NOT a linear veil at 180deg. A two-stop linear that is
   opaque at both ends is a flat scrim, which greys the whole photograph — the
   thing PC-70 section 4 bans. Radial is opaque where the copy sits and lets the
   corners of the frame stay legible. */
body.bps-base .bps-scrim-centre::after {
  background-image: radial-gradient(color-mix(in srgb, var(--bps-scrim-color) calc(var(--bps-scrim-alpha) * 100%), transparent) var(--bps-scrim-hold), color-mix(in srgb, var(--bps-scrim-color) 15%, transparent) 100%);
}
body.bps-base .bps-scrim-dark {
  --bps-scrim-color: #101418;
}
body.bps-base .bps-scrim-light {
  --bps-scrim-color: #ffffff;
}
body.bps-base .bps-scrim-grey {
  --bps-scrim-color: #5d646b;
}
/* A light or grey scrim needs dark copy on top of it; the band's tone cannot know
   that a scrim was added. Opt in with the tone classes as usual — these two only
   soften the veil, because white at .95 over a photograph is a white box. */
body.bps-base .bps-scrim-light {
  --bps-scrim-alpha: .88;
}
body.bps-base .bps-scrim-grey {
  --bps-scrim-alpha: .82;
}
@media (max-width: 768px) {
  /* On a phone the copy fills the width, so a directional veil has nowhere to
       fade to. Square it up rather than leaving half the copy off the scrim. */
  body.bps-base .bps-scrim::after {
    background-image: linear-gradient(180deg, color-mix(in srgb, var(--bps-scrim-color) calc(var(--bps-scrim-alpha) * 100%), transparent) 0%, color-mix(in srgb, var(--bps-scrim-color) calc(var(--bps-scrim-alpha) * 85%), transparent) 100%);
  }
}
/* Scrim presets from the Phase 2a lab (Base 3.11.30, 2026-10-01) ------------------
   Two chips that sit on top of the scrim above. Used on four of five lab sites
   (Kinfield, Cairnwood, Wattleby, Greyshore); every one re-tuned the numbers, so
   each value reads a variable with the lab's middle value as the fallback.
   Set the variable on the section (rung 3 or 4) to tune one photograph.

     bps-scrim-reveal   the veil holds behind the copy and is clear BEFORE the
                        subject, instead of fading across the whole photo.
                        --bps-reveal-hold (45%)  --bps-reveal-fade (65%)
                        --bps-reveal-copy (560px, desktop copy-column cap)
     bps-scrim-stack    on a phone the photo becomes a band at the top and the
                        copy sits on the band's own ground below it. Without it
                        the phone rule above turns a full-bleed photo into a
                        near-solid veil, so the photo never shows on a phone.
                        --bps-stack-h (300px)  --bps-stack-x (72%)
                        --bps-stack-zoom (190%)
   Both need bps-scrim (and a background image on the same container). */
body.bps-base .bps-scrim-reveal {
  --bps-scrim-hold: var(--bps-reveal-hold, 45%);
  --bps-scrim-fade: var(--bps-reveal-fade, 65%);
}
@media (min-width: 1025px) {
  /* The copy column must stop where the veil does, or long lines run onto
       the clear part of the photo. */
  body.bps-base .bps-scrim-reveal.bps-scrim-left > .e-con-inner > .e-con:first-child, body.bps-base .bps-scrim-reveal.bps-scrim-right > .e-con-inner > .e-con:last-child {
    max-width: var(--bps-reveal-copy, 560px);
  }
}
@media (max-width: 768px) {
  /* The veil starts exactly where the photo band ends, in px, so the length
       of the copy cannot move it. */
  body.bps-base .bps-scrim-stack {
    background-size: var(--bps-stack-zoom, 190%) auto !important;
    background-position: var(--bps-stack-x, 72%) 0 !important;
    background-repeat: no-repeat !important;
    padding-top: var(--bps-stack-h, 300px) !important;
  }
  body.bps-base .bps-scrim-stack::after {
    background-image: linear-gradient(180deg, transparent calc(var(--bps-stack-h, 300px) - 70px), var(--bps-scrim-color, var(--bg)) var(--bps-stack-h, 300px)) !important;
  }
}
/* ------------------------------------------------------------------------
 * Grain / texture  (added 2026-09-12 — OWED-463)
 *
 * Fills the gap REF-03 §3 recorded as "texture: absent, not broken". The whole
 * texture capability used to be one hardcoded repeating-linear-gradient inside
 * _skin-warm-organic.scss — a skin internal, not a class and not a control.
 *
 * The technique is Mark's, and it is the photo-as-tinted-overlay pattern (ruled
 * 2026-08-13 for photo heroes) applied to a different asset class: leave the
 * element's own background to bps_tone, and lay a low-opacity greyscale texture
 * OVER it. Because the base layer is the palette-driven tone, the same grain
 * reads differently on every site at zero cost.
 *
 * Why an inline SVG rather than a PNG tile: no asset to ship, sideload, or lose,
 * it is resolution-independent, and it costs one rule instead of a media item
 * per site.
 *
 * 🪤 Elementor strips `data:` URIs from its background_image CONTROL. That does
 * not apply here — this is a stylesheet rule, not a control. Authoring the same
 * effect by hand through the Elementor overlay controls still works and is the
 * documented manual route; this class exists so it does not depend on the
 * builder knowing the trick.
 *
 * 🪤 `#` must be written `%23` inside the data URI. A bare hash followed by an
 * opening brace is SCSS interpolation and would break the build — this comment
 * originally spelled that sequence out literally and scssphp flagged it as an
 * unterminated interpolation from inside a comment, so it is described here
 * rather than shown.
 *
 * Stacking mirrors .bps-glow-bg exactly: ::before at z-index 0, children lifted
 * to 1, so the grain sits over the ground and under the content.
 * --------------------------------------------------------------------- */
.bps-grain {
  position: relative;
}
.bps-grain::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23g)'/%3E%3C/svg%3E");
  background-repeat: repeat;
  background-size: 200px 200px;
  opacity: 0.18;
  pointer-events: none;
  z-index: 0;
}
.bps-grain > * {
  position: relative;
  z-index: 1;
}
/* Intensity modifiers — the grain darkens as it textures, so a light tone
 * usually wants --soft and a dark tone tolerates --strong. */
.bps-grain--soft::before {
  opacity: 0.1;
}
.bps-grain--strong::before {
  opacity: 0.3;
}
/* ========================================================================
   Shadow Scale
   ======================================================================== */
.bps-shadow-sm {
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.06);
}
.bps-shadow {
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06);
}
.bps-shadow-lg {
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.12), 0 4px 10px rgba(0, 0, 0, 0.08);
}
/* ========================================================================
   Ring (focus/highlight outline)
   ======================================================================== */
.bps-ring {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}
/* ========================================================================
   Icon Accent Variants   (Chip Bar: decorator bucket)
   ========================================================================
   Opt-in ONLY. The BUG-456 ruling (2026-07-26) is unchanged: un-chipped
   Elementor icons still follow --accent, and --icon-color remains the
   Visual Builder's own token. These chips redirect an individual icon, or
   every icon inside a chipped container, onto the palette's alternate
   accents. Elementor's Icon and Icon Box widgets carry NO BPS accent paint
   by default, so `bps-icon-accent` is the only builder-side way to put the
   primary accent on them.

   🪤 The fallback chain is mandatory, and it must NOT end at currentColor.
   --accent / --accent-2 / --accent-3 are declared per tone band (.light /
   .dark and their @extend-ed variants) and NEVER at :root. A chip applied
   outside every tone band therefore finds them all undefined, and a chain
   ending in currentColor silently resolves to the inherited body ink — the
   chip becomes a no-op with no error. Measured 2026-08-24 on
   multi.buildprosites.com/spiritual: rgb(105,114,125), i.e. plain grey.

   The rescue is that the *-rgb channel triples ARE emitted at :root
   (_roots.scss:91-99), so the chain ends at rgb(var(--accent-N-rgb)) and
   resolves everywhere. This is why the chain differs in shape from
   .highlight-2 / .highlight-3 (style.scss:832-838), which are only ever
   used inside toned sections and so never hit this case.
   ======================================================================== */
.bps-icon-accent {
  --bps-icon-paint: var(--accent,   rgb(var(--accent-rgb)));
}
.bps-icon-accent-2 {
  --bps-icon-paint: var(--accent-2, rgb(var(--accent-2-rgb, var(--accent-rgb))));
}
.bps-icon-accent-3 {
  --bps-icon-paint: var(--accent-3, rgb(var(--accent-3-rgb, var(--accent-2-rgb, var(--accent-rgb)))));
}
/* Opt-OUT, added 2026-08-25 alongside the accent default below. Puts an icon
   back on body ink. Needed because once accent is the DEFAULT there was
   otherwise no builder-side way to say "not this one" — the bucket shipped
   three ways to change an icon's colour and no way to decline. */
.bps-icon-ink {
  --bps-icon-paint: var(--text-color, currentColor);
}
/* Leg A — (0,2,1). Icon + Icon Box anywhere (.elementor-icon is nested
   INSIDE .elementor-icon-box-icon, so it covers both), plus Icon List when
   it sits outside a toned .section, where nothing competes. */
.bps-icon-accent .elementor-icon i, .bps-icon-accent .elementor-icon svg, .bps-icon-accent-2 .elementor-icon i, .bps-icon-accent-2 .elementor-icon svg, .bps-icon-accent-3 .elementor-icon i, .bps-icon-accent-3 .elementor-icon svg, .bps-icon-accent .elementor-icon-list-icon i, .bps-icon-accent .elementor-icon-list-icon svg, .bps-icon-accent-2 .elementor-icon-list-icon i, .bps-icon-accent-2 .elementor-icon-list-icon svg, .bps-icon-accent-3 .elementor-icon-list-icon i, .bps-icon-accent-3 .elementor-icon-list-icon svg {
  color: var(--bps-icon-paint);
  fill: var(--bps-icon-paint);
}
/* Leg B — (0,3,1). Icon List INSIDE a toned section, where style.scss:1538
   paints `.section.<tone> .elementor-icon-list-icon i|svg` at (0,3,1). This
   ties on specificity and wins on source order: bps-framework.scss folds in
   at the `before_media_queries` hook, i.e. after the whole style.scss body.
   No !important, no skin guard — skins fold in at `after_root`, near the top. */
.section .bps-icon-accent .elementor-icon-list-icon i, .section .bps-icon-accent .elementor-icon-list-icon svg, .section .bps-icon-accent-2 .elementor-icon-list-icon i, .section .bps-icon-accent-2 .elementor-icon-list-icon svg, .section .bps-icon-accent-3 .elementor-icon-list-icon i, .section .bps-icon-accent-3 .elementor-icon-list-icon svg {
  color: var(--bps-icon-paint);
  fill: var(--bps-icon-paint);
}
/* ========================================================================
   Icon Accent — THE DEFAULT   (added 2026-08-25, ruled by Mark)
   ========================================================================
   Elementor's Icon and Icon Box widgets now follow the palette accent without
   a chip. This SUPERSEDES the "opt-in only" half of the BUG-456 ruling for
   these two widgets; everything else in that ruling stands, and --icon-color
   is still the Visual Builder's own token and still not consumed here.

   🔴 WHAT WAS ACTUALLY PAINTING THEM BEFORE — not what it looked like.
   The glyphs were NOT falling through to Elementor's grey. Measured
   2026-08-25 on buildprosites.com: computed fill was rgb(28,34,54), which is
   BPS's own tone rule `.section.<tone> svg { fill: var(--text-color) }` at
   (0,2,1) (style.scss:1088, the ungated rule BUG-290 tracks). Icons were
   already BPS-painted — just wired to ink instead of accent. So the real
   competitor for this rule is that (0,2,1), NOT Elementor's (0,1,0) default.

   SPECIFICITY BAND — must beat one thing and lose to another:
     .elementor-icon                                   (0,1,0)  Elementor grey
     .section.<tone> svg                               (0,2,1)  ← must BEAT
     THIS RULE                                         (0,2,1)  ties, wins on
                                                                source order:
                                                                framework folds
                                                                in at
                                                                before_media_queries,
                                                                i.e. after the
                                                                whole style.scss
     {{WRAPPER}}.elementor-view-* .elementor-icon svg  (0,5,1)  ← must LOSE to
   That last one is the author's own Primary Color, and losing to it is the
   point. It is not hypothetical: 22 of 45 live icon-bearing docs on
   buildprosites set an explicit primary_color. Raising this rule any further
   would silently overwrite roughly half of them — exactly the estate-wide
   repaint BUG-456 forbids.

   🪤 STACKED VIEW IS DELIBERATELY EXCLUDED. `.elementor-view-stacked
   .elementor-icon` paints `background-color: #69727D; color/fill: #fff` —
   the glyph is knocked out WHITE on a filled chip. Painting that glyph accent
   puts accent on accent-ish and the icon vanishes. Only `default` (bare glyph)
   and `framed` (glyph + border, both take the colour) are safe.

   🪤 The paint is read from --bps-icon-paint with the accent chain as the
   FALLBACK, rather than being hardcoded. That is what makes the chips above
   compose for free: a chip merely redefines the custom property on an
   ancestor and inheritance carries it down, so bps-icon-accent-2 / -3 and the
   new bps-icon-ink all keep working with no specificity contest at all. The
   chain must end at rgb(var(--accent-rgb)) — see the trap note above; --accent
   is declared per tone band and NEVER at :root, so a bare var(--accent) is
   undefined outside every toned section.

   🔴 PAINT THE SAME ELEMENT ELEMENTOR PAINTS. This cost a full round trip on
   2026-08-25 and is the single most important line in this block.

   For an ICON-FONT glyph Elementor puts the author's Primary Color on the
   CONTAINER — `{{WRAPPER}}.elementor-view-default .elementor-icon { color }` —
   and lets the `<i>` inherit it. A first cut of this rule targeted the glyph
   (`.elementor-icon i`) instead. **A direct declaration always beats an
   inherited value no matter how low its specificity**, so a (0,2,1) rule on
   the `<i>` silently defeated Elementor's (0,5,0) on the parent, and an icon
   an author had deliberately set to #ff8c00 repainted itself accent. Specificity
   never even entered into it. Caught by measuring `--accent` (#c9993a) against
   the painted value on ace-academy-rough-draft — they matched, which they must
   not have.
   So: `color` goes on `.elementor-icon` (where Elementor puts it, so
   specificity genuinely arbitrates and (0,5,0) wins), and `fill` goes on the
   `svg` (where Elementor also puts it, (0,5,1) wins). Never on `i`. */
.elementor-view-default .elementor-icon, .elementor-view-framed .elementor-icon {
  color: var(--bps-icon-paint, var(--accent, rgb(var(--accent-rgb))));
}
.elementor-view-default .elementor-icon svg, .elementor-view-framed .elementor-icon svg {
  fill: var(--bps-icon-paint, var(--accent, rgb(var(--accent-rgb))));
}
/* ========================================================================
   Labels / Decorators
   ======================================================================== */
/* 🔴 .bps-badge MOVED 2026-09-14 to _bps-flavours.scss (hook class). */
.bps-pill {
  display: inline-block;
  padding: 4px 14px;
  border-radius: 999px;
  background: var(--accent);
  color: var(--accent-text, #fff);
  font-size: 0.85em;
  font-weight: 600;
  line-height: 1.5;
  vertical-align: middle;
}
/* 🪤 A tinted pill on a DARK section is illegible, because the ink is still the
 * on-a-solid-fill ink. Four of the five skins — warm-organic, tech-futuristic and
 * soft-rounded — override the solid `background: var(--accent)` above with a
 * 10–12% wash, but nothing changes the paired `--accent-text`. That ink is chosen
 * to sit on the SOLID accent, so over a wash it is effectively painted straight
 * onto the section: fine on a light section, invisible on a dark one.
 *
 * Measured on the locals fleet 2026-08-04, hero eyebrows on dark-tone sections:
 * marlow 3.65:1 · ninthhouse 2.36:1 · longwater 2.41:1. Restoring the solid fill
 * for dark sections only takes them to 4.69 / 5.42 / 5.82 and leaves the soft wash
 * intact everywhere it works.
 *
 * `.dark .bps-pill` is (0,2,0) against the skins' (0,1,0), so this wins on
 * specificity and does not depend on partial load order. Rung 1 of the CSS
 * escalation ladder — a BPS class fixing itself, no per-site override.
 *
 * 🔴 OWED-636 (2026-09-27): restoring the fill without the ink made it worse on
 * modern-flat, whose `.dark .bps-pill` (also 0,2,0, compiled EARLIER) sets
 * `color: $dark-accent` — accent text on the now-solid accent fill, invisible.
 * Measured: colour and background both rgb(245,197,24) (kb-intro-11's chips).
 * The solid fill needs its paired ink, so both travel together here. */
.dark .bps-pill, .dark2 .bps-pill, .dark3 .bps-pill {
  background: var(--accent);
  color: var(--accent-text, #fff);
}
/* Linked pills (3.11.30, Phase 2a lab R6). A pill holding a link is an entry
 * point, so it shows it can be pressed. Base pills are a solid accent fill, so
 * the cue is a ring rather than Lite's accent wash: the band's ground, then the
 * accent. Unlinked pills are untouched (:has). */
.bps-pill a {
  color: inherit;
  text-decoration: none !important;
}
/* !important on the one property: Astra underlines links in page content with
 * `.ast-single-post .entry-content a` (0,3,1), which beat this rule on a Base
 * page (measured 2026-10-01). A pill link is never underlined. */
.bps-pill:has(a) {
  transition: box-shadow 0.15s;
}
.bps-pill:has(a):hover, .bps-pill:has(a):focus-within {
  box-shadow: 0 0 0 2px var(--bg, #fff), 0 0 0 4px var(--accent);
}
@media (prefers-reduced-motion: reduce) {
  .bps-pill:has(a) {
    transition: none;
  }
}
.bps-pill-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  max-width: fit-content;
  flex: 0 0 auto;
  align-self: flex-start;
  padding: 5px 14px;
  border-radius: 999px;
  background: rgba(var(--accent-rgb, 109, 40, 217), 0.15);
  border: 1px solid rgba(var(--accent-rgb, 109, 40, 217), 0.35);
  color: var(--accent);
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  vertical-align: middle;
  line-height: 1.4;
}
.bps-pill-badge .dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  flex-shrink: 0;
  animation: bps-pulse-dot 2s ease-in-out infinite;
}
@keyframes bps-pulse-dot {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.4;
    transform: scale(0.75);
  }
}
.bps-pill-prehead {
  display: inline-block;
  width: fit-content;
  max-width: fit-content;
  padding: 5px 14px;
  border-radius: 999px;
  background: rgba(var(--accent-rgb, 109, 40, 217), 0.15);
  border: 1px solid rgba(var(--accent-rgb, 109, 40, 217), 0.35);
  color: var(--accent);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1.4;
  vertical-align: middle;
}
.bps-divider {
  display: block;
  border: none;
  border-top: 1px solid currentColor;
  margin: 1.5rem 0;
  opacity: 0.2;
}
.bps-divider-accent {
  display: block;
  border: none;
  border-top: 2px solid var(--accent);
  margin: 1.5rem 0;
}
/* ========================================================================
   Typography Utilities
   ======================================================================== */
.bps-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bps-clamp-3 {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bps-text-balance {
  text-wrap: balance;
}
.bps-uppercase {
  text-transform: uppercase;
}
.bps-tracking-wide {
  letter-spacing: 0.1em;
}
/* ========================================================================
   Layout Utilities
   ======================================================================== */
/* ==========================================================================
   MARQUEE — a continuously scrolling strip of items. CSS only, no runtime.
   Added 2026-09-17, ported from BPS Lite 0.7.31 so the two vocabularies stay a
   superset (OWED-501's requirement: "Base should at least have everything Lite has").
   Proven on `designutions` as site head_code for a day before either shipped.

   🔴 THE AUTHOR MUST LIST THE ITEMS TWICE. The loop is translateX(-50%), so the
   strip has to contain two identical halves or it jumps on repeat. No CSS can
   duplicate content and nothing here runs JS, so it is a real constraint of the
   class rather than an oversight. It is stated in the chip description too.

   🔴 EACH CLASS STANDS ALONE. A chip option is ONE class — Lite's
   build/verify-vocabulary.php reads the option key as a single selector and
   reported a two-class option as "offered but never painted". So `-reverse`
   carries the whole rule set rather than expecting `.bps-marquee` beside it.

   🪤 `max-width: none` is load-bearing. On a BOXED Elementor container
   `.e-con-inner` carries the theme measure, and `width: max-content` alone is
   clamped by it — the items are squeezed until they overlap. Measured on
   `designutions`; the gate reported it as "text overlaps a sibling", correctly.

   Tunables, so a site never has to edit this file:
     --bps-marquee-speed  (default 28s)
     --bps-marquee-gap    (default 1.6rem)
   ========================================================================== */
.bps-marquee, .bps-marquee-reverse {
  overflow: hidden;
  width: 100%;
}
.bps-marquee > .e-con-inner, .bps-marquee.e-con-full, .bps-marquee-reverse > .e-con-inner, .bps-marquee-reverse.e-con-full {
  display: flex !important;
  flex-wrap: nowrap !important;
  width: max-content !important;
  max-width: none !important;
  gap: 0 !important;
  animation: bps-marquee var(--bps-marquee-speed, 28s) linear infinite;
}
.bps-marquee-reverse > .e-con-inner, .bps-marquee-reverse.e-con-full {
  animation-direction: reverse;
}
.bps-marquee > .e-con-inner > *, .bps-marquee.e-con-full > *, .bps-marquee-reverse > .e-con-inner > *, .bps-marquee-reverse.e-con-full > * {
  white-space: nowrap;
  padding: 0 var(--bps-marquee-gap, 1.6rem);
}
@keyframes bps-marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
/* 🔴 Motion is opt-out for anyone who asked the OS to reduce it. A marquee is
   decoration and must never be the only way information is presented. */
@media (prefers-reduced-motion: reduce) {
  .bps-marquee > .e-con-inner, .bps-marquee.e-con-full, .bps-marquee-reverse > .e-con-inner, .bps-marquee-reverse.e-con-full {
    animation: none;
    flex-wrap: wrap !important;
    width: 100% !important;
    justify-content: center;
  }
}
.bps-aspect-square {
  aspect-ratio: 1;
}
.bps-aspect-photo {
  aspect-ratio: 1.3333333333;
}
.bps-aspect-wide {
  aspect-ratio: 1.5;
}
.bps-aspect-video {
  aspect-ratio: 1.7777777778;
}
.bps-aspect-portrait {
  aspect-ratio: 0.75;
}
.bps-aspect-story {
  aspect-ratio: 0.5625;
}
.bps-aspect-circle {
  aspect-ratio: 1;
  border-radius: 50%;
}
[class*="bps-aspect-"] {
  overflow: hidden;
}
body[class] [class*="bps-aspect-"] img, body[class] img[class*="bps-aspect-"] {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
body[class] .bps-aspect-circle img {
  border-radius: 50%;
}
[class*="bps-aspect-"] .elementor-widget-container, [class*="bps-aspect-"] figure, [class*="bps-aspect-"] .elementor-image {
  height: 100%;
}
.moa-vh-full {
  --moa-vh: 100vh;
}
.moa-vh-3q {
  --moa-vh: 75vh;
}
.moa-vh-half {
  --moa-vh: 50vh;
}
.moa-vh-nav {
  --moa-vh: calc(100vh - var(--nav-h, 72px));
}
@supports (height: 100svh) {
  .moa-vh-full {
    --moa-vh: 100svh;
  }
  .moa-vh-3q {
    --moa-vh: 75svh;
  }
  .moa-vh-half {
    --moa-vh: 50svh;
  }
  .moa-vh-nav {
    --moa-vh: calc(100svh - var(--nav-h, 72px));
  }
}
[class*="moa-vh-"] {
  min-height: var(--min-height, var(--moa-vh));
}
.bps-center {
  display: flex;
  align-items: center;
  justify-content: center;
}
/* bps-fit — shrink the block to its content and centre it, without forcing its
   own children to centre. bps-center forces a centred flex layout on its
   contents; bps-fit is for a list or block that must keep its own
   left-aligned content while sitting centred as a unit. */
.bps-fit {
  width: fit-content;
  margin-inline: auto;
  max-width: 100%;
}
/* BUG-234: .bps-full-bleed uses 100vw, which includes the scrollbar width and so
   overhangs the viewport by a few px. The theme (Astra) clips that with
   body{overflow-x:hidden}, but overflow-x:hidden promotes <body> to a scroll
   container that has no vertical room, and Chrome then refuses to route
   wheel/keyboard scroll to the viewport — the whole page becomes scroll-dead to
   user input (programmatic scroll still works, which masks it). overflow-x:clip
   clips the same overhang WITHOUT establishing a scroll container, so vertical
   scrolling is restored. */
body {
  overflow-x: clip;
}
.bps-full-bleed {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  width: 100vw;
}
/* ========================================================================
   Marquee (CSS-only scrolling ticker)
   ======================================================================== */
@keyframes bps-marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
.bps-marquee {
  overflow: hidden;
  white-space: nowrap;
  /* Duplicate content once in HTML so the loop is seamless */
}
.bps-marquee > * {
  display: inline-block;
  animation: bps-marquee 20s linear infinite;
}
/* ========================================================================
   Flip Card (CSS 3D)
   ======================================================================== */
.bps-flip-card {
  perspective: 1000px;
}
.bps-flip-card-inner {
  position: relative;
  width: 100%;
  height: 100%;
  transition: transform 0.6s ease;
  transform-style: preserve-3d;
}
.bps-flip-card:hover .bps-flip-card-inner {
  transform: rotateY(180deg);
}
.bps-flip-card-front, .bps-flip-card-back {
  position: absolute;
  inset: 0;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
.bps-flip-card-back {
  transform: rotateY(180deg);
}
/* ========================================================================
   Skeleton (loading shimmer)
   ======================================================================== */
@keyframes bps-skeleton-shimmer {
  from {
    background-position: 200% 0;
  }
  to {
    background-position: -200% 0;
  }
}
.bps-skeleton {
  background: linear-gradient(90deg, var(--light-bg2, #e9ecef) 25%, var(--light-bg, #f8f9fa) 50%, var(--light-bg2, #e9ecef) 75%);
  background-size: 200% 100%;
  animation: bps-skeleton-shimmer 1.5s ease-in-out infinite;
  border-radius: 4px;
  color: transparent !important;
}
/* ========================================================================
   Accessibility
   ======================================================================== */
/* Visually hidden but available to screen readers and keyboard focus */
.bps-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
/* ========================================================================
   Scroll Reveal
   Hidden by default; JS adds .is-visible when element enters viewport.
   Compose with .bps-anim-* for keyframe on scroll instead of on load.
   ======================================================================== */
.bps-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.4s ease-out, transform 0.4s ease-out;
}
.bps-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
/* When combined with a keyframe animation class, defer to the keyframe */
.bps-reveal.bps-anim-fade-in, .bps-reveal.bps-anim-slide-left, .bps-reveal.bps-anim-slide-right, .bps-reveal.bps-anim-slide-bottom, .bps-reveal.bps-anim-slide-top, .bps-reveal.bps-anim-slide-up, .bps-reveal.bps-anim-slide-down, .bps-reveal.bps-anim-zoom-in {
  transform: none;
  animation-play-state: paused;
  animation-fill-mode: both;
}
.bps-reveal.bps-anim-fade-in.is-visible, .bps-reveal.bps-anim-slide-left.is-visible, .bps-reveal.bps-anim-slide-right.is-visible, .bps-reveal.bps-anim-slide-bottom.is-visible, .bps-reveal.bps-anim-slide-top.is-visible, .bps-reveal.bps-anim-slide-up.is-visible, .bps-reveal.bps-anim-slide-down.is-visible, .bps-reveal.bps-anim-zoom-in.is-visible {
  animation-play-state: running;
}
/* Trigger modal wrappers — hidden by default, shown as full-screen overlay on .is-open.
 * Mirrors .bps-modal pattern so trigger-based content (exit intent, timed, etc.)
 * behaves identically to programmatic modals. */
.bps-exit-modal, .bps-auto-modal, .bps-idle-modal, .bps-exit-delayed-modal, .bps-waypoint-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1050;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.5);
}
.bps-exit-modal.is-open, .bps-auto-modal.is-open, .bps-idle-modal.is-open, .bps-exit-delayed-modal.is-open, .bps-waypoint-modal.is-open {
  display: flex;
}
/* Inner content box — templates place their card content directly inside the trigger div */
.bps-exit-modal > div, .bps-auto-modal > div, .bps-idle-modal > div, .bps-exit-delayed-modal > div, .bps-waypoint-modal > div {
  background: var(--bg, #fff);
  border-radius: 10px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.25);
  max-width: 500px;
  width: 90%;
  max-height: 90vh;
  overflow-y: auto;
  position: relative;
}
/* ==========================================================================
   14. ANNOUNCEMENT BAR
   Class: .bps-announcement-bar
   JS: BPS.announcementBar()
   Positions: top (default), bottom. Dismissible with persistence.
   Z-index: 1035 (between sticky header 1030 and scroll-progress 1040)
   ========================================================================== */
.bps-announcement-bar {
  position: fixed;
  left: 0;
  right: 0;
  z-index: 1035;
  padding: 0.75rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  font-size: 0.9rem;
  line-height: 1.4;
  transition: transform 0.35s ease, opacity 0.35s ease;
  background: var(--accent, #0d6efd);
  color: #fff;
}
.bps-announcement-bar[data-position="top"], .bps-announcement-bar:not([data-position]) {
  top: 0;
}
.admin-bar .bps-announcement-bar[data-position="top"], .admin-bar .bps-announcement-bar:not([data-position]) {
  top: 32px;
}
@media (max-width: 782px) {
  .admin-bar .bps-announcement-bar[data-position="top"], .admin-bar .bps-announcement-bar:not([data-position]) {
    top: 46px;
  }
}
.bps-announcement-bar[data-position="bottom"] {
  bottom: 0;
}
/* Hidden state (pre-show or dismissed) */
.bps-announcement-bar.is-hidden[data-position="top"], .bps-announcement-bar.is-hidden:not([data-position]) {
  transform: translateY(-100%);
}
.bps-announcement-bar.is-hidden[data-position="bottom"] {
  transform: translateY(100%);
}
/* Style variants */
.bps-announcement-bar[data-style="info"] {
  background: var(--bs-info, #0dcaf0);
  color: #000;
}
.bps-announcement-bar[data-style="warning"] {
  background: var(--bs-warning, #ffc107);
  color: #000;
}
.bps-announcement-bar[data-style="success"] {
  background: var(--bs-success, #198754);
  color: #fff;
}
.bps-announcement-bar[data-style="cta"] {
  background: var(--accent, #0d6efd);
  color: #fff;
}
/* Content areas */
.bps-announcement-bar-text {
  flex: 1;
  text-align: center;
}
.bps-announcement-bar-text a {
  color: inherit;
  text-decoration: underline;
  font-weight: 600;
}
.bps-announcement-bar-btn {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 1rem;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.2);
  color: inherit;
  font-weight: 600;
  font-size: 0.85rem;
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.3);
  cursor: pointer;
  transition: background 0.2s ease;
  white-space: nowrap;
}
.bps-announcement-bar-btn:hover {
  background: rgba(255, 255, 255, 0.35);
  color: inherit;
}
/* Dismiss button */
.bps-announcement-bar-dismiss {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: none;
  background: none;
  color: inherit;
  font-size: 1.2rem;
  line-height: 1;
  cursor: pointer;
  opacity: 0.7;
  transition: opacity 0.2s ease;
  flex-shrink: 0;
  padding: 0;
}
.bps-announcement-bar-dismiss:hover {
  opacity: 1;
}
/* Offset sticky header when top announcement bar is active */
body.bps-has-announcement-top .bps-sticky-header.is-sticky {
  top: var(--bps-announcement-height, 44px);
}
/* ==========================================================================
   15. COUNTDOWN TIMER
   Class: .bps-countdown
   Variants: --minimal (default), --boxed, --flip
   JS: BPS.countdown()
   ========================================================================== */
.bps-countdown {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  font-family: inherit;
}
.bps-countdown-unit {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 48px;
}
.bps-countdown-value {
  font-weight: 700;
  line-height: 1.1;
}
.bps-countdown-label {
  font-size: 0.7em;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-color2, #6c757d);
  margin-top: 0.2em;
}
.bps-countdown-sep {
  font-weight: 700;
  align-self: flex-start;
  line-height: 1.1;
  opacity: 0.5;
}
.bps-countdown.is-expired {
  opacity: 0.4;
}
/* -- Minimal variant (default) -- */
/* 🔴 The style modifiers must carry the flex layout THEMSELVES, not inherit it from
   .bps-countdown. framework.js renders the units inside a NESTED wrapper
   (<div class="bps-countdown"><div class="bps-countdown--boxed">…units…</div></div>), so the
   modifier is a child of the flex container, not the container. It was styled as though it
   were the container: it set only `gap`, stayed display:block, and every unit stacked
   vertically down the page. Measured 2026-09-04 on the review page — a four-box countdown
   drew as a single column. Declaring the layout on the modifier is correct whether the class
   lands on the root or on the nested wrapper, so this holds either way. */
.bps-countdown--minimal .bps-countdown-value {
  font-size: 2.5rem;
}
.bps-countdown--minimal .bps-countdown-sep {
  font-size: 2.5rem;
}
/* -- Boxed variant -- */
.bps-countdown--boxed {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.bps-countdown--boxed .bps-countdown-unit {
  background: var(--bg2, #f8f9fa);
  border: 1px solid var(--bps-border-color, var(--border-color, #dee2e6));
  border-radius: 8px;
  padding: 0.75rem 1rem;
  min-width: 64px;
}
.bps-countdown--boxed .bps-countdown-value {
  font-size: 2rem;
}
.bps-countdown--boxed .bps-countdown-sep {
  font-size: 2rem;
  background: none;
  border: none;
  padding: 0;
}
/* -- Flip variant -- */
.bps-countdown--flip {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.bps-countdown--flip .bps-countdown-unit {
  background: var(--bg2, #1a1a2e);
  color: #fff;
  border-radius: 6px;
  padding: 0.6rem 0.8rem;
  min-width: 60px;
  position: relative;
  overflow: hidden;
}
.bps-countdown--flip .bps-countdown-value {
  font-size: 2rem;
  display: inline-block;
}
.bps-countdown--flip .bps-countdown-label {
  color: rgba(255, 255, 255, 0.6);
}
.bps-countdown--flip .bps-countdown-sep {
  font-size: 2rem;
  color: var(--text-color2, #6c757d);
}
/* Flip tick animation */
@keyframes bps-flip-tick {
  0% {
    transform: scaleY(1);
  }
  50% {
    transform: scaleY(0.1);
  }
  100% {
    transform: scaleY(1);
  }
}
.bps-flip-tick {
  animation: bps-flip-tick 0.3s ease-in-out;
  transform-origin: center bottom;
}
/* Responsive */
@media (max-width: 480px) {
  .bps-countdown--minimal .bps-countdown-value, .bps-countdown--minimal .bps-countdown-sep {
    font-size: 1.75rem;
  }
  .bps-countdown--boxed .bps-countdown-value, .bps-countdown--boxed .bps-countdown-sep, .bps-countdown--flip .bps-countdown-value, .bps-countdown--flip .bps-countdown-sep {
    font-size: 1.5rem;
  }
  .bps-countdown-unit {
    min-width: 40px;
  }
  .bps-countdown--boxed .bps-countdown-unit, .bps-countdown--flip .bps-countdown-unit {
    min-width: 50px;
    padding: 0.5rem 0.6rem;
  }
}
/* ==========================================================================
   16. VIDEO OVERLAYS
   Class: .bps-video-overlay, .bps-video-container, .bps-video-chapters
   JS: BPS.initVideoOverlays(), BPS.initVideoChapters()
   Requires: PlayerJS (lazy-loaded)
   ========================================================================== */
/* Container — wraps iframe + overlay siblings */
.bps-video-container {
  position: relative;
  width: 100%;
  overflow: hidden;
}
.bps-video-container iframe {
  display: block;
  width: 100%;
  aspect-ratio: 1.7777777778;
  border: 0;
}
/* Overlay — hidden by default, absolute over the video */
.bps-video-overlay {
  display: none;
  position: absolute;
  inset: 0;
  z-index: 10;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.55);
  pointer-events: none;
}
.bps-video-overlay.is-visible {
  display: flex;
  pointer-events: auto;
}
/* Inner content card */
.bps-video-overlay > div {
  background: var(--bg, #fff);
  border-radius: var(--radius-md, 10px);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);
  padding: 1.5rem 2rem;
  max-width: 480px;
  width: 90%;
  text-align: center;
}
/* Close button inside overlay */
.bps-video-overlay .bps-overlay-close {
  position: absolute;
  top: 10px;
  right: 14px;
  background: none;
  border: none;
  font-size: 1.5rem;
  color: #fff;
  cursor: pointer;
  opacity: 0.8;
  z-index: 11;
}
.bps-video-overlay .bps-overlay-close:hover {
  opacity: 1;
}
/* Chapter markers */
.bps-video-chapters {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 0.75rem;
  border: 1px solid var(--light-border, #dee2e6);
  border-radius: var(--radius-base, 6px);
  overflow: hidden;
}
.bps-chapter-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.6rem 1rem;
  cursor: pointer;
  font-size: 0.9rem;
  color: var(--text-color, inherit);
  background: var(--bg, #fff);
  border-bottom: 1px solid var(--light-border, #dee2e6);
  transition: background 0.15s ease, color 0.15s ease;
}
.bps-chapter-item:last-child {
  border-bottom: 0;
}
.bps-chapter-item:hover {
  background: var(--light-bg2, #f8f9fa);
}
.bps-chapter-item.is-active {
  background: rgba(var(--accent-rgb, 13, 110, 253), 0.1);
  font-weight: 600;
}
.bps-chapter-item .bps-chapter-time {
  font-size: 0.8rem;
  color: var(--text-color2, #6c757d);
  min-width: 45px;
  font-variant-numeric: tabular-nums;
}
.bps-chapter-item .bps-chapter-title {
  flex: 1;
}
/* Responsive */
@media (max-width: 640px) {
  .bps-video-overlay > div {
    padding: 1rem 1.25rem;
  }
}
/* ==========================================================================
   13. TOAST NOTIFICATION
   Classes: .bps-toast-container (JS-created wrapper), .bps-toast (card)
   JS: bps_show_toast() in ajax.php · MoaBPS.toast() in bps-ajax.js
   Bootstrap note: bps-ajax.js delegates to Bootstrap's Toast; ajax.php uses
   bps-toast-container for a standalone stack. .bps-toast provides a
   non-Bootstrap card for contexts where Bootstrap is absent.
   ========================================================================== */
.bps-toast-container {
  position: fixed;
  bottom: 1.25rem;
  right: 1.25rem;
  z-index: 1090;
  min-width: 300px;
  max-width: 380px;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  pointer-events: none;
}
.bps-toast-container > * {
  pointer-events: auto;
}
.bps-toast {
  background: var(--bg, #fff);
  color: var(--text-color, #212529);
  border: 1px solid var(--light-border, rgba(0, 0, 0, 0.15));
  border-left: 4px solid var(--accent, #6c3aed);
  border-radius: 0.375rem;
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
  padding: 0.75rem 1rem;
  opacity: 0;
  transform: translateX(calc(100% + 1.25rem));
  transition: opacity 0.25s ease, transform 0.25s ease;
}
.bps-toast.show, .bps-toast.is-visible {
  opacity: 1;
  transform: translateX(0);
}
.bps-toast--success {
  border-left-color: var(--accent, #198754);
}
.bps-toast--error {
  border-left-color: #dc3545;
}
.bps-toast--warning {
  border-left-color: #ffc107;
}
.bps-toast--info {
  border-left-color: #0dcaf0;
}
/* ==========================================================================
   14. OFFCANVAS PANEL
   Classes: .bps-offcanvas (panel), .bps-offcanvas--start (left variant),
            .bps-offcanvas-backdrop (overlay)
   JS: MoaBPS.offcanvas() delegates to Bootstrap's Offcanvas. Use .bps-offcanvas
   + .is-open directly for a standalone (no-Bootstrap) slide-in panel.
   ========================================================================== */
.bps-offcanvas {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 320px;
  max-width: 90vw;
  background: var(--bg, #fff);
  color: var(--text-color, #212529);
  box-shadow: -0.5rem 0 1.5rem rgba(0, 0, 0, 0.15);
  z-index: 1045;
  transform: translateX(100%);
  transition: transform 0.3s ease;
  overflow-y: auto;
  padding: 1.5rem;
}
.bps-offcanvas.is-open {
  transform: translateX(0);
}
.bps-offcanvas.bps-offcanvas--start {
  right: auto;
  left: 0;
  box-shadow: 0.5rem 0 1.5rem rgba(0, 0, 0, 0.15);
  transform: translateX(-100%);
}
.bps-offcanvas.bps-offcanvas--start.is-open {
  transform: translateX(0);
}
.bps-offcanvas-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1044;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.bps-offcanvas-backdrop.is-visible {
  opacity: 1;
  pointer-events: auto;
}
/* ========================================================================
   Maison-class card / cell / row / placeholder primitives  (additive 2026-06-23)
   Palette-driven (var(--accent) / var(--bps-border-color)); no hardcoded colour.
   Added to give editorial-card, stat-grid, price-row, numeral-ring and
   image-placeholder patterns a native home so pages need no custom CSS.
   Registered as decorator/layout chips in class-design-vocabulary.php.
   ======================================================================== */
/* 🔴 .bps-card and .bps-card-accent-* MOVED 2026-09-14 to _bps-flavours.scss.
   They are now hook classes: zero bare CSS, painted only under body.bps-base
   (the default) or body.bps-flavour-*. Do not re-add a bare rule here — that
   would paint the card regardless of the site's chosen flavour and could not be
   overridden back off. Verbatim backup of the old rules:
   dev/plans/data/flavour-pilot/REMOVED-decorator-paint-2026-09-14.scss */
/* Numeral / icon ring — a fixed circle with an accent border and centred content.
   Used for process-step numerals (How It Works I/II/III). */
.bps-circle {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: 1px solid var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  color: var(--accent);
  margin: 0 auto;
}
.bps-circle-lg {
  width: 84px;
  height: 84px;
}
.bps-circle-sm {
  width: 48px;
  height: 48px;
}
/* Bordered cell grid — a hairline-divided row of equal cells (stat / credential bands).
   Outer border + internal dividers from var(--bps-border-color, var(--border-color)); cells flex-equal.
   Compose .stat-number / .stat-label (skin) inside each .bps-cell for the band look. */
.bps-cell-row {
  display: flex;
  flex-wrap: wrap;
  border: 1px solid var(--bps-border-color, var(--border-color, #dee2e6));
}
.bps-cell {
  flex: 1 1 0;
  min-width: 140px;
  padding: 2.125rem 1.625rem;
  text-align: center;
  border-right: 1px solid var(--bps-border-color, var(--border-color, #dee2e6));
}
.bps-cell:last-child {
  border-right: none;
}
@media (max-width: 880px) {
  .bps-cell {
    flex-basis: 50%;
  }
}
@media (max-width: 560px) {
  .bps-cell {
    flex-basis: 100%;
    border-right: none;
    border-bottom: 1px solid var(--bps-border-color, var(--border-color, #dee2e6));
  }
  .bps-cell:last-child {
    border-bottom: none;
  }
}
/* Label/value row — a divided list row: primary content left, value/action right.
   One primitive reused for pricing rows, contact-info rows, and hours rows. */
.bps-row-item {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1.5rem;
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--bps-border-color, var(--border-color, #dee2e6));
}
.bps-row-item__main {
  flex: 1 1 auto;
}
.bps-row-item__aside {
  flex: 0 0 auto;
  text-align: right;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.625rem;
}
.bps-row-list {
  border-top: 1px solid var(--bps-border-color, var(--border-color, #dee2e6));
}
@media (max-width: 560px) {
  .bps-row-item {
    flex-direction: column;
  }
  .bps-row-item__aside {
    text-align: left;
    align-items: flex-start;
  }
}
/* Image placeholder — a "replace at launch" gradient stand-in with caption + watermark.
   Reuses .bps-aspect-* for ratio; accent-gradient surface; not a real image. */
.bps-img-placeholder {
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: 2px;
  background: linear-gradient(135deg, rgba(var(--accent-rgb, 201, 169, 106), 0.55) 0%, var(--accent) 45%, rgba(0, 0, 0, 0.18) 100%);
  display: flex;
  align-items: flex-end;
}
.bps-img-placeholder__wm {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0 0.875rem;
  font-size: 0.6875rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(0, 0, 0, 0.34);
}
.bps-img-placeholder__cap {
  position: relative;
  z-index: 1;
  margin: 0.875rem;
  font-size: 0.6875rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #fff;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.4);
}
.cred-line {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: baseline;
  column-gap: 0.75rem;
  row-gap: 0.25rem;
}
.cred-line > .elementor-widget {
  display: flex;
  align-items: baseline;
  width: auto;
  margin: 0;
}
.cred-line > .elementor-widget + .elementor-widget::before {
  content: "·";
  margin-right: 0.75rem;
  color: var(--text-color3);
}
.cred-line .elementor-heading-title {
  color: var(--text-color3);
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.7;
}
@media (max-width: 600px) {
  .cred-line {
    flex-direction: column !important;
    align-items: center;
    row-gap: 0.125rem !important;
  }
  .cred-line > .elementor-widget + .elementor-widget::before {
    content: none;
  }
}
.index-list {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 3rem !important;
  row-gap: 0 !important;
}
.index-list > .elementor-widget {
  width: auto;
  margin: 0;
  padding: 0.875rem 0;
  border-bottom: 1px solid var(--border-color, color-mix(in srgb, currentColor 16%, transparent));
}
.index-list .elementor-heading-title {
  display: block;
  font-size: 1.0625rem;
  line-height: 1.4;
}
.index-list .elementor-heading-title > a, .index-list .elementor-heading-title:not(:has(a)) {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  color: inherit;
  text-decoration: none;
}
.index-list .elementor-heading-title > a::after, .index-list .elementor-heading-title:not(:has(a))::after {
  content: "→";
  color: var(--accent);
  transition: transform 0.15s ease;
}
.index-list > .elementor-widget:hover .elementor-heading-title > a::after {
  transform: translateX(4px);
}
@media (max-width: 1024px) {
  .index-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 2rem !important;
  }
}
@media (max-width: 600px) {
  .index-list {
    grid-template-columns: 1fr;
  }
}
.price-list {
  gap: 0 !important;
}
.price-list > .e-con {
  border-top: 1px solid var(--border-color, color-mix(in srgb, currentColor 16%, transparent));
  background: none;
}
.price-list > .e-con:last-child {
  border-bottom: 1px solid var(--border-color, color-mix(in srgb, currentColor 16%, transparent));
}
.section .elementor-widget-heading.fee-figure, .fee-figure {
  font-family: var(--font-heading, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
  font-weight: 700;
  font-size: 1.125rem;
  line-height: 1.3;
  color: var(--text-color);
  font-variant-numeric: tabular-nums lining-nums;
}
.section .elementor-widget-heading.fee-figure .elementor-heading-title, .fee-figure .elementor-heading-title {
  color: inherit;
  font: inherit;
  font-variant-numeric: inherit;
}
/* ========================================================================
   STICKY CHROME — ported from BPS Lite 0.7.40 (bps-lite-shapes.css), 3.11.30
   ========================================================================
   Base ships the demo-kit sections ksp-nav-01/-02/-03 (and now ksp-nav-04),
   which carry `moa-sticky` / `moa-stickybar`, but until 3.11.30 no Base
   stylesheet painted either class, so on a Base site those bars scrolled
   away with the page. This is Lite's block unchanged, comments and all, so
   the two plugins keep ONE definition. Edit both together.
   ======================================================================== */
/* Sticky funnel chrome — .moa-sticky and .moa-stickybar
 * ============================================================================
 * Added 2026-09-13 (0.7.9) for the funnel nav family (`sp-nav-*`) and the
 * mobile CTA bar. Mark's framing: *"BPS Lite as the floor, not the ceiling"* —
 * so this is a plain CSS primitive with no plugin behind it. Elementor's own
 * sticky is a Pro feature and the estate runs free Elementor 4.2.4, which is
 * why the library has never had a nav band.
 *
 * 🪤 THE TRAP, and it is the whole reason this needed measuring rather than
 * asserting: `position: sticky` is cancelled — silently, with no error and no
 * visual hint — by ANY ancestor carrying `overflow: hidden`, `auto` or
 * `scroll`. It is not inherited and it is not a specificity fight, so no
 * amount of `!important` recovers it. Elementor's own reset does not set
 * overflow on the page wrapper, but a bleed section will: `.moa-bleed` and the
 * boxed-section cancel at the top of this file both clip. A sticky nav placed
 * under one of those does nothing and looks exactly like a class that never
 * loaded. Measured on a built page before shipping — see the handoff.
 *
 * 🪤 Second trap: the sticky element's parent must be TALLER than the sticky
 * element or there is nothing to travel through. That is satisfied here
 * because the section's parent is the page body, but it breaks the moment
 * someone nests one of these inside another container.
 *
 * `--moa-sticky-top` exists so an overlaid header can push the nav down
 * without a second class; it defaults to 0.
 * ========================================================================= */
.moa-sticky {
  position: -webkit-sticky;
  position: sticky;
  top: var(--moa-sticky-top, 0px);
  z-index: 50;
}
/* The bottom-anchored CTA bar. Same primitive, opposite edge. `bottom` rather
 * than `top`, and a higher stack order because it overlays content rather than
 * leading it. */
.moa-stickybar {
  position: -webkit-sticky;
  position: sticky;
  bottom: var(--moa-stickybar-bottom, 0px);
  z-index: 60;
}
/* 🪤 Elementor's frontend sets `.e-con { position: var(--position) }` (relative)
 * at (0,1,0), the same weight as the two rules above, so the later stylesheet
 * wins the tie. Lite's loads after Elementor's; Base's framework stylesheet
 * loads BEFORE it, and on Base the bar silently scrolled away with the page
 * (measured 2026-10-01, still-point, computed position `relative`). At (0,2,0)
 * this wins whatever the load order. */
.e-con.moa-sticky, .e-con.moa-stickybar {
  position: -webkit-sticky;
  position: sticky;
}
/* 🔴 A sticky band MUST be opaque or the page scrolls visibly through it.
 * `bps_tone` paints `background-color` on the section, so a toned nav is
 * already covered; an untoned one is not, and that is the easy mistake. The
 * fallback below is the page ground, so an author who forgets a tone gets a
 * legible bar rather than a transparent smear. */
.moa-sticky:not([class*="light"]):not([class*="dark"]), .moa-stickybar:not([class*="light"]):not([class*="dark"]) {
  background-color: var(--background-color, #fff);
}
/* Hairline under a sticky nav, so the band has an edge when content passes
 * beneath it. Uses the same token the section borders use. */
.moa-sticky {
  border-bottom: 1px solid var(--border-color, rgba(0, 0, 0, 0.08));
}
/* 🪤 A sticky band must not inherit the vertical rhythm of a content band —
 * `moa-sd` at the Compact scale is 20px top and bottom, which reads as a
 * 90px-tall nav. The chrome carries `moa-sm` (a hardcoded 10px) and tops it up
 * by 8 here, giving the 18px the wireframes use — measured off the mockups'
 * `padding:18px 24px`, not chosen by eye. */
.moa-sticky > .e-con-inner, .moa-stickybar > .e-con-inner {
  padding-block: 8px;
}
@media (max-width: 767px) {
  .moa-sticky > .e-con-inner, .moa-stickybar > .e-con-inner {
    padding-block: 4px;
  }
}
/* 🪤 The chrome row must WRAP rather than overflow at 390. A wordmark plus a
 * button plus three links is wider than a phone, and `space-between` on a
 * nowrap row pushes the button off-screen instead of stacking it — which the
 * horizontal-overflow gate catches only if something actually paints past the
 * edge. Wrapping is the fix; centring keeps it tidy once it has wrapped. */
/* 🪤 The wrap belongs on the ROW, not on `.e-con-inner`. The chrome's flex row
 * is a CHILD of the inner wrapper — `section > .e-con-inner > .e-con[row]` —
 * so wrapping the wrapper does nothing to the items that actually overflow.
 * First cut targeted the wrapper and the nav still stacked ragged at 390:
 * wordmark left, links centred, button hard right on three separate lines. */
@media (max-width: 767px) {
  .moa-sticky .e-con-inner > .e-con, .moa-stickybar .e-con-inner > .e-con {
    flex-wrap: wrap;
    justify-content: center;
    row-gap: 6px;
  }
}
/* Reduced-motion and print: a bar that follows the reader is motion, and it is
 * meaningless on paper. */
@media print {
  .moa-sticky, .moa-stickybar {
    position: static;
  }
}
/* Chrome type — .moa-wordmark and .moa-barmsg
 * ============================================================================
 * The library had no nav band until 0.7.9, so it has never had a type role for
 * a wordmark either. The first build of `sp-nav-01` reached for `section-title`
 * because that is the nearest existing role, and rendered a 40px "Your Brand"
 * in a 115px-tall bar — structurally correct and visually absurd. Measured on
 * the chrome lab before shipping.
 *
 * 🔴 These are DELIBERATELY NOT `section-title` with an override. Core declares
 * its role classes as `.section-title:not(.bps-bypass)` = (0,2,0); a bare
 * `.moa-wordmark` is (0,1,0) and would lose to it on any element wearing both.
 * The fix is a class that stands alone, not one that fights — the same trap
 * that made 23 skin declarations dead across five role classes (see the stat
 * block note above). So the nav headings wear ONE of these and no role class.
 *
 * Sized off the wireframes rather than by eye: `Sales - Momentum Course.dc.html`
 * sets the nav wordmark at 22px/700 and Flowline's at 18px/800.
 * ========================================================================= */
.moa-wordmark {
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.01em;
  margin: 0;
}
/* The bottom rail's message is a sentence, not a name — it reads at body size
 * and must not compete with the button beside it. */
.moa-barmsg {
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.25;
  margin: 0;
}
@media (max-width: 767px) {
  .moa-wordmark {
    font-size: 1.125rem;
  }
  .moa-barmsg {
    font-size: 0.875rem;
  }
}
/* 🪤 ELEMENTOR'S DEFAULT 10px CONTAINER PADDING, AGAIN.
 * Every `e-con` gets 10px all round unless something says otherwise. In a
 * content band that is invisible; in a chrome bar it is 20px added to the
 * tallest child in EVERY nested box, and it compounds. Measured on the chrome
 * lab: a 22px wordmark and a 46px button produced a 103px nav — the wordmark's
 * own box was 42px and the button's 66px, both purely from this default.
 * (Same default cost an avatar 20px of its 56px earlier in this review; it is
 * the single most reliable way to be 20px wrong in Elementor.)
 *
 * Zeroed for boxes INSIDE the chrome only. The chrome's own rhythm stays with
 * `moa-sm` on the section and the 8px top-up on `.e-con-inner` above. */
.moa-sticky .e-con-inner .e-con, .moa-stickybar .e-con-inner .e-con {
  padding: 0;
}
/* 🪤 A CHILD CONTAINER INSIDE THE CHROME MUST SIZE TO ITS CONTENT.
 * Elementor gives `content_width: full` a literal `width: 100%`, so three boxes
 * in a wrap row each claim a whole line — the wordmark, the links and the
 * button stacked as three full-width rows at 390 instead of a bar. It is the
 * same defect that made the trust badges render as full-width stripes; there it
 * was fixed by putting the widgets straight in the row, here the boxes are
 * needed for grouping, so they are told to size themselves.
 *
 * `width: auto` + `flex: 0 1 auto` keeps `space-between` meaningful: the
 * wordmark sits left, the CTA right, and neither grows into the gap. */
.moa-sticky .e-con-inner > .e-con > .e-con, .moa-stickybar .e-con-inner > .e-con > .e-con {
  width: auto;
  flex: 0 1 auto;
}
/* In-page links are a desktop convenience. At phone width they turn a two-item
 * bar into a three-row block that eats the fold — the one thing a funnel hero
 * cannot afford ("above the fold is gold"). The bar keeps the wordmark and the
 * CTA, which are the only two things it exists for. */
@media (max-width: 767px) {
  .moa-chrome-links {
    display: none !important;
  }
}
/* Astra's scroll-to-top button on phones (3.11.30, Phase 2a lab L12)
 * ============================================================================
 * Astra pins its button bottom-right at z-index 99, which sits ON a bottom
 * sticky bar and covers its right-hand button (measured on all four lab sites;
 * each turned the button off for phones by hand). A page with a phone-visible
 * sticky bar already has a way back up the page in reach of the thumb, so the
 * button stands down on phones only when such a bar is present. */
@media (max-width: 767px) {
  body:has(.moa-stickybar:not(.elementor-hidden-mobile)) #ast-scroll-top {
    display: none !important;
  }
}
.moa-styles .pods-form-front .pods-submit {
  float: left;
  margin-top: 15px;
}
.moa-styles .pods-ui-form {
  display: block;
  margin: 15px 0;
}
.moa-styles .pods-field-html-class {
  margin-top: 15px;
  margin-bottom: 15px;
}
.moa-styles .description.pods-form-ui-comment {
  font-size: 85%;
  color: var(--text-color);
  opacity: 0.8;
}
body:not(.wp-admin) .media-router button {
  background: var(--card-bg);
  color: var(--text-color);
  border: 1px solid var(--b-border-color);
  border-radius: var(--border-radius);
  padding: 0.5rem 1rem;
  transition: 0.15s ease-out;
}
body:not(.wp-admin) .media-router button:hover {
  background: var(--subtle-color);
  color: var(--text-color);
}
body:not(.wp-admin) .media-router button.active {
  background: var(--brand-color);
  color: var(--brand-text);
}
.moa-bps-pods .pods-form-ui-field.pods-form-ui-field-type-pick {
  width: 100%;
}
.pods-form-front .pods-submit {
  float: none;
  clear: both;
  margin-top: 15px;
}
.pods-field__container {
  margin: 15px 0;
}
a.button.pods-dfv-list-add {
  color: white;
  display: inline-block;
  background: var(--brand-color);
  padding: 0.5rem 1rem;
  border-radius: var(--border-radius);
  text-decoration: none;
  font-weight: 500;
  transition: 0.15s ease-out;
}
a.button.pods-dfv-list-add:hover {
  background: var(--cta-hover);
  color: white;
  text-decoration: none;
}
.pods-dfv-container-pick, .pods-field-option__field, .pods-field-option__field .pods-dfv-container {
  width: 100% !important;
  max-width: 100% !important;
}
.new-profile-form-start .pods-form-front .pods-submit {
  float: left;
}
.pods-form-front .pods-submit {
  margin-top: 20px;
  float: none;
  text-align: center;
}
.pods-form-front .pods-submit .pods-submit-button {
  background: var(--brand-color);
  color: white;
  display: block;
  width: 100%;
  border: none;
  border-radius: var(--border-radius);
  padding: 0.75rem 1.5rem;
  font-weight: 500;
  font-size: 1rem;
  transition: 0.3s ease-out;
  cursor: pointer;
}
.pods-form-front .pods-submit .pods-submit-button:hover {
  background: black;
  color: white;
}
.pods-form-front .pods-submit .pods-submit-button:focus {
  outline: 2px solid var(--brand-color);
  outline-offset: 2px;
}
.pods-form-front .pods-submit .pods-submit-button:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.pods-form-ui-field {
  margin-bottom: var(--moa-y-sd);
}
.pods-form-ui-field label {
  color: var(--heading-color);
  font-weight: 500;
  margin-bottom: 0.5rem;
  display: block;
}
.pods-form-ui-field input[type="text"], .pods-form-ui-field input[type="email"], .pods-form-ui-field input[type="password"], .pods-form-ui-field input[type="number"], .pods-form-ui-field input[type="tel"], .pods-form-ui-field input[type="url"], .pods-form-ui-field textarea, .pods-form-ui-field select {
  width: 100%;
  padding: 0.75rem;
  border: 1px solid var(--bps-border-color, var(--border-color));
  border-radius: var(--border-radius);
  background: var(--card-bg);
  color: var(--text-color);
  font-size: 1rem;
  transition: 0.15s ease-out;
}
.pods-form-ui-field input[type="text"]:focus, .pods-form-ui-field input[type="email"]:focus, .pods-form-ui-field input[type="password"]:focus, .pods-form-ui-field input[type="number"]:focus, .pods-form-ui-field input[type="tel"]:focus, .pods-form-ui-field input[type="url"]:focus, .pods-form-ui-field textarea:focus, .pods-form-ui-field select:focus {
  outline: none;
  border-color: var(--brand-color);
  box-shadow: 0 0 0 2px rgba(184, 134, 11, 0.2);
}
.pods-form-ui-field input[type="text"]:disabled, .pods-form-ui-field input[type="email"]:disabled, .pods-form-ui-field input[type="password"]:disabled, .pods-form-ui-field input[type="number"]:disabled, .pods-form-ui-field input[type="tel"]:disabled, .pods-form-ui-field input[type="url"]:disabled, .pods-form-ui-field textarea:disabled, .pods-form-ui-field select:disabled {
  background: var(--subtle-color);
  opacity: 0.7;
  cursor: not-allowed;
}
.pods-form-ui-field textarea {
  min-height: 120px;
  resize: vertical;
}
.pods-form-ui-field select {
  cursor: pointer;
}
.pods-form-ui-field .pods-pick .pods-pick-values {
  border: 1px solid var(--bps-border-color, var(--border-color));
  border-radius: var(--border-radius);
  background: var(--card-bg);
  max-height: 200px;
  overflow-y: auto;
}
.pods-form-ui-field .pods-pick .pods-pick-values .pods-pick-value {
  padding: 0.5rem;
  border-bottom: 1px solid var(--bps-border-color, var(--border-color));
  transition: 0.15s ease-out;
}
.pods-form-ui-field .pods-pick .pods-pick-values .pods-pick-value:hover {
  background: var(--subtle-color);
}
.pods-form-ui-field .pods-pick .pods-pick-values .pods-pick-value:last-child {
  border-bottom: none;
}
.pods-form-ui-field .pods-pick .pods-pick-values .pods-pick-value input[type="checkbox"], .pods-form-ui-field .pods-pick .pods-pick-values .pods-pick-value input[type="radio"] {
  margin-right: 0.5rem;
}
.pods-form-ui-field .pods-pick .pods-pick-values .pods-pick-value label {
  margin: 0;
  cursor: pointer;
  font-weight: normal;
}
.pods-form-ui-field.pods-error input, .pods-form-ui-field.pods-error textarea, .pods-form-ui-field.pods-error select {
  border-color: var(--danger-color);
}
.pods-form-ui-field.pods-error input:focus, .pods-form-ui-field.pods-error textarea:focus, .pods-form-ui-field.pods-error select:focus {
  border-color: var(--danger-color);
  box-shadow: 0 0 0 2px rgba(220, 53, 69, 0.2);
}
.pods-form-ui-field.pods-success input, .pods-form-ui-field.pods-success textarea, .pods-form-ui-field.pods-success select {
  border-color: var(--success-color);
}
.pods-form-ui-field.pods-success input:focus, .pods-form-ui-field.pods-success textarea:focus, .pods-form-ui-field.pods-success select:focus {
  border-color: var(--success-color);
  box-shadow: 0 0 0 2px rgba(40, 167, 69, 0.2);
}
.description.pods-form-ui-comment {
  font-size: 14px;
  color: var(--text-color);
  opacity: 0.8;
  margin-top: 0.25rem;
  line-height: 1.4;
}
.description.pods-form-ui-comment a {
  color: var(--brand-color);
  text-decoration: none;
}
.description.pods-form-ui-comment a:hover {
  text-decoration: underline;
}
@media screen and (max-width: 992px) {
  .moa-bps-pods .pods-form-ui-field {
    margin-bottom: var(--moa-y-sd-tablet);
  }
  .moa-bps-pods .pods-form-ui-field input, .moa-bps-pods .pods-form-ui-field textarea, .moa-bps-pods .pods-form-ui-field select {
    padding: 0.6rem;
  }
  .moa-bps-pods .pods-form-front .pods-submit .pods-submit-button {
    padding: 0.6rem 1.25rem;
  }
}
@media screen and (max-width: 768px) {
  .moa-bps-pods .pods-form-ui-field {
    margin-bottom: var(--moa-y-sd-mobile);
  }
  .moa-bps-pods .pods-form-ui-field input, .moa-bps-pods .pods-form-ui-field textarea, .moa-bps-pods .pods-form-ui-field select {
    padding: 0.5rem;
    font-size: 0.9rem;
  }
  .moa-bps-pods .pods-form-front .pods-submit .pods-submit-button {
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
  }
}
.section .moa-bps-pods .pods-form-ui-field label {
  color: var(--heading-color);
}
.section .moa-bps-pods .pods-form-ui-field input, .section .moa-bps-pods .pods-form-ui-field textarea, .section .moa-bps-pods .pods-form-ui-field select {
  background: var(--card-bg);
  color: var(--text-color);
  border-color: var(--bps-border-color, var(--border-color));
}
.dark .moa-bps-pods .pods-form-ui-field .pods-pick .pods-pick-values, .dark2 .moa-bps-pods .pods-form-ui-field .pods-pick .pods-pick-values, .dark3 .moa-bps-pods .pods-form-ui-field .pods-pick .pods-pick-values {
  background: var(--bg2);
  border-color: var(--bps-border-color, var(--border-color));
}
.dark .moa-bps-pods .pods-form-ui-field .pods-pick .pods-pick-values .pods-pick-value, .dark2 .moa-bps-pods .pods-form-ui-field .pods-pick .pods-pick-values .pods-pick-value, .dark3 .moa-bps-pods .pods-form-ui-field .pods-pick .pods-pick-values .pods-pick-value {
  border-color: var(--bps-border-color, var(--border-color));
}
.dark .moa-bps-pods .pods-form-ui-field .pods-pick .pods-pick-values .pods-pick-value:hover, .dark2 .moa-bps-pods .pods-form-ui-field .pods-pick .pods-pick-values .pods-pick-value:hover, .dark3 .moa-bps-pods .pods-form-ui-field .pods-pick .pods-pick-values .pods-pick-value:hover {
  background: var(--bg);
}
.light .moa-bps-pods .pods-form-ui-field .pods-pick .pods-pick-values .pods-pick-value:hover, .light2 .moa-bps-pods .pods-form-ui-field .pods-pick .pods-pick-values .pods-pick-value:hover, .light3 .moa-bps-pods .pods-form-ui-field .pods-pick .pods-pick-values .pods-pick-value:hover {
  background: var(--subtle-color);
}
.moa-styles .pods-form-ui-field input[type="text"], .moa-styles .pods-form-ui-field input[type="email"], .moa-styles .pods-form-ui-field input[type="password"], .moa-styles .pods-form-ui-field input[type="number"], .moa-styles .pods-form-ui-field input[type="tel"], .moa-styles .pods-form-ui-field input[type="url"], .moa-styles .pods-form-ui-field textarea, .moa-styles .pods-form-ui-field select {
  padding: 15px 20px;
}
.moa-styles input[type="text"], .moa-styles input[type="number"], .moa-styles input[type="email"], .moa-styles input[type="url"], .moa-styles input[type="password"], .moa-styles input[type="search"], .moa-styles input[type="reset"], .moa-styles input[type="tel"], .moa-styles input[type="date"], .moa-styles select {
  height: auto;
}
.bps-form {
  --bps-input-height: auto;
  --bps-input-padding-x: var(--bps-form-input-padding-x, 0.75rem);
  --bps-input-padding-y: var(--bps-form-input-padding-y, 0.5rem);
  --bps-input-font-size: 0.9375rem;
  --bps-input-border-width: var(--kit-input-border-width, var(--bps-form-input-border-width, 2px));
  --bps-input-border-radius: var(--kit-input-border-radius, var(--bps-form-input-radius, 0.375rem));
  --bps-input-border-style: var(--bps-form-input-border-style, solid);
  --bps-field-gap: var(--bps-form-field-gap, 0.75rem);
  --bps-transition: 0.3s ease-out;
  --bps-btn-min-height: var(--kit-btn-min-height, 46px);
  --bps-btn-padding-y: var(--kit-btn-padding-y, 0.7rem);
  --bps-btn-padding-x: 1.6rem;
  --bps-bg: var(--bps-form-input-bg, #fff);
  --bps-bg-alt: var(--bg2, #DED6D1);
  --bps-text: var(--bps-form-text, #1A1712);
  --bps-text-muted: var(--text-color2, #504C47);
  --bps-placeholder: var(--bps-text-muted);
  --bps-label: var(--bps-text);
  --bps-border: var(--bps-form-input-border-color, #D3CCC7);
  --bps-focus: var(--bps-accent);
  --bps-accent: var(--accent, #5A3A28);
  --bps-accent-text: var(--accent-text, #FFFFFF);
  --bps-accent-hover: var(--accent-hover, #513525);
  --bps-success: #28a745;
  --bps-danger: #dc3545;
  --bps-warning: #ffc107;
  box-sizing: border-box;
  font-family: inherit;
  line-height: 1.5;
  color: var(--bps-text);
}
.bps-form *, .bps-form *::before, .bps-form *::after {
  box-sizing: inherit;
}
.bps-form .bps-field, .bps-form .form-field {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  margin-bottom: var(--bps-field-gap);
}
.bps-form .bps-field:last-child, .bps-form .form-field:last-child {
  margin-bottom: 0;
}
.bps-form .bps-field--horizontal {
  flex-direction: row;
  align-items: center;
  gap: 0.75rem;
}
.bps-form .bps-field--horizontal .bps-label {
  flex: 0 0 auto;
  min-width: 120px;
  margin-bottom: 0;
}
.bps-form .bps-field--horizontal .bps-input, .bps-form .bps-field--horizontal .moaform-select2, .bps-form .bps-field--horizontal .bps-select, .bps-form .bps-field--horizontal .bps-textarea {
  flex: 1;
}
.bps-form .bps-field--inline {
  display: inline-flex;
  width: auto;
  margin-right: 0.75rem;
  margin-bottom: 0.5rem;
}
.bps-form .bps-label {
  display: block;
  margin-bottom: 0.25rem;
  font-weight: var(--bps-form-label-weight, 500);
  font-size: var(--bps-form-label-size, 0.9375rem);
  color: var(--bps-label);
}
.bps-form .bps-label--required::after {
  content: " *";
  color: var(--bps-danger);
}
.bps-form .bps-input, .bps-form .moaform-select2, .bps-form .bps-select, .bps-form .bps-textarea {
  display: block;
  width: 100%;
  min-height: var(--bps-input-height);
  padding: var(--bps-input-padding-y) var(--bps-input-padding-x);
  font-size: var(--bps-input-font-size);
  font-weight: 400;
  line-height: 1.5;
  color: var(--bps-text);
  background-color: var(--bps-bg);
  background-clip: padding-box;
  border: var(--bps-input-border-width) var(--bps-input-border-style) var(--bps-border);
  border-radius: var(--bps-input-border-radius);
  transition: border-color var(--bps-transition), box-shadow var(--bps-transition);
  appearance: none;
}
.bps-form .bps-input:focus, .bps-form .moaform-select2:focus, .bps-form .bps-select:focus, .bps-form .bps-textarea:focus {
  border-color: var(--bps-focus);
  box-shadow: 0 0 0 var(--bps-form-focus-ring-width, 3px) var(--bps-form-focus-ring, rgba(44, 62, 80, 0.1));
  outline: none;
}
.bps-form .bps-input::placeholder, .bps-form .moaform-select2::placeholder, .bps-form .bps-select::placeholder, .bps-form .bps-textarea::placeholder {
  color: var(--bps-placeholder);
  opacity: 0.6;
}
.bps-form .bps-input:disabled, .bps-form .moaform-select2:disabled, .bps-form .bps-input[readonly], .bps-form .moaform-select2[readonly], .bps-form .bps-select:disabled, .bps-form .bps-select[readonly], .bps-form .bps-textarea:disabled, .bps-form .bps-textarea[readonly] {
  background-color: var(--bps-bg-alt);
  opacity: 0.7;
  cursor: not-allowed;
}
.bps-form .bps-input--sm, .bps-form .bps-select--sm, .bps-form .bps-textarea--sm {
  --bps-input-height: 36px;
  --bps-input-font-size: 0.8125rem;
  --bps-input-padding-y: 0.25rem;
}
.bps-form .bps-input--lg, .bps-form .bps-select--lg, .bps-form .bps-textarea--lg {
  --bps-input-height: 54px;
  --bps-input-font-size: 1.0625rem;
  --bps-input-padding-y: 0.75rem;
}
.bps-form .bps-select {
  padding-right: 40px;
  background-image: var(--bps-caret-img, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23666666' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"));
  background-repeat: no-repeat;
  background-position: right 0.5rem center;
  background-size: 16px 12px;
  cursor: pointer;
}
.bps-form .bps-select[multiple] {
  padding-right: var(--bps-input-padding-x);
  background-image: none;
  min-height: 120px;
}
.bps-form .bps-textarea {
  min-height: 120px;
  resize: vertical;
}
.bps-form .bps-textarea--autosize {
  resize: none;
  overflow: hidden;
}
.bps-form .bps-check {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  cursor: pointer;
}
.bps-form .bps-check__input {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin-top: 2px;
  border: 2px solid var(--bps-border);
  border-radius: 0.25rem;
  appearance: none;
  cursor: pointer;
  transition: all 0.15s ease;
  background-color: var(--bps-bg);
}
.bps-form .bps-check__input:checked {
  background-color: var(--bps-accent);
  border-color: var(--bps-accent);
  background-image: var(--bps-tick-img, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e"));
  background-repeat: no-repeat;
  background-position: center;
  background-size: 14px;
}
.bps-form .bps-check__input:focus {
  box-shadow: 0 0 0 3px rgba(44, 62, 80, 0.15);
}
.bps-form .bps-check__input[type="radio"] {
  border-radius: 50%;
}
.bps-form .bps-check__input[type="radio"]:checked {
  background-image: none;
  background-color: var(--bps-bg);
  box-shadow: inset 0 0 0 5px var(--bps-accent);
}
.bps-form .bps-check__label {
  font-size: 0.9375rem;
  color: var(--bps-text);
  user-select: none;
}
.bps-form .bps-check-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.bps-form .bps-check-group--inline {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.bps-form .bps-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.5rem 1.5rem;
  min-height: var(--bps-input-height);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;
  color: var(--bps-accent-text);
  background-color: var(--bps-accent);
  border: 2px solid transparent;
  border-radius: var(--bps-form-submit-radius, var(--bps-input-border-radius));
  cursor: pointer;
  transition: all var(--bps-transition);
}
.bps-form .bps-btn:hover {
  background-color: var(--bps-accent-hover);
  transform: translateY(-2px);
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}
.bps-form .bps-btn:active {
  transform: translateY(0);
}
.bps-form .bps-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}
.bps-form .bps-btn--secondary {
  background-color: var(--bps-bg-alt);
  color: var(--bps-text);
  border-color: var(--bps-border);
}
.bps-form .bps-btn--secondary:hover {
  background-color: var(--bps-bg);
  border-color: var(--bps-accent);
}
.bps-form .bps-btn--outline {
  background-color: transparent;
  color: var(--bps-accent);
  border-color: var(--bps-accent);
}
.bps-form .bps-btn--outline:hover {
  background-color: var(--bps-accent);
  color: var(--bps-accent-text);
}
.bps-form .bps-btn--danger {
  background-color: var(--bps-danger);
}
.bps-form .bps-btn--danger:hover {
  background-color: #bd2130;
}
.bps-form .bps-btn--success {
  background-color: var(--bps-success);
}
.bps-form .bps-btn--success:hover {
  background-color: #1e7e34;
}
.bps-form .bps-btn--warning {
  background-color: var(--bps-warning);
  color: #212529;
}
.bps-form .bps-btn--warning:hover {
  background-color: #d39e00;
}
.bps-form .bps-btn--sm {
  padding: 0.25rem 0.75rem;
  min-height: 36px;
  font-size: 0.875rem;
}
.bps-form .bps-btn--lg {
  padding: 0.75rem 2rem;
  min-height: 54px;
  font-size: 1.125rem;
}
.bps-form .bps-btn--icon {
  padding: 0.25rem;
  min-width: 36px;
  min-height: 36px;
}
.bps-form .bps-btn--block {
  width: 100%;
}
.bps-form .bps-btn-group {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  flex: 0 0 100%;
  align-self: flex-start;
}
.bps-form .bps-btn-group--end {
  justify-content: flex-end;
}
.bps-form .bps-btn-group--center {
  justify-content: center;
}
.bps-form .bps-btn-group--between {
  justify-content: space-between;
}
.bps-form .bps-field--valid .bps-input, .bps-form .is-valid .bps-input, .bps-form .bps-field--valid .moaform-select2, .bps-form .is-valid .moaform-select2, .bps-form .bps-field--valid .bps-select, .bps-form .is-valid .bps-select, .bps-form .bps-field--valid .bps-textarea, .bps-form .is-valid .bps-textarea {
  border-color: var(--bps-success);
}
.bps-form .bps-field--valid .bps-input:focus, .bps-form .is-valid .bps-input:focus, .bps-form .bps-field--valid .moaform-select2:focus, .bps-form .is-valid .moaform-select2:focus, .bps-form .bps-field--valid .bps-select:focus, .bps-form .is-valid .bps-select:focus, .bps-form .bps-field--valid .bps-textarea:focus, .bps-form .is-valid .bps-textarea:focus {
  box-shadow: 0 0 0 3px rgba(40, 167, 69, 0.15);
}
.bps-form .bps-field--valid .bps-feedback, .bps-form .is-valid .bps-feedback {
  display: block;
  color: var(--bps-success);
}
.bps-form .bps-field--invalid .bps-input, .bps-form .is-invalid .bps-input, .bps-form .bps-field--invalid .moaform-select2, .bps-form .is-invalid .moaform-select2, .bps-form .bps-field--invalid .bps-select, .bps-form .is-invalid .bps-select, .bps-form .bps-field--invalid .bps-textarea, .bps-form .is-invalid .bps-textarea {
  border-color: var(--bps-danger);
}
.bps-form .bps-field--invalid .bps-input:focus, .bps-form .is-invalid .bps-input:focus, .bps-form .bps-field--invalid .moaform-select2:focus, .bps-form .is-invalid .moaform-select2:focus, .bps-form .bps-field--invalid .bps-select:focus, .bps-form .is-invalid .bps-select:focus, .bps-form .bps-field--invalid .bps-textarea:focus, .bps-form .is-invalid .bps-textarea:focus {
  box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.15);
}
.bps-form .bps-field--invalid .bps-feedback, .bps-form .is-invalid .bps-feedback {
  display: block;
  color: var(--bps-danger);
}
.bps-form .bps-feedback {
  display: none;
  font-size: 0.8125rem;
  margin-top: 0.25rem;
}
.bps-form .bps-help, .bps-form .form-text, .bps-form .help-text {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.8125rem;
  color: var(--bps-text-muted);
}
.bps-form .bps-section {
  background-color: var(--bps-bg);
  border-radius: 0.75rem;
  padding: 1.25rem;
  margin-bottom: 1.25rem;
}
.bps-form .bps-section:last-child {
  margin-bottom: 0;
}
.bps-form .bps-section--bordered {
  border: 1px solid var(--bps-border);
}
.bps-form .bps-legend {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--bps-text);
  margin-bottom: 0.75rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--bps-border);
}
.bps-form .bps-row {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -0.5rem;
}
.bps-form .bps-row > * {
  padding: 0 0.5rem;
  flex: 1;
  min-width: 0;
}
.bps-form .bps-row--2 > * {
  flex: 0 0 50%;
  max-width: 50%;
}
.bps-form .bps-row--3 > * {
  flex: 0 0 33.333%;
  max-width: 33.333%;
}
.bps-form .bps-row--4 > * {
  flex: 0 0 25%;
  max-width: 25%;
}
.bps-form .bps-row > .bps-field--col-3 {
  flex: 0 0 25%;
  max-width: 25%;
}
.bps-form .bps-row > .bps-field--col-4 {
  flex: 0 0 33.333%;
  max-width: 33.333%;
}
.bps-form .bps-row > .bps-field--col-6 {
  flex: 0 0 50%;
  max-width: 50%;
}
.bps-form .bps-row > .bps-field--col-8 {
  flex: 0 0 66.666%;
  max-width: 66.666%;
}
.bps-form .bps-row > .bps-field--col-9 {
  flex: 0 0 75%;
  max-width: 75%;
}
.bps-form .bps-row > .bps-field--col-12 {
  flex: 0 0 100%;
  max-width: 100%;
}
.bps-form .select2-container--default {
  width: 100% !important;
}
.bps-form .select2-container--default .select2-selection--multiple {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  align-content: flex-start;
  gap: 0.25rem;
  min-height: var(--bps-input-height);
  padding: 0.5rem;
  padding-right: 70px;
  background-color: var(--bps-bg);
  border: var(--bps-input-border-width) solid var(--bps-border);
  border-radius: var(--bps-input-border-radius);
  position: relative;
  transition: border-color var(--bps-transition), box-shadow var(--bps-transition);
}
.bps-form .select2-container--default .select2-selection--multiple:hover {
  border-color: var(--bps-accent);
}
.bps-form .select2-container--default .select2-selection--single {
  display: flex;
  align-items: center;
  height: var(--bps-input-height);
  padding: 0.5rem 0.75rem;
  padding-right: 36px;
  background-color: var(--bps-bg);
  border: var(--bps-input-border-width) solid var(--bps-border);
  border-radius: var(--bps-input-border-radius);
  transition: border-color var(--bps-transition);
}
.bps-form .select2-container--default .select2-selection--single:hover {
  border-color: var(--bps-accent);
}
.bps-form .select2-container--default .select2-selection--single .select2-selection__rendered {
  display: block;
  padding: 0;
  color: var(--bps-text);
  font-size: var(--bps-input-font-size);
  line-height: 1.5;
}
.bps-form .select2-container--default .select2-selection--single .select2-selection__placeholder {
  color: var(--bps-text-muted);
  opacity: 0.6;
}
.bps-form .select2-container--default .select2-selection--single .select2-selection__arrow {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
}
.bps-form .select2-container--default .select2-selection--single .select2-selection__arrow b {
  border-color: var(--bps-text-muted) transparent transparent transparent;
  border-width: 6px 5px 0 5px;
}
.bps-form .select2-container--default.select2-container--focus .select2-selection--multiple, .bps-form .select2-container--default.select2-container--focus .select2-selection--single, .bps-form .select2-container--default.select2-container--open .select2-selection--multiple, .bps-form .select2-container--default.select2-container--open .select2-selection--single {
  border-color: var(--bps-accent);
  box-shadow: 0 0 0 var(--bps-form-focus-ring-width, 3px) var(--bps-form-focus-ring, rgba(44, 62, 80, 0.1));
  outline: none;
}
.bps-form .select2-container--default .select2-selection__rendered {
  display: contents;
  padding: 0 !important;
  margin: 0;
  list-style: none;
}
.bps-form .select2-container--default .select2-selection__choice {
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
  background-color: var(--bps-accent) !important;
  color: var(--bps-accent-text) !important;
  padding: 6px 12px;
  border-radius: 0.25rem;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.3;
  white-space: nowrap;
  cursor: default;
  transition: background-color var(--bps-transition), transform 0.15s ease;
  border: none !important;
  margin: 2px !important;
}
.bps-form .select2-container--default .select2-selection__choice:hover {
  background-color: var(--bps-accent-hover) !important;
  transform: translateY(-1px);
}
.bps-form .select2-container--default .select2-selection__choice__display {
  display: inline !important;
  color: inherit !important;
  order: 2;
}
.bps-form .select2-container--default .select2-selection__choice__remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  order: 1;
  width: 18px;
  height: 18px;
  margin: 0 !important;
  padding: 0;
  background-color: rgba(255, 255, 255, 0.2);
  color: var(--bps-accent-text) !important;
  border: none !important;
  border-radius: 50%;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition: background-color 0.15s ease;
}
.bps-form .select2-container--default .select2-selection__choice__remove:hover {
  background-color: rgba(255, 255, 255, 0.4);
}
.bps-form .select2-container--default .select2-search--inline {
  flex: 1 1 120px;
  min-width: 120px;
  margin: 0 !important;
}
.bps-form .select2-container--default .select2-search--inline .select2-search__field {
  width: 100% !important;
  margin: 0 !important;
  padding: 6px 0;
  background: transparent;
  border: none !important;
  outline: none;
  box-shadow: none !important;
  font-size: var(--bps-input-font-size);
  color: var(--bps-text);
}
.bps-form .select2-container--default .select2-search--inline .select2-search__field::placeholder {
  color: var(--bps-text-muted);
  opacity: 0.5;
}
.bps-form .select2-container--default .select2-selection__counter {
  position: absolute !important;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background-color: var(--bps-bg-alt);
  color: var(--bps-text);
  padding: 4px 10px;
  border-radius: 0.25rem;
  font-size: 0.75rem;
  font-weight: 600;
  white-space: nowrap;
  pointer-events: none;
  z-index: 2;
}
.bps-form .select2-container--default .select2-selection--multiple .select2-selection__clear {
  display: none !important;
}
.bps-form ~ .select2-container--open .select2-dropdown, .bps-form .select2-dropdown {
  background-color: var(--bps-bg);
  border: var(--bps-input-border-width) solid var(--bps-accent);
  border-radius: var(--bps-input-border-radius);
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  margin-top: 4px;
  overflow: hidden;
  z-index: 10060;
}
.bps-form .select2-container--default .select2-search--dropdown {
  padding: 0.5rem;
  background-color: var(--bps-bg-alt);
  border-bottom: 1px solid var(--bps-border);
}
.bps-form .select2-container--default .select2-search--dropdown .select2-search__field {
  width: 100%;
  padding: 0.5rem 0.75rem;
  background-color: var(--bps-bg);
  border: var(--bps-input-border-width) solid var(--bps-border);
  border-radius: 0.25rem;
  font-size: var(--bps-input-font-size);
  color: var(--bps-text);
  outline: none;
  transition: border-color var(--bps-transition);
}
.bps-form .select2-container--default .select2-search--dropdown .select2-search__field:focus {
  border-color: var(--bps-accent);
}
.bps-form .select2-container--default .select2-results__options {
  max-height: 280px;
  overflow-y: auto;
  padding: 0.25rem 0;
}
.bps-form .select2-container--default .select2-results__options::-webkit-scrollbar {
  width: 8px;
}
.bps-form .select2-container--default .select2-results__options::-webkit-scrollbar-track {
  background: var(--bps-bg-alt);
}
.bps-form .select2-container--default .select2-results__options::-webkit-scrollbar-thumb {
  background: var(--bps-accent);
  border-radius: 4px;
}
.bps-form .select2-container--default .select2-results__option {
  padding: 0.5rem 0.75rem;
  font-size: var(--bps-input-font-size);
  color: var(--bps-text);
  cursor: pointer;
  transition: background-color 0.15s ease;
  position: relative;
}
.bps-form .select2-container--default .select2-results__option--highlighted[aria-selected] {
  background-color: var(--bps-accent);
  color: var(--bps-accent-text);
}
.bps-form .select2-container--default .select2-results__option[aria-selected="true"] {
  background-color: var(--bps-bg-alt);
}
.bps-form .select2-container--default .select2-results__option[aria-selected="true"]::after {
  content: "✓";
  position: absolute;
  right: 0.75rem;
  color: var(--bps-accent);
  font-weight: 600;
}
.bps-form .select2-container--default .select2-results__option--highlighted[aria-selected="true"]::after {
  color: var(--bps-accent-text);
}
.bps-form .select2-container--default .select2-results__option[aria-disabled="true"] {
  opacity: 0.4;
  cursor: not-allowed;
}
.bps-form .select2-container--default .select2-results__message {
  padding: 0.75rem;
  text-align: center;
  color: var(--bps-text-muted);
  font-size: var(--bps-input-font-size);
}
.bps-form .select2-container--disabled .select2-selection--multiple, .bps-form .select2-container--disabled .select2-selection--single {
  background-color: var(--bps-bg-alt);
  cursor: not-allowed;
  opacity: 0.6;
}
.bps-form .select2-container--default.select2-max-reached .select2-search--inline .select2-search__field {
  display: none;
}
.bps-form .select2-container--default.select2-max-reached .select2-selection__counter {
  background-color: var(--bps-accent);
  color: var(--bps-accent-text);
}
.bps-form .bps-repeater__controls, .bps-form .repeater-controls {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}
.bps-form .bps-repeater__controls button, .bps-form .repeater-controls button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 40px;
  padding: 0 0.75rem;
  font-family: inherit;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1;
  text-transform: none;
  color: var(--bps-text);
  background: transparent;
  border: 1px solid var(--bps-border);
  border-radius: var(--bps-input-border-radius);
  box-shadow: none;
  cursor: pointer;
}
.bps-form .bps-repeater__controls button:hover, .bps-form .repeater-controls button:hover {
  border-color: var(--bps-text-muted);
  background: var(--bps-bg-alt);
}
.bps-form .bps-repeater__controls button:focus-visible, .bps-form .repeater-controls button:focus-visible {
  outline: 2px solid var(--bps-accent);
  outline-offset: 2px;
}
.bps-form .bps-repeater__controls button:disabled, .bps-form .repeater-controls button:disabled, .bps-form .bps-repeater__controls button.disabled, .bps-form .repeater-controls button.disabled {
  opacity: 0.45;
  cursor: default;
}
.bps-form .bps-repeater .repeater-count .badge, .bps-form .moa-repeater-wrapper .repeater-count .badge {
  all: unset;
  font-family: inherit;
  font-size: 0.8125rem;
  letter-spacing: 0;
  text-transform: none;
  color: var(--bps-text-muted);
  background-color: transparent !important;
}
.bps-form .bps-repeater__items, .bps-form .repeater-items-container {
  min-height: 50px;
}
.bps-form .bps-repeater__empty, .bps-form .empty-state {
  text-align: center;
  padding: 2rem 0.75rem;
  color: var(--bps-text-muted);
  border: 1px dashed var(--bps-border);
  border-radius: var(--bps-input-border-radius);
}
.bps-form .bps-repeater__empty i, .bps-form .empty-state i, .bps-form .bps-repeater__empty svg, .bps-form .empty-state svg {
  font-size: 2.5rem;
  opacity: 0.5;
  margin-bottom: 0.5rem;
}
.bps-form .bps-repeater-item, .bps-form .repeater-item {
  border: 1px solid var(--bps-border);
  border-radius: var(--bps-input-border-radius);
  margin-bottom: 0.75rem;
  background-color: transparent;
  transition: box-shadow 0.15s ease;
}
.bps-form .bps-repeater-item:last-child, .bps-form .repeater-item:last-child {
  margin-bottom: 0;
}
.bps-form .bps-repeater-item:hover, .bps-form .repeater-item:hover {
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
}
.bps-form .bps-repeater-item--nested-1 {
  margin-left: 1.25rem;
}
.bps-form .bps-repeater-item--nested-2 {
  margin-left: 2rem;
}
.bps-form .bps-repeater-item--nested-3 {
  margin-left: 2.5rem;
}
.bps-form .bps-repeater-item__header, .bps-form .repeater-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  background-color: var(--bps-bg-alt);
  color: var(--bps-text);
  border-bottom: 1px solid var(--bps-border);
  border-radius: var(--bps-input-border-radius) var(--bps-input-border-radius) 0 0;
}
.bps-form .bps-repeater-item__drag, .bps-form .drag-handle {
  cursor: grab;
  color: var(--bps-text-muted);
  padding: 0.25rem;
}
.bps-form .bps-repeater-item__drag:active, .bps-form .drag-handle:active {
  cursor: grabbing;
}
.bps-form .bps-repeater-item__arrows {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.bps-form .bps-repeater-item__arrows button {
  padding: 2px;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--bps-text-muted);
  line-height: 1;
}
.bps-form .bps-repeater-item__arrows button:hover {
  color: var(--bps-accent);
}
.bps-form .bps-repeater-item__title, .bps-form .repeater-title {
  flex: 1;
  font-weight: 500;
  font-size: 0.9375rem;
  color: var(--bps-text);
}
.bps-form .bps-repeater-item__actions, .bps-form .repeater-actions {
  display: flex;
  gap: 0.25rem;
}
.bps-form .bps-repeater-item__actions button, .bps-form .repeater-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  font-size: 0.875rem;
  line-height: 1;
  color: var(--bps-text-muted);
  background: transparent;
  border: 1px solid transparent;
  border-radius: var(--bps-input-border-radius);
  box-shadow: none;
  cursor: pointer;
}
.bps-form .bps-repeater-item__actions button:hover, .bps-form .repeater-actions button:hover {
  color: var(--bps-text);
  border-color: var(--bps-border);
  background: var(--bps-bg-alt);
}
.bps-form .bps-repeater-item__actions button:focus-visible, .bps-form .repeater-actions button:focus-visible {
  outline: 2px solid var(--bps-accent);
  outline-offset: 1px;
}
.bps-form .bps-repeater-item__actions .remove-item:hover, .bps-form .repeater-actions .remove-item:hover {
  color: var(--bps-danger);
  border-color: var(--bps-danger);
  background: transparent;
}
.bps-form .bps-repeater-item__body, .bps-form .repeater-body {
  padding: 0.75rem;
  background: transparent;
}
.bps-form .bps-repeater-item__body.is-collapsed, .bps-form .is-collapsed.repeater-body {
  display: none;
}
.bps-form .bps-repeater-item__body .field-group, .bps-form .repeater-body .field-group {
  margin-bottom: 0.75rem;
}
.bps-form .bps-repeater-item__body .field-group:last-child, .bps-form .repeater-body .field-group:last-child {
  margin-bottom: 0;
}
.bps-form .bps-repeater-item__body .field-group > label, .bps-form .repeater-body .field-group > label {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--bps-text-muted);
}
.bps-form .bps-repeater-item__body .field-name-display, .bps-form .repeater-body .field-name-display {
  font-size: 0.6875rem;
  opacity: 0.55;
}
.bps-form .bps-gallery__grid, .bps-form .grid-container {
  display: grid;
  gap: 0.75rem;
  justify-content: center;
}
.bps-form .bps-gallery__drop, .bps-form .drop-zone {
  position: relative;
  background-color: var(--bps-bg-alt);
  border: 2px dashed var(--bps-border);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all var(--bps-transition);
  overflow: hidden;
  border-radius: var(--bps-input-border-radius);
}
.bps-form .bps-gallery__drop:hover, .bps-form .drop-zone:hover {
  border-color: var(--bps-accent);
  background-color: rgba(44, 62, 80, 0.05);
}
.bps-form .bps-gallery__drop--has-image {
  border-style: solid;
}
.bps-form .bps-gallery__drop--has-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.bps-form .bps-gallery__drop__placeholder {
  font-size: 3rem;
  color: var(--bps-text-muted);
  opacity: 0.5;
}
.bps-form .bps-gallery__actions {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  display: flex;
  gap: 0.25rem;
  opacity: 0;
  transition: opacity var(--bps-transition);
}
.bps-gallery__drop:hover .bps-form .bps-gallery__actions, .bps-form .drop-zone:hover .bps-form .bps-gallery__actions {
  opacity: 1;
}
.bps-form .bps-gallery__action-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  background-color: rgba(255, 255, 255, 0.9);
  border: none;
  border-radius: var(--bps-input-border-radius);
  cursor: pointer;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
  transition: all 0.15s ease;
}
.bps-form .bps-gallery__action-btn:hover {
  transform: scale(1.1);
}
.bps-form .bps-gallery__action-btn--edit {
  color: var(--bps-accent);
}
.bps-form .bps-gallery__action-btn--edit:hover {
  background-color: var(--bps-accent);
  color: #fff;
}
.bps-form .bps-gallery__action-btn--remove {
  color: var(--bps-danger);
}
.bps-form .bps-gallery__action-btn--remove:hover {
  background-color: var(--bps-danger);
  color: #fff;
}
.bps-form .bps-modal__content {
  background-color: var(--bps-bg);
  border-radius: 0.75rem;
  overflow: hidden;
}
.bps-form .bps-modal__header {
  border-bottom: 1px solid var(--bps-border);
  padding: 0.75rem 1.25rem;
}
.bps-form .bps-modal__body {
  padding: 1.25rem;
}
.bps-form .bps-cropper__container {
  max-height: 60vh;
  overflow: hidden;
  border-radius: var(--bps-input-border-radius);
  background-color: #000;
}
.bps-form .bps-cropper__controls {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1.25rem;
  justify-content: center;
}
.bps-form--dark {
  --bps-bg: #17140F;
  --bps-bg-alt: #201D17;
  --bps-text: #EDE9E0;
  --bps-placeholder: #B8B4AC;
  --bps-label: var(--bps-text);
  --bps-border: #35322C;
  --bps-focus: var(--bps-accent);
  --bps-text-muted: #B8B4AC;
  --bps-accent: #E0B15C;
  --bps-accent-text: #17140F;
}
.bps-form--compact {
  --bps-input-height: 38px;
  --bps-input-padding-y: 0.25rem;
  --bps-field-gap: 0.5rem;
}
.bps-form--compact .bps-label {
  font-size: 0.8125rem;
}
.bps-form--spacious {
  --bps-input-height: 54px;
  --bps-input-padding-y: 0.75rem;
  --bps-field-gap: 1.25rem;
}
.bps-form--spacious .bps-label {
  font-size: 1rem;
}
.bps-form--stacked .bps-row {
  flex-direction: column;
  flex-wrap: nowrap;
}
.bps-form--stacked .bps-row > *, .bps-form--stacked .bps-row > .bps-field--col-3, .bps-form--stacked .bps-row > .bps-field--col-4, .bps-form--stacked .bps-row > .bps-field--col-6, .bps-form--stacked .bps-row > .bps-field--col-8, .bps-form--stacked .bps-row > .bps-field--col-9, .bps-form--stacked .bps-row > .bps-field--col-12 {
  flex: 0 0 auto;
  max-width: 100%;
  width: 100%;
}
.bps-form--stacked .bps-btn-group {
  width: 100%;
}
.bps-form--stacked .bps-btn {
  width: 100%;
}
@media (max-width: 768px) {
  .bps-form .bps-section {
    padding: 0.75rem;
  }
  .bps-form .bps-row {
    margin: 0;
  }
  .bps-form .bps-row > *, .bps-form .bps-row > .bps-field--col-3, .bps-form .bps-row > .bps-field--col-4, .bps-form .bps-row > .bps-field--col-6, .bps-form .bps-row > .bps-field--col-8, .bps-form .bps-row > .bps-field--col-9, .bps-form .bps-row > .bps-field--col-12 {
    padding: 0;
    flex: 0 0 100%;
    max-width: 100%;
    margin-bottom: var(--bps-field-gap);
  }
  .bps-form .bps-btn--block-mobile {
    width: 100%;
  }
  .bps-form .bps-field--horizontal {
    flex-direction: column;
    align-items: stretch;
  }
  .bps-form .bps-field--horizontal .bps-label {
    min-width: auto;
  }
  .bps-form .bps-gallery__grid, .bps-form .grid-container {
    grid-template-columns: 1fr;
  }
  .bps-form .bps-gallery__grid .bps-gallery__drop, .bps-form .grid-container .bps-gallery__drop, .bps-form .bps-gallery__grid .drop-zone, .bps-form .grid-container .drop-zone {
    width: 100%;
    max-width: 300px;
    height: auto;
    aspect-ratio: 1;
    margin: 0 auto;
  }
  .bps-form .bps-repeater-item--nested-1, .bps-form .bps-repeater-item--nested-2, .bps-form .bps-repeater-item--nested-3 {
    margin-left: 0.5rem;
  }
}
.bps-form:not(.bps-override-off) .bps-input, .bps-form:not(.bps-override-off) .bps-form .moaform-select2, .bps-form .bps-form:not(.bps-override-off) .moaform-select2, .bps-form:not(.bps-override-off) .bps-select, .bps-form:not(.bps-override-off) .bps-textarea {
  width: 100% !important;
  max-width: 100% !important;
}
.bps-form:not(.bps-override-off) .bps-btn {
  text-transform: var(--bps-form-btn-text-transform, none) !important;
  letter-spacing: var(--bps-form-btn-letter-spacing, normal) !important;
}
.bps-form:not(.bps-override-off) .select2-container {
  width: 100% !important;
}
.bps-form:not(.bps-override-off) .bps-check__input {
  appearance: none !important;
  -webkit-appearance: none !important;
}
.bps-form:not(.bps-override-off) .bps-input:focus, .bps-form:not(.bps-override-off) .bps-form .moaform-select2:focus, .bps-form .bps-form:not(.bps-override-off) .moaform-select2:focus, .bps-form:not(.bps-override-off) .bps-select:focus, .bps-form:not(.bps-override-off) .bps-textarea:focus {
  outline: none !important;
}
@keyframes bps-select2-slide-down {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes bps-tag-fade-in {
  from {
    opacity: 0;
    transform: scale(0.9);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
.bps-form .select2-dropdown {
  animation: bps-select2-slide-down 0.2s ease-out;
}
.bps-form .select2-selection__choice {
  animation: bps-tag-fade-in 0.15s ease-out;
}
.bps-form .bps-row > .moa-repeater-wrapper {
  flex: 0 0 100%;
}
.bps-form .radio-group, .bps-form .checkbox-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.bps-form .radio-group.radio-horizontal, .bps-form .radio-group.checkbox-horizontal, .bps-form .checkbox-group.radio-horizontal, .bps-form .checkbox-group.checkbox-horizontal {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.bps-form .moaform-radio-option, .bps-form .moaform-checkbox-option {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
}
.bps-form .radio-label, .bps-form .checkbox-label {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  cursor: pointer;
  font-size: 0.9375rem;
  color: var(--bps-text);
  user-select: none;
}
.bps-form .radio-label input[type="radio"], .bps-form .radio-label input[type="checkbox"], .bps-form .checkbox-label input[type="radio"], .bps-form .checkbox-label input[type="checkbox"] {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin-top: 2px;
  cursor: pointer;
  accent-color: var(--bps-form-check-accent, var(--bps-accent));
}
.bps-form .radio-text, .bps-form .checkbox-text {
  line-height: 1.4;
}
.bps-form select {
  height: auto;
}
.moa-form-light, .moa-form-light .bps-form, .bps-form.moa-form-light, .moa-form-light .wpcf7-form {
  --bps-bg:           #F1E9E4;
  --bps-bg-alt:       #F1E9E4;
  --bps-form-text:    #1A1712;
  --bps-text:         #1A1712;
  --bps-text-muted:   #1A1712;
  --bps-placeholder:  #1A1712;
  --bps-label:        inherit;
  --bps-border:       #D3CCC7;
  --bps-caret-img:    url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2314171a' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
  --bps-tick-img:     url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e");
  --cf7-field:        #F1E9E4;
  --cf7-ink:          #1A1712;
  --cf7-border:       #D3CCC7;
}
.moa-form-dark, .moa-form-dark .bps-form, .bps-form.moa-form-dark, .moa-form-dark .wpcf7-form {
  --bps-bg:           #17140F;
  --bps-bg-alt:       #201D17;
  --bps-form-text:    #EDE9E0;
  --bps-text:         #EDE9E0;
  --bps-text-muted:   #B8B4AC;
  --bps-placeholder:  #B8B4AC;
  --bps-label:        #EDE9E0;
  --bps-border:       #35322C;
  --bps-caret-img:    url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23e6e9ec' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
  --bps-tick-img:     url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%230b0d10' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e");
  --cf7-field:        #17140F;
  --cf7-ink:          #EDE9E0;
  --cf7-border:       #35322C;
}
.moa-form-ghost, .moa-form-ghost .bps-form, .bps-form.moa-form-ghost, .moa-form-ghost .wpcf7-form {
  --bps-bg:           transparent;
  --bps-bg-alt:       transparent;
  --bps-form-text:    currentColor;
  --bps-text:         currentColor;
  --bps-label:        currentColor;
  --bps-placeholder:  color-mix(in srgb, currentColor 55%, transparent);
  --bps-border:       color-mix(in srgb, currentColor 38%, transparent);
  --cf7-field:        transparent;
  --cf7-ink:          currentColor;
  --cf7-border:       color-mix(in srgb, currentColor 38%, transparent);
}
.moa-form-filled, .moa-form-filled .bps-form, .bps-form.moa-form-filled, .moa-form-filled .wpcf7-form {
  --bps-bg:           var(--bg2, #DED6D1);
  --bps-border:       transparent;
  --cf7-field:        var(--bg2, #DED6D1);
  --cf7-border:       transparent;
  --cf7-ink:          currentColor;
}
.moa-form-underline, .moa-form-underline .bps-form, .bps-form.moa-form-underline, .moa-form-underline .wpcf7-form {
  --bps-bg:                 transparent;
  --bps-border:             color-mix(in srgb, currentColor 38%, transparent);
  --bps-input-border-width: 0 0 2px;
  --bps-input-border-radius: 0;
  --cf7-field:              transparent;
  --cf7-ink:                currentColor;
}
.moa-form-underline .bps-input, .moa-form-underline .bps-form .moaform-select2, .bps-form .moa-form-underline .moaform-select2, .moa-form-underline .bps-select, .moa-form-underline .bps-textarea, .moa-form-underline .wpcf7-form-control:not([type="submit"]) {
  padding-left: 0;
  padding-right: 0;
}
body[class] .moa-form-light .bps-input, body[class] .moa-form-light .bps-form .moaform-select2, .bps-form body[class] .moa-form-light .moaform-select2, body[class] .moa-form-light .bps-select, body[class] .moa-form-light .bps-textarea, body[class] .moa-form-light :is(input, textarea, select).wpcf7-form-control:not([type="submit"], [type="checkbox"], [type="radio"]) {
  background-color: var(--bps-bg);
  color: var(--bps-text);
  border-color: var(--bps-border);
}
body[class] .moa-form-dark .bps-input, body[class] .moa-form-dark .bps-form .moaform-select2, .bps-form body[class] .moa-form-dark .moaform-select2, body[class] .moa-form-dark .bps-select, body[class] .moa-form-dark .bps-textarea, body[class] .moa-form-dark :is(input, textarea, select).wpcf7-form-control:not([type="submit"], [type="checkbox"], [type="radio"]) {
  background-color: var(--bps-bg);
  color: var(--bps-text);
  border-color: var(--bps-border);
}
body[class] .moa-form-ghost .bps-input, body[class] .moa-form-ghost .bps-form .moaform-select2, .bps-form body[class] .moa-form-ghost .moaform-select2, body[class] .moa-form-ghost .bps-select, body[class] .moa-form-ghost .bps-textarea, body[class] .moa-form-ghost :is(input, textarea, select).wpcf7-form-control:not([type="submit"], [type="checkbox"], [type="radio"]) {
  background-color: transparent;
  color: currentColor;
  border-color: var(--bps-border);
}
body[class] .moa-form-filled .bps-input, body[class] .moa-form-filled .bps-form .moaform-select2, .bps-form body[class] .moa-form-filled .moaform-select2, body[class] .moa-form-filled .bps-select, body[class] .moa-form-filled .bps-textarea, body[class] .moa-form-filled :is(input, textarea, select).wpcf7-form-control:not([type="submit"], [type="checkbox"], [type="radio"]) {
  background-color: var(--bps-bg);
  color: var(--bps-text);
  border-color: transparent;
}
body[class] .moa-form-underline .bps-input, body[class] .moa-form-underline .bps-form .moaform-select2, .bps-form body[class] .moa-form-underline .moaform-select2, body[class] .moa-form-underline .bps-select, body[class] .moa-form-underline .bps-textarea, body[class] .moa-form-underline :is(input, textarea, select).wpcf7-form-control:not([type="submit"], [type="checkbox"], [type="radio"]) {
  background-color: transparent;
  color: var(--bps-text);
  border-color: var(--bps-border);
}
.entry-content .bps-loop-filter a.bps-btn {
  text-decoration: none;
}
.bps-form .bps-loop-filter__actions {
  margin-top: var(--bps-field-gap);
}
.bps-form .bps-loop-filter__count {
  margin-top: 0.5rem;
}
.bps-form.bps-login-helper {
  margin-bottom: calc(var(--bps-field-gap) * 2);
}
.bps-form.bps-login-helper .bps-login-helper__lost {
  margin: 0;
}
:where(body.soft-rounded-skin) .bps-form {
  --bps-form-input-radius: 16px;
  --bps-form-input-border-width: 1px;
  --bps-form-input-border-color: rgba(0, 0, 0, 0.08);
  --bps-form-input-bg: rgba(0, 0, 0, 0.02);
  --bps-form-input-padding-x: 1.15rem;
  --bps-form-input-padding-y: 0.85rem;
  --bps-form-focus-ring: rgba(var(--accent-rgb, 44, 62, 80), 0.18);
  --bps-form-focus-ring-width: 4px;
  --bps-form-label-weight: 600;
  --bps-form-field-gap: 1.35rem;
  --bps-form-submit-radius: 50px;
}
:where(body.warm-organic-skin) .bps-form {
  --bps-form-input-radius: 0;
  --bps-form-input-border-width: 0;
  --bps-form-input-border-color: rgba(0, 0, 0, 0.25);
  --bps-form-input-bg: transparent;
  --bps-form-input-padding-x: 0;
  --bps-form-input-padding-y: 0.7rem;
  --bps-form-focus-ring: transparent;
  --bps-form-focus-ring-width: 0;
  --bps-form-label-weight: 600;
  --bps-form-label-size: 0.875rem;
  --bps-form-field-gap: 1.6rem;
  --bps-form-submit-radius: 8px;
  --bps-form-focus-border-width: 0 0 2px;
  --bps-form-focus-shadow: 0 3px 0 -1px rgba(var(--accent-rgb, 44, 62, 80), 0.35);
}
:where(body.warm-organic-skin) .bps-form .bps-input, :where(body.warm-organic-skin) .bps-form .bps-form .moaform-select2, .bps-form :where(body.warm-organic-skin) .bps-form .moaform-select2, :where(body.warm-organic-skin) .bps-form .bps-select, :where(body.warm-organic-skin) .bps-form .bps-textarea {
  border-bottom: 1px solid var(--bps-form-input-border-color);
}
:where(body.warm-organic-skin) .bps-form .bps-input:focus, :where(body.warm-organic-skin) .bps-form .bps-form .moaform-select2:focus, .bps-form :where(body.warm-organic-skin) .bps-form .moaform-select2:focus, :where(body.warm-organic-skin) .bps-form .bps-select:focus, :where(body.warm-organic-skin) .bps-form .bps-textarea:focus {
  border-bottom-color: var(--bps-focus);
}
:where(body.neubrutalism-skin) .bps-form {
  --bps-form-input-radius: 0;
  --bps-form-input-border-width: 3px;
  --bps-form-input-border-color: currentColor;
  --bps-form-input-padding-x: 1rem;
  --bps-form-input-padding-y: 0.8rem;
  --bps-form-focus-ring: var(--bps-accent);
  --bps-form-focus-ring-width: 0;
  --bps-form-label-weight: 700;
  --bps-form-field-gap: 1.25rem;
  --bps-form-submit-radius: 0;
  --bps-form-btn-text-transform: uppercase;
  --bps-form-btn-letter-spacing: 0.06em;
  --bps-form-focus-shadow: 4px 4px 0 0 var(--bps-accent);
}
:where(body.neubrutalism-skin) .bps-form .bps-input, :where(body.neubrutalism-skin) .bps-form .bps-form .moaform-select2, .bps-form :where(body.neubrutalism-skin) .bps-form .moaform-select2, :where(body.neubrutalism-skin) .bps-form .bps-select, :where(body.neubrutalism-skin) .bps-form .bps-textarea {
  box-shadow: 3px 3px 0 0 rgba(0, 0, 0, 0.85);
}
:where(body.neubrutalism-skin) .bps-form .bps-btn {
  box-shadow: 4px 4px 0 0 rgba(0, 0, 0, 0.85);
}
:where(body.tech-futuristic-skin) .bps-form {
  --bps-form-input-radius: 4px;
  --bps-form-input-border-width: 1px;
  --bps-form-input-border-color: rgba(var(--accent-rgb, 44, 62, 80), 0.45);
  --bps-form-input-bg: rgba(0, 0, 0, 0.04);
  --bps-form-input-padding-x: 1.1rem;
  --bps-form-input-padding-y: 0.8rem;
  --bps-form-focus-ring: rgba(var(--accent-rgb, 44, 62, 80), 0.35);
  --bps-form-focus-ring-width: 6px;
  --bps-form-label-weight: 600;
  --bps-form-label-size: 0.8125rem;
  --bps-form-field-gap: 1.3rem;
  --bps-form-submit-radius: 4px;
  --bps-form-btn-text-transform: uppercase;
  --bps-form-btn-letter-spacing: 0.12em;
}
.bps-form-skin-soft {
  --bps-form-input-radius: 16px;
  --bps-form-input-border-width: 1px;
  --bps-form-input-border-color: rgba(0, 0, 0, 0.08);
  --bps-form-input-bg: rgba(0, 0, 0, 0.02);
  --bps-form-input-padding-x: 1.15rem;
  --bps-form-input-padding-y: 0.85rem;
  --bps-form-focus-ring: rgba(var(--accent-rgb, 44, 62, 80), 0.18);
  --bps-form-focus-ring-width: 4px;
  --bps-form-label-weight: 600;
  --bps-form-field-gap: 1.35rem;
  --bps-form-submit-radius: 50px;
}
.bps-form-skin-organic {
  --bps-form-input-radius: 0;
  --bps-form-input-border-width: 0;
  --bps-form-input-border-color: rgba(0, 0, 0, 0.25);
  --bps-form-input-bg: transparent;
  --bps-form-input-padding-x: 0;
  --bps-form-input-padding-y: 0.7rem;
  --bps-form-focus-ring: transparent;
  --bps-form-focus-ring-width: 0;
  --bps-form-label-weight: 600;
  --bps-form-label-size: 0.875rem;
  --bps-form-field-gap: 1.6rem;
  --bps-form-submit-radius: 8px;
  --bps-form-focus-border-width: 0 0 2px;
  --bps-form-focus-shadow: 0 3px 0 -1px rgba(var(--accent-rgb, 44, 62, 80), 0.35);
}
.bps-form-skin-organic .bps-input, .bps-form-skin-organic .bps-form .moaform-select2, .bps-form .bps-form-skin-organic .moaform-select2, .bps-form-skin-organic .bps-select, .bps-form-skin-organic .bps-textarea {
  border-bottom: 1px solid var(--bps-form-input-border-color);
}
.bps-form-skin-organic .bps-input:focus, .bps-form-skin-organic .bps-form .moaform-select2:focus, .bps-form .bps-form-skin-organic .moaform-select2:focus, .bps-form-skin-organic .bps-select:focus, .bps-form-skin-organic .bps-textarea:focus {
  border-bottom-color: var(--bps-focus);
}
.bps-form-skin-brutal {
  --bps-form-input-radius: 0;
  --bps-form-input-border-width: 3px;
  --bps-form-input-border-color: currentColor;
  --bps-form-input-padding-x: 1rem;
  --bps-form-input-padding-y: 0.8rem;
  --bps-form-focus-ring: var(--bps-accent);
  --bps-form-focus-ring-width: 0;
  --bps-form-label-weight: 700;
  --bps-form-field-gap: 1.25rem;
  --bps-form-submit-radius: 0;
  --bps-form-btn-text-transform: uppercase;
  --bps-form-btn-letter-spacing: 0.06em;
  --bps-form-focus-shadow: 4px 4px 0 0 var(--bps-accent);
}
.bps-form-skin-brutal .bps-input, .bps-form-skin-brutal .bps-form .moaform-select2, .bps-form .bps-form-skin-brutal .moaform-select2, .bps-form-skin-brutal .bps-select, .bps-form-skin-brutal .bps-textarea {
  box-shadow: 3px 3px 0 0 rgba(0, 0, 0, 0.85);
}
.bps-form-skin-brutal .bps-btn {
  box-shadow: 4px 4px 0 0 rgba(0, 0, 0, 0.85);
}
.bps-form-skin-tech {
  --bps-form-input-radius: 4px;
  --bps-form-input-border-width: 1px;
  --bps-form-input-border-color: rgba(var(--accent-rgb, 44, 62, 80), 0.45);
  --bps-form-input-bg: rgba(0, 0, 0, 0.04);
  --bps-form-input-padding-x: 1.1rem;
  --bps-form-input-padding-y: 0.8rem;
  --bps-form-focus-ring: rgba(var(--accent-rgb, 44, 62, 80), 0.35);
  --bps-form-focus-ring-width: 6px;
  --bps-form-label-weight: 600;
  --bps-form-label-size: 0.8125rem;
  --bps-form-field-gap: 1.3rem;
  --bps-form-submit-radius: 4px;
  --bps-form-btn-text-transform: uppercase;
  --bps-form-btn-letter-spacing: 0.12em;
}
.wpcf7-form {
  --cf7-field:  #fff;
  --cf7-ink:    var(--light-text, #1a1a1a);
  --cf7-border: var(--light-border, #ccc);
  --cf7-accent: var(--accent, #0066cc);
  --cf7-error:  #e5484d;
}
body[class] .wpcf7-form :is(input, textarea, select).wpcf7-form-control:not([type="submit"], [type="checkbox"], [type="radio"]) {
  background-color: var(--cf7-field);
  color: var(--cf7-ink);
  border-color: var(--cf7-border);
}
.wpcf7-form ::placeholder {
  color: var(--cf7-ink, currentColor);
  opacity: 0.7;
}
.wpcf7-form label {
  color: var(--cf7-label, inherit);
}
.wpcf7-not-valid-tip {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.875em;
  font-weight: 500;
}
body[class] .wpcf7-form .wpcf7-not-valid-tip {
  color: var(--cf7-error, #e5484d);
  color: color-mix(in srgb, var(--cf7-error, #e5484d) 78%, currentColor);
}
.wpcf7-form .wpcf7-not-valid {
  border-color: var(--cf7-error, #e5484d);
}
.wpcf7-form .wpcf7-form-control:not([type="submit"]):focus, .wpcf7-form .wpcf7-form-control:not([type="submit"]):focus-visible {
  outline: 2px solid var(--cf7-accent);
  outline-offset: 2px;
  border-color: var(--cf7-accent);
}
.wpcf7-form input[type="checkbox"], .wpcf7-form input[type="radio"] {
  accent-color: var(--cf7-accent);
}
.bps-vtemplates .archive-header {
  border-bottom: 2px solid var(--e-border-color);
  margin-bottom: 2rem;
  padding-bottom: 1rem;
}
.bps-vtemplates .archive-title {
  color: var(--text-highlight);
  font-size: 2.5rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
}
.bps-vtemplates .archive-description {
  color: var(--text-color2);
  font-size: 1.125rem;
}
.bps-vtemplates .archive-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 2rem;
  flex-wrap: wrap;
  gap: 1rem;
}
.bps-vtemplates .archive-count {
  color: var(--text-color2);
  font-size: 0.875rem;
}
.bps-vtemplates .archive-filters {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.bps-vtemplates .filter-btn {
  padding: 0.5rem 1rem;
  border: 1px solid var(--e-border-color);
  background-color: var(--bg);
  color: var(--text-color);
  border-radius: 10px;
  cursor: pointer;
  transition: 0.15s ease-out;
}
.bps-vtemplates .filter-btn:hover, .bps-vtemplates .filter-btn.active {
  background-color: var(--accent);
  color: var(--accent-text);
  border-color: var(--accent);
}
.bps-vtemplates .archive-pagination {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.bps-vtemplates .pagination-btn {
  padding: 0.5rem 1rem;
  border: 1px solid var(--e-border-color);
  background-color: var(--bg);
  color: var(--text-color);
  border-radius: 10px;
  cursor: pointer;
  transition: 0.15s ease-out;
  text-decoration: none;
}
.bps-vtemplates .pagination-btn:hover, .bps-vtemplates .pagination-btn.active {
  background-color: var(--accent);
  color: var(--accent-text);
  border-color: var(--accent);
}
.bps-vtemplates .pagination-btn:disabled, .bps-vtemplates .pagination-btn[disabled] {
  opacity: 0.5;
  cursor: not-allowed;
}
.bps-vtemplates .bps-archive-grid .archive-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 2rem;
}
.bps-vtemplates .grid-card {
  background-color: var(--bg);
  border: 1px solid var(--e-border-color);
  border-radius: 0.5rem;
  overflow: hidden;
  transition: 0.3s ease-out;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.bps-vtemplates .grid-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  border-color: var(--accent);
}
.bps-vtemplates .grid-card-image {
  width: 100%;
  height: 220px;
  overflow: hidden;
  background-color: var(--bg2);
  position: relative;
}
.bps-vtemplates .grid-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: 0.3s ease-out;
}
.grid-card:hover .bps-vtemplates .grid-card-image img {
  transform: scale(1.05);
}
.bps-vtemplates .grid-card-body {
  padding: 1.5rem;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}
.bps-vtemplates .grid-card-category {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  background-color: var(--accent);
  color: var(--accent-text);
  border-radius: 0.25rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 0.5rem;
  align-self: flex-start;
}
.bps-vtemplates .grid-card-title {
  color: var(--text-highlight);
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
  line-height: 1.4;
}
.bps-vtemplates .grid-card-title a {
  color: inherit;
  text-decoration: none;
  transition: 0.15s ease-out;
}
.bps-vtemplates .grid-card-title a:hover {
  color: var(--accent);
}
.bps-vtemplates .grid-card-excerpt {
  color: var(--text-color2);
  font-size: 0.875rem;
  line-height: 1.6;
  margin-bottom: 1rem;
  flex-grow: 1;
}
.bps-vtemplates .grid-card-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 1rem;
  border-top: 1px solid var(--e-border-color);
  font-size: 0.875rem;
  color: var(--text-color3);
}
.bps-vtemplates .grid-card-author, .bps-vtemplates .grid-card-date {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}
.bps-vtemplates .grid-card-author i, .bps-vtemplates .grid-card-date i {
  color: var(--icon-color);
}
.bps-vtemplates .bps-archive-list .archive-list {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.bps-vtemplates .list-item {
  display: flex;
  gap: 1.5rem;
  padding: 1.5rem;
  background-color: var(--bg);
  border: 1px solid var(--e-border-color);
  border-radius: 0.5rem;
  transition: 0.3s ease-out;
}
.bps-vtemplates .list-item:hover {
  border-color: var(--accent);
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
}
.bps-vtemplates .list-item-image {
  flex-shrink: 0;
  width: 200px;
  height: 140px;
  border-radius: 10px;
  overflow: hidden;
  background-color: var(--bg2);
}
.bps-vtemplates .list-item-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: 0.3s ease-out;
}
.bps-vtemplates .list-item-image a:hover img {
  transform: scale(1.05);
}
.bps-vtemplates .list-item-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.bps-vtemplates .list-item-meta-top {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.5rem;
  font-size: 0.75rem;
}
.bps-vtemplates .list-item-category {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  background-color: var(--accent);
  color: var(--accent-text);
  border-radius: 0.25rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.bps-vtemplates .list-item-date {
  color: var(--text-color3);
}
.bps-vtemplates .list-item-title {
  color: var(--text-highlight);
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
  line-height: 1.4;
}
.bps-vtemplates .list-item-title a {
  color: inherit;
  text-decoration: none;
  transition: 0.15s ease-out;
}
.bps-vtemplates .list-item-title a:hover {
  color: var(--accent);
}
.bps-vtemplates .list-item-excerpt {
  color: var(--text-color2);
  font-size: 0.875rem;
  line-height: 1.6;
  margin-bottom: 1rem;
  flex-grow: 1;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bps-vtemplates .list-item-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid var(--e-border-color);
}
.bps-vtemplates .list-item-author {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: var(--text-color3);
}
.bps-vtemplates .list-item-author i {
  color: var(--icon-color);
}
.bps-vtemplates .bps-archive-minimal .archive-minimal {
  display: flex;
  flex-direction: column;
}
.bps-vtemplates .minimal-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 0;
  border-bottom: 1px solid var(--e-border-color);
  transition: 0.15s ease-out;
}
.bps-vtemplates .minimal-item:last-child {
  border-bottom: none;
}
.bps-vtemplates .minimal-item:hover {
  padding-left: 0.5rem;
  background-color: var(--bg2);
}
.bps-vtemplates .minimal-item-title {
  color: var(--text-color);
  font-size: 1rem;
  font-weight: 500;
  margin: 0;
  flex: 1;
}
.bps-vtemplates .minimal-item-title a {
  color: inherit;
  text-decoration: none;
  transition: 0.15s ease-out;
}
.bps-vtemplates .minimal-item-title a:hover {
  color: var(--accent);
}
.bps-vtemplates .minimal-item-meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  font-size: 0.875rem;
  color: var(--text-color3);
  flex-shrink: 0;
}
.bps-vtemplates .minimal-item-category {
  padding: 0.25rem 0.5rem;
  background-color: var(--accent);
  color: var(--accent-text);
  border-radius: 0.25rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
}
.bps-vtemplates .minimal-item-date, .bps-vtemplates .minimal-item-author {
  color: var(--text-color3);
}
.bps-vtemplates .bps-archive-cards .archive-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 2rem;
}
.bps-vtemplates .card-item {
  display: flex;
  flex-direction: column;
  background-color: var(--bg);
  border: 1px solid var(--e-border-color);
  border-radius: 0.75rem;
  overflow: hidden;
  transition: 0.3s ease-out;
  height: 100%;
}
.bps-vtemplates .card-item:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  border-color: var(--accent);
}
.bps-vtemplates .card-item:hover .card-item-image img {
  transform: scale(1.05);
}
.bps-vtemplates .card-item:hover .card-item-image-overlay {
  opacity: 1;
}
.bps-vtemplates .card-item-image {
  position: relative;
  width: 100%;
  aspect-ratio: 1.6;
  overflow: hidden;
  background-color: var(--bg2);
}
.bps-vtemplates .card-item-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: 0.5s ease-out;
}
.bps-vtemplates .card-item-image-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(to bottom, transparent 50%, rgba(0, 0, 0, 0.6) 100%);
  opacity: 0;
  transition: 0.3s ease-out;
  display: flex;
  align-items: flex-end;
  padding: 1rem;
}
.bps-vtemplates .card-badge {
  position: absolute;
  top: 1rem;
  left: 1rem;
  padding: 0.25rem 0.5rem;
  border-radius: 0.25rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  background-color: var(--accent);
  color: var(--accent-text);
}
.bps-vtemplates .card-badge.badge-new {
  background-color: #28a745;
}
.bps-vtemplates .card-badge.badge-sale {
  background-color: #dc3545;
}
.bps-vtemplates .card-item-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1.5rem;
}
.bps-vtemplates .card-item-category {
  display: inline-block;
  align-self: flex-start;
  padding: 0.25rem 0.5rem;
  background-color: var(--accent);
  color: var(--accent-text);
  border-radius: 0.25rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 0.75rem;
}
.bps-vtemplates .card-item-title {
  color: var(--text-highlight);
  font-size: 1.5rem;
  font-weight: 600;
  margin-bottom: 0.75rem;
  line-height: 1.3;
}
.bps-vtemplates .card-item-title a {
  color: inherit;
  text-decoration: none;
  transition: 0.15s ease-out;
}
.bps-vtemplates .card-item-title a:hover {
  color: var(--accent);
}
.bps-vtemplates .card-item-excerpt {
  color: var(--text-color2);
  font-size: 0.875rem;
  line-height: 1.6;
  margin-bottom: 1rem;
  flex-grow: 1;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bps-vtemplates .card-item-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 1rem;
  border-top: 1px solid var(--e-border-color);
  font-size: 0.875rem;
  color: var(--text-color3);
  margin-top: auto;
}
.bps-vtemplates .card-item-author, .bps-vtemplates .card-item-date {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.bps-vtemplates .card-item-author i, .bps-vtemplates .card-item-date i {
  color: var(--icon-color);
}
.bps-vtemplates .bps-archive-table .archive-table {
  width: 100%;
  border-collapse: collapse;
  background-color: var(--bg);
  border: 1px solid var(--e-border-color);
  border-radius: 0.5rem;
  overflow: hidden;
}
.bps-vtemplates .bps-archive-table .archive-table-header {
  background-color: var(--bg2);
}
.bps-vtemplates .bps-archive-table .archive-table-header th {
  padding: 1rem 1.25rem;
  text-align: left;
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--text-highlight);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border-bottom: 2px solid var(--e-border-color);
}
.bps-vtemplates .table-row {
  transition: 0.15s ease-out;
}
.bps-vtemplates .table-row:hover {
  background-color: var(--bg2);
}
.bps-vtemplates .table-row:not(:last-child) {
  border-bottom: 1px solid var(--e-border-color);
}
.bps-vtemplates .table-row td {
  padding: 1rem 1.25rem;
  vertical-align: middle;
}
.bps-vtemplates .table-cell-image {
  width: 80px;
}
.bps-vtemplates .table-cell-image img {
  width: 60px;
  height: 60px;
  object-fit: cover;
  border-radius: 10px;
  background-color: var(--bg2);
}
.bps-vtemplates .table-cell-title {
  font-weight: 500;
  color: var(--text-color);
}
.bps-vtemplates .table-cell-title a {
  color: inherit;
  text-decoration: none;
  transition: 0.15s ease-out;
}
.bps-vtemplates .table-cell-title a:hover {
  color: var(--accent);
}
.bps-vtemplates .table-cell-title .table-cell-excerpt {
  display: block;
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--text-color3);
  margin-top: 0.25rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 300px;
}
.bps-vtemplates .table-cell-category .table-badge {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  background-color: var(--accent);
  color: var(--accent-text);
  border-radius: 0.25rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
}
.bps-vtemplates .table-cell-author, .bps-vtemplates .table-cell-date {
  font-size: 0.875rem;
  color: var(--text-color2);
  white-space: nowrap;
}
.bps-vtemplates .table-cell-actions {
  text-align: right;
  white-space: nowrap;
}
.bps-vtemplates .table-cell-actions .table-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 10px;
  background-color: transparent;
  color: var(--text-color3);
  border: 1px solid var(--e-border-color);
  margin-left: 0.5rem;
  cursor: pointer;
  transition: 0.15s ease-out;
}
.bps-vtemplates .table-cell-actions .table-action-btn:first-child {
  margin-left: 0;
}
.bps-vtemplates .table-cell-actions .table-action-btn:hover {
  background-color: var(--accent);
  color: var(--accent-text);
  border-color: var(--accent);
}
.bps-vtemplates .table-cell-actions .table-action-btn.btn-delete:hover {
  background-color: #dc3545;
  border-color: #dc3545;
}
.bps-vtemplates .bps-archive-masonry .archive-masonry {
  column-count: 3;
  column-gap: 1.5rem;
}
.bps-vtemplates .masonry-item {
  break-inside: avoid;
  margin-bottom: 1.5rem;
  background-color: var(--bg);
  border: 1px solid var(--e-border-color);
  border-radius: 0.5rem;
  overflow: hidden;
  transition: 0.3s ease-out;
}
.bps-vtemplates .masonry-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  border-color: var(--accent);
}
.bps-vtemplates .masonry-item:hover .masonry-item-image img {
  transform: scale(1.03);
}
.bps-vtemplates .masonry-item-image {
  width: 100%;
  overflow: hidden;
  background-color: var(--bg2);
}
.bps-vtemplates .masonry-item-image img {
  width: 100%;
  height: auto;
  display: block;
  transition: 0.5s ease-out;
}
.bps-vtemplates .masonry-item-content {
  padding: 1.25rem;
}
.bps-vtemplates .masonry-item-category {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  background-color: var(--accent);
  color: var(--accent-text);
  border-radius: 0.25rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 0.75rem;
}
.bps-vtemplates .masonry-item-title {
  color: var(--text-highlight);
  font-size: 1.125rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
  line-height: 1.4;
}
.bps-vtemplates .masonry-item-title a {
  color: inherit;
  text-decoration: none;
  transition: 0.15s ease-out;
}
.bps-vtemplates .masonry-item-title a:hover {
  color: var(--accent);
}
.bps-vtemplates .masonry-item-excerpt {
  color: var(--text-color2);
  font-size: 0.875rem;
  line-height: 1.6;
  margin-bottom: 1rem;
}
.bps-vtemplates .masonry-item-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 0.75rem;
  border-top: 1px solid var(--e-border-color);
  font-size: 0.75rem;
  color: var(--text-color3);
}
.bps-vtemplates .masonry-item-author {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.bps-vtemplates .masonry-item-author i {
  color: var(--icon-color);
}
.bps-vtemplates .single-default {
  max-width: 800px;
  margin: 0 auto;
}
.bps-vtemplates .single-header {
  margin-bottom: 2rem;
}
.bps-vtemplates .single-category {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  background-color: var(--accent);
  color: var(--accent-text);
  border-radius: 0.25rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 1rem;
}
.bps-vtemplates .single-title {
  color: var(--text-highlight);
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 1rem;
}
.bps-vtemplates .single-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  font-size: 0.875rem;
  color: var(--text-color3);
}
.bps-vtemplates .single-meta span {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.bps-vtemplates .single-meta i {
  color: var(--icon-color);
}
.bps-vtemplates .single-featured-image {
  margin-bottom: 2rem;
  border-radius: 0.75rem;
  overflow: hidden;
}
.bps-vtemplates .single-featured-image img {
  width: 100%;
  height: auto;
  display: block;
}
.bps-vtemplates .single-content {
  color: var(--text-color);
  font-size: 1.125rem;
  line-height: 1.8;
}
.bps-vtemplates .single-content h2, .bps-vtemplates .single-content h3, .bps-vtemplates .single-content h4 {
  color: var(--text-highlight);
  margin-top: 2rem;
  margin-bottom: 1rem;
}
.bps-vtemplates .single-content p {
  margin-bottom: 1.5rem;
}
.bps-vtemplates .single-content a {
  color: var(--accent);
}
.bps-vtemplates .single-footer {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid var(--e-border-color);
}
.bps-vtemplates .single-profile {
  max-width: 1000px;
  margin: 0 auto;
}
.bps-vtemplates .profile-header-section {
  display: flex;
  align-items: center;
  gap: 2rem;
  margin-bottom: 2rem;
  flex-wrap: wrap;
}
.bps-vtemplates .profile-avatar-wrap {
  flex-shrink: 0;
}
.bps-vtemplates .profile-avatar {
  width: 150px;
  height: 150px;
  border-radius: 50%;
  object-fit: cover;
  border: 4px solid var(--accent);
}
.bps-vtemplates .profile-avatar-placeholder {
  width: 150px;
  height: 150px;
  border-radius: 50%;
  background-color: var(--bg2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 4rem;
  color: var(--text-color3);
}
.bps-vtemplates .profile-info {
  flex: 1;
}
.bps-vtemplates .profile-name {
  color: var(--text-highlight);
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
}
.bps-vtemplates .profile-tagline {
  color: var(--text-color2);
  font-size: 1.25rem;
  margin-bottom: 0.5rem;
}
.bps-vtemplates .profile-location {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--text-color3);
  font-size: 0.875rem;
}
.bps-vtemplates .profile-location i {
  color: var(--icon-color);
}
.bps-vtemplates .profile-stats {
  display: flex;
  gap: 2rem;
  padding: 1.5rem;
  background-color: var(--bg2);
  border-radius: 0.75rem;
  margin-bottom: 2rem;
}
.bps-vtemplates .profile-bio {
  margin-bottom: 2rem;
}
.bps-vtemplates .profile-bio h3 {
  color: var(--text-highlight);
  font-size: 1.25rem;
  margin-bottom: 1rem;
}
.bps-vtemplates .profile-tabs {
  display: flex;
  gap: 0.5rem;
  border-bottom: 2px solid var(--e-border-color);
  margin-bottom: 2rem;
}
.bps-vtemplates .profile-content {
  margin-bottom: 2rem;
}
.bps-vtemplates .profile-sidebar {
  background-color: var(--bg2);
  border-radius: 0.75rem;
  padding: 1.5rem;
}
.bps-vtemplates .single-course {
  max-width: 1000px;
  margin: 0 auto;
}
.bps-vtemplates .course-header {
  margin-bottom: 2rem;
}
.bps-vtemplates .course-category {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  background-color: var(--accent);
  color: var(--accent-text);
  border-radius: 0.25rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 1rem;
}
.bps-vtemplates .course-title {
  color: var(--text-highlight);
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 1rem;
}
.bps-vtemplates .course-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  font-size: 0.875rem;
  color: var(--text-color3);
}
.bps-vtemplates .course-meta span {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.bps-vtemplates .course-meta i {
  color: var(--icon-color);
}
.bps-vtemplates .course-video {
  margin-bottom: 2rem;
  border-radius: 0.75rem;
  overflow: hidden;
  background-color: var(--bg2);
  aspect-ratio: 1.7777777778;
}
.bps-vtemplates .course-progress {
  margin-bottom: 2rem;
  padding: 1rem;
  background-color: var(--bg2);
  border-radius: 10px;
}
.bps-vtemplates .course-content {
  color: var(--text-color);
  line-height: 1.8;
  margin-bottom: 2rem;
}
.bps-vtemplates .course-navigation {
  display: flex;
  justify-content: space-between;
  padding: 1rem 0;
  border-top: 1px solid var(--e-border-color);
  border-bottom: 1px solid var(--e-border-color);
  margin-bottom: 2rem;
}
.bps-vtemplates .course-sidebar {
  background-color: var(--bg2);
  border-radius: 0.75rem;
  padding: 1.5rem;
}
.bps-vtemplates .single-product {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
}
.bps-vtemplates .product-gallery {
  position: sticky;
  top: 2rem;
  align-self: start;
}
.bps-vtemplates .product-main-image {
  border-radius: 0.75rem;
  overflow: hidden;
  background-color: var(--bg2);
}
.bps-vtemplates .product-main-image img {
  width: 100%;
  height: auto;
  display: block;
}
.bps-vtemplates .product-details {
  display: flex;
  flex-direction: column;
}
.bps-vtemplates .product-category {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  background-color: var(--accent);
  color: var(--accent-text);
  border-radius: 0.25rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 1rem;
  align-self: flex-start;
}
.bps-vtemplates .product-title {
  color: var(--text-highlight);
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 1rem;
}
.bps-vtemplates .product-short-desc {
  color: var(--text-color2);
  font-size: 1.125rem;
  line-height: 1.6;
  margin-bottom: 1.5rem;
}
.bps-vtemplates .product-price {
  margin-bottom: 1.5rem;
}
.bps-vtemplates .product-price .price-current {
  font-size: 2rem;
  font-weight: 700;
  color: var(--text-highlight);
}
.bps-vtemplates .product-price .price-sale {
  font-size: 1.25rem;
  color: var(--text-color3);
  text-decoration: line-through;
  margin-left: 0.5rem;
}
.bps-vtemplates .product-add-to-cart {
  margin-bottom: 2rem;
}
.bps-vtemplates .product-meta {
  padding-top: 1.5rem;
  border-top: 1px solid var(--e-border-color);
  font-size: 0.875rem;
  color: var(--text-color3);
}
.bps-vtemplates .product-tabs {
  grid-column: 1 / -1;
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px solid var(--e-border-color);
}
.bps-vtemplates .product-description {
  color: var(--text-color);
  line-height: 1.8;
}
.bps-vtemplates .product-related {
  grid-column: 1 / -1;
  margin-top: 3rem;
}
.bps-vtemplates .single-post {
  max-width: 800px;
  margin: 0 auto;
}
.bps-vtemplates .post-header {
  margin-bottom: 2rem;
}
.bps-vtemplates .post-category {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  background-color: var(--accent);
  color: var(--accent-text);
  border-radius: 0.25rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 1rem;
}
.bps-vtemplates .post-title {
  color: var(--text-highlight);
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 1rem;
}
.bps-vtemplates .post-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  font-size: 0.875rem;
  color: var(--text-color3);
}
.bps-vtemplates .post-meta span {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.bps-vtemplates .post-meta i {
  color: var(--icon-color);
}
.bps-vtemplates .post-featured-image {
  margin-bottom: 2rem;
  border-radius: 0.75rem;
  overflow: hidden;
}
.bps-vtemplates .post-featured-image img {
  width: 100%;
  height: auto;
  display: block;
}
.bps-vtemplates .post-content {
  color: var(--text-color);
  font-size: 1.125rem;
  line-height: 1.8;
}
.bps-vtemplates .post-content h2, .bps-vtemplates .post-content h3, .bps-vtemplates .post-content h4 {
  color: var(--text-highlight);
  margin-top: 2rem;
  margin-bottom: 1rem;
}
.bps-vtemplates .post-content p {
  margin-bottom: 1.5rem;
}
.bps-vtemplates .post-author-box {
  margin-top: 3rem;
  padding: 2rem;
  background-color: var(--bg2);
  border-radius: 0.75rem;
}
.bps-vtemplates .post-related {
  margin-top: 3rem;
}
.bps-vtemplates .post-comments {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid var(--e-border-color);
}
.bps-vtemplates .single-full {
  width: 100%;
}
.bps-vtemplates .full-hero {
  position: relative;
  min-height: 60vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 4rem 2rem;
}
.bps-vtemplates .full-hero-bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-size: cover;
  background-position: center;
  z-index: 0;
}
.bps-vtemplates .full-hero-bg::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
}
.bps-vtemplates .full-hero-content {
  position: relative;
  z-index: 1;
  max-width: 800px;
}
.bps-vtemplates .full-subtitle {
  display: inline-block;
  padding: 0.25rem 1.25rem;
  background-color: var(--accent);
  color: var(--accent-text);
  border-radius: 0.25rem;
  font-size: 0.875rem;
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 1.5rem;
}
.bps-vtemplates .full-title {
  color: #fff;
  font-size: 3.5rem;
  font-weight: 700;
  line-height: 1.1;
  margin-bottom: 1.5rem;
}
.bps-vtemplates .full-excerpt {
  color: rgba(255, 255, 255, 0.9);
  font-size: 1.5rem;
  line-height: 1.6;
  margin-bottom: 2rem;
}
.bps-vtemplates .full-content {
  max-width: 800px;
  margin: 0 auto;
  padding: 4rem 2rem;
  color: var(--text-color);
  font-size: 1.125rem;
  line-height: 1.8;
}
.bps-vtemplates .full-cta {
  padding: 4rem 2rem;
  text-align: center;
  background-color: var(--bg2);
}
@media screen and (max-width: 992px) {
  .bps-vtemplates .archive-title {
    font-size: 2rem;
  }
  .bps-vtemplates .archive-meta {
    flex-direction: column;
    align-items: flex-start;
  }
  .bps-vtemplates .bps-archive-grid .archive-grid {
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.5rem;
  }
  .bps-vtemplates .grid-card-image {
    height: 180px;
  }
  .bps-vtemplates .grid-card-body {
    padding: 1.25rem;
  }
  .bps-vtemplates .list-item-image {
    width: 160px;
    height: 120px;
  }
  .bps-vtemplates .list-item-title {
    font-size: 1.125rem;
  }
  .bps-vtemplates .bps-archive-cards .archive-cards {
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.5rem;
  }
  .bps-vtemplates .card-item-title {
    font-size: 1.25rem;
  }
  .bps-vtemplates .card-item-body {
    padding: 1.25rem;
  }
  .bps-vtemplates .bps-archive-masonry .archive-masonry {
    column-count: 2;
    column-gap: 1.25rem;
  }
  .bps-vtemplates .masonry-item {
    margin-bottom: 1.25rem;
  }
  .bps-vtemplates .single-title, .bps-vtemplates .post-title {
    font-size: 2rem;
  }
  .bps-vtemplates .single-product {
    grid-template-columns: 1fr;
  }
  .bps-vtemplates .product-gallery {
    position: relative;
    top: 0;
  }
  .bps-vtemplates .full-title {
    font-size: 2.5rem;
  }
  .bps-vtemplates .profile-header-section {
    flex-direction: column;
    text-align: center;
  }
  .bps-vtemplates .profile-stats {
    flex-wrap: wrap;
    justify-content: center;
  }
}
@media screen and (max-width: 768px) {
  .bps-vtemplates .archive-title {
    font-size: 1.75rem;
  }
  .bps-vtemplates .archive-filters {
    width: 100%;
  }
  .bps-vtemplates .archive-filters .filter-btn {
    flex: 1;
    text-align: center;
    padding: 0.4rem 0.75rem;
    font-size: 0.875rem;
  }
  .bps-vtemplates .bps-archive-grid .archive-grid {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
  .bps-vtemplates .grid-card-image {
    height: 200px;
  }
  .bps-vtemplates .grid-card-body {
    padding: 1rem;
  }
  .bps-vtemplates .grid-card-title {
    font-size: 1.125rem;
  }
  .bps-vtemplates .grid-card-meta {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }
  .bps-vtemplates .list-item {
    flex-direction: column;
    gap: 1rem;
    padding: 1rem;
  }
  .bps-vtemplates .list-item-image {
    width: 100%;
    height: 180px;
  }
  .bps-vtemplates .list-item-footer {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
  }
  .bps-vtemplates .minimal-item {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }
  .bps-vtemplates .minimal-item-meta {
    flex-wrap: wrap;
    gap: 0.5rem;
  }
  .bps-vtemplates .minimal-item-date::before, .bps-vtemplates .minimal-item-author::before {
    display: none;
  }
  .bps-vtemplates .bps-archive-cards .archive-cards {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
  .bps-vtemplates .card-item-meta {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }
  .bps-vtemplates .bps-archive-table .archive-table, .bps-vtemplates .bps-archive-table .archive-table-header, .bps-vtemplates .bps-archive-table .archive-table tbody, .bps-vtemplates .bps-archive-table .table-row, .bps-vtemplates .bps-archive-table .table-row td {
    display: block;
  }
  .bps-vtemplates .bps-archive-table .archive-table-header {
    display: none;
  }
  .bps-vtemplates .bps-archive-table .table-row {
    padding: 1rem;
    margin-bottom: 1rem;
    border: 1px solid var(--e-border-color);
    border-radius: 0.5rem;
  }
  .bps-vtemplates .bps-archive-table .table-row td {
    padding: 0.5rem 0;
    border: none;
  }
  .bps-vtemplates .bps-archive-table .table-cell-image {
    width: auto;
    text-align: center;
    padding-bottom: 1rem;
  }
  .bps-vtemplates .bps-archive-table .table-cell-image img {
    width: 100px;
    height: 100px;
  }
  .bps-vtemplates .bps-archive-table .table-cell-title .table-cell-excerpt {
    max-width: 100%;
    white-space: normal;
  }
  .bps-vtemplates .bps-archive-table .table-cell-actions {
    text-align: left;
    padding-top: 1rem;
    border-top: 1px solid var(--e-border-color);
  }
  .bps-vtemplates .bps-archive-masonry .archive-masonry {
    column-count: 1;
  }
  .bps-vtemplates .masonry-item {
    margin-bottom: 1rem;
  }
  .bps-vtemplates .single-title, .bps-vtemplates .post-title, .bps-vtemplates .course-title, .bps-vtemplates .product-title {
    font-size: 1.75rem;
  }
  .bps-vtemplates .single-meta, .bps-vtemplates .post-meta, .bps-vtemplates .course-meta {
    gap: 1rem;
  }
  .bps-vtemplates .profile-avatar, .bps-vtemplates .profile-avatar-placeholder {
    width: 120px;
    height: 120px;
  }
  .bps-vtemplates .profile-name {
    font-size: 1.5rem;
  }
  .bps-vtemplates .full-hero {
    min-height: 50vh;
    padding: 3rem 1rem;
  }
  .bps-vtemplates .full-title {
    font-size: 2rem;
  }
  .bps-vtemplates .full-excerpt {
    font-size: 1.25rem;
  }
  .bps-vtemplates .full-content {
    padding: 2rem 1rem;
  }
}
.bps-vtemplates .dark .grid-card, .bps-vtemplates .dark2 .grid-card, .bps-vtemplates .dark3 .grid-card, .bps-vtemplates .dark .list-item, .bps-vtemplates .dark2 .list-item, .bps-vtemplates .dark3 .list-item, .bps-vtemplates .dark .card-item, .bps-vtemplates .dark2 .card-item, .bps-vtemplates .dark3 .card-item, .bps-vtemplates .dark .masonry-item, .bps-vtemplates .dark2 .masonry-item, .bps-vtemplates .dark3 .masonry-item {
  background-color: var(--bg2);
}
.bps-vtemplates .dark .grid-card:hover:hover, .bps-vtemplates .dark2 .grid-card:hover:hover, .bps-vtemplates .dark3 .grid-card:hover:hover, .bps-vtemplates .dark .list-item:hover:hover, .bps-vtemplates .dark2 .list-item:hover:hover, .bps-vtemplates .dark3 .list-item:hover:hover, .bps-vtemplates .dark .card-item:hover:hover, .bps-vtemplates .dark2 .card-item:hover:hover, .bps-vtemplates .dark3 .card-item:hover:hover, .bps-vtemplates .dark .masonry-item:hover:hover, .bps-vtemplates .dark2 .masonry-item:hover:hover, .bps-vtemplates .dark3 .masonry-item:hover:hover {
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
.bps-vtemplates .dark .grid-card-image, .bps-vtemplates .dark2 .grid-card-image, .bps-vtemplates .dark3 .grid-card-image, .bps-vtemplates .dark .list-item-image, .bps-vtemplates .dark2 .list-item-image, .bps-vtemplates .dark3 .list-item-image, .bps-vtemplates .dark .card-item-image, .bps-vtemplates .dark2 .card-item-image, .bps-vtemplates .dark3 .card-item-image, .bps-vtemplates .dark .masonry-item-image, .bps-vtemplates .dark2 .masonry-item-image, .bps-vtemplates .dark3 .masonry-item-image, .bps-vtemplates .dark .table-cell-image img, .bps-vtemplates .dark2 .table-cell-image img, .bps-vtemplates .dark3 .table-cell-image img {
  background-color: var(--bg);
}
.bps-vtemplates .dark .minimal-item:hover, .bps-vtemplates .dark2 .minimal-item:hover, .bps-vtemplates .dark3 .minimal-item:hover {
  background-color: var(--bg2);
}
.bps-vtemplates .dark .bps-archive-table .archive-table, .bps-vtemplates .dark2 .bps-archive-table .archive-table, .bps-vtemplates .dark3 .bps-archive-table .archive-table {
  background-color: var(--bg);
}
.bps-vtemplates .dark .bps-archive-table .archive-table-header, .bps-vtemplates .dark2 .bps-archive-table .archive-table-header, .bps-vtemplates .dark3 .bps-archive-table .archive-table-header {
  background-color: var(--bg2);
}
.bps-vtemplates .dark .table-row:hover, .bps-vtemplates .dark2 .table-row:hover, .bps-vtemplates .dark3 .table-row:hover {
  background-color: var(--bg2);
}
.bps-vtemplates .pagination {
  display: flex;
  justify-content: center;
  gap: 0.25rem;
  padding: 0;
  margin: 2rem 0;
  list-style: none;
}
.bps-vtemplates .pagination .page-item .page-link {
  padding: 0.5rem 1rem;
  border: 1px solid var(--e-border-color);
  background-color: var(--bg);
  color: var(--text-color);
  border-radius: 10px;
  text-decoration: none;
  transition: 0.15s ease-out;
}
.bps-vtemplates .pagination .page-item .page-link:hover {
  background-color: var(--accent);
  color: var(--accent-text);
  border-color: var(--accent);
}
.bps-vtemplates .pagination .page-item.active .page-link {
  background-color: var(--accent);
  color: var(--accent-text);
  border-color: var(--accent);
}
.bps-vtemplates .pagination .page-item.disabled .page-link {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}
.bps-vtemplates .dashboard-wrapper {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.bps-vtemplates .messaging-layout {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.bps-vtemplates .messaging-wrapper {
  display: flex;
  height: 100%;
  min-height: 600px;
  border: 1px solid var(--e-border-color);
  border-radius: 1rem;
  overflow: hidden;
  background: var(--bg);
}
.bps-vtemplates .messaging-sidebar {
  width: 320px;
  flex-shrink: 0;
  border-right: 1px solid var(--e-border-color);
  display: flex;
  flex-direction: column;
  background: var(--bg2);
}
.bps-vtemplates .journal-archive-wrapper {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.bps-vtemplates .journal-write-wrapper {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.bps-vtemplates .member-directory-wrapper {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (max-width: 768px) {
  .bps-vtemplates .messaging-wrapper {
    flex-direction: column;
  }
  .bps-vtemplates .messaging-sidebar {
    width: 100%;
    border-right: none;
    border-bottom: 1px solid var(--e-border-color);
    max-height: 240px;
  }
}
.bps-vtemplates {
  /**
 * Visual Builder - Author Bio Box Styles
 * Path: /assets/scss/_author-bio-box.scss
 *
 * Custom styles to complement Bootstrap classes
 */
  /* Base Author Bio Box */
  /* Default Style */
  /* Minimal Style */
  /* Card Style (Centered) */
  /* Avatar Placeholder Styling */
  /* Responsive Adjustments */
  /* Dark Mode Support (if using Bootstrap dark mode) */
}
.bps-vtemplates .vb-alert {
  position: relative;
  padding: 1rem 1.25rem;
  margin-bottom: 1rem;
  border: 1px solid transparent;
  border-radius: 10px;
  font-size: 0.875rem;
  line-height: 1.5;
}
.bps-vtemplates .vb-alert .vb-alert-close {
  position: absolute;
  top: 50%;
  right: 1rem;
  transform: translateY(-50%);
  padding: 0;
  background: transparent;
  border: none;
  font-size: 1.25rem;
  opacity: 0.5;
  cursor: pointer;
  transition: 0.15s ease-out;
}
.bps-vtemplates .vb-alert .vb-alert-close:hover {
  opacity: 1;
}
.bps-vtemplates .vb-alert .vb-alert-icon {
  margin-right: 0.5rem;
}
.bps-vtemplates .vb-alert .vb-alert-title {
  font-weight: 600;
  margin-bottom: 0.25rem;
}
.bps-vtemplates .vb-alert.vb-alert-info, .bps-vtemplates .vb-alert-info {
  background-color: rgba(13, 202, 240, 0.1);
  border-color: rgba(13, 202, 240, 0.3);
  color: #0aa1c0;
}
.bps-vtemplates .vb-alert.vb-alert-info .vb-alert-icon, .bps-vtemplates .vb-alert-info .vb-alert-icon {
  color: #0dcaf0;
}
.bps-vtemplates .vb-alert.vb-alert-success, .bps-vtemplates .vb-alert-success {
  background-color: rgba(40, 167, 69, 0.1);
  border-color: rgba(40, 167, 69, 0.3);
  color: #1e7e34;
}
.bps-vtemplates .vb-alert.vb-alert-success .vb-alert-icon, .bps-vtemplates .vb-alert-success .vb-alert-icon {
  color: #28a745;
}
.bps-vtemplates .vb-alert.vb-alert-warning, .bps-vtemplates .vb-alert-warning {
  background-color: rgba(255, 193, 7, 0.1);
  border-color: rgba(255, 193, 7, 0.3);
  color: #ba8b00;
}
.bps-vtemplates .vb-alert.vb-alert-warning .vb-alert-icon, .bps-vtemplates .vb-alert-warning .vb-alert-icon {
  color: #ffc107;
}
.bps-vtemplates .vb-alert.vb-alert-danger, .bps-vtemplates .vb-alert-danger, .bps-vtemplates .vb-alert.vb-alert-error, .bps-vtemplates .vb-alert-error {
  background-color: rgba(220, 53, 69, 0.1);
  border-color: rgba(220, 53, 69, 0.3);
  color: #bd2130;
}
.bps-vtemplates .vb-alert.vb-alert-danger .vb-alert-icon, .bps-vtemplates .vb-alert-danger .vb-alert-icon, .bps-vtemplates .vb-alert.vb-alert-error .vb-alert-icon, .bps-vtemplates .vb-alert-error .vb-alert-icon {
  color: #dc3545;
}
.bps-vtemplates .vb-alert.vb-alert-dismissible {
  padding-right: 3rem;
}
.bps-vtemplates .vb-alert.vb-alert-sm {
  padding: 0.5rem 1rem;
  font-size: 0.75rem;
}
.bps-vtemplates .vb-alert.vb-alert-lg {
  padding: 1.25rem 1.5rem;
  font-size: 1rem;
}
.bps-vtemplates .vb-author-byline {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: var(--text-color2);
}
.bps-vtemplates .vb-author-byline .vb-author-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}
.bps-vtemplates .vb-author-byline .vb-author-avatar-placeholder {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background-color: var(--bg2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  color: var(--text-color3);
  flex-shrink: 0;
}
.bps-vtemplates .vb-author-byline .vb-author-avatar-placeholder i {
  font-size: 1rem;
}
.bps-vtemplates .vb-author-byline .vb-author-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.bps-vtemplates .vb-author-byline .vb-author-name {
  font-weight: 500;
  color: var(--text-color);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bps-vtemplates .vb-author-byline .vb-author-name a {
  color: inherit;
  text-decoration: none;
}
.bps-vtemplates .vb-author-byline .vb-author-name a:hover {
  color: var(--accent);
}
.bps-vtemplates .vb-author-byline .vb-author-date {
  font-size: 0.75rem;
  color: var(--text-color3);
}
.bps-vtemplates .vb-author-byline.vb-author-byline-inline .vb-author-info {
  flex-direction: row;
  align-items: center;
  gap: 0.5rem;
}
.bps-vtemplates .vb-author-byline.vb-author-byline-inline .vb-author-date::before {
  content: "•";
  margin-right: 0.5rem;
  opacity: 0.5;
}
.bps-vtemplates .vb-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  overflow: hidden;
  background-color: var(--bg2);
  color: var(--text-color2);
  font-weight: 600;
  flex-shrink: 0;
}
.bps-vtemplates .vb-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.bps-vtemplates .vb-avatar.vb-avatar-xs {
  width: 24px;
  height: 24px;
  font-size: 0.75rem;
}
.bps-vtemplates .vb-avatar.vb-avatar-sm {
  width: 32px;
  height: 32px;
  font-size: 0.875rem;
}
.bps-vtemplates .vb-avatar, .bps-vtemplates .vb-avatar.vb-avatar-md {
  width: 48px;
  height: 48px;
  font-size: 1rem;
}
.bps-vtemplates .vb-avatar.vb-avatar-lg {
  width: 64px;
  height: 64px;
  font-size: 1.25rem;
}
.bps-vtemplates .vb-avatar.vb-avatar-xl {
  width: 96px;
  height: 96px;
  font-size: 1.5rem;
}
.bps-vtemplates .vb-avatar.vb-avatar-2xl {
  width: 128px;
  height: 128px;
  font-size: 1.875rem;
}
.bps-vtemplates .vb-avatar.vb-avatar-bordered {
  border: 3px solid var(--accent);
}
.bps-vtemplates .vb-avatar.vb-avatar-status {
  position: relative;
}
.bps-vtemplates .vb-avatar-indicator {
  position: absolute;
  bottom: 2px;
  right: 2px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 2px solid var(--bg);
}
.bps-vtemplates .vb-avatar-indicator.vb-avatar-online {
  background-color: #28a745;
}
.bps-vtemplates .vb-avatar-indicator.vb-avatar-offline {
  background-color: var(--text-color3);
}
.bps-vtemplates .vb-avatar-indicator.vb-avatar-busy {
  background-color: #dc3545;
}
.bps-vtemplates .vb-avatar-indicator.vb-avatar-away {
  background-color: #ffc107;
}
.bps-vtemplates .vb-avatar-group {
  display: flex;
}
.bps-vtemplates .vb-avatar-group .vb-avatar {
  margin-left: -8px;
  border: 2px solid var(--bg);
}
.bps-vtemplates .vb-avatar-group .vb-avatar:first-child {
  margin-left: 0;
}
.bps-vtemplates .vb-avatar-group .vb-avatar-more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: -8px;
  background-color: var(--bg2);
  border: 2px solid var(--bg);
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text-color2);
}
.bps-vtemplates .vb-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.25rem 0.5rem;
  border-radius: 0.25rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  white-space: nowrap;
  background-color: var(--accent);
  color: var(--accent-text);
}
.bps-vtemplates .vb-badge.vb-badge-primary {
  background-color: var(--accent);
  color: var(--accent-text);
}
.bps-vtemplates .vb-badge.vb-badge-secondary {
  background-color: var(--bg2);
  color: var(--text-color);
}
.bps-vtemplates .vb-badge.vb-badge-featured {
  background-color: #ffc107;
  color: #000;
}
.bps-vtemplates .vb-badge.vb-badge-new {
  background-color: #28a745;
  color: #fff;
}
.bps-vtemplates .vb-badge.vb-badge-sale {
  background-color: #dc3545;
  color: #fff;
}
.bps-vtemplates .vb-badge.vb-badge-hot {
  background-color: #ff6b35;
  color: #fff;
}
.bps-vtemplates .vb-badge.vb-badge-popular {
  background-color: #9b59b6;
  color: #fff;
}
.bps-vtemplates .vb-badge.vb-badge-premium {
  background: linear-gradient(135deg, #f5af19 0%, #f12711 100%);
  color: #fff;
}
.bps-vtemplates .vb-badge.vb-badge-verified {
  background-color: #0dcaf0;
  color: #fff;
}
.bps-vtemplates .vb-badge.vb-badge-info {
  background-color: #0dcaf0;
  color: #fff;
}
.bps-vtemplates .vb-badge.vb-badge-success {
  background-color: #28a745;
  color: #fff;
}
.bps-vtemplates .vb-badge.vb-badge-warning {
  background-color: #ffc107;
  color: #000;
}
.bps-vtemplates .vb-badge.vb-badge-danger {
  background-color: #dc3545;
  color: #fff;
}
.bps-vtemplates .vb-badge.vb-badge-outline {
  background-color: transparent;
  border: 1px solid currentColor;
}
.bps-vtemplates .vb-badge.vb-badge-outline.vb-badge-primary {
  color: var(--accent);
}
.bps-vtemplates .vb-badge.vb-badge-outline.vb-badge-success {
  color: #28a745;
}
.bps-vtemplates .vb-badge.vb-badge-outline.vb-badge-danger {
  color: #dc3545;
}
.bps-vtemplates .vb-badge.vb-badge-pill {
  border-radius: 100px;
  padding-left: 1rem;
  padding-right: 1rem;
}
.bps-vtemplates .vb-badge.vb-badge-dot::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: currentColor;
}
.bps-vtemplates .vb-badge.vb-badge-sm {
  padding: 2px 0.25rem;
  font-size: 10px;
}
.bps-vtemplates .vb-badge.vb-badge-lg {
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
}
.bps-vtemplates .vb-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.5rem 1.25rem;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.5;
  text-decoration: none;
  border: 1px solid transparent;
  border-radius: 10px;
  cursor: pointer;
  transition: 0.15s ease-out;
  white-space: nowrap;
}
.bps-vtemplates .vb-btn:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb, 66, 153, 225), 0.3);
}
.bps-vtemplates .vb-btn:disabled, .bps-vtemplates .vb-btn.vb-btn-disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}
.bps-vtemplates .vb-btn .vb-btn-icon {
  font-size: 1.1em;
}
.bps-vtemplates .vb-btn, .bps-vtemplates .vb-btn.vb-btn-primary {
  background-color: var(--accent);
  border-color: var(--accent);
  color: var(--accent-text);
}
.bps-vtemplates .vb-btn:hover, .bps-vtemplates .vb-btn.vb-btn-primary:hover {
  filter: brightness(1.1);
}
.bps-vtemplates .vb-btn.vb-btn-secondary {
  background-color: var(--bg2);
  border-color: var(--e-border-color);
  color: var(--text-color);
}
.bps-vtemplates .vb-btn.vb-btn-secondary:hover {
  background-color: var(--bg);
  border-color: var(--accent);
}
.bps-vtemplates .vb-btn.vb-btn-outline {
  background-color: transparent;
  border-color: var(--accent);
  color: var(--accent);
}
.bps-vtemplates .vb-btn.vb-btn-outline:hover {
  background-color: var(--accent);
  color: var(--accent-text);
}
.bps-vtemplates .vb-btn.vb-btn-outline-secondary {
  background-color: transparent;
  border-color: var(--e-border-color);
  color: var(--text-color);
}
.bps-vtemplates .vb-btn.vb-btn-outline-secondary:hover {
  background-color: var(--bg2);
}
.bps-vtemplates .vb-btn.vb-btn-ghost {
  background-color: transparent;
  border-color: var(--accent);
  color: var(--accent);
}
.bps-vtemplates .vb-btn.vb-btn-ghost:hover {
  background-color: rgba(var(--accent-rgb, 66, 153, 225), 0.1);
}
.bps-vtemplates .vb-btn.vb-btn-success {
  background-color: #28a745;
  border-color: #28a745;
  color: #fff;
}
.bps-vtemplates .vb-btn.vb-btn-success:hover {
  filter: brightness(1.1);
}
.bps-vtemplates .vb-btn.vb-btn-danger {
  background-color: #dc3545;
  border-color: #dc3545;
  color: #fff;
}
.bps-vtemplates .vb-btn.vb-btn-danger:hover {
  filter: brightness(1.1);
}
.bps-vtemplates .vb-btn.vb-btn-warning {
  background-color: #ffc107;
  border-color: #ffc107;
  color: #000;
}
.bps-vtemplates .vb-btn.vb-btn-warning:hover {
  filter: brightness(1.1);
}
.bps-vtemplates .vb-btn.vb-btn-xs {
  padding: 4px 0.5rem;
  font-size: 0.75rem;
}
.bps-vtemplates .vb-btn.vb-btn-sm {
  padding: 0.25rem 1rem;
  font-size: 0.75rem;
}
.bps-vtemplates .vb-btn.vb-btn-lg {
  padding: 1rem 1.5rem;
  font-size: 1rem;
}
.bps-vtemplates .vb-btn.vb-btn-xl {
  padding: 1.25rem 2rem;
  font-size: 1.25rem;
}
.bps-vtemplates .vb-btn.vb-btn-block {
  display: flex;
  width: 100%;
}
.bps-vtemplates .vb-btn.vb-btn-icon-only {
  padding: 0.5rem;
}
.bps-vtemplates .vb-btn.vb-btn-icon-only.vb-btn-xs {
  padding: 4px;
}
.bps-vtemplates .vb-btn.vb-btn-icon-only.vb-btn-sm {
  padding: 0.25rem;
}
.bps-vtemplates .vb-btn.vb-btn-icon-only.vb-btn-lg {
  padding: 1rem;
}
.bps-vtemplates .vb-btn.vb-btn-rounded {
  border-radius: 100px;
}
.bps-vtemplates .vb-btn.vb-btn-loading {
  position: relative;
  color: transparent;
  pointer-events: none;
}
.bps-vtemplates .vb-btn.vb-btn-loading::after {
  content: "";
  position: absolute;
  width: 16px;
  height: 16px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: vb-btn-spin 0.6s linear infinite;
}
@keyframes vb-btn-spin {
  to {
    transform: rotate(360deg);
  }
}
.bps-vtemplates .vb-btn-group {
  display: inline-flex;
}
.bps-vtemplates .vb-btn-group .vb-btn {
  border-radius: 0;
}
.bps-vtemplates .vb-btn-group .vb-btn:first-child {
  border-radius: 10px 0 0 10px;
}
.bps-vtemplates .vb-btn-group .vb-btn:last-child {
  border-radius: 0 10px 10px 0;
}
.bps-vtemplates .vb-btn-group .vb-btn:not(:first-child) {
  margin-left: -1px;
}
.bps-vtemplates .vb-card {
  background-color: var(--bg);
  border: 1px solid var(--e-border-color);
  border-radius: 0.5rem;
  overflow: hidden;
  transition: 0.3s ease-out;
}
.bps-vtemplates .vb-card:hover {
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}
.bps-vtemplates .vb-card.vb-card-clickable {
  cursor: pointer;
}
.bps-vtemplates .vb-card.vb-card-clickable:hover {
  transform: translateY(-2px);
  border-color: var(--accent);
}
.bps-vtemplates .vb-card-image {
  width: 100%;
  aspect-ratio: 1.6;
  overflow: hidden;
  background-color: var(--bg2);
}
.bps-vtemplates .vb-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: 0.3s ease-out;
}
.vb-card:hover .bps-vtemplates .vb-card-image img {
  transform: scale(1.05);
}
.bps-vtemplates .vb-card-header {
  padding: 1.25rem 1.25rem 0;
}
.bps-vtemplates .vb-card-body {
  padding: 1.25rem;
}
.bps-vtemplates .vb-card-footer {
  padding: 0 1.25rem 1.25rem;
}
.bps-vtemplates .vb-card-footer.vb-card-footer-bordered {
  padding-top: 1.25rem;
  margin-top: auto;
  border-top: 1px solid var(--e-border-color);
}
.bps-vtemplates .vb-card-title {
  color: var(--text-highlight);
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
  line-height: 1.3;
}
.bps-vtemplates .vb-card-title a {
  color: inherit;
  text-decoration: none;
}
.bps-vtemplates .vb-card-title a:hover {
  color: var(--accent);
}
.bps-vtemplates .vb-card-subtitle {
  color: var(--text-color2);
  font-size: 0.875rem;
  margin-bottom: 0.5rem;
}
.bps-vtemplates .vb-card-text {
  color: var(--text-color);
  font-size: 0.875rem;
  line-height: 1.6;
}
.bps-vtemplates .vb-date-display {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.875rem;
  color: var(--text-color3);
}
.bps-vtemplates .vb-date-display i {
  color: var(--icon-color);
}
.bps-vtemplates .vb-date-display.vb-date-stacked {
  flex-direction: column;
  gap: 0;
  padding: 0.5rem;
  background-color: var(--accent);
  color: var(--accent-text);
  border-radius: 10px;
  text-align: center;
  min-width: 48px;
}
.bps-vtemplates .vb-date-display.vb-date-stacked .vb-date-month {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.bps-vtemplates .vb-date-display.vb-date-stacked .vb-date-day {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1;
}
.bps-vtemplates .vb-date-display.vb-date-stacked .vb-date-year {
  font-size: 0.75rem;
  opacity: 0.8;
}
.bps-vtemplates .vb-date-display.vb-date-relative {
  font-style: italic;
}
.bps-vtemplates .vb-divider {
  display: flex;
  align-items: center;
  color: var(--text-color3);
  font-size: 0.875rem;
}
.bps-vtemplates .vb-divider, .bps-vtemplates .vb-divider.vb-divider-horizontal {
  width: 100%;
  margin: 1.25rem 0;
}
.bps-vtemplates .vb-divider::before, .bps-vtemplates .vb-divider::after, .bps-vtemplates .vb-divider.vb-divider-horizontal::before, .bps-vtemplates .vb-divider.vb-divider-horizontal::after {
  content: "";
  flex: 1;
  height: 1px;
  background-color: var(--e-border-color);
}
.bps-vtemplates .vb-divider.vb-divider-text::before {
  margin-right: 1rem;
}
.bps-vtemplates .vb-divider.vb-divider-text::after {
  margin-left: 1rem;
}
.bps-vtemplates .vb-divider:empty::after {
  display: none;
}
.bps-vtemplates .vb-divider.vb-divider-vertical {
  flex-direction: column;
  width: auto;
  height: 100%;
  margin: 0 1.25rem;
}
.bps-vtemplates .vb-divider.vb-divider-vertical::before, .bps-vtemplates .vb-divider.vb-divider-vertical::after {
  width: 1px;
  height: auto;
  flex: 1;
}
.bps-vtemplates .vb-divider.vb-divider-vertical::before {
  margin-right: 0;
  margin-bottom: 1rem;
}
.bps-vtemplates .vb-divider.vb-divider-vertical::after {
  margin-left: 0;
  margin-top: 1rem;
}
.bps-vtemplates .vb-divider.vb-divider-dashed::before, .bps-vtemplates .vb-divider.vb-divider-dashed::after {
  background: repeating-linear-gradient(to right, var(--e-border-color) 0, var(--e-border-color) 4px, transparent 4px, transparent 8px);
}
.bps-vtemplates .vb-divider.vb-divider-dotted::before, .bps-vtemplates .vb-divider.vb-divider-dotted::after {
  background: repeating-linear-gradient(to right, var(--e-border-color) 0, var(--e-border-color) 2px, transparent 2px, transparent 6px);
}
.bps-vtemplates .vb-divider .vb-divider-icon {
  margin: 0 1rem;
  color: var(--icon-color);
}
.bps-vtemplates .vb-empty-state, .bps-vtemplates .empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  text-align: center;
}
.bps-vtemplates .vb-empty-state .vb-empty-icon, .bps-vtemplates .vb-empty-state .empty-icon, .bps-vtemplates .empty-state .vb-empty-icon, .bps-vtemplates .empty-state .empty-icon {
  font-size: 4rem;
  color: var(--text-color3);
  opacity: 0.5;
  margin-bottom: 1.25rem;
}
.bps-vtemplates .vb-empty-state .vb-empty-title, .bps-vtemplates .vb-empty-state .empty-title, .bps-vtemplates .empty-state .vb-empty-title, .bps-vtemplates .empty-state .empty-title {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--text-highlight);
  margin-bottom: 0.5rem;
}
.bps-vtemplates .vb-empty-state .vb-empty-message, .bps-vtemplates .vb-empty-state .empty-message, .bps-vtemplates .empty-state .vb-empty-message, .bps-vtemplates .empty-state .empty-message {
  font-size: 0.875rem;
  color: var(--text-color2);
  max-width: 400px;
  margin-bottom: 1.25rem;
}
.bps-vtemplates .vb-empty-state .vb-empty-action, .bps-vtemplates .vb-empty-state .empty-action, .bps-vtemplates .empty-state .vb-empty-action, .bps-vtemplates .empty-state .empty-action {
  margin-top: 1rem;
}
.bps-vtemplates .vb-excerpt {
  color: var(--text-color2);
  font-size: 0.875rem;
  line-height: 1.6;
}
.bps-vtemplates .vb-excerpt.vb-excerpt-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bps-vtemplates .vb-excerpt.vb-excerpt-3 {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bps-vtemplates .vb-excerpt.vb-excerpt-4 {
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bps-vtemplates .vb-excerpt.vb-excerpt-5 {
  display: -webkit-box;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bps-vtemplates .vb-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--icon-color);
}
.bps-vtemplates .vb-icon.vb-icon-xs {
  font-size: 0.75rem;
}
.bps-vtemplates .vb-icon.vb-icon-sm {
  font-size: 1rem;
}
.bps-vtemplates .vb-icon, .bps-vtemplates .vb-icon.vb-icon-md {
  font-size: 1.25rem;
}
.bps-vtemplates .vb-icon.vb-icon-lg {
  font-size: 1.5rem;
}
.bps-vtemplates .vb-icon.vb-icon-xl {
  font-size: 2rem;
}
.bps-vtemplates .vb-icon.vb-icon-2xl {
  font-size: 3rem;
}
.bps-vtemplates .vb-icon.vb-icon-accent {
  color: var(--accent);
}
.bps-vtemplates .vb-icon.vb-icon-muted {
  color: var(--text-color3);
}
.bps-vtemplates .vb-icon.vb-icon-success {
  color: #28a745;
}
.bps-vtemplates .vb-icon.vb-icon-warning {
  color: #ffc107;
}
.bps-vtemplates .vb-icon.vb-icon-danger {
  color: #dc3545;
}
.bps-vtemplates .vb-icon.vb-icon-info {
  color: #0dcaf0;
}
.bps-vtemplates .vb-icon.vb-icon-bg {
  width: 2em;
  height: 2em;
  border-radius: 50%;
  background-color: var(--bg2);
}
.bps-vtemplates .vb-icon.vb-icon-bg.vb-icon-accent {
  background-color: rgba(var(--accent-rgb, 66, 153, 225), 0.1);
}
.bps-vtemplates .vb-icon.vb-icon-bg.vb-icon-success {
  background-color: rgba(40, 167, 69, 0.1);
}
.bps-vtemplates .vb-icon.vb-icon-bg.vb-icon-danger {
  background-color: rgba(220, 53, 69, 0.1);
}
.bps-vtemplates .vb-image-placeholder, .bps-vtemplates .image-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--bg2);
  color: var(--text-color3);
}
.bps-vtemplates .vb-image-placeholder i, .bps-vtemplates .image-placeholder i {
  font-size: 2rem;
  opacity: 0.5;
}
.bps-vtemplates .vb-image-placeholder.vb-placeholder-square, .bps-vtemplates .image-placeholder.vb-placeholder-square {
  aspect-ratio: 1;
}
.bps-vtemplates .vb-image-placeholder.vb-placeholder-video, .bps-vtemplates .image-placeholder.vb-placeholder-video {
  aspect-ratio: 1.7777777778;
}
.bps-vtemplates .vb-image-placeholder.vb-placeholder-portrait, .bps-vtemplates .image-placeholder.vb-placeholder-portrait {
  aspect-ratio: 0.75;
}
.bps-vtemplates .vb-image-placeholder.vb-placeholder-landscape, .bps-vtemplates .image-placeholder.vb-placeholder-landscape {
  aspect-ratio: 1.3333333333;
}
.bps-vtemplates .vb-link-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.bps-vtemplates .vb-link-item {
  border-bottom: 1px solid var(--e-border-color);
}
.bps-vtemplates .vb-link-item:last-child {
  border-bottom: none;
}
.bps-vtemplates .vb-link-item a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 0;
  color: var(--text-color);
  text-decoration: none;
  transition: 0.15s ease-out;
}
.bps-vtemplates .vb-link-item a:hover {
  color: var(--accent);
  padding-left: 0.5rem;
}
.bps-vtemplates .vb-link-item .vb-link-icon {
  color: var(--icon-color);
  margin-right: 0.5rem;
}
.bps-vtemplates .vb-link-item .vb-link-arrow {
  color: var(--text-color3);
  opacity: 0;
  transition: 0.15s ease-out;
}
.bps-vtemplates .vb-link-item a:hover .vb-link-arrow {
  opacity: 1;
}
.bps-vtemplates .vb-link-item .vb-link-count {
  font-size: 0.75rem;
  color: var(--text-color3);
  background-color: var(--bg2);
  padding: 2px 0.25rem;
  border-radius: 0.25rem;
}
.bps-vtemplates .vb-loading, .bps-vtemplates .vb-spinner {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.bps-vtemplates .vb-loading::after, .bps-vtemplates .vb-spinner::after {
  content: "";
  width: 24px;
  height: 24px;
  border: 3px solid var(--e-border-color);
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: vb-spin 0.8s linear infinite;
}
.bps-vtemplates .vb-loading.vb-spinner-xs::after, .bps-vtemplates .vb-loading.vb-loading-xs::after, .bps-vtemplates .vb-spinner.vb-spinner-xs::after, .bps-vtemplates .vb-spinner.vb-loading-xs::after {
  width: 12px;
  height: 12px;
  border-width: 2px;
}
.bps-vtemplates .vb-loading.vb-spinner-sm::after, .bps-vtemplates .vb-loading.vb-loading-sm::after, .bps-vtemplates .vb-spinner.vb-spinner-sm::after, .bps-vtemplates .vb-spinner.vb-loading-sm::after {
  width: 16px;
  height: 16px;
  border-width: 2px;
}
.bps-vtemplates .vb-loading.vb-spinner-lg::after, .bps-vtemplates .vb-loading.vb-loading-lg::after, .bps-vtemplates .vb-spinner.vb-spinner-lg::after, .bps-vtemplates .vb-spinner.vb-loading-lg::after {
  width: 32px;
  height: 32px;
  border-width: 4px;
}
.bps-vtemplates .vb-loading.vb-spinner-xl::after, .bps-vtemplates .vb-loading.vb-loading-xl::after, .bps-vtemplates .vb-spinner.vb-spinner-xl::after, .bps-vtemplates .vb-spinner.vb-loading-xl::after {
  width: 48px;
  height: 48px;
  border-width: 4px;
}
@keyframes vb-spin {
  to {
    transform: rotate(360deg);
  }
}
.bps-vtemplates .vb-loading-dots {
  display: inline-flex;
  gap: 4px;
}
.bps-vtemplates .vb-loading-dots span {
  width: 8px;
  height: 8px;
  background-color: var(--accent);
  border-radius: 50%;
  animation: vb-bounce 1.4s ease-in-out infinite both;
}
.bps-vtemplates .vb-loading-dots span:nth-child(1) {
  animation-delay: -0.32s;
}
.bps-vtemplates .vb-loading-dots span:nth-child(2) {
  animation-delay: -0.16s;
}
@keyframes vb-bounce {
  0%, 80%, 100% {
    transform: scale(0);
  }
  40% {
    transform: scale(1);
  }
}
.bps-vtemplates .vb-skeleton {
  background: linear-gradient(90deg, var(--bg2) 25%, var(--bg) 50%, var(--bg2) 75%);
  background-size: 200% 100%;
  animation: vb-shimmer 1.5s infinite;
  border-radius: 10px;
}
.bps-vtemplates .vb-skeleton.vb-skeleton-text {
  height: 1em;
  margin-bottom: 0.5rem;
}
.bps-vtemplates .vb-skeleton.vb-skeleton-text:last-child {
  width: 60%;
}
.bps-vtemplates .vb-skeleton.vb-skeleton-title {
  height: 1.5em;
  width: 80%;
  margin-bottom: 1rem;
}
.bps-vtemplates .vb-skeleton.vb-skeleton-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
}
.bps-vtemplates .vb-skeleton.vb-skeleton-image {
  aspect-ratio: 1.6;
}
.bps-vtemplates .vb-skeleton.vb-skeleton-button {
  height: 36px;
  width: 100px;
}
@keyframes vb-shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}
.bps-vtemplates .vb-loading-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(var(--bg-rgb, 255, 255, 255), 0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
}
.bps-vtemplates .vb-meta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
  font-size: 0.875rem;
  color: var(--text-color3);
}
.bps-vtemplates .vb-meta-item {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.bps-vtemplates .vb-meta-item i {
  color: var(--icon-color);
}
.bps-vtemplates .vb-meta-item a {
  color: inherit;
  text-decoration: none;
}
.bps-vtemplates .vb-meta-item a:hover {
  color: var(--accent);
}
.bps-vtemplates .vb-meta-author {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.bps-vtemplates .vb-meta-author .vb-meta-avatar {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  object-fit: cover;
}
.bps-vtemplates .vb-meta-date, .bps-vtemplates .vb-meta-read-time, .bps-vtemplates .vb-meta-category, .bps-vtemplates .vb-meta-comments {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.bps-vtemplates .vb-meta-row.vb-meta-separated .vb-meta-item + .vb-meta-item::before {
  content: "•";
  margin-right: 1rem;
  opacity: 0.5;
}
.bps-vtemplates .vb-price, .bps-vtemplates .price-display {
  display: inline-flex;
  align-items: baseline;
  gap: 0.5rem;
}
.bps-vtemplates .vb-price .vb-price-current, .bps-vtemplates .vb-price .price-current, .bps-vtemplates .price-display .vb-price-current, .bps-vtemplates .price-display .price-current {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text-highlight);
}
.bps-vtemplates .vb-price .vb-price-original, .bps-vtemplates .vb-price .price-regular, .bps-vtemplates .vb-price .price-sale, .bps-vtemplates .price-display .vb-price-original, .bps-vtemplates .price-display .price-regular, .bps-vtemplates .price-display .price-sale {
  font-size: 1rem;
  color: var(--text-color3);
  text-decoration: line-through;
}
.bps-vtemplates .vb-price .vb-price-badge, .bps-vtemplates .vb-price .price-badge, .bps-vtemplates .price-display .vb-price-badge, .bps-vtemplates .price-display .price-badge {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 2px 0.25rem;
  background-color: #dc3545;
  color: #fff;
  border-radius: 0.25rem;
}
.bps-vtemplates .vb-price.vb-price-sm .vb-price-current, .bps-vtemplates .vb-price.vb-price-sm .price-current, .bps-vtemplates .price-display.vb-price-sm .vb-price-current, .bps-vtemplates .price-display.vb-price-sm .price-current {
  font-size: 1rem;
}
.bps-vtemplates .vb-price.vb-price-sm .vb-price-original, .bps-vtemplates .vb-price.vb-price-sm .price-regular, .bps-vtemplates .price-display.vb-price-sm .vb-price-original, .bps-vtemplates .price-display.vb-price-sm .price-regular {
  font-size: 0.875rem;
}
.bps-vtemplates .vb-price.vb-price-lg .vb-price-current, .bps-vtemplates .vb-price.vb-price-lg .price-current, .bps-vtemplates .price-display.vb-price-lg .vb-price-current, .bps-vtemplates .price-display.vb-price-lg .price-current {
  font-size: 1.875rem;
}
.bps-vtemplates .vb-price.vb-price-lg .vb-price-original, .bps-vtemplates .vb-price.vb-price-lg .price-regular, .bps-vtemplates .price-display.vb-price-lg .vb-price-original, .bps-vtemplates .price-display.vb-price-lg .price-regular {
  font-size: 1.25rem;
}
.bps-vtemplates .vb-price.vb-price-free .vb-price-current, .bps-vtemplates .vb-price.vb-price-free .price-current, .bps-vtemplates .price-display.vb-price-free .vb-price-current, .bps-vtemplates .price-display.vb-price-free .price-current {
  color: #28a745;
}
.bps-vtemplates .vb-price-range {
  display: inline-flex;
  align-items: baseline;
  gap: 0.25rem;
}
.bps-vtemplates .vb-price-range .vb-price-from, .bps-vtemplates .vb-price-range .vb-price-to {
  font-weight: 700;
  color: var(--text-highlight);
}
.bps-vtemplates .vb-price-range .vb-price-separator {
  color: var(--text-color3);
}
.bps-vtemplates .vb-progress, .bps-vtemplates .progress-wrap {
  width: 100%;
}
.bps-vtemplates .vb-progress .vb-progress-label, .bps-vtemplates .vb-progress .progress-label, .bps-vtemplates .progress-wrap .vb-progress-label, .bps-vtemplates .progress-wrap .progress-label {
  display: flex;
  justify-content: space-between;
  margin-bottom: 0.25rem;
  font-size: 0.875rem;
  color: var(--text-color2);
}
.bps-vtemplates .vb-progress .vb-progress-value, .bps-vtemplates .vb-progress .progress-value, .bps-vtemplates .progress-wrap .vb-progress-value, .bps-vtemplates .progress-wrap .progress-value {
  font-weight: 600;
  color: var(--text-highlight);
}
.bps-vtemplates .vb-progress-bar, .bps-vtemplates .progress-bar {
  width: 100%;
  height: 8px;
  background-color: var(--bg2);
  border-radius: 10px;
  overflow: hidden;
}
.bps-vtemplates .vb-progress-bar .vb-progress-fill, .bps-vtemplates .vb-progress-bar .progress-fill, .bps-vtemplates .progress-bar .vb-progress-fill, .bps-vtemplates .progress-bar .progress-fill {
  height: 100%;
  background-color: var(--accent);
  border-radius: 10px;
  transition: width 0.3s ease;
}
.bps-vtemplates .vb-progress-bar.vb-progress-primary .vb-progress-fill, .bps-vtemplates .vb-progress-bar.vb-progress-primary .progress-fill, .bps-vtemplates .progress-bar.vb-progress-primary .vb-progress-fill, .bps-vtemplates .progress-bar.vb-progress-primary .progress-fill {
  background-color: var(--accent, #1f2a37);
}
.bps-vtemplates .vb-progress-bar.vb-progress-success .vb-progress-fill, .bps-vtemplates .vb-progress-bar.vb-progress-success .progress-fill, .bps-vtemplates .progress-bar.vb-progress-success .vb-progress-fill, .bps-vtemplates .progress-bar.vb-progress-success .progress-fill {
  background-color: #28a745;
}
.bps-vtemplates .vb-progress-bar.vb-progress-warning .vb-progress-fill, .bps-vtemplates .vb-progress-bar.vb-progress-warning .progress-fill, .bps-vtemplates .progress-bar.vb-progress-warning .vb-progress-fill, .bps-vtemplates .progress-bar.vb-progress-warning .progress-fill {
  background-color: #ffc107;
}
.bps-vtemplates .vb-progress-bar.vb-progress-danger .vb-progress-fill, .bps-vtemplates .vb-progress-bar.vb-progress-danger .progress-fill, .bps-vtemplates .progress-bar.vb-progress-danger .vb-progress-fill, .bps-vtemplates .progress-bar.vb-progress-danger .progress-fill {
  background-color: #dc3545;
}
.bps-vtemplates .vb-progress-bar.vb-progress-sm, .bps-vtemplates .progress-bar.vb-progress-sm {
  height: 4px;
}
.bps-vtemplates .vb-progress-bar.vb-progress-lg, .bps-vtemplates .progress-bar.vb-progress-lg {
  height: 12px;
}
.bps-vtemplates .vb-progress-bar.vb-progress-striped .vb-progress-fill, .bps-vtemplates .vb-progress-bar.vb-progress-striped .progress-fill, .bps-vtemplates .progress-bar.vb-progress-striped .vb-progress-fill, .bps-vtemplates .progress-bar.vb-progress-striped .progress-fill {
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-size: 1rem 1rem;
}
.bps-vtemplates .vb-progress-bar.vb-progress-animated .vb-progress-fill, .bps-vtemplates .vb-progress-bar.vb-progress-animated .progress-fill, .bps-vtemplates .progress-bar.vb-progress-animated .vb-progress-fill, .bps-vtemplates .progress-bar.vb-progress-animated .progress-fill {
  animation: vb-progress-stripes 1s linear infinite;
}
@keyframes vb-progress-stripes {
  from {
    background-position: 1rem 0;
  }
  to {
    background-position: 0 0;
  }
}
.bps-vtemplates .vb-read-more {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--accent);
  text-decoration: none;
  transition: 0.15s ease-out;
}
.bps-vtemplates .vb-read-more:hover {
  gap: 0.5rem;
}
.bps-vtemplates .vb-read-more:hover .vb-read-more-arrow {
  transform: translateX(4px);
}
.bps-vtemplates .vb-read-more .vb-read-more-arrow {
  transition: transform 0.2s ease;
}
.bps-vtemplates .vb-read-more.vb-read-more-link {
  text-decoration: underline;
  text-underline-offset: 2px;
}
.bps-vtemplates .vb-read-more.vb-read-more-link:hover {
  text-decoration-thickness: 2px;
}
.bps-vtemplates .vb-read-more.vb-read-more-button {
  padding: 0.25rem 1rem;
  background-color: transparent;
  border: 1px solid var(--accent);
  border-radius: 10px;
}
.bps-vtemplates .vb-read-more.vb-read-more-button:hover {
  background-color: var(--accent);
  color: var(--accent-text);
}
.bps-vtemplates .vb-read-more.vb-read-more-ghost {
  padding: 0.25rem;
  border-radius: 10px;
}
.bps-vtemplates .vb-read-more.vb-read-more-ghost:hover {
  background-color: rgba(var(--accent-rgb, 66, 153, 225), 0.1);
}
.bps-vtemplates .vb-social-share {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.bps-vtemplates .vb-social-share .vb-share-label {
  font-size: 0.875rem;
  color: var(--text-color2);
  margin-right: 0.5rem;
}
.bps-vtemplates .vb-share-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  color: #fff;
  text-decoration: none;
  transition: 0.15s ease-out;
}
.bps-vtemplates .vb-share-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
}
.bps-vtemplates .vb-share-btn.vb-share-facebook {
  background-color: #1877f2;
}
.bps-vtemplates .vb-share-btn.vb-share-twitter, .bps-vtemplates .vb-share-btn.vb-share-x {
  background-color: #000;
}
.bps-vtemplates .vb-share-btn.vb-share-linkedin {
  background-color: #0a66c2;
}
.bps-vtemplates .vb-share-btn.vb-share-pinterest {
  background-color: #e60023;
}
.bps-vtemplates .vb-share-btn.vb-share-reddit {
  background-color: #ff4500;
}
.bps-vtemplates .vb-share-btn.vb-share-whatsapp {
  background-color: #25d366;
}
.bps-vtemplates .vb-share-btn.vb-share-telegram {
  background-color: #0088cc;
}
.bps-vtemplates .vb-share-btn.vb-share-email {
  background-color: var(--text-color);
}
.bps-vtemplates .vb-share-btn.vb-share-copy {
  background-color: var(--bg2);
  color: var(--text-color);
  border: 1px solid var(--e-border-color);
}
.bps-vtemplates .vb-share-btn.vb-share-copy:hover {
  background-color: var(--accent);
  color: var(--accent-text);
  border-color: var(--accent);
}
.bps-vtemplates .vb-social-share.vb-share-outline .vb-share-btn {
  background-color: transparent;
  border: 1px solid currentColor;
}
.bps-vtemplates .vb-social-share.vb-share-outline .vb-share-btn.vb-share-facebook {
  color: #1877f2;
}
.bps-vtemplates .vb-social-share.vb-share-outline .vb-share-btn.vb-share-twitter, .bps-vtemplates .vb-social-share.vb-share-outline .vb-share-btn.vb-share-x {
  color: #000;
}
.bps-vtemplates .vb-social-share.vb-share-outline .vb-share-btn.vb-share-linkedin {
  color: #0a66c2;
}
.bps-vtemplates .vb-social-share.vb-share-outline .vb-share-btn:hover {
  color: #fff;
}
.bps-vtemplates .vb-social-share.vb-share-outline .vb-share-btn:hover.vb-share-facebook {
  background-color: #1877f2;
}
.bps-vtemplates .vb-social-share.vb-share-outline .vb-share-btn:hover.vb-share-twitter, .bps-vtemplates .vb-social-share.vb-share-outline .vb-share-btn:hover.vb-share-x {
  background-color: #000;
}
.bps-vtemplates .vb-social-share.vb-share-outline .vb-share-btn:hover.vb-share-linkedin {
  background-color: #0a66c2;
}
.bps-vtemplates .vb-social-share.vb-share-sm .vb-share-btn {
  width: 28px;
  height: 28px;
  font-size: 0.75rem;
}
.bps-vtemplates .vb-social-share.vb-share-lg .vb-share-btn {
  width: 44px;
  height: 44px;
  font-size: 1.25rem;
}
.bps-vtemplates .vb-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.bps-vtemplates .vb-stat .vb-stat-icon {
  font-size: 1.5rem;
  color: var(--accent);
  margin-bottom: 0.5rem;
}
.bps-vtemplates .vb-stat .vb-stat-value {
  font-size: 1.875rem;
  font-weight: 700;
  color: var(--text-highlight);
  line-height: 1.2;
}
.bps-vtemplates .vb-stat .vb-stat-label {
  font-size: 0.875rem;
  color: var(--text-color2);
  margin-top: 0.25rem;
}
.bps-vtemplates .vb-stat .vb-stat-change {
  font-size: 0.75rem;
  margin-top: 0.25rem;
  display: flex;
  align-items: center;
  gap: 2px;
}
.bps-vtemplates .vb-stat .vb-stat-change.vb-stat-up {
  color: #28a745;
}
.bps-vtemplates .vb-stat .vb-stat-change.vb-stat-down {
  color: #dc3545;
}
.bps-vtemplates .vb-stat.vb-stat-left {
  align-items: flex-start;
  text-align: left;
}
.bps-vtemplates .vb-stat.vb-stat-horizontal {
  flex-direction: row;
  align-items: center;
  gap: 1rem;
  text-align: left;
}
.bps-vtemplates .vb-stat.vb-stat-horizontal .vb-stat-icon {
  margin-bottom: 0;
}
.bps-vtemplates .vb-stat.vb-stat-compact .vb-stat-value {
  font-size: 1.5rem;
}
.bps-vtemplates .vb-stat.vb-stat-compact .vb-stat-label {
  font-size: 0.75rem;
}
.bps-vtemplates .vb-stats-row {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
}
.bps-vtemplates .vb-stats-row.vb-stats-dividers {
  gap: 0;
}
.bps-vtemplates .vb-stats-row.vb-stats-dividers .vb-stat {
  padding: 0 1.5rem;
  border-right: 1px solid var(--e-border-color);
}
.bps-vtemplates .vb-stats-row.vb-stats-dividers .vb-stat:first-child {
  padding-left: 0;
}
.bps-vtemplates .vb-stats-row.vb-stats-dividers .vb-stat:last-child {
  padding-right: 0;
  border-right: none;
}
.bps-vtemplates .vb-stats-row.vb-stats-cards .vb-stat {
  flex: 1;
  min-width: 150px;
  padding: 1.25rem;
  background-color: var(--bg2);
  border-radius: 10px;
}
.bps-vtemplates .vb-tabs {
  width: 100%;
}
.bps-vtemplates .vb-tabs-nav {
  display: flex;
  border-bottom: 2px solid var(--e-border-color);
  margin-bottom: 1.25rem;
  gap: 0.25rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.bps-vtemplates .vb-tabs-nav::-webkit-scrollbar {
  display: none;
}
.bps-vtemplates .vb-tab-item {
  padding: 1rem 1.25rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text-color2);
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  cursor: pointer;
  white-space: nowrap;
  transition: 0.15s ease-out;
}
.bps-vtemplates .vb-tab-item:hover {
  color: var(--text-color);
}
.bps-vtemplates .vb-tab-item.vb-tab-active, .bps-vtemplates .vb-tab-item[aria-selected="true"] {
  color: var(--accent);
  border-bottom-color: var(--accent);
}
.bps-vtemplates .vb-tab-item .vb-tab-icon {
  margin-right: 0.25rem;
}
.bps-vtemplates .vb-tab-item .vb-tab-badge {
  margin-left: 0.25rem;
  padding: 2px 0.25rem;
  font-size: 0.75rem;
  background-color: var(--bg2);
  border-radius: 0.25rem;
}
.bps-vtemplates .vb-tab-panel {
  display: none;
}
.bps-vtemplates .vb-tab-panel.vb-tab-panel-active, .bps-vtemplates .vb-tab-panel[aria-hidden="false"] {
  display: block;
}
.bps-vtemplates .vb-tabs.vb-tabs-pills .vb-tabs-nav {
  border-bottom: none;
  background-color: var(--bg2);
  padding: 0.25rem;
  border-radius: 10px;
  gap: 0.25rem;
}
.bps-vtemplates .vb-tabs.vb-tabs-pills .vb-tab-item {
  border-bottom: none;
  margin-bottom: 0;
  border-radius: 10px;
}
.bps-vtemplates .vb-tabs.vb-tabs-pills .vb-tab-item.vb-tab-active {
  background-color: var(--bg);
  color: var(--text-highlight);
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
}
.bps-vtemplates .vb-tabs.vb-tabs-boxed .vb-tabs-nav {
  border-bottom: none;
  gap: 0.5rem;
}
.bps-vtemplates .vb-tabs.vb-tabs-boxed .vb-tab-item {
  border: 1px solid var(--e-border-color);
  border-radius: 10px 10px 0 0;
  margin-bottom: 0;
}
.bps-vtemplates .vb-tabs.vb-tabs-boxed .vb-tab-item.vb-tab-active {
  background-color: var(--bg);
  border-bottom-color: var(--bg);
  color: var(--text-highlight);
}
.bps-vtemplates .vb-tabs.vb-tabs-boxed .vb-tabs-content {
  border: 1px solid var(--e-border-color);
  border-radius: 0 10px 10px 10px;
  padding: 1.25rem;
}
.bps-vtemplates .vb-tabs.vb-tabs-vertical {
  display: flex;
  gap: 1.25rem;
}
.bps-vtemplates .vb-tabs.vb-tabs-vertical .vb-tabs-nav {
  flex-direction: column;
  border-bottom: none;
  border-right: 2px solid var(--e-border-color);
  margin-bottom: 0;
  padding-right: 1.25rem;
  min-width: 150px;
}
.bps-vtemplates .vb-tabs.vb-tabs-vertical .vb-tab-item {
  border-bottom: none;
  border-right: 2px solid transparent;
  margin-right: -2px;
  margin-bottom: 0;
  text-align: left;
}
.bps-vtemplates .vb-tabs.vb-tabs-vertical .vb-tab-item.vb-tab-active {
  border-right-color: var(--accent);
}
.bps-vtemplates .vb-tabs.vb-tabs-vertical .vb-tabs-content {
  flex: 1;
}
.bps-vtemplates .vb-taxonomy-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.bps-vtemplates .vb-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.25rem 1rem;
  font-size: 0.75rem;
  color: var(--text-color);
  background-color: var(--bg2);
  border: 1px solid var(--e-border-color);
  border-radius: 100px;
  text-decoration: none;
  transition: 0.15s ease-out;
}
.bps-vtemplates .vb-pill:hover {
  background-color: var(--accent);
  border-color: var(--accent);
  color: var(--accent-text);
}
.bps-vtemplates .vb-pill.vb-pill-active {
  background-color: var(--accent);
  border-color: var(--accent);
  color: var(--accent-text);
}
.bps-vtemplates .vb-pill.vb-pill-primary {
  background-color: rgba(var(--accent-rgb, 66, 153, 225), 0.1);
  border-color: var(--accent);
  color: var(--accent);
}
.bps-vtemplates .vb-pill.vb-pill-primary:hover {
  background-color: var(--accent);
  color: var(--accent-text);
}
.bps-vtemplates .vb-pill.vb-pill-info {
  background-color: rgba(13, 202, 240, 0.1);
  border-color: rgba(13, 202, 240, 0.5);
  color: #0aa1c0;
}
.bps-vtemplates .vb-pill.vb-pill-info:hover {
  background-color: #0dcaf0;
  border-color: #0dcaf0;
  color: #fff;
}
.bps-vtemplates .vb-pill.vb-pill-success {
  background-color: rgba(40, 167, 69, 0.1);
  border-color: rgba(40, 167, 69, 0.5);
  color: #1e7e34;
}
.bps-vtemplates .vb-pill.vb-pill-success:hover {
  background-color: #28a745;
  border-color: #28a745;
  color: #fff;
}
.bps-vtemplates .vb-pill.vb-pill-warning {
  background-color: rgba(255, 193, 7, 0.1);
  border-color: rgba(255, 193, 7, 0.5);
  color: #ba8b00;
}
.bps-vtemplates .vb-pill.vb-pill-warning:hover {
  background-color: #ffc107;
  border-color: #ffc107;
  color: #000;
}
.bps-vtemplates .vb-pill.vb-pill-danger {
  background-color: rgba(220, 53, 69, 0.1);
  border-color: rgba(220, 53, 69, 0.5);
  color: #bd2130;
}
.bps-vtemplates .vb-pill.vb-pill-danger:hover {
  background-color: #dc3545;
  border-color: #dc3545;
  color: #fff;
}
.bps-vtemplates .vb-pill .vb-pill-count {
  font-size: 10px;
  padding: 1px 6px;
  background-color: rgba(0, 0, 0, 0.1);
  border-radius: 100px;
}
.bps-vtemplates .vb-pill .vb-pill-remove {
  margin-left: 0.25rem;
  opacity: 0.7;
  cursor: pointer;
}
.bps-vtemplates .vb-pill .vb-pill-remove:hover {
  opacity: 1;
}
.bps-vtemplates .vb-taxonomy-pills.vb-pills-colored .vb-pill:nth-child(5n+1) {
  background-color: rgba(13, 202, 240, 0.1);
  border-color: rgba(13, 202, 240, 0.3);
  color: #0dcaf0;
}
.bps-vtemplates .vb-taxonomy-pills.vb-pills-colored .vb-pill:nth-child(5n+1):hover {
  background-color: #0dcaf0;
  color: #fff;
}
.bps-vtemplates .vb-taxonomy-pills.vb-pills-colored .vb-pill:nth-child(5n+2) {
  background-color: rgba(40, 167, 69, 0.1);
  border-color: rgba(40, 167, 69, 0.3);
  color: #28a745;
}
.bps-vtemplates .vb-taxonomy-pills.vb-pills-colored .vb-pill:nth-child(5n+2):hover {
  background-color: #28a745;
  color: #fff;
}
.bps-vtemplates .vb-taxonomy-pills.vb-pills-colored .vb-pill:nth-child(5n+3) {
  background-color: rgba(255, 193, 7, 0.1);
  border-color: rgba(255, 193, 7, 0.3);
  color: #ba8b00;
}
.bps-vtemplates .vb-taxonomy-pills.vb-pills-colored .vb-pill:nth-child(5n+3):hover {
  background-color: #ffc107;
  color: #000;
}
.bps-vtemplates .vb-taxonomy-pills.vb-pills-colored .vb-pill:nth-child(5n+4) {
  background-color: rgba(220, 53, 69, 0.1);
  border-color: rgba(220, 53, 69, 0.3);
  color: #dc3545;
}
.bps-vtemplates .vb-taxonomy-pills.vb-pills-colored .vb-pill:nth-child(5n+4):hover {
  background-color: #dc3545;
  color: #fff;
}
.bps-vtemplates .vb-taxonomy-pills.vb-pills-colored .vb-pill:nth-child(5n+5) {
  background-color: rgba(155, 89, 182, 0.1);
  border-color: rgba(155, 89, 182, 0.3);
  color: #9b59b6;
}
.bps-vtemplates .vb-taxonomy-pills.vb-pills-colored .vb-pill:nth-child(5n+5):hover {
  background-color: #9b59b6;
  color: #fff;
}
.bps-vtemplates .vb-title {
  color: var(--text-highlight);
  font-weight: 700;
  line-height: 1.2;
  margin: 0;
}
.bps-vtemplates .vb-title a {
  color: inherit;
  text-decoration: none;
}
.bps-vtemplates .vb-title a:hover {
  color: var(--accent);
}
.bps-vtemplates .vb-title.vb-title-xs {
  font-size: 0.875rem;
}
.bps-vtemplates .vb-title.vb-title-sm {
  font-size: 1rem;
}
.bps-vtemplates .vb-title.vb-title-md {
  font-size: 1.25rem;
}
.bps-vtemplates .vb-title.vb-title-lg {
  font-size: 1.5rem;
}
.bps-vtemplates .vb-title.vb-title-xl {
  font-size: 1.875rem;
}
.bps-vtemplates .vb-title.vb-title-2xl {
  font-size: 2.25rem;
}
.bps-vtemplates .vb-title.vb-title-with-subtitle {
  margin-bottom: 0.25rem;
}
.bps-vtemplates .vb-subtitle {
  color: var(--text-color2);
  font-size: 0.875rem;
  font-weight: 400;
  margin-top: 0.25rem;
}
.bps-vtemplates .vb-section-title {
  margin-bottom: 1.5rem;
}
.bps-vtemplates .vb-section-title .vb-title {
  margin-bottom: 0.5rem;
}
.bps-vtemplates .vb-section-title .vb-subtitle {
  max-width: 600px;
}
.bps-vtemplates .vb-section-title.vb-section-title-center {
  text-align: center;
}
.bps-vtemplates .vb-section-title.vb-section-title-center .vb-subtitle {
  margin-left: auto;
  margin-right: auto;
}
.bps-vtemplates .vb-video-embed {
  position: relative;
  width: 100%;
  background-color: var(--bg2);
  border-radius: 0.5rem;
  overflow: hidden;
}
.bps-vtemplates .vb-video-embed iframe, .bps-vtemplates .vb-video-embed video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}
.bps-vtemplates .vb-video-embed.vb-video-16by9 {
  aspect-ratio: 1.7777777778;
}
.bps-vtemplates .vb-video-embed.vb-video-4by3 {
  aspect-ratio: 1.3333333333;
}
.bps-vtemplates .vb-video-embed.vb-video-1by1 {
  aspect-ratio: 1;
}
.bps-vtemplates .vb-video-embed.vb-video-21by9 {
  aspect-ratio: 2.3333333333;
}
.bps-vtemplates .vb-video-embed:not([class*="vb-video-"]) {
  aspect-ratio: 1.7777777778;
}
.bps-vtemplates .vb-video-thumbnail {
  position: relative;
  cursor: pointer;
}
.bps-vtemplates .vb-video-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.bps-vtemplates .vb-video-thumbnail .vb-video-play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 72px;
  height: 72px;
  background-color: rgba(0, 0, 0, 0.7);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.5rem;
  transition: 0.15s ease-out;
}
.bps-vtemplates .vb-video-thumbnail .vb-video-play::before {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 12px 0 12px 20px;
  border-color: transparent transparent transparent #fff;
  margin-left: 4px;
}
.bps-vtemplates .vb-video-thumbnail .vb-video-play i {
  display: none;
}
.bps-vtemplates .vb-video-thumbnail:hover .vb-video-play {
  transform: translate(-50%, -50%) scale(1.1);
  background-color: var(--accent);
}
.bps-vtemplates .vb-video-caption {
  padding: 0.5rem;
  font-size: 0.875rem;
  color: var(--text-color2);
  text-align: center;
}
@media screen and (max-width: 992px) {
  .bps-vtemplates .vb-stats-row {
    gap: 1.25rem;
  }
  .bps-vtemplates .vb-stats-row.vb-stats-dividers .vb-stat {
    padding: 0 1.25rem;
  }
  .bps-vtemplates .vb-tabs.vb-tabs-vertical {
    flex-direction: column;
  }
  .bps-vtemplates .vb-tabs.vb-tabs-vertical .vb-tabs-nav {
    flex-direction: row;
    border-right: none;
    border-bottom: 2px solid var(--e-border-color);
    padding-right: 0;
    padding-bottom: 1rem;
    margin-bottom: 1.25rem;
    min-width: auto;
    overflow-x: auto;
  }
  .bps-vtemplates .vb-tabs.vb-tabs-vertical .vb-tab-item {
    border-right: none;
    border-bottom: 2px solid transparent;
    margin-right: 0;
    margin-bottom: -2px;
  }
  .bps-vtemplates .vb-tabs.vb-tabs-vertical .vb-tab-item.vb-tab-active {
    border-right-color: transparent;
    border-bottom-color: var(--accent);
  }
}
@media screen and (max-width: 768px) {
  .bps-vtemplates .vb-author-byline.vb-author-byline-inline .vb-author-info {
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
  }
  .bps-vtemplates .vb-author-byline.vb-author-byline-inline .vb-author-date::before {
    display: none;
  }
  .bps-vtemplates .vb-stats-row {
    flex-direction: column;
    gap: 1.25rem;
  }
  .bps-vtemplates .vb-stats-row.vb-stats-dividers .vb-stat {
    padding: 1.25rem 0;
    border-right: none;
    border-bottom: 1px solid var(--e-border-color);
  }
  .bps-vtemplates .vb-stats-row.vb-stats-dividers .vb-stat:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }
  .bps-vtemplates .vb-stats-row.vb-stats-dividers .vb-stat:first-child {
    padding-top: 0;
  }
  .bps-vtemplates .vb-social-share {
    flex-wrap: wrap;
    justify-content: center;
  }
  .bps-vtemplates .vb-social-share .vb-share-label {
    width: 100%;
    text-align: center;
    margin-right: 0;
    margin-bottom: 0.5rem;
  }
  .bps-vtemplates .vb-tabs-nav {
    gap: 0;
  }
  .bps-vtemplates .vb-tab-item {
    padding: 0.5rem 1rem;
    font-size: 0.75rem;
  }
  .bps-vtemplates .vb-video-thumbnail .vb-video-play {
    width: 56px;
    height: 56px;
  }
  .bps-vtemplates .vb-video-thumbnail .vb-video-play::before {
    border-width: 10px 0 10px 16px;
  }
  .bps-vtemplates .vb-price .vb-price-current {
    font-size: 1.25rem;
  }
}
.dark .bps-vtemplates .vb-alert.vb-alert-info, .dark2 .bps-vtemplates .vb-alert.vb-alert-info, .dark3 .bps-vtemplates .vb-alert.vb-alert-info {
  background-color: rgba(13, 202, 240, 0.15);
  color: #6ce0f7;
}
.dark .bps-vtemplates .vb-alert.vb-alert-success, .dark2 .bps-vtemplates .vb-alert.vb-alert-success, .dark3 .bps-vtemplates .vb-alert.vb-alert-success {
  background-color: rgba(40, 167, 69, 0.15);
  color: #5dd879;
}
.dark .bps-vtemplates .vb-alert.vb-alert-warning, .dark2 .bps-vtemplates .vb-alert.vb-alert-warning, .dark3 .bps-vtemplates .vb-alert.vb-alert-warning {
  background-color: rgba(255, 193, 7, 0.15);
  color: #ffce3a;
}
.dark .bps-vtemplates .vb-alert.vb-alert-danger, .dark2 .bps-vtemplates .vb-alert.vb-alert-danger, .dark3 .bps-vtemplates .vb-alert.vb-alert-danger {
  background-color: rgba(220, 53, 69, 0.15);
  color: #eb8c95;
}
.dark .bps-vtemplates .vb-social-share.vb-share-outline .vb-share-btn.vb-share-twitter, .dark2 .bps-vtemplates .vb-social-share.vb-share-outline .vb-share-btn.vb-share-twitter, .dark3 .bps-vtemplates .vb-social-share.vb-share-outline .vb-share-btn.vb-share-twitter, .dark .bps-vtemplates .vb-social-share.vb-share-outline .vb-share-btn.vb-share-x, .dark2 .bps-vtemplates .vb-social-share.vb-share-outline .vb-share-btn.vb-share-x, .dark3 .bps-vtemplates .vb-social-share.vb-share-outline .vb-share-btn.vb-share-x {
  color: #fff;
}
.dark .bps-vtemplates .vb-skeleton, .dark2 .bps-vtemplates .vb-skeleton, .dark3 .bps-vtemplates .vb-skeleton {
  background: linear-gradient(90deg, var(--bg) 25%, var(--bg2) 50%, var(--bg) 75%);
  background-size: 200% 100%;
}
.dark .bps-vtemplates .vb-loading-overlay, .dark2 .bps-vtemplates .vb-loading-overlay, .dark3 .bps-vtemplates .vb-loading-overlay {
  background-color: rgba(0, 0, 0, 0.7);
}
.bps-vtemplates .card-item-hero {
  position: relative;
  min-height: 450px;
  background-size: cover;
  background-position: center;
  border-radius: 0.5rem;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
}
.bps-vtemplates .card-item-hero .card-item-link-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
}
.bps-vtemplates .card-item-hero .card-item-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.4) 50%, transparent 100%);
  display: flex;
  align-items: flex-end;
  padding: 2rem;
}
.bps-vtemplates .card-item-hero .card-item-overlay-content {
  position: relative;
  z-index: 2;
  color: #fff;
}
.bps-vtemplates .card-item-hero .card-item-title-lg {
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.3;
  margin: 0.5rem 0;
}
.bps-vtemplates .card-item-hero .card-item-title-lg a {
  color: #fff;
  text-decoration: none;
}
.bps-vtemplates .card-item-hero .card-item-title-lg a:hover {
  text-decoration: underline;
}
.bps-vtemplates .card-item-hero .card-item-meta {
  border: none;
  padding: 0;
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.875rem;
  display: flex;
  gap: 1rem;
}
.bps-vtemplates .card-item-hero .card-item-date, .bps-vtemplates .card-item-hero .card-item-author {
  color: rgba(255, 255, 255, 0.9);
}
.bps-vtemplates .card-item-hero .card-item-date i, .bps-vtemplates .card-item-hero .card-item-author i {
  color: rgba(255, 255, 255, 0.7);
}
.bps-vtemplates .card-item-video .card-item-image {
  position: relative;
  aspect-ratio: 1.7777777778;
}
.bps-vtemplates .card-item-video .card-item-image-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: 0.3s ease-out;
  opacity: 1;
}
.bps-vtemplates .card-item-video:hover .card-item-image-overlay {
  background: rgba(0, 0, 0, 0.5);
}
.bps-vtemplates .card-item-video .card-item-play-icon {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--accent-text);
  font-size: 1.25rem;
  transition: 0.3s ease-out;
}
.bps-vtemplates .card-item-video:hover .card-item-play-icon {
  transform: scale(1.1);
}
.bps-vtemplates .card-item-video .card-item-body {
  padding: 1rem;
}
.bps-vtemplates .card-item-video .card-item-title {
  font-size: 1.125rem;
  margin: 0;
}
.bps-vtemplates .card-item-opinion {
  border: none;
  background: transparent;
}
.bps-vtemplates .card-item-opinion:hover {
  transform: none;
  box-shadow: none;
}
.bps-vtemplates .card-item-opinion .card-item-body {
  padding: 1rem 0;
}
.bps-vtemplates .card-item-opinion .card-item-title {
  font-size: 1.1rem;
  margin-bottom: 0.5rem;
}
.bps-vtemplates .card-item-opinion .card-item-excerpt {
  color: var(--text-color2);
  font-size: 0.875rem;
  line-height: 1.6;
  margin-bottom: 0.5rem;
}
.bps-vtemplates .card-item-opinion .card-item-meta {
  border: none;
  padding: 0;
  justify-content: flex-start;
  font-size: 0.875rem;
}
.bps-vtemplates .card-item-opinion .card-item-author-title {
  color: var(--text-color3);
}
.bps-vtemplates .list-item-compact {
  padding: 1rem 0;
  border: none;
  border-bottom: 1px solid var(--e-border-color);
  border-radius: 0;
  gap: 1rem;
}
.bps-vtemplates .list-item-compact:last-child {
  border-bottom: none;
}
.bps-vtemplates .list-item-compact:hover {
  box-shadow: none;
  border-color: var(--e-border-color);
}
.bps-vtemplates .list-item-compact .list-item-image {
  width: 80px;
  height: 80px;
  flex-shrink: 0;
  border-radius: 10px;
}
.bps-vtemplates .list-item-compact .list-item-content {
  justify-content: center;
}
.bps-vtemplates .list-item-compact .list-item-title {
  font-size: 0.875rem;
  margin-bottom: 0.25rem;
}
.bps-vtemplates .list-item-compact .list-item-meta-top {
  margin: 0;
}
.bps-vtemplates .list-item-compact .list-item-views {
  color: var(--text-color3);
  font-size: 0.75rem;
}
.bps-vtemplates .card-item-category.cat-politics {
  background-color: var(--accent);
  color: var(--accent-text);
}
.bps-vtemplates .card-item-category.cat-sports {
  background-color: var(--accent-2);
  color: var(--accent-text-2);
}
.bps-vtemplates .card-item-category.cat-business {
  background-color: var(--accent-3);
  color: var(--accent-text-3);
}
.bps-vtemplates .card-item-category.cat-entertainment {
  background-color: var(--accent-2);
  color: var(--accent-text-2);
}
.bps-vtemplates .card-item-category.cat-tourism, .bps-vtemplates .card-item-category.cat-travel {
  background-color: var(--accent);
  color: var(--accent-text);
}
.bps-vtemplates .card-item-category.cat-infrastructure {
  background-color: var(--accent-3);
  color: var(--accent-text-3);
}
.bps-vtemplates .card-item-category.cat-opinion {
  background-color: var(--accent-2);
  color: var(--accent-text-2);
}
.bps-vtemplates .card-item-category.cat-technology, .bps-vtemplates .card-item-category.cat-tech {
  background-color: var(--accent);
  color: var(--accent-text);
}
.bps-vtemplates .card-item-category.cat-health {
  background-color: var(--accent-2);
  color: var(--accent-text-2);
}
.bps-vtemplates .card-item-category.cat-education {
  background-color: var(--accent-3);
  color: var(--accent-text-3);
}
.bps-vtemplates .card-item-category.cat-lifestyle {
  background-color: var(--accent);
  color: var(--accent-text);
}
.bps-vtemplates .card-item-category.cat-world {
  background-color: var(--accent-2);
  color: var(--accent-text-2);
}
.bps-vtemplates .card-item-category.cat-local {
  background-color: var(--accent-3);
  color: var(--accent-text-3);
}
.bps-vtemplates .sidebar-box {
  background: var(--bg);
  border-radius: 0.5rem;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
  margin-bottom: 1.5rem;
  overflow: hidden;
}
.bps-vtemplates .sidebar-box-header {
  padding: 1rem 1.25rem;
  font-weight: 700;
  font-size: 0.875rem;
  color: var(--accent-text);
  display: flex;
  align-items: center;
  gap: 0.5rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.bps-vtemplates .sidebar-box-header.header-trending {
  background: var(--accent);
}
.bps-vtemplates .sidebar-box-header.header-opinion {
  background: var(--accent-2);
}
.bps-vtemplates .sidebar-box-header.header-popular {
  background: var(--accent-3);
}
.bps-vtemplates .sidebar-box-content {
  padding: 0.5rem 1.25rem;
}
.bps-vtemplates .section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 3px solid var(--accent);
  padding-bottom: 1rem;
  margin-bottom: 1.5rem;
}
.bps-vtemplates .section-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text-highlight);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.bps-vtemplates .section-title i {
  color: var(--accent);
}
.bps-vtemplates .section-link {
  color: var(--accent);
  text-decoration: none;
  font-size: 0.875rem;
  font-weight: 600;
}
.bps-vtemplates .section-link:hover {
  text-decoration: underline;
}
.bps-vtemplates .news-grid-2col {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}
.bps-vtemplates .news-grid-3col {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
.bps-vtemplates .news-grid-hero {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 1.25rem;
  min-height: 450px;
}
.bps-vtemplates .news-grid-hero .news-grid-hero-sidebar {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
.bps-vtemplates .news-main-layout {
  display: grid;
  grid-template-columns: 1fr 350px;
  gap: 2rem;
}
@media screen and (max-width: 992px) {
  .bps-vtemplates .card-item-hero {
    min-height: 350px;
  }
  .bps-vtemplates .card-item-hero .card-item-title-lg {
    font-size: 1.5rem;
  }
  .bps-vtemplates .card-item-hero .card-item-overlay {
    padding: 1.5rem;
  }
  .bps-vtemplates .news-grid-hero {
    grid-template-columns: 1fr;
  }
  .bps-vtemplates .news-grid-hero .news-grid-hero-sidebar {
    flex-direction: row;
  }
  .bps-vtemplates .news-main-layout {
    grid-template-columns: 1fr;
  }
  .bps-vtemplates .news-grid-3col {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 768px) {
  .bps-vtemplates .card-item-hero {
    min-height: 280px;
  }
  .bps-vtemplates .card-item-hero .card-item-title-lg {
    font-size: 1.25rem;
  }
  .bps-vtemplates .card-item-hero .card-item-overlay {
    padding: 1.25rem;
  }
  .bps-vtemplates .news-grid-2col, .bps-vtemplates .news-grid-3col {
    grid-template-columns: 1fr;
  }
  .bps-vtemplates .news-grid-hero .news-grid-hero-sidebar {
    flex-direction: column;
  }
  .bps-vtemplates .list-item-compact .list-item-image {
    width: 70px;
    height: 70px;
  }
}
.bps-vtemplates .vb-author-bio-box {
  margin-bottom: 1.5rem;
}
.bps-vtemplates .vb-bio-default {
  border: 1px solid var(--bs-border-color, #dee2e6);
}
.bps-vtemplates .vb-bio-default .vb-author-avatar img, .bps-vtemplates .vb-bio-default .vb-author-avatar-placeholder {
  object-fit: cover;
}
.bps-vtemplates .vb-bio-default .vb-author-name {
  margin-bottom: 0.5rem;
  font-weight: 600;
  color: var(--bs-heading-color, #212529);
}
.bps-vtemplates .vb-bio-default .vb-author-name a {
  color: inherit;
  transition: color 0.2s ease;
}
.bps-vtemplates .vb-bio-default .vb-author-name a:hover {
  color: var(--bs-primary, #0d6efd);
}
.bps-vtemplates .vb-bio-default .vb-author-bio {
  font-size: 0.9rem;
  line-height: 1.5;
  margin-bottom: 0.75rem;
}
.bps-vtemplates .vb-bio-minimal {
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--bs-border-color, #dee2e6);
}
.bps-vtemplates .vb-bio-minimal .vb-author-avatar img {
  object-fit: cover;
}
.bps-vtemplates .vb-bio-minimal .vb-author-name {
  font-size: 1rem;
  line-height: 1.4;
}
.bps-vtemplates .vb-bio-minimal .vb-author-name a:hover {
  color: var(--bs-primary, #0d6efd);
}
.bps-vtemplates .vb-bio-minimal .vb-author-bio {
  font-size: 0.875rem;
  line-height: 1.4;
  margin-top: 0.25rem;
}
.bps-vtemplates .vb-bio-card {
  border: 1px solid var(--bs-border-color, #dee2e6);
}
.bps-vtemplates .vb-bio-card .vb-author-avatar img, .bps-vtemplates .vb-bio-card .vb-author-avatar-placeholder {
  object-fit: cover;
  margin: 0 auto;
}
.bps-vtemplates .vb-bio-card .vb-author-name {
  font-weight: 600;
  color: var(--bs-heading-color, #212529);
}
.bps-vtemplates .vb-bio-card .vb-author-name a {
  color: inherit;
  transition: color 0.2s ease;
}
.bps-vtemplates .vb-bio-card .vb-author-name a:hover {
  color: var(--bs-primary, #0d6efd);
}
.bps-vtemplates .vb-bio-card .vb-author-bio {
  font-size: 0.9rem;
  line-height: 1.6;
  max-width: 500px;
  margin-left: auto;
  margin-right: auto;
}
.bps-vtemplates .vb-author-avatar-placeholder {
  background-color: var(--bs-light, #f8f9fa);
  border: 2px solid var(--bs-border-color, #dee2e6);
}
@media (max-width: 576px) {
  .bps-vtemplates .vb-bio-default .card-body {
    padding: 1rem;
  }
  .bps-vtemplates .vb-bio-default .d-flex {
    flex-direction: column;
    text-align: center;
  }
  .bps-vtemplates .vb-bio-default .d-flex .vb-author-avatar, .bps-vtemplates .vb-bio-default .d-flex .vb-author-avatar-placeholder {
    margin: 0 auto 1rem;
  }
  .bps-vtemplates .vb-bio-minimal .d-flex {
    flex-direction: column;
    text-align: center;
    gap: 0.5rem !important;
  }
}
@media (prefers-color-scheme: dark) {
  .bps-vtemplates .vb-author-bio-box .vb-author-name a {
    color: var(--bs-light, #f8f9fa);
  }
  .bps-vtemplates .vb-author-bio-box .vb-author-name a:hover {
    color: var(--bs-primary, #0d6efd);
  }
}
.bps-vtemplates .vb-status-indicator {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: var(--text-color);
}
.bps-vtemplates .vb-status-indicator .vb-status-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}
.bps-vtemplates .vb-status-indicator.vb-status-online .vb-status-dot {
  background-color: #28a745;
  box-shadow: 0 0 0 2px rgba(40, 167, 69, 0.2);
}
.bps-vtemplates .vb-status-indicator.vb-status-offline .vb-status-dot {
  background-color: var(--text-color3);
  box-shadow: 0 0 0 2px rgba(102, 102, 102, 0.2);
}
.bps-vtemplates .vb-status-indicator.vb-status-busy .vb-status-dot {
  background-color: #dc3545;
  box-shadow: 0 0 0 2px rgba(220, 53, 69, 0.2);
}
.bps-vtemplates .vb-status-indicator.vb-status-away .vb-status-dot {
  background-color: #ffc107;
  box-shadow: 0 0 0 2px rgba(255, 193, 7, 0.2);
}
.bps-vtemplates .vb-status-indicator.vb-status-pulse .vb-status-dot {
  animation: status-pulse 2s ease-in-out infinite;
}
.bps-vtemplates .vb-status-indicator.vb-status-sm .vb-status-dot {
  width: 8px;
  height: 8px;
}
.bps-vtemplates .vb-status-indicator.vb-status-lg .vb-status-dot {
  width: 14px;
  height: 14px;
}
@keyframes status-pulse {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.5;
    transform: scale(1.2);
  }
}
.bps-vtemplates .vb-filter-panel {
  background: var(--bg);
  border: 1px solid var(--e-border-color);
  border-radius: 0.5rem;
  padding: 1.25rem;
}
.bps-vtemplates .vb-filter-panel .vb-filter-section {
  margin-bottom: 1.25rem;
}
.bps-vtemplates .vb-filter-panel .vb-filter-section:last-child {
  margin-bottom: 0;
}
.bps-vtemplates .vb-filter-panel .vb-filter-section.collapsed .vb-filter-content {
  display: none;
}
.bps-vtemplates .vb-filter-panel .vb-filter-section.collapsed .vb-filter-collapse-icon {
  transform: rotate(-90deg);
}
.bps-vtemplates .vb-filter-panel .vb-filter-title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-highlight);
  margin: 0 0 0.5rem 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.bps-vtemplates .vb-filter-panel .vb-filter-collapse-icon {
  color: var(--text-color2);
  cursor: pointer;
  transition: 0.15s ease-out;
}
.bps-vtemplates .vb-filter-panel .vb-filter-content {
  display: block;
}
.bps-vtemplates .vb-filter-panel .vb-filter-divider {
  height: 1px;
  background-color: var(--e-border-color);
  margin: 1.25rem 0;
}
.bps-vtemplates .vb-filter-panel .vb-filter-actions {
  display: flex;
  gap: 0.5rem;
  margin-top: 1.25rem;
}
.bps-vtemplates .vb-filter-panel .vb-filter-option {
  display: flex;
  align-items: center;
  padding: 0.5rem 0;
  cursor: pointer;
}
.bps-vtemplates .vb-filter-panel .vb-filter-option input[type="checkbox"], .bps-vtemplates .vb-filter-panel .vb-filter-option input[type="radio"] {
  margin-right: 0.5rem;
  cursor: pointer;
}
.bps-vtemplates .vb-filter-panel .vb-filter-option-label {
  flex: 1;
  color: var(--text-color);
  cursor: pointer;
}
.bps-vtemplates .vb-filter-panel .vb-filter-option-count {
  color: var(--text-color3);
  font-size: 0.875rem;
}
.bps-vtemplates .vb-filter-search {
  position: relative;
  margin-bottom: 1.25rem;
}
.bps-vtemplates .vb-filter-search .vb-filter-search-input {
  width: 100%;
  padding: 0.5rem 1.5rem 0.5rem 1.5rem;
  border: 2px solid var(--e-border-color);
  border-radius: 10px;
  font-size: 1rem;
  color: var(--text-color);
  background-color: var(--bg);
  transition: 0.15s ease-out;
}
.bps-vtemplates .vb-filter-search .vb-filter-search-input:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(var(--accent), 0.1);
}
.bps-vtemplates .vb-filter-search .vb-filter-search-icon {
  position: absolute;
  left: 0.5rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-color3);
  pointer-events: none;
}
.bps-vtemplates .vb-filter-search .vb-filter-search-clear {
  position: absolute;
  right: 0.5rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-color3);
  cursor: pointer;
  background: none;
  border: none;
  padding: 0.25rem;
  display: none;
}
.bps-vtemplates .vb-filter-search .vb-filter-search-clear:hover {
  color: var(--accent);
}
.bps-vtemplates .vb-filter-search .vb-filter-search-input:not(:placeholder-shown) ~ .vb-filter-search-clear {
  display: block;
}
.bps-vtemplates .vb-filter-search .vb-filter-search-suggestions {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  margin-top: 0.25rem;
  background: var(--bg);
  border: 1px solid var(--e-border-color);
  border-radius: 10px;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  max-height: 300px;
  overflow-y: auto;
  z-index: 100;
  display: none;
}
.bps-vtemplates .vb-filter-search .vb-filter-search-suggestions.active {
  display: block;
}
.bps-vtemplates .vb-filter-search .vb-filter-search-suggestion {
  padding: 0.5rem 1rem;
  cursor: pointer;
  border-bottom: 1px solid var(--e-border-color);
  transition: 0.15s ease-out;
}
.bps-vtemplates .vb-filter-search .vb-filter-search-suggestion:last-child {
  border-bottom: none;
}
.bps-vtemplates .vb-filter-search .vb-filter-search-suggestion:hover {
  background-color: var(--bg2);
}
.bps-vtemplates .vb-card-hero {
  position: relative;
  min-height: 400px;
  background: var(--bg2);
  border-radius: 0.5rem;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
}
.bps-vtemplates .vb-card-hero .vb-card-hero-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.bps-vtemplates .vb-card-hero .vb-card-hero-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.bps-vtemplates .vb-card-hero .vb-card-hero-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));
  z-index: 2;
}
.bps-vtemplates .vb-card-hero .vb-card-hero-content {
  position: relative;
  z-index: 3;
  padding: 2rem;
  color: white;
  width: 100%;
}
.bps-vtemplates .vb-card-hero .vb-card-hero-badge {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  background-color: var(--accent);
  color: white;
  font-size: 0.75rem;
  font-weight: 600;
  border-radius: 0.25rem;
  margin-bottom: 1rem;
}
.bps-vtemplates .vb-card-hero .vb-card-hero-title {
  font-size: 1.875rem;
  font-weight: 700;
  margin: 0 0 0.5rem 0;
  color: white;
}
.bps-vtemplates .vb-card-hero .vb-card-hero-text {
  font-size: 1rem;
  margin: 0 0 1.25rem 0;
  opacity: 0.9;
}
.bps-vtemplates .vb-card-hero .vb-card-hero-actions {
  display: flex;
  gap: 0.5rem;
}
.bps-vtemplates .vb-card-video {
  position: relative;
  background: var(--bg);
  border: 1px solid var(--e-border-color);
  border-radius: 0.5rem;
  overflow: hidden;
}
.bps-vtemplates .vb-card-video .vb-card-video-thumbnail {
  position: relative;
  width: 100%;
  aspect-ratio: 1.7777777778;
  overflow: hidden;
  cursor: pointer;
}
.bps-vtemplates .vb-card-video .vb-card-video-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.bps-vtemplates .vb-card-video .vb-card-video-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: 0.3s ease-out;
}
.bps-vtemplates .vb-card-video .vb-card-video-overlay:hover {
  background: rgba(0, 0, 0, 0.5);
}
.bps-vtemplates .vb-card-video .vb-card-video-play {
  width: 70px;
  height: 70px;
  background-color: var(--accent);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 2rem;
  transition: 0.3s ease-out;
}
.bps-vtemplates .vb-card-video .vb-card-video-play:hover {
  transform: scale(1.1);
}
.bps-vtemplates .vb-card-video .vb-card-video-duration {
  position: absolute;
  bottom: 0.5rem;
  right: 0.5rem;
  background-color: rgba(0, 0, 0, 0.8);
  color: white;
  padding: 0.25rem 0.5rem;
  border-radius: 0.25rem;
  font-size: 0.75rem;
  font-weight: 600;
}
.bps-vtemplates .vb-ticker {
  overflow: hidden;
  background: var(--bg2);
  border: 1px solid var(--e-border-color);
  border-radius: 0.5rem;
  padding: 1rem 0;
}
.bps-vtemplates .vb-ticker .vb-ticker-content {
  display: flex;
  gap: 2.5rem;
  animation: ticker-scroll 30s linear infinite;
  white-space: nowrap;
}
.bps-vtemplates .vb-ticker:hover .vb-ticker-content {
  animation-play-state: paused;
}
.bps-vtemplates .vb-ticker .vb-ticker-item {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0 1.25rem;
  font-weight: 500;
  color: var(--text-color);
}
.bps-vtemplates .vb-ticker .vb-ticker-icon {
  color: var(--accent);
  font-size: 1.25rem;
}
@keyframes ticker-scroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
.bps-vtemplates .vb-slider {
  position: relative;
  overflow: hidden;
  border-radius: 0.5rem;
}
.bps-vtemplates .vb-slider .vb-slider-track {
  display: flex;
  transition: transform 0.5s ease-in-out;
}
.bps-vtemplates .vb-slider .vb-slider-slide {
  min-width: 100%;
  flex-shrink: 0;
}
.bps-vtemplates .vb-slider .vb-slider-slide img {
  width: 100%;
  height: auto;
  display: block;
}
.bps-vtemplates .vb-slider .vb-slider-controls {
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  transform: translateY(-50%);
  display: flex;
  justify-content: space-between;
  padding: 0 1.25rem;
  pointer-events: none;
}
.bps-vtemplates .vb-slider .vb-slider-btn {
  pointer-events: all;
  width: 50px;
  height: 50px;
  background-color: rgba(255, 255, 255, 0.9);
  border: none;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 1.5rem;
  color: var(--text-color);
  transition: 0.15s ease-out;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}
.bps-vtemplates .vb-slider .vb-slider-btn:hover {
  background-color: var(--accent);
  color: white;
  transform: scale(1.1);
}
.bps-vtemplates .vb-slider .vb-slider-dots {
  position: absolute;
  bottom: 1.25rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 0.5rem;
}
.bps-vtemplates .vb-slider .vb-slider-dot {
  width: 12px;
  height: 12px;
  background-color: rgba(255, 255, 255, 0.5);
  border-radius: 50%;
  cursor: pointer;
  transition: 0.15s ease-out;
}
.bps-vtemplates .vb-slider .vb-slider-dot.active {
  background-color: white;
  transform: scale(1.3);
}
.bps-vtemplates .vb-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0.5rem 0;
  font-size: 0.875rem;
}
.bps-vtemplates .vb-breadcrumb .vb-breadcrumb-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--text-color2);
}
.bps-vtemplates .vb-breadcrumb .vb-breadcrumb-item a {
  color: var(--text-color2);
  text-decoration: none;
  transition: 0.15s ease-out;
}
.bps-vtemplates .vb-breadcrumb .vb-breadcrumb-item a:hover {
  color: var(--accent);
}
.bps-vtemplates .vb-breadcrumb .vb-breadcrumb-item.active {
  color: var(--text-color);
  font-weight: 500;
}
.bps-vtemplates .vb-breadcrumb .vb-breadcrumb-item:not(:last-child)::after {
  content: "/";
  margin-left: 0.5rem;
  color: var(--text-color3);
}
.bps-vtemplates .vb-breadcrumb.vb-breadcrumb-icons .vb-breadcrumb-item:not(:last-child)::after {
  content: "";
  font-family: "bootstrap-icons";
}
.bps-vtemplates .vb-breadcrumb.vb-breadcrumb-sm {
  font-size: 0.75rem;
}
.bps-vtemplates .vb-breadcrumb.vb-breadcrumb-lg {
  font-size: 1rem;
}
.bps-vtemplates .vb-rating {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  line-height: 1;
}
.bps-vtemplates .vb-rating.vb-rating-sm {
  font-size: 0.85rem;
}
.bps-vtemplates .vb-rating.vb-rating-md {
  font-size: 1rem;
}
.bps-vtemplates .vb-rating.vb-rating-lg {
  font-size: 1.35rem;
}
.bps-vtemplates .vb-rating.vb-rating-default .vb-stars-filled {
  color: var(--text-color, #1f2a37);
}
.bps-vtemplates .vb-rating.vb-rating-gold .vb-stars-filled {
  color: #f5a623;
}
.bps-vtemplates .vb-rating.vb-rating-accent .vb-stars-filled {
  color: var(--accent, #1f2a37);
}
.bps-vtemplates .vb-rating .vb-rating-stars {
  position: relative;
  display: inline-block;
  white-space: nowrap;
}
.bps-vtemplates .vb-rating .vb-stars-empty {
  display: inline-block;
  white-space: nowrap;
  color: color-mix(in srgb, var(--text-color, #1f2a37) 28%, transparent);
}
.bps-vtemplates .vb-rating .vb-stars-filled {
  position: absolute;
  inset: 0 auto 0 0;
  display: inline-block;
  overflow: hidden;
  white-space: nowrap;
}
.bps-vtemplates .vb-rating .vb-rating-number {
  font-size: 0.9em;
  font-weight: 600;
  color: var(--text-color2, #5b6472);
}
.bps-vtemplates .vb-rating-stars.vb-rating-interactive .vb-star {
  cursor: pointer;
  transition: 0.15s ease-out;
}
.bps-vtemplates .vb-rating-stars.vb-rating-interactive .vb-star:hover {
  transform: scale(1.1);
}
.bps-vtemplates .vb-rating-stars.vb-rating-with-label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.bps-vtemplates .vb-rating-stars .vb-rating-label {
  font-size: 0.875rem;
  color: var(--text-color2);
  font-weight: 500;
}
.bps-vtemplates .vb-rating-stars .vb-rating-count {
  font-size: 0.875rem;
  color: var(--text-color3);
}
@media screen and (max-width: 992px) {
  .bps-vtemplates .vb-card-hero {
    min-height: 350px;
  }
  .bps-vtemplates .vb-card-hero .vb-card-hero-content {
    padding: 1.5rem 1.25rem;
  }
  .bps-vtemplates .vb-card-hero .vb-card-hero-title {
    font-size: 1.5rem;
  }
  .bps-vtemplates .vb-slider-controls {
    padding: 0 0.5rem;
  }
  .bps-vtemplates .vb-slider-btn {
    width: 40px;
    height: 40px;
    font-size: 1.25rem;
  }
}
@media screen and (max-width: 768px) {
  .bps-vtemplates .vb-filter-panel {
    padding: 1rem;
  }
  .bps-vtemplates .vb-card-hero {
    min-height: 300px;
  }
  .bps-vtemplates .vb-card-hero .vb-card-hero-content {
    padding: 1.25rem 1rem;
  }
  .bps-vtemplates .vb-card-hero .vb-card-hero-title {
    font-size: 1.25rem;
  }
  .bps-vtemplates .vb-card-hero .vb-card-hero-actions {
    flex-direction: column;
  }
  .bps-vtemplates .vb-card-hero .vb-card-hero-actions .vb-btn {
    width: 100%;
  }
  .bps-vtemplates .vb-slider-dots {
    bottom: 0.5rem;
  }
}
@keyframes bps-modal-in {
  from {
    opacity: 0;
    transform: translateY(-16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.bps-vtemplates .hero-title {
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.15;
  color: var(--text-highlight);
}
.bps-vtemplates .prehead {
  font-size: 0.875rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--accent);
  margin-bottom: 0.5rem;
}
.bps-vtemplates .countdown-widget {
  text-align: center;
  padding: 2rem 0;
}
.bps-vtemplates .countdown-display {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin: 1.5rem 0;
}
.bps-vtemplates .countdown-number {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 80px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 0.75rem;
  padding: 1rem 1.5rem;
}
.bps-vtemplates .countdown-number .value {
  font-size: 3rem;
  font-weight: 700;
  line-height: 1;
  color: #FFFFFF;
}
.bps-vtemplates .countdown-number .label {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #F0F0F0;
  margin-top: 0.25rem;
}
.bps-vtemplates .countdown-separator {
  font-size: 3rem;
  font-weight: 700;
  color: #FFFFFF;
  line-height: 1;
  margin-bottom: 1.5rem;
}
.bps-vtemplates .countdown-expired {
  display: none;
}
.bps-vtemplates .countdown-expired.is-expired {
  display: block;
}
.bps-vtemplates .urgency-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  background: #ffc107;
  color: #17140F;
  font-size: 0.875rem;
  font-weight: 500;
  padding: 0.25rem 1rem;
  border-radius: 50rem;
  margin-bottom: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.bps-vtemplates .announcement-bar {
  background: var(--accent);
  color: var(--accent-text);
  padding: 0.5rem 1rem;
  position: relative;
  z-index: 100;
}
.bps-vtemplates .announcement-bar strong {
  font-weight: 500;
}
.bps-vtemplates .announcement-bar a {
  color: var(--accent-text);
  text-decoration: underline;
}
.bps-vtemplates .announcement-bar a:hover {
  opacity: 0.85;
}
.bps-vtemplates .announcement-bar .btn-close {
  filter: invert(1);
  opacity: 0.7;
}
.bps-vtemplates .announcement-bar .btn-close:hover {
  opacity: 1;
}
.bps-vtemplates .announcement-bar.is-hidden {
  display: none;
}
.bps-vtemplates .modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  z-index: 1050;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.bps-vtemplates .modal-overlay.is-open {
  display: flex;
}
.bps-vtemplates .modal-content-custom {
  background: var(--bg);
  border-radius: 1rem;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  width: 100%;
  max-width: 480px;
  max-height: 90vh;
  overflow-y: auto;
  position: relative;
  animation: bps-modal-in 0.3s ease-out;
}
.bps-vtemplates .modal-header-custom {
  padding: 2rem 2rem 1rem;
  text-align: center;
  border-bottom: 1px solid var(--e-border-color);
}
.bps-vtemplates .modal-header-custom .section-title {
  justify-content: center;
  font-size: 1.5rem;
}
.bps-vtemplates .modal-header-custom p {
  color: var(--text-color2);
  font-size: 0.875rem;
  margin-top: 0.25rem;
  margin-bottom: 0;
}
.bps-vtemplates .modal-body-custom {
  padding: 1.5rem 2rem 2rem;
}
.bps-vtemplates .modal-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: none;
  border: none;
  font-size: 1.25rem;
  color: var(--text-color3);
  cursor: pointer;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: 0.15s ease-out;
}
.bps-vtemplates .modal-close:hover {
  background: var(--bg2);
  color: var(--text-color);
}
.bps-vtemplates .modal-icon {
  font-size: 3rem;
  color: var(--accent);
  margin-bottom: 1rem;
}
.bps-vtemplates .modal-icon i {
  display: block;
}
.bps-vtemplates .privacy-note {
  font-size: 0.75rem;
  color: var(--text-color3);
  margin: 0;
}
.bps-vtemplates .privacy-note i {
  color: #28a745;
}
.bps-vtemplates .mood-selector {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 1rem 0;
}
.bps-vtemplates .mood-btn {
  padding: 0.25rem 1rem;
  border: 2px solid var(--e-border-color);
  border-radius: 50rem;
  background: var(--bg);
  color: var(--text-color);
  font-size: 0.875rem;
  cursor: pointer;
  transition: 0.15s ease-out;
}
.bps-vtemplates .mood-btn:hover {
  border-color: var(--accent);
  color: var(--accent);
}
.bps-vtemplates .mood-btn.active {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--accent-text);
  font-weight: 500;
}
.bps-vtemplates .tags-container, .bps-vtemplates .entry-tags, .bps-vtemplates .expertise-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin-top: 0.25rem;
}
.bps-vtemplates .tags-container .badge, .bps-vtemplates .entry-tags .badge, .bps-vtemplates .expertise-tags .badge {
  font-size: 0.75rem;
  font-weight: 400;
  padding: 0.25rem 0.5rem;
}
.bps-vtemplates .dashboard-card, .bps-vtemplates .stat-card {
  background: var(--bg);
  border: 1px solid var(--e-border-color);
  border-radius: 1rem;
  padding: 1.5rem;
  text-align: center;
  transition: 0.3s ease-out;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
}
.bps-vtemplates .dashboard-card:hover, .bps-vtemplates .stat-card:hover {
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  transform: translateY(-2px);
}
.bps-vtemplates .stat-icon {
  font-size: 1.875rem;
  color: var(--accent);
  margin-bottom: 0.5rem;
}
.bps-vtemplates .stat-number {
  font-size: 2.25rem;
  font-weight: 700;
  color: var(--text-highlight);
  line-height: 1;
  margin-bottom: 0.25rem;
}
.bps-vtemplates .stat-label {
  font-size: 0.875rem;
  color: var(--text-color2);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.bps-vtemplates .conversation-list {
  flex: 1;
  overflow-y: auto;
  padding: 0.5rem 0;
}
.bps-vtemplates .chat-header {
  padding: 1rem 1.5rem;
  border-bottom: 1px solid var(--e-border-color);
  display: flex;
  align-items: center;
  gap: 1rem;
  background: var(--bg);
  min-height: 64px;
}
.bps-vtemplates .messages-area {
  flex: 1;
  overflow-y: auto;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  background: var(--bg2);
}
.bps-vtemplates .message-input-area {
  padding: 1rem 1.5rem;
  border-top: 1px solid var(--e-border-color);
  background: var(--bg);
}
.bps-vtemplates .message-bubble-sent, .bps-vtemplates .message-bubble-received {
  max-width: 70%;
  padding: 0.5rem 1rem;
  border-radius: 1rem;
  font-size: 0.875rem;
  line-height: 1.5;
  position: relative;
}
.bps-vtemplates .message-bubble-sent {
  background: var(--accent);
  color: var(--accent-text);
  align-self: flex-end;
  border-bottom-right-radius: 0.25rem;
}
.bps-vtemplates .message-bubble-received {
  background: var(--bg);
  color: var(--text-color);
  align-self: flex-start;
  border-bottom-left-radius: 0.25rem;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
}
.bps-vtemplates .user-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  background: var(--bg3);
  border: 2px solid var(--e-border-color);
}
.bps-vtemplates .user-avatar.user-avatar-sm {
  width: 32px;
  height: 32px;
}
.bps-vtemplates .user-avatar.user-avatar-lg {
  width: 56px;
  height: 56px;
}
.bps-vtemplates .user-avatar.user-avatar-xl {
  width: 80px;
  height: 80px;
}
.bps-vtemplates .online-indicator {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #28a745;
  border: 2px solid var(--bg);
  position: absolute;
  bottom: 0;
  right: 0;
}
.bps-vtemplates .glass-card {
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 1rem;
}
.bps-vtemplates .activity-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem 0;
}
.bps-vtemplates .activity-item + .activity-item {
  border-top: 1px solid var(--e-border-color);
}
.bps-vtemplates .activity-icon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--accent);
  color: var(--accent-text);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.875rem;
  flex-shrink: 0;
}
.bps-vtemplates .activity-content {
  flex: 1;
  min-width: 0;
  font-size: 0.875rem;
  color: var(--text-color2);
}
.bps-vtemplates .activity-content strong {
  color: var(--text-color);
  font-weight: 500;
}
.bps-vtemplates .resource-card {
  background: var(--bg);
  border: 1px solid var(--e-border-color);
  border-radius: 1rem;
  overflow: hidden;
  transition: 0.3s ease-out;
  display: flex;
  flex-direction: column;
  height: 100%;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
}
.bps-vtemplates .resource-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  border-color: var(--accent);
}
.bps-vtemplates .resource-card-featured {
  background: var(--bg);
  border: 2px solid var(--accent);
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  transition: 0.3s ease-out;
}
.bps-vtemplates .resource-card-featured:hover {
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
.bps-vtemplates .resource-mini {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.5rem 0;
}
.bps-vtemplates .resource-mini + .resource-mini {
  border-top: 1px solid var(--e-border-color);
}
.bps-vtemplates .resource-mini-icon {
  width: 40px;
  height: 40px;
  border-radius: 0.5rem;
  background: var(--accent);
  color: var(--accent-text);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1rem;
}
.bps-vtemplates .member-card {
  background: var(--bg);
  border: 1px solid var(--e-border-color);
  border-radius: 1rem;
  padding: 1.5rem;
  text-align: center;
  transition: 0.3s ease-out;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
}
.bps-vtemplates .member-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  border-color: var(--accent);
}
.bps-vtemplates .featured-member {
  background: var(--bg);
  border: 2px solid var(--accent);
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}
.bps-vtemplates .entry-card {
  background: var(--bg);
  border: 1px solid var(--e-border-color);
  border-radius: 1rem;
  padding: 1.5rem;
  transition: 0.3s ease-out;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
}
.bps-vtemplates .entry-card:hover {
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  border-color: var(--accent);
}
.bps-vtemplates .testimonial-card {
  background: var(--bg);
  border: 1px solid var(--e-border-color);
  border-radius: 1rem;
  padding: 1.5rem;
  position: relative;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
}
.bps-vtemplates .social-proof-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: rgba(40, 167, 69, 0.1);
  color: #28a745;
  border: 1px solid rgba(40, 167, 69, 0.3);
  border-radius: 50rem;
  padding: 0.25rem 1rem;
  font-size: 0.875rem;
  font-weight: 500;
}
.bps-vtemplates .step-number {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--accent);
  color: var(--accent-text);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  font-weight: 700;
  flex-shrink: 0;
}
.bps-vtemplates .rating-stars {
  color: #ffc107;
  font-size: 1rem;
  letter-spacing: 2px;
}
.bps-vtemplates .progress-custom {
  height: 8px;
  border-radius: 50rem;
  background: var(--bg3);
  overflow: hidden;
}
.bps-vtemplates .progress-bar-custom {
  height: 100%;
  border-radius: 50rem;
  background: var(--accent);
  transition: width 0.3s ease-out;
}
.bps-vtemplates .streak-week-dots {
  display: flex;
  gap: 0.25rem;
  align-items: center;
}
.bps-vtemplates .streak-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--e-border-color);
  transition: 0.15s ease-out;
}
.bps-vtemplates .streak-dot.active, .bps-vtemplates .streak-dot.green {
  background: #28a745;
}
.bps-vtemplates .streak-dot.orange {
  background: #ffc107;
}
.bps-vtemplates .streak-dot.yellow {
  background: #d39e00;
}
.bps-vtemplates .streak-dot.light, .bps-vtemplates .streak-dot.light2, .bps-vtemplates .streak-dot.light3 {
  background: var(--bg3);
}
@media screen and (max-width: 768px) {
  .bps-vtemplates .countdown-display {
    gap: 0.5rem;
  }
  .bps-vtemplates .countdown-number {
    min-width: 60px;
    padding: 0.5rem 1rem;
  }
  .bps-vtemplates .countdown-number .value {
    font-size: 1.875rem;
  }
  .bps-vtemplates .countdown-separator {
    font-size: 1.875rem;
  }
  .bps-vtemplates .modal-content-custom {
    max-height: 95vh;
    border-radius: 0.75rem;
  }
  .bps-vtemplates .message-bubble-sent, .bps-vtemplates .message-bubble-received {
    max-width: 85%;
  }
}
/**
 * BPS PMPro Checkout Styling - OVERRIDE VERSION
 * File: _pmpro-checkout-override.scss
 *
 * Uses !important and higher specificity to override PMPro core styles
 * Fixes: Invisible borders, forced small sizes, alignment issues
 */
/* ============================================
   CRITICAL OVERRIDES - Force Our Styles
   ============================================ */
.bps-checkout-modern {
  /* Force background color */
  /* ============================================
       CONTAINER RESETS
       ============================================ */
  /* ============================================
       SECTION CARDS - FORCE VISIBILITY
       ============================================ */
  /* ============================================
       HEADINGS - FORCE SIZE AND SPACING
       ============================================ */
  /* Remove PMPro's default legend styling */
  /* ============================================
       MEMBERSHIP LEVEL DISPLAY - FORCE PROMINENCE
       ============================================ */
  /* ============================================
       FORM FIELDS - FORCE PROPER SIZING
       ============================================ */
  /* Full-width fields */
  /* ============================================
       LABELS - FORCE VISIBILITY AND SPACING
       ============================================ */
  /* ============================================
       INPUTS - FORCE PROPER APPEARANCE
       ============================================ */
  /* Select dropdowns */
  /* ============================================
       ORDER BUMPS - FORCE STYLING
       ============================================ */
  /* ============================================
       PAYMENT SECTION - FORCE LAYOUT
       ============================================ */
  /* Card expiration and CVV inline */
  /* ============================================
       SUBMIT BUTTON - FORCE PROMINENCE
       ============================================ */
  /* ============================================
       ALERT MESSAGES - FORCE VISIBILITY
       ============================================ */
  /* ============================================
       ACCOUNT INFO - FORCE VISIBILITY
       ============================================ */
  /* ============================================
       VALIDATION ERRORS - FORCE VISIBILITY
       ============================================ */
  /* ============================================
       PROCESSING STATE
       ============================================ */
  /* ============================================
       FORCED RESETS - OVERRIDE PMPRO DEFAULTS
       ============================================ */
  /* Remove PMPro's default border styling */
  /* Force proper spacing */
  /* Remove LastPass icons */
  /* Hidden inputs */
  /* Force text color inheritance */
  /* Remove autofill styling */
}
.bps-checkout-modern .pmpro_checkout-wrapper, .bps-checkout-modern #pmpro_form {
  background: var(--bg2) !important;
}
.bps-checkout-modern .pmpro, .bps-checkout-modern #pmpro_form {
  max-width: 900px !important;
  margin: 0 auto !important;
  padding: 2rem 1rem !important;
}
@media (max-width: 768px) {
  .bps-checkout-modern .pmpro, .bps-checkout-modern #pmpro_form {
    padding: 1rem 0.75rem !important;
  }
}
.bps-checkout-modern .pmpro_card, .bps-checkout-modern #pmpro_billing_address, .bps-checkout-modern #pmpro_payment_information_fields, .bps-checkout-modern #pmpro_user_fields {
  background: var(--bg) !important;
  border: 2px solid var(--bps-border-color, var(--border-color)) !important;
  /* Force 2px */
  border-radius: 0.75rem !important;
  padding: 0 !important;
  margin-bottom: 2rem !important;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05) !important;
  transition: all 0.3s ease-out !important;
}
.bps-checkout-modern .pmpro_card_content, .bps-checkout-modern .pmpro_checkout > div > div {
  padding: 2.5rem !important;
}
@media (max-width: 768px) {
  .bps-checkout-modern .pmpro_card_content, .bps-checkout-modern .pmpro_checkout > div > div {
    padding: 1.5rem !important;
  }
}
.bps-checkout-modern .pmpro_card_title, .bps-checkout-modern .pmpro_checkout h2, .bps-checkout-modern .pmpro_checkout h3, .bps-checkout-modern legend {
  font-size: 1.875rem !important;
  font-weight: 700 !important;
  margin: 0 0 1.5rem 0 !important;
  padding: 0 0 1rem 0 !important;
  border-bottom: 2px solid var(--accent) !important;
  color: var(--text-highlight) !important;
  line-height: 1.3 !important;
}
@media (max-width: 768px) {
  .bps-checkout-modern .pmpro_card_title, .bps-checkout-modern .pmpro_checkout h2, .bps-checkout-modern .pmpro_checkout h3, .bps-checkout-modern legend {
    font-size: 1.5rem !important;
  }
}
.bps-checkout-modern fieldset {
  border: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.bps-checkout-modern #pmpro_level_cost {
  background: var(--bg) !important;
  border: 2px solid var(--accent) !important;
  border-radius: 0.75rem !important;
  padding: 2rem !important;
  margin-bottom: 2rem !important;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04) !important;
}
.bps-checkout-modern .pmpro_level_name, .bps-checkout-modern .pmpro_level_name_text {
  font-size: 2.25rem !important;
  font-weight: 700 !important;
  color: var(--text-highlight) !important;
  margin: 0 0 1rem 0 !important;
  line-height: 1.2 !important;
}
@media (max-width: 768px) {
  .bps-checkout-modern .pmpro_level_name, .bps-checkout-modern .pmpro_level_name_text {
    font-size: 1.875rem !important;
  }
}
.bps-checkout-modern .pmpro_level_cost_text {
  font-size: 3rem !important;
  font-weight: 700 !important;
  color: var(--accent) !important;
  margin-top: 1.5rem !important;
  padding-top: 1.5rem !important;
  border-top: 2px solid var(--bg2) !important;
}
@media (max-width: 768px) {
  .bps-checkout-modern .pmpro_level_cost_text {
    font-size: 2.25rem !important;
  }
}
.bps-checkout-modern .pmpro_form_fields, .bps-checkout-modern .pmpro_checkout-fields {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 1.5rem !important;
}
@media (max-width: 768px) {
  .bps-checkout-modern .pmpro_form_fields, .bps-checkout-modern .pmpro_checkout-fields {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }
}
.bps-checkout-modern .pmpro_checkout-field-baddress1, .bps-checkout-modern .pmpro_checkout-field-baddress2, .bps-checkout-modern .pmpro_checkout-field-bphone, .bps-checkout-modern #AccountNumber_div, .bps-checkout-modern .pmpro_payment-account-number {
  grid-column: 1 / -1 !important;
}
.bps-checkout-modern .pmpro_checkout-field, .bps-checkout-modern .pmpro_form_field {
  margin: 0 !important;
  padding: 0 !important;
}
.bps-checkout-modern label, .bps-checkout-modern .pmpro_checkout-field-label, .bps-checkout-modern .pmpro_form_label {
  display: block !important;
  font-size: 0.875rem !important;
  font-weight: 700 !important;
  margin-bottom: 0.75rem !important;
  color: var(--text-highlight) !important;
  text-transform: none !important;
}
.bps-checkout-modern label abbr, .bps-checkout-modern .pmpro_checkout-field-label abbr, .bps-checkout-modern .pmpro_form_label abbr {
  color: #dc3545 !important;
  text-decoration: none !important;
}
.bps-checkout-modern input[type="text"], .bps-checkout-modern input[type="email"], .bps-checkout-modern input[type="tel"], .bps-checkout-modern input[type="password"], .bps-checkout-modern select, .bps-checkout-modern textarea, .bps-checkout-modern .input {
  width: 100% !important;
  padding: 0.875rem 1.125rem !important;
  border: 2px solid var(--bps-border-color, var(--border-color)) !important;
  /* Force 2px */
  border-radius: 0.5rem !important;
  font-size: 1rem !important;
  font-family: inherit !important;
  color: var(--text-color) !important;
  background: var(--bg) !important;
  transition: all 0.3s ease-out !important;
  box-sizing: border-box !important;
}
.bps-checkout-modern input[type="text"]:focus, .bps-checkout-modern input[type="email"]:focus, .bps-checkout-modern input[type="tel"]:focus, .bps-checkout-modern input[type="password"]:focus, .bps-checkout-modern select:focus, .bps-checkout-modern textarea:focus, .bps-checkout-modern .input:focus {
  outline: none !important;
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 3px rgba(76, 81, 191, 0.1) !important;
}
.bps-checkout-modern input[type="text"]::placeholder, .bps-checkout-modern input[type="email"]::placeholder, .bps-checkout-modern input[type="tel"]::placeholder, .bps-checkout-modern input[type="password"]::placeholder, .bps-checkout-modern select::placeholder, .bps-checkout-modern textarea::placeholder, .bps-checkout-modern .input::placeholder {
  color: var(--text-color3) !important;
}
.bps-checkout-modern select {
  appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236c757d' d='M6 9L1 4h10z'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 1rem center !important;
  background-size: 12px !important;
  padding-right: 2.5rem !important;
  cursor: pointer !important;
}
.bps-checkout-modern .pmpro_orderbump, .bps-checkout-modern .moa_bump_container {
  background: var(--bg) !important;
  border: 2px solid var(--accent) !important;
  border-radius: 0.75rem !important;
  margin-bottom: 2rem !important;
  overflow: hidden !important;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05) !important;
}
.bps-checkout-modern .pmpro_orderbump-label, .bps-checkout-modern .moa_bump_heading {
  background: var(--accent) !important;
  color: var(--accent-text) !important;
  padding: 1.25rem 1.75rem !important;
  display: flex !important;
  align-items: center !important;
  gap: 1rem !important;
  margin: 0 !important;
  border: none !important;
  font-size: 1.25rem !important;
  font-weight: 700 !important;
}
@media (max-width: 768px) {
  .bps-checkout-modern .pmpro_orderbump-label, .bps-checkout-modern .moa_bump_heading {
    padding: 1rem 1.25rem !important;
    font-size: 1rem !important;
  }
}
.bps-checkout-modern .pmpro_orderbump-checkbox, .bps-checkout-modern .moa_bump_heading input[type="checkbox"] {
  width: 24px !important;
  height: 24px !important;
  margin: 0 !important;
  cursor: pointer !important;
  flex-shrink: 0 !important;
}
.bps-checkout-modern .pmpro_orderbump-content, .bps-checkout-modern .moa_row {
  padding: 1.75rem !important;
}
@media (max-width: 768px) {
  .bps-checkout-modern .pmpro_orderbump-content, .bps-checkout-modern .moa_row {
    padding: 1.25rem !important;
  }
}
.bps-checkout-modern #pmpro_payment_information_fields .pmpro_checkout-fields {
  display: block !important;
}
.bps-checkout-modern .pmpro_payment-account-number {
  margin-bottom: 1.5rem !important;
}
.bps-checkout-modern .pmpro_checkout-field-ExpirationMonth, .bps-checkout-modern .pmpro_checkout-field-ExpirationYear, .bps-checkout-modern .pmpro_checkout-field-CVV {
  display: inline-block !important;
  width: auto !important;
}
@media (max-width: 768px) {
  .bps-checkout-modern .pmpro_checkout-field-ExpirationMonth, .bps-checkout-modern .pmpro_checkout-field-ExpirationYear, .bps-checkout-modern .pmpro_checkout-field-CVV {
    display: block !important;
    width: 100% !important;
  }
}
.bps-checkout-modern .pmpro_btn, .bps-checkout-modern .pmpro_btn-submit, .bps-checkout-modern .pmpro_btn-submit-checkout, .bps-checkout-modern #pmpro_btn-submit, .bps-checkout-modern input[type="submit"] {
  width: 100% !important;
  padding: 1.25rem 2rem !important;
  background: var(--accent) !important;
  color: var(--accent-text) !important;
  border: none !important;
  border-radius: 0.75rem !important;
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  transition: all 0.3s ease !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05) !important;
}
@media (max-width: 768px) {
  .bps-checkout-modern .pmpro_btn, .bps-checkout-modern .pmpro_btn-submit, .bps-checkout-modern .pmpro_btn-submit-checkout, .bps-checkout-modern #pmpro_btn-submit, .bps-checkout-modern input[type="submit"] {
    font-size: 1.25rem !important;
    padding: 1rem 1.5rem !important;
  }
}
.bps-checkout-modern .pmpro_btn:hover, .bps-checkout-modern .pmpro_btn-submit:hover, .bps-checkout-modern .pmpro_btn-submit-checkout:hover, .bps-checkout-modern #pmpro_btn-submit:hover, .bps-checkout-modern input[type="submit"]:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04) !important;
  opacity: 0.95 !important;
}
.bps-checkout-modern .pmpro_btn:active, .bps-checkout-modern .pmpro_btn-submit:active, .bps-checkout-modern .pmpro_btn-submit-checkout:active, .bps-checkout-modern #pmpro_btn-submit:active, .bps-checkout-modern input[type="submit"]:active {
  transform: translateY(0) !important;
}
.bps-checkout-modern .pmpro_message, .bps-checkout-modern .pmpro_error, .bps-checkout-modern .pmpro_success, .bps-checkout-modern #pmpro_message, .bps-checkout-modern #pmpro_message_bottom {
  background: rgba(59, 130, 246, 0.1) !important;
  border: none !important;
  border-left: 4px solid var(--accent) !important;
  padding: 1.25rem 1.5rem !important;
  border-radius: 0.5rem !important;
  margin-bottom: 2rem !important;
  font-size: 0.875rem !important;
  color: var(--text-color) !important;
}
.bps-checkout-modern .pmpro_message.pmpro_error, .bps-checkout-modern .pmpro_error.pmpro_error, .bps-checkout-modern .pmpro_success.pmpro_error, .bps-checkout-modern #pmpro_message.pmpro_error, .bps-checkout-modern #pmpro_message_bottom.pmpro_error {
  background: rgba(239, 68, 68, 0.1) !important;
  border-left-color: #dc3545 !important;
}
.bps-checkout-modern .pmpro_message.pmpro_success, .bps-checkout-modern .pmpro_error.pmpro_success, .bps-checkout-modern .pmpro_success.pmpro_success, .bps-checkout-modern #pmpro_message.pmpro_success, .bps-checkout-modern #pmpro_message_bottom.pmpro_success {
  background: rgba(16, 185, 129, 0.1) !important;
  border-left-color: #28a745 !important;
}
.bps-checkout-modern .pmpro_message a, .bps-checkout-modern .pmpro_error a, .bps-checkout-modern .pmpro_success a, .bps-checkout-modern #pmpro_message a, .bps-checkout-modern #pmpro_message_bottom a {
  color: var(--accent) !important;
  text-decoration: underline !important;
}
.bps-checkout-modern #pmpro_account_loggedin {
  background: rgba(245, 158, 11, 0.1) !important;
  border: 1px solid rgba(245, 158, 11, 0.3) !important;
  border-radius: 0.5rem !important;
  padding: 1.25rem 1.5rem !important;
  margin-bottom: 1.5rem !important;
  font-size: 0.875rem !important;
}
.bps-checkout-modern .pmpro_error input, .bps-checkout-modern .pmpro_error select, .bps-checkout-modern .pmpro_error textarea, .bps-checkout-modern .has-error input, .bps-checkout-modern .has-error select, .bps-checkout-modern .has-error textarea {
  border-color: #dc3545 !important;
}
.bps-checkout-modern .pmpro_error input:focus, .bps-checkout-modern .pmpro_error select:focus, .bps-checkout-modern .pmpro_error textarea:focus, .bps-checkout-modern .has-error input:focus, .bps-checkout-modern .has-error select:focus, .bps-checkout-modern .has-error textarea:focus {
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.15) !important;
}
.bps-checkout-modern .pmpro_validation, .bps-checkout-modern .error-message, .bps-checkout-modern .validation-message {
  display: block !important;
  font-size: 0.75rem !important;
  color: #dc3545 !important;
  margin-top: 0.5rem !important;
  font-weight: 500 !important;
}
.bps-checkout-modern .pmpro_processing #pmpro_btn-submit, .bps-checkout-modern .pmpro_processing .pmpro_btn-submit {
  opacity: 0.6 !important;
  cursor: wait !important;
  pointer-events: none !important;
}
.bps-checkout-modern #pmpro_processing_message {
  text-align: center !important;
  margin-top: 1rem !important;
  font-size: 0.875rem !important;
  color: var(--text-color2) !important;
}
.bps-checkout-modern .pmpro * {
  box-sizing: border-box !important;
}
.bps-checkout-modern .pmpro p, .bps-checkout-modern .pmpro div {
  margin: 0 !important;
}
.bps-checkout-modern .pmpro p + p, .bps-checkout-modern .pmpro div + div {
  margin-top: 1rem !important;
}
.bps-checkout-modern div[data-lastpass-icon-root] {
  display: none !important;
}
.bps-checkout-modern input[type="hidden"] {
  display: none !important;
}
.bps-checkout-modern * {
  color: inherit;
}
.bps-checkout-modern input, .bps-checkout-modern select, .bps-checkout-modern textarea, .bps-checkout-modern button {
  font-family: inherit !important;
}
.bps-checkout-modern input:-webkit-autofill, .bps-checkout-modern input:-webkit-autofill:hover, .bps-checkout-modern input:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0px 1000px var(--bg) inset !important;
  -webkit-text-fill-color: var(--text-color) !important;
  transition: background-color 5000s ease-in-out 0s !important;
}
/* ============================================
   ANIMATIONS (Optional - Remove if Problematic)
   ============================================ */
@keyframes slideIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
body.bps-checkout-modern {
  /* Staggered animation */
}
body.bps-checkout-modern .pmpro_card {
  animation: slideIn 0.4s ease-out;
}
body.bps-checkout-modern .pmpro_card:nth-of-type(1) {
  animation-delay: 0.1s;
}
body.bps-checkout-modern .pmpro_card:nth-of-type(2) {
  animation-delay: 0.2s;
}
body.bps-checkout-modern .pmpro_card:nth-of-type(3) {
  animation-delay: 0.3s;
}
.accent-bg {
  background-color: var(--accent);
  color: var(--accent-text);
  --text-color: var(--accent-text);
  --text-color2: var(--accent-text);
}
.hero-badge {
  display: inline-block;
  padding: 0.375rem 1rem;
  border: 1px solid var(--accent);
  border-radius: 100px;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 1.25rem;
}
.hero-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  justify-content: center;
  align-items: flex-start;
  margin-top: 2rem;
}
.logos-label {
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-color3);
  margin-bottom: 1rem;
  text-align: center;
}
.logo-item {
  opacity: 0.55;
  filter: grayscale(100%);
  transition: opacity 0.2s ease, filter 0.2s ease;
}
.logo-item:hover {
  opacity: 0.85;
  filter: grayscale(0%);
}
.pain-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.25rem;
}
.pain-icon {
  color: var(--accent);
  flex-shrink: 0;
  line-height: 1;
  font-size: 1.25rem;
}
.pain-text {
  color: var(--text-color);
  line-height: 1.6;
}
.pillar-card {
  background: var(--bg2);
  border: 1px solid var(--bps-border-color, var(--border-color));
  border-radius: 8px;
  padding: 2rem 1.5rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.pillar-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}
.pillar-icon-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background-color: var(--accent);
  color: var(--accent-text);
  margin-bottom: 1rem;
}
.pillar-number {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 0.5rem;
}
.pillar-title {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--text-highlight);
  margin-bottom: 0.5rem;
  line-height: 1.3;
}
.pillar-desc {
  font-size: 0.9375rem;
  color: var(--text-color);
  line-height: 1.65;
}
.problem-headline {
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  font-weight: 800;
  color: var(--text-highlight);
  line-height: 1.2;
  margin-bottom: 1rem;
}
.problem-body {
  font-size: 1.0625rem;
  color: var(--text-color);
  line-height: 1.7;
}
.solution-frame {
  border-left: 4px solid var(--accent);
  padding: 1.5rem 2rem;
  background: var(--bg2);
  border-radius: 0 8px 8px 0;
}
.solution-headline {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text-highlight);
  margin-bottom: 0.5rem;
  line-height: 1.3;
}
.solution-sub {
  font-size: 1rem;
  color: var(--text-color2);
  margin-bottom: 1rem;
}
.solution-system-name {
  font-weight: 700;
  color: var(--accent);
}
.testimonial-quote {
  font-size: 4rem;
  line-height: 0.5;
  color: var(--accent);
  opacity: 0.4;
  margin-bottom: 1rem;
  font-family: Georgia, serif;
}
.testimonial-text {
  font-size: 1.0625rem;
  color: var(--text-color);
  line-height: 1.7;
  font-style: italic;
  margin-bottom: 1.25rem;
}
.testimonial-author {
  display: flex;
  align-items: center;
  gap: 0.875rem;
}
.author-avatar {
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  border: 2px solid var(--accent);
  object-fit: cover;
  flex-shrink: 0;
}
.author-name {
  font-weight: 700;
  font-size: 0.9375rem;
  color: var(--text-highlight);
  line-height: 1.2;
}
.author-title {
  font-size: 0.8125rem;
  color: var(--text-color3);
}
.author-result {
  display: inline-block;
  margin-top: 0.375rem;
  padding: 0.2rem 0.6rem;
  background: var(--accent);
  color: var(--accent-text);
  font-size: 0.75rem;
  font-weight: 700;
  border-radius: 4px;
  letter-spacing: 0.03em;
}
.cta-inner {
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.cta-disclaimer {
  font-size: 0.8125rem;
  color: var(--text-color3);
  line-height: 1.5;
  margin-top: 1rem;
  opacity: 0.8;
}
.btn-lg {
  padding: 1.125rem 2.5rem;
  font-size: 1.0625rem;
}
.btn-block {
  display: block;
  width: 100%;
  text-align: center;
}
.benefit-icon {
  font-size: 2rem;
  line-height: 1;
  margin-bottom: 0.5rem;
}
.benefit-title {
  font-weight: 700;
  color: var(--text-highlight);
  margin-bottom: 0.25rem;
}
.benefit-desc {
  font-size: 0.9375rem;
  color: var(--text-color);
  line-height: 1.6;
}
.cancel-card-heading {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--text-highlight);
  margin-bottom: 0.75rem;
  line-height: 1.3;
}
.cancel-list {
  list-style: none;
  padding: 0;
  margin: 0 0 1.25rem;
}
.cancel-list li {
  padding: 0.375rem 0;
  color: var(--text-color);
  font-size: 0.9375rem;
  line-height: 1.55;
}
.cancel-price-amount {
  font-size: 2.5rem;
  font-weight: 800;
  color: var(--accent);
  line-height: 1;
}
.cancel-price-period {
  font-size: 0.875rem;
  color: var(--text-color3);
  margin-top: 0.25rem;
}
.testimonial-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background-color: var(--accent);
  color: var(--accent-text);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1;
}
.testimonial-name {
  font-weight: 700;
  font-size: 0.9375rem;
  color: var(--text-highlight);
}
.membership-name {
  font-size: 1.375rem;
  font-weight: 700;
  color: var(--text-highlight);
  line-height: 1.3;
  margin-bottom: 0.25rem;
}
.membership-tagline {
  font-size: 1rem;
  color: var(--text-color2);
  margin-bottom: 1rem;
}
.membership-price {
  font-size: 3rem;
  font-weight: 800;
  color: var(--accent);
  line-height: 1;
  margin-bottom: 0.25rem;
}
.membership-period {
  font-size: 0.875rem;
  color: var(--text-color3);
  margin-bottom: 1.25rem;
}
.membership-features {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem;
  text-align: left;
}
.membership-features li {
  padding: 0.4rem 0;
  color: var(--text-color);
  font-size: 0.9375rem;
  line-height: 1.5;
  border-bottom: 1px solid var(--bps-border-color, var(--border-color));
}
.membership-features li:last-child {
  border-bottom: none;
}
.membership-note {
  font-size: 0.8125rem;
  color: var(--text-color3);
  line-height: 1.5;
  margin-top: 0.75rem;
}
.hero-price-line {
  font-weight: 600;
  opacity: 0.85;
  margin-bottom: 0.5rem;
}
.monthly-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.monthly-list li {
  padding: 0.5rem 0 0.5rem 1.75rem;
  position: relative;
  color: var(--text-color);
  font-size: 0.9375rem;
  line-height: 1.6;
  border-bottom: 1px solid var(--bps-border-color, var(--border-color));
}
.monthly-list li:last-child {
  border-bottom: none;
}
.monthly-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--accent);
  font-weight: 700;
}
.nudge-body {
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--text-color);
}
.prose {
  max-width: 65ch;
  font-size: 1.0625rem;
  line-height: 1.75;
  color: var(--text-color);
}
.mb-3 {
  margin-bottom: 1rem;
}
.bps-form-card {
  background: #ffffff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.22);
}
.bps-form-card__header {
  background: var(--accent);
  color: var(--accent-text, #ffffff);
  padding: 1.5rem 2rem 1.25rem;
  text-align: center;
}
.bps-form-card__title {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.3;
  color: inherit;
  margin: 0 0 0.25rem;
}
.bps-form-card__sub {
  font-size: 0.9375rem;
  opacity: 0.88;
  color: inherit;
  margin: 0;
}
.bps-form-card__body {
  background: #ffffff;
  padding: 1.75rem 2rem 2rem;
}
.prehead .elementor-heading-title {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  display: block;
}
.dark .prehead .elementor-heading-title, .dark2 .prehead .elementor-heading-title, .dark3 .prehead .elementor-heading-title, .prehead--on-dark .elementor-heading-title {
  color: rgba(255, 255, 255, 0.7);
}
.admin-bar .bps-announce-bar > .e-con-inner {
  margin-top: 32px;
}
@media (max-width: 782px) {
  .admin-bar .bps-announce-bar > .e-con-inner {
    margin-top: 46px;
  }
}
.bps-announce-bar {
  background: linear-gradient(90deg, var(--accent) 0%, var(--accent-2) 50%, var(--accent) 100%) !important;
  padding-top: 10px;
  padding-bottom: 10px;
  text-align: center;
}
.bps-announce-bar p, .bps-announce-bar *, .bps-announce-bar .elementor-widget-text-editor {
  color: var(--accent-text, #ffffff);
  font-size: 0.875rem;
  font-weight: 500;
  margin: 0;
}
.bps-gradient-bg {
  background: linear-gradient(135deg, var(--accent) 0%, rgba(var(--accent-rgb, 109, 40, 217), 0.6) 50%, var(--bg, #0f0a1e) 100%) !important;
}
.bps-section-dark {
  background: var(--bg, #0d1117) !important;
  position: relative;
  overflow: hidden;
}
.bps-meta-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  width: auto;
  padding: 8px 16px;
  border-radius: 9999px;
  background: var(--bg2, #161b27);
  border: 1px solid var(--bps-border-color, var(--border-color, #252f44));
  color: var(--text-color2, #a8b3cc);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.3;
}
.light .bps-meta-pill, .light2 .bps-meta-pill, .light3 .bps-meta-pill {
  background: var(--bg2, #f4f6f9);
  border-color: var(--bps-border-color, var(--border-color, #e2e6ed));
  color: var(--text-color2, #475569);
}
.bps-learn-card {
  background: #ffffff;
  border: 1px solid var(--bps-border-color, var(--border-color, #e2e6ed));
  border-radius: 12px;
  padding: 24px;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.bps-learn-card:hover {
  border-color: var(--accent);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}
.dark .bps-learn-card, .dark2 .bps-learn-card, .dark3 .bps-learn-card {
  background: var(--bg2, #161b27);
  border-color: var(--bps-border-color, var(--border-color, #252f44));
}
.bps-bonus-card {
  background: var(--bg2, #161b27);
  border: 1px solid var(--bps-border-color, var(--border-color, #252f44));
  border-radius: 12px;
  padding: 1.5rem;
  transition: border-color 0.25s ease, transform 0.25s ease;
}
.bps-bonus-card:hover {
  border-color: var(--accent);
  transform: translateY(-2px);
}
@media (max-width: 768px) {
  .hero-stats {
    gap: 1.25rem;
  }
  .pillar-card {
    padding: 1.5rem 1.25rem;
  }
  .solution-frame {
    padding: 1.25rem 1.25rem;
  }
  .testimonial-quote {
    font-size: 3rem;
  }
}
.aaa-page {
  font-family: "DM Sans", system-ui, sans-serif;
}
.aaa-page h1, .aaa-page h2, .aaa-page h3, .aaa-page h4, .aaa-page h5, .aaa-page h6, .aaa-page .elementor-widget-heading .elementor-heading-title {
  font-family: "Playfair Display", Georgia, serif;
}
.aaa-page .hero-title, .aaa-page .elementor-widget-heading .elementor-heading-title.hero-title {
  font-family: "Playfair Display", Georgia, serif;
  font-size: clamp(2.5rem, 5vw, 3.75rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.15;
}
.aaa-page .hero-subtitle {
  font-family: "DM Sans", system-ui, sans-serif;
  font-weight: 300;
}
.aaa-page .stat-number {
  font-family: "Playfair Display", Georgia, serif;
}
.aaa-page .prehead {
  font-family: "DM Mono", monospace;
  font-weight: 500;
  letter-spacing: 0.15em;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.aaa-page .prehead::before {
  content: "";
  display: inline-block;
  width: 32px;
  height: 2px;
  background: var(--accent);
  flex-shrink: 0;
}
.aaa-mono {
  font-family: "DM Mono", monospace;
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.badge {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-family: "DM Mono", monospace;
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 0.3rem 0.75rem;
  border-radius: 9999px;
  line-height: 1;
}
.badge-gold {
  background: rgba(200, 155, 60, 0.15);
  color: #C89B3C;
  border: 1px solid rgba(200, 155, 60, 0.3);
}
.badge-teal {
  background: rgba(13, 148, 136, 0.12);
  color: #0d9488;
  border: 1px solid rgba(13, 148, 136, 0.25);
}
.badge-navy {
  background: rgba(10, 37, 64, 0.08);
  color: #0a2540;
  border: 1px solid rgba(10, 37, 64, 0.2);
}
.badge-white {
  background: rgba(255, 255, 255, 0.12);
  color: #FFFFFF;
  border: 1px solid rgba(255, 255, 255, 0.2);
}
.badge-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}
.avatar-circle {
  border-radius: 50%;
  background: #1e4976;
  border: 2px solid var(--accent);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 700;
  color: var(--accent);
  flex-shrink: 0;
  line-height: 1;
}
.avatar-circle-lg {
  width: 72px;
  height: 72px;
  font-size: 1.5rem;
  border-width: 3px;
}
.avatar-circle-md {
  width: 44px;
  height: 44px;
  font-size: 1rem;
}
.stats-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  width: 100%;
}
.aaa-page .stat-item {
  flex: 1;
  padding: 2rem;
  text-align: center;
  border-right: 1px solid var(--bps-border-color, var(--border-color));
}
.aaa-page .stat-item:last-child {
  border-right: none;
}
.logo-strip {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3rem;
  flex-wrap: nowrap;
}
.logo-strip-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  opacity: 0.65;
  transition: opacity 0.2s ease;
}
.logo-strip-item:hover {
  opacity: 1;
}
.logo-strip-name {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text-highlight);
}
.logo-strip-sub {
  font-family: "DM Mono", monospace;
  font-size: 0.65rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-color3);
  text-align: center;
}
.logo-strip-divider {
  width: 1px;
  height: 40px;
  background: var(--bps-border-color, var(--border-color));
  flex-shrink: 0;
}
.cert-timeline {
  position: relative;
  padding-left: 2rem;
}
.cert-timeline::before {
  content: "";
  position: absolute;
  left: 0.625rem;
  top: 0.75rem;
  bottom: 0.75rem;
  width: 2px;
  background: linear-gradient(to bottom, #C89B3C, #0d9488);
}
.cert-step {
  position: relative;
  padding: 0 0 2.5rem 2rem;
}
.cert-step:last-child {
  padding-bottom: 0;
}
.cert-step::before {
  content: "";
  position: absolute;
  left: -0.375rem;
  top: 0.375rem;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--accent);
  border: 2px solid var(--bg);
  box-shadow: 0 0 0 3px rgba(200, 155, 60, 0.2);
}
.cert-step-label {
  font-family: "DM Mono", monospace;
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #0d9488;
  margin-bottom: 0.25rem;
}
.cert-step-title {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--text-highlight);
  margin-bottom: 0.25rem;
  line-height: 1.3;
}
.cert-step-desc {
  font-size: 0.9rem;
  color: var(--text-color2);
  line-height: 1.6;
}
.aaa-page .testimonial-card {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 20px;
  padding: 2rem;
  transition: background 0.2s ease;
}
.aaa-page .testimonial-card:hover {
  background: rgba(255, 255, 255, 0.08);
}
.aaa-page .testimonial-quote {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1.05rem;
  font-style: italic;
  line-height: 1.75;
  color: var(--text-color);
  margin-bottom: 1.5rem;
}
.aaa-page .testimonial-meta {
  display: flex;
  align-items: center;
  gap: 0.875rem;
}
.aaa-page .testimonial-name {
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--text-highlight);
  line-height: 1.2;
}
.aaa-page .testimonial-role {
  font-size: 0.78rem;
  color: var(--text-color3);
  margin-top: 0.125rem;
}
.social-proof {
  font-family: "DM Mono", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-color2);
}
.check-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.check-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}
.check-icon {
  color: #0d9488;
  font-size: 1.1rem;
  flex-shrink: 0;
  margin-top: 0.1rem;
  line-height: 1;
}
.check-text {
  font-size: 0.95rem;
  color: var(--text-color);
  line-height: 1.65;
}
.trust-row {
  display: flex;
  justify-content: center;
  align-items: stretch;
  flex-wrap: wrap;
}
.trust-item {
  flex: 0 0 auto;
  text-align: center;
  padding: 0.5rem 2.5rem;
  position: relative;
}
.trust-item:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 10%;
  height: 80%;
  width: 1px;
  background: var(--bps-border-color, var(--border-color));
}
.trust-number {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--accent);
  line-height: 1.2;
  margin-bottom: 0.25rem;
}
.trust-label {
  font-family: "DM Mono", monospace;
  font-size: 0.65rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-color3);
}
.aaa-page .faq-item {
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--bps-border-color, var(--border-color));
}
.aaa-page .faq-item:first-child {
  padding-top: 0;
}
.aaa-page .faq-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.aaa-page .faq-question {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--text-highlight);
  margin-bottom: 0.5rem;
  line-height: 1.3;
}
.aaa-page .faq-answer {
  font-size: 0.95rem;
  color: var(--text-color);
  line-height: 1.75;
}
.aaa-page .card {
  border-radius: 20px;
}
.aaa-page .card.featured {
  background: #0a2540;
  border-color: #C89B3C;
  box-shadow: 0 4px 24px rgba(200, 155, 60, 0.2);
}
.aaa-page .card.featured h3, .aaa-page .card.featured h4, .aaa-page .card.featured .elementor-heading-title {
  color: #C89B3C;
}
@media (max-width: 768px) {
  .stats-row {
    flex-wrap: wrap;
  }
  .aaa-page .stat-item {
    flex: 0 0 50%;
    border-right: none;
    border-bottom: 1px solid var(--bps-border-color, var(--border-color));
  }
  .aaa-page .stat-item:last-child, .aaa-page .stat-item:nth-child(even) {
    border-right: none;
  }
  .logo-strip {
    flex-wrap: wrap;
    gap: 1.5rem 2.5rem;
  }
  .logo-strip-divider {
    display: none;
  }
  .trust-row {
    flex-direction: column;
    gap: 1rem;
  }
  .trust-item {
    padding: 0.5rem 1.5rem;
  }
  .trust-item:not(:last-child)::after {
    display: none;
  }
  .cert-step {
    padding-bottom: 1.75rem;
  }
  .badge-row {
    gap: 0.375rem;
  }
}
body.bps-active {
  font-family: var(--bps-font-body, var(--font-body, inherit));
}
body.bps-active button, body.bps-active input, body.bps-active select, body.bps-active textarea {
  font-family: inherit;
}
body.bps-active h1, body.bps-active h2, body.bps-active h3, body.bps-active h4, body.bps-active h5, body.bps-active h6, body.bps-active .elementor-heading-title {
  font-family: var(--font-heading, inherit);
}
body.bps-active button, body.bps-active input, body.bps-active select, body.bps-active textarea, body.bps-active .elementor-button, body.bps-active nav a {
  font-family: var(--font-ui, inherit);
}
body.bps-active code, body.bps-active kbd, body.bps-active samp {
  font-family: var(--font-mono, monospace);
}
body.bps-active pre {
  font-family: var(--font-mono, "Courier 10 Pitch", Courier, monospace);
}
body.bps-active {
  font-size: var(--font-size-base, 16px);
  line-height: var(--line-height-body, 1.65);
}
body.bps-active a {
  font-family: var(--font-links, inherit);
}
body.bps-active .bps-font-display {
  font-family: var(--font-display, var(--font-heading, inherit));
}
body.bps-skin-active .section .elementor-element.avatar-circle {
  width: 40px !important;
  min-width: 40px;
  height: 40px;
  border-radius: 50% !important;
  overflow: hidden;
  flex-shrink: 0;
}
body.bps-skin-active .section .elementor-element.avatar-circle-md {
  width: 48px !important;
  min-width: 48px;
  height: 48px;
}
body.bps-skin-active .section .elementor-element.avatar-circle-lg {
  width: 64px !important;
  min-width: 64px;
  height: 64px;
}
body.bps-skin-active .section .elementor-element.steps-container {
  counter-reset: step-counter;
}
body.bps-skin-active .section .elementor-element.step-item {
  position: relative;
  padding-left: 4rem;
  counter-increment: step-counter;
}
body.bps-skin-active .section .elementor-element.step-item > .e-con-inner {
  padding-left: 0;
}
body.bps-skin-active .section .elementor-element.step-item::before {
  content: counter(step-counter);
  position: absolute;
  left: 0;
  top: 0;
  width: 2.5rem;
  height: 2.5rem;
  background: var(--accent);
  color: var(--bg);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1.125rem;
  z-index: 1;
}
body.bps-skin-active .section .elementor-widget-heading.stat-number:not(.override) .elementor-heading-title {
  font-size: clamp(2.5rem, 6vw, 4rem);
  font-weight: 700;
  line-height: 1;
  color: var(--accent);
}
body.bps-skin-active .section .elementor-widget-heading.bps-accent:not(.override) .elementor-heading-title {
  color: var(--accent);
}
body.bps-skin-active .section .elementor-widget-text-editor.bps-accent:not(.override) span, body.bps-skin-active .section .elementor-widget-text-editor.bps-accent:not(.override) p, body.bps-skin-active .section .elementor-widget-heading.bps-accent:not(.override) .elementor-heading-title {
  color: var(--accent);
}
body.bps-skin-active .entry-content .section .wp-block-heading.bps-accent:not(.override) {
  color: var(--accent);
}
body.bps-skin-active .section .e-con.card, body.bps-skin-active .section .elementor-element.card {
  background: var(--light-bg);
  border-radius: 8px;
  --text-color:     var(--light-text);
  --text-color2:    var(--light-text2);
  --text-color3:    var(--light-text3);
  --text-highlight: var(--light-text-highlight);
}
body.bps-skin-active .section .elementor-element.context-banner {
  background: rgba(var(--accent-rgb), 0.12);
  border-left: 4px solid var(--accent);
  border-radius: 6px;
  padding: 1rem 1.25rem;
}
body.bps-skin-active .section .elementor-element.membership-card {
  background: var(--light-bg);
  border: 2px solid var(--accent);
  border-radius: 12px;
  box-shadow: none;
  text-align: center;
  --text-color:     var(--light-text);
  --text-color2:    var(--light-text2);
  --text-highlight: var(--light-text-highlight);
}
body.bps-skin-active .section .e-con.highlight-quote, body.bps-skin-active .section .elementor-element.highlight-quote {
  border-left: 4px solid var(--accent);
  padding-left: 1.25rem;
  font-style: italic;
}
body.bps-skin-active .section .elementor-element.value-table {
  width: 100%;
}
body.bps-skin-active .section .elementor-element.value-table .elementor-widget-text-editor {
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--bps-border-color, var(--border-color, rgba(0, 0, 0, 0.1)));
}
body.bps-skin-active .section .elementor-widget.skip-link:not(.override) .elementor-heading-title, body.bps-skin-active .section .elementor-widget.skip-link:not(.override) .elementor-widget-text-editor, body.bps-skin-active .section .elementor-widget.skip-link:not(.override) a {
  font-size: 0.875rem;
  color: var(--text-color3);
  text-decoration: underline;
  opacity: 0.75;
}
body.bps-skin-active .section .elementor-widget.inbox-icon .elementor-heading-title {
  font-size: clamp(3rem, 8vw, 5rem);
  line-height: 1;
}
body.bps-skin-active .section.dark .e-con.op-1, body.bps-skin-active .section.dark2 .e-con.op-1, body.bps-skin-active .section.dark3 .e-con.op-1, body.bps-skin-active .section.dark .elementor-element.op-1, body.bps-skin-active .section.dark2 .elementor-element.op-1, body.bps-skin-active .section.dark3 .elementor-element.op-1 {
  background-color: rgba(0, 0, 0, 0.3);
}
body.bps-skin-active .section.dark .e-con.op-2, body.bps-skin-active .section.dark2 .e-con.op-2, body.bps-skin-active .section.dark3 .e-con.op-2, body.bps-skin-active .section.dark .elementor-element.op-2, body.bps-skin-active .section.dark2 .elementor-element.op-2, body.bps-skin-active .section.dark3 .elementor-element.op-2 {
  background-color: rgba(0, 0, 0, 0.55);
}
body.bps-skin-active .section.dark .e-con.op-3, body.bps-skin-active .section.dark2 .e-con.op-3, body.bps-skin-active .section.dark3 .e-con.op-3, body.bps-skin-active .section.dark .elementor-element.op-3, body.bps-skin-active .section.dark2 .elementor-element.op-3, body.bps-skin-active .section.dark3 .elementor-element.op-3 {
  background-color: rgba(0, 0, 0, 0.75);
}
body.bps-skin-active .section.light .e-con.op-1, body.bps-skin-active .section.light2 .e-con.op-1, body.bps-skin-active .section.light3 .e-con.op-1, body.bps-skin-active .section.light .elementor-element.op-1, body.bps-skin-active .section.light2 .elementor-element.op-1, body.bps-skin-active .section.light3 .elementor-element.op-1 {
  background-color: rgba(255, 255, 255, 0.3);
}
body.bps-skin-active .section.light .e-con.op-2, body.bps-skin-active .section.light2 .e-con.op-2, body.bps-skin-active .section.light3 .e-con.op-2, body.bps-skin-active .section.light .elementor-element.op-2, body.bps-skin-active .section.light2 .elementor-element.op-2, body.bps-skin-active .section.light3 .elementor-element.op-2 {
  background-color: rgba(255, 255, 255, 0.55);
}
body.bps-skin-active .section.light .e-con.op-3, body.bps-skin-active .section.light2 .e-con.op-3, body.bps-skin-active .section.light3 .e-con.op-3, body.bps-skin-active .section.light .elementor-element.op-3, body.bps-skin-active .section.light2 .elementor-element.op-3, body.bps-skin-active .section.light3 .elementor-element.op-3 {
  background-color: rgba(255, 255, 255, 0.75);
}
body.bps-skin-active .section .e-con.op-accent, body.bps-skin-active .section .elementor-element.op-accent {
  background-color: rgba(var(--accent-rgb), 0.15);
}
body.bps-skin-active .section .e-con.op-dark-1, body.bps-skin-active .section .elementor-element.op-dark-1 {
  background-color: rgba(0, 0, 0, 0.3);
}
body.bps-skin-active .section .e-con.op-dark-2, body.bps-skin-active .section .elementor-element.op-dark-2 {
  background-color: rgba(0, 0, 0, 0.55);
}
body.bps-skin-active .section .e-con.op-dark-3, body.bps-skin-active .section .elementor-element.op-dark-3 {
  background-color: rgba(0, 0, 0, 0.75);
}
body.bps-skin-active .section .e-con.op-light-1, body.bps-skin-active .section .elementor-element.op-light-1 {
  background-color: rgba(255, 255, 255, 0.3);
}
body.bps-skin-active .section .e-con.op-light-2, body.bps-skin-active .section .elementor-element.op-light-2 {
  background-color: rgba(255, 255, 255, 0.55);
}
body.bps-skin-active .section .e-con.op-light-3, body.bps-skin-active .section .elementor-element.op-light-3 {
  background-color: rgba(255, 255, 255, 0.75);
}
body.bps-skin-active .section.gradient {
  background: linear-gradient(160deg, var(--bg) 0%, var(--bg2) 100%) !important;
}
body.bps-skin-active .section.gradient-v {
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg2) 100%) !important;
}
body.bps-skin-active .section.gradient-radial {
  background: radial-gradient(ellipse at 50% 0%, var(--bg2) 0%, var(--bg) 65%) !important;
}
body.bps-skin-active .section.gradient-rev {
  background: linear-gradient(160deg, var(--bg2) 0%, var(--bg) 100%) !important;
}
body.bps-skin-active .section.gradient-accent {
  background: linear-gradient(160deg, var(--bg) 0%, rgba(var(--accent-rgb), 0.18) 100%) !important;
}
body.bps-skin-active .section .elementor-element.image-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--bg2, rgba(0, 0, 0, 0.08));
  color: var(--text-color3);
  min-height: 240px;
  border-radius: 8px;
}
body.bps-skin-active .section .elementor-element.image-placeholder::after {
  content: "[ image ]";
  font-size: 0.875rem;
  opacity: 0.5;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
body.bps-skin-active .section .elementor-widget.badge:not(.override) span, body.bps-skin-active .section .elementor-widget.badge:not(.override) .elementor-heading-title {
  display: inline-block;
  background-color: var(--accent);
  color: var(--bg);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.25rem 0.75rem;
  border-radius: 100px;
  line-height: 1.4;
}
body.bps-skin-active .section .elementor-widget.badge-gold:not(.override) span, body.bps-skin-active .section .elementor-widget.badge.badge-gold:not(.override) span {
  background-color: rgba(var(--accent-rgb), 0.18);
  color: var(--accent);
  border: 1px solid rgba(var(--accent-rgb), 0.4);
}
body.bps-skin-active .section .e-con.card-featured, body.bps-skin-active .section .elementor-element.card-featured {
  background: var(--light-bg);
  border: 2px solid var(--accent);
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(var(--accent-rgb), 0.15);
  --text-color:     var(--light-text);
  --text-color2:    var(--light-text2);
  --text-color3:    var(--light-text3);
  --text-highlight: var(--light-text-highlight);
}
body.bps-skin-active .section .e-con.border-accent, body.bps-skin-active .section .elementor-element.border-accent {
  border: 2px solid var(--accent);
  border-radius: 8px;
}
body.bps-skin-active .section .e-con.border-top, body.bps-skin-active .section .elementor-element.border-top {
  border-top: 3px solid var(--accent) !important;
  border-right: 0;
  border-bottom: 0;
  border-left: 0;
  box-shadow: none;
  padding-top: 1.25rem;
}
body.bps-skin-active .card.border-top {
  --bs-card-border-width: 0;
  --bs-card-border-color: transparent;
}
body.bps-skin-active .section .elementor-element.check-list ul, body.bps-skin-active .section .elementor-widget.check-list .elementor-widget-text-editor ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
body.bps-skin-active .section .elementor-element.check-list ul li, body.bps-skin-active .section .elementor-widget.check-list .elementor-widget-text-editor ul li {
  position: relative;
  padding-left: 2rem;
  margin-bottom: 0.75rem;
  line-height: 1.5;
}
body.bps-skin-active .section .elementor-element.check-list ul li::before, body.bps-skin-active .section .elementor-widget.check-list .elementor-widget-text-editor ul li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--accent);
  font-weight: 700;
  font-size: 1.1rem;
}
body.bps-skin-active .section .elementor-widget.list-flush .elementor-widget-text-editor ul, body.bps-skin-active .section .elementor-widget.list-flush .elementor-widget-text-editor ol {
  padding-left: 1.25rem;
  margin-left: 0;
}
body.bps-skin-active .section .elementor-widget.benefit-icon .elementor-heading-title {
  font-size: clamp(2rem, 5vw, 3rem);
  line-height: 1;
}
body.bps-skin-active .section .elementor-widget.step-number:not(.override) .elementor-heading-title {
  font-size: clamp(2.5rem, 6vw, 4rem);
  font-weight: 700;
  color: var(--accent);
  line-height: 1;
  opacity: 0.9;
}
body.bps-skin-active .section .e-con.timeline-item, body.bps-skin-active .section .elementor-element.timeline-item {
  position: relative;
  padding-left: 2rem;
}
body.bps-skin-active .section .e-con.timeline-item::before, body.bps-skin-active .section .elementor-element.timeline-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.25rem;
  bottom: 0.25rem;
  width: 3px;
  background-color: var(--accent);
  border-radius: 2px;
}
body.bps-skin-active .section .e-con.dark, body.bps-skin-active .section .e-con.dark2, body.bps-skin-active .section .e-con.dark3, body.bps-skin-active .section .elementor-element.dark, body.bps-skin-active .section .elementor-element.dark2, body.bps-skin-active .section .elementor-element.dark3 {
  --text-color:  var(--dark-text);
  --text-color2: var(--dark-text2);
  --bg:          var(--dark-bg);
}
body.bps-skin-active .section .e-con.dark p:where(:not(.override)):where(:not(.override *)), body.bps-skin-active .section .e-con.dark2 p:where(:not(.override)):where(:not(.override *)), body.bps-skin-active .section .e-con.dark3 p:where(:not(.override)):where(:not(.override *)), body.bps-skin-active .section .e-con.dark span:where(:not(.override)):where(:not(.override *)), body.bps-skin-active .section .e-con.dark2 span:where(:not(.override)):where(:not(.override *)), body.bps-skin-active .section .e-con.dark3 span:where(:not(.override)):where(:not(.override *)), body.bps-skin-active .section .elementor-element.dark p:where(:not(.override)):where(:not(.override *)), body.bps-skin-active .section .elementor-element.dark2 p:where(:not(.override)):where(:not(.override *)), body.bps-skin-active .section .elementor-element.dark3 p:where(:not(.override)):where(:not(.override *)), body.bps-skin-active .section .elementor-element.dark span:where(:not(.override)):where(:not(.override *)), body.bps-skin-active .section .elementor-element.dark2 span:where(:not(.override)):where(:not(.override *)), body.bps-skin-active .section .elementor-element.dark3 span:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
}
body.bps-skin-active .section .e-con.dark .elementor-heading-title:where(:not(.override)):where(:not(.override *)), body.bps-skin-active .section .e-con.dark2 .elementor-heading-title:where(:not(.override)):where(:not(.override *)), body.bps-skin-active .section .e-con.dark3 .elementor-heading-title:where(:not(.override)):where(:not(.override *)), body.bps-skin-active .section .elementor-element.dark .elementor-heading-title:where(:not(.override)):where(:not(.override *)), body.bps-skin-active .section .elementor-element.dark2 .elementor-heading-title:where(:not(.override)):where(:not(.override *)), body.bps-skin-active .section .elementor-element.dark3 .elementor-heading-title:where(:not(.override)):where(:not(.override *)) {
  color: var(--text-color);
}
body.bps-skin-active .section .e-con.cancel-card, body.bps-skin-active .section .elementor-element.cancel-card {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 8px;
  padding: 1rem 1.25rem;
  text-align: center;
}
body.bps-skin-active .section .e-con.cancel-card .elementor-heading-title, body.bps-skin-active .section .e-con.cancel-card .elementor-widget-text-editor, body.bps-skin-active .section .elementor-element.cancel-card .elementor-heading-title, body.bps-skin-active .section .elementor-element.cancel-card .elementor-widget-text-editor {
  font-size: 0.9rem;
  opacity: 0.75;
}
body.bps-skin-active .section .elementor-widget-icon-box .elementor-icon-box-description {
  font-size: 0.9375rem;
  font-weight: normal;
  line-height: 1.6;
}
body.bps-skin-active .bps-form .bps-btn {
  padding: var(--bps-btn-padding-y, 0.7rem) var(--bps-btn-padding-x, 1.6rem);
  min-height: var(--bps-btn-min-height, 46px);
  border-width: 1px;
  line-height: 1.4;
  font-size: var(--font-sm);
}
body.bps-skin-active .bps-form .bps-input:focus, body.bps-skin-active .bps-form .bps-form .moaform-select2:focus, .bps-form body.bps-skin-active .bps-form .moaform-select2:focus, body.bps-skin-active .bps-form .bps-select:focus, body.bps-skin-active .bps-form .bps-textarea:focus, body.bps-skin-active .bps-form .moaform-select2:focus {
  border-width: var(--bps-form-focus-border-width, var(--bps-input-border-width));
  border-style: var(--bps-input-border-style);
  border-color: var(--bps-accent);
  box-shadow: var(--bps-form-focus-shadow, 0 0 0 var(--bps-form-focus-ring-width, 3px) var(--bps-form-focus-ring, rgba(var(--accent-rgb, 44, 62, 80), 0.3)));
  outline: none;
}
.section.light .btn-primary, .section.light2 .btn-primary, .section.light3 .btn-primary, .section.light button.btn-primary, .section.light2 button.btn-primary, .section.light3 button.btn-primary, .section.light input[type="submit"].btn-primary, .section.light2 input[type="submit"].btn-primary, .section.light3 input[type="submit"].btn-primary, .section.light button[type="submit"], .section.light2 button[type="submit"], .section.light3 button[type="submit"], .section.light input[type="submit"], .section.light2 input[type="submit"], .section.light3 input[type="submit"], .section.dark .btn-primary, .section.dark2 .btn-primary, .section.dark3 .btn-primary, .section.dark button.btn-primary, .section.dark2 button.btn-primary, .section.dark3 button.btn-primary, .section.dark input[type="submit"].btn-primary, .section.dark2 input[type="submit"].btn-primary, .section.dark3 input[type="submit"].btn-primary, .section.dark button[type="submit"], .section.dark2 button[type="submit"], .section.dark3 button[type="submit"], .section.dark input[type="submit"], .section.dark2 input[type="submit"], .section.dark3 input[type="submit"] {
  background-color: var(--button-color) !important;
  color: var(--button-color-text) !important;
  border-color: var(--button-border-color, var(--button-color)) !important;
}
.section.light .btn-primary:hover, .section.light2 .btn-primary:hover, .section.light3 .btn-primary:hover, .section.light .btn-primary:focus, .section.light2 .btn-primary:focus, .section.light3 .btn-primary:focus, .section.light .btn-primary:active, .section.light2 .btn-primary:active, .section.light3 .btn-primary:active, .section.light button.btn-primary:hover, .section.light2 button.btn-primary:hover, .section.light3 button.btn-primary:hover, .section.light button.btn-primary:focus, .section.light2 button.btn-primary:focus, .section.light3 button.btn-primary:focus, .section.light button.btn-primary:active, .section.light2 button.btn-primary:active, .section.light3 button.btn-primary:active, .section.light input[type="submit"].btn-primary:hover, .section.light2 input[type="submit"].btn-primary:hover, .section.light3 input[type="submit"].btn-primary:hover, .section.light input[type="submit"].btn-primary:focus, .section.light2 input[type="submit"].btn-primary:focus, .section.light3 input[type="submit"].btn-primary:focus, .section.light input[type="submit"].btn-primary:active, .section.light2 input[type="submit"].btn-primary:active, .section.light3 input[type="submit"].btn-primary:active, .section.light button[type="submit"]:hover, .section.light2 button[type="submit"]:hover, .section.light3 button[type="submit"]:hover, .section.light button[type="submit"]:focus, .section.light2 button[type="submit"]:focus, .section.light3 button[type="submit"]:focus, .section.light button[type="submit"]:active, .section.light2 button[type="submit"]:active, .section.light3 button[type="submit"]:active, .section.light input[type="submit"]:hover, .section.light2 input[type="submit"]:hover, .section.light3 input[type="submit"]:hover, .section.light input[type="submit"]:focus, .section.light2 input[type="submit"]:focus, .section.light3 input[type="submit"]:focus, .section.light input[type="submit"]:active, .section.light2 input[type="submit"]:active, .section.light3 input[type="submit"]:active, .section.dark .btn-primary:hover, .section.dark2 .btn-primary:hover, .section.dark3 .btn-primary:hover, .section.dark .btn-primary:focus, .section.dark2 .btn-primary:focus, .section.dark3 .btn-primary:focus, .section.dark .btn-primary:active, .section.dark2 .btn-primary:active, .section.dark3 .btn-primary:active, .section.dark button.btn-primary:hover, .section.dark2 button.btn-primary:hover, .section.dark3 button.btn-primary:hover, .section.dark button.btn-primary:focus, .section.dark2 button.btn-primary:focus, .section.dark3 button.btn-primary:focus, .section.dark button.btn-primary:active, .section.dark2 button.btn-primary:active, .section.dark3 button.btn-primary:active, .section.dark input[type="submit"].btn-primary:hover, .section.dark2 input[type="submit"].btn-primary:hover, .section.dark3 input[type="submit"].btn-primary:hover, .section.dark input[type="submit"].btn-primary:focus, .section.dark2 input[type="submit"].btn-primary:focus, .section.dark3 input[type="submit"].btn-primary:focus, .section.dark input[type="submit"].btn-primary:active, .section.dark2 input[type="submit"].btn-primary:active, .section.dark3 input[type="submit"].btn-primary:active, .section.dark button[type="submit"]:hover, .section.dark2 button[type="submit"]:hover, .section.dark3 button[type="submit"]:hover, .section.dark button[type="submit"]:focus, .section.dark2 button[type="submit"]:focus, .section.dark3 button[type="submit"]:focus, .section.dark button[type="submit"]:active, .section.dark2 button[type="submit"]:active, .section.dark3 button[type="submit"]:active, .section.dark input[type="submit"]:hover, .section.dark2 input[type="submit"]:hover, .section.dark3 input[type="submit"]:hover, .section.dark input[type="submit"]:focus, .section.dark2 input[type="submit"]:focus, .section.dark3 input[type="submit"]:focus, .section.dark input[type="submit"]:active, .section.dark2 input[type="submit"]:active, .section.dark3 input[type="submit"]:active {
  background-color: var(--cta-hover) !important;
  color: var(--cta-hover-text, var(--button-color-text)) !important;
  border-color: var(--cta-hover-border, var(--cta-hover)) !important;
}
.section.light .wp-block-button__link, .section.light2 .wp-block-button__link, .section.light3 .wp-block-button__link, .section.light .wp-block-button a.wp-element-button, .section.light2 .wp-block-button a.wp-element-button, .section.light3 .wp-block-button a.wp-element-button, .section.light a.wp-element-button, .section.light2 a.wp-element-button, .section.light3 a.wp-element-button, .section.dark .wp-block-button__link, .section.dark2 .wp-block-button__link, .section.dark3 .wp-block-button__link, .section.dark .wp-block-button a.wp-element-button, .section.dark2 .wp-block-button a.wp-element-button, .section.dark3 .wp-block-button a.wp-element-button, .section.dark a.wp-element-button, .section.dark2 a.wp-element-button, .section.dark3 a.wp-element-button {
  background-color: var(--button-color);
  color: var(--button-color-text);
  border-color: var(--button-border-color, var(--button-color));
  text-decoration: none;
}
.section.light .wp-block-button__link:hover, .section.light2 .wp-block-button__link:hover, .section.light3 .wp-block-button__link:hover, .section.light .wp-block-button__link:focus, .section.light2 .wp-block-button__link:focus, .section.light3 .wp-block-button__link:focus, .section.light .wp-block-button__link:active, .section.light2 .wp-block-button__link:active, .section.light3 .wp-block-button__link:active, .section.light .wp-block-button a.wp-element-button:hover, .section.light2 .wp-block-button a.wp-element-button:hover, .section.light3 .wp-block-button a.wp-element-button:hover, .section.light .wp-block-button a.wp-element-button:focus, .section.light2 .wp-block-button a.wp-element-button:focus, .section.light3 .wp-block-button a.wp-element-button:focus, .section.light .wp-block-button a.wp-element-button:active, .section.light2 .wp-block-button a.wp-element-button:active, .section.light3 .wp-block-button a.wp-element-button:active, .section.light a.wp-element-button:hover, .section.light2 a.wp-element-button:hover, .section.light3 a.wp-element-button:hover, .section.light a.wp-element-button:focus, .section.light2 a.wp-element-button:focus, .section.light3 a.wp-element-button:focus, .section.light a.wp-element-button:active, .section.light2 a.wp-element-button:active, .section.light3 a.wp-element-button:active, .section.dark .wp-block-button__link:hover, .section.dark2 .wp-block-button__link:hover, .section.dark3 .wp-block-button__link:hover, .section.dark .wp-block-button__link:focus, .section.dark2 .wp-block-button__link:focus, .section.dark3 .wp-block-button__link:focus, .section.dark .wp-block-button__link:active, .section.dark2 .wp-block-button__link:active, .section.dark3 .wp-block-button__link:active, .section.dark .wp-block-button a.wp-element-button:hover, .section.dark2 .wp-block-button a.wp-element-button:hover, .section.dark3 .wp-block-button a.wp-element-button:hover, .section.dark .wp-block-button a.wp-element-button:focus, .section.dark2 .wp-block-button a.wp-element-button:focus, .section.dark3 .wp-block-button a.wp-element-button:focus, .section.dark .wp-block-button a.wp-element-button:active, .section.dark2 .wp-block-button a.wp-element-button:active, .section.dark3 .wp-block-button a.wp-element-button:active, .section.dark a.wp-element-button:hover, .section.dark2 a.wp-element-button:hover, .section.dark3 a.wp-element-button:hover, .section.dark a.wp-element-button:focus, .section.dark2 a.wp-element-button:focus, .section.dark3 a.wp-element-button:focus, .section.dark a.wp-element-button:active, .section.dark2 a.wp-element-button:active, .section.dark3 a.wp-element-button:active {
  background-color: var(--cta-hover);
  color: var(--cta-hover-text, var(--button-color-text));
  border-color: var(--cta-hover-border, var(--cta-hover));
}
.section.light .wp-block-button.is-style-fill .wp-block-button__link, .section.light2 .wp-block-button.is-style-fill .wp-block-button__link, .section.light3 .wp-block-button.is-style-fill .wp-block-button__link, .section.light .wp-block-button.is-style-fill a.wp-element-button, .section.light2 .wp-block-button.is-style-fill a.wp-element-button, .section.light3 .wp-block-button.is-style-fill a.wp-element-button, .section.dark .wp-block-button.is-style-fill .wp-block-button__link, .section.dark2 .wp-block-button.is-style-fill .wp-block-button__link, .section.dark3 .wp-block-button.is-style-fill .wp-block-button__link, .section.dark .wp-block-button.is-style-fill a.wp-element-button, .section.dark2 .wp-block-button.is-style-fill a.wp-element-button, .section.dark3 .wp-block-button.is-style-fill a.wp-element-button {
  background-color: var(--button-color);
  color: var(--button-color-text);
  border-color: var(--button-border-color, var(--button-color));
}
.section.light .wp-block-button.is-style-fill .wp-block-button__link:hover, .section.light2 .wp-block-button.is-style-fill .wp-block-button__link:hover, .section.light3 .wp-block-button.is-style-fill .wp-block-button__link:hover, .section.light .wp-block-button.is-style-fill .wp-block-button__link:focus, .section.light2 .wp-block-button.is-style-fill .wp-block-button__link:focus, .section.light3 .wp-block-button.is-style-fill .wp-block-button__link:focus, .section.light .wp-block-button.is-style-fill a.wp-element-button:hover, .section.light2 .wp-block-button.is-style-fill a.wp-element-button:hover, .section.light3 .wp-block-button.is-style-fill a.wp-element-button:hover, .section.light .wp-block-button.is-style-fill a.wp-element-button:focus, .section.light2 .wp-block-button.is-style-fill a.wp-element-button:focus, .section.light3 .wp-block-button.is-style-fill a.wp-element-button:focus, .section.dark .wp-block-button.is-style-fill .wp-block-button__link:hover, .section.dark2 .wp-block-button.is-style-fill .wp-block-button__link:hover, .section.dark3 .wp-block-button.is-style-fill .wp-block-button__link:hover, .section.dark .wp-block-button.is-style-fill .wp-block-button__link:focus, .section.dark2 .wp-block-button.is-style-fill .wp-block-button__link:focus, .section.dark3 .wp-block-button.is-style-fill .wp-block-button__link:focus, .section.dark .wp-block-button.is-style-fill a.wp-element-button:hover, .section.dark2 .wp-block-button.is-style-fill a.wp-element-button:hover, .section.dark3 .wp-block-button.is-style-fill a.wp-element-button:hover, .section.dark .wp-block-button.is-style-fill a.wp-element-button:focus, .section.dark2 .wp-block-button.is-style-fill a.wp-element-button:focus, .section.dark3 .wp-block-button.is-style-fill a.wp-element-button:focus {
  background-color: var(--cta-hover);
  color: var(--cta-hover-text, var(--button-color-text));
}
.section.light .wp-block-button.is-style-outline .wp-block-button__link, .section.light2 .wp-block-button.is-style-outline .wp-block-button__link, .section.light3 .wp-block-button.is-style-outline .wp-block-button__link, .section.light .wp-block-button.is-style-outline a.wp-element-button, .section.light2 .wp-block-button.is-style-outline a.wp-element-button, .section.light3 .wp-block-button.is-style-outline a.wp-element-button, .section.dark .wp-block-button.is-style-outline .wp-block-button__link, .section.dark2 .wp-block-button.is-style-outline .wp-block-button__link, .section.dark3 .wp-block-button.is-style-outline .wp-block-button__link, .section.dark .wp-block-button.is-style-outline a.wp-element-button, .section.dark2 .wp-block-button.is-style-outline a.wp-element-button, .section.dark3 .wp-block-button.is-style-outline a.wp-element-button {
  background-color: transparent;
  color: var(--button-ghost-color-text, var(--button-color));
  border: 2px solid var(--button-border-color, var(--button-color));
}
.section.light .wp-block-button.is-style-outline .wp-block-button__link:hover, .section.light2 .wp-block-button.is-style-outline .wp-block-button__link:hover, .section.light3 .wp-block-button.is-style-outline .wp-block-button__link:hover, .section.light .wp-block-button.is-style-outline .wp-block-button__link:focus, .section.light2 .wp-block-button.is-style-outline .wp-block-button__link:focus, .section.light3 .wp-block-button.is-style-outline .wp-block-button__link:focus, .section.light .wp-block-button.is-style-outline a.wp-element-button:hover, .section.light2 .wp-block-button.is-style-outline a.wp-element-button:hover, .section.light3 .wp-block-button.is-style-outline a.wp-element-button:hover, .section.light .wp-block-button.is-style-outline a.wp-element-button:focus, .section.light2 .wp-block-button.is-style-outline a.wp-element-button:focus, .section.light3 .wp-block-button.is-style-outline a.wp-element-button:focus, .section.dark .wp-block-button.is-style-outline .wp-block-button__link:hover, .section.dark2 .wp-block-button.is-style-outline .wp-block-button__link:hover, .section.dark3 .wp-block-button.is-style-outline .wp-block-button__link:hover, .section.dark .wp-block-button.is-style-outline .wp-block-button__link:focus, .section.dark2 .wp-block-button.is-style-outline .wp-block-button__link:focus, .section.dark3 .wp-block-button.is-style-outline .wp-block-button__link:focus, .section.dark .wp-block-button.is-style-outline a.wp-element-button:hover, .section.dark2 .wp-block-button.is-style-outline a.wp-element-button:hover, .section.dark3 .wp-block-button.is-style-outline a.wp-element-button:hover, .section.dark .wp-block-button.is-style-outline a.wp-element-button:focus, .section.dark2 .wp-block-button.is-style-outline a.wp-element-button:focus, .section.dark3 .wp-block-button.is-style-outline a.wp-element-button:focus {
  background-color: var(--button-color);
  color: var(--button-color-text);
  border-color: var(--button-color);
}
.section.light .wp-block-button.button-secondary, .section.light2 .wp-block-button.button-secondary, .section.light3 .wp-block-button.button-secondary, .section.dark .wp-block-button.button-secondary, .section.dark2 .wp-block-button.button-secondary, .section.dark3 .wp-block-button.button-secondary {
  --button-color:        var(--accent-2);
  --button-color-text:   var(--accent-text-2);
  --button-border-color: var(--accent-2-border, var(--accent-2));
}
.section.light .wp-block-button.button-tertiary, .section.light2 .wp-block-button.button-tertiary, .section.light3 .wp-block-button.button-tertiary, .section.dark .wp-block-button.button-tertiary, .section.dark2 .wp-block-button.button-tertiary, .section.dark3 .wp-block-button.button-tertiary {
  --button-color:        var(--accent-3);
  --button-color-text:   var(--accent-text-3);
  --button-border-color: var(--accent-3-border, var(--accent-3));
}
.section.light .wp-block-button.button-outline .wp-block-button__link, .section.light2 .wp-block-button.button-outline .wp-block-button__link, .section.light3 .wp-block-button.button-outline .wp-block-button__link, .section.light .wp-block-button.button-outline a.wp-element-button, .section.light2 .wp-block-button.button-outline a.wp-element-button, .section.light3 .wp-block-button.button-outline a.wp-element-button, .section.light .wp-block-button.button-outline-secondary .wp-block-button__link, .section.light2 .wp-block-button.button-outline-secondary .wp-block-button__link, .section.light3 .wp-block-button.button-outline-secondary .wp-block-button__link, .section.light .wp-block-button.button-outline-secondary a.wp-element-button, .section.light2 .wp-block-button.button-outline-secondary a.wp-element-button, .section.light3 .wp-block-button.button-outline-secondary a.wp-element-button, .section.light .wp-block-button.button-outline-tertiary .wp-block-button__link, .section.light2 .wp-block-button.button-outline-tertiary .wp-block-button__link, .section.light3 .wp-block-button.button-outline-tertiary .wp-block-button__link, .section.light .wp-block-button.button-outline-tertiary a.wp-element-button, .section.light2 .wp-block-button.button-outline-tertiary a.wp-element-button, .section.light3 .wp-block-button.button-outline-tertiary a.wp-element-button, .section.dark .wp-block-button.button-outline .wp-block-button__link, .section.dark2 .wp-block-button.button-outline .wp-block-button__link, .section.dark3 .wp-block-button.button-outline .wp-block-button__link, .section.dark .wp-block-button.button-outline a.wp-element-button, .section.dark2 .wp-block-button.button-outline a.wp-element-button, .section.dark3 .wp-block-button.button-outline a.wp-element-button, .section.dark .wp-block-button.button-outline-secondary .wp-block-button__link, .section.dark2 .wp-block-button.button-outline-secondary .wp-block-button__link, .section.dark3 .wp-block-button.button-outline-secondary .wp-block-button__link, .section.dark .wp-block-button.button-outline-secondary a.wp-element-button, .section.dark2 .wp-block-button.button-outline-secondary a.wp-element-button, .section.dark3 .wp-block-button.button-outline-secondary a.wp-element-button, .section.dark .wp-block-button.button-outline-tertiary .wp-block-button__link, .section.dark2 .wp-block-button.button-outline-tertiary .wp-block-button__link, .section.dark3 .wp-block-button.button-outline-tertiary .wp-block-button__link, .section.dark .wp-block-button.button-outline-tertiary a.wp-element-button, .section.dark2 .wp-block-button.button-outline-tertiary a.wp-element-button, .section.dark3 .wp-block-button.button-outline-tertiary a.wp-element-button {
  background-color: transparent;
  background-image: none;
  color: var(--button-border-color, var(--button-color));
  border: 2px solid var(--button-border-color, var(--button-color));
}
.section.light .wp-block-button.button-outline .wp-block-button__link:hover, .section.light2 .wp-block-button.button-outline .wp-block-button__link:hover, .section.light3 .wp-block-button.button-outline .wp-block-button__link:hover, .section.light .wp-block-button.button-outline .wp-block-button__link:focus, .section.light2 .wp-block-button.button-outline .wp-block-button__link:focus, .section.light3 .wp-block-button.button-outline .wp-block-button__link:focus, .section.light .wp-block-button.button-outline a.wp-element-button:hover, .section.light2 .wp-block-button.button-outline a.wp-element-button:hover, .section.light3 .wp-block-button.button-outline a.wp-element-button:hover, .section.light .wp-block-button.button-outline a.wp-element-button:focus, .section.light2 .wp-block-button.button-outline a.wp-element-button:focus, .section.light3 .wp-block-button.button-outline a.wp-element-button:focus, .section.light .wp-block-button.button-outline-secondary .wp-block-button__link:hover, .section.light2 .wp-block-button.button-outline-secondary .wp-block-button__link:hover, .section.light3 .wp-block-button.button-outline-secondary .wp-block-button__link:hover, .section.light .wp-block-button.button-outline-secondary .wp-block-button__link:focus, .section.light2 .wp-block-button.button-outline-secondary .wp-block-button__link:focus, .section.light3 .wp-block-button.button-outline-secondary .wp-block-button__link:focus, .section.light .wp-block-button.button-outline-secondary a.wp-element-button:hover, .section.light2 .wp-block-button.button-outline-secondary a.wp-element-button:hover, .section.light3 .wp-block-button.button-outline-secondary a.wp-element-button:hover, .section.light .wp-block-button.button-outline-secondary a.wp-element-button:focus, .section.light2 .wp-block-button.button-outline-secondary a.wp-element-button:focus, .section.light3 .wp-block-button.button-outline-secondary a.wp-element-button:focus, .section.light .wp-block-button.button-outline-tertiary .wp-block-button__link:hover, .section.light2 .wp-block-button.button-outline-tertiary .wp-block-button__link:hover, .section.light3 .wp-block-button.button-outline-tertiary .wp-block-button__link:hover, .section.light .wp-block-button.button-outline-tertiary .wp-block-button__link:focus, .section.light2 .wp-block-button.button-outline-tertiary .wp-block-button__link:focus, .section.light3 .wp-block-button.button-outline-tertiary .wp-block-button__link:focus, .section.light .wp-block-button.button-outline-tertiary a.wp-element-button:hover, .section.light2 .wp-block-button.button-outline-tertiary a.wp-element-button:hover, .section.light3 .wp-block-button.button-outline-tertiary a.wp-element-button:hover, .section.light .wp-block-button.button-outline-tertiary a.wp-element-button:focus, .section.light2 .wp-block-button.button-outline-tertiary a.wp-element-button:focus, .section.light3 .wp-block-button.button-outline-tertiary a.wp-element-button:focus, .section.dark .wp-block-button.button-outline .wp-block-button__link:hover, .section.dark2 .wp-block-button.button-outline .wp-block-button__link:hover, .section.dark3 .wp-block-button.button-outline .wp-block-button__link:hover, .section.dark .wp-block-button.button-outline .wp-block-button__link:focus, .section.dark2 .wp-block-button.button-outline .wp-block-button__link:focus, .section.dark3 .wp-block-button.button-outline .wp-block-button__link:focus, .section.dark .wp-block-button.button-outline a.wp-element-button:hover, .section.dark2 .wp-block-button.button-outline a.wp-element-button:hover, .section.dark3 .wp-block-button.button-outline a.wp-element-button:hover, .section.dark .wp-block-button.button-outline a.wp-element-button:focus, .section.dark2 .wp-block-button.button-outline a.wp-element-button:focus, .section.dark3 .wp-block-button.button-outline a.wp-element-button:focus, .section.dark .wp-block-button.button-outline-secondary .wp-block-button__link:hover, .section.dark2 .wp-block-button.button-outline-secondary .wp-block-button__link:hover, .section.dark3 .wp-block-button.button-outline-secondary .wp-block-button__link:hover, .section.dark .wp-block-button.button-outline-secondary .wp-block-button__link:focus, .section.dark2 .wp-block-button.button-outline-secondary .wp-block-button__link:focus, .section.dark3 .wp-block-button.button-outline-secondary .wp-block-button__link:focus, .section.dark .wp-block-button.button-outline-secondary a.wp-element-button:hover, .section.dark2 .wp-block-button.button-outline-secondary a.wp-element-button:hover, .section.dark3 .wp-block-button.button-outline-secondary a.wp-element-button:hover, .section.dark .wp-block-button.button-outline-secondary a.wp-element-button:focus, .section.dark2 .wp-block-button.button-outline-secondary a.wp-element-button:focus, .section.dark3 .wp-block-button.button-outline-secondary a.wp-element-button:focus, .section.dark .wp-block-button.button-outline-tertiary .wp-block-button__link:hover, .section.dark2 .wp-block-button.button-outline-tertiary .wp-block-button__link:hover, .section.dark3 .wp-block-button.button-outline-tertiary .wp-block-button__link:hover, .section.dark .wp-block-button.button-outline-tertiary .wp-block-button__link:focus, .section.dark2 .wp-block-button.button-outline-tertiary .wp-block-button__link:focus, .section.dark3 .wp-block-button.button-outline-tertiary .wp-block-button__link:focus, .section.dark .wp-block-button.button-outline-tertiary a.wp-element-button:hover, .section.dark2 .wp-block-button.button-outline-tertiary a.wp-element-button:hover, .section.dark3 .wp-block-button.button-outline-tertiary a.wp-element-button:hover, .section.dark .wp-block-button.button-outline-tertiary a.wp-element-button:focus, .section.dark2 .wp-block-button.button-outline-tertiary a.wp-element-button:focus, .section.dark3 .wp-block-button.button-outline-tertiary a.wp-element-button:focus {
  background-color: var(--button-border-color, var(--button-color));
  background-image: none;
  color: var(--button-color-text);
}
.section.light .wp-block-button.button-outline-secondary, .section.light2 .wp-block-button.button-outline-secondary, .section.light3 .wp-block-button.button-outline-secondary, .section.dark .wp-block-button.button-outline-secondary, .section.dark2 .wp-block-button.button-outline-secondary, .section.dark3 .wp-block-button.button-outline-secondary {
  --button-color:        var(--accent-2);
  --button-color-text:   var(--accent-text-2);
  --button-border-color: var(--accent-2);
}
.section.light .wp-block-button.button-outline-tertiary, .section.light2 .wp-block-button.button-outline-tertiary, .section.light3 .wp-block-button.button-outline-tertiary, .section.dark .wp-block-button.button-outline-tertiary, .section.dark2 .wp-block-button.button-outline-tertiary, .section.dark3 .wp-block-button.button-outline-tertiary {
  --button-color:        var(--accent-3);
  --button-color-text:   var(--accent-text-3);
  --button-border-color: var(--accent-3);
}
.section.light .wp-block-button.bps-ghost .wp-block-button__link, .section.light2 .wp-block-button.bps-ghost .wp-block-button__link, .section.light3 .wp-block-button.bps-ghost .wp-block-button__link, .section.light .wp-block-button.bps-ghost a.wp-element-button, .section.light2 .wp-block-button.bps-ghost a.wp-element-button, .section.light3 .wp-block-button.bps-ghost a.wp-element-button, .section.light .wp-block-button.bps-ghost-2 .wp-block-button__link, .section.light2 .wp-block-button.bps-ghost-2 .wp-block-button__link, .section.light3 .wp-block-button.bps-ghost-2 .wp-block-button__link, .section.light .wp-block-button.bps-ghost-2 a.wp-element-button, .section.light2 .wp-block-button.bps-ghost-2 a.wp-element-button, .section.light3 .wp-block-button.bps-ghost-2 a.wp-element-button, .section.light .wp-block-button.bps-ghost-secondary .wp-block-button__link, .section.light2 .wp-block-button.bps-ghost-secondary .wp-block-button__link, .section.light3 .wp-block-button.bps-ghost-secondary .wp-block-button__link, .section.light .wp-block-button.bps-ghost-secondary a.wp-element-button, .section.light2 .wp-block-button.bps-ghost-secondary a.wp-element-button, .section.light3 .wp-block-button.bps-ghost-secondary a.wp-element-button, .section.light .wp-block-button.bps-ghost-3 .wp-block-button__link, .section.light2 .wp-block-button.bps-ghost-3 .wp-block-button__link, .section.light3 .wp-block-button.bps-ghost-3 .wp-block-button__link, .section.light .wp-block-button.bps-ghost-3 a.wp-element-button, .section.light2 .wp-block-button.bps-ghost-3 a.wp-element-button, .section.light3 .wp-block-button.bps-ghost-3 a.wp-element-button, .section.light .wp-block-button.bps-ghost-text .wp-block-button__link, .section.light2 .wp-block-button.bps-ghost-text .wp-block-button__link, .section.light3 .wp-block-button.bps-ghost-text .wp-block-button__link, .section.light .wp-block-button.bps-ghost-text a.wp-element-button, .section.light2 .wp-block-button.bps-ghost-text a.wp-element-button, .section.light3 .wp-block-button.bps-ghost-text a.wp-element-button, .section.dark .wp-block-button.bps-ghost .wp-block-button__link, .section.dark2 .wp-block-button.bps-ghost .wp-block-button__link, .section.dark3 .wp-block-button.bps-ghost .wp-block-button__link, .section.dark .wp-block-button.bps-ghost a.wp-element-button, .section.dark2 .wp-block-button.bps-ghost a.wp-element-button, .section.dark3 .wp-block-button.bps-ghost a.wp-element-button, .section.dark .wp-block-button.bps-ghost-2 .wp-block-button__link, .section.dark2 .wp-block-button.bps-ghost-2 .wp-block-button__link, .section.dark3 .wp-block-button.bps-ghost-2 .wp-block-button__link, .section.dark .wp-block-button.bps-ghost-2 a.wp-element-button, .section.dark2 .wp-block-button.bps-ghost-2 a.wp-element-button, .section.dark3 .wp-block-button.bps-ghost-2 a.wp-element-button, .section.dark .wp-block-button.bps-ghost-secondary .wp-block-button__link, .section.dark2 .wp-block-button.bps-ghost-secondary .wp-block-button__link, .section.dark3 .wp-block-button.bps-ghost-secondary .wp-block-button__link, .section.dark .wp-block-button.bps-ghost-secondary a.wp-element-button, .section.dark2 .wp-block-button.bps-ghost-secondary a.wp-element-button, .section.dark3 .wp-block-button.bps-ghost-secondary a.wp-element-button, .section.dark .wp-block-button.bps-ghost-3 .wp-block-button__link, .section.dark2 .wp-block-button.bps-ghost-3 .wp-block-button__link, .section.dark3 .wp-block-button.bps-ghost-3 .wp-block-button__link, .section.dark .wp-block-button.bps-ghost-3 a.wp-element-button, .section.dark2 .wp-block-button.bps-ghost-3 a.wp-element-button, .section.dark3 .wp-block-button.bps-ghost-3 a.wp-element-button, .section.dark .wp-block-button.bps-ghost-text .wp-block-button__link, .section.dark2 .wp-block-button.bps-ghost-text .wp-block-button__link, .section.dark3 .wp-block-button.bps-ghost-text .wp-block-button__link, .section.dark .wp-block-button.bps-ghost-text a.wp-element-button, .section.dark2 .wp-block-button.bps-ghost-text a.wp-element-button, .section.dark3 .wp-block-button.bps-ghost-text a.wp-element-button {
  background-color: transparent;
  background-image: none;
  color: var(--ghost-color);
  border-width: 2px;
  border-style: solid;
  border-color: var(--ghost-color);
}
.section.light .wp-block-button.bps-ghost .wp-block-button__link:hover, .section.light2 .wp-block-button.bps-ghost .wp-block-button__link:hover, .section.light3 .wp-block-button.bps-ghost .wp-block-button__link:hover, .section.light .wp-block-button.bps-ghost .wp-block-button__link:focus, .section.light2 .wp-block-button.bps-ghost .wp-block-button__link:focus, .section.light3 .wp-block-button.bps-ghost .wp-block-button__link:focus, .section.light .wp-block-button.bps-ghost a.wp-element-button:hover, .section.light2 .wp-block-button.bps-ghost a.wp-element-button:hover, .section.light3 .wp-block-button.bps-ghost a.wp-element-button:hover, .section.light .wp-block-button.bps-ghost a.wp-element-button:focus, .section.light2 .wp-block-button.bps-ghost a.wp-element-button:focus, .section.light3 .wp-block-button.bps-ghost a.wp-element-button:focus, .section.light .wp-block-button.bps-ghost-2 .wp-block-button__link:hover, .section.light2 .wp-block-button.bps-ghost-2 .wp-block-button__link:hover, .section.light3 .wp-block-button.bps-ghost-2 .wp-block-button__link:hover, .section.light .wp-block-button.bps-ghost-2 .wp-block-button__link:focus, .section.light2 .wp-block-button.bps-ghost-2 .wp-block-button__link:focus, .section.light3 .wp-block-button.bps-ghost-2 .wp-block-button__link:focus, .section.light .wp-block-button.bps-ghost-2 a.wp-element-button:hover, .section.light2 .wp-block-button.bps-ghost-2 a.wp-element-button:hover, .section.light3 .wp-block-button.bps-ghost-2 a.wp-element-button:hover, .section.light .wp-block-button.bps-ghost-2 a.wp-element-button:focus, .section.light2 .wp-block-button.bps-ghost-2 a.wp-element-button:focus, .section.light3 .wp-block-button.bps-ghost-2 a.wp-element-button:focus, .section.light .wp-block-button.bps-ghost-secondary .wp-block-button__link:hover, .section.light2 .wp-block-button.bps-ghost-secondary .wp-block-button__link:hover, .section.light3 .wp-block-button.bps-ghost-secondary .wp-block-button__link:hover, .section.light .wp-block-button.bps-ghost-secondary .wp-block-button__link:focus, .section.light2 .wp-block-button.bps-ghost-secondary .wp-block-button__link:focus, .section.light3 .wp-block-button.bps-ghost-secondary .wp-block-button__link:focus, .section.light .wp-block-button.bps-ghost-secondary a.wp-element-button:hover, .section.light2 .wp-block-button.bps-ghost-secondary a.wp-element-button:hover, .section.light3 .wp-block-button.bps-ghost-secondary a.wp-element-button:hover, .section.light .wp-block-button.bps-ghost-secondary a.wp-element-button:focus, .section.light2 .wp-block-button.bps-ghost-secondary a.wp-element-button:focus, .section.light3 .wp-block-button.bps-ghost-secondary a.wp-element-button:focus, .section.light .wp-block-button.bps-ghost-3 .wp-block-button__link:hover, .section.light2 .wp-block-button.bps-ghost-3 .wp-block-button__link:hover, .section.light3 .wp-block-button.bps-ghost-3 .wp-block-button__link:hover, .section.light .wp-block-button.bps-ghost-3 .wp-block-button__link:focus, .section.light2 .wp-block-button.bps-ghost-3 .wp-block-button__link:focus, .section.light3 .wp-block-button.bps-ghost-3 .wp-block-button__link:focus, .section.light .wp-block-button.bps-ghost-3 a.wp-element-button:hover, .section.light2 .wp-block-button.bps-ghost-3 a.wp-element-button:hover, .section.light3 .wp-block-button.bps-ghost-3 a.wp-element-button:hover, .section.light .wp-block-button.bps-ghost-3 a.wp-element-button:focus, .section.light2 .wp-block-button.bps-ghost-3 a.wp-element-button:focus, .section.light3 .wp-block-button.bps-ghost-3 a.wp-element-button:focus, .section.light .wp-block-button.bps-ghost-text .wp-block-button__link:hover, .section.light2 .wp-block-button.bps-ghost-text .wp-block-button__link:hover, .section.light3 .wp-block-button.bps-ghost-text .wp-block-button__link:hover, .section.light .wp-block-button.bps-ghost-text .wp-block-button__link:focus, .section.light2 .wp-block-button.bps-ghost-text .wp-block-button__link:focus, .section.light3 .wp-block-button.bps-ghost-text .wp-block-button__link:focus, .section.light .wp-block-button.bps-ghost-text a.wp-element-button:hover, .section.light2 .wp-block-button.bps-ghost-text a.wp-element-button:hover, .section.light3 .wp-block-button.bps-ghost-text a.wp-element-button:hover, .section.light .wp-block-button.bps-ghost-text a.wp-element-button:focus, .section.light2 .wp-block-button.bps-ghost-text a.wp-element-button:focus, .section.light3 .wp-block-button.bps-ghost-text a.wp-element-button:focus, .section.dark .wp-block-button.bps-ghost .wp-block-button__link:hover, .section.dark2 .wp-block-button.bps-ghost .wp-block-button__link:hover, .section.dark3 .wp-block-button.bps-ghost .wp-block-button__link:hover, .section.dark .wp-block-button.bps-ghost .wp-block-button__link:focus, .section.dark2 .wp-block-button.bps-ghost .wp-block-button__link:focus, .section.dark3 .wp-block-button.bps-ghost .wp-block-button__link:focus, .section.dark .wp-block-button.bps-ghost a.wp-element-button:hover, .section.dark2 .wp-block-button.bps-ghost a.wp-element-button:hover, .section.dark3 .wp-block-button.bps-ghost a.wp-element-button:hover, .section.dark .wp-block-button.bps-ghost a.wp-element-button:focus, .section.dark2 .wp-block-button.bps-ghost a.wp-element-button:focus, .section.dark3 .wp-block-button.bps-ghost a.wp-element-button:focus, .section.dark .wp-block-button.bps-ghost-2 .wp-block-button__link:hover, .section.dark2 .wp-block-button.bps-ghost-2 .wp-block-button__link:hover, .section.dark3 .wp-block-button.bps-ghost-2 .wp-block-button__link:hover, .section.dark .wp-block-button.bps-ghost-2 .wp-block-button__link:focus, .section.dark2 .wp-block-button.bps-ghost-2 .wp-block-button__link:focus, .section.dark3 .wp-block-button.bps-ghost-2 .wp-block-button__link:focus, .section.dark .wp-block-button.bps-ghost-2 a.wp-element-button:hover, .section.dark2 .wp-block-button.bps-ghost-2 a.wp-element-button:hover, .section.dark3 .wp-block-button.bps-ghost-2 a.wp-element-button:hover, .section.dark .wp-block-button.bps-ghost-2 a.wp-element-button:focus, .section.dark2 .wp-block-button.bps-ghost-2 a.wp-element-button:focus, .section.dark3 .wp-block-button.bps-ghost-2 a.wp-element-button:focus, .section.dark .wp-block-button.bps-ghost-secondary .wp-block-button__link:hover, .section.dark2 .wp-block-button.bps-ghost-secondary .wp-block-button__link:hover, .section.dark3 .wp-block-button.bps-ghost-secondary .wp-block-button__link:hover, .section.dark .wp-block-button.bps-ghost-secondary .wp-block-button__link:focus, .section.dark2 .wp-block-button.bps-ghost-secondary .wp-block-button__link:focus, .section.dark3 .wp-block-button.bps-ghost-secondary .wp-block-button__link:focus, .section.dark .wp-block-button.bps-ghost-secondary a.wp-element-button:hover, .section.dark2 .wp-block-button.bps-ghost-secondary a.wp-element-button:hover, .section.dark3 .wp-block-button.bps-ghost-secondary a.wp-element-button:hover, .section.dark .wp-block-button.bps-ghost-secondary a.wp-element-button:focus, .section.dark2 .wp-block-button.bps-ghost-secondary a.wp-element-button:focus, .section.dark3 .wp-block-button.bps-ghost-secondary a.wp-element-button:focus, .section.dark .wp-block-button.bps-ghost-3 .wp-block-button__link:hover, .section.dark2 .wp-block-button.bps-ghost-3 .wp-block-button__link:hover, .section.dark3 .wp-block-button.bps-ghost-3 .wp-block-button__link:hover, .section.dark .wp-block-button.bps-ghost-3 .wp-block-button__link:focus, .section.dark2 .wp-block-button.bps-ghost-3 .wp-block-button__link:focus, .section.dark3 .wp-block-button.bps-ghost-3 .wp-block-button__link:focus, .section.dark .wp-block-button.bps-ghost-3 a.wp-element-button:hover, .section.dark2 .wp-block-button.bps-ghost-3 a.wp-element-button:hover, .section.dark3 .wp-block-button.bps-ghost-3 a.wp-element-button:hover, .section.dark .wp-block-button.bps-ghost-3 a.wp-element-button:focus, .section.dark2 .wp-block-button.bps-ghost-3 a.wp-element-button:focus, .section.dark3 .wp-block-button.bps-ghost-3 a.wp-element-button:focus, .section.dark .wp-block-button.bps-ghost-text .wp-block-button__link:hover, .section.dark2 .wp-block-button.bps-ghost-text .wp-block-button__link:hover, .section.dark3 .wp-block-button.bps-ghost-text .wp-block-button__link:hover, .section.dark .wp-block-button.bps-ghost-text .wp-block-button__link:focus, .section.dark2 .wp-block-button.bps-ghost-text .wp-block-button__link:focus, .section.dark3 .wp-block-button.bps-ghost-text .wp-block-button__link:focus, .section.dark .wp-block-button.bps-ghost-text a.wp-element-button:hover, .section.dark2 .wp-block-button.bps-ghost-text a.wp-element-button:hover, .section.dark3 .wp-block-button.bps-ghost-text a.wp-element-button:hover, .section.dark .wp-block-button.bps-ghost-text a.wp-element-button:focus, .section.dark2 .wp-block-button.bps-ghost-text a.wp-element-button:focus, .section.dark3 .wp-block-button.bps-ghost-text a.wp-element-button:focus {
  background-color: transparent;
  background-image: none;
  color: var(--ghost-color);
  border-color: var(--ghost-color);
}
.elementor-widget-button[class*="bps-bg-"] {
  background-color: transparent;
}
.elementor-widget-button.bps-bg-accent .elementor-button, .elementor-widget-button.bps-bg-accent .elementor-button:hover, .elementor-widget-button.bps-bg-accent .elementor-button:focus, .elementor-widget-button.bps-bg-accent .elementor-button:active {
  background-color: var(--accent);
  color: var(--accent-text);
}
.elementor-widget-button.bps-bg-accent-2 .elementor-button, .elementor-widget-button.bps-bg-accent-2 .elementor-button:hover, .elementor-widget-button.bps-bg-accent-2 .elementor-button:focus, .elementor-widget-button.bps-bg-accent-2 .elementor-button:active {
  background-color: var(--accent-2);
  color: var(--accent-text-2);
}
.elementor-widget-button.bps-bg-accent-3 .elementor-button, .elementor-widget-button.bps-bg-accent-3 .elementor-button:hover, .elementor-widget-button.bps-bg-accent-3 .elementor-button:focus, .elementor-widget-button.bps-bg-accent-3 .elementor-button:active {
  background-color: var(--accent-3);
  color: var(--accent-text-3);
}
.container, .content-container {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--spacing-md, 2rem);
  padding-right: var(--spacing-md, 2rem);
  width: 100%;
}
.bps-flex-row {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  --bps-flex-gap: var(--spacing-md, 2rem);
  gap: var(--bps-flex-gap);
}
.bps-flex-row > * {
  margin-top: 0 !important;
  margin-block-start: 0 !important;
}
@media (max-width: 768px) {
  .bps-flex-row.bps-stack-mobile {
    flex-direction: column;
    align-items: stretch;
  }
  .bps-flex-row.bps-stack-mobile > [class*="bps-col-"] {
    flex-basis: 100%;
    max-width: 100%;
  }
}
@media (max-width: 768px) {
  .bps-flex-row.bps-nowrap-mobile {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
  }
  .bps-flex-row.bps-nowrap-mobile > * {
    min-width: 0;
  }
}
.bps-flex-col {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-md, 2rem);
}
.bps-gap-sm {
  --bps-flex-gap: var(--spacing-sm, 1rem);
  gap: var(--bps-flex-gap);
}
.bps-gap-md {
  --bps-flex-gap: var(--spacing-md, 2rem);
  gap: var(--bps-flex-gap);
}
.bps-gap-lg {
  --bps-flex-gap: var(--spacing-lg, 3rem);
  gap: var(--bps-flex-gap);
}
.bps-align-start {
  align-items: flex-start;
}
.bps-align-center {
  align-items: center;
}
.bps-align-end {
  align-items: flex-end;
}
.bps-align-stretch {
  align-items: stretch;
}
.bps-justify-start {
  justify-content: flex-start;
}
.bps-justify-center {
  justify-content: center;
}
.bps-justify-end {
  justify-content: flex-end;
}
.bps-justify-between {
  justify-content: space-between;
}
.bps-col-25 {
  flex: 1 1 calc(25%     - var(--bps-flex-gap, 1.25rem));
  min-width: 0;
}
.bps-col-33 {
  flex: 1 1 calc(33.333% - var(--bps-flex-gap, 1.25rem));
  min-width: 0;
}
.bps-col-50 {
  flex: 1 1 calc(50%     - var(--bps-flex-gap, 1.25rem));
  min-width: 0;
}
.bps-col-66 {
  flex: 1 1 calc(66.666% - var(--bps-flex-gap, 1.25rem));
  min-width: 0;
}
.bps-col-75 {
  flex: 1 1 calc(75%     - var(--bps-flex-gap, 1.25rem));
  min-width: 0;
}
.bps-flex-row.bps-align-stretch > [class*="bps-col-"] {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
.bps-space-sm:not(.bps-bypass), .bps-space-md:not(.bps-bypass), .bps-space-lg:not(.bps-bypass), .bps-space-xl:not(.bps-bypass) {
  display: flex;
  flex-direction: column;
}
.bps-space-sm:not(.bps-bypass) {
  gap: 0.75rem;
}
.bps-space-md:not(.bps-bypass) {
  gap: 1.5rem;
}
.bps-space-lg:not(.bps-bypass) {
  gap: 2.5rem;
}
.bps-space-xl:not(.bps-bypass) {
  gap: 4rem;
}
.bps-text-left:not(.bps-bypass) {
  text-align: left;
}
.bps-text-center:not(.bps-bypass) {
  text-align: center;
}
.bps-text-right:not(.bps-bypass) {
  text-align: right;
}
.bps-text-center:not(.bps-bypass) > * {
  text-align: center;
}
.bps-text-right:not(.bps-bypass) > * {
  text-align: right;
}
.bps-text-center.bps-flex-row {
  justify-content: center;
}
.bps-text-right.bps-flex-row {
  justify-content: flex-end;
}
.prehead:not(.bps-bypass) {
  display: block;
  font-size: 0.875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 0.5rem;
}
h1.section-title, h2.section-title, h3.section-title {
  font-size: clamp(1.75rem, 3.5vw, 2.6rem);
  font-weight: 800;
  line-height: 1.15;
}
.section-title:not(.bps-bypass) :where(.elementor-widget-heading .elementor-heading-title) {
  font-size: clamp(1.75rem, 3.5vw, 2.6rem);
  font-weight: 800;
  line-height: 1.15;
}
.section-title:not(.bps-bypass) > h1, .section-title:not(.bps-bypass) :where(.elementor-widget-heading h1.elementor-heading-title) {
  font-size: var(--font-size-h1, clamp(1.75rem, 3.5vw, 2.6rem));
  font-weight: var(--font-weight-h1, 800);
  line-height: var(--line-height-h1, 1.15);
}
.section-title:not(.bps-bypass) > h2, .section-title:not(.bps-bypass) :where(.elementor-widget-heading h2.elementor-heading-title) {
  font-size: var(--font-size-h2, clamp(1.75rem, 3.5vw, 2.6rem));
  font-weight: var(--font-weight-h2, 800);
  line-height: var(--line-height-h2, 1.15);
}
.section-title:not(.bps-bypass) > h3, .section-title:not(.bps-bypass) :where(.elementor-widget-heading h3.elementor-heading-title) {
  font-size: var(--font-size-h3, clamp(1.75rem, 3.5vw, 2.6rem));
  font-weight: var(--font-weight-h3, 800);
  line-height: var(--line-height-h3, 1.15);
}
.section-title:not(.bps-bypass) > h4, .section-title:not(.bps-bypass) :where(.elementor-widget-heading h4.elementor-heading-title) {
  font-size: var(--font-size-h4, clamp(1.75rem, 3.5vw, 2.6rem));
  font-weight: var(--font-weight-h4, 800);
  line-height: var(--line-height-h4, 1.15);
}
.section-title:not(.bps-bypass) > h5, .section-title:not(.bps-bypass) :where(.elementor-widget-heading h5.elementor-heading-title) {
  font-size: var(--font-size-h5, clamp(1.75rem, 3.5vw, 2.6rem));
  font-weight: var(--font-weight-h5, 800);
  line-height: var(--line-height-h5, 1.15);
}
.section-title:not(.bps-bypass) > h6, .section-title:not(.bps-bypass) :where(.elementor-widget-heading h6.elementor-heading-title) {
  font-size: var(--font-size-h6, clamp(1.75rem, 3.5vw, 2.6rem));
  font-weight: var(--font-weight-h6, 800);
  line-height: var(--line-height-h6, 1.15);
}
.hero-title:not(.bps-bypass) :where(.elementor-widget-heading .elementor-heading-title) {
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 800;
  line-height: 1.1;
}
.hero-title:not(.bps-bypass) > h1, .hero-title:not(.bps-bypass) :where(.elementor-widget-heading h1.elementor-heading-title) {
  font-size: var(--font-size-h1, clamp(2rem, 5vw, 3.5rem));
  font-weight: var(--font-weight-h1, 800);
  line-height: var(--line-height-h1, 1.1);
}
.hero-title:not(.bps-bypass) > h2, .hero-title:not(.bps-bypass) :where(.elementor-widget-heading h2.elementor-heading-title) {
  font-size: var(--font-size-h2, clamp(2rem, 5vw, 3.5rem));
  font-weight: var(--font-weight-h2, 800);
  line-height: var(--line-height-h2, 1.1);
}
.hero-title:not(.bps-bypass) > h3, .hero-title:not(.bps-bypass) :where(.elementor-widget-heading h3.elementor-heading-title) {
  font-size: var(--font-size-h3, clamp(2rem, 5vw, 3.5rem));
  font-weight: var(--font-weight-h3, 800);
  line-height: var(--line-height-h3, 1.1);
}
.hero-title:not(.bps-bypass) > h4, .hero-title:not(.bps-bypass) :where(.elementor-widget-heading h4.elementor-heading-title) {
  font-size: var(--font-size-h4, clamp(2rem, 5vw, 3.5rem));
  font-weight: var(--font-weight-h4, 800);
  line-height: var(--line-height-h4, 1.1);
}
.hero-title:not(.bps-bypass) > h5, .hero-title:not(.bps-bypass) :where(.elementor-widget-heading h5.elementor-heading-title) {
  font-size: var(--font-size-h5, clamp(2rem, 5vw, 3.5rem));
  font-weight: var(--font-weight-h5, 800);
  line-height: var(--line-height-h5, 1.1);
}
.hero-title:not(.bps-bypass) > h6, .hero-title:not(.bps-bypass) :where(.elementor-widget-heading h6.elementor-heading-title) {
  font-size: var(--font-size-h6, clamp(2rem, 5vw, 3.5rem));
  font-weight: var(--font-weight-h6, 800);
  line-height: var(--line-height-h6, 1.1);
}
.hero-subtitle:not(.bps-bypass) {
  font-size: var(--size-hero-subtitle, clamp(1.05rem, 2vw, 1.25rem));
  font-weight: var(--weight-hero-subtitle, 400);
  line-height: var(--line-height-hero-subtitle, 1.6);
}
.stat-number:not(.bps-bypass) {
  font-size: var(--size-stat-number, clamp(2.5rem, 6vw, 4rem));
  font-weight: var(--weight-stat-number, 800);
  line-height: var(--line-height-stat-number, 1);
}
.stat-label:not(.bps-bypass) {
  font-size: var(--size-stat-label, 1rem);
  font-weight: var(--weight-stat-label, 500);
  letter-spacing: var(--letter-spacing-stat-label, 0.05em);
  text-transform: uppercase;
}
.bps-size-1:not(.bps-bypass) .elementor-heading-title, .bps-size-1:not(.bps-bypass) .elementor-widget-text-editor p, .bps-size-1:not(.bps-bypass) > p, .bps-size-1:not(.bps-bypass) > h1, .bps-size-1:not(.bps-bypass) > h2, .bps-size-1:not(.bps-bypass) > h3, .bps-size-1:not(.bps-bypass) > h4, .bps-size-1:not(.bps-bypass) > h5, .bps-size-1:not(.bps-bypass) > h6, p.bps-size-1:not(.bps-bypass), h1.bps-size-1:not(.bps-bypass), h2.bps-size-1:not(.bps-bypass), h3.bps-size-1:not(.bps-bypass), h4.bps-size-1:not(.bps-bypass), h5.bps-size-1:not(.bps-bypass), h6.bps-size-1:not(.bps-bypass) {
  font-size: clamp(calc(var(--step-1) * 0.94), 1.5vw, var(--step-1));
  line-height: 1.55;
}
.bps-size-2:not(.bps-bypass) .elementor-heading-title, .bps-size-2:not(.bps-bypass) .elementor-widget-text-editor p, .bps-size-2:not(.bps-bypass) > p, .bps-size-2:not(.bps-bypass) > h1, .bps-size-2:not(.bps-bypass) > h2, .bps-size-2:not(.bps-bypass) > h3, .bps-size-2:not(.bps-bypass) > h4, .bps-size-2:not(.bps-bypass) > h5, .bps-size-2:not(.bps-bypass) > h6, p.bps-size-2:not(.bps-bypass), h1.bps-size-2:not(.bps-bypass), h2.bps-size-2:not(.bps-bypass), h3.bps-size-2:not(.bps-bypass), h4.bps-size-2:not(.bps-bypass), h5.bps-size-2:not(.bps-bypass), h6.bps-size-2:not(.bps-bypass) {
  font-size: clamp(calc(var(--step-2) * 0.88), 1.8vw, var(--step-2));
  line-height: 1.45;
}
.bps-size-3:not(.bps-bypass) .elementor-heading-title, .bps-size-3:not(.bps-bypass) .elementor-widget-text-editor p, .bps-size-3:not(.bps-bypass) > p, .bps-size-3:not(.bps-bypass) > h1, .bps-size-3:not(.bps-bypass) > h2, .bps-size-3:not(.bps-bypass) > h3, .bps-size-3:not(.bps-bypass) > h4, .bps-size-3:not(.bps-bypass) > h5, .bps-size-3:not(.bps-bypass) > h6, p.bps-size-3:not(.bps-bypass), h1.bps-size-3:not(.bps-bypass), h2.bps-size-3:not(.bps-bypass), h3.bps-size-3:not(.bps-bypass), h4.bps-size-3:not(.bps-bypass), h5.bps-size-3:not(.bps-bypass), h6.bps-size-3:not(.bps-bypass) {
  font-size: clamp(calc(var(--step-3) * 0.82), 2.6vw, var(--step-3));
  line-height: 1.3;
}
.bps-size-4:not(.bps-bypass) .elementor-heading-title, .bps-size-4:not(.bps-bypass) .elementor-widget-text-editor p, .bps-size-4:not(.bps-bypass) > p, .bps-size-4:not(.bps-bypass) > h1, .bps-size-4:not(.bps-bypass) > h2, .bps-size-4:not(.bps-bypass) > h3, .bps-size-4:not(.bps-bypass) > h4, .bps-size-4:not(.bps-bypass) > h5, .bps-size-4:not(.bps-bypass) > h6, p.bps-size-4:not(.bps-bypass), h1.bps-size-4:not(.bps-bypass), h2.bps-size-4:not(.bps-bypass), h3.bps-size-4:not(.bps-bypass), h4.bps-size-4:not(.bps-bypass), h5.bps-size-4:not(.bps-bypass), h6.bps-size-4:not(.bps-bypass) {
  font-size: clamp(calc(var(--step-4) * 0.76), 3.4vw, var(--step-4));
  line-height: 1.2;
}
.bps-size-5:not(.bps-bypass) .elementor-heading-title, .bps-size-5:not(.bps-bypass) .elementor-widget-text-editor p, .bps-size-5:not(.bps-bypass) > p, .bps-size-5:not(.bps-bypass) > h1, .bps-size-5:not(.bps-bypass) > h2, .bps-size-5:not(.bps-bypass) > h3, .bps-size-5:not(.bps-bypass) > h4, .bps-size-5:not(.bps-bypass) > h5, .bps-size-5:not(.bps-bypass) > h6, p.bps-size-5:not(.bps-bypass), h1.bps-size-5:not(.bps-bypass), h2.bps-size-5:not(.bps-bypass), h3.bps-size-5:not(.bps-bypass), h4.bps-size-5:not(.bps-bypass), h5.bps-size-5:not(.bps-bypass), h6.bps-size-5:not(.bps-bypass) {
  font-size: clamp(calc(var(--step-5) * 0.70), 4.4vw, var(--step-5));
  line-height: 1.12;
}
.bps-size-6:not(.bps-bypass) .elementor-heading-title, .bps-size-6:not(.bps-bypass) .elementor-widget-text-editor p, .bps-size-6:not(.bps-bypass) > p, .bps-size-6:not(.bps-bypass) > h1, .bps-size-6:not(.bps-bypass) > h2, .bps-size-6:not(.bps-bypass) > h3, .bps-size-6:not(.bps-bypass) > h4, .bps-size-6:not(.bps-bypass) > h5, .bps-size-6:not(.bps-bypass) > h6, p.bps-size-6:not(.bps-bypass), h1.bps-size-6:not(.bps-bypass), h2.bps-size-6:not(.bps-bypass), h3.bps-size-6:not(.bps-bypass), h4.bps-size-6:not(.bps-bypass), h5.bps-size-6:not(.bps-bypass), h6.bps-size-6:not(.bps-bypass) {
  font-size: clamp(calc(var(--step-6) * 0.64), 5.4vw, var(--step-6));
  line-height: 1.06;
}
.bps-size-4:not(.bps-bypass), .bps-size-5:not(.bps-bypass), .bps-size-6:not(.bps-bypass) {
  letter-spacing: -0.015em;
  text-wrap: balance;
}
.lede:not(.bps-bypass) .elementor-widget-text-editor p, .lede:not(.bps-bypass) > p, p.lede:not(.bps-bypass) {
  font-size: var(--lede-size, 1.25rem);
  line-height: var(--lede-leading, 1.6);
  letter-spacing: var(--lede-tracking, normal);
  color: var(--text-color2);
  max-width: 62ch;
  margin-bottom: 1.25rem;
  text-wrap: pretty;
}
.lede.bps-text-center:not(.bps-bypass) .elementor-widget-text-editor p, .lede.bps-text-center:not(.bps-bypass) > p, p.lede.bps-text-center:not(.bps-bypass), .bps-text-center .lede:not(.bps-bypass) .elementor-widget-text-editor p, .bps-text-center .lede:not(.bps-bypass) > p {
  margin-left: auto;
  margin-right: auto;
}
.bps-rating-score, .bps-rating-inline, .bps-rating-card {
  --bps-rating-star: var(--accent);
  width: fit-content;
  max-width: 100%;
  flex: 0 0 auto;
}
.e-con.bps-rating-score:not(.e-con-boxed), .e-con.bps-rating-score > .e-con-inner, .e-con.bps-rating-card:not(.e-con-boxed), .e-con.bps-rating-card > .e-con-inner {
  display: grid;
  grid-template-columns: auto auto;
  grid-template-areas: "n s" "n c";
  align-items: center;
  width: fit-content;
  max-width: 100%;
  padding: 0;
}
.e-con.bps-rating-inline:not(.e-con-boxed), .e-con.bps-rating-inline > .e-con-inner {
  display: flex;
  flex-flow: row wrap;
  align-items: baseline;
  column-gap: 10px;
  row-gap: 4px;
  width: fit-content;
  max-width: 100%;
  padding: 0;
}
:is(.bps-rating-score, .bps-rating-inline, .bps-rating-card) .elementor-element {
  margin: 0;
  width: auto;
  max-width: 100%;
}
:is(.bps-rating-score, .bps-rating-inline, .bps-rating-card) .elementor-widget-text-editor p, :is(.bps-rating-score, .bps-rating-inline, .bps-rating-card) .elementor-heading-title {
  margin: 0;
}
.bps-rating-number {
  grid-area: n;
}
.bps-rating-stars {
  grid-area: s;
}
.bps-rating-caption {
  grid-area: c;
}
:is(.bps-rating-score, .bps-rating-inline, .bps-rating-card) .bps-rating-number .elementor-heading-title {
  color: var(--text-highlight);
  font-weight: 600;
  line-height: 1;
  font-variant-numeric: lining-nums;
}
:is(.bps-rating-score, .bps-rating-inline, .bps-rating-card) .bps-rating-stars, :is(.bps-rating-score, .bps-rating-inline, .bps-rating-card) .bps-rating-stars p {
  color: var(--bps-rating-star);
  letter-spacing: 0.12em;
  line-height: 1.1;
  font-size: 0.95rem;
}
:is(.bps-rating-score, .bps-rating-inline, .bps-rating-card) .bps-rating-caption, :is(.bps-rating-score, .bps-rating-inline, .bps-rating-card) .bps-rating-caption p {
  color: var(--text-color2);
  font-size: 0.875rem;
  line-height: 1.35;
}
.e-con.bps-rating-score:not(.e-con-boxed), .e-con.bps-rating-score > .e-con-inner {
  column-gap: 14px;
  row-gap: 4px;
}
.bps-rating-score {
  padding-inline-start: 18px !important;
  border-inline-start: 3px solid var(--accent);
}
.bps-rating-score .bps-rating-number .elementor-heading-title {
  font-size: clamp(2.25rem, 3.6vw, 3rem);
}
.bps-rating-score .bps-rating-stars {
  align-self: end;
}
.bps-rating-score .bps-rating-caption {
  align-self: start;
}
.bps-rating-inline .bps-rating-stars {
  order: 1;
}
.bps-rating-inline .bps-rating-number {
  order: 2;
}
.bps-rating-inline .bps-rating-caption {
  order: 3;
  padding-inline-start: 10px;
  border-inline-start: 1px solid var(--bps-border-color);
}
.bps-rating-inline .bps-rating-number .elementor-heading-title {
  font-size: 1rem;
}
.e-con.bps-rating-card:not(.e-con-boxed), .e-con.bps-rating-card > .e-con-inner {
  column-gap: 16px;
  row-gap: 3px;
}
.bps-rating-card {
  background: var(--light-bg);
  --text-color:     var(--light-text);
  --text-color2:    var(--light-text2);
  --text-highlight: var(--light-text-highlight);
  border: 1px solid var(--bps-border-color);
  border-radius: 10px;
  padding: 16px 22px !important;
  box-shadow: 0 1px 2px color-mix(in srgb, var(--light-text-highlight) 8%, transparent);
}
.bps-rating-card .bps-rating-number {
  padding-inline-end: 16px;
  border-inline-end: 1px solid var(--bps-border-color);
  align-self: stretch;
  display: flex;
  align-items: center;
}
.bps-rating-card .bps-rating-number .elementor-heading-title {
  font-size: clamp(1.9rem, 3vw, 2.4rem);
}
.bps-rating-card .bps-rating-stars {
  align-self: end;
}
.bps-rating-card .bps-rating-caption {
  align-self: start;
}
/* ============================================================================
   BPS DESIGN FLAVOURS
   Added 2026-09-14. Plan: dev/plans/2026-09-14-PLAN-design-flavours-hook-classes-pilot.md

   🔴 THE ONE RULE THIS FILE EXISTS TO ENFORCE:
   A hook class carries NO bare CSS. Ever. There is no `.bps-card { }` in this
   file or anywhere else — every rule is scoped to a body class. A bare rule
   would paint the element regardless of the site's chosen flavour, which
   defeats the entire mechanism and cannot be overridden back off.

   TWO LAYERS, both body-scoped, deliberately:

     body.bps-base       the DEFAULT paint. Always present (the anchor class is
                         emitted unconditionally), so a site that never chooses
                         a flavour looks exactly as it did before this file
                         existed. This is where the old bare-class paint went.

     body.bps-flavour-*  a chosen design abstract. Overrides the default.

   🔴 SPECIFICITY IS A TIE AND SOURCE ORDER DECIDES.
   `body.bps-base .bps-card` and `body.bps-flavour-soft-rounded .bps-card` are
   BOTH (0,2,1). The flavour blocks below therefore come AFTER the defaults in
   this same file, which is the only reason they win. Do not reorder, and do not
   split them into two partials without re-checking the registration order in
   styles.php / styles-palette.php.

   🔴 NO SKIN $VARIABLES IN HERE. This partial is always compiled; the skin
   partials are not. Referencing a skin-local SCSS variable raises a hard
   "Undefined variable" that scss.php:322-331 swallows, after which the site
   serves stale CSS forever (39 of 41 blogs, July 2026). Custom properties only.
   ========================================================================= */
/* ========================================================================
   LAYER 1 — DEFAULTS  (was bare-class paint; see the backup at
   dev/plans/data/flavour-pilot/REMOVED-decorator-paint-2026-09-14.scss)
   ======================================================================== */
body.bps-base {
  /* Neutral surface card — the plain bordered card primitive.
       (.bps-card-featured gives a full-accent border; this is the neutral base.) */
  /* Accent-edge cards — neutral border + heavier accent on ONE named side. */
  /* Featured-card emphasis — accent border so a highlighted pricing/feature
       card stands out from its surface. Colour comes from the tone token, never
       a per-element border_color (which the MP-04 audit flags). */
  /* CTA band — palette-aware gradient closing section with radial overlay.
       .bps-cta-band on the outer section, .bps-cta-band__inner on the inner
       width-wrapper for z-index isolation. Pair with .dark for text colours. */
}
body.bps-base .bps-card {
  background: var(--bg, #fff);
  color: var(--text-color, #212529);
  border: 1px solid var(--bps-border-color, var(--border-color, #dee2e6));
  border-radius: 2px;
  padding: 1.75rem 1.625rem;
  display: flex;
  flex-direction: column;
}
body.bps-base .bps-card-accent-top {
  border-top: 3px solid var(--accent);
}
body.bps-base .bps-card-accent-left {
  border-left: 3px solid var(--accent);
}
body.bps-base .bps-card-accent-right {
  border-right: 3px solid var(--accent);
}
body.bps-base .bps-card-accent-bottom {
  border-bottom: 3px solid var(--accent);
}
body.bps-base .bps-card-featured {
  border: 1px solid var(--accent) !important;
}
body.bps-base .bps-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  background: var(--accent);
  color: var(--accent-text, #fff);
  font-size: 0.75em;
  font-weight: 600;
  line-height: 1.5;
  vertical-align: middle;
}
body.bps-base .bps-cta-band {
  background: linear-gradient(135deg, var(--accent-2) 0%, var(--accent) 60%, var(--accent) 100%) !important;
  position: relative;
  overflow: hidden;
  text-align: center;
}
body.bps-base .bps-cta-band::before {
  content: "";
  position: absolute;
  top: -50%;
  left: 50%;
  transform: translateX(-50%);
  width: 800px;
  height: 400px;
  background: radial-gradient(ellipse, rgba(255, 255, 255, 0.08) 0%, transparent 65%);
  pointer-events: none;
  z-index: 0;
}
body.bps-base .bps-cta-band input[type="text"], body.bps-base .bps-cta-band input[type="email"] {
  background: rgba(255, 255, 255, 0.12);
  border: 1.5px solid rgba(255, 255, 255, 0.3);
  color: #ffffff;
  border-radius: 8px;
}
body.bps-base .bps-cta-band input[type="text"]::placeholder, body.bps-base .bps-cta-band input[type="email"]::placeholder {
  color: rgba(255, 255, 255, 0.5);
}
body.bps-base .bps-cta-band__inner {
  position: relative;
  z-index: 1;
  background: transparent !important;
}
/* ========================================================================
   LAYER 2 — FLAVOURS
   Each flavour states a design abstract in shape terms only: radius, border
   weight, shadow, flatness. Colour stays with the palette and the tone
   classes — a flavour must never assign a brand colour, or two sites on the
   same flavour stop looking like different businesses.
   ======================================================================== */
/* ---- soft-rounded -------------------------------------------------------
   Reproduces the soft-rounded skin's shape language on the hook classes:
   generous radii (16-24px), soft diffuse shadow, no hard borders.
   This is the replacement proof — if a flavour can reproduce a skin, flavours
   can eventually replace skins. -------------------------------------------- */
body.bps-flavour-soft-rounded {
  /* The accent edge survives, but rounded and softer than the default 3px. */
}
body.bps-flavour-soft-rounded .bps-card {
  border: none;
  border-radius: 20px;
  padding: 2rem 1.875rem;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.07);
}
body.bps-flavour-soft-rounded .bps-card-accent-top {
  border-top: 4px solid var(--accent);
  border-radius: 20px;
}
body.bps-flavour-soft-rounded .bps-card-accent-left {
  border-left: 4px solid var(--accent);
  border-radius: 0 20px 20px 0;
}
body.bps-flavour-soft-rounded .bps-card-accent-right {
  border-right: 4px solid var(--accent);
  border-radius: 20px 0 0 20px;
}
body.bps-flavour-soft-rounded .bps-card-accent-bottom {
  border-bottom: 4px solid var(--accent);
  border-radius: 20px;
}
body.bps-flavour-soft-rounded .bps-card-featured {
  border: 2px solid var(--accent) !important;
  box-shadow: 0 6px 28px rgba(0, 0, 0, 0.1);
}
body.bps-flavour-soft-rounded .bps-badge {
  border-radius: 999px;
  padding: 3px 12px;
}
body.bps-flavour-soft-rounded .bps-cta-band {
  border-radius: 24px 24px 0 0;
}
@media (max-width: 768px) {
  body.bps-flavour-soft-rounded .bps-card {
    border-radius: 14px;
  }
  body.bps-flavour-soft-rounded .bps-cta-band {
    border-radius: 16px 16px 0 0;
  }
}
/* ---- neubrutalism -------------------------------------------------------
   The contrast proof, and the hardest test of the mechanism: heavy ink
   borders, hard offset shadows, zero radius, no diffusion anywhere.
   Shape only — it does NOT touch colour, unlike the neubrutalism SKIN, which
   sets bypass_palette and discards the palette entirely. A flavour must stay
   compatible with whatever palette the site already has. -------------------- */
body.bps-flavour-neubrutalism .bps-card {
  border: 3px solid var(--text-color, #111);
  border-radius: 0;
  box-shadow: 6px 6px 0 var(--text-color, #111);
  padding: 1.75rem 1.5rem;
}
body.bps-flavour-neubrutalism .bps-card-accent-top {
  border-top: 8px solid var(--accent);
}
body.bps-flavour-neubrutalism .bps-card-accent-left {
  border-left: 8px solid var(--accent);
}
body.bps-flavour-neubrutalism .bps-card-accent-right {
  border-right: 8px solid var(--accent);
}
body.bps-flavour-neubrutalism .bps-card-accent-bottom {
  border-bottom: 8px solid var(--accent);
}
body.bps-flavour-neubrutalism .bps-card-featured {
  border: 3px solid var(--accent) !important;
  box-shadow: 6px 6px 0 var(--accent);
}
body.bps-flavour-neubrutalism .bps-badge {
  border-radius: 0;
  border: 2px solid var(--text-color, #111);
  padding: 2px 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
body.bps-flavour-neubrutalism .bps-cta-band {
  border-radius: 0;
  border-top: 4px solid var(--text-color, #111);
  /* The soft radial wash is the opposite of this flavour's whole idea. */
}
body.bps-flavour-neubrutalism .bps-cta-band::before {
  display: none;
}
@media (max-width: 768px) {
  body.bps-flavour-neubrutalism .bps-card {
    box-shadow: 4px 4px 0 var(--text-color, #111);
  }
  body.bps-flavour-neubrutalism .bps-card-featured {
    box-shadow: 4px 4px 0 var(--accent);
  }
}
@media screen and (max-width: 967px) {
  :root {
    --moa-x: var(--moa-x-tablet);
    --moa-y-sd: var(--moa-y-sd-tablet);
    --moa-y-lg: var(--moa-y-lg-tablet);
    --moa-y-xl: var(--moa-y-xl-tablet);
    --moa-y-xxl: var(--moa-y-xxl-tablet);
  }
  .moa-sd {
    padding: var(--moa-y-sd-tablet) var(--moa-x-tablet);
  }
  .moa-md {
    padding: var(--moa-y-sd-tablet) var(--moa-x-tablet);
  }
  .moa-lg {
    padding: var(--moa-y-lg-tablet) var(--moa-x-tablet);
  }
  .moa-xl {
    padding: var(--moa-y-xl-tablet) var(--moa-x-tablet);
  }
  .moa-xxl {
    padding: var(--moa-y-xxl-tablet) var(--moa-x-tablet);
  }
  .moa-border-rounding {
    border-radius: 10px;
  }
}
@media screen and (max-width: 512px) {
  :root {
    --moa-x: var(--moa-x-mobile);
    --moa-y-sd: var(--moa-y-sd-mobile);
    --moa-y-lg: var(--moa-y-lg-mobile);
    --moa-y-xl: var(--moa-y-xl-mobile);
    --moa-y-xxl: var(--moa-y-xxl-mobile);
  }
  .moa-sd {
    padding: var(--moa-y-sd-mobile) var(--moa-x-mobile);
  }
  .moa-md {
    padding: var(--moa-y-sd-mobile) var(--moa-x-mobile);
  }
  .moa-lg {
    padding: var(--moa-y-lg-mobile) var(--moa-x-mobile);
  }
  .moa-xl {
    padding: var(--moa-y-xl-mobile) var(--moa-x-mobile);
  }
  .moa-xxl {
    padding: var(--moa-y-xxl-mobile) var(--moa-x-mobile);
  }
  .moa-border-rounding {
    border-radius: 10px;
  }
}
@media screen and (max-width: 992px) {
  .moa-sm {
    padding: 10px var(--moa-x-tablet);
  }
  .moa-sd {
    padding: var(--moa-y-sd-tablet) var(--moa-x-tablet);
  }
  .moa-lg {
    padding: var(--moa-y-lg-tablet) var(--moa-x-tablet);
  }
  .moa-xl {
    padding: var(--moa-y-xl-tablet) var(--moa-x-tablet);
  }
  .moa-xxl {
    padding: var(--moa-y-xxl-tablet) var(--moa-x-tablet);
  }
}
@media screen and (max-width: 768px) {
  .moa-sm {
    padding: 10px var(--moa-x-mobile);
  }
  .moa-sd {
    padding: var(--moa-y-sd-mobile) var(--moa-x-mobile);
  }
  .moa-lg {
    padding: var(--moa-y-lg-mobile) var(--moa-x-mobile);
  }
  .moa-xl {
    padding: var(--moa-y-xl-mobile) var(--moa-x-mobile);
  }
  .moa-xxl {
    padding: var(--moa-y-xxl-mobile) var(--moa-x-mobile);
  }
}
