/* ============================================================
   BRIGHTWORK — Elementor Component CSS  v4.0
   File: brightwork-elementor.css

   WHAT CHANGED v4:
   • @import REMOVED — Google Fonts now loaded via PHP enqueue
   • All .elementor-column-wrap / .elementor-widget-wrap /
     .elementor-widget-container selectors REMOVED — Porto
     doesn't use these classes; JS handles complex cases instead
   • bw-heading-display, bw-card-dark, bw-card-accent-top now
     applied by JS in brightwork-shortcodes.php (100% reliable)
   • bw-section-relative NO LONGER NEEDED for effects — the JS
     in brightwork-shortcodes.php moves effect elements directly
     onto the parent section automatically
   • bw-grid-* section classes use ::after (no widget needed)
   • Diagonal grid fixed: explicit background-size per layer
   ============================================================ */


/* ============================================================
   DESIGN TOKENS
   NOTE: Google Fonts loaded by PHP (brightwork_enqueue_assets).
   These variables are available everywhere on the page.
   ============================================================ */
:root {
  /* Primary palette */
  --bw-bg:          #F2F4F6;
  --bw-surface:     #FFFFFF;
  --bw-navy:        #1A3550;
  --bw-primary:     #1E4976;
  --bw-secondary:   #3D9B9A;
  --bw-accent:      #C8A96E;
  --bw-text:        #1C2B3A;
  --bw-muted:       #7A8F9E;
  --bw-fog:         #E8ECF0;
  --bw-divider:     #D0D8DF;
  --bw-font-d:      'Cormorant Garamond', Georgia, serif;
  --bw-font-b:      'Barlow', system-ui, sans-serif;
  --bw-radius:      6px;
  --bw-shadow-sm:   0 2px 12px rgba(26,53,80,0.07);
  --bw-shadow-md:   0 8px 32px rgba(26,53,80,0.11);
  --bw-shadow-lg:   0 20px 60px rgba(26,53,80,0.14);

  /* Secondary palette */
  --bw-navy-deep:   #0F1F3D;
  --bw-gold-warm:   #B8922A;
  --bw-slate:       #4A5568;
  --bw-gold-bright: #D4A843;
  --bw-ink:         #212529;
  --bw-sky:         #689AE2;

  /* CF7 form aliases */
  --bwf-primary:  #1E4976;
  --bwf-teal:     #3D9B9A;
  --bwf-text:     #1C2B3A;
  --bwf-muted:    #7A8F9E;
  --bwf-bg:       #F2F4F6;
  --bwf-surface:  #FFFFFF;
  --bwf-divider:  #D0D8DF;
  --bwf-navy:     #1A3550;
  --bwf-error:    #C0392B;
  --bwf-success:  #27AE60;
  --bwf-radius:   6px;
}


/* ============================================================
   SCROLL PROGRESS BAR
   ============================================================ */
#bw-progress-bar {
  position: fixed; top: 0; left: 0; height: 3px; width: 0%;
  background: linear-gradient(90deg, var(--bw-secondary), var(--bw-accent));
  z-index: 99999; transition: width 0.1s linear; pointer-events: none;
}


/* ============================================================
   SECTION BACKGROUNDS — PRIMARY
   Apply class to Elementor Section via Advanced → CSS Classes
   ============================================================ */
.bw-section-fog   { background-color: var(--bw-bg)      !important; }
.bw-section-white { background-color: var(--bw-surface) !important; }

/* Hero — fog + subtle dot grid */
.bw-section-hero  { background-color: var(--bw-bg) !important; position: relative !important; }
.bw-section-hero::after {
  content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-image: radial-gradient(circle, rgba(26,53,80,0.055) 1px, transparent 1px);
  background-size: 32px 32px;
}
.bw-section-hero > .elementor-container,
.bw-section-hero > .e-con { position: relative; z-index: 1; }

/* Navy — deep navy + radial glow */
.bw-section-navy  { background: var(--bw-navy) !important; position: relative !important; }
.bw-section-navy::before {
  content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-image:
    radial-gradient(ellipse at 75% 40%, rgba(61,155,154,0.15) 0%, transparent 55%),
    radial-gradient(ellipse at 15% 85%, rgba(200,169,110,0.08) 0%, transparent 45%);
}
.bw-section-navy > .elementor-container,
.bw-section-navy > .e-con { position: relative; z-index: 1; }

/* Dark — gradient navy (footer CTAs) */
.bw-section-dark {
  background: linear-gradient(160deg, #0F2035 0%, #1A3550 60%, #1A3D50 100%) !important;
  position: relative !important;
}
.bw-section-dark::before {
  content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-image:
    radial-gradient(ellipse at 60% 30%, rgba(61,155,154,0.18) 0%, transparent 55%),
    radial-gradient(ellipse at 20% 80%, rgba(200,169,110,0.1)  0%, transparent 45%);
}
.bw-section-dark > .elementor-container,
.bw-section-dark > .e-con { position: relative; z-index: 1; }


/* ============================================================
   SECTION BACKGROUNDS — SECONDARY PALETTE
   ============================================================ */
.bw-section-deep {
  background: var(--bw-navy-deep) !important; position: relative !important;
}
.bw-section-deep::before {
  content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-image:
    radial-gradient(ellipse at 70% 30%, rgba(104,154,226,0.1) 0%, transparent 55%),
    radial-gradient(ellipse at 15% 80%, rgba(212,168,67,0.07)  0%, transparent 45%);
}
.bw-section-deep > .elementor-container,
.bw-section-deep > .e-con { position: relative; z-index: 1; }

.bw-section-ink   { background: var(--bw-ink)   !important; position: relative !important; }
.bw-section-slate { background: var(--bw-slate)  !important; position: relative !important; }

.bw-section-sky {
  background-color: var(--bw-fog) !important;
  background-image: linear-gradient(135deg, rgba(104,154,226,0.08) 0%, transparent 100%) !important;
  position: relative !important;
}
.bw-section-gold {
  background-color: var(--bw-surface) !important;
  background-image: linear-gradient(135deg, rgba(184,146,42,0.08) 0%, transparent 100%) !important;
  position: relative !important;
}


/* ============================================================
   GRID AS SECTION CSS CLASSES — NO WIDGET NEEDED
   Add to Section CSS Classes field in Elementor.
   Uses ::after so it works alongside dark sections (::before=glow).
   For bw-section-hero (which uses ::after for dot pattern), use
   [bw_fx grid="yes"] shortcode instead.
   ============================================================ */
.bw-grid-std,
.bw-grid-tight,
.bw-grid-wide,
.bw-grid-diag,
.bw-grid-accent,
.bw-grid-sky { position: relative !important; }

.bw-grid-std::after,
.bw-grid-tight::after,
.bw-grid-wide::after,
.bw-grid-diag::after,
.bw-grid-accent::after,
.bw-grid-sky::after {
  content: ''; position: absolute; inset: 0;
  pointer-events: none; z-index: 1;
  background-image:
    linear-gradient(rgba(240,234,216,0.9) 1px, transparent 1px),
    linear-gradient(90deg, rgba(240,234,216,0.9) 1px, transparent 1px);
  background-size: 60px 60px;
  opacity: 0.05;
}

/* Content above grid */
.bw-grid-std > .elementor-container,
.bw-grid-tight > .elementor-container,
.bw-grid-wide > .elementor-container,
.bw-grid-diag > .elementor-container,
.bw-grid-accent > .elementor-container,
.bw-grid-sky > .elementor-container,
.bw-grid-std > .e-con,
.bw-grid-tight > .e-con,
.bw-grid-wide > .e-con,
.bw-grid-diag > .e-con,
.bw-grid-accent > .e-con,
.bw-grid-sky > .e-con { position: relative; z-index: 2; }

.bw-grid-tight::after { background-size: 30px 30px; }
.bw-grid-wide::after  { background-size: 120px 120px; }

/* FIX: diagonal needs explicit 4-value background-size */
.bw-grid-diag::after {
  background-image:
    linear-gradient(rgba(240,234,216,0.9) 1px, transparent 1px),
    linear-gradient(90deg, rgba(240,234,216,0.9) 1px, transparent 1px),
    linear-gradient(45deg,  rgba(240,234,216,0.9) 1px, transparent 1px),
    linear-gradient(-45deg, rgba(240,234,216,0.9) 1px, transparent 1px);
  background-size: 60px 60px, 60px 60px, 60px 60px, 60px 60px;
  opacity: 0.04;
}
.bw-grid-accent::after {
  background-image:
    linear-gradient(rgba(196,151,58,0.8) 1px, transparent 1px),
    linear-gradient(90deg, rgba(196,151,58,0.8) 1px, transparent 1px);
  background-size: 60px 60px, 60px 60px;
  opacity: 0.06;
}
.bw-grid-sky::after {
  background-image:
    linear-gradient(rgba(104,154,226,0.8) 1px, transparent 1px),
    linear-gradient(90deg, rgba(104,154,226,0.8) 1px, transparent 1px);
  background-size: 60px 60px, 60px 60px;
  opacity: 0.07;
}


/* ============================================================
   INLINE GRID / STARS CSS (used by [bw_fx] and [bw_grid])
   These classes style the elements AFTER the JS has moved
   them to be direct children of the section.
   ============================================================ */
.bw-grid {
  /* Position applied by JS after repositioning */
  pointer-events: none;
  background-image:
    linear-gradient(rgba(240,234,216,0.9) 1px, transparent 1px),
    linear-gradient(90deg, rgba(240,234,216,0.9) 1px, transparent 1px);
  background-size: 60px 60px;
  opacity: 0.05;
}
.bw-grid--tight  { background-size: 30px 30px; }
.bw-grid--mid    { background-size: 60px 60px; }
.bw-grid--wide   { background-size: 120px 120px; }
.bw-grid--subtle  { opacity: 0.03; }
.bw-grid--default { opacity: 0.05; }
.bw-grid--bold    { opacity: 0.09; }
.bw-grid--diagonal {
  background-image:
    linear-gradient(rgba(240,234,216,0.9) 1px, transparent 1px),
    linear-gradient(90deg, rgba(240,234,216,0.9) 1px, transparent 1px),
    linear-gradient(45deg,  rgba(240,234,216,0.9) 1px, transparent 1px),
    linear-gradient(-45deg, rgba(240,234,216,0.9) 1px, transparent 1px);
  background-size: 60px 60px, 60px 60px, 60px 60px, 60px 60px;
  opacity: 0.04;
}
.bw-grid--accent {
  background-image:
    linear-gradient(rgba(196,151,58,0.8) 1px, transparent 1px),
    linear-gradient(90deg, rgba(196,151,58,0.8) 1px, transparent 1px);
  background-size: 60px 60px, 60px 60px;
  opacity: 0.06;
}
.bw-grid--sky {
  background-image:
    linear-gradient(rgba(104,154,226,0.8) 1px, transparent 1px),
    linear-gradient(90deg, rgba(104,154,226,0.8) 1px, transparent 1px);
  background-size: 60px 60px, 60px 60px;
  opacity: 0.07;
}


/* ============================================================
   STAR FIELD
   ============================================================ */
.bw-stars { pointer-events: none; }
.bw-star {
  position: absolute;
  border-radius: 50%;
  background: rgba(240, 234, 216, 0.9);
  animation: bwTwinkle var(--d) ease-in-out infinite var(--delay);
}
@keyframes bwTwinkle {
  0%,  100% { opacity: 0.08; transform: scale(1);   }
  50%        { opacity: 0.85; transform: scale(1.6); }
}
.bw-stars--gold   .bw-star { background: rgba(212, 168, 67,  0.9); }
.bw-stars--sky    .bw-star { background: rgba(104, 154, 226, 0.9); }
.bw-stars--silver .bw-star { background: rgba(226, 232, 240, 0.9); }
.bw-stars--warm   .bw-star { background: rgba(253, 230, 138, 0.9); }
.bw-stars--teal   .bw-star { background: rgba(61,  155, 154, 0.9); }


/* ============================================================
   ANIMATED WAVE
   ============================================================ */
.bw-hero-waves { overflow: hidden; pointer-events: none; line-height: 0; }
.bw-wave {
  position: absolute;
  bottom: 0;
  width: 200%;
  height: 100%;
}
.bw-wave:nth-child(1) { animation: bwScroll 12s linear infinite;         opacity: 0.45; }
.bw-wave:nth-child(2) { animation: bwScroll 18s linear infinite reverse; opacity: 0.25; top: 18px; }
.bw-wave:nth-child(3) { animation: bwScroll 9s  linear infinite;         opacity: 0.15; top: 38px; }
@keyframes bwScroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

@media (max-width: 768px) {
  .bw-hero-waves { height: 90px !important; }
}


/* ============================================================
   STATIC WAVE DIVIDER
   ============================================================ */
.bw-wave-divider { line-height: 0; overflow: hidden; display: block; font-size: 0; }
.bw-wave-divider svg { display: block; width: 100%; }


/* ============================================================
   TYPOGRAPHY
   Simple selectors — JS applies fallback inline styles for Porto.
   ============================================================ */
.bw-heading-display,
.bw-heading-display h1, .bw-heading-display h2,
.bw-heading-display h3, .bw-heading-display h4 {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-weight: 300 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.01em !important;
  color: var(--bw-navy) !important;
}
.bw-heading-display em { font-style: italic !important; color: var(--bw-secondary) !important; }

.bw-heading-serif,
.bw-heading-serif h1, .bw-heading-serif h2,
.bw-heading-serif h3, .bw-heading-serif h4 {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  color: var(--bw-navy) !important;
}
.bw-heading-on-dark,
.bw-heading-on-dark h1, .bw-heading-on-dark h2,
.bw-heading-on-dark h3, .bw-heading-on-dark h4 {
  font-family: 'Cormorant Garamond', Georgia, serif !important;
  color: #ffffff !important;
}
.bw-heading-sky h1, .bw-heading-sky h2, .bw-heading-sky h3  { font-family: 'Cormorant Garamond', Georgia, serif !important; color: var(--bw-sky)          !important; }
.bw-heading-gold h1,.bw-heading-gold h2,.bw-heading-gold h3  { font-family: 'Cormorant Garamond', Georgia, serif !important; color: var(--bw-gold-bright) !important; }

.bw-text-body        { font-family: 'Barlow', sans-serif !important; font-size: clamp(0.95rem,1.5vw,1.05rem) !important; line-height: 1.72 !important; color: var(--bw-text)           !important; }
.bw-text-muted       { font-family: 'Barlow', sans-serif !important; line-height: 1.72 !important;                         color: var(--bw-muted)          !important; }
.bw-text-on-dark     { font-family: 'Barlow', sans-serif !important; line-height: 1.75 !important;                         color: rgba(255,255,255,0.72)   !important; }
.bw-text-italic-display { font-family: 'Cormorant Garamond', Georgia, serif !important; font-size: clamp(1rem,1.8vw,1.2rem) !important; font-style: italic !important; font-weight: 300 !important; color: var(--bw-muted) !important; line-height: 1.75 !important; }
.bw-text-centered, .bw-text-centered * { text-align: center !important; }
.bw-text-sky       { color: var(--bw-sky)          !important; }
.bw-text-gold      { color: var(--bw-gold-bright)  !important; }
.bw-text-slate     { color: var(--bw-slate)        !important; }
.bw-text-gold-warm { color: var(--bw-gold-warm)    !important; }


/* ============================================================
   BUTTONS — apply to Elementor Button widget via CSS Classes
   ============================================================ */
.bw-btn-primary .elementor-button, .bw-btn-primary a.elementor-button {
  background: var(--bw-primary) !important; color: #fff !important;
  border: none !important; border-radius: var(--bw-radius) !important;
  font-family: 'Barlow', sans-serif !important; font-size: 0.9rem !important;
  font-weight: 600 !important; letter-spacing: 0.04em !important;
  padding: 0.85rem 2rem !important; transition: background 0.2s, transform 0.2s, box-shadow 0.2s !important;
}
.bw-btn-primary .elementor-button:hover { background: var(--bw-navy) !important; transform: translateY(-2px) !important; box-shadow: 0 8px 24px rgba(26,53,80,0.2) !important; }

.bw-btn-secondary .elementor-button, .bw-btn-secondary a.elementor-button {
  background: transparent !important; color: var(--bw-primary) !important;
  border: 1.5px solid var(--bw-primary) !important; border-radius: var(--bw-radius) !important;
  font-family: 'Barlow', sans-serif !important; font-size: 0.9rem !important;
  font-weight: 600 !important; letter-spacing: 0.04em !important; padding: 0.85rem 2rem !important;
}
.bw-btn-secondary .elementor-button:hover { background: var(--bw-primary) !important; color: #fff !important; }

.bw-btn-light .elementor-button, .bw-btn-light a.elementor-button {
  background: #fff !important; color: var(--bw-primary) !important;
  border: none !important; border-radius: var(--bw-radius) !important;
  font-family: 'Barlow', sans-serif !important; font-size: 0.9rem !important;
  font-weight: 600 !important; letter-spacing: 0.04em !important; padding: 0.85rem 2rem !important;
  transition: background 0.2s, color 0.2s, transform 0.2s !important;
}
.bw-btn-light .elementor-button:hover { background: var(--bw-secondary) !important; color: #fff !important; transform: translateY(-2px) !important; }

.bw-btn-ghost-light .elementor-button, .bw-btn-ghost-light a.elementor-button {
  background: transparent !important; color: rgba(255,255,255,0.85) !important;
  border: 1.5px solid rgba(255,255,255,0.3) !important; border-radius: var(--bw-radius) !important;
  font-family: 'Barlow', sans-serif !important; font-size: 0.9rem !important;
  font-weight: 600 !important; padding: 0.85rem 2rem !important;
}
.bw-btn-ghost-light .elementor-button:hover { background: rgba(255,255,255,0.1) !important; color: #fff !important; }

/* Secondary palette buttons */
.bw-btn-sky .elementor-button, .bw-btn-sky a.elementor-button  { background: var(--bw-sky)          !important; color: #fff                  !important; border: none !important; border-radius: var(--bw-radius) !important; font-family: 'Barlow', sans-serif !important; font-size: 0.9rem !important; font-weight: 600 !important; padding: 0.85rem 2rem !important; }
.bw-btn-sky .elementor-button:hover                             { background: #5585cc !important; transform: translateY(-2px) !important; }
.bw-btn-gold .elementor-button, .bw-btn-gold a.elementor-button { background: var(--bw-gold-bright)  !important; color: var(--bw-ink)         !important; border: none !important; border-radius: var(--bw-radius) !important; font-family: 'Barlow', sans-serif !important; font-size: 0.9rem !important; font-weight: 600 !important; padding: 0.85rem 2rem !important; }
.bw-btn-gold .elementor-button:hover                            { background: var(--bw-gold-warm) !important; transform: translateY(-2px) !important; }
.bw-btn-outline-sky .elementor-button { background: transparent !important; color: var(--bw-sky) !important; border: 1.5px solid var(--bw-sky) !important; border-radius: var(--bw-radius) !important; font-family: 'Barlow', sans-serif !important; font-size: 0.9rem !important; font-weight: 600 !important; padding: 0.85rem 2rem !important; }
.bw-btn-outline-sky .elementor-button:hover { background: var(--bw-sky) !important; color: #fff !important; }


/* ============================================================
   DIVIDERS
   ============================================================ */
.bw-divider-teal .elementor-divider-separator   { border-top-color: var(--bw-secondary)    !important; border-top-width: 2px !important; }
.bw-divider-subtle .elementor-divider-separator  { border-top-color: var(--bw-divider)      !important; border-top-width: 1px !important; }
.bw-divider-white .elementor-divider-separator   { border-top-color: rgba(255,255,255,0.12) !important; border-top-width: 1px !important; }
.bw-divider-gold .elementor-divider-separator    { border-top-color: var(--bw-gold-bright)  !important; border-top-width: 1px !important; }
.bw-divider-sky .elementor-divider-separator     { border-top-color: var(--bw-sky)          !important; border-top-width: 1px !important; }


/* ============================================================
   CARDS
   Applied to columns or any block element.
   bw-card-dark and bw-card-accent-top also handled by JS
   for full Porto compatibility.
   ============================================================ */
.bw-card {
  background: var(--bw-surface) !important; border: 1px solid var(--bw-divider) !important;
  border-radius: 12px !important; padding: 2rem !important;
  transition: box-shadow 0.3s, transform 0.3s, border-color 0.3s !important;
}
.bw-card:hover { box-shadow: var(--bw-shadow-md) !important; transform: translateY(-4px) !important; border-color: rgba(61,155,154,0.3) !important; }

.bw-card-fog {
  background: var(--bw-bg) !important; border: 1px solid var(--bw-divider) !important;
  border-radius: 12px !important; padding: 2rem !important;
  transition: box-shadow 0.3s, transform 0.3s !important;
}
.bw-card-fog:hover { box-shadow: var(--bw-shadow-md) !important; transform: translateY(-4px) !important; }

/* bw-card-dark — also applied via JS for Porto compatibility */
.bw-card-dark {
  background: rgba(255,255,255,0.05) !important; border: 1px solid rgba(255,255,255,0.1) !important;
  border-radius: 12px !important; overflow: hidden !important;
  transition: background 0.3s !important;
}
.bw-card-dark:hover { background: rgba(255,255,255,0.08) !important; }

/* bw-card-accent-top — gradient bar injected by JS */
.bw-card-accent-top {
  position: relative !important; border-radius: 10px !important; overflow: hidden !important;
}
.bwi-accent-bar {
  position: absolute !important; top: 0 !important; left: 0 !important; right: 0 !important;
  height: 3px !important; background: linear-gradient(90deg, #3D9B9A, #C8A96E) !important;
  z-index: 10 !important; pointer-events: none !important;
}

.bw-card-left-border {
  border-left: 3px solid var(--bw-secondary) !important;
  border-radius: 0 var(--bw-radius) var(--bw-radius) 0 !important;
  background: var(--bw-bg) !important; padding: 1.5rem !important;
}
.bw-card-definition {
  background: var(--bw-surface) !important; border: 1px solid var(--bw-divider) !important;
  border-radius: 14px !important; padding: 2.5rem !important;
  box-shadow: var(--bw-shadow-md) !important; position: relative !important; overflow: hidden !important;
}
.bw-card-definition::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--bw-secondary), var(--bw-accent));
}

/* Secondary palette cards */
.bw-card-sky   { background: rgba(104,154,226,0.06) !important; border: 1px solid rgba(104,154,226,0.2)  !important; border-radius: 12px !important; padding: 2rem !important; }
.bw-card-gold  { background: rgba(212,168,67,0.07)  !important; border: 1px solid rgba(212,168,67,0.2)   !important; border-radius: 12px !important; padding: 2rem !important; }
.bw-card-slate { background: rgba(74,85,104,0.08)   !important; border: 1px solid rgba(74,85,104,0.18)   !important; border-radius: 12px !important; padding: 2rem !important; }
.bw-card-deep  { background: rgba(15,31,61,0.06)    !important; border: 1px solid rgba(15,31,61,0.15)    !important; border-radius: 12px !important; padding: 2rem !important; }


/* ============================================================
   STAT & BADGE CHIPS
   ============================================================ */
.bw-stat-number { font-family: 'Cormorant Garamond', Georgia, serif !important; font-size: 2.8rem !important; font-weight: 500 !important; color: var(--bw-secondary) !important; line-height: 1 !important; }
.bw-stat-label  { font-family: 'Barlow', sans-serif !important; font-size: 0.78rem !important; font-weight: 600 !important; letter-spacing: 0.08em !important; text-transform: uppercase !important; color: rgba(255,255,255,0.5) !important; }
.bw-stat-label-dark { font-family: 'Barlow', sans-serif !important; font-size: 0.78rem !important; font-weight: 600 !important; letter-spacing: 0.08em !important; text-transform: uppercase !important; color: var(--bw-muted) !important; }
.bw-stat-box       { background: rgba(255,255,255,0.05) !important; border: 1px solid rgba(255,255,255,0.09) !important; border-radius: 10px !important; padding: 1.5rem !important; text-align: center !important; }
.bw-stat-box-light { background: var(--bw-surface)      !important; border: 1px solid var(--bw-divider)      !important; border-radius: 10px !important; padding: 1.5rem !important; text-align: center !important; }

.bw-badge-teal,      .bw-badge-teal p       { display:inline-flex !important; background:rgba(61,155,154,0.12)  !important; border:1px solid rgba(61,155,154,0.25)  !important; color:var(--bw-secondary)   !important; font-family:'Barlow',sans-serif !important; font-size:0.75rem !important; font-weight:600 !important; letter-spacing:0.07em !important; text-transform:uppercase !important; padding:0.3rem 0.85rem !important; border-radius:100px !important; }
.bw-badge-gold,      .bw-badge-gold p       { display:inline-flex !important; background:rgba(200,169,110,0.15) !important; border:1px solid rgba(200,169,110,0.35) !important; color:var(--bw-accent)      !important; font-family:'Barlow',sans-serif !important; font-size:0.75rem !important; font-weight:600 !important; letter-spacing:0.07em !important; text-transform:uppercase !important; padding:0.3rem 0.85rem !important; border-radius:100px !important; }
.bw-badge-dark,      .bw-badge-dark p       { display:inline-flex !important; background:rgba(26,53,80,0.06)    !important; border:1px solid rgba(26,53,80,0.12)    !important; color:var(--bw-navy)        !important; font-family:'Barlow',sans-serif !important; font-size:0.75rem !important; font-weight:600 !important; letter-spacing:0.07em !important; text-transform:uppercase !important; padding:0.3rem 0.85rem !important; border-radius:100px !important; }
.bw-badge-sky,       .bw-badge-sky p        { display:inline-flex !important; background:rgba(104,154,226,0.12) !important; border:1px solid rgba(104,154,226,0.3)  !important; color:var(--bw-sky)         !important; font-family:'Barlow',sans-serif !important; font-size:0.75rem !important; font-weight:600 !important; letter-spacing:0.07em !important; text-transform:uppercase !important; padding:0.3rem 0.85rem !important; border-radius:100px !important; }
.bw-badge-gold-bright,.bw-badge-gold-bright p { display:inline-flex !important; background:rgba(212,168,67,0.12)  !important; border:1px solid rgba(212,168,67,0.3)   !important; color:var(--bw-gold-bright)  !important; font-family:'Barlow',sans-serif !important; font-size:0.75rem !important; font-weight:600 !important; letter-spacing:0.07em !important; text-transform:uppercase !important; padding:0.3rem 0.85rem !important; border-radius:100px !important; }
.bw-badge-slate,     .bw-badge-slate p      { display:inline-flex !important; background:rgba(74,85,104,0.1)    !important; border:1px solid rgba(74,85,104,0.2)    !important; color:var(--bw-slate)       !important; font-family:'Barlow',sans-serif !important; font-size:0.75rem !important; font-weight:600 !important; letter-spacing:0.07em !important; text-transform:uppercase !important; padding:0.3rem 0.85rem !important; border-radius:100px !important; }
.callout-badges { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1.75rem; }
   
 .callout-badge { display: inline-flex; align-items: center; gap: 0.4rem; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); color: rgba(255,255,255,0.75); font-size: 0.78rem; font-weight: 500; padding: 0.35rem 0.85rem; border-radius: 100px; }
    .callout-badge svg { width: 11px; height: 11px; color: #D4A843; }

/* ============================================================
   IMAGE / ICON HELPERS
   ============================================================ */
.bw-img-rounded .elementor-image img  { border-radius: 12px !important; }
.bw-img-circle .elementor-image img   { border-radius: 50% !important; border: 3px solid var(--bw-secondary)   !important; }
.bw-img-circle-sky .elementor-image img { border-radius: 50% !important; border: 3px solid var(--bw-sky) !important; }
.bw-icon-teal .elementor-icon, .bw-icon-teal .elementor-icon svg { color: var(--bw-secondary)  !important; background: linear-gradient(135deg,rgba(61,155,154,0.12),rgba(30,73,118,0.06)) !important; border-radius:10px !important; padding:10px !important; width:44px !important; height:44px !important; }
.bw-icon-sky .elementor-icon,  .bw-icon-sky .elementor-icon svg  { color: var(--bw-sky)         !important; background: rgba(104,154,226,0.1) !important; border-radius:10px !important; padding:10px !important; width:44px !important; height:44px !important; }
.bw-icon-gold .elementor-icon, .bw-icon-gold .elementor-icon svg { color: var(--bw-gold-bright) !important; background: rgba(212,168,67,0.1) !important; border-radius:10px !important; padding:10px !important; width:44px !important; height:44px !important; }


/* ============================================================
   CF7 FORM STYLING
   Add CSS class "bwf-form-col" to the Elementor COLUMN
   containing the CF7 Shortcode widget.
   ============================================================ */
.bwf-hp { position:absolute !important; left:-9999px !important; top:-9999px !important; opacity:0 !important; pointer-events:none !important; height:0 !important; overflow:hidden !important; }
.bwf-form-col { background:var(--bwf-bg) !important; border:1px solid var(--bwf-divider) !important; border-radius:14px !important; padding:clamp(1.5rem,4vw,2.5rem) !important; }
.bwf-section { margin-bottom:2.5rem; }
.bwf-section-title { font-family:'Barlow',sans-serif; font-size:0.9rem; font-weight:600; text-transform:uppercase; letter-spacing:0.1em; color:var(--bwf-teal); margin-bottom:1.5rem; padding-bottom:0.75rem; border-bottom:1px solid var(--bwf-divider); display:flex; align-items:center; gap:0.65rem; }
.bwf-step { display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:50%; background:var(--bwf-primary); color:#fff; font-size:0.72rem; font-weight:700; flex-shrink:0; }
.bwf-row { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; }
.bwf-group { margin-bottom:1.25rem; }
.bwf-group:last-child { margin-bottom:0; }
.bwf-req { color:var(--bwf-teal); margin-left:2px; }
.bwf-opt { color:var(--bwf-muted); font-weight:400; font-size:0.78rem; margin-left:4px; }

.bwf-form-col label { display:block; font-family:'Barlow',sans-serif; font-size:0.83rem; font-weight:600; letter-spacing:0.04em; color:var(--bwf-text); margin-bottom:0.45rem; }
.bwf-form-col input[type="text"],
.bwf-form-col input[type="email"],
.bwf-form-col input[type="tel"],
.bwf-form-col select,
.bwf-form-col textarea { width:100%; padding:0.75rem 1rem; background:var(--bwf-surface); color:var(--bwf-text); border:1.5px solid var(--bwf-divider); border-radius:var(--bwf-radius); font-family:'Barlow',sans-serif; font-size:0.95rem; transition:border-color 0.2s,box-shadow 0.2s; outline:none; -webkit-appearance:none; appearance:none; }
.bwf-form-col input::placeholder,.bwf-form-col textarea::placeholder { color:var(--bwf-muted); opacity:0.7; }
.bwf-form-col input:focus,.bwf-form-col select:focus,.bwf-form-col textarea:focus { border-color:var(--bwf-teal); box-shadow:0 0 0 3px rgba(61,155,154,0.12); }
.bwf-form-col textarea { resize:vertical; min-height:110px; }
.bwf-form-col select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237A8F9E' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1rem center; padding-right:2.5rem; cursor:pointer; }
.bwf-form-col .wpcf7-radio,.bwf-radio-inline .wpcf7-radio { display:flex; flex-direction:row; flex-wrap:wrap; gap:0.5rem; }
.bwf-radio-stack .wpcf7-radio { display:flex; flex-direction:column; gap:0.6rem; }
.bwf-form-col .wpcf7-radio .wpcf7-list-item { margin:0 !important; display:block; }
.bwf-form-col .wpcf7-radio .wpcf7-list-item label { display:flex !important; align-items:center; gap:0.65rem; cursor:pointer; padding:0.5rem 0.9rem; background:var(--bwf-surface); border:1.5px solid var(--bwf-divider); border-radius:var(--bwf-radius); transition:border-color 0.2s,background 0.2s; font-family:'Barlow',sans-serif; font-size:0.88rem; color:var(--bwf-text); user-select:none; margin-bottom:0; }
.bwf-form-col .wpcf7-radio .wpcf7-list-item label:hover { border-color:rgba(61,155,154,0.45); background:rgba(61,155,154,0.04); }
.bwf-form-col .wpcf7-radio .wpcf7-list-item input[type="radio"] { display:none !important; }
.bwf-form-col .wpcf7-radio .wpcf7-list-item label::before { content:''; flex-shrink:0; width:18px; height:18px; border-radius:50%; border:2px solid var(--bwf-divider); background:var(--bwf-surface); transition:border-color 0.2s; }
.bwf-form-col .wpcf7-radio .wpcf7-list-item:has(input:checked) label::before { border-color:var(--bwf-teal); box-shadow:inset 0 0 0 4px var(--bwf-teal); }
.bwf-form-col .wpcf7-radio .wpcf7-list-item:has(input:checked) label { border-color:var(--bwf-teal); background:rgba(61,155,154,0.06); }
.bwf-form-col .wpcf7-checkbox { display:flex; flex-direction:column; gap:0.6rem; }
.bwf-form-col .wpcf7-checkbox .wpcf7-list-item { margin:0 !important; }
.bwf-form-col .wpcf7-checkbox .wpcf7-list-item label { display:flex !important; align-items:center; gap:0.65rem; cursor:pointer; padding:0.65rem 1rem; background:var(--bwf-surface); border:1.5px solid var(--bwf-divider); border-radius:var(--bwf-radius); transition:border-color 0.2s,background 0.2s; font-family:'Barlow',sans-serif; font-size:0.9rem; color:var(--bwf-text); user-select:none; margin-bottom:0; }
.bwf-form-col .wpcf7-checkbox .wpcf7-list-item label:hover { border-color:rgba(61,155,154,0.45); background:rgba(61,155,154,0.04); }
.bwf-form-col .wpcf7-checkbox .wpcf7-list-item input[type="checkbox"] { display:none !important; }
.bwf-form-col .wpcf7-checkbox .wpcf7-list-item label::before { content:''; flex-shrink:0; width:18px; height:18px; border-radius:4px; border:2px solid var(--bwf-divider); background:var(--bwf-surface); transition:border-color 0.2s,background 0.2s; }
.bwf-form-col .wpcf7-checkbox .wpcf7-list-item:has(input:checked) label::before { border-color:var(--bwf-teal); background:var(--bwf-teal); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpolyline points='1.5,5 4,7.5 8.5,2.5' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:center; }
.bwf-form-col .wpcf7-checkbox .wpcf7-list-item:has(input:checked) label { border-color:var(--bwf-teal); background:rgba(61,155,154,0.06); }
.bwf-form-col input[type="submit"],.bwf-form-col .wpcf7-submit { display:inline-flex; align-items:center; gap:0.5rem; background:var(--bwf-primary); color:#fff; padding:0.9rem 2.25rem; border-radius:var(--bwf-radius); font-family:'Barlow',sans-serif; font-size:0.95rem; font-weight:600; letter-spacing:0.04em; border:none; cursor:pointer; transition:background 0.2s,transform 0.2s,box-shadow 0.2s; }
.bwf-form-col input[type="submit"]:hover,.bwf-form-col .wpcf7-submit:hover { background:var(--bwf-navy); transform:translateY(-2px); box-shadow:0 8px 24px rgba(26,53,80,0.2); }
.bwf-form-col .wpcf7-not-valid-tip { color:var(--bwf-error); font-size:0.78rem; margin-top:0.35rem; display:block; }
.bwf-form-col .wpcf7-response-output { margin-top:1.25rem; padding:1rem 1.25rem; border-radius:var(--bwf-radius); font-size:0.88rem; border-left:3px solid var(--bwf-teal); background:rgba(61,155,154,0.06); }
.bwf-form-col .wpcf7-mail-sent-ok { border-color:var(--bwf-success); background:rgba(39,174,96,0.06); color:#166534; }
.bwf-form-col .wpcf7-mail-sent-ng,.bwf-form-col .wpcf7-aborted { border-color:var(--bwf-error); background:rgba(192,57,43,0.06); color:#7f1d1d; }
@media (max-width:768px) { .bwf-row { grid-template-columns:1fr; } }


/* ============================================================
   STICKY SIDEBAR
   Add "bwf-sticky-sidebar" to the LEFT Elementor Column.
   Parent Section must have Overflow set to Default (not Hidden).
   ============================================================ */
.bwf-sticky-sidebar > .elementor-column-wrap,
.bwf-sticky-sidebar > .elementor-widget-wrap,
.bwf-sticky-sidebar > .e-con-inner {
  position: sticky !important; top: 90px !important;
  max-height: calc(100vh - 110px) !important;
  overflow-y: auto !important; scrollbar-width: none !important;
}
.bwf-sticky-sidebar > .elementor-column-wrap::-webkit-scrollbar,
.bwf-sticky-sidebar > .elementor-widget-wrap::-webkit-scrollbar,
.bwf-sticky-sidebar > .e-con-inner::-webkit-scrollbar { display: none; }
@media (max-width: 1024px) {
  .bwf-sticky-sidebar > .elementor-column-wrap,
  .bwf-sticky-sidebar > .elementor-widget-wrap,
  .bwf-sticky-sidebar > .e-con-inner { position:static !important; max-height:none !important; overflow-y:visible !important; }
}


/* ============================================================
   SCROLL ANIMATIONS
   ============================================================ */
[data-bw-animate] { opacity: 0; transform: translateY(32px); transition: opacity 0.75s ease, transform 0.75s ease; }
[data-bw-animate].bw-visible { opacity: 1; transform: translateY(0); }
.bw-stagger-children > .elementor-column:nth-child(1) [data-bw-animate] { transition-delay: 0.05s; }
.bw-stagger-children > .elementor-column:nth-child(2) [data-bw-animate] { transition-delay: 0.15s; }
.bw-stagger-children > .elementor-column:nth-child(3) [data-bw-animate] { transition-delay: 0.25s; }
.bw-stagger-children > .elementor-column:nth-child(4) [data-bw-animate] { transition-delay: 0.35s; }


/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 768px) {
  .bw-section-navy > .elementor-container,
  .bw-section-dark > .elementor-container,
  .bw-section-deep > .elementor-container { padding: 0 1.25rem !important; }
  .bw-stat-box, .bw-stat-box-light { padding: 1rem !important; }
  .bw-card, .bw-card-fog { padding: 1.5rem !important; }
}
@media (prefers-reduced-motion: reduce) {
  [data-bw-animate], * { transition: none !important; animation: none !important; }
  [data-bw-animate] { opacity: 1 !important; transform: none !important; }
}
