/*
	Theme Name: building47 Canvas
	Theme URI: https://building47.com
	Description: Custom Style Sheet
	Author: building47
	Version: 5.0 — doifluturistudio.ro
	Author URI: https://building47.com
	Template: hello-elementor
*/
/* ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ 
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ I. DESIGN ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ */

/* ---------------------------- COLOR VARIABLES ---------------------------- */

:root {
    /* --- Primary Scale — Teal (#5AAEB3 base) — accent only: dividers, icons --- */
    --b47-primary-50:    #EAF7F7;
    --b47-primary-100:   #C7EAEA;
    --b47-primary-200:   #9FD9DC;
    --b47-primary-300:   #79C9CD;
    --b47-primary-400:   #6BB8BC;
    --b47-primary-500:   #09acb3;
    --b47-primary-600:   #478B8F;
    --b47-primary-700:   #356870;
    --b47-primary-800:   #234649;
    --b47-primary-900:   #143538;
    --b47-primary-950:   #0C2022;
    --b47-primary-1000:  #060F10;

    /* --- Secondary Scale — Warm Amber (reserved, not used) --- */
    --b47-secondary-50:  #FDF8F0;
    --b47-secondary-100: #F5E8CC;
    --b47-secondary-200: #EBD0A0;
    --b47-secondary-300: #DFB872;
    --b47-secondary-400: #D4A050;
    --b47-secondary-500: #C48830;
    --b47-secondary-600: #A06E24;
    --b47-secondary-700: #7C5418;
    --b47-secondary-800: #583C0E;
    --b47-secondary-900: #362508;
    --b47-secondary-950: #1F1504;
    --b47-secondary-1000:#0F0A02;

    /* --- Tertiary Scale — Teal (same as primary, reserved) --- */
    --b47-tertiary-50:   #EAF7F7;
    --b47-tertiary-100:  #C7EAEA;
    --b47-tertiary-200:  #9FD9DC;
    --b47-tertiary-300:  #79C9CD;
    --b47-tertiary-400:  #6BB8BC;
    --b47-tertiary-500:  #5AAEB3;
    --b47-tertiary-600:  #478B8F;
    --b47-tertiary-700:  #356870;
    --b47-tertiary-800:  #234649;
    --b47-tertiary-900:  #143538;
    --b47-tertiary-950:  #0C2022;
    --b47-tertiary-1000: #060F10;

    /* --- Pure Neutrals --- */
    --b47-white:         #FFFFFF;
    --b47-gray-50:       #FAFAFA;
    --b47-gray-100:      #E8E8E8;
    --b47-gray-200:      #D0D0D0;
    --b47-gray-300:      #B8B8B8;
    --b47-gray-400:      #9A9A9A;
    --b47-gray-500:      #858585;
    --b47-gray-600:      #5C5C5C; 
    --b47-gray-700:      #222222;
    --b47-gray-800:      #1C1C1C;
    --b47-gray-900:      #161616;
    --b47-gray-950:      #111111;
    --b47-gray-1000:     #0A0A0A;
    --b47-black:         #000000;

    --b47-success:       #22C55E;
    --b47-error:         #F87171;
    --b47-warning:       #FBBF24;
    --b47-info:          #60A5FA;

    /* --- Backgrounds --- */
    --b47-background-subtle:                     var(--b47-gray-50);
    --b47-background:                            var(--b47-gray-1000);
    --b47-background-muted:                      var(--b47-gray-950);
    --b47-background-strong:                     var(--b47-gray-900);
    --b47-background-heavy:                      var(--b47-black);
    --b47-background-inverse:                    var(--b47-gray-50);

    /* --- Brand Gradients --- */
    --b47-gradient-primary-subtle:               linear-gradient(135deg, var(--b47-primary-50),  var(--b47-primary-200));
    --b47-gradient-primary:                      linear-gradient(135deg, var(--b47-primary-400), var(--b47-primary-600));
    --b47-gradient-primary-strong:               linear-gradient(135deg, var(--b47-primary-500), var(--b47-primary-900));
    --b47-gradient-primary-duo:                  linear-gradient(135deg, var(--b47-primary-500), var(--b47-secondary-500));
    --b47-gradient-primary-swoosh:               linear-gradient(135deg, var(--b47-primary-400) 0%, var(--b47-primary-600) 25%, var(--b47-secondary-400) 50%, var(--b47-primary-500) 75%, var(--b47-secondary-500) 100%);

    /* --- Secondary Gradients --- */
    --b47-gradient-secondary-subtle:             linear-gradient(135deg, var(--b47-secondary-50),  var(--b47-secondary-200));
    --b47-gradient-secondary:                    linear-gradient(135deg, var(--b47-secondary-400), var(--b47-secondary-600));
    --b47-gradient-secondary-strong:             linear-gradient(135deg, var(--b47-secondary-500), var(--b47-secondary-900));
    --b47-gradient-secondary-duo:                linear-gradient(135deg, var(--b47-secondary-500), var(--b47-primary-500));
    --b47-gradient-secondary-swoosh:             linear-gradient(135deg, var(--b47-secondary-400) 0%, var(--b47-secondary-600) 25%, var(--b47-primary-400) 50%, var(--b47-secondary-500) 75%, var(--b47-primary-500) 100%);

    /* --- Overlays --- */
    --b47-overlay-light-subtle:                  rgba(255, 255, 255, 0.2);
    --b47-overlay-light:                         rgba(255, 255, 255, 0.4);
    --b47-overlay-light-strong:                  rgba(255, 255, 255, 0.6);
    --b47-overlay-light-heavy:                   rgba(255, 255, 255, 0.8);
    --b47-overlay-dark-subtle:                   rgba(0, 0, 0, 0.2);
    --b47-overlay-dark:                          rgba(0, 0, 0, 0.4);
    --b47-overlay-dark-strong:                   rgba(0, 0, 0, 0.6);
    --b47-overlay-dark-heavy:                    rgba(0, 0, 0, 0.8);

    /* --- Gradient Overlays --- */
    --b47-gradient-overlay-light-subtle:         linear-gradient(to bottom, transparent, rgba(255, 255, 255, 0.2));
    --b47-gradient-overlay-light:                linear-gradient(to bottom, transparent, rgba(255, 255, 255, 0.4));
    --b47-gradient-overlay-light-strong:         linear-gradient(to bottom, transparent, rgba(255, 255, 255, 0.6));
    --b47-gradient-overlay-light-heavy:          linear-gradient(to bottom, transparent, rgba(255, 255, 255, 0.8));

    --b47-gradient-overlay-dark-subtle:          linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.2));
    --b47-gradient-overlay-dark:                 linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.4));
    --b47-gradient-overlay-dark-strong:          linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.6));
    --b47-gradient-overlay-dark-heavy:           linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.8));

    --b47-gradient-overlay-primary-subtle:       linear-gradient(to bottom, transparent, rgba(12, 32, 34, 0.2));
    --b47-gradient-overlay-primary:              linear-gradient(to bottom, transparent, rgba(12, 32, 34, 0.4));
    --b47-gradient-overlay-primary-strong:       linear-gradient(to bottom, transparent, rgba(12, 32, 34, 0.6));
    --b47-gradient-overlay-primary-heavy:        linear-gradient(to bottom, transparent, rgba(12, 32, 34, 0.8));
    --b47-gradient-overlay-primary-duo:          linear-gradient(135deg, rgba(90, 174, 179, 0.4), rgba(196, 136, 48, 0.4));
    --b47-gradient-overlay-primary-duo-strong:   linear-gradient(135deg, rgba(90, 174, 179, 0.9), rgba(196, 136, 48, 0.9));
    --b47-gradient-overlay-primary-swoosh:       linear-gradient(135deg, rgba(107,184,188, 0.8) 0%, rgba(71,139,143, 0.8) 25%, rgba(212,160,80, 0.8) 50%, rgba(90,174,179, 0.8) 75%, rgba(196,136,48, 0.8) 100%);

    --b47-gradient-overlay-secondary-subtle:     linear-gradient(to bottom, transparent, rgba(196, 136, 48, 0.2));
    --b47-gradient-overlay-secondary:            linear-gradient(to bottom, transparent, rgba(196, 136, 48, 0.4));
    --b47-gradient-overlay-secondary-strong:     linear-gradient(to bottom, transparent, rgba(196, 136, 48, 0.6));
    --b47-gradient-overlay-secondary-heavy:      linear-gradient(to bottom, transparent, rgba(196, 136, 48, 0.8));
    --b47-gradient-overlay-secondary-duo:        linear-gradient(135deg, rgba(196, 136, 48, 0.4), rgba(90, 174, 179, 0.4));
    --b47-gradient-overlay-secondary-duo-strong: linear-gradient(135deg, rgba(196, 136, 48, 0.9), rgba(90, 174, 179, 0.9));
    --b47-gradient-overlay-secondary-swoosh:     linear-gradient(135deg, rgba(212,160,80, 0.8) 0%, rgba(196,136,48, 0.8) 25%, rgba(107,184,188, 0.8) 50%, rgba(196,136,48, 0.8) 75%, rgba(90,174,179, 0.8) 100%);
    
    /* --- Backdrop Blurs --- */
    --b47-blur-none:                             blur(0px);
    --b47-blur-xs:                               blur(2px);
    --b47-blur-s:                                blur(4px);
    --b47-blur-m:                                blur(8px);
    --b47-blur-l:                                blur(12px);
    --b47-blur-xl:                               blur(16px);

    /* --- Backdrop Light --- */
    --b47-backdrop-light-subtle:                 rgba(255, 255, 255, 0.1);
    --b47-backdrop-light:                        rgba(255, 255, 255, 0.2);
    --b47-backdrop-light-strong:                 rgba(255, 255, 255, 0.3);
    --b47-backdrop-light-heavy:                  rgba(255, 255, 255, 0.4);

    /* --- Backdrop Dark --- */
    --b47-backdrop-dark-subtle:                  rgba(0, 0, 0, 0.1);
    --b47-backdrop-dark:                         rgba(0, 0, 0, 0.2);
    --b47-backdrop-dark-strong:                  rgba(0, 0, 0, 0.3);
    --b47-backdrop-dark-heavy:                   rgba(0, 0, 0, 0.4);

    /* --- Backdrop Primary Light --- */
    --b47-backdrop-primary-light-subtle:         rgba(90, 174, 179, 0.1);
    --b47-backdrop-primary-light:                rgba(90, 174, 179, 0.2);
    --b47-backdrop-primary-light-strong:         rgba(90, 174, 179, 0.3);
    --b47-backdrop-primary-light-heavy:          rgba(90, 174, 179, 0.4);

    /* --- Backdrop Primary Dark --- */
    --b47-backdrop-primary-dark-subtle:          rgba(12, 32, 34, 0.1);
    --b47-backdrop-primary-dark:                 rgba(12, 32, 34, 0.2);
    --b47-backdrop-primary-dark-strong:          rgba(12, 32, 34, 0.3);
    --b47-backdrop-primary-dark-heavy:           rgba(12, 32, 34, 0.4);

    /* --- Backdrop Secondary Light --- */
    --b47-backdrop-secondary-light-subtle:       rgba(196, 136, 48, 0.1);
    --b47-backdrop-secondary-light:              rgba(196, 136, 48, 0.2);
    --b47-backdrop-secondary-light-strong:       rgba(196, 136, 48, 0.3);
    --b47-backdrop-secondary-light-heavy:        rgba(196, 136, 48, 0.4);

    /* --- Backdrop Secondary Dark --- */
    --b47-backdrop-secondary-dark-subtle:        rgba(15, 10, 2, 0.1);
    --b47-backdrop-secondary-dark:               rgba(15, 10, 2, 0.2);
    --b47-backdrop-secondary-dark-strong:        rgba(15, 10, 2, 0.3);
    --b47-backdrop-secondary-dark-heavy:         rgba(15, 10, 2, 0.4);

    /* --- Borders --- */
    --b47-border-width-xs:             0.5px;
    --b47-border-width:                1px;
    --b47-border-width-m:              2px;
    --b47-border-width-l:              3px;

    --b47-radius-none:                 0px;
    --b47-radius-2xs:                  2px;
    --b47-radius-xs:                   4px;
    --b47-radius-s:                    6px;
    --b47-radius-m:                    8px;
    --b47-radius-l:                    10px;
    --b47-radius-xl:                   12px;
    --b47-radius-2xl:                  16px;
    --b47-radius-3xl:                  20px;
    --b47-radius-4xl:                  24px;
    --b47-radius-max:                  9999px;

    --b47-border-color-subtle:         var(--b47-gray-800);
    --b47-border-color:                var(--b47-gray-700);
    --b47-border-color-strong:         var(--b47-gray-600);
    --b47-border-color-primary:        var(--b47-primary-500);

    --b47-border-inverse-color-subtle: var(--b47-gray-100);
    --b47-border-inverse-color:        var(--b47-gray-200);
    --b47-border-inverse-color-strong: var(--b47-gray-400);

    --b47-gradient-border-primary:           linear-gradient(to bottom, rgba(0,0,0,0.08), rgba(0,0,0,0));
    --b47-gradient-border-inverse:           linear-gradient(to bottom, rgba(255,255,255,0.15), rgba(255,255,255,0));
    --b47-gradient-border-btn-inverse:       linear-gradient(to bottom, rgba(255,255,255,0.12), rgba(255,255,255,0));
    --b47-gradient-border-btn-inverse-hover: linear-gradient(to bottom, rgba(255,255,255,0.30), rgba(255,255,255,0.05));

    /* --- Shadows --- */
    --b47-shadow-xs:                   0 1px 2px 0 rgba(20, 19, 24, 0.05);
    --b47-shadow-s:                    0 1px 3px 0 rgba(20, 19, 24, 0.10), 
                                       0 1px 2px 0 rgba(20, 19, 24, 0.06);
    --b47-shadow-m:                    0 4px 8px -2px rgba(20, 19, 24, 0.10), 
                                       0 2px 4px -2px rgba(20, 19, 24, 0.06);
    --b47-shadow-l:                    0 12px 16px -4px rgba(20, 19, 24, 0.08), 
                                       0 4px 6px -2px rgba(20, 19, 24, 0.03);
    --b47-shadow-xl:                   0 20px 24px -4px rgba(20, 19, 24, 0.08), 
                                       0 8px 8px -4px rgba(20, 19, 24, 0.03);
    --b47-shadow-2xl:                  0 24px 48px -12px rgba(20, 19, 24, 0.18);
    --b47-shadow-3xl:                  0 32px 64px -12px rgba(20, 19, 24, 0.14);
    --b47-shadow-primary:              0 0 0 4px rgba(90, 174, 179, 0.20);
    --b47-shadow-inner:                inset 0 2px 4px 0 rgba(0, 0, 0, 0.04);
    --b47-shadow-button:               0 0 0 1px rgba(16,24,40,0.18),
                                       0 -2px 0 0 rgba(16,24,40,0.05),
                                       0  1px 2px 0 rgba(16,24,40,0.05);
    
/* ---------------------------- COLOR SHORTCUTS ---------------------------- */

    /* --- Brand Colors --- */
    --b47-primary-color:                var(--b47-primary-500);
    --b47-primary-color-light:          var(--b47-primary-400);
    --b47-primary-color-dark:           var(--b47-primary-600);
    --b47-primary-color-hover:          var(--b47-primary-400);
    --b47-secondary-color:              var(--b47-secondary-500);
    --b47-secondary-color-light:        var(--b47-secondary-400);
    --b47-secondary-color-dark:         var(--b47-secondary-600);
    --b47-secondary-color-hover:        var(--b47-secondary-400);
    --b47-tertiary-color:               var(--b47-tertiary-500);
    --b47-tertiary-color-light:         var(--b47-tertiary-400);
    --b47-tertiary-color-dark:          var(--b47-tertiary-600);
    --b47-tertiary-color-hover:         var(--b47-tertiary-400);

    /* --- Text Colors --- */
    --b47-overline-color:               var(--b47-gray-50);
    --b47-heading-color:                var(--b47-gray-50);
    --b47-primary-text-color:           var(--b47-gray-500);
    --b47-secondary-text-color:         var(--b47-gray-50);
    --b47-tertiary-text-color:          var(--b47-gray-600);
    --b47-disabled-text-color:          var(--b47-gray-700);
    --b47-muted-text-color:             var(--b47-gray-600);
    
    /* --- Inverse Text Colors --- */
    --b47-heading-inverse-color:        var(--b47-gray-1000);
    --b47-primary-text-inverse-color:   var(--b47-gray-900);
    --b47-secondary-text-inverse-color: var(--b47-gray-700);
    --b47-tertiary-text-inverse-color:  var(--b47-gray-600);
    --b47-disabled-text-inverse-color:  var(--b47-gray-300);
    --b47-muted-text-inverse-color:     var(--b47-gray-600);

    /* --- Links --- */
    --b47-link-color:                   var(--b47-gray-100);
    --b47-link-hover-color:             var(--b47-gray-50);
    --b47-link-inverse-color:           var(--b47-gray-1000);
    --b47-link-inverse-color-hover:     var(--b47-gray-950);

    /* --- Background Colors --- */
    --b47-white-background-color:       var(--b47-background-subtle);
    --b47-primary-background-color:     var(--b47-background);
    --b47-muted-background-color:       var(--b47-background-muted);
    --b47-secondary-background-color:   var(--b47-background-strong);
    --b47-tertiary-background-color:    var(--b47-gray-800);
    --b47-highlight-background-color:   var(--b47-gray-700);
    --b47-black-background-color:       var(--b47-background-heavy);
    --b47-inverse-background-color:     var(--b47-background-inverse);

    /* --- Borders --- */
    --b47-subtle-border:                var(--b47-border-width) solid var(--b47-border-color-subtle);
    --b47-border:                       var(--b47-border-width) solid var(--b47-border-color);
    --b47-strong-border:                var(--b47-border-width) solid var(--b47-border-color-strong);
    --b47-primary-border:               var(--b47-border-width) solid var(--b47-border-color-primary);
    --b47-secondary-border:             var(--b47-border-width) solid var(--b47-secondary-color);
    --b47-tertiary-border:              var(--b47-border-width) solid var(--b47-tertiary-color);
    --b47-white-border:                 var(--b47-border-width) solid var(--b47-white);
    --b47-black-border:                 var(--b47-border-width) solid var(--b47-black);

    /* --- Inside Borders --- */
    --b47-subtle-inside-border:         inset 0 0 0 var(--b47-border-width) var(--b47-border-color-subtle);
    --b47-inside-border:                inset 0 0 0 var(--b47-border-width) var(--b47-border-color);
    --b47-strong-inside-border:         inset 0 0 0 var(--b47-border-width) var(--b47-border-color-strong);
    --b47-primary-inside-border:        inset 0 0 0 var(--b47-border-width) var(--b47-border-color-primary);
    --b47-secondary-inside-border:      inset 0 0 0 var(--b47-border-width) var(--b47-secondary-color);
    --b47-tertiary-inside-border:       inset 0 0 0 var(--b47-border-width) var(--b47-tertiary-color);
    --b47-white-inside-border:          inset 0 0 0 var(--b47-border-width) var(--b47-white);
    --b47-black-inside-border:          inset 0 0 0 var(--b47-border-width) var(--b47-black);

    /* --- Borders — inverse context --- */
    --b47-subtle-border-inverse:         var(--b47-border-width) solid var(--b47-border-inverse-color-subtle);
    --b47-border-inverse:                var(--b47-border-width) solid var(--b47-border-inverse-color);
    --b47-strong-border-inverse:         var(--b47-border-width) solid var(--b47-border-inverse-color-strong);

    /* --- Inside Borders — inverse context --- */
    --b47-subtle-inside-border-inverse:  inset 0 0 0 var(--b47-border-width) var(--b47-border-inverse-color-subtle);
    --b47-inside-border-inverse:         inset 0 0 0 var(--b47-border-width) var(--b47-border-inverse-color);
    --b47-strong-inside-border-inverse:  inset 0 0 0 var(--b47-border-width) var(--b47-border-inverse-color-strong);
}

/* ----------------------------- COLOR CLASSES ----------------------------- */

/* --- Background Utilities --- */
.is-bg-white                                                  { background-color: var(--b47-white-background-color) !important; }
.is-bg-primary                                                { background-color: var(--b47-primary-background-color) !important; }
.is-bg-muted                                                  { background-color: var(--b47-muted-background-color) !important; }
.is-bg-secondary                                              { background-color: var(--b47-secondary-background-color) !important; }
.is-bg-tertiary                                               { background-color: var(--b47-tertiary-background-color) !important; }
.is-bg-highlight                                              { background-color: var(--b47-highlight-background-color) !important; }
.is-bg-inverse                                                { background-color: var(--b47-inverse-background-color) !important; }
.is-bg-black                                                  { background-color: var(--b47-black-background-color) !important; }

/* --- Color Brand Backgrounds --- */
.is-bg-primary-color                                          { background-color: var(--b47-primary-color) !important; }
.is-bg-secondary-color                                        { background-color: var(--b47-secondary-color) !important; }

/* --- Primary Gradient Backgrounds --- */
.is-bg-gradient-primary-subtle                                { background: var(--b47-gradient-primary-subtle) !important; }
.is-bg-gradient-primary                                       { background: var(--b47-gradient-primary) !important; }
.is-bg-gradient-primary-strong                                { background: var(--b47-gradient-primary-strong) !important; }
.is-bg-gradient-primary-duo                                   { background: var(--b47-gradient-primary-duo) !important; }
.is-bg-gradient-primary-swoosh                                { background: var(--b47-gradient-primary-swoosh) !important; }

/* --- Secondary Gradient Backgrounds --- */
.is-bg-gradient-secondary-subtle                              { background: var(--b47-gradient-secondary-subtle) !important; }
.is-bg-gradient-secondary                                     { background: var(--b47-gradient-secondary) !important; }
.is-bg-gradient-secondary-strong                              { background: var(--b47-gradient-secondary-strong) !important; }
.is-bg-gradient-secondary-duo                                 { background: var(--b47-gradient-secondary-duo) !important; }
.is-bg-gradient-secondary-swoosh                              { background: var(--b47-gradient-secondary-swoosh) !important; }

/* --- Hover Background Utilities --- */
[class*="is-hover-bg-"]                                       { transition: background-color var(--b47-transition-fast); }
.is-hover-bg-white:hover                                      { background-color: var(--b47-white-background-color) !important; }
.is-hover-bg-primary:hover                                    { background-color: var(--b47-primary-background-color) !important; }
.is-hover-bg-muted:hover                                      { background-color: var(--b47-muted-background-color) !important; }
.is-hover-bg-secondary:hover                                  { background-color: var(--b47-secondary-background-color) !important; }
.is-hover-bg-inverse:hover                                    { background-color: var(--b47-inverse-background-color) !important; }
.is-hover-bg-black:hover                                      { background-color: var(--b47-black-background-color) !important; }
.is-hover-bg-primary-color:hover                              { background-color: var(--b47-primary-color) !important; }
.is-hover-bg-secondary-color:hover                            { background-color: var(--b47-secondary-color) !important; }

/* --- Overlay Utilities --- */
.has-overlay                                                  { position: relative; }
.has-overlay > .e-con-inner                                   { position: relative; z-index: 1; }
.has-overlay::before                                          { content: ""; position: absolute; inset: 0; z-index: 0; background: var(--b47-overlay-dark); }

/* Flat light overlays */
.has-overlay.is-overlay-light-subtle::before                  { background: var(--b47-overlay-light-subtle); }
.has-overlay.is-overlay-light::before                         { background: var(--b47-overlay-light); }
.has-overlay.is-overlay-light-strong::before                  { background: var(--b47-overlay-light-strong); }
.has-overlay.is-overlay-light-heavy::before                   { background: var(--b47-overlay-light-heavy); }

/* Flat dark overlays */
.has-overlay.is-overlay-dark-subtle::before                   { background: var(--b47-overlay-dark-subtle); }
.has-overlay.is-overlay-dark::before                          { background: var(--b47-overlay-dark); }
.has-overlay.is-overlay-dark-strong::before                   { background: var(--b47-overlay-dark-strong); }
.has-overlay.is-overlay-dark-heavy::before                    { background: var(--b47-overlay-dark-heavy); }

/* Gradient light overlays */
.has-overlay.is-overlay-light-subtle-gradient::before         { background: var(--b47-gradient-overlay-light-subtle); }
.has-overlay.is-overlay-light-gradient::before                { background: var(--b47-gradient-overlay-light); }
.has-overlay.is-overlay-light-strong-gradient::before         { background: var(--b47-gradient-overlay-light-strong); }
.has-overlay.is-overlay-light-heavy-gradient::before          { background: var(--b47-gradient-overlay-light-heavy); }

/* Gradient dark overlays */
.has-overlay.is-overlay-dark-subtle-gradient::before          { background: var(--b47-gradient-overlay-dark-subtle); }
.has-overlay.is-overlay-dark-gradient::before                 { background: var(--b47-gradient-overlay-dark); }
.has-overlay.is-overlay-dark-strong-gradient::before          { background: var(--b47-gradient-overlay-dark-strong); }
.has-overlay.is-overlay-dark-heavy-gradient::before           { background: var(--b47-gradient-overlay-dark-heavy); }

/* Gradient primary overlays */
.has-overlay.is-overlay-primary-subtle-gradient::before       { background: var(--b47-gradient-overlay-primary-subtle); }
.has-overlay.is-overlay-primary-gradient::before              { background: var(--b47-gradient-overlay-primary); }
.has-overlay.is-overlay-primary-strong-gradient::before       { background: var(--b47-gradient-overlay-primary-strong); }
.has-overlay.is-overlay-primary-heavy-gradient::before        { background: var(--b47-gradient-overlay-primary-heavy); }
.has-overlay.is-overlay-primary-duo-gradient::before          { background: var(--b47-gradient-overlay-primary-duo); }
.has-overlay.is-overlay-primary-duo-strong-gradient::before   { background: var(--b47-gradient-overlay-primary-duo-strong); }
.has-overlay.is-overlay-primary-swoosh-gradient::before       { background: var(--b47-gradient-overlay-primary-swoosh); }

/* Gradient secondary overlays */
.has-overlay.is-overlay-secondary-subtle-gradient::before     { background: var(--b47-gradient-overlay-secondary-subtle); }
.has-overlay.is-overlay-secondary-gradient::before            { background: var(--b47-gradient-overlay-secondary); }
.has-overlay.is-overlay-secondary-strong-gradient::before     { background: var(--b47-gradient-overlay-secondary-strong); }
.has-overlay.is-overlay-secondary-heavy-gradient::before      { background: var(--b47-gradient-overlay-secondary-heavy); }
.has-overlay.is-overlay-secondary-duo-gradient::before        { background: var(--b47-gradient-overlay-secondary-duo); }
.has-overlay.is-overlay-secondary-duo-strong-gradient::before { background: var(--b47-gradient-overlay-secondary-duo-strong); }
.has-overlay.is-overlay-secondary-swoosh-gradient::before     { background: var(--b47-gradient-overlay-secondary-swoosh); }

/* --- Backdrop Utilities --- */
.has-backdrop                                                 { position: relative; }
.has-backdrop > .e-con-inner                                  { position: relative; z-index: 1; }
.has-backdrop::before                                         { content: ""; position: absolute; inset: 0; z-index: 0; backdrop-filter: var(--b47-blur-s); -webkit-backdrop-filter: var(--b47-blur-s); background: var(--b47-backdrop-light); }

/* Light variants */
.has-backdrop.is-backdrop-light-subtle::before                { backdrop-filter: var(--b47-blur-xs); -webkit-backdrop-filter: var(--b47-blur-xs); background: var(--b47-backdrop-light-subtle); }
.has-backdrop.is-backdrop-light::before                       { backdrop-filter: var(--b47-blur-s);  -webkit-backdrop-filter: var(--b47-blur-s);  background: var(--b47-backdrop-light); }
.has-backdrop.is-backdrop-light-strong::before                { backdrop-filter: var(--b47-blur-m);  -webkit-backdrop-filter: var(--b47-blur-m);  background: var(--b47-backdrop-light-strong); }
.has-backdrop.is-backdrop-light-heavy::before                 { backdrop-filter: var(--b47-blur-l);  -webkit-backdrop-filter: var(--b47-blur-l);  background: var(--b47-backdrop-light-heavy); }

/* Dark variants */
.has-backdrop.is-backdrop-dark-subtle::before                 { backdrop-filter: var(--b47-blur-xs); -webkit-backdrop-filter: var(--b47-blur-xs); background: var(--b47-backdrop-dark-subtle); }
.has-backdrop.is-backdrop-dark::before                        { backdrop-filter: var(--b47-blur-s);  -webkit-backdrop-filter: var(--b47-blur-s);  background: var(--b47-backdrop-dark); }
.has-backdrop.is-backdrop-dark-strong::before                 { backdrop-filter: var(--b47-blur-m);  -webkit-backdrop-filter: var(--b47-blur-m);  background: var(--b47-backdrop-dark-strong); }
.has-backdrop.is-backdrop-dark-heavy::before                  { backdrop-filter: var(--b47-blur-l);  -webkit-backdrop-filter: var(--b47-blur-l);  background: var(--b47-backdrop-dark-heavy); }

/* Primary light variants */
.has-backdrop.is-backdrop-primary-light-subtle::before        { backdrop-filter: var(--b47-blur-xs); -webkit-backdrop-filter: var(--b47-blur-xs); background: var(--b47-backdrop-primary-light-subtle); }
.has-backdrop.is-backdrop-primary-light::before               { backdrop-filter: var(--b47-blur-s);  -webkit-backdrop-filter: var(--b47-blur-s);  background: var(--b47-backdrop-primary-light); }
.has-backdrop.is-backdrop-primary-light-strong::before        { backdrop-filter: var(--b47-blur-m);  -webkit-backdrop-filter: var(--b47-blur-m);  background: var(--b47-backdrop-primary-light-strong); }
.has-backdrop.is-backdrop-primary-light-heavy::before         { backdrop-filter: var(--b47-blur-l);  -webkit-backdrop-filter: var(--b47-blur-l);  background: var(--b47-backdrop-primary-light-heavy); }

/* Primary dark variants */
.has-backdrop.is-backdrop-primary-dark-subtle::before         { backdrop-filter: var(--b47-blur-xs); -webkit-backdrop-filter: var(--b47-blur-xs); background: var(--b47-backdrop-primary-dark-subtle); }
.has-backdrop.is-backdrop-primary-dark::before                { backdrop-filter: var(--b47-blur-s);  -webkit-backdrop-filter: var(--b47-blur-s);  background: var(--b47-backdrop-primary-dark); }
.has-backdrop.is-backdrop-primary-dark-strong::before         { backdrop-filter: var(--b47-blur-m);  -webkit-backdrop-filter: var(--b47-blur-m);  background: var(--b47-backdrop-primary-dark-strong); }
.has-backdrop.is-backdrop-primary-dark-heavy::before          { backdrop-filter: var(--b47-blur-l);  -webkit-backdrop-filter: var(--b47-blur-l);  background: var(--b47-backdrop-primary-dark-heavy); }

/* Secondary light variants */
.has-backdrop.is-backdrop-secondary-light-subtle::before      { backdrop-filter: var(--b47-blur-xs); -webkit-backdrop-filter: var(--b47-blur-xs); background: var(--b47-backdrop-secondary-light-subtle); }
.has-backdrop.is-backdrop-secondary-light::before             { backdrop-filter: var(--b47-blur-s);  -webkit-backdrop-filter: var(--b47-blur-s);  background: var(--b47-backdrop-secondary-light); }
.has-backdrop.is-backdrop-secondary-light-strong::before      { backdrop-filter: var(--b47-blur-m);  -webkit-backdrop-filter: var(--b47-blur-m);  background: var(--b47-backdrop-secondary-light-strong); }
.has-backdrop.is-backdrop-secondary-light-heavy::before       { backdrop-filter: var(--b47-blur-l);  -webkit-backdrop-filter: var(--b47-blur-l);  background: var(--b47-backdrop-secondary-light-heavy); }

/* Secondary dark variants */
.has-backdrop.is-backdrop-secondary-dark-subtle::before       { backdrop-filter: var(--b47-blur-xs); -webkit-backdrop-filter: var(--b47-blur-xs); background: var(--b47-backdrop-secondary-dark-subtle); }
.has-backdrop.is-backdrop-secondary-dark::before              { backdrop-filter: var(--b47-blur-s);  -webkit-backdrop-filter: var(--b47-blur-s);  background: var(--b47-backdrop-secondary-dark); }
.has-backdrop.is-backdrop-secondary-dark-strong::before       { backdrop-filter: var(--b47-blur-m);  -webkit-backdrop-filter: var(--b47-blur-m);  background: var(--b47-backdrop-secondary-dark-strong); }
.has-backdrop.is-backdrop-secondary-dark-heavy::before        { backdrop-filter: var(--b47-blur-l);  -webkit-backdrop-filter: var(--b47-blur-l);  background: var(--b47-backdrop-secondary-dark-heavy); }

/* --- Text & Icon Utilities --- */
body                                                          { color: var(--b47-primary-text-color); padding: var(--b47-body-padding); }
.elementor-icon svg path                                      { fill: var(--b47-heading-color); }

.is-color-white .elementor-heading-title, .elementor-heading-title.is-color-white,
.is-color-white p, p.is-color-white,
.is-color-white .elementor-widget-text-editor span,
.is-color-white .elementor-widget-heading span,
.is-color-white .elementor-widget-theme-post-content span,
span.is-color-white,
.is-color-white .elementor-icon i                             { color: var(--b47-white) !important; }
.is-color-white .elementor-icon svg path                      { fill: var(--b47-white) !important; }

.is-color-black .elementor-heading-title, .elementor-heading-title.is-color-black,
.is-color-black p, p.is-color-black,
.is-color-black .elementor-widget-text-editor span,
.is-color-black .elementor-widget-heading span,
.is-color-black .elementor-widget-theme-post-content span,
span.is-color-black,
.is-color-black .elementor-icon i                             { color: var(--b47-black) !important; }
.is-color-black .elementor-icon svg path                      { fill: var(--b47-black) !important; }

.is-color-primary .elementor-heading-title, .elementor-heading-title.is-color-primary,
.is-color-primary p, p.is-color-primary,
.is-color-primary .elementor-widget-text-editor span,
.is-color-primary .elementor-widget-heading span,
.is-color-primary .elementor-widget-theme-post-content span,
span.is-color-primary,
.is-color-primary .elementor-icon i                { color: var(--b47-primary-color) !important; }
.is-color-primary .elementor-icon svg path         { fill: var(--b47-primary-color) !important; }

.is-color-secondary .elementor-heading-title, .elementor-heading-title.is-color-secondary,
.is-color-secondary p, p.is-color-secondary,
.is-color-secondary .elementor-widget-text-editor span,
.is-color-secondary .elementor-widget-heading span,
.is-color-secondary .elementor-widget-theme-post-content span,
span.is-color-secondary,
.is-color-secondary .elementor-icon i              { color: var(--b47-secondary-color) !important; }
.is-color-secondary .elementor-icon svg path       { fill: var(--b47-secondary-color) !important; }

.is-color-tertiary .elementor-heading-title, .elementor-heading-title.is-color-tertiary,
.is-color-tertiary p, p.is-color-tertiary,
.is-color-tertiary .elementor-widget-text-editor span,
.is-color-tertiary .elementor-widget-heading span,
.is-color-tertiary .elementor-widget-theme-post-content span,
span.is-color-tertiary,
.is-color-tertiary .elementor-icon i               { color: var(--b47-tertiary-color) !important; }
.is-color-tertiary .elementor-icon svg path        { fill: var(--b47-tertiary-color) !important; }

.is-color-heading .elementor-heading-title, .elementor-heading-title.is-color-heading,
.is-color-heading p, p.is-color-heading,
.is-color-heading .elementor-widget-text-editor span,
.is-color-heading .elementor-widget-heading span,
.is-color-heading .elementor-widget-theme-post-content span,
span.is-color-heading,
.is-color-heading .elementor-icon i                { color: var(--b47-heading-color) !important; }
.is-color-heading .elementor-icon svg path         { fill: var(--b47-heading-color) !important; }

.is-color-body .elementor-heading-title, .elementor-heading-title.is-color-body,
.is-color-body p, p.is-color-body,
.is-color-body .elementor-widget-text-editor span,
.is-color-body .elementor-widget-heading span,
.is-color-body .elementor-widget-theme-post-content span,
span.is-color-body,
.is-color-body .elementor-icon i                   { color: var(--b47-primary-text-color) !important; }
.is-color-body .elementor-icon svg path            { fill: var(--b47-primary-text-color) !important; }

.is-color-body-s .elementor-heading-title, .elementor-heading-title.is-color-body-s,
.is-color-body-s p, p.is-color-body-s,
.is-color-body-s .elementor-widget-text-editor span,
.is-color-body-s .elementor-widget-heading span,
.is-color-body-s .elementor-widget-theme-post-content span,
span.is-color-body-s,
.is-color-body-s .elementor-icon i                 { color: var(--b47-secondary-text-color) !important; }
.is-color-body-s .elementor-icon svg path          { fill: var(--b47-secondary-text-color) !important; }

.is-color-body-xs .elementor-heading-title, .elementor-heading-title.is-color-body-xs,
.is-color-body-xs p, p.is-color-body-xs,
.is-color-body-xs .elementor-widget-text-editor span,
.is-color-body-xs .elementor-widget-heading span,
.is-color-body-xs .elementor-widget-theme-post-content span,
span.is-color-body-xs,
.is-color-body-xs .elementor-icon i                { color: var(--b47-tertiary-text-color) !important; }
.is-color-body-xs .elementor-icon svg path         { fill: var(--b47-tertiary-text-color) !important; }

.is-color-overline .elementor-heading-title, .elementor-heading-title.is-color-overline,
.is-color-overline p, p.is-color-overline,
.is-color-overline .elementor-widget-text-editor span,
.is-color-overline .elementor-widget-heading span,
.is-color-overline .elementor-widget-theme-post-content span,
span.is-color-overline,
.is-color-overline .elementor-icon i               { color: var(--b47-overline-color) !important; }
.is-color-overline .elementor-icon svg path        { fill: var(--b47-overline-color) !important; }

.is-color-muted .elementor-heading-title, .elementor-heading-title.is-color-muted,
.is-color-muted p, p.is-color-muted,
.is-color-muted .elementor-widget-text-editor span,
.is-color-muted .elementor-widget-heading span,
.is-color-muted .elementor-widget-theme-post-content span,
span.is-color-muted,
.is-color-muted .elementor-icon i                  { color: var(--b47-muted-text-color) !important; }
.is-color-muted .elementor-icon svg path           { fill: var(--b47-muted-text-color) !important; }

.is-color-disabled .elementor-heading-title, .elementor-heading-title.is-color-disabled,
.is-color-disabled p, p.is-color-disabled,
.is-color-disabled .elementor-widget-text-editor span,
.is-color-disabled .elementor-widget-heading span,
.is-color-disabled .elementor-widget-theme-post-content span,
span.is-color-disabled,
.is-color-disabled .elementor-icon i               { color: var(--b47-disabled-text-color) !important; }
.is-color-disabled .elementor-icon svg path        { fill: var(--b47-disabled-text-color) !important; }

.is-color-inverse .elementor-widget-text-editor strong,
.is-color-inverse .elementor-widget-text-editor b,
.is-color-inverse .elementor-widget-theme-post-content strong,
.is-color-inverse .elementor-widget-theme-post-content b      { color: var(--b47-heading-inverse-color) !important; }

.is-color-inverse .elementor-heading-title,
.elementor-heading-title.is-color-inverse                     { color: var(--b47-heading-inverse-color) !important; }
.is-color-inverse .elementor-icon svg path                    { fill: var(--b47-heading-inverse-color) !important; }

.is-color-inverse p, p.is-color-inverse,
.is-color-inverse .elementor-widget-text-editor span,
.is-color-inverse .elementor-widget-heading span,
.is-color-inverse .elementor-widget-theme-post-content span,
span.is-color-inverse,
.is-color-inverse .elementor-icon i                           { color: var(--b47-primary-text-inverse-color) !important; }

/* Stepped text — body-s inside inverse */
.is-color-inverse .is-style-body-s .elementor-heading-title,
.is-color-inverse .is-style-body-s p,
.is-color-inverse .is-style-body-s .elementor-widget-text-editor span,
.is-color-inverse .is-style-body-s .elementor-widget-heading span,
.is-color-inverse .is-style-body-s .elementor-widget-theme-post-content span,
.is-color-inverse .is-style-body-s .elementor-icon i          { color: var(--b47-secondary-text-inverse-color) !important; }

/* Stepped text — body-xs inside inverse */
.is-color-inverse .is-style-body-xs .elementor-heading-title,
.is-color-inverse .is-style-body-xs p,
.is-color-inverse .is-style-body-xs .elementor-widget-text-editor span,
.is-color-inverse .is-style-body-xs .elementor-widget-heading span,
.is-color-inverse .is-style-body-xs .elementor-widget-theme-post-content span,
.is-color-inverse .is-style-body-xs .elementor-icon i         { color: var(--b47-tertiary-text-inverse-color) !important; }

/* --- Divider Color Utilities --- */
.elementor-divider-separator                                  { border-color: var(--b47-border-color) !important; }
.is-divider-subtle .elementor-divider-separator               { border-color: var(--b47-border-color-subtle) !important; }
.is-divider-strong .elementor-divider-separator               { border-color: var(--b47-border-color-strong) !important; }
.is-divider-primary .elementor-divider-separator              { border-color: var(--b47-primary-color) !important; }
.is-divider-secondary .elementor-divider-separator            { border-color: var(--b47-secondary-color) !important; }
.is-divider-tertiary .elementor-divider-separator             { border-color: var(--b47-tertiary-color) !important; }
.is-divider-white .elementor-divider-separator                { border-color: var(--b47-white) !important; }
.is-divider-black .elementor-divider-separator                { border-color: var(--b47-black) !important; }
.is-color-inverse .elementor-divider-separator                { border-color: var(--b47-border-inverse-color) !important; }
.is-color-inverse .is-divider-subtle .elementor-divider-separator,
.is-color-inverse.is-divider-subtle .elementor-divider-separator                { border-color: var(--b47-border-inverse-color-subtle) !important; }
.is-color-inverse .is-divider-strong .elementor-divider-separator,
.is-color-inverse.is-divider-strong .elementor-divider-separator                { border-color: var(--b47-border-inverse-color-strong) !important; }

/* --- Hover Color Utilities — text --- */
[class*="is-hover-"] .elementor-heading-title,
[class*="is-hover-"] p,
[class*="is-hover-"] .elementor-widget-text-editor span,
[class*="is-hover-"] .elementor-widget-heading span,
[class*="is-hover-"] .elementor-widget-theme-post-content span      { transition: color var(--b47-transition-fast); }

.is-hover-primary:hover .elementor-heading-title,
.is-hover-primary:hover p,
.is-hover-primary:hover .elementor-widget-text-editor span,
.is-hover-primary:hover .elementor-widget-heading span,
.is-hover-primary:hover .elementor-widget-theme-post-content span   { color: var(--b47-primary-color) !important; }

.is-hover-secondary:hover .elementor-heading-title,
.is-hover-secondary:hover p,
.is-hover-secondary:hover .elementor-widget-text-editor span,
.is-hover-secondary:hover .elementor-widget-heading span,
.is-hover-secondary:hover .elementor-widget-theme-post-content span { color: var(--b47-secondary-color) !important; }

.is-hover-tertiary:hover .elementor-heading-title,
.is-hover-tertiary:hover p,
.is-hover-tertiary:hover .elementor-widget-text-editor span,
.is-hover-tertiary:hover .elementor-widget-heading span,
.is-hover-tertiary:hover .elementor-widget-theme-post-content span  { color: var(--b47-tertiary-color) !important; }

.is-hover-muted:hover .elementor-heading-title,
.is-hover-muted:hover p,
.is-hover-muted:hover .elementor-widget-text-editor span,
.is-hover-muted:hover .elementor-widget-heading span,
.is-hover-muted:hover .elementor-widget-theme-post-content span     { color: var(--b47-muted-text-color) !important; }

.is-hover-inverse:hover .elementor-heading-title                    { color: var(--b47-heading-inverse-color) !important; }
.is-hover-inverse:hover p,
.is-hover-inverse:hover .elementor-widget-text-editor span,
.is-hover-inverse:hover .elementor-widget-heading span,
.is-hover-inverse:hover .elementor-widget-theme-post-content span   { color: var(--b47-primary-text-inverse-color) !important; }

.is-hover-white:hover .elementor-heading-title                      { color: var(--b47-white) !important; }
.is-hover-white:hover p,
.is-hover-white:hover .elementor-widget-text-editor span,
.is-hover-white:hover .elementor-widget-heading span,
.is-hover-white:hover .elementor-widget-theme-post-content span     { color: var(--b47-white) !important; }

.is-hover-black:hover .elementor-heading-title                      { color: var(--b47-black) !important; }
.is-hover-black:hover p,
.is-hover-black:hover .elementor-widget-text-editor span,
.is-hover-black:hover .elementor-widget-heading span,
.is-hover-black:hover .elementor-widget-theme-post-content span     { color: var(--b47-black) !important; }

/* --- Hover Color Utilities — icons & pseudo --- */
[class*="is-hover-icon-"] .elementor-icon svg path,
[class*="is-hover-icon-"] .elementor-icon-list-icon svg path,
[class*="is-hover-icon-"]::before,
[class*="is-hover-icon-"]::after                                    { transition: fill var(--b47-transition-fast), color var(--b47-transition-fast); }

.is-hover-icon-primary:hover .elementor-icon svg path,
.is-hover-icon-primary:hover .elementor-icon-list-icon svg path     { fill: var(--b47-primary-color) !important; }
.is-hover-icon-primary:hover::before,
.is-hover-icon-primary:hover::after                                 { color: var(--b47-primary-color) !important; }

.is-hover-icon-secondary:hover .elementor-icon svg path,
.is-hover-icon-secondary:hover .elementor-icon-list-icon svg path   { fill: var(--b47-secondary-color) !important; }
.is-hover-icon-secondary:hover::before,
.is-hover-icon-secondary:hover::after                               { color: var(--b47-secondary-color) !important; }

.is-hover-icon-tertiary:hover .elementor-icon svg path,
.is-hover-icon-tertiary:hover .elementor-icon-list-icon svg path    { fill: var(--b47-tertiary-color) !important; }
.is-hover-icon-tertiary:hover::before,
.is-hover-icon-tertiary:hover::after                                { color: var(--b47-tertiary-color) !important; }

.is-hover-icon-muted:hover .elementor-icon svg path,
.is-hover-icon-muted:hover .elementor-icon-list-icon svg path       { fill: var(--b47-muted-text-color) !important; }
.is-hover-icon-muted:hover::before,
.is-hover-icon-muted:hover::after                                   { color: var(--b47-muted-text-color) !important; }

.is-hover-icon-inverse:hover .elementor-icon svg path,
.is-hover-icon-inverse:hover .elementor-icon-list-icon svg path     { fill: var(--b47-primary-text-inverse-color) !important; }
.is-hover-icon-inverse:hover::before,
.is-hover-icon-inverse:hover::after                                 { color: var(--b47-primary-text-inverse-color) !important; }

.is-hover-icon-white:hover .elementor-icon svg path,
.is-hover-icon-white:hover .elementor-icon-list-icon svg path       { fill: var(--b47-white) !important; }
.is-hover-icon-white:hover::before,
.is-hover-icon-white:hover::after                                   { color: var(--b47-white) !important; }

.is-hover-icon-black:hover .elementor-icon svg path,
.is-hover-icon-black:hover .elementor-icon-list-icon svg path       { fill: var(--b47-black) !important; }
.is-hover-icon-black:hover::before,
.is-hover-icon-black:hover::after                                   { color: var(--b47-black) !important; }

/* --- Divider Hover Utilities --- */
[class*="is-hover-divider-"] .elementor-divider-separator                       { transition: border-color var(--b47-transition-fast); }
.is-hover-divider-subtle:hover .elementor-divider-separator                     { border-color: var(--b47-border-color-subtle) !important; }
.is-hover-divider-strong:hover .elementor-divider-separator                     { border-color: var(--b47-border-color-strong) !important; }
.is-hover-divider-primary:hover .elementor-divider-separator                    { border-color: var(--b47-primary-color) !important; }
.is-hover-divider-secondary:hover .elementor-divider-separator                  { border-color: var(--b47-secondary-color) !important; }
.is-hover-divider-tertiary:hover .elementor-divider-separator                   { border-color: var(--b47-tertiary-color) !important; }
.is-hover-divider-white:hover .elementor-divider-separator                      { border-color: var(--b47-white) !important; }
.is-hover-divider-black:hover .elementor-divider-separator                      { border-color: var(--b47-black) !important; }
.is-color-inverse .is-hover-divider-subtle:hover .elementor-divider-separator,
.is-color-inverse.is-hover-divider-subtle:hover .elementor-divider-separator    { border-color: var(--b47-border-inverse-color-subtle) !important; }
.is-color-inverse .is-hover-divider-strong:hover .elementor-divider-separator,
.is-color-inverse.is-hover-divider-strong:hover .elementor-divider-separator    { border-color: var(--b47-border-inverse-color-strong) !important; }

/* --- Links Utilities --- */
.is-color-link a, a.is-color-link,
.is-color-link .elementor-widget-text-editor span,
.is-color-link .elementor-widget-heading span,
.is-color-link .elementor-widget-theme-post-content span,
span.is-color-link                                                              { color: var(--b47-link-color) !important; }
.is-color-link a:hover:not(.elementor-button)                                   { color: var(--b47-link-hover-color) !important; }
.is-color-inverse .is-color-link a, .is-color-inverse a.is-color-link           { color: var(--b47-link-inverse-color) !important; }
.is-color-inverse .is-color-link a:hover:not(.elementor-button),
.is-color-inverse a.is-color-link:hover                                         { color: var(--b47-link-inverse-color-hover) !important; }
.is-color-inverse a, a.is-color-inverse                                         { color: var(--b47-link-inverse-color) !important; }
.is-color-inverse a:hover:not(.elementor-button),
a.is-color-inverse:hover                                                        { color: var(--b47-link-inverse-color-hover) !important; }

/* --- Border Utilities --- */
.is-border-subtle                                                               { border: var(--b47-subtle-border) !important; }
.is-border                                                                      { border: var(--b47-border) !important; }
.is-border-strong                                                               { border: var(--b47-strong-border) !important; }
.is-border-primary                                                              { border: var(--b47-primary-border) !important; }
.is-border-secondary                                                            { border: var(--b47-secondary-border) !important; }
.is-border-tertiary                                                             { border: var(--b47-tertiary-border) !important; }
.is-border-white                                                                { border: var(--b47-white-border) !important; }
.is-border-black                                                                { border: var(--b47-black-border) !important; }
.is-border-inverse-subtle                                                       { border: var(--b47-subtle-border-inverse) !important; }
.is-border-inverse                                                              { border: var(--b47-border-inverse) !important; }
.is-border-inverse-strong                                                       { border: var(--b47-strong-border-inverse) !important; }
.is-color-inverse .is-border-subtle, .is-color-inverse.is-border-subtle         { border: var(--b47-subtle-border-inverse) !important; }
.is-color-inverse .is-border, .is-color-inverse.is-border                       { border: var(--b47-border-inverse) !important; }
.is-color-inverse .is-border-strong, .is-color-inverse.is-border-strong         { border: var(--b47-strong-border-inverse) !important; }

/* --- Inner Border Utilities --- */
.is-inside-border-subtle                                                        { box-shadow: var(--b47-subtle-inside-border) !important; }
.is-inside-border                                                               { box-shadow: var(--b47-inside-border) !important; }
.is-inside-border-strong                                                        { box-shadow: var(--b47-strong-inside-border) !important; }
.is-inside-border-primary                                                       { box-shadow: var(--b47-primary-inside-border) !important; }
.is-inside-border-secondary                                                     { box-shadow: var(--b47-secondary-inside-border) !important; }
.is-inside-border-tertiary                                                      { box-shadow: var(--b47-tertiary-inside-border) !important; }
.is-inside-border-white                                                         { box-shadow: var(--b47-white-inside-border) !important; }
.is-inside-border-black                                                         { box-shadow: var(--b47-black-inside-border) !important; }
.is-inside-border-inverse-subtle                                                { box-shadow: var(--b47-subtle-inside-border-inverse) !important; }
.is-inside-border-inverse                                                       { box-shadow: var(--b47-inside-border-inverse) !important; }
.is-inside-border-inverse-strong                                                { box-shadow: var(--b47-strong-inside-border-inverse) !important; }
.is-color-inverse .is-inside-border-subtle, .is-color-inverse.is-inside-border-subtle { box-shadow: var(--b47-subtle-inside-border-inverse) !important; }
.is-color-inverse .is-inside-border, .is-color-inverse.is-inside-border               { box-shadow: var(--b47-inside-border-inverse) !important; }
.is-color-inverse .is-inside-border-strong, .is-color-inverse.is-inside-border-strong { box-shadow: var(--b47-strong-inside-border-inverse) !important; }

/* --- Border Radius Utilities --- */
.is-radius-none           { border-radius: var(--b47-radius-none) !important; }
.is-radius-2xs            { border-radius: var(--b47-radius-2xs) !important; }
.is-radius-xs             { border-radius: var(--b47-radius-xs) !important; }
.is-radius-s              { border-radius: var(--b47-radius-s) !important; }
.is-radius-m              { border-radius: var(--b47-radius-m) !important; }
.is-radius-l              { border-radius: var(--b47-radius-l) !important; }
.is-radius-xl             { border-radius: var(--b47-radius-xl) !important; }
.is-radius-2xl            { border-radius: var(--b47-radius-2xl) !important; }
.is-radius-3xl            { border-radius: var(--b47-radius-3xl) !important; }
.is-radius-4xl            { border-radius: var(--b47-radius-4xl) !important; }
.is-radius-max            { border-radius: var(--b47-radius-max) !important; }

/* --- Shadow Utilities --- */
.is-shadow-primary        { box-shadow: var(--b47-shadow-primary) !important; }
.is-shadow-inner          { box-shadow: var(--b47-shadow-inner) !important; }
.is-shadow-xs             { box-shadow: var(--b47-shadow-xs) !important; }
.is-shadow-s              { box-shadow: var(--b47-shadow-s) !important; }
.is-shadow-m              { box-shadow: var(--b47-shadow-m) !important; }
.is-shadow-l              { box-shadow: var(--b47-shadow-l) !important; }
.is-shadow-xl             { box-shadow: var(--b47-shadow-xl) !important; }
.is-shadow-2xl            { box-shadow: var(--b47-shadow-2xl) !important; }
.is-shadow-3xl            { box-shadow: var(--b47-shadow-3xl) !important; }

/* ------------------------- TYPOGRAPHY VARIABLES -------------------------- */

:root {
    /* --- Font Families --- */
    --b47-font-primary:                 'Inter', sans-serif;
    --b47-font-secondary:               'Inter', sans-serif;
    --b47-font-display:                 'Inter', sans-serif;
    --b47-font-mono:                    'Courier New', monospace;

    /* --- Heading Sizes --- */
    --b47-heading-size-xl:              64px;
    --b47-heading-size-l:               48px;
    --b47-heading-size-m:               32px;
    --b47-heading-size-s:               22px;
    --b47-heading-size-xs:              18px;

    /* --- Text Sizes --- */
    --b47-text-size-xl:                 22px;
    --b47-text-size-l:                  18px;
    --b47-text-size-m:                  16px;
    --b47-text-size-s:                  14px;
    --b47-text-size-xs:                 12px;
    --b47-text-size-2xs:                10px;

    /* --- Font Weights --- */
    --b47-font-weight-thin:             100;
    --b47-font-weight-light:            300;
    --b47-font-weight-regular:          400;
    --b47-font-weight-medium:           500;
    --b47-font-weight-semibold:         600;
    --b47-font-weight-bold:             700;
    --b47-font-weight-black:            900;

    /* --- Line Heights --- */
    --b47-line-height-none:             1;
    --b47-line-height-tight:            1.1;
    --b47-line-height-snug:             1.3;
    --b47-line-height-normal:           1.4;
    --b47-line-height-relaxed:          1.6;

    /* --- Letter Spacing --- */
    --b47-letter-spacing-tight:         -0.035em;
    --b47-letter-spacing-none:          0;
    --b47-letter-spacing-wide:          0.05em;
    --b47-letter-spacing-wider:         0.1em;
    --b47-letter-spacing-widest:        0.2em;

    /* --- Text Decoration --- */
    --b47-text-decoration-none:         none;
    --b47-text-decoration-underline:    underline;
    --b47-text-decoration-line-through: line-through;

    /* --- Text Transform --- */
    --b47-text-transform-none:          none;
    --b47-text-transform-uppercase:     uppercase;
    --b47-text-transform-lowercase:     lowercase;
    --b47-text-transform-capitalize:    capitalize;
}

/* --- Responsive --- */
@media only screen and (max-width: 1024px) {
    :root {
        /* --- Heading Sizes --- */
        --b47-heading-size-xl:          64px;
        --b47-heading-size-l:           48px;
        --b47-heading-size-m:           26px;
        --b47-heading-size-s:           22px;
        --b47-heading-size-xs:          18px;
        
        /* --- Text Sizes --- */
        --b47-text-size-m:              16px;
        --b47-text-size-l:              18px;
        --b47-text-size-xl:             22px;
    }
}
@media only screen and (max-width: 800px) {
    :root {
        /* --- Heading Sizes --- */
        --b47-heading-size-xl:          48px;
        --b47-heading-size-l:           32px;
        --b47-heading-size-m:           22px;
        --b47-heading-size-s:           22px;
        --b47-heading-size-xs:          16px;

        /* --- Text Sizes --- */
        --b47-text-size-s:              14px;
        --b47-text-size-m:              16px;
        --b47-text-size-l:              18px;
        --b47-text-size-xl:             22px;
    }
}

/* ------------------------- TYPOGRAPHY SHORTCUTS -------------------------- */

:root {
    /* --- Headings --- */
    --b47-h1-family:               var(--b47-font-primary);
    --b47-h1-size:                 var(--b47-heading-size-xl);
    --b47-h1-weight:               var(--b47-font-weight-medium);
    --b47-h1-line-height:          var(--b47-line-height-none);
    --b47-h1-letter-spacing:       var(--b47-letter-spacing-tight);

    --b47-h2-family:               var(--b47-font-primary);
    --b47-h2-size:                 var(--b47-heading-size-l);
    --b47-h2-weight:               var(--b47-font-weight-medium);
    --b47-h2-line-height:          var(--b47-line-height-normal);
    --b47-h2-letter-spacing:       var(--b47-letter-spacing-tight);

    --b47-h3-family:               var(--b47-font-primary);
    --b47-h3-size:                 var(--b47-heading-size-m);
    --b47-h3-weight:               var(--b47-font-weight-medium);
    --b47-h3-line-height:          var(--b47-line-height-normal);
    --b47-h3-letter-spacing:       var(--b47-letter-spacing-tight);

    --b47-h4-family:               var(--b47-font-primary);
    --b47-h4-size:                 var(--b47-heading-size-s);
    --b47-h4-weight:               var(--b47-font-weight-medium);
    --b47-h4-line-height:          var(--b47-line-height-normal);
    --b47-h4-letter-spacing:       var(--b47-letter-spacing-tight);

    --b47-h5-family:               var(--b47-font-primary);
    --b47-h5-size:                 var(--b47-heading-size-xs);
    --b47-h5-weight:               var(--b47-font-weight-medium);
    --b47-h5-line-height:          var(--b47-line-height-normal);
    --b47-h5-letter-spacing:       var(--b47-letter-spacing-tight);

    --b47-h6-family:               var(--b47-font-primary);
    --b47-h6-size:                 var(--b47-text-size-m);
    --b47-h6-weight:               var(--b47-font-weight-medium);
    --b47-h6-line-height:          var(--b47-line-height-snug);
    --b47-h6-letter-spacing:       var(--b47-letter-spacing-tight);

    /* --- Body --- */
    --b47-body-family:             var(--b47-font-primary);
    --b47-body-size:               var(--b47-text-size-m);
    --b47-body-weight:             var(--b47-font-weight-regular);
    --b47-body-line-height:        var(--b47-line-height-snug);
    --b47-body-letter-spacing:     var(--b47-letter-spacing-tight);

    --b47-body-l-family:           var(--b47-font-primary);
    --b47-body-l-size:             var(--b47-text-size-xl);
    --b47-body-l-weight:           var(--b47-font-weight-regular);
    --b47-body-l-line-height:      var(--b47-line-height-normal);
    --b47-body-l-letter-spacing:   var(--b47-letter-spacing-tight);

    --b47-body-s-family:           var(--b47-font-primary);
    --b47-body-s-size:             var(--b47-text-size-s);
    --b47-body-s-weight:           var(--b47-font-weight-regular);
    --b47-body-s-line-height:      var(--b47-line-height-snug);
    --b47-body-s-letter-spacing:   var(--b47-letter-spacing-tight);

    --b47-body-xs-family:          var(--b47-font-primary);
    --b47-body-xs-size:            var(--b47-text-size-xs);
    --b47-body-xs-weight:          var(--b47-font-weight-regular);
    --b47-body-xs-line-height:     var(--b47-line-height-snug);
    --b47-body-xs-letter-spacing:  var(--b47-letter-spacing-tight);

    /* --- NAV --- */
    --b47-nav-family:              var(--b47-font-primary);
    --b47-nav-size:                var(--b47-text-size-s);
    --b47-nav-weight:              var(--b47-font-weight-medium);
    --b47-nav-line-height:         var(--b47-line-height-snug);
    --b47-nav-letter-spacing:      var(--b47-letter-spacing-tight);
    --b47-nav-transform:           var(--b47-text-transform-none);

    /* --- Overline --- */
    --b47-overline-family:         var(--b47-font-primary);
    --b47-overline-size:           var(--b47-text-size-2xs);
    --b47-overline-weight:         var(--b47-font-weight-semibold);
    --b47-overline-line-height:    var(--b47-line-height-snug);
    --b47-overline-letter-spacing: var(--b47-letter-spacing-widest);
    --b47-overline-transform:      var(--b47-text-transform-uppercase);
}

/* -------------------------- TYPOGRAPHY CLASSES --------------------------- */

/* --- Strong/bold --- */
.elementor-widget-text-editor strong,
.elementor-widget-text-editor b,
.elementor-widget-theme-post-content strong,
.elementor-widget-theme-post-content b {
    font-weight: var(--b47-font-weight-medium) !important;
    color:       var(--b47-heading-color) !important;
}

/* --- Base heading color --- */
h1.elementor-heading-title,
h2.elementor-heading-title,
h3.elementor-heading-title,
h4.elementor-heading-title,
h5.elementor-heading-title,
h6.elementor-heading-title,
div.elementor-heading-title,
span.elementor-heading-title,
p.elementor-heading-title { color: var(--b47-heading-color) !important; }

/* --- Base — Heading by HTML tag --- */
.elementor-widget-heading h1.elementor-heading-title {
    font-family:    var(--b47-h1-family) !important;
    font-size:      var(--b47-h1-size) !important;
    font-weight:    var(--b47-h1-weight) !important;
    line-height:    var(--b47-h1-line-height) !important;
    letter-spacing: var(--b47-h1-letter-spacing) !important;
}
.elementor-widget-heading h2.elementor-heading-title {
    font-family:    var(--b47-h2-family) !important;
    font-size:      var(--b47-h2-size) !important;
    font-weight:    var(--b47-h2-weight) !important;
    line-height:    var(--b47-h2-line-height) !important;
    letter-spacing: var(--b47-h2-letter-spacing) !important;
}
.elementor-widget-heading h3.elementor-heading-title {
    font-family:    var(--b47-h3-family) !important;
    font-size:      var(--b47-h3-size) !important;
    font-weight:    var(--b47-h3-weight) !important;
    line-height:    var(--b47-h3-line-height) !important;
    letter-spacing: var(--b47-h3-letter-spacing) !important;
}
.elementor-widget-heading h4.elementor-heading-title {
    font-family:    var(--b47-h4-family) !important;
    font-size:      var(--b47-h4-size) !important;
    font-weight:    var(--b47-h4-weight) !important;
    line-height:    var(--b47-h4-line-height) !important;
    letter-spacing: var(--b47-h4-letter-spacing) !important;
}
.elementor-widget-heading h5.elementor-heading-title {
    font-family:    var(--b47-h5-family) !important;
    font-size:      var(--b47-h5-size) !important;
    font-weight:    var(--b47-h5-weight) !important;
    line-height:    var(--b47-h5-line-height) !important;
    letter-spacing: var(--b47-h5-letter-spacing) !important;
}
.elementor-widget-heading h6.elementor-heading-title {
    font-family:    var(--b47-h6-family) !important;
    font-size:      var(--b47-h6-size) !important;
    font-weight:    var(--b47-h6-weight) !important;
    line-height:    var(--b47-h6-line-height) !important;
    letter-spacing: var(--b47-h6-letter-spacing) !important;
}

/* --- div/span/p tag in heading widget → body style --- */
.elementor-widget-heading div.elementor-heading-title,
.elementor-widget-heading span.elementor-heading-title,
.elementor-widget-heading p.elementor-heading-title {
    font-family:    var(--b47-body-family) !important;
    font-size:      var(--b47-body-size) !important;
    font-weight:    var(--b47-body-weight) !important;
    line-height:    var(--b47-body-line-height) !important;
    letter-spacing: var(--b47-body-letter-spacing) !important;
}

/* --- Base Body --- */
.elementor-widget-text-editor p,
.elementor-widget-theme-post-content p {
    font-family:    var(--b47-body-family) !important;
    font-size:      var(--b47-body-size) !important;
    font-weight:    var(--b47-body-weight) !important;
    line-height:    var(--b47-body-line-height) !important;
    letter-spacing: var(--b47-body-letter-spacing) !important;
}

/* --- Base Nav menu --- */
.elementor-nav-menu a,
.elementor-nav-menu .menu-item a {
    font-family:    var(--b47-nav-family) !important;
    font-size:      var(--b47-nav-size) !important;
    font-weight:    var(--b47-nav-weight) !important;
    line-height:    var(--b47-nav-line-height) !important;
    letter-spacing: var(--b47-nav-letter-spacing) !important;
}

/* --- Base Links --- */
a { text-decoration: var(--b47-text-decoration-none); }
.elementor-widget-text-editor a,
.elementor-widget-theme-post-content a {
    color:           var(--b47-link-color);
    text-decoration: var(--b47-text-decoration-none);
}
.elementor-widget-text-editor a:hover,
.elementor-widget-theme-post-content a:hover {
    color:           var(--b47-link-hover-color);
    text-decoration: var(--b47-text-decoration-underline);
    text-underline-offset: 2px;
}

/* --- Style Utilities --- */
.elementor-widget-heading.is-style-h1 .elementor-heading-title,
.is-style-h1 .elementor-widget-heading .elementor-heading-title {
    font-family:    var(--b47-h1-family) !important;
    font-size:      var(--b47-h1-size) !important;
    font-weight:    var(--b47-h1-weight) !important;
    line-height:    var(--b47-h1-line-height) !important;
    letter-spacing: var(--b47-h1-letter-spacing) !important;
}
.elementor-widget-heading.is-style-h2 .elementor-heading-title,
.is-style-h2 .elementor-widget-heading .elementor-heading-title {
    font-family:    var(--b47-h2-family) !important;
    font-size:      var(--b47-h2-size) !important;
    font-weight:    var(--b47-h2-weight) !important;
    line-height:    var(--b47-h2-line-height) !important;
    letter-spacing: var(--b47-h2-letter-spacing) !important;
}
.elementor-widget-heading.is-style-h3 .elementor-heading-title,
.is-style-h3 .elementor-widget-heading .elementor-heading-title {
    font-family:    var(--b47-h3-family) !important;
    font-size:      var(--b47-h3-size) !important;
    font-weight:    var(--b47-h3-weight) !important;
    line-height:    var(--b47-h3-line-height) !important;
    letter-spacing: var(--b47-h3-letter-spacing) !important;
}
.elementor-widget-heading.is-style-h4 .elementor-heading-title,
.is-style-h4 .elementor-widget-heading .elementor-heading-title {
    font-family:    var(--b47-h4-family) !important;
    font-size:      var(--b47-h4-size) !important;
    font-weight:    var(--b47-h4-weight) !important;
    line-height:    var(--b47-h4-line-height) !important;
    letter-spacing: var(--b47-h4-letter-spacing) !important;
}
.elementor-widget-heading.is-style-h5 .elementor-heading-title,
.is-style-h5 .elementor-widget-heading .elementor-heading-title {
    font-family:    var(--b47-h5-family) !important;
    font-size:      var(--b47-h5-size) !important;
    font-weight:    var(--b47-h5-weight) !important;
    line-height:    var(--b47-h5-line-height) !important;
    letter-spacing: var(--b47-h5-letter-spacing) !important;
}

/* --- Typography Style Utilities --- */
.elementor-widget-heading.is-style-h6 .elementor-heading-title,
.is-style-h6 .elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor.is-style-h6 p,
.is-style-h6 .elementor-widget-text-editor p,
span.is-style-h6,
.is-style-h6 .elementor-widget-text-editor span,
.is-style-h6 .elementor-widget-heading span,
.is-style-h6 .elementor-widget-theme-post-content span,
div.is-style-h6,
.is-style-h6 .elementor-widget-text-editor div,
.is-style-h6 .elementor-widget-heading div,
.is-style-h6 .elementor-widget-theme-post-content div {
    font-family:    var(--b47-h6-family) !important;
    font-size:      var(--b47-h6-size) !important;
    font-weight:    var(--b47-h6-weight) !important;
    line-height:    var(--b47-h6-line-height) !important;
    letter-spacing: var(--b47-h6-letter-spacing) !important;
}
.elementor-widget-heading.is-style-body-l .elementor-heading-title,
.is-style-body-l .elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor.is-style-body-l p,
.is-style-body-l .elementor-widget-text-editor p,
span.is-style-body-l,
.is-style-body-l .elementor-widget-text-editor span,
.is-style-body-l .elementor-widget-heading span,
.is-style-body-l .elementor-widget-theme-post-content span,
div.is-style-body-l,
.is-style-body-l .elementor-widget-text-editor div,
.is-style-body-l .elementor-widget-heading div,
.is-style-body-l .elementor-widget-theme-post-content div {
    font-family:    var(--b47-body-l-family) !important;
    font-size:      var(--b47-body-l-size) !important;
    font-weight:    var(--b47-body-l-weight) !important;
    line-height:    var(--b47-body-l-line-height) !important;
    letter-spacing: var(--b47-body-l-letter-spacing) !important;
}
.elementor-widget-heading.is-style-body .elementor-heading-title,
.is-style-body .elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor.is-style-body p,
.is-style-body .elementor-widget-text-editor p,
span.is-style-body,
.is-style-body .elementor-widget-text-editor span,
.is-style-body .elementor-widget-heading span,
.is-style-body .elementor-widget-theme-post-content span,
div.is-style-body,
.is-style-body .elementor-widget-text-editor div,
.is-style-body .elementor-widget-heading div,
.is-style-body .elementor-widget-theme-post-content div {
    font-family:    var(--b47-body-family) !important;
    font-size:      var(--b47-body-size) !important;
    font-weight:    var(--b47-body-weight) !important;
    line-height:    var(--b47-body-line-height) !important;
    letter-spacing: var(--b47-body-letter-spacing) !important;
}
.elementor-widget-heading.is-style-body-s .elementor-heading-title,
.is-style-body-s .elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor.is-style-body-s p,
.is-style-body-s .elementor-widget-text-editor p,
span.is-style-body-s,
.is-style-body-s .elementor-widget-text-editor span,
.is-style-body-s .elementor-widget-heading span,
.is-style-body-s .elementor-widget-theme-post-content span,
div.is-style-body-s,
.is-style-body-s .elementor-widget-text-editor div,
.is-style-body-s .elementor-widget-heading div,
.is-style-body-s .elementor-widget-theme-post-content div {
    font-family:    var(--b47-body-s-family) !important;
    font-size:      var(--b47-body-s-size) !important;
    font-weight:    var(--b47-body-s-weight) !important;
    line-height:    var(--b47-body-s-line-height) !important;
    letter-spacing: var(--b47-body-s-letter-spacing) !important;
}
.elementor-widget-heading.is-style-body-xs .elementor-heading-title,
.is-style-body-xs .elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor.is-style-body-xs p,
.is-style-body-xs .elementor-widget-text-editor p,
span.is-style-body-xs,
.is-style-body-xs .elementor-widget-text-editor span,
.is-style-body-xs .elementor-widget-heading span,
.is-style-body-xs .elementor-widget-theme-post-content span,
div.is-style-body-xs,
.is-style-body-xs .elementor-widget-text-editor div,
.is-style-body-xs .elementor-widget-heading div,
.is-style-body-xs .elementor-widget-theme-post-content div {
    font-family:    var(--b47-body-xs-family) !important;
    font-size:      var(--b47-body-xs-size) !important;
    font-weight:    var(--b47-body-xs-weight) !important;
    line-height:    var(--b47-body-xs-line-height) !important;
    letter-spacing: var(--b47-body-xs-letter-spacing) !important;
}
.elementor-widget-heading.is-style-nav .elementor-heading-title,
.is-style-nav .elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor.is-style-nav p,
.is-style-nav .elementor-widget-text-editor p,
span.is-style-nav,
.is-style-nav .elementor-widget-text-editor span,
.is-style-nav .elementor-widget-heading span,
.is-style-nav .elementor-widget-theme-post-content span,
div.is-style-nav,
.is-style-nav .elementor-widget-text-editor div,
.is-style-nav .elementor-widget-heading div,
.is-style-nav .elementor-widget-theme-post-content div {
    font-family:    var(--b47-nav-family) !important;
    font-size:      var(--b47-nav-size) !important;
    font-weight:    var(--b47-nav-weight) !important;
    line-height:    var(--b47-nav-line-height) !important;
    letter-spacing: var(--b47-nav-letter-spacing) !important;
    text-transform: var(--b47-nav-transform) !important;
}
.elementor-widget-heading.is-style-overline .elementor-heading-title,
.is-style-overline .elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor.is-style-overline p,
.is-style-overline .elementor-widget-text-editor p,
span.is-style-overline,
.is-style-overline .elementor-widget-text-editor span,
.is-style-overline .elementor-widget-heading span,
.is-style-overline .elementor-widget-theme-post-content span,
div.is-style-overline,
.is-style-overline .elementor-widget-text-editor div,
.is-style-overline .elementor-widget-heading div,
.is-style-overline .elementor-widget-theme-post-content div {
    font-family:    var(--b47-overline-family) !important;
    font-size:      var(--b47-overline-size) !important;
    font-weight:    var(--b47-overline-weight) !important;
    line-height:    var(--b47-overline-line-height) !important;
    letter-spacing: var(--b47-overline-letter-spacing) !important;
    text-transform: var(--b47-overline-transform) !important;
}
.elementor-widget-heading.is-style-display .elementor-heading-title,
.is-style-display .elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor.is-style-display p,
.is-style-display .elementor-widget-text-editor p,
span.is-style-display,
.is-style-display .elementor-widget-text-editor span,
.is-style-display .elementor-widget-heading span,
.is-style-display .elementor-widget-theme-post-content span,
div.is-style-display,
.is-style-display .elementor-widget-text-editor div,
.is-style-display .elementor-widget-heading div,
.is-style-display .elementor-widget-theme-post-content div          { font-family: var(--b47-font-display) !important; }

.elementor-widget-heading.is-style-mono .elementor-heading-title,
.is-style-mono .elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor.is-style-mono p,
.is-style-mono .elementor-widget-text-editor p,
span.is-style-mono,
.is-style-mono .elementor-widget-text-editor span,
.is-style-mono .elementor-widget-heading span,
.is-style-mono .elementor-widget-theme-post-content span,
div.is-style-mono,
.is-style-mono .elementor-widget-text-editor div,
.is-style-mono .elementor-widget-heading div,
.is-style-mono .elementor-widget-theme-post-content div             { font-family: var(--b47-font-mono) !important; }

.elementor-widget-heading.is-style-italic .elementor-heading-title,
.is-style-italic .elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor.is-style-italic p,
.is-style-italic .elementor-widget-text-editor p,
span.is-style-italic,
.is-style-italic .elementor-widget-text-editor span,
.is-style-italic .elementor-widget-heading span,
.is-style-italic .elementor-widget-theme-post-content span,
div.is-style-italic,
.is-style-italic .elementor-widget-text-editor div,
.is-style-italic .elementor-widget-heading div,
.is-style-italic .elementor-widget-theme-post-content div           { font-style: italic !important; }

.elementor-widget-heading.is-weight-thin .elementor-heading-title,
.is-weight-thin .elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor.is-weight-thin p,
.is-weight-thin .elementor-widget-text-editor p,
span.is-weight-thin,
.is-weight-thin .elementor-widget-text-editor span,
.is-weight-thin .elementor-widget-heading span,
.is-weight-thin .elementor-widget-theme-post-content span,
div.is-weight-thin,
.is-weight-thin .elementor-widget-text-editor div,
.is-weight-thin .elementor-widget-heading div,
.is-weight-thin .elementor-widget-theme-post-content div            { font-weight: var(--b47-font-weight-thin) !important; }

.elementor-widget-heading.is-weight-light .elementor-heading-title,
.is-weight-light .elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor.is-weight-light p,
.is-weight-light .elementor-widget-text-editor p,
span.is-weight-light,
.is-weight-light .elementor-widget-text-editor span,
.is-weight-light .elementor-widget-heading span,
.is-weight-light .elementor-widget-theme-post-content span,
div.is-weight-light,
.is-weight-light .elementor-widget-text-editor div,
.is-weight-light .elementor-widget-heading div,
.is-weight-light .elementor-widget-theme-post-content div           { font-weight: var(--b47-font-weight-light) !important; }

.elementor-widget-heading.is-weight-regular .elementor-heading-title,
.is-weight-regular .elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor.is-weight-regular p,
.is-weight-regular .elementor-widget-text-editor p,
span.is-weight-regular,
.is-weight-regular .elementor-widget-text-editor span,
.is-weight-regular .elementor-widget-heading span,
.is-weight-regular .elementor-widget-theme-post-content span,
div.is-weight-regular,
.is-weight-regular .elementor-widget-text-editor div,
.is-weight-regular .elementor-widget-heading div,
.is-weight-regular .elementor-widget-theme-post-content div         { font-weight: var(--b47-font-weight-regular) !important; }

.elementor-widget-heading.is-weight-medium .elementor-heading-title,
.is-weight-medium .elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor.is-weight-medium p,
.is-weight-medium .elementor-widget-text-editor p,
span.is-weight-medium,
.is-weight-medium .elementor-widget-text-editor span,
.is-weight-medium .elementor-widget-heading span,
.is-weight-medium .elementor-widget-theme-post-content span,
div.is-weight-medium,
.is-weight-medium .elementor-widget-text-editor div,
.is-weight-medium .elementor-widget-heading div,
.is-weight-medium .elementor-widget-theme-post-content div          { font-weight: var(--b47-font-weight-medium) !important; }

.elementor-widget-heading.is-weight-semibold .elementor-heading-title,
.is-weight-semibold .elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor.is-weight-semibold p,
.is-weight-semibold .elementor-widget-text-editor p,
span.is-weight-semibold,
.is-weight-semibold .elementor-widget-text-editor span,
.is-weight-semibold .elementor-widget-heading span,
.is-weight-semibold .elementor-widget-theme-post-content span,
div.is-weight-semibold,
.is-weight-semibold .elementor-widget-text-editor div,
.is-weight-semibold .elementor-widget-heading div,
.is-weight-semibold .elementor-widget-theme-post-content div        { font-weight: var(--b47-font-weight-semibold) !important; }

.elementor-widget-heading.is-weight-bold .elementor-heading-title,
.is-weight-bold .elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor.is-weight-bold p,
.is-weight-bold .elementor-widget-text-editor p,
span.is-weight-bold,
.is-weight-bold .elementor-widget-text-editor span,
.is-weight-bold .elementor-widget-heading span,
.is-weight-bold .elementor-widget-theme-post-content span,
div.is-weight-bold,
.is-weight-bold .elementor-widget-text-editor div,
.is-weight-bold .elementor-widget-heading div,
.is-weight-bold .elementor-widget-theme-post-content div            { font-weight: var(--b47-font-weight-bold) !important; }

.elementor-widget-heading.is-weight-black .elementor-heading-title,
.is-weight-black .elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor.is-weight-black p,
.is-weight-black .elementor-widget-text-editor p,
span.is-weight-black,
.is-weight-black .elementor-widget-text-editor span,
.is-weight-black .elementor-widget-heading span,
.is-weight-black .elementor-widget-theme-post-content span,
div.is-weight-black,
.is-weight-black .elementor-widget-text-editor div,
.is-weight-black .elementor-widget-heading div,
.is-weight-black .elementor-widget-theme-post-content div           { font-weight: var(--b47-font-weight-black) !important; }

/* --- Text Decoration Utilities --- */
.elementor-widget-heading.is-text-decoration-none .elementor-heading-title,
.is-text-decoration-none .elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor.is-text-decoration-none p,
.is-text-decoration-none .elementor-widget-text-editor p,
span.is-text-decoration-none,
.is-text-decoration-none .elementor-widget-text-editor span,
.is-text-decoration-none .elementor-widget-heading span,
.is-text-decoration-none .elementor-widget-theme-post-content span,
div.is-text-decoration-none,
.is-text-decoration-none .elementor-widget-text-editor div,
.is-text-decoration-none .elementor-widget-heading div,
.is-text-decoration-none .elementor-widget-theme-post-content div   { text-decoration: var(--b47-text-decoration-none) !important; }

.elementor-widget-heading.is-text-underline .elementor-heading-title,
.is-text-underline .elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor.is-text-underline p,
.is-text-underline .elementor-widget-text-editor p,
span.is-text-underline,
.is-text-underline .elementor-widget-text-editor span,
.is-text-underline .elementor-widget-heading span,
.is-text-underline .elementor-widget-theme-post-content span,
div.is-text-underline,
.is-text-underline .elementor-widget-text-editor div,
.is-text-underline .elementor-widget-heading div,
.is-text-underline .elementor-widget-theme-post-content div         { text-decoration: var(--b47-text-decoration-underline) !important; text-underline-offset: 2px !important; }

.elementor-widget-heading.is-text-strikethrough .elementor-heading-title,
.is-text-strikethrough .elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor.is-text-strikethrough p,
.is-text-strikethrough .elementor-widget-text-editor p,
span.is-text-strikethrough,
.is-text-strikethrough .elementor-widget-text-editor span,
.is-text-strikethrough .elementor-widget-heading span,
.is-text-strikethrough .elementor-widget-theme-post-content span,
div.is-text-strikethrough,
.is-text-strikethrough .elementor-widget-text-editor div,
.is-text-strikethrough .elementor-widget-heading div,
.is-text-strikethrough .elementor-widget-theme-post-content div     { text-decoration: var(--b47-text-decoration-line-through) !important; text-decoration-color: var(--b47-disabled-text-color) !important; }

/* --- Text Transform Utilities --- */
.elementor-widget-heading.is-transform-none .elementor-heading-title,
.is-transform-none .elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor.is-transform-none p,
.is-transform-none .elementor-widget-text-editor p,
span.is-transform-none,
.is-transform-none .elementor-widget-text-editor span,
.is-transform-none .elementor-widget-heading span,
.is-transform-none .elementor-widget-theme-post-content span,
div.is-transform-none,
.is-transform-none .elementor-widget-text-editor div,
.is-transform-none .elementor-widget-heading div,
.is-transform-none .elementor-widget-theme-post-content div         { text-transform: var(--b47-text-transform-none) !important; }

.elementor-widget-heading.is-lowercase .elementor-heading-title,
.is-lowercase .elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor.is-lowercase p,
.is-lowercase .elementor-widget-text-editor p,
span.is-lowercase,
.is-lowercase .elementor-widget-text-editor span,
.is-lowercase .elementor-widget-heading span,
.is-lowercase .elementor-widget-theme-post-content span,
div.is-lowercase,
.is-lowercase .elementor-widget-text-editor div,
.is-lowercase .elementor-widget-heading div,
.is-lowercase .elementor-widget-theme-post-content div              { text-transform: var(--b47-text-transform-lowercase) !important; }

.elementor-widget-heading.is-uppercase .elementor-heading-title,
.is-uppercase .elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor.is-uppercase p,
.is-uppercase .elementor-widget-text-editor p,
span.is-uppercase,
.is-uppercase .elementor-widget-text-editor span,
.is-uppercase .elementor-widget-heading span,
.is-uppercase .elementor-widget-theme-post-content span,
div.is-uppercase,
.is-uppercase .elementor-widget-text-editor div,
.is-uppercase .elementor-widget-heading div,
.is-uppercase .elementor-widget-theme-post-content div              { text-transform: var(--b47-text-transform-uppercase) !important; }

.elementor-widget-heading.is-capitalize .elementor-heading-title,
.is-capitalize .elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor.is-capitalize p,
.is-capitalize .elementor-widget-text-editor p,
span.is-capitalize,
.is-capitalize .elementor-widget-text-editor span,
.is-capitalize .elementor-widget-heading span,
.is-capitalize .elementor-widget-theme-post-content span,
div.is-capitalize,
.is-capitalize .elementor-widget-text-editor div,
.is-capitalize .elementor-widget-heading div,
.is-capitalize .elementor-widget-theme-post-content div             { text-transform: var(--b47-text-transform-capitalize) !important; }

/* --- Lists — scoped to content only --- */
.elementor-widget-text-editor ul,
.elementor-widget-theme-post-content ul {
    list-style:  disc;
    padding-left: var(--b47-spacing-l);
}
.elementor-widget-text-editor ol,
.elementor-widget-theme-post-content ol {
    list-style:  decimal;
    padding-left: var(--b47-spacing-l);
}
.elementor-widget-text-editor li,
.elementor-widget-theme-post-content li {
    color:       var(--b47-primary-text-color);
    line-height: var(--b47-line-height-relaxed);
}

/* ---------------------- SPACING & LAYOUT VARIABLES ---------------------- */

:root {
    /* --- Layout Width --- */
    --b47-layout-width:           1096px;
    --b47-width-xs:               320px;
    --b47-width-s:                550px;
    --b47-width-m:                720px;
    --b47-width-l:                800px;
    --b47-width-xl:               850px;
    --b47-width-2xl:              900px;
    --b47-width-3xl:              1000px;  

    /* --- Layout Height --- */
    --b47-height-xs:              150px;
    --b47-height-s:               300px;
    --b47-height-m:               400px;
    --b47-height-l:               500px;
    --b47-height-xl:              600px;
    --b47-height-2xl:             80vh;
    --b47-height-max:             100vh;
    
    /* --- Section Vertical Padding --- */
    --b47-padding-section-xs:      8px;
    --b47-padding-section-s:      40px;
    --b47-padding-section-m:      80px;
    --b47-padding-section-l:      120px;
    --b47-padding-section-xl:     160px;

    /* --- Global Horizontal Padding --- */
    --b47-padding-global:         8px;
    --b47-padding-global-s:       16px;
    --b47-padding-global-m:       20px;
    --b47-body-padding:           8px;

    /* --- Spacing Scale --- */
    --b47-spacing-none:           0px;
    --b47-spacing-4xs:            2px;
    --b47-spacing-3xs:            4px;
    --b47-spacing-2xs:            6px;
    --b47-spacing-xs:             8px;
    --b47-spacing-s:              10px;   
    --b47-spacing-m:              12px;  
    --b47-spacing-l:              16px;  
    --b47-spacing-xl:             20px;  
    --b47-spacing-2xl:            24px;  
    --b47-spacing-3xl:            32px;  
    --b47-spacing-4xl:            40px;  
    --b47-spacing-5xl:            48px;  
    --b47-spacing-6xl:            64px;  
    --b47-spacing-7xl:            80px;  
    --b47-spacing-8xl:            96px;  
    --b47-spacing-9xl:            128px; 
    --b47-spacing-10xl:           160px; 

    /* --- Z-INDEX SCALE --- */
    --b47-z-below:                  -1;
    --b47-z-default:                 0;
    --b47-z-above:                   1;
    --b47-z-dropdown:             1000;
    --b47-z-sticky:               1020;
    --b47-z-fixed:                1030;
    --b47-z-overlay:              1040;
    --b47-z-modal:                1050;
    --b47-z-popover:              1060;
    --b47-z-toast:                1070;
}

/* --- Responsive --- */
@media only screen and (max-width: 1024px) {
    :root {
        --b47-layout-width:       752px;

        /* --- Section Vertical Padding --- */
        --b47-padding-section-xl: 120px;
        --b47-padding-section-l:  80px;
        --b47-padding-section-m:  60px;
        --b47-padding-section-s:  32px;

        /* --- Global Horizontal Padding --- */
        --b47-padding-global:     8px;
    }
}
@media only screen and (max-width: 768px) {
    :root {
        --b47-layout-width:       752px;
    }
}
@media only screen and (max-width: 599px) {
    :root {
        --b47-layout-width:       343px;

        /* --- Section Vertical Padding --- */
        --b47-padding-section-xl: 80px;
        --b47-padding-section-l:  60px;
        --b47-padding-section-m:  48px;
        --b47-padding-section-s:  24px;

        /* --- Global Horizontal Padding --- */
        --b47-padding-global:     8px;
    }
}

/* ----------------------- SPACING & LAYOUT CLASSES ----------------------- */

/* --- Height Utilities --- */
.is-stretch                            { align-self: stretch !important; }
.is-stretch-content                    { height: 100% !important; }
.b47-header-offset                     { padding-top: var(--b47-header-height); }
.is-height-xs                          { min-height: var(--b47-height-xs) !important; }
.is-height-s                           { min-height: var(--b47-height-s) !important; }
.is-height-m                           { min-height: var(--b47-height-m) !important; }
.is-height-l                           { min-height: var(--b47-height-l) !important; }
.is-height-xl                          { min-height: var(--b47-height-xl) !important; }
.is-height-2xl                         { min-height: var(--b47-height-2xl) !important; }
.is-height-max                         { min-height: var(--b47-height-max) !important; }

/* --- Width Utilities --- */
.is-width-xs                           { max-width: var(--b47-width-xs) !important; }
.is-width-s                            { max-width: var(--b47-width-s) !important; }
.is-width-m                            { max-width: var(--b47-width-m) !important; }
.is-width-l                            { max-width: var(--b47-width-l) !important; }
.is-width-xl                           { max-width: var(--b47-width-xl) !important; }
.is-width-2xl                          { max-width: var(--b47-width-2xl) !important; }
.is-width-3xl                          { max-width: var(--b47-width-3xl) !important; }
.b47-layout                            { max-width: var(--b47-layout-width) !important; width: 100%; margin-left: auto; margin-right: auto; }

/* --- Aspect Ratio Utilities --- */
.is-ratio-square                      { aspect-ratio: 1 / 1; }
.is-ratio-video                       { aspect-ratio: 16 / 9; }
.is-ratio-4-3                         { aspect-ratio: 4 / 3; }
.is-ratio-3-2                         { aspect-ratio: 3 / 2; }
.is-ratio-portrait                    { aspect-ratio: 3 / 4; }

/* --- Vertical Padding Utilities --- */
.is-padding-y-4xs                      { padding-top: var(--b47-spacing-4xs);  padding-bottom: var(--b47-spacing-4xs); }
.is-padding-y-3xs                      { padding-top: var(--b47-spacing-3xs);  padding-bottom: var(--b47-spacing-3xs); }
.is-padding-y-2xs                      { padding-top: var(--b47-spacing-2xs);  padding-bottom: var(--b47-spacing-2xs); }
.is-padding-y-xs                       { padding-top: var(--b47-spacing-xs);   padding-bottom: var(--b47-spacing-xs); }
.is-padding-y-s                        { padding-top: var(--b47-spacing-s);    padding-bottom: var(--b47-spacing-s); }
.is-padding-y-m                        { padding-top: var(--b47-spacing-m);    padding-bottom: var(--b47-spacing-m); }
.is-padding-y-l                        { padding-top: var(--b47-spacing-l);    padding-bottom: var(--b47-spacing-l); }
.is-padding-y-xl                       { padding-top: var(--b47-spacing-xl);   padding-bottom: var(--b47-spacing-xl); }
.is-padding-y-2xl                      { padding-top: var(--b47-spacing-2xl);  padding-bottom: var(--b47-spacing-2xl); }
.is-padding-y-3xl                      { padding-top: var(--b47-spacing-3xl);  padding-bottom: var(--b47-spacing-3xl); }
.is-padding-y-4xl                      { padding-top: var(--b47-spacing-4xl);  padding-bottom: var(--b47-spacing-4xl); }
.is-padding-y-5xl                      { padding-top: var(--b47-spacing-5xl);  padding-bottom: var(--b47-spacing-5xl); }
.is-padding-y-6xl                      { padding-top: var(--b47-spacing-6xl);  padding-bottom: var(--b47-spacing-6xl); }
.is-padding-y-7xl                      { padding-top: var(--b47-spacing-7xl);  padding-bottom: var(--b47-spacing-7xl); }
.is-padding-y-8xl                      { padding-top: var(--b47-spacing-8xl);  padding-bottom: var(--b47-spacing-8xl); }
.is-padding-y-9xl                      { padding-top: var(--b47-spacing-9xl);  padding-bottom: var(--b47-spacing-9xl); }
.is-padding-y-10xl                     { padding-top: var(--b47-spacing-10xl); padding-bottom: var(--b47-spacing-10xl); }

/* --- Horizontal Padding Utilities --- */
.is-padding-global                     { padding-left: var(--b47-padding-global); padding-right: var(--b47-padding-global); }
.is-padding-x-4xs                      { padding-left: var(--b47-spacing-4xs);  padding-right: var(--b47-spacing-4xs); }
.is-padding-x-3xs                      { padding-left: var(--b47-spacing-3xs);  padding-right: var(--b47-spacing-3xs); }
.is-padding-x-2xs                      { padding-left: var(--b47-spacing-2xs);  padding-right: var(--b47-spacing-2xs); }
.is-padding-x-xs                       { padding-left: var(--b47-spacing-xs);   padding-right: var(--b47-spacing-xs); }
.is-padding-x-s                        { padding-left: var(--b47-spacing-s);    padding-right: var(--b47-spacing-s); }
.is-padding-x-m                        { padding-left: var(--b47-spacing-m);    padding-right: var(--b47-spacing-m); }
.is-padding-x-l                        { padding-left: var(--b47-spacing-l);    padding-right: var(--b47-spacing-l); }
.is-padding-x-xl                       { padding-left: var(--b47-spacing-xl);   padding-right: var(--b47-spacing-xl); }
.is-padding-x-2xl                      { padding-left: var(--b47-spacing-2xl);  padding-right: var(--b47-spacing-2xl); }
.is-padding-x-3xl                      { padding-left: var(--b47-spacing-3xl);  padding-right: var(--b47-spacing-3xl); }
.is-padding-x-4xl                      { padding-left: var(--b47-spacing-4xl);  padding-right: var(--b47-spacing-4xl); }
.is-padding-x-5xl                      { padding-left: var(--b47-spacing-5xl);  padding-right: var(--b47-spacing-5xl); }
.is-padding-x-6xl                      { padding-left: var(--b47-spacing-6xl);  padding-right: var(--b47-spacing-6xl); }
.is-padding-x-7xl                      { padding-left: var(--b47-spacing-7xl);  padding-right: var(--b47-spacing-7xl); }
.is-padding-x-8xl                      { padding-left: var(--b47-spacing-8xl);  padding-right: var(--b47-spacing-8xl); }
.is-padding-x-9xl                      { padding-left: var(--b47-spacing-9xl);  padding-right: var(--b47-spacing-9xl); }
.is-padding-x-10xl                     { padding-left: var(--b47-spacing-10xl); padding-right: var(--b47-spacing-10xl); }

/* --- Section Utilities --- */
.is-section-margin                    { margin-top: var(--b47-spacing-3xs); margin-bottom: var(--b47-spacing-3xs);}
.is-section-padding                   { padding: var(--b47-padding-section-xs) var(--b47-padding-global); }
.is-section-padding.is-header-offset  { padding-top: calc(var(--b47-padding-section-xs) + var(--b47-header-height)) !important; }
.is-section-padding.is-half-top       { padding-top:    calc(var(--b47-padding-section-xs) / 2); }
.is-section-padding.is-half-bottom    { padding-bottom: calc(var(--b47-padding-section-xs) / 2); }
.is-section-padding.is-flush          { padding-top: 0; padding-bottom: 0; }
.is-section-padding-y-xs              { padding-top: var(--b47-padding-section-xs);  padding-bottom: var(--b47-padding-section-xs); }
.is-section-padding-y-s               { padding-top: var(--b47-padding-section-s);  padding-bottom: var(--b47-padding-section-s); }
.is-section-padding-y-m               { padding-top: var(--b47-padding-section-m);  padding-bottom: var(--b47-padding-section-m); }
.is-section-padding-y-l               { padding-top: var(--b47-padding-section-l);  padding-bottom: var(--b47-padding-section-l); }
.is-section-padding-y-xl              { padding-top: var(--b47-padding-section-xl); padding-bottom: var(--b47-padding-section-xl); }

/* --- Style Utilities --- */
.is-cover-image                                              { position: relative; overflow: hidden; }
.is-cover-image .elementor-widget-image,
.is-cover-image .elementor-widget-image .elementor-widget-container,
.is-cover-image .elementor-widget-image a                    { position: absolute; inset: 0; display: block; }
.is-cover-image .elementor-widget-image img                  { display: block; width: 100% !important; height: 100% !important; object-fit: cover !important; object-position: center !important; }
.is-cover-image.is-object-top .elementor-widget-image img    { object-position: top !important; }
.is-cover-image.is-object-bottom .elementor-widget-image img { object-position: bottom !important; }
.is-cover-image.is-object-left   .elementor-widget-image img { object-position: left center !important; }
.is-cover-image.is-object-right  .elementor-widget-image img { object-position: right center !important; }
.is-display-none                      { display: none !important; }
.is-overflow-hidden                   { overflow: hidden !important; }
.is-fit-content                       { width: fit-content !important; }
.is-sit-space                         { display: none !important; }
.is-hyphens-justify p                 { hyphens: auto !important; text-align: justify !important; }

/* --- Icon Size Utilities --- */
.is-icon-2xs .elementor-icon           { font-size: var(--b47-text-size-2xs) !important; width: var(--b47-text-size-2xs) !important; height: var(--b47-text-size-2xs) !important; }
.is-icon-xs  .elementor-icon           { font-size: var(--b47-text-size-xs)  !important; width: var(--b47-text-size-xs)  !important; height: var(--b47-text-size-xs)  !important; }
.is-icon-s   .elementor-icon           { font-size: var(--b47-text-size-s)   !important; width: var(--b47-text-size-s)   !important; height: var(--b47-text-size-s)   !important; }
.is-icon-m   .elementor-icon           { font-size: var(--b47-text-size-m)   !important; width: var(--b47-text-size-m)   !important; height: var(--b47-text-size-m)   !important; }
.is-icon-l   .elementor-icon           { font-size: var(--b47-text-size-l)   !important; width: var(--b47-text-size-l)   !important; height: var(--b47-text-size-l)   !important; }
.is-icon-xl  .elementor-icon           { font-size: var(--b47-text-size-xl)  !important; width: var(--b47-text-size-xl)  !important; height: var(--b47-text-size-xl)  !important; }
.is-icon-2xl .elementor-icon           { font-size: var(--b47-spacing-2xl)   !important; width: var(--b47-spacing-2xl)   !important; height: var(--b47-spacing-3xl)   !important; }
.is-icon-3xl .elementor-icon           { font-size: var(--b47-spacing-3xl)   !important; width: var(--b47-spacing-3xl)   !important; height: var(--b47-spacing-3xl)   !important; }
.is-icon-4xl .elementor-icon           { font-size: var(--b47-spacing-4xl)   !important; width: var(--b47-spacing-4xl)   !important; height: var(--b47-spacing-4xl)   !important; }
.is-icon-5xl .elementor-icon           { font-size: var(--b47-spacing-5xl)   !important; width: var(--b47-spacing-5xl)   !important; height: var(--b47-spacing-5xl)   !important; }
.is-icon-6xl .elementor-icon           { font-size: var(--b47-spacing-6xl)   !important; width: var(--b47-spacing-6xl)   !important; height: var(--b47-spacing-6xl)   !important; }
.is-icon-7xl .elementor-icon           { font-size: var(--b47-spacing-7xl)   !important; width: var(--b47-spacing-7xl)   !important; height: var(--b47-spacing-7xl)   !important; }

/* --- Responsive --- */
@media only screen and (max-width: 1024px) {
    /* --- Hyphens & justification --- */
    .is-hyphens-justify-tablet p      { hyphens: auto !important; text-align: justify !important; }
}
@media only screen and (max-width: 599px) {
    /* --- Utilities --- */
    .is-sit-space                     { display: inline !important; }

    /* --- Hyphens & justification --- */
    .is-hyphens-justify-tablet p      { hyphens: none !important; text-align: left !important; }
    .is-hyphens-justify-mobile p      { hyphens: auto !important; text-align: justify !important; }
}

/* ------------------ TRANSITIONS & ANIMATIONS VARIABLES ------------------ */    

:root {
    /* --- Opacity --- */
    --b47-opacity-none:         0;
    --b47-opacity-xs:           0.1;
    --b47-opacity-s:            0.2;
    --b47-opacity-m:            0.4;
    --b47-opacity-l:            0.5;
    --b47-opacity-xl:           0.6;
    --b47-opacity-2xl:          0.7;
    --b47-opacity-3xl:          0.8;
    --b47-opacity-4xl:          0.9;
    --b47-opacity-full:         1;

    /* --- Transform Scale --- */
    --b47-scale-none:           scale(1);     /* natural size */
    --b47-scale-down-xs:        scale(0.98);  /* zoom-in subtle */
    --b47-scale-down-s:         scale(0.95);  /* zoom-in standard */
    --b47-scale-down-m:         scale(0.90);  /* zoom-in strong */
    --b47-scale-xs:             scale(1.01);  /* grow */
    --b47-scale-s:              scale(1.02);
    --b47-scale-m:              scale(1.03);
    --b47-scale-l:              scale(1.04);
    --b47-scale-xl:             scale(1.05);

    /* --- Transform Translate --- */
    --b47-translate-none:       0px;
    --b47-translate-xs:         4px;
    --b47-translate-s:          8px;
    --b47-translate-m:          12px;
    --b47-translate-l:          16px;
    --b47-translate-xl:         20px;
    --b47-translate-2xl:        32px;
    --b47-translate-3xl:        48px;
    --b47-translate-xs-n:       -4px;
    --b47-translate-s-n:        -8px;
    --b47-translate-m-n:        -12px;
    --b47-translate-l-n:        -16px;
    --b47-translate-xl-n:       -20px;
    --b47-translate-2xl-n:      -32px;
    --b47-translate-3xl-n:      -48px;

    /* --- Transform Rotate --- */
    --b47-rotate-none:          0deg;
    --b47-rotate-xs:            3deg;
    --b47-rotate-s:             6deg;
    --b47-rotate-m:             12deg;
    --b47-rotate-l:             45deg;
    --b47-rotate-xl:            90deg;
    --b47-rotate-full:          360deg;

    /* --- Duration --- */
    --b47-duration-none:        0ms;
    --b47-duration-fast:        150ms;
    --b47-duration-base:        300ms;
    --b47-duration-slow:        500ms;
    --b47-duration-sloth:       600ms;
    --b47-duration-loop:        2s;    /* loop animation cycle */
    --b47-duration-spin:        1s;    /* spin is faster by design */

    /* --- Delay --- */
    --b47-delay-100:            100ms;
    --b47-delay-200:            200ms;
    --b47-delay-300:            300ms;
    --b47-delay-400:            400ms;
    
    /* --- Easing --- */
    --b47-ease:                 ease;
    --b47-ease-in:              ease-in;
    --b47-ease-out:             ease-out;
    --b47-ease-in-out:          ease-in-out;
    --b47-ease-spring:          cubic-bezier(0.34, 1.56, 0.64, 1);

/* ------------------- TRANSITIONS & ANIMATION SHORTCUTS ------------------- */

    /* --- Transitions --- */
    --b47-transition-fast:      var(--b47-duration-fast) var(--b47-ease-out);
    --b47-transition-base:      var(--b47-duration-base) var(--b47-ease-out);
    --b47-transition-slow:      var(--b47-duration-slow) var(--b47-ease-out);

    /* --- Loop Animations --- */
    --b47-animation-loop-up:    b47-loop-up    var(--b47-duration-loop) var(--b47-ease-in-out) infinite;
    --b47-animation-loop-down:  b47-loop-down  var(--b47-duration-loop) var(--b47-ease-in-out) infinite;
    --b47-animation-loop-right: b47-loop-right var(--b47-duration-loop) var(--b47-ease-in-out) infinite;
    --b47-animation-loop-left:  b47-loop-left  var(--b47-duration-loop) var(--b47-ease-in-out) infinite;
    --b47-animation-pulse:      b47-pulse      var(--b47-duration-loop) var(--b47-ease-in-out) infinite;
    --b47-animation-spin:       b47-spin       var(--b47-duration-spin) linear infinite;
    --b47-animation-bounce:     b47-bounce     var(--b47-duration-loop) infinite;

}

/* --- Loop Keyframes --- */
@keyframes b47-loop-up          { 0%, 100% { transform: translateY(var(--b47-translate-none)); } 50% { transform: translateY(var(--b47-loop-distance)); } }
@keyframes b47-loop-down        { 0%, 100% { transform: translateY(var(--b47-translate-none)); } 50% { transform: translateY(var(--b47-loop-distance)); } }
@keyframes b47-loop-right       { 0%, 100% { transform: translateX(var(--b47-translate-none)); } 50% { transform: translateX(var(--b47-loop-distance)); } }
@keyframes b47-loop-left        { 0%, 100% { transform: translateX(var(--b47-translate-none)); } 50% { transform: translateX(var(--b47-loop-distance)); } }
@keyframes b47-pulse            { 0%, 100% { opacity: var(--b47-opacity-full); } 50% { opacity: var(--b47-opacity-l); } }
@keyframes b47-spin             { from { transform: rotate(var(--b47-rotate-none)); } to { transform: rotate(var(--b47-rotate-full)); } }
@keyframes b47-bounce           { 0%, 100% { transform: translateY(var(--b47-translate-none)); animation-timing-function: var(--b47-ease-out); } 50% { transform: translateY(var(--b47-translate-m-n)); animation-timing-function: var(--b47-ease-in); } }

/* --- Entry Keyframes --- */
@keyframes b47-fade-in          { from { opacity: var(--b47-opacity-none); } to { opacity: var(--b47-opacity-full); } }
@keyframes b47-slide-in-up      { from { opacity: var(--b47-opacity-none); transform: translateY(var(--b47-translate-2xl)); } to { opacity: var(--b47-opacity-full); transform: translateY(var(--b47-translate-none)); } }
@keyframes b47-slide-in-down    { from { opacity: var(--b47-opacity-none); transform: translateY(var(--b47-translate-2xl-n)); } to { opacity: var(--b47-opacity-full); transform: translateY(var(--b47-translate-none)); } }
@keyframes b47-zoom-in          { from { opacity: var(--b47-opacity-none); transform: var(--b47-scale-down-s); } to { opacity: var(--b47-opacity-full); transform: var(--b47-scale-none); } }
@keyframes b47-blur-in          { from { opacity: var(--b47-opacity-none); filter: var(--b47-blur-l); } to { opacity: var(--b47-opacity-full); filter: var(--b47-blur-none); } }

/* -------------------- TRANSITIONS & ANIMATION CLASSES -------------------- */

/* --- Grow — scale on hover --- */
.is-grow-xs:hover            { transform: var(--b47-scale-xs); transition: transform var(--b47-transition-fast); }
.is-grow-s:hover             { transform: var(--b47-scale-s);  transition: transform var(--b47-transition-fast); }
.is-grow-m:hover             { transform: var(--b47-scale-m);  transition: transform var(--b47-transition-fast); }
.is-grow-l:hover             { transform: var(--b47-scale-l);  transition: transform var(--b47-transition-fast); }
.is-grow-xl:hover            { transform: var(--b47-scale-xl); transition: transform var(--b47-transition-fast); }

/* --- Shift — translate on hover --- */
.is-shift-up-xs:hover        { transform: translateY(var(--b47-translate-xs-n)); transition: transform var(--b47-transition-fast); }
.is-shift-up-s:hover         { transform: translateY(var(--b47-translate-s-n));  transition: transform var(--b47-transition-fast); }
.is-shift-up-m:hover         { transform: translateY(var(--b47-translate-m-n));  transition: transform var(--b47-transition-fast); }
.is-shift-up-l:hover         { transform: translateY(var(--b47-translate-l-n));  transition: transform var(--b47-transition-fast); }
.is-shift-up-xl:hover        { transform: translateY(var(--b47-translate-xl-n)); transition: transform var(--b47-transition-fast); }

.is-shift-down-xs:hover      { transform: translateY(var(--b47-translate-xs)); transition: transform var(--b47-transition-fast); }
.is-shift-down-s:hover       { transform: translateY(var(--b47-translate-s));  transition: transform var(--b47-transition-fast); }
.is-shift-down-m:hover       { transform: translateY(var(--b47-translate-m));  transition: transform var(--b47-transition-fast); }
.is-shift-down-l:hover       { transform: translateY(var(--b47-translate-l));  transition: transform var(--b47-transition-fast); }
.is-shift-down-xl:hover      { transform: translateY(var(--b47-translate-xl)); transition: transform var(--b47-transition-fast); }

.is-shift-right-xs:hover     { transform: translateX(var(--b47-translate-xs)); transition: transform var(--b47-transition-fast); }
.is-shift-right-s:hover      { transform: translateX(var(--b47-translate-s));  transition: transform var(--b47-transition-fast); }
.is-shift-right-m:hover      { transform: translateX(var(--b47-translate-m));  transition: transform var(--b47-transition-fast); }
.is-shift-right-l:hover      { transform: translateX(var(--b47-translate-l));  transition: transform var(--b47-transition-fast); }
.is-shift-right-xl:hover     { transform: translateX(var(--b47-translate-xl)); transition: transform var(--b47-transition-fast); }

.is-shift-left-xs:hover      { transform: translateX(var(--b47-translate-xs-n)); transition: transform var(--b47-transition-fast); }
.is-shift-left-s:hover       { transform: translateX(var(--b47-translate-s-n));  transition: transform var(--b47-transition-fast); }
.is-shift-left-m:hover       { transform: translateX(var(--b47-translate-m-n));  transition: transform var(--b47-transition-fast); }
.is-shift-left-l:hover       { transform: translateX(var(--b47-translate-l-n));  transition: transform var(--b47-transition-fast); }
.is-shift-left-xl:hover      { transform: translateX(var(--b47-translate-xl-n)); transition: transform var(--b47-transition-fast); }

/* --- Loop — translate on loop --- */
.is-loop-up-xs               { --b47-loop-distance: var(--b47-translate-xs-n); animation: var(--b47-animation-loop-up); }
.is-loop-up-s                { --b47-loop-distance: var(--b47-translate-s-n);  animation: var(--b47-animation-loop-up); }
.is-loop-up-m                { --b47-loop-distance: var(--b47-translate-m-n);  animation: var(--b47-animation-loop-up); }
.is-loop-up-l                { --b47-loop-distance: var(--b47-translate-l-n);  animation: var(--b47-animation-loop-up); }
.is-loop-up-xl               { --b47-loop-distance: var(--b47-translate-xl-n); animation: var(--b47-animation-loop-up); }

.is-loop-down-xs             { --b47-loop-distance: var(--b47-translate-xs);   animation: var(--b47-animation-loop-down); }
.is-loop-down-s              { --b47-loop-distance: var(--b47-translate-s);    animation: var(--b47-animation-loop-down); }
.is-loop-down-m              { --b47-loop-distance: var(--b47-translate-m);    animation: var(--b47-animation-loop-down); }
.is-loop-down-l              { --b47-loop-distance: var(--b47-translate-l);    animation: var(--b47-animation-loop-down); }
.is-loop-down-xl             { --b47-loop-distance: var(--b47-translate-xl);   animation: var(--b47-animation-loop-down); }

.is-loop-right-xs            { --b47-loop-distance: var(--b47-translate-xs);   animation: var(--b47-animation-loop-right); }
.is-loop-right-s             { --b47-loop-distance: var(--b47-translate-s);    animation: var(--b47-animation-loop-right); }
.is-loop-right-m             { --b47-loop-distance: var(--b47-translate-m);    animation: var(--b47-animation-loop-right); }
.is-loop-right-l             { --b47-loop-distance: var(--b47-translate-l);    animation: var(--b47-animation-loop-right); }
.is-loop-right-xl            { --b47-loop-distance: var(--b47-translate-xl);   animation: var(--b47-animation-loop-right); }

.is-loop-left-xs             { --b47-loop-distance: var(--b47-translate-xs-n); animation: var(--b47-animation-loop-left); }
.is-loop-left-s              { --b47-loop-distance: var(--b47-translate-s-n);  animation: var(--b47-animation-loop-left); }
.is-loop-left-m              { --b47-loop-distance: var(--b47-translate-m-n);  animation: var(--b47-animation-loop-left); }
.is-loop-left-l              { --b47-loop-distance: var(--b47-translate-l-n);  animation: var(--b47-animation-loop-left); }
.is-loop-left-xl             { --b47-loop-distance: var(--b47-translate-xl-n); animation: var(--b47-animation-loop-left); }

/* --- Pulse / Spin / Bounce --- */
.is-animate-pulse           { animation: var(--b47-animation-pulse); }
.is-animate-spin            { animation: var(--b47-animation-spin); }
.is-animate-bounce          { animation: var(--b47-animation-bounce); }

/* --- Pulse / Spin / Bounce on hover --- */
.is-animate-pulse-hover:hover   { animation: var(--b47-animation-pulse); }
.is-animate-spin-hover:hover    { animation: var(--b47-animation-spin); }
.is-animate-bounce-hover:hover  { animation: var(--b47-animation-bounce); }

/* --- Entry — variables only, animation fires on b47-animate-in --- */
.is-fade-in-100                 { --b47-anim: b47-fade-in;     --b47-anim-duration: var(--b47-duration-base); --b47-anim-delay: var(--b47-delay-100); }
.is-fade-in-200                 { --b47-anim: b47-fade-in;     --b47-anim-duration: var(--b47-duration-base); --b47-anim-delay: var(--b47-delay-200); }
.is-fade-in-300                 { --b47-anim: b47-fade-in;     --b47-anim-duration: var(--b47-duration-base); --b47-anim-delay: var(--b47-delay-300); }
.is-fade-in-400                 { --b47-anim: b47-fade-in;     --b47-anim-duration: var(--b47-duration-base); --b47-anim-delay: var(--b47-delay-400); }
.is-fade-in-slow-100            { --b47-anim: b47-fade-in;     --b47-anim-duration: var(--b47-duration-slow); --b47-anim-delay: var(--b47-delay-100); }
.is-fade-in-slow-200            { --b47-anim: b47-fade-in;     --b47-anim-duration: var(--b47-duration-slow); --b47-anim-delay: var(--b47-delay-200); }
.is-fade-in-slow-300            { --b47-anim: b47-fade-in;     --b47-anim-duration: var(--b47-duration-slow); --b47-anim-delay: var(--b47-delay-300); }
.is-fade-in-slow-400            { --b47-anim: b47-fade-in;     --b47-anim-duration: var(--b47-duration-slow); --b47-anim-delay: var(--b47-delay-400); }
.is-fade-in-fast-100            { --b47-anim: b47-fade-in;     --b47-anim-duration: var(--b47-duration-fast); --b47-anim-delay: var(--b47-delay-100); }
.is-fade-in-fast-200            { --b47-anim: b47-fade-in;     --b47-anim-duration: var(--b47-duration-fast); --b47-anim-delay: var(--b47-delay-200); }
.is-fade-in-fast-300            { --b47-anim: b47-fade-in;     --b47-anim-duration: var(--b47-duration-fast); --b47-anim-delay: var(--b47-delay-300); }
.is-fade-in-fast-400            { --b47-anim: b47-fade-in;     --b47-anim-duration: var(--b47-duration-fast); --b47-anim-delay: var(--b47-delay-400); }

.is-slide-in-up-100             { --b47-anim: b47-slide-in-up; --b47-anim-duration: var(--b47-duration-base); --b47-anim-delay: var(--b47-delay-100); }
.is-slide-in-up-200             { --b47-anim: b47-slide-in-up; --b47-anim-duration: var(--b47-duration-base); --b47-anim-delay: var(--b47-delay-200); }
.is-slide-in-up-300             { --b47-anim: b47-slide-in-up; --b47-anim-duration: var(--b47-duration-base); --b47-anim-delay: var(--b47-delay-300); }
.is-slide-in-up-400             { --b47-anim: b47-slide-in-up; --b47-anim-duration: var(--b47-duration-base); --b47-anim-delay: var(--b47-delay-400); }
.is-slide-in-up-slow-100        { --b47-anim: b47-slide-in-up; --b47-anim-duration: var(--b47-duration-slow); --b47-anim-delay: var(--b47-delay-100); }
.is-slide-in-up-slow-200        { --b47-anim: b47-slide-in-up; --b47-anim-duration: var(--b47-duration-slow); --b47-anim-delay: var(--b47-delay-200); }
.is-slide-in-up-slow-300        { --b47-anim: b47-slide-in-up; --b47-anim-duration: var(--b47-duration-slow); --b47-anim-delay: var(--b47-delay-300); }
.is-slide-in-up-slow-400        { --b47-anim: b47-slide-in-up; --b47-anim-duration: var(--b47-duration-slow); --b47-anim-delay: var(--b47-delay-400); }
.is-slide-in-up-fast-100        { --b47-anim: b47-slide-in-up; --b47-anim-duration: var(--b47-duration-fast); --b47-anim-delay: var(--b47-delay-100); }
.is-slide-in-up-fast-200        { --b47-anim: b47-slide-in-up; --b47-anim-duration: var(--b47-duration-fast); --b47-anim-delay: var(--b47-delay-200); }
.is-slide-in-up-fast-300        { --b47-anim: b47-slide-in-up; --b47-anim-duration: var(--b47-duration-fast); --b47-anim-delay: var(--b47-delay-300); }
.is-slide-in-up-fast-400        { --b47-anim: b47-slide-in-up; --b47-anim-duration: var(--b47-duration-fast); --b47-anim-delay: var(--b47-delay-400); }

.is-slide-in-down-100           { --b47-anim: b47-slide-in-down; --b47-anim-duration: var(--b47-duration-base); --b47-anim-delay: var(--b47-delay-100); }
.is-slide-in-down-200           { --b47-anim: b47-slide-in-down; --b47-anim-duration: var(--b47-duration-base); --b47-anim-delay: var(--b47-delay-200); }
.is-slide-in-down-300           { --b47-anim: b47-slide-in-down; --b47-anim-duration: var(--b47-duration-base); --b47-anim-delay: var(--b47-delay-300); }
.is-slide-in-down-400           { --b47-anim: b47-slide-in-down; --b47-anim-duration: var(--b47-duration-base); --b47-anim-delay: var(--b47-delay-400); }
.is-slide-in-down-slow-100      { --b47-anim: b47-slide-in-down; --b47-anim-duration: var(--b47-duration-slow); --b47-anim-delay: var(--b47-delay-100); }
.is-slide-in-down-slow-200      { --b47-anim: b47-slide-in-down; --b47-anim-duration: var(--b47-duration-slow); --b47-anim-delay: var(--b47-delay-200); }
.is-slide-in-down-slow-300      { --b47-anim: b47-slide-in-down; --b47-anim-duration: var(--b47-duration-slow); --b47-anim-delay: var(--b47-delay-300); }
.is-slide-in-down-slow-400      { --b47-anim: b47-slide-in-down; --b47-anim-duration: var(--b47-duration-slow); --b47-anim-delay: var(--b47-delay-400); }
.is-slide-in-down-fast-100      { --b47-anim: b47-slide-in-down; --b47-anim-duration: var(--b47-duration-fast); --b47-anim-delay: var(--b47-delay-100); }
.is-slide-in-down-fast-200      { --b47-anim: b47-slide-in-down; --b47-anim-duration: var(--b47-duration-fast); --b47-anim-delay: var(--b47-delay-200); }
.is-slide-in-down-fast-300      { --b47-anim: b47-slide-in-down; --b47-anim-duration: var(--b47-duration-fast); --b47-anim-delay: var(--b47-delay-300); }
.is-slide-in-down-fast-400      { --b47-anim: b47-slide-in-down; --b47-anim-duration: var(--b47-duration-fast); --b47-anim-delay: var(--b47-delay-400); }

.is-zoom-in-100                 { --b47-anim: b47-zoom-in;     --b47-anim-duration: var(--b47-duration-base); --b47-anim-delay: var(--b47-delay-100); }
.is-zoom-in-200                 { --b47-anim: b47-zoom-in;     --b47-anim-duration: var(--b47-duration-base); --b47-anim-delay: var(--b47-delay-200); }
.is-zoom-in-300                 { --b47-anim: b47-zoom-in;     --b47-anim-duration: var(--b47-duration-base); --b47-anim-delay: var(--b47-delay-300); }
.is-zoom-in-400                 { --b47-anim: b47-zoom-in;     --b47-anim-duration: var(--b47-duration-base); --b47-anim-delay: var(--b47-delay-400); }
.is-zoom-in-slow-100            { --b47-anim: b47-zoom-in;     --b47-anim-duration: var(--b47-duration-slow); --b47-anim-delay: var(--b47-delay-100); }
.is-zoom-in-slow-200            { --b47-anim: b47-zoom-in;     --b47-anim-duration: var(--b47-duration-slow); --b47-anim-delay: var(--b47-delay-200); }
.is-zoom-in-slow-300            { --b47-anim: b47-zoom-in;     --b47-anim-duration: var(--b47-duration-slow); --b47-anim-delay: var(--b47-delay-300); }
.is-zoom-in-slow-400            { --b47-anim: b47-zoom-in;     --b47-anim-duration: var(--b47-duration-slow); --b47-anim-delay: var(--b47-delay-400); }
.is-zoom-in-fast-100            { --b47-anim: b47-zoom-in;     --b47-anim-duration: var(--b47-duration-fast); --b47-anim-delay: var(--b47-delay-100); }
.is-zoom-in-fast-200            { --b47-anim: b47-zoom-in;     --b47-anim-duration: var(--b47-duration-fast); --b47-anim-delay: var(--b47-delay-200); }
.is-zoom-in-fast-300            { --b47-anim: b47-zoom-in;     --b47-anim-duration: var(--b47-duration-fast); --b47-anim-delay: var(--b47-delay-300); }
.is-zoom-in-fast-400            { --b47-anim: b47-zoom-in;     --b47-anim-duration: var(--b47-duration-fast); --b47-anim-delay: var(--b47-delay-400); }

.is-blur-in-100                 { --b47-anim: b47-blur-in; --b47-anim-duration: var(--b47-duration-slow); --b47-anim-delay: var(--b47-delay-100); }
.is-blur-in-200                 { --b47-anim: b47-blur-in; --b47-anim-duration: var(--b47-duration-slow); --b47-anim-delay: var(--b47-delay-200); }
.is-blur-in-300                 { --b47-anim: b47-blur-in; --b47-anim-duration: var(--b47-duration-slow); --b47-anim-delay: var(--b47-delay-300); }
.is-blur-in-400                 { --b47-anim: b47-blur-in; --b47-anim-duration: var(--b47-duration-slow); --b47-anim-delay: var(--b47-delay-400); }
.is-blur-in-fast-100            { --b47-anim: b47-blur-in; --b47-anim-duration: var(--b47-duration-base); --b47-anim-delay: var(--b47-delay-100); }
.is-blur-in-fast-200            { --b47-anim: b47-blur-in; --b47-anim-duration: var(--b47-duration-base); --b47-anim-delay: var(--b47-delay-200); }
.is-blur-in-fast-300            { --b47-anim: b47-blur-in; --b47-anim-duration: var(--b47-duration-base); --b47-anim-delay: var(--b47-delay-300); }
.is-blur-in-fast-400            { --b47-anim: b47-blur-in; --b47-anim-duration: var(--b47-duration-base); --b47-anim-delay: var(--b47-delay-400); }

/* --- Observer trigger --- */
body:not(.elementor-editor-active) [class*="b47-fade-in-"]:not(.is-animate-in), body:not(.elementor-editor-active) [class*="b47-slide-in-up-"]:not(.is-animate-in), body:not(.elementor-editor-active) [class*="b47-slide-in-down-"]:not(.is-animate-in), body:not(.elementor-editor-active) [class*="b47-zoom-in-"]:not(.is-animate-in), body:not(.elementor-editor-active) [class*="b47-blur-in-"]:not(.is-animate-in) { opacity: 0; }
.is-animate-in                  { animation: var(--b47-anim) var(--b47-anim-duration) var(--b47-ease-out) both; animation-delay: var(--b47-anim-delay); }

/* ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ 
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ II. DEVELOPMENT ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ */

/* ----------------------------- RESETS & BASE ----------------------------- */

:focus                                        { outline: none !important; }
:focus-visible                                { outline: 2px solid var(--b47-primary-color); outline-offset: 2px; }
html                                          { scroll-behavior: smooth; background-color: var(--b47-primary-background-color); }
html:has(.is-dark-page)                       { background-color: var(--b47-inverse-background-color); }
.page-header                                  { display: none;}
p:first-child                                 { margin-block-start: var(--b47-spacing-none) !important; }
p:last-child                                  { margin-block-end: var(--b47-spacing-none) !important; }
.elementor-editor-active .b47-header          { position: relative !important; top: auto !important; left: auto !important; width: 100% !important; transform:  none !important; }
.elementor-popup-modal .dialog-widget-content { background: transparent !important; }
ul, ol                                        { padding-inline-start: 0; margin-block-start: 0; margin-block-end: 0; list-style: none; }
.elementor-icon-wrapper,
.elementor-widget-icon,
.elementor-widget-icon a,
.elementor-widget-icon svg,
.elementor-icon                               { line-height: var(--b47-spacing-none) !important; height: auto; }

/* ------------------------------ COMPONENTS ------------------------------- */

/* ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ 
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ PRELOADER ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ */

/* ------------------------- PRELOADER VARIABLES --------------------------- */

:root {
    /* --- Preloader Variables --- */
    --b47-preloader-bg:                 var(--b47-primary-background-color);
    --b47-preloader-z:                  calc(var(--b47-z-toast) + 10);
    --b47-preloader-transition:         opacity var(--b47-transition-fast), visibility var(--b47-transition-fast);
    --b47-preloader-spinner-size:       var(--b47-spacing-4xl);          /* 40px */
    --b47-preloader-spinner-track:      var(--b47-border-color);
    --b47-preloader-spinner-border:     var(--b47-border-width) solid var(--b47-preloader-spinner-track);
    --b47-preloader-spinner-color:      var(--b47-primary-color);
    --b47-preloader-opacity:            var(--b47-opacity-full);
    --b47-preloader-opacity-hidden:     var(--b47-opacity-none);
    --b47-preloader-spinner-radius:     var(--b47-radius-max);
    --b47-preloader-spinner-animation:  b47-spin var(--b47-duration-spin) linear infinite
}

/* -------------------------- PRELOADER CLASSES ---------------------------- */

#b47-preloader {
    position:                           fixed;
    inset:                              0;
    z-index:                            var(--b47-preloader-z);
    display:                            flex;
    align-items:                        center;
    justify-content:                    center;
    background-color:                   var(--b47-preloader-bg);
    opacity:                            var(--b47-preloader-opacity);
    transition:                         var(--b47-preloader-transition);
}
#b47-preloader.is-hidden {
    opacity:                            var(--b47-preloader-opacity-hidden);
    visibility:                         hidden;
}
.b47-preloader-spinner {
    width:                              var(--b47-preloader-spinner-size);
    height:                             var(--b47-preloader-spinner-size);
    border:                             var(--b47-preloader-spinner-border);
    border-top-color:                   var(--b47-preloader-spinner-color);
    border-radius:                      var(--b47-preloader-spinner-radius);
    animation:                          var(--b47-preloader-spinner-animation);
}

/* ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ SCROLL INDICATOR ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ */

/* ----------------------- SCROLL INDICATOR VARIABLES ---------------------- */

.b47-scroll {
    /* --- Scroll Indicator --- */
    --b47-scroll-bottom-offset:         50px;
    --b47-scroll-width:                 20px;
    --b47-scroll-height:                35px;
    --b47-scroll-radius:                var(--b47-radius-max);
    --b47-scroll-border-color:          var(--b47-primary-text-color);
    --b47-scroll-border:                var(--b47-scroll-border-width) solid var(--b47-scroll-border-color);
    --b47-scroll-border-width:          var(--b47-border-width);
    --b47-scroll-wheel-width:           3px;
    --b47-scroll-wheel-height:          7px;
    --b47-scroll-wheel-color:           var(--b47-primary-text-color);
    --b47-scroll-wheel-top-start:       8px;
    --b47-scroll-wheel-top-middle:      11px;
    --b47-scroll-wheel-top-end:         14px;
    --b47-scroll-transform:             translateX(-50%);
    --b47-scroll-animation:             b47-scroll-wheel 1.5s linear infinite alternate;
}

/* ------------------------ SCROLL INDICATOR CLASSES ----------------------- */

.b47-scroll {
    position:                           absolute;
    bottom:                             var(--b47-scroll-bottom-offset);
    left:                               50%;
    transform:                          translateX(-50%);
}
.b47-scroll-indicator {
    position:                           relative;
    width:                              var(--b47-scroll-width);
    height:                             var(--b47-scroll-height);
    border:                             var(--b47-scroll-border);
    border-radius:                      var(--b47-scroll-radius);
}
.b47-scroll-indicator__wheel {
    position:                           absolute;
    left:                               50%;
    top:                                var(--b47-scroll-wheel-top-start);
    transform:                          var(--b47-scroll-transform);
    width:                              var(--b47-scroll-wheel-width);
    height:                             var(--b47-scroll-wheel-height);
    background-color:                   var(--b47-scroll-wheel-color);
    border-radius:                      var(--b47-scroll-radius);
    animation:                          var(--b47-scroll-animation);
}

@keyframes b47-scroll-wheel             { 0% { transform: translateX(-50%) translateY(0);   opacity: var(--b47-opacity-l); } 50%  { transform: translateX(-50%) translateY(3px); opacity: var(--b47-opacity-full); } 100% { transform: translateX(-50%) translateY(6px); opacity: var(--b47-opacity-s); } }

/* --- Inverse context --- */
.is-color-inverse .b47-scroll-indicator {
    --b47-scroll-border-color:          var(--b47-heading-inverse-color);
    --b47-scroll-wheel-color:           var(--b47-heading-inverse-color);
}

/* ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ 
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ ROTATE LOCK ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ */

/* ------------------------- ROTATE LOCK VARIABLES ------------------------- */

@media screen and (orientation: landscape) and (max-width: 896px) and (max-height: 500px) {

body {
    --b47-rotate-lock-filter:           none;   /* light mode ↓ active -> dark mode ↓ swap --b47-rotate-lock-filter: none; */
    --b47-rotate-lock-bg:               var(--b47-primary-background-color);
    --b47-rotate-lock-bg-size:          contain;
    --b47-rotate-lock-bg-repeat:        no-repeat;
    --b47-rotate-lock-bg-position:      center;
    --b47-rotate-lock-z-overlay:        999998;
    --b47-rotate-lock-z-icon:           999999;
    --b47-rotate-lock-icon:             url('/wp-content/uploads/rotate-lock.svg');
    --b47-rotate-lock-icon-size:        200px;
    --b47-rotate-lock-top:              50%;
    --b47-rotate-lock-left:             50%;
    --b47-rotate-lock-transform:        translate(-50%, -50%);
}

/* -------------------------- ROTATE LOCK CLASSES -------------------------- */

html, body {
    background-color:                   var(--b47-rotate-lock-bg) !important;
    overflow:                           hidden !important;
}
body::before {
    content:                            "";
    position:                           fixed;
    inset:                              0;
    background:                         var(--b47-rotate-lock-bg);
    z-index:                            var(--b47-rotate-lock-z-overlay);
}
body::after {
    content:                            "";
    position:                           fixed;
    top:                                var(--b47-rotate-lock-top);
    left:                               var(--b47-rotate-lock-left);
    transform:                          var(--b47-rotate-lock-transform);
    width:                              var(--b47-rotate-lock-icon-size);
    height:                             var(--b47-rotate-lock-icon-size);
    background-image:                   var(--b47-rotate-lock-icon);
    background-size:                    var(--b47-rotate-lock-bg-size);
    background-repeat:                  var(--b47-rotate-lock-bg-repeat);
    background-position:                var(--b47-rotate-lock-bg-position);
    filter:                             var(--b47-rotate-lock-filter);
    z-index:                            var(--b47-rotate-lock-z-icon);
}
}

/* ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ 
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ LIGHTBOX ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ */

/* -------------------------- LIGHTBOX VARIABLES --------------------------- */

:root {
    --b47-lightbox-overlay:              var(--b47-overlay-dark-heavy);
    --b47-lightbox-radius:               var(--b47-radius-xl);
    --b47-lightbox-offset:               var(--b47-padding-global);
    --b47-lightbox-transition:           background var(--b47-transition-fast);
    --b47-lightbox-animation-duration:   0.1s;      
    --b47-lightbox-header-z:             10;      

    /* --- Pill --- */
    --b47-lightbox-pill-bg:              var(--b47-backdrop-dark-subtle);
    --b47-lightbox-pill-bg-hover:        var(--b47-backdrop-dark);
    --b47-lightbox-pill-radius:          var(--b47-radius-max);
    --b47-lightbox-pill-padding:         var(--b47-spacing-m) var(--b47-spacing-m);

    /* --- Arrow --- */
    --b47-lightbox-arrow-size:           var(--b47-spacing-5xl);  /* 48px */

    /* --- Icons --- */
    --b47-lightbox-icon-size:            var(--b47-spacing-xl);   /* 20px */
    --b47-lightbox-icon-filter:          invert(1);               
    --b47-lightbox-icon-close:           url('/wp-content/uploads/x-close.svg');
    --b47-lightbox-icon-next:            url('/wp-content/uploads/arrow-right.svg');
    --b47-lightbox-icon-prev:            url('/wp-content/uploads/arrow-left.svg');
    --b47-lightbox-icon-bg-size:         contain;
    --b47-lightbox-icon-bg-repeat:       no-repeat;
    --b47-lightbox-icon-bg-position:     center;

    /* --- Close button --- */
    --b47-lightbox-close-size:           var(--b47-spacing-2xl);  /* 24px */

    /* --- Counter --- */
    --b47-lightbox-counter-min-width:    var(--b47-spacing-3xl);  /* 32px */
    --b47-lightbox-counter-color:        var(--b47-white);
    --b47-lightbox-counter-family:       var(--b47-body-s-family);
    --b47-lightbox-counter-size:         var(--b47-body-s-size);
    --b47-lightbox-counter-weight:       var(--b47-body-s-weight);
    --b47-lightbox-counter-spacing:      var(--b47-body-s-letter-spacing);
    --b47-lightbox-counter-radius:       var(--b47-radius-s);       /* rectangular — less than pill */
    --b47-lightbox-counter-padding:      var(--b47-spacing-xs) var(--b47-spacing-l);  /* wider than tall */
}

/* --------------------------- LIGHTBOX CLASSES ---------------------------- */

/* --- Overlay --- */
.elementor-lightbox {
    background:                         var(--b47-lightbox-overlay) !important;
}

/* --- Faster animation --- */
.elementor-lightbox * {
    animation-duration:                 var(--b47-lightbox-animation-duration) !important;
    transition-duration:                var(--b47-lightbox-animation-duration) !important;
}

/* --- Image radius --- */
.elementor-lightbox .elementor-lightbox-image {
    margin-left:                        var(--b47-lightbox-offset) !important;
    margin-right:                       var(--b47-lightbox-offset) !important;
    border-radius:                      var(--b47-lightbox-radius) !important;
}

/* --- Counter pill --- */
.elementor-lightbox .elementor-slideshow__header {
    position: absolute !important;
    top:                                var(--b47-lightbox-offset) !important;
    left:                               var(--b47-lightbox-offset) !important;
    padding:                            0px !important;
    z-index:                            var(--b47-lightbox-header-z);
}
.elementor-lightbox .elementor-slideshow__counter {
    display:                            inline-flex !important;
    align-items:                        center !important;
    justify-content:                    center !important;
    background:                         var(--b47-lightbox-pill-bg);
    border-radius:                      var(--b47-lightbox-counter-radius);
    padding:                            var(--b47-lightbox-counter-padding);
    min-width:                          var(--b47-lightbox-counter-min-width);
    font-family:                        var(--b47-lightbox-counter-family) !important;
    font-size:                          var(--b47-lightbox-counter-size) !important;
    font-weight:                        var(--b47-lightbox-counter-weight) !important;
    letter-spacing:                     var(--b47-lightbox-counter-spacing) !important;
    color:                              var(--b47-lightbox-counter-color) !important;
}

/* --- Hide counter pill when single image --- */
.elementor-lightbox .elementor-slideshow__header:not(:has(.swiper-pagination-fraction)) {
                                        display: none !important; }

/* --- Close button --- */
.elementor-lightbox .dialog-close-button.dialog-lightbox-close-button * {
                                        display: none !important; }
.elementor-lightbox .dialog-close-button.dialog-lightbox-close-button {
    top:                                var(--b47-lightbox-offset) !important;
    right:                              var(--b47-lightbox-offset) !important;
    left:                               auto !important;
    margin-top:                         0px !important;
    display:                            inline-flex !important;
    align-items:                        center !important;
    justify-content:                    center !important;
    width:                              auto !important;
    height:                             auto !important;
    padding:                            var(--b47-lightbox-pill-padding) !important;
    background:                         var(--b47-lightbox-pill-bg) !important;
    border-radius:                      var(--b47-lightbox-pill-radius) !important;
    transition:                         var(--b47-lightbox-transition);
}
.elementor-lightbox .dialog-close-button.dialog-lightbox-close-button:hover {
    background:                         var(--b47-lightbox-pill-bg-hover) !important;
}
.elementor-lightbox .dialog-close-button.dialog-lightbox-close-button::after {
    content:                            "";
    display:                            block !important;
    width:                              var(--b47-lightbox-close-size);
    height:                             var(--b47-lightbox-close-size);
    background-image:                   var(--b47-lightbox-icon-close);
    background-size:                    var(--b47-lightbox-icon-bg-size);
    background-repeat:                  var(--b47-lightbox-icon-bg-repeat);
    background-position:                var(--b47-lightbox-icon-bg-position);
    filter:                             var(--b47-lightbox-icon-filter);
}

/* --- Arrows --- */
.elementor-lightbox .elementor-swiper-button {
    position:                           absolute !important;
    top:                                50% !important;
    transform:                          translateY(-50%) !important;
    width:                              var(--b47-lightbox-arrow-size) !important;
    height:                             var(--b47-lightbox-arrow-size) !important;
    background:                         var(--b47-lightbox-pill-bg) !important;
    border-radius:                      var(--b47-lightbox-pill-radius) !important;
    display:                            flex !important;
    align-items:                        center !important;
    justify-content:                    center !important;
    transition:                         var(--b47-lightbox-transition);
}
.elementor-lightbox .elementor-swiper-button:hover {
    background:                         var(--b47-lightbox-pill-bg-hover) !important;
}
.elementor-lightbox .elementor-swiper-button svg {
    display:                            none !important;
}
.elementor-lightbox .elementor-swiper-button-next {
    right:                              var(--b47-lightbox-offset) !important;
    left:                               auto !important;
}
.elementor-lightbox .elementor-swiper-button-prev {
    left:                               var(--b47-lightbox-offset) !important;
    right:                              auto !important;
}
.elementor-lightbox .elementor-swiper-button-next::before {
    content:                            "";
    display:                            block;
    width:                              var(--b47-lightbox-icon-size);
    height:                             var(--b47-lightbox-icon-size);
    background-image:                   var(--b47-lightbox-icon-next);
    background-size:                    var(--b47-lightbox-icon-bg-size);
    background-repeat:                  var(--b47-lightbox-icon-bg-repeat);
    background-position:                var(--b47-lightbox-icon-bg-position);
    filter:                             var(--b47-lightbox-icon-filter);
}
.elementor-lightbox .elementor-swiper-button-prev::before {
    content:                            "";
    display:                            block;
    width:                              var(--b47-lightbox-icon-size);
    height:                             var(--b47-lightbox-icon-size);
    background-image:                   var(--b47-lightbox-icon-prev);
    background-size:                    var(--b47-lightbox-icon-bg-size);
    background-repeat:                  var(--b47-lightbox-icon-bg-repeat);
    background-position:                var(--b47-lightbox-icon-bg-position);
    filter:                             var(--b47-lightbox-icon-filter);
}

/* --- Responsive --- */
@media only screen and (max-width: 1024px) {
    .elementor-lightbox .swiper-zoom-container {
        width:                          calc(100% - (var(--b47-lightbox-offset) * 2)) !important; }
}
@media only screen and (max-width: 599px) {
    .elementor-lightbox .elementor-swiper-button {
                                        display: none !important; }
}

/* ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ 
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ BUTTONS ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ */

/* -------------------------- BUTTONS VARIABLES ---------------------------- */

:root {
    /* --- Padding per size — y x --- */
    --b47-button-padding-s:                      var(--b47-spacing-xs)   var(--b47-spacing-m);
    --b47-button-padding-m:                      var(--b47-spacing-s)    var(--b47-spacing-l);
    --b47-button-padding-l:                      var(--b47-spacing-m)    var(--b47-spacing-l);
    --b47-button-padding-xl:                     var(--b47-spacing-m)    var(--b47-spacing-xl);

    /* --- Layout --- */
    --b47-button-radius:                         var(--b47-spacing-3xl);
    --b47-button-gap:                            var(--b47-spacing-s);
    --b47-button-border-width:                   var(--b47-border-width);

    /* --- Typography --- */
    --b47-button-family:                         var(--b47-font-primary);
    --b47-button-weight:                         var(--b47-font-weight-regular);
    --b47-button-line-height:                    var(--b47-line-height-none);
    --b47-button-letter-spacing:                 var(--b47-letter-spacing-tight);
    --b47-button-text-transform:                 var(--b47-text-transform-none);

    /* --- Font size per size --- */
    --b47-button-size-s:                         var(--b47-text-size-xs);
    --b47-button-size-m:                         var(--b47-text-size-m);
    --b47-button-size-l:                         var(--b47-text-size-l);
    --b47-button-size-xl:                        var(--b47-text-size-xl);

    /* --- Primary variant — white fill, black text --- */
    --b47-button-bg:                             var(--b47-white);
    --b47-button-bg-hover:                       var(--b47-gray-100);
    --b47-button-text:                           var(--b47-black);
    --b47-button-text-hover:                     var(--b47-black);
    --b47-button-accent:                         var(--b47-white);
    --b47-button-accent-hover:                   var(--b47-white);
    --b47-button-border-none:                    none;
    --b47-button-border:                         var(--b47-button-border-none);
    --b47-button-border-transparent:             var(--b47-button-border-width) solid transparent;
    --b47-button-gradient-border:                var(--b47-gradient-border-primary);
    --b47-button-shadow-default:                 none;
    --b47-button-shadow:                         var(--b47-shadow-button);
    --b47-button-delay-none:                     var(--b47-duration-none);

    /* --- Secondary variant — dark fill, white text --- */
    --b47-button-secondary-bg:                   var(--b47-gray-700);
    --b47-button-secondary-bg-hover:             var(--b47-white);
    --b47-button-secondary-text-hover:           var(--b47-black);
    --b47-button-secondary-accent:               var(--b47-white);
    --b47-button-secondary-accent-hover:         var(--b47-black);

    /* --- Ghost variant --- */
    --b47-button-ghost-bg:                       transparent;
    --b47-button-ghost-accent:                   var(--b47-primary-text-color);
    --b47-button-ghost-accent-hover:             var(--b47-heading-color);
    --b47-button-ghost-primary-accent:           var(--b47-primary-color);
    --b47-button-ghost-primary-accent-hover:     var(--b47-primary-color-dark);
    --b47-button-ghost-shadow:                   none;
    --b47-button-ghost-underline-offset:         -5px;
    --b47-button-ghost-transition:               transform 0.55s cubic-bezier(0.785, 0.135, 0.15, 0.86) 0.55s;
    --b47-button-ghost-delay-in:                 0.5s;
    --b47-button-ghost-delay-out:                0.55s;

    /* --- Inverse — primary — dark fill for light sections --- */
    --b47-button-inverse-bg:                     var(--b47-black);
    --b47-button-inverse-bg-hover:               var(--b47-gray-700);
    --b47-button-inverse-text:                   var(--b47-white);
    --b47-button-inverse-accent:                 var(--b47-black);
    --b47-button-inverse-accent-hover:           var(--b47-gray-800);
    --b47-button-gradient-border-inverse:        var(--b47-gradient-border-inverse);

    /* --- Inverse — secondary --- */
    --b47-button-inverse-secondary-bg:           var(--b47-gray-700);
    --b47-button-inverse-secondary-bg-hover:     var(--b47-black);
    --b47-button-inverse-secondary-text-hover:   var(--b47-white);
    --b47-button-inverse-secondary-accent:       var(--b47-white);
    --b47-button-inverse-secondary-accent-hover: var(--b47-white);

    /* --- Inverse — ghost --- */
    --b47-button-inverse-ghost-accent:           var(--b47-gray-700);
    --b47-button-inverse-ghost-accent-hover:     var(--b47-gray-800);

    /* --- is-btn-inverse (white fill — for dark/inverse sections) --- */
    --b47-button-white-bg:                       var(--b47-white);
    --b47-button-white-text:                     var(--b47-black);
    --b47-button-white-text-hover:               var(--b47-white);
    --b47-button-white-accent:                   var(--b47-white);
    --b47-button-white-bg-hover:                 var(--b47-primary-color);
    --b47-button-white-accent-hover:             var(--b47-primary-color);
    --b47-button-gradient-border-white:          var(--b47-gradient-border-btn-inverse);
    --b47-button-gradient-border-white-hover:    var(--b47-gradient-border-btn-inverse-hover);

    /* --- Arrow circle variant --- */
    --b47-btn-arrow-bg-hover:                    var(--b47-white);
    --b47-btn-arrow-padding:                     6px 8px 6px 12px;
    --b47-button-arrow-icon:                     url('/wp-content/uploads/arrow-right.svg');
    --b47-button-arrow-icon-size:                20px;
    --b47-button-arrow-size:                     var(--b47-spacing-xl);
    --b47-button-arrow-offset:                   translateX(var(--b47-translate-xs));
    --b47-button-arrow-margin:                   -3px;
    --b47-button-arrow-transform:                translateY(-50%) rotate(-45deg);
    --b47-button-arrow-transition:               var(--b47-duration-fast) var(--b47-ease-in-out);
    --b47-button-arrow-circle-size:              var(--b47-spacing-3xl);
    --b47-button-arrow-circle-size-hover:        var(--b47-spacing-4xl);
    --b47-button-arrow-circle-bg:                var(--b47-black);
    --b47-button-arrow-circle-padding:           var(--b47-spacing-xs);
    --b47-button-arrow-circle-scale:             0.8;
    
    /* --- Inverse arrow circle --- */
    --b47-btn-arrow-circle-bg-inverse:           var(--b47-black);
    --b47-button-arrow-circle-bg-inverse:        var(--b47-white);
    --b47-button-arrow-circle-icon-bg-inverse:   var(--b47-black);

    /* --- Disabled --- */
    --b47-button-disabled-opacity:               var(--b47-opacity-s);
}

/* --------------------------- BUTTONS CLASSES ----------------------------- */

/* --- Primary button - base --- */
.elementor-button {
    position:                                   relative;
    display:                                    inline-flex !important;
    align-items:                                center !important;
    justify-content:                            center !important;
    background-color:                           var(--b47-button-bg) !important;
    color:                                      var(--b47-button-text) !important;
    font-family:                                var(--b47-button-family) !important;
    font-size:                                  var(--b47-button-size-m) !important;
    font-weight:                                var(--b47-button-weight) !important;
    line-height:                                var(--b47-button-line-height) !important;
    letter-spacing:                             var(--b47-button-letter-spacing) !important;
    text-transform:                             var(--b47-button-text-transform) !important;
    padding:                                    var(--b47-button-padding-m) !important;
    border:                                     var(--b47-button-border) !important;
    border-radius:                              var(--b47-button-radius) !important;
    box-shadow:                                 var(--b47-button-shadow-default) !important;
    transition:                                 none !important;
    cursor:                                     pointer !important;
}
.elementor-button:hover {
    background-color:                           var(--b47-button-bg-hover) !important;
    border-color:                               var(--b47-button-accent-hover) !important;
    color:                                      var(--b47-button-text-hover) !important;
}

/* --- Gradient border - primary --- */
.is-btn-gradient-border .elementor-button,
.elementor-button.is-btn-gradient-border {
    background:                                 linear-gradient(var(--b47-button-bg), var(--b47-button-bg)) padding-box,
                                                var(--b47-button-gradient-border) border-box;
    border:                                     var(--b47-button-border-transparent) !important;
    box-shadow:                                 var(--b47-shadow-button) !important;
}
.is-btn-gradient-border .elementor-button:hover,
.elementor-button.is-btn-gradient-border:hover {
    background:                                 linear-gradient(var(--b47-button-bg-hover), var(--b47-button-bg-hover)) padding-box,
                                                var(--b47-button-gradient-border) border-box;
}

/* --- Size modifiers --- */
.is-btn-s .elementor-button,
.elementor-button.is-btn-s {
    font-size:                                  var(--b47-button-size-s) !important;
    padding:                                    var(--b47-button-padding-s) !important;
}
.is-btn-m .elementor-button,
.elementor-button.is-btn-m {
    font-size:                                  var(--b47-button-size-s) !important;
    padding:                                    var(--b47-button-padding-m) !important;
}
.is-btn-l .elementor-button,
.elementor-button.is-btn-l {
    font-size:                                  var(--b47-button-size-m) !important;
    padding:                                    var(--b47-button-padding-l) !important;
}
.is-btn-xl .elementor-button,
.elementor-button.is-btn-xl {
    font-size:                                  var(--b47-button-size-m) !important;
    padding:                                    var(--b47-button-padding-xl) !important;
}

/* --- Base — content wrapper --- */
.elementor-button .elementor-button-content-wrapper {
    display:                                    flex !important;
    align-items:                                center !important;
    gap:                                        var(--b47-button-gap) !important;
}

/* --- Stretch variant --- */
.is-btn-stretch .elementor-button-wrapper,
.is-btn-stretch .elementor-button {
    width:                                      100% !important;
}
.is-btn-stretch.is-space-between .elementor-button .elementor-button-content-wrapper,
.is-btn-stretch .is-space-between .elementor-button .elementor-button-content-wrapper {
    justify-content:                            space-between !important;
    width:                                      100% !important;
}

/* --- Inverse — primary --- */
.is-color-inverse .elementor-button {
    background-color:                           var(--b47-button-inverse-bg) !important;
    color:                                      var(--b47-button-inverse-text) !important;
    border-color:                               var(--b47-button-inverse-accent) !important;
}
.is-color-inverse .elementor-button:hover {
    background-color:                           var(--b47-button-inverse-bg-hover) !important;
    border-color:                               var(--b47-button-inverse-accent-hover) !important;
}
.is-color-inverse .is-btn-gradient-border .elementor-button,
.is-btn-gradient-border.is-color-inverse .elementor-button {
    background-color:                           var(--b47-button-ghost-bg) !important;
    background:                                 linear-gradient(var(--b47-button-inverse-bg), var(--b47-button-inverse-bg)) padding-box,
                                                var(--b47-button-gradient-border-inverse) border-box !important;
    border:                                     var(--b47-button-border-transparent) !important;
}
.is-color-inverse .is-btn-gradient-border .elementor-button:hover,
.is-btn-gradient-border.is-color-inverse .elementor-button:hover {
    background-color:                           var(--b47-button-ghost-bg) !important;
    background:                                 linear-gradient(var(--b47-button-inverse-bg-hover), var(--b47-button-inverse-bg-hover)) padding-box,
                                                var(--b47-button-gradient-border-inverse) border-box !important;
}

/* --- White — primary --- */
.is-btn-white .elementor-button,
.elementor-button.is-btn-white {
    background-color:                           var(--b47-button-white-bg) !important;
    color:                                      var(--b47-button-white-text) !important;
    border-color:                               var(--b47-button-white-accent) !important;
}
.is-btn-white .elementor-button:hover,
.elementor-button.is-btn-white:hover {
    background-color:                           var(--b47-button-white-bg-hover) !important;
    color:                                      var(--b47-button-white-text-hover) !important;
    border-color:                               var(--b47-button-white-accent-hover) !important;
}
.is-btn-white.is-btn-gradient-border .elementor-button,
.is-btn-gradient-border.is-btn-white .elementor-button {
    background:                                 linear-gradient(var(--b47-button-white-bg), var(--b47-button-white-bg)) padding-box,
                                                var(--b47-button-gradient-border-white) border-box;
    border:                                     var(--b47-button-border-transparent) !important;
    box-shadow:                                 var(--b47-button-shadow) !important;
}
.is-btn-white.is-btn-gradient-border .elementor-button:hover,
.is-btn-gradient-border.is-btn-white .elementor-button:hover {
    background-color:                           var(--b47-button-ghost-bg) !important;
    background:                                 linear-gradient(var(--b47-button-white-bg-hover), var(--b47-button-white-bg-hover)) padding-box,
                                                var(--b47-button-gradient-border-white-hover) border-box !important;
    border:                                     var(--b47-button-border-transparent) !important;
}

/* --- Secondary button — base --- */
.is-btn-secondary .elementor-button,
.elementor-button.is-btn-secondary {
    background-color:                           var(--b47-button-secondary-bg) !important;
    color:                                      var(--b47-button-secondary-accent) !important;
    border-color:                               var(--b47-button-secondary-accent) !important;
    box-shadow:                                 var(--b47-button-shadow-default) !important;
}
.is-btn-secondary .elementor-button:hover,
.elementor-button.is-btn-secondary:hover {
    background-color:                           var(--b47-button-secondary-bg-hover) !important;
    color:                                      var(--b47-button-secondary-text-hover) !important;
    border-color:                               var(--b47-button-secondary-accent-hover) !important;
}

/* --- Secondary button — is-color-primary modifier --- */
.is-btn-secondary.is-color-primary .elementor-button,
.is-color-primary.is-btn-secondary .elementor-button,
.is-color-primary .is-btn-secondary .elementor-button {
    color:                                      var(--b47-button-accent) !important;
    border-color:                               var(--b47-button-accent) !important;
}
.is-btn-secondary.is-color-primary .elementor-button:hover,
.is-color-primary.is-btn-secondary .elementor-button:hover,
.is-color-primary .is-btn-secondary .elementor-button:hover {
    background-color:                           var(--b47-button-bg-hover) !important;
    color:                                      var(--b47-button-text-hover) !important;
    border-color:                               var(--b47-button-accent-hover) !important;
}

/* --- Inverse — secondary --- */
.is-color-inverse .is-btn-secondary .elementor-button,
.is-btn-secondary.is-color-inverse .elementor-button {
    background-color:                           var(--b47-button-inverse-secondary-bg) !important;
    color:                                      var(--b47-button-inverse-secondary-accent) !important;
    border-color:                               var(--b47-button-inverse-secondary-accent) !important;
}
.is-color-inverse .is-btn-secondary .elementor-button:hover,
.is-btn-secondary.is-color-inverse .elementor-button:hover {
    background-color:                           var(--b47-button-inverse-secondary-bg-hover) !important;
    color:                                      var(--b47-button-inverse-secondary-accent-hover) !important;
    border-color:                               var(--b47-button-inverse-secondary-accent-hover) !important;
}

/* --- White — secondary --- */
.is-btn-white.is-btn-secondary .elementor-button,
.is-btn-secondary.is-btn-white .elementor-button {
    background-color:                           var(--b47-button-secondary-bg) !important;
    color:                                      var(--b47-button-white-accent) !important;
    border-color:                               var(--b47-button-white-accent) !important;
}
.is-btn-white.is-btn-secondary .elementor-button:hover,
.is-btn-secondary.is-btn-white .elementor-button:hover {
    background-color:                           var(--b47-button-white-bg) !important;
    color:                                      var(--b47-button-secondary-accent) !important;
    border-color:                               var(--b47-button-white-accent) !important;
}

/* --- Ghost button — base --- */
.is-btn-ghost .elementor-button,
.elementor-button.is-btn-ghost {
    background-color:                           var(--b47-button-ghost-bg) !important;
    color:                                      var(--b47-button-ghost-accent) !important;
    border:                                     var(--b47-button-border-transparent) !important;
    box-shadow:                                 var(--b47-button-ghost-shadow) !important;
    padding-left:                               var(--b47-spacing-none) !important;
    padding-right:                              var(--b47-spacing-none) !important;
}
.is-btn-ghost .elementor-button:hover,
.elementor-button.is-btn-ghost:hover {
    background-color:                           var(--b47-button-ghost-bg) !important;
    color:                                      var(--b47-button-ghost-accent-hover) !important;
}

/* --- Ghost — animated underline --- */
.is-btn-ghost .elementor-button .elementor-button-content-wrapper,
.elementor-button.is-btn-ghost .elementor-button-content-wrapper {
    position:                                   relative;
    text-transform:                             var(--b47-button-text-transform);
}
.is-btn-ghost .elementor-button .elementor-button-content-wrapper::before,
.is-btn-ghost .elementor-button .elementor-button-content-wrapper::after,
.elementor-button.is-btn-ghost .elementor-button-content-wrapper::before,
.elementor-button.is-btn-ghost .elementor-button-content-wrapper::after {
    content:                                    "";
    position:                                   absolute;
    bottom:                                     var(--b47-button-ghost-underline-offset);
    left:                                       0;
    right:                                      0;
    height:                                     var(--b47-button-border-width);
    background-color:                           currentColor;
}
.is-btn-ghost .elementor-button .elementor-button-content-wrapper::before,
.elementor-button.is-btn-ghost .elementor-button-content-wrapper::before {
    transform-origin:                           left;
    transform:                                  scaleX(1);
    transition:                                 var(--b47-button-ghost-transition);
    transition-delay:                           var(--b47-button-ghost-delay-in);
}
.is-btn-ghost .elementor-button .elementor-button-content-wrapper::after,
.elementor-button.is-btn-ghost .elementor-button-content-wrapper::after {
    transform-origin:                           right;
    transform:                                  scaleX(0);
    transition:                                 var(--b47-button-ghost-transition);
    transition-delay:                           var(--b47-button-delay-none);
}
.is-btn-ghost .elementor-button:hover .elementor-button-content-wrapper::before,
.elementor-button.is-btn-ghost:hover .elementor-button-content-wrapper::before {
    transform:                                  scaleX(0);
    transform-origin:                           right;
    transition-delay:                           var(--b47-button-delay-none);
}
.is-btn-ghost .elementor-button:hover .elementor-button-content-wrapper::after,
.elementor-button.is-btn-ghost:hover .elementor-button-content-wrapper::after {
    transform:                                  scaleX(1);
    transform-origin:                           left;
    transition-delay:                           var(--b47-button-ghost-delay-out);
}

/* --- Ghost — is-color-primary modifier --- */
.is-btn-ghost.is-color-primary .elementor-button,
.is-color-primary .is-btn-ghost .elementor-button {
    color:                                      var(--b47-button-ghost-primary-accent) !important;
}
.is-btn-ghost.is-color-primary .elementor-button:hover,
.is-color-primary .is-btn-ghost .elementor-button:hover {
    color:                                      var(--b47-button-ghost-primary-accent-hover) !important;
}

/* --- Inverse — ghost --- */
.is-color-inverse .is-btn-ghost .elementor-button,
.is-btn-ghost.is-color-inverse .elementor-button {
    color:                                      var(--b47-button-inverse-ghost-accent) !important;
    border:                                     var(--b47-button-border-none) !important;
}
.is-color-inverse .is-btn-ghost .elementor-button:hover,
.is-btn-ghost.is-color-inverse .elementor-button:hover {
    color:                                      var(--b47-button-inverse-ghost-accent-hover) !important;
}
.is-color-inverse .is-btn-ghost .elementor-button .elementor-button-content-wrapper::before,
.is-color-inverse .is-btn-ghost .elementor-button .elementor-button-content-wrapper::after,
.is-btn-ghost.is-color-inverse .elementor-button .elementor-button-content-wrapper::before,
.is-btn-ghost.is-color-inverse .elementor-button .elementor-button-content-wrapper::after {
    background-color:                           var(--b47-button-inverse-ghost-accent) !important;
}
.is-color-inverse .is-btn-ghost .elementor-button:hover .elementor-button-content-wrapper::before,
.is-color-inverse .is-btn-ghost .elementor-button:hover .elementor-button-content-wrapper::after,
.is-btn-ghost.is-color-inverse .elementor-button:hover .elementor-button-content-wrapper::before,
.is-btn-ghost.is-color-inverse .elementor-button:hover .elementor-button-content-wrapper::after {
    background-color:                           var(--b47-button-inverse-ghost-accent-hover) !important;
}

/* --- White — ghost --- */
.is-btn-white.is-btn-ghost .elementor-button,
.is-btn-ghost.is-btn-white .elementor-button {
    background-color:                           var(--b47-button-ghost-bg) !important;
    color:                                      var(--b47-button-white-accent) !important;
    border:                                     var(--b47-button-border-none) !important;
}
.is-btn-white.is-btn-ghost .elementor-button:hover,
.is-btn-ghost.is-btn-white .elementor-button:hover {
    background-color:                           var(--b47-button-ghost-bg) !important;
    color:                                      var(--b47-button-inverse-ghost-accent-hover) !important;
}
.is-btn-white.is-btn-ghost .elementor-button .elementor-button-content-wrapper::before,
.is-btn-white.is-btn-ghost .elementor-button .elementor-button-content-wrapper::after,
.is-btn-ghost.is-btn-white .elementor-button .elementor-button-content-wrapper::before,
.is-btn-ghost.is-btn-white .elementor-button .elementor-button-content-wrapper::after {
    background-color:                           var(--b47-button-white-accent) !important;
}
.is-btn-white.is-btn-ghost .elementor-button:hover .elementor-button-content-wrapper::before,
.is-btn-white.is-btn-ghost .elementor-button:hover .elementor-button-content-wrapper::after,
.is-btn-ghost.is-btn-white .elementor-button:hover .elementor-button-content-wrapper::before,
.is-btn-ghost.is-btn-white .elementor-button:hover .elementor-button-content-wrapper::after {
    background-color:                           var(--b47-button-inverse-ghost-accent-hover) !important;
}

/* --- Arrow — add .is-btn-arrow to the button container --- */
.is-btn-arrow .elementor-button,
.elementor-button.is-btn-arrow {
    padding:                                    var(--b47-btn-arrow-padding) !important;
}
.is-btn-arrow .elementor-button:hover,
.elementor-button.is-btn-arrow:hover {
    background:                                 var(--b47-btn-arrow-bg-hover) !important;
}
.is-btn-arrow .elementor-button .elementor-button-content-wrapper,
.elementor-button.is-btn-arrow .elementor-button-content-wrapper {
    position:                                   relative;
    gap:                                        18px !important;
}
.is-btn-arrow .elementor-button .elementor-button-content-wrapper::before,
.elementor-button.is-btn-arrow .elementor-button-content-wrapper::before {
    content:                                    "";
    order:                                      2;
    display:                                    inline-block;
    flex-shrink:                                0;
    width:                                      var(--b47-button-arrow-circle-size);
    height:                                     var(--b47-button-arrow-circle-size);
    padding-left:                               var(--b47-spacing-l) !important;
    border-radius:                              var(--b47-radius-max);
    background-color:                           var(--b47-button-arrow-circle-bg);
    transition:                                 width var(--b47-button-arrow-transition),
                                                margin-left var(--b47-button-arrow-transition);
}
.is-btn-arrow .elementor-button:hover .elementor-button-content-wrapper::before,
.elementor-button.is-btn-arrow:hover .elementor-button-content-wrapper::before {
    width:                                      var(--b47-button-arrow-circle-size-hover);
    margin-left:                                calc(0px - (var(--b47-button-arrow-circle-size-hover) - var(--b47-button-arrow-circle-size)));
}
.is-btn-arrow .elementor-button .elementor-button-content-wrapper::after,
.elementor-button.is-btn-arrow .elementor-button-content-wrapper::after {
    content:                                    "";
    position:                                   absolute;
    right:                                      calc((var(--b47-button-arrow-circle-size) - var(--b47-button-arrow-icon-size)) / 2);
    top:                                        50%;
    transform:                                  translateY(-50%) rotate(0deg);
    width:                                      var(--b47-button-arrow-icon-size);
    height:                                     var(--b47-button-arrow-icon-size);
    background-color:                           var(--b47-button-white-bg);
    -webkit-mask-image:                         var(--b47-button-arrow-icon);
    mask-image:                                 var(--b47-button-arrow-icon);
    -webkit-mask-repeat:                        no-repeat;
    mask-repeat:                                no-repeat;
    -webkit-mask-size:                          contain;
    mask-size:                                  contain;
    -webkit-mask-position:                      center;
    mask-position:                              center;
    transition:                                 transform var(--b47-button-arrow-transition),
                                                right var(--b47-button-arrow-transition);
}
.is-btn-arrow .elementor-button:hover .elementor-button-content-wrapper::after,
.elementor-button.is-btn-arrow:hover .elementor-button-content-wrapper::after {
    right:                                      calc((var(--b47-button-arrow-circle-size-hover) - var(--b47-button-arrow-icon-size)) / 2);
    transform:                                  var(--b47-button-arrow-transform);
}

.is-color-inverse .is-btn-arrow .elementor-button,
.is-color-inverse.is-btn-arrow .elementor-button {
    background:                                 var(--b47-btn-arrow-circle-bg-inverse) !important;
}
.is-color-inverse .is-btn-arrow .elementor-button .elementor-button-content-wrapper::before,
.is-color-inverse.is-btn-arrow .elementor-button .elementor-button-content-wrapper::before {
    background-color:                           var(--b47-button-arrow-circle-bg-inverse);
}
.is-color-inverse .is-btn-arrow .elementor-button .elementor-button-content-wrapper::after,
.is-color-inverse.is-btn-arrow .elementor-button .elementor-button-content-wrapper::after {
    background-color:                           var(--b47-button-arrow-circle-icon-bg-inverse);
}

/* --- Disabled --- */
.is-disabled .elementor-button,
.elementor-button.is-disabled,
.elementor-button:disabled {
    opacity:                                    var(--b47-button-disabled-opacity) !important;
    cursor:                                     not-allowed !important;
    pointer-events:                             none !important;
}

/* --- Responsive --- */
@media only screen and (max-width: 1024px) {
    .is-btn-stretch-tablet .elementor-button-wrapper,
    .is-btn-stretch-tablet .elementor-button {
        width:                                  100% !important;
    }
    .is-btn-stretch.is-space-between .elementor-button .elementor-button-content-wrapper,
    .is-btn-stretch .is-space-between .elementor-button .elementor-button-content-wrapper {
        justify-content:                        space-between !important;
        width:                                  100% !important;
    }
}
@media only screen and (max-width: 599px) {
    .is-btn-stretch-mobile .elementor-button-wrapper,
    .is-btn-stretch-mobile .elementor-button {
        width:                                  100% !important;
    }
    .is-btn-stretch.is-space-between .elementor-button .elementor-button-content-wrapper,
    .is-btn-stretch .is-space-between .elementor-button .elementor-button-content-wrapper {
        justify-content:                        space-between !important;
        width:                                  100% !important;
    }
}

/* ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ 
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ LISTS ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ */

/* --------------------------- LISTS VARIABLES ----------------------------- */

:root {
    /* --- Layout --- */
    --b47-list-item-gap:                        var(--b47-spacing-m);
    --b47-list-icon-gap:                        var(--b47-spacing-m);
    --b47-list-icon-size:                       16px;
    --icon-vertical-align:                      flex-start !important;
    --icon-vertical-offset:                     4.5px !important;           /* adjust per project */
    --b47-list-icon-offset-s:                   2.1px;                        /* adjust per project */
    --b47-list-icon-offset-xs:                  1px;                        /* adjust per project */
    --b47-list-transition:                      fill var(--b47-transition-fast), color var(--b47-transition-fast), opacity var(--b47-transition-fast);

    /* --- Typography --- */
    --b47-list-text-family:                     var(--b47-font-primary);
    --b47-list-text-size:                       var(--b47-body-size);
    --b47-list-text-line-height:                var(--b47-line-height-normal);
    --b47-list-text-letter-spacing:             var(--b47-letter-spacing-none);
    --b47-list-text-weight:                     var(--b47-body-weight);
    --b47-list-text-size-s:                     var(--b47-body-s-size);
    --b47-list-text-weight-s:                   var(--b47-body-s-weight);
    --b47-list-text-size-xs:                    var(--b47-body-xs-size);
    --b47-list-text-weight-xs:                  var(--b47-body-xs-weight);

    /* --- Colors — default --- */
    --b47-list-icon-color:                      var(--b47-primary-text-color);
    --b47-list-text-color:                      var(--b47-primary-text-color);
    --b47-list-icon-hover:                      var(--b47-primary-color);
    --b47-list-text-hover:                      var(--b47-heading-color);

    /* --- Colors — colored variant --- */
    --b47-list-colored-icon:                    var(--b47-primary-color);
    --b47-list-colored-icon-hover:              var(--b47-primary-color-dark);

    /* --- Colors — inverse context --- */
    --b47-list-inverse-color:                   var(--b47-primary-text-inverse-color);
    --b47-list-inverse-color-hover:             var(--b47-secondary-text-inverse-color);
    --b47-list-inverse-colored-icon:            var(--b47-primary-color);
    --b47-list-inverse-colored-icon-hover:      var(--b47-primary-color-light);

    /* --- Colors — white variant --- */
    --b47-list-white-color:                     var(--b47-white);
    --b47-list-white-color-hover:               var(--b47-secondary-text-inverse-color);
    --b47-list-white-colored-icon:              var(--b47-primary-color);
    --b47-list-white-colored-icon-hover:        var(--b47-primary-color-light);
}

/* ----------------------------- LISTS CLASSES ----------------------------- */

.b47-list .elementor-icon-list-items {
    display:                                    flex !important;
    flex-direction:                             column !important;
    gap:                                        var(--b47-list-item-gap) !important;
}
.b47-list .elementor-icon-list-item a {
    gap:                                        var(--b47-list-icon-gap) !important;
    width:                                      100%;
}
.b47-list .elementor-icon-list-icon {
    display:                                    flex !important;
    align-items:                                center !important;
    justify-content:                            center !important;
    width:                                      var(--b47-list-icon-size) !important;
    height:                                     var(--b47-list-icon-size) !important;
    flex-shrink:                                0 !important;

}
.b47-list .elementor-icon-list-icon svg {
    margin-top:                                 var(--icon-vertical-offset);
    width:                                      var(--b47-list-icon-size) !important;
    height:                                     var(--b47-list-icon-size) !important;
    flex-shrink:                                0 !important;
}
.b47-list.is-style-body-s                       { --icon-vertical-offset: var(--b47-list-icon-offset-s) !important; }
.b47-list.is-style-body-xs                      { --icon-vertical-offset: var(--b47-list-icon-offset-xs) !important; }

.b47-list .elementor-icon-list-icon svg path {
    fill:                                       var(--b47-list-icon-color);
}
.b47-list .elementor-icon-list-text {
    flex:                                       1 !important;
    min-width:                                  0 !important;
    font-family:                                var(--b47-list-text-family) !important;
    font-size:                                  var(--b47-list-text-size) !important;
    font-weight:                                var(--b47-list-text-weight) !important;
    line-height:                                var(--b47-list-text-line-height) !important;
    letter-spacing:                             var(--b47-list-text-letter-spacing) !important;
    color:                                      var(--b47-list-text-color) !important;
}

/* --- is-style-body-s --- */
.b47-list.is-style-body-s .elementor-icon-list-text {
    font-size:                                  var(--b47-list-text-size-s) !important;
    font-weight:                                var(--b47-list-text-weight-s) !important;
}
/* --- is-style-body-xs --- */
.b47-list.is-style-body-xs .elementor-icon-list-text {
    font-size:                                  var(--b47-list-text-size-xs) !important;
    font-weight:                                var(--b47-list-text-weight-xs) !important;
}

/* --- is-linked — hover states --- */
.b47-list.is-link .elementor-icon-list-icon svg path,
.b47-list.is-link .elementor-icon-list-text {
    transition:                                 var(--b47-list-transition) !important;
}
.b47-list.is-link .elementor-icon-list-item:hover .elementor-icon-list-icon svg path {
    fill:                                       var(--b47-list-text-hover) !important;
}
.b47-list.is-link .elementor-icon-list-item:hover .elementor-icon-list-text {
    color:                                      var(--b47-list-text-hover) !important;
}

/* --- is-colored — primary brand color icons --- */
.b47-list.is-color .elementor-icon-list-icon svg path {
    fill:                                       var(--b47-list-colored-icon) !important;
}

/* --- is-colored — primary brand color icons on hover --- */
.b47-list.is-color-hover .elementor-icon-list-item:hover svg path {
    fill:                                       var(--b47-list-colored-icon) !important;
}

/* --- is-linked + is-colored --- */
.b47-list.is-color.is-link .elementor-icon-list-item:hover .elementor-icon-list-icon svg path {
    fill:                                       var(--b47-list-colored-icon-hover) !important;
}
.b47-list.is-color.is-link .elementor-icon-list-item:hover .elementor-icon-list-text {
    color:                                      var(--b47-list-colored-icon) !important;
}

/* --- is-color-inverse context --- */
.b47-list.is-color-inverse .elementor-icon-list-icon svg path,
.is-color-inverse .b47-list .elementor-icon-list-icon svg path {
    fill:                                       var(--b47-list-inverse-color) !important;
}
.b47-list.is-color-inverse .elementor-icon-list-text,
.is-color-inverse .b47-list .elementor-icon-list-text {
    color:                                      var(--b47-list-inverse-color) !important;
}

/* --- is-color-inverse + is-link --- */
.b47-list.is-color-inverse.is-link .elementor-icon-list-icon svg path,
.is-color-inverse .b47-list.is-link .elementor-icon-list-icon svg path {
    transition:                                 fill var(--b47-list-transition) !important;
}
.b47-list.is-color-inverse.is-link .elementor-icon-list-text,
.is-color-inverse .b47-list.is-link .elementor-icon-list-text {
    transition:                                 color var(--b47-list-transition) !important;
}
.b47-list.is-color-inverse.is-link .elementor-icon-list-item:hover .elementor-icon-list-icon svg path,
.is-color-inverse .b47-list.is-link .elementor-icon-list-item:hover .elementor-icon-list-icon svg path {
    fill:                                       var(--b47-list-inverse-color-hover) !important;
}
.b47-list.is-color-inverse.is-link .elementor-icon-list-item:hover .elementor-icon-list-text,
.is-color-inverse .b47-list.is-link .elementor-icon-list-item:hover .elementor-icon-list-text {
    color:                                      var(--b47-list-inverse-color-hover) !important;
}

/* --- is-color-inverse + is-color --- */
.b47-list.is-color-inverse.is-color .elementor-icon-list-icon svg path,
.is-color-inverse .b47-list.is-color .elementor-icon-list-icon svg path {
    fill:                                       var(--b47-list-inverse-colored-icon) !important;
}

/* --- is-color-inverse + is-color + is-link --- */
.b47-list.is-color-inverse.is-color.is-link .elementor-icon-list-item:hover .elementor-icon-list-icon svg path,
.is-color-inverse .b47-list.is-color.is-link .elementor-icon-list-item:hover .elementor-icon-list-icon svg path {
    fill:                                       var(--b47-list-inverse-colored-icon-hover) !important;
}
.b47-list.is-color-inverse.is-color.is-link .elementor-icon-list-item:hover .elementor-icon-list-text,
.is-color-inverse .b47-list.is-color.is-link .elementor-icon-list-item:hover .elementor-icon-list-text {
    color:                                      var(--b47-list-inverse-colored-icon-hover) !important;
}

/* --- is-white context --- */
.b47-list.is-white .elementor-icon-list-icon svg path,
.is-white .b47-list .elementor-icon-list-icon svg path {
    fill:                                       var(--b47-list-white-color) !important;
}
.b47-list.is-white .elementor-icon-list-text,
.is-white .b47-list .elementor-icon-list-text {
    color:                                      var(--b47-list-white-color) !important;
}

/* --- is-white + is-link --- */
.b47-list.is-white.is-link .elementor-icon-list-icon svg path,
.is-white .b47-list.is-link .elementor-icon-list-icon svg path {
    transition:                                 fill var(--b47-list-transition) !important;
}
.b47-list.is-white.is-link .elementor-icon-list-text,
.is-white .b47-list.is-link .elementor-icon-list-text {
    transition:                                 color var(--b47-list-transition) !important;
}
.b47-list.is-white.is-link .elementor-icon-list-item:hover .elementor-icon-list-icon svg path,
.is-white .b47-list.is-link .elementor-icon-list-item:hover .elementor-icon-list-icon svg path {
    fill:                                       var(--b47-list-white-color-hover) !important;
}
.b47-list.is-white.is-link .elementor-icon-list-item:hover .elementor-icon-list-text,
.is-white .b47-list.is-link .elementor-icon-list-item:hover .elementor-icon-list-text {
    color:                                      var(--b47-list-white-color-hover) !important;
}

/* --- is-white + is-color --- */
.b47-list.is-white.is-color .elementor-icon-list-icon svg path,
.is-white .b47-list.is-color .elementor-icon-list-icon svg path {
    fill:                                       var(--b47-list-white-colored-icon) !important;
}

/* --- is-white + is-color + is-link --- */
.b47-list.is-white.is-color.is-link .elementor-icon-list-item:hover .elementor-icon-list-icon svg path,
.is-white .b47-list.is-color.is-link .elementor-icon-list-item:hover .elementor-icon-list-icon svg path {
    fill:                                       var(--b47-list-white-colored-icon-hover) !important;
}
.b47-list.is-white.is-color.is-link .elementor-icon-list-item:hover .elementor-icon-list-text,
.is-white .b47-list.is-color.is-link .elementor-icon-list-item:hover .elementor-icon-list-text {
    color:                                      var(--b47-list-white-colored-icon-hover) !important;
}

/* ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ 
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ CARDS ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ */

/* -------------------------- CARD ICON VARIABLES -------------------------- */

:root {
    /* --- Layout --- */
    --b47-card-icon-padding:                    var(--b47-spacing-2xl);
    --b47-card-icon-radius:                     var(--b47-radius-l);
    --b47-card-icon-gap:                        var(--b47-spacing-5xl);
    --b47-card-icon-content-gap:                var(--b47-spacing-xl); 
    --b47-card-icon-icon-size:                  var(--b47-spacing-3xl);
    --b47-card-icon-border:                     var(--b47-subtle-inside-border);

    /* --- Colors --- */
    --b47-card-icon-bg:                         transparent;
    --b47-card-icon-color:                      var(--b47-primary-color);
    --b47-card-icon-heading-color:              var(--b47-heading-color);
    --b47-card-icon-text-color:                 var(--b47-secondary-text-color);

    /* --- Typography --- */
    --b47-card-icon-heading-family:             var(--b47-body-family);
    --b47-card-icon-heading-size:               var(--b47-body-size);
    --b47-card-icon-heading-weight:             var(--b47-body-weight);
    --b47-card-icon-text-family:                var(--b47-body-s-family);
    --b47-card-icon-text-size:                  var(--b47-body-s-size);
    --b47-card-icon-text-weight:                var(--b47-body-s-weight);

    /* --- Color Inverse Variant --- */
    --b47-card-icon-bg-inverse:                 var(--b47-inverse-background-color);
    --b47-card-icon-border-inverse:             var(--b47-subtle-inside-border-inverse);
    --b47-card-icon-color-inverse:              var(--b47-primary-color-light);
    --b47-card-icon-heading-color-inverse:      var(--b47-heading-inverse-color);
    --b47-card-icon-text-color-inverse:         var(--b47-secondary-text-inverse-color);
}

/* --------------------------- CARD ICON CLASSES --------------------------- */

.b47-card-icon.e-con {
    flex-direction:                             column !important;
    gap:                                        var(--b47-card-icon-gap) !important;
    padding:                                    var(--b47-card-icon-padding) !important;
    background:                                 var(--b47-card-icon-bg) !important;
    border-radius:                              var(--b47-card-icon-radius) !important;
    box-shadow:                                 var(--b47-card-icon-border) !important;
}

/* --- Icon --- */
.b47-card-icon .elementor-icon svg {
    width:                                      var(--b47-card-icon-icon-size) !important;
    height:                                     var(--b47-card-icon-icon-size) !important;
}
.b47-card-icon .elementor-icon svg path {
    fill:                                       var(--b47-card-icon-color) !important;
}

/* --- Content block --- */
.b47-card-icon > .e-con {
    flex-direction:                             column !important;
    gap:                                        var(--b47-card-icon-content-gap) !important;
}

/* --- Heading --- */
.b47-card-icon .elementor-widget-heading .elementor-heading-title {
    font-family:                                var(--b47-card-icon-heading-family) !important;
    font-size:                                  var(--b47-card-icon-heading-size) !important;
    font-weight:                                var(--b47-card-icon-heading-weight) !important;
    color:                                      var(--b47-card-icon-heading-color) !important;
}

/* --- Paragraph --- */
.b47-card-icon .elementor-widget-text-editor p {
    font-family:                                var(--b47-card-icon-text-family) !important;
    font-size:                                  var(--b47-card-icon-text-size) !important;
    font-weight:                                var(--b47-card-icon-text-weight) !important;
    color:                                      var(--b47-card-icon-text-color) !important;
}

/* --- Inverse variant --- */
.is-color-inverse .b47-card-icon.e-con,
.b47-card-icon.is-color-inverse.e-con {
    background:                                 var(--b47-card-icon-bg-inverse) !important;
    box-shadow:                                 var(--b47-card-icon-border-inverse) !important;
}
.is-color-inverse .b47-card-icon .elementor-icon svg path,
.b47-card-icon.is-color-inverse .elementor-icon svg path {
    fill:                                       var(--b47-card-icon-color-inverse) !important;
}
.is-color-inverse .b47-card-icon .elementor-widget-heading .elementor-heading-title,
.b47-card-icon.is-color-inverse .elementor-widget-heading .elementor-heading-title {
    color:                                      var(--b47-card-icon-heading-color-inverse) !important;
}
.is-color-inverse .b47-card-icon .elementor-widget-text-editor p,
.b47-card-icon.is-color-inverse .elementor-widget-text-editor p {
    color:                                      var(--b47-card-icon-text-color-inverse) !important;
}

/* ------------------------- CARD NUMBER VARIABLES ------------------------- */

:root {
    /* --- Layout --- */
    --b47-card-number-padding-x:                var(--b47-spacing-4xl);
    --b47-card-number-padding-y:                var(--b47-spacing-5xl);
    --b47-card-number-padding-x-mobile:         var(--b47-spacing-2xl);
    --b47-card-number-padding-y-mobile:         var(--b47-spacing-3xl);
    --b47-card-number-header-gap:               var(--b47-spacing-3xl);
    --b47-card-number-body-gap:                 var(--b47-spacing-4xl);
    --b47-card-number-content-gap:              var(--b47-spacing-m);
    --b47-card-number-radius:                   var(--b47-radius-l);
    --b47-card-number-heading-pb:               var(--b47-spacing-m);
    --b47-card-number-border-width:             var(--b47-border-width);
  
    /* --- Badge --- */
    --b47-card-number-badge-family:             var(--b47-body-xs-family);
    --b47-card-number-badge-size:               12px;
    --b47-card-number-badge-weight:             var(--b47-body-xs-weight);
    --b47-card-number-badge-radius:             var(--b47-radius-xs);
    --b47-card-number-badge-padding:            var(--b47-spacing-4xs) var(--b47-spacing-s);

    /* --- Typography --- */
    --b47-card-number-heading-family:           var(--b47-h6-family);
    --b47-card-number-heading-size:             var(--b47-h6-size);
    --b47-card-number-heading-weight:           var(--b47-h6-weight);
    --b47-card-number-heading-line-height:      var(--b47-h6-line-height);
    --b47-card-number-text-family:              var(--b47-body-s-family);
    --b47-card-number-text-size:                var(--b47-body-s-size);
    --b47-card-number-text-weight:              var(--b47-body-s-weight);
    --b47-card-number-text-line-height:         var(--b47-body-s-line-height);
    --b47-card-number-heading-border:           var(--b47-card-number-border-width) solid var(--b47-card-number-divider);

    /* --- Colors --- */
    --b47-card-number-bg:                       transparent;
    --b47-card-number-border:                   var(--b47-subtle-inside-border);
    --b47-card-number-divider:                  var(--b47-border-color-subtle);
    --b47-card-number-badge-border:             var(--b47-subtle-inside-border);
    --b47-card-number-heading-color:            var(--b47-heading-color);
    --b47-card-number-text-color:               var(--b47-secondary-text-color);
    --b47-card-number-badge-color:              var(--b47-heading-color);

    /* --- Color Inverse Variant --- */
    --b47-card-number-bg-inverse:               var(--b47-inverse-background-color);
    --b47-card-number-border-inverse:           var(--b47-subtle-inside-border-inverse);
    --b47-card-number-badge-border-inverse:     var(--b47-inside-border-inverse);
    --b47-card-number-badge-color-inverse:      var(--b47-heading-inverse-color);
    --b47-card-number-heading-color-inverse:    var(--b47-heading-inverse-color);
    --b47-card-number-heading-border-inverse:   var(--b47-card-number-border-width) solid var(--b47-border-inverse-color);
    --b47-card-number-text-color-inverse:       var(--b47-secondary-text-inverse-color);
}

/* -------------------------- CARD NUMBER CLASSES -------------------------- */

/* --- Root --- */
.b47-card-number.e-con {
    gap:                                        var(--b47-card-number-body-gap) !important;
    flex-direction:                             column !important;
    padding:                                    var(--b47-card-number-padding-y) var(--b47-card-number-padding-x) !important;
    background:                                 var(--b47-card-number-bg) !important;
    border-radius:                              var(--b47-card-number-radius) !important;
    box-shadow:                                 var(--b47-card-number-border) !important;
}

/* --- Top container --- */
.b47-card-number > .e-con:first-child {
    gap:                                        var(--b47-card-number-header-gap) !important;
    flex-direction:                             column !important;
    align-items:                                flex-start !important;
    width:                                      100% !important;
}

/* --- Bottom container --- */
.b47-card-number > .e-con:last-child {
    gap:                                        var(--b47-card-number-content-gap) !important;
    flex-direction:                             column !important;
    width:                                      100% !important;
}

/* --- Badge --- */
.b47-card-number > .e-con:first-child > .elementor-widget-text-editor p {
    font-family:                                var(--b47-card-number-badge-family) !important;
    font-size:                                  var(--b47-card-number-badge-size) !important;
    font-weight:                                var(--b47-card-number-badge-weight) !important;
    color:                                      var(--b47-card-number-badge-color) !important;
    padding:                                    var(--b47-card-number-badge-padding) !important;
    border-radius:                              var(--b47-card-number-badge-radius) !important;
    box-shadow:                                 var(--b47-card-number-badge-border) !important;
    display:                                    inline-block !important;
}

/* --- Heading --- */
.b47-card-number .elementor-widget-heading,
.b47-card-number .elementor-widget-heading .elementor-heading-title {
    width:                                      100% !important;
}
.b47-card-number .elementor-widget-heading .elementor-heading-title {
    font-family:                                var(--b47-card-number-heading-family) !important;
    font-size:                                  var(--b47-card-number-heading-size) !important;
    font-weight:                                var(--b47-card-number-heading-weight) !important;
    line-height:                                var(--b47-card-number-heading-line-height) !important;
    color:                                      var(--b47-card-number-heading-color) !important;
    border-bottom:                              var(--b47-card-number-heading-border) !important;
    padding-bottom:                             var(--b47-card-number-heading-pb) !important;
}

/* --- Paragraphs --- */
.b47-card-number > .e-con:last-child .elementor-widget-text-editor p {
    font-family:                                var(--b47-card-number-text-family) !important;
    font-size:                                  var(--b47-card-number-text-size) !important;
    font-weight:                                var(--b47-card-number-text-weight) !important;
    line-height:                                var(--b47-card-number-text-line-height) !important;
    color:                                      var(--b47-card-number-text-color) !important;
}

/* --- Inverse variant --- */
.is-color-inverse .b47-card-number.e-con,
.b47-card-number.is-color-inverse.e-con {
    background:                                 var(--b47-card-number-bg-inverse) !important;
    box-shadow:                                 var(--b47-card-number-border-inverse) !important;
}
.is-color-inverse .b47-card-number > .e-con:first-child > .elementor-widget-text-editor p,
.b47-card-number.is-color-inverse > .e-con:first-child > .elementor-widget-text-editor p {
    color:                                      var(--b47-card-number-badge-color-inverse) !important;
    box-shadow:                                 var(--b47-card-number-badge-border-inverse) !important;
}
.is-color-inverse .b47-card-number .elementor-widget-heading .elementor-heading-title,
.b47-card-number.is-color-inverse .elementor-widget-heading .elementor-heading-title {
    color:                                      var(--b47-card-number-heading-color-inverse) !important;
    border-bottom:                              var(--b47-card-number-heading-border-inverse) !important;
}
.is-color-inverse .b47-card-number > .e-con:last-child .elementor-widget-text-editor p,
.b47-card-number.is-color-inverse > .e-con:last-child .elementor-widget-text-editor p {
    color:                                      var(--b47-card-number-text-color-inverse) !important;
}

/* --- Responsive --- */
@media only screen and (max-width: 599px) {
    .b47-card-number.e-con                      { padding: var(--b47-card-number-padding-y-mobile) var(--b47-card-number-padding-x-mobile) !important; }
}

/* -------------------------- CARD MEDIA VARIABLES ------------------------- */

:root {
    /* --- Layout ---*/
    --b47-card-media-padding:                   var(--b47-spacing-xs);
    --b47-card-media-border:                    var(--b47-subtle-inside-border);
    --b47-card-media-radius:                    var(--b47-radius-3xl);
    --b47-card-media-image-radius:              calc(var(--b47-card-media-radius) - var(--b47-card-media-padding));
    --b47-card-media-image-height:              250px;
    --b47-card-media-content-padding:           var(--b47-spacing-l);
    --b47-card-media-content-gap:               var(--b47-spacing-2xl);
    --b47-card-media-text-gap:                  var(--b47-spacing-m);

    /* --- Typography --- */
    --b47-card-media-heading-family:            var(--b47-h6-family);
    --b47-card-media-heading-size:              var(--b47-h6-size);
    --b47-card-media-heading-weight:            var(--b47-h6-weight);
    --b47-card-media-heading-line-height:       var(--b47-h6-line-height);
    --b47-card-media-text-family:               var(--b47-body-s-family);
    --b47-card-media-text-size:                 var(--b47-body-s-size);
    --b47-card-media-text-weight:               var(--b47-body-s-weight);
    --b47-card-media-text-line-height:          var(--b47-body-s-line-height);

    /* --- Colors --- */
    --b47-card-media-bg:                        transparent;
    --b47-card-media-heading-color:             var(--b47-heading-color);
    --b47-card-media-text-color:                var(--b47-secondary-text-color);

    /* --- Color Inverse Variant --- */
    --b47-card-media-bg-inverse:                var(--b47-inverse-background-color);
    --b47-card-media-heading-color-inverse:     var(--b47-heading-inverse-color);
    --b47-card-media-text-color-inverse:        var(--b47-secondary-text-inverse-color);
}

/* --------------------------- CARD MEDIA CLASSES -------------------------- */

/* --- Root --- */
.b47-card-media.e-con {
    flex-direction:                             column !important;
    justify-content:                            space-between !important;
    padding:                                    var(--b47-card-media-padding) !important;
    background:                                 var(--b47-card-media-bg) !important;
    box-shadow:                                 var(--b47-card-media-border);
    border-radius:                              var(--b47-card-media-radius) !important;
    overflow:                                   hidden !important;
}

/* --- Image --- */
.b47-card-media > .elementor-widget-image {
    border-radius:                              var(--b47-card-media-image-radius) !important;
    overflow:                                   hidden !important;
    flex-shrink:                                0 !important;
}
.b47-card-media > .elementor-widget-image img {
    width:                                      100% !important;
    height:                                     var(--b47-card-media-image-height) !important;
    object-fit:                                 cover !important;
    display:                                    block !important;
}

/* --- Content container --- */
.b47-card-media > .e-con {
    flex-direction:                             column !important;
    justify-content:                            space-between !important;
    align-items:                                flex-start !important;
    padding:                                    var(--b47-card-media-content-padding) !important;
    gap:                                        var(--b47-card-media-content-gap) !important;
    flex:                                       1 !important;
}

/* --- Heading + paragraph container --- */
.b47-card-media > .e-con > .e-con {
    flex-direction:                             column !important;
    gap:                                        var(--b47-card-media-text-gap) !important;
    width:                                      100% !important;
}

/* --- Heading --- */
.b47-card-media .elementor-widget-heading .elementor-heading-title {
    font-family:                                var(--b47-card-media-heading-family) !important;
    font-size:                                  var(--b47-card-media-heading-size) !important;
    font-weight:                                var(--b47-card-media-heading-weight) !important;
    line-height:                                var(--b47-card-media-heading-line-height) !important;
    color:                                      var(--b47-card-media-heading-color) !important;
}

/* --- Paragraph --- */
.b47-card-media .elementor-widget-text-editor p {
    font-family:                                var(--b47-card-media-text-family) !important;
    font-size:                                  var(--b47-card-media-text-size) !important;
    font-weight:                                var(--b47-card-media-text-weight) !important;
    line-height:                                var(--b47-card-media-text-line-height) !important;
    color:                                      var(--b47-card-media-text-color) !important;
}

/* --- Button --- */
.b47-card-media > .elementor-widget-button {
    padding-left:                               var(--b47-card-media-content-padding) !important;
    padding-right:                              var(--b47-card-media-content-padding) !important;
    padding-bottom:                             var(--b47-card-media-content-padding) !important;
}

/* --- Inverse variant --- */
.is-color-inverse .b47-card-media.e-con,
.b47-card-media.is-color-inverse.e-con {
    background:                                 var(--b47-card-media-bg-inverse) !important;
}
.is-color-inverse .b47-card-media .elementor-widget-heading .elementor-heading-title,
.b47-card-media.is-color-inverse .elementor-widget-heading .elementor-heading-title {
    color:                                      var(--b47-card-media-heading-color-inverse) !important;
}
.is-color-inverse .b47-card-media .elementor-widget-text-editor p,
.b47-card-media.is-color-inverse .elementor-widget-text-editor p {
    color:                                      var(--b47-card-media-text-color-inverse) !important;
}

/* -------------------------- PROJECT CUSTOM CARDS ------------------------- */
:root {
    --b47-card-counter-family:                  var(--b47-h2-family);
    --b47-card-counter-size:                    48px !important;
    --b47-card-counter-weight:                  var(--b47-h2-weight);
    --b47-card-counter-line-height:             var(--b47-h2-line-height);
    --b47-card-counter-letter-spacing:          var(--b47-h2-letter-spacing);
    --b47-card-counter-color:                   var(--b47-heading-color); 
    --b47-paragraph-width-400:                  400px;
    --b47-paragraph-width-450:                  450px;
    --b47-number-title-size:                     64px;     
}

.b47-card-xl-xs {
    border-radius:                              var(--b47-radius-xl);
    padding:                                    var(--b47-spacing-xs); }
.b47-card-xl-l {                                
    background:                                 var(--b47-tertiary-background-color);
    border-radius:                              var(--b47-radius-xl);
    padding:                                    var(--b47-spacing-l); }
.b47-card-xl-xl {                                
    background:                                 var(--b47-tertiary-background-color);
    border-radius:                              var(--b47-radius-xl);
    padding:                                    var(--b47-spacing-xl); }
.b47-card-xl-2xl {
    border-radius:                              var(--b47-radius-xl);
    padding:                                    var(--b47-spacing-2xl); }
.b47-card-xl-3xl {
    border-radius:                              var(--b47-radius-xl);
    padding:                                    var(--b47-spacing-3xl); }
.card-counter .elementor-counter span {
    font-family:                                var(--b47-card-counter-family);
    font-size:                                  var(--b47-card-counter-size);
    font-weight:                                var(--b47-card-counter-weight);
    line-height:                                var(--b47-card-counter-line-height);
    letter-spacing:                             var(--b47-card-counter-letter-spacing);
    color:                                      var(--b47-card-counter-color) !important; }
.is-p-400 p {                                   max-width: var(--b47-paragraph-width-400); }
.is-p-450 p {                                   max-width: var(--b47-paragraph-width-450); }
.is-number-opacity.is-style-h1 {                font-size: var(--b47-number-title-size) !important;
                                                color: var(--b47-white) !important;
                                                opacity: var(--b47-opacity-xs) !important; }

/* ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ 
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ ACCORDION ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ */

/* -------------------------- ACCORDION VARIABLES -------------------------- */
:root {
    --b47-accordion-gap:                        var(--b47-spacing-xs);
    --b47-accordion-item-bg:                    var(--b47-secondary-background-color);
    --b47-accordion-item-radius:                var(--b47-radius-xl);
    --b47-accordion-item-border:                none;
    --b47-accordion-title-padding:              var(--b47-spacing-l);
    --b47-accordion-title-bg:                   transparent;
    --b47-accordion-title-border:               none;
    --b47-accordion-title-gap:                  var(--b47-spacing-l);

    --b47-accordion-title-family:               var(--b47-body-family);
    --b47-accordion-title-size:                 var(--b47-body-size);
    --b47-accordion-title-weight:               var(--b47-body-weight);
    --b47-accordion-title-line-height:          var(--b47-body-line-height);
    --b47-accordion-title-letter-spacing:       var(--b47-body-letter-spacing);
    --b47-accordion-title-transform:            var(--b47-text-transform-none);
    --b47-accordion-title-color:                var(--b47-heading-color);
    --b47-accordion-title-margin:               0;

    --b47-accordion-icon-circle-width:          36px;
    --b47-accordion-icon-circle-height:         36px;
    --b47-accordion-icon-circle-bg:             var(--b47-tertiary-background-color);
    --b47-accordion-icon-circle-bg-hover:       var(--b47-highlight-background-color);
    --b47-accordion-icon-circle-radius:         var(--b47-radius-max);
    --b47-accordion-icon-circle-padding:        var(--b47-spacing-xs);
    --b47-accordion-icon-circle-transition:     background var(--b47-transition-base);

    --b47-accordion-icon-width:                 14px;
    --b47-accordion-icon-height:                14px;
    --b47-accordion-icon-color:                 var(--b47-heading-color);
    --b47-accordion-icon-transform:             rotate(-45deg);
    --b47-accordion-icon-transform-open:        rotate(0deg);
    --b47-accordion-icon-transition:            transform 0.3s ease !important;

    --b47-accordion-content-bg:                 transparent;
    --b47-accordion-content-border:             none;
    --b47-accordion-content-padding:            0 var(--b47-spacing-l) var(--b47-spacing-l);

    --b47-accordion-content-family:             var(--b47-body-family);
    --b47-accordion-content-size:               var(--b47-body-size);
    --b47-accordion-content-weight:             var(--b47-body-weight);
    --b47-accordion-content-line-height:        var(--b47-body-line-height);
    --b47-accordion-content-letter-spacing:     var(--b47-body-letter-spacing);
    --b47-accordion-content-transform:          var(--b47-text-transform-none);
    --b47-accordion-content-color:              var(--b47-primary-text-color);
    --b47-accordion-content-margin:             0;
    --b47-accordion-content-width:              600px;
}

/* --------------------------- ACCORDION CLASSES  -------------------------- */
/* --- Accordion items gap --- */
.b47-accordion .e-n-accordion {
    display:            flex !important;
    flex-direction:     column !important;
    gap:                var(--b47-accordion-gap) !important;
}

/* --- Each item — rounded block --- */
.b47-accordion .e-n-accordion-item {
    background:         var(--b47-accordion-item-bg) !important;
    border-radius:      var(--b47-accordion-item-radius) !important;
    border:             var(--b47-accordion-item-border) !important;
    overflow:           hidden !important;
}

/* --- Title row --- */
.b47-accordion .e-n-accordion-item-title {
    display:            flex !important;
    align-items:        center !important;
    justify-content:    space-between !important;
    padding:            var(--b47-accordion-title-padding) !important;
    background:         var(--b47-accordion-title-bg) !important;
    border:             var(--b47-accordion-title-border) !important;
    gap:                var(--b47-accordion-title-gap) !important;
}
.b47-accordion .e-n-accordion-item-title-header {
    flex:               1 !important;
}
.b47-accordion .e-n-accordion-item-title-text {
    font-family:        var(--b47-accordion-title-family);
    font-size:          var(--b47-accordion-title-size);
    font-weight:        var(--b47-accordion-title-weight);
    line-height:        var(--b47-accordion-title-line-height);
    letter-spacing:     var(--b47-accordion-title-letter-spacing);
    text-transform:     var(--b47-accordion-title-transform);
    color:              var(--b47-accordion-title-color) !important;
    margin:             var(--b47-accordion-title-margin) !important;
}

/* --- Icon circle --- */
.b47-accordion .e-n-accordion-item-title-icon {
    flex-shrink:        0 !important;
    width:              var(--b47-accordion-icon-circle-width) !important;
    height:             var(--b47-accordion-icon-circle-height) !important;
    background:         var(--b47-accordion-icon-circle-bg) !important;
    border-radius:      var(--b47-accordion-icon-circle-radius) !important;
    padding:            var(--b47-accordion-icon-circle-padding) !important;
    display:            flex !important;
    align-items:        center !important;
    justify-content:    center !important;
}
.b47-accordion .e-n-accordion-item .e-n-accordion-item-title-icon {
     transition:         var(--b47-accordion-icon-circle-transition) !important;
}
.b47-accordion .e-n-accordion-item:hover .e-n-accordion-item-title-icon {
    background:         var(--b47-accordion-icon-circle-bg-hover) !important;
}
.b47-accordion .e-n-accordion-item-title-icon svg {
    width:              var(--b47-accordion-icon-width) !important;
    height:             var(--b47-accordion-icon-height) !important;
    fill:               var(--b47-accordion-icon-color) !important;
    display:            block !important;
}

/* --- Always use e-closed, hide e-opened --- */
.b47-accordion .e-n-accordion-item-title-icon .e-opened { display: none !important; }
.b47-accordion .e-n-accordion-item-title-icon .e-closed { display: flex !important; }

/* --- Closed: rotated 45deg = looks like + --- */
.b47-accordion .e-n-accordion-item-title-icon {
    transform:  var(--b47-accordion-icon-transform) !important;
    transition: var(--b47-accordion-icon-transition) !important;
}

/* --- Open: rotate back to 0 = looks like × --- */
.b47-accordion .e-n-accordion-item[open] .e-n-accordion-item-title-icon {
    transform:  var(--b47-accordion-icon-transform-open) !important;
}
/* --- Content --- */
.b47-accordion .e-n-accordion-item > .e-con {
    background:         var(--b47-accordion-content-bg) !important;
    padding:            var(--b47-accordion-content-padding) !important;
    border:             var(--b47-accordion-content-border) !important;
}
.b47-accordion .elementor-widget-text-editor p {
    font-family:        var(--b47-accordion-content-family);
    font-size:          var(--b47-accordion-content-size);
    font-weight:        var(--b47-accordion-content-weight);
    line-height:        var(--b47-accordion-content-line-height);
    letter-spacing:     var(--b47-accordion-content-letter-spacing);
    text-transform:     var(--b47-accordion-content-transform);
    color:              var(--b47-accordion-content-color) !important;
    margin:             var(--b47-accordion-content-margin) !important;
    max-width:          var(--b47-accordion-content-width) !important;
}

/* ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ 
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ FORMS ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ */

/* ----------------------------- FORM VARIABLES ---------------------------- */

:root {
    /* --- Progress bar --- */
    --b47-form-progress-height:                 4px;
    --b47-form-progress-radius:                 var(--b47-radius-max);
    --b47-form-progress-bg:                     var(--b47-muted-background-color);
    --b47-form-progress-fill:                   var(--b47-primary-color);
    --b47-form-progress-mb:                     var(--b47-spacing-3xl);
    --b47-form-progress-transition:             width var(--b47-transition-base);

    /* --- Step pills --- */
    --b47-form-step-size:                       32px;
    --b47-form-step-radius:                     var(--b47-radius-max);
    --b47-form-step-border:                     var(--b47-border-width) solid var(--b47-border-color);
    --b47-form-step-bg-active:                  var(--b47-inverse-background-color);
    --b47-form-step-color-inactive:             var(--b47-secondary-text-color);
    --b47-form-step-color-active:               var(--b47-primary-background-color);
    --b47-form-step-label-color:                var(--b47-secondary-text-color);
    --b47-form-step-font-family:                var(--b47-body-xs-family);
    --b47-form-step-font-size:                  var(--b47-body-xs-size);
    --b47-form-step-font-weight:                var(--b47-font-weight-regular);
    --b47-form-step-line-height:                var(--b47-body-xs-line-height);
    --b47-form-step-letter-spacing:             var(--b47-body-xs-letter-spacing);
    --b47-form-step-label-font-family:          var(--b47-body-xs-family);
    --b47-form-step-label-font-size:            var(--b47-body-xs-size);
    --b47-form-step-label-font-weight:          var(--b47-body-xs-weight);
    --b47-form-step-label-line-height:          var(--b47-body-xs-line-height);
    --b47-form-step-label-letter-spacing:       var(--b47-body-xs-letter-spacing);
    --b47-form-step-separator-height:           var(--b47-border-width);
    --b47-form-step-separator:                  var(--b47-border-color);
    --b47-form-step-transition:                 all var(--b47-transition-fast);

    /* --- Step pills - inverse --- */
    --b47-form-step-border-inverse:             var(--b47-border-width) solid var(--b47-border-inverse-color);
    --b47-form-step-color-inactive-inverse:     var(--b47-secondary-text-inverse-color);
    --b47-form-step-bg-active-inverse:          var(--b47-primary-color-light);
    --b47-form-step-label-color-inverse:        var(--b47-primary-text-inverse-color);

    /* --- Text fields --- */
    --b47-form-label-font-family:               var(--b47-body-s-family);
    --b47-form-label-font-size:                 var(--b47-body-s-size);
    --b47-form-label-font-weight:               var(--b47-font-weight-regular);
    --b47-form-label-line-height:               var(--b47-body-s-line-height);
    --b47-form-label-letter-spacing:            var(--b47-body-s-letter-spacing);
    --b47-form-label-text-transform:            var(--b47-text-transform-none);
    --b47-form-label-color:                     var(--b47-primary-text-color);
    --b47-form-field-transition:                border-color var(--b47-transition-fast);

    --b47-form-placeholder-color:               var(--b47-primary-text-color);
    --b47-form-placeholder-opacity:             1;                    
    --b47-form-field-font-family:               var(--b47-body-family);
    --b47-form-field-font-size:                 var(--b47-body-size);
    --b47-form-field-font-weight:               var(--b47-body-weight);
    --b47-form-field-line-height:               var(--b47-body-line-height);
    --b47-form-field-letter-spacing:            var(--b47-body-letter-spacing);
    --b47-form-field-color:                     var(--b47-heading-color);
    --b47-form-field-radius:                    var(--b47-radius-xl);
    --b47-form-field-textarea-radius:           var(--b47-radius-xl);
    --b47-form-field-padding-y:                 var(--b47-spacing-l);
    --b47-form-field-padding-x:                 var(--b47-spacing-l);
    --b47-form-field-bg:                        var(--b47-highlight-background-color);
    --b47-form-field-border:                    none;
    --b47-form-field-border-focus:              var(--b47-tertiary-background-color);
    --b47-form-field-shadow:                    var(--b47-shadow-xs);
    --b47-form-field-gap:                       var(--b47-spacing-s);

    --b47-form-group-gap:                       var(--b47-spacing-xs);
    --b47-form-required-color:                  var(--b47-primary-color);

    /* --- Text fields - inverse --- */
    --b47-form-field-bg-inverse:                var(--b47-inverse-background-color);
    --b47-form-field-border-inverse:            var(--b47-subtle-border-inverse);
    --b47-form-field-color-inverse:             var(--b47-primary-text-inverse-color);
    --b47-form-label-color-inverse:             var(--b47-secondary-text-inverse-color);
    --b47-form-placeholder-color-inverse:       var(--b47-secondary-text-inverse-color);

    /* --- Radio & Checkbox --- */
    --b47-form-choice-size:                     18px;
    --b47-form-choice-border:                   var(--b47-border-width) solid var(--b47-border-color);
    --b47-form-choice-focus-border:             var(--b47-border-width) solid var(--b47-form-field-border-focus);
    --b47-form-choice-checked-border:           var(--b47-border-width) solid var(--b47-form-choice-checked-bg);
    --b47-form-choice-bg:                       var(--b47-primary-background-color);
    --b47-form-choice-checked-bg:               var(--b47-white);
    --b47-form-choice-gap:                      var(--b47-spacing-s);
    --b47-form-choice-option-gap:               var(--b47-spacing-s);
    --b47-form-choice-label-color:              var(--b47-primary-text-color);
    --b47-form-choice-transition:               all var(--b47-transition-fast);

    --b47-form-radio-radius:                    var(--b47-radius-max);
    --b47-form-radio-ring:                      inset 0 0 0 3px var(--b47-muted-background-color);

    --b47-form-checkbox-icon:                   url('/wp-content/uploads/checkbox-icon.svg');
    --b47-form-checkbox-icon-color:             var(--b47-black);
    --b47-form-checkbox-radius:                 var(--b47-radius-s);
    --b47-form-checkbox-check-weight:           var(--b47-spacing-4xs);
    --b47-form-checkbox-check-width:            5px;
    --b47-form-checkbox-check-height:           9px;
    --b47-form-checkbox-check-transition:       120ms transform ease-in-out;
    --b47-form-checkbox-icon-left:              calc(50% - 0.5px);

    /* --- Select fields ---*/
    --b47-form-select-placeholder-color:        var(--b47-form-placeholder-color);
    --b47-form-select-selected-color:           var(--b47-heading-color);
    --b47-form-select-selected-bg:              var(--b47-secondary-background-color);
    --b47-form-select-option-padding-y:         var(--b47-spacing-s);
    --b47-form-select-option-hover-bg:          var(--b47-muted-background-color);
    --b47-form-select-trigger-transition:       border-color var(--b47-transition-fast);

    --b47-form-select-dropdown-position:        calc(100% + var(--b47-form-select-dropdown-offset));
    --b47-form-select-dropdown-max-height:      240px;
    --b47-form-select-dropdown-offset:          var(--b47-spacing-s);
    --b47-form-select-dropdown-padding:         var(--b47-spacing-s) 0;
    --b47-form-select-dropdown-bg:              var(--b47-primary-background-color);
    --b47-form-select-dropdown-radius:          var(--b47-radius-m);
    --b47-form-select-dropdown-shadow:          var(--b47-shadow-m);
    --b47-form-select-dropdown-border:          var(--b47-border-width) solid var(--b47-border-color);
    --b47-form-select-option-transition:        background var(--b47-transition-fast);
    --b47-form-select-z:                        var(--b47-z-dropdown);
   
    --b47-form-select-chevron-icon:             url('/wp-content/uploads/chevron-down.svg');
    --b47-form-select-chevron-icon-hover:       url('/wp-content/uploads/chevron-down.svg');
    --b47-form-select-chevron-size:             16px;
    --b47-form-select-chevron-color:            var(--b47-secondary-text-color);
    --b47-form-select-chevron-color-hover:      var(--b47-heading-color);
    --b47-form-select-chevron-transform:        scaleY(1);   /* closed */
    --b47-form-select-chevron-open-transform:   scaleY(-1);  /* open */
    --b47-form-select-chevron-transition:       transform var(--b47-transition-fast), background-color var(--b47-transition-fast);

    /* --- Select fields - inverse --- */
    --b47-form-select-placeholder-color-inverse: var(--b47-secondary-text-inverse-color);
    --b47-form-select-chevron-color-inverse:    var(--b47-secondary-text-inverse-color);
    --b47-form-select-dropdown-bg-inverse:      var(--b47-inverse-background-color);
    --b47-form-select-dropdown-border-inverse:  var(--b47-subtle-border-inverse);
    --b47-form-select-option-hover-bg-inverse:  var(--b47-inverse-background-color);

    /* --- Date picker calendar --- */
    --b47-form-date-offset:                     var(--b47-spacing-s);
    --b47-form-date-header-height:              34px;
    --b47-form-date-header-padding-bottom:      5px;
    --b47-form-date-font:                       var(--b47-font-primary);
    --b47-form-date-radius:                     var(--b47-radius-m);
    --b47-form-date-shadow:                     var(--b47-shadow-m);
    --b47-form-date-border:                     var(--b47-border-width) solid var(--b47-border-color);
    --b47-form-date-day-radius:                 var(--b47-radius-s);
    --b47-form-date-bg:                         var(--b47-primary-background-color);
    --b47-form-date-hover-bg:                   var(--b47-white);
    --b47-form-date-hover-color:                var(--b47-black);
    --b47-form-date-selected-bg:                var(--b47-white);
    --b47-form-date-selected-color:             var(--b47-black);
    --b47-form-date-today-border:               var(--b47-border-width) solid var(--b47-gray-300);
    --b47-form-date-month-color:                var(--b47-heading-color);
    --b47-form-date-weekday-color:              var(--b47-secondary-text-color);
    --b47-form-date-day-color:                  var(--b47-primary-text-color);
    --b47-form-date-nav-color:                  var(--b47-secondary-text-color);
    --b47-form-date-nav-hover:                  var(--b47-primary-color);
    --b47-form-date-nav-transition:             fill var(--b47-transition-fast);
    --b47-form-date-muted-color:                var(--b47-tertiary-text-color);
    --b47-form-date-time-placeholder-color:     var(--b47-secondary-text-color);
    --b47-form-date-time-bg-active:             var(--b47-secondary-background-color);

    /* --- File Upload Field --- */
    --b47-form-upload-icon:                     url('/wp-content/uploads/paperclip-icon.svg');
    --b47-form-upload-icon-size:                16px;
    --b47-form-upload-btn-bg:                   var(--b47-form-field-bg);
    --b47-form-upload-btn-color:                var(--b47-form-placeholder-color);
    --b47-form-upload-btn-radius:               var(--b47-button-radius);
    --b47-form-upload-btn-font-family:          var(--b47-form-field-font-family);
    --b47-form-upload-btn-font-size:            var(--b47-form-field-font-size);
    --b47-form-upload-btn-font-weight:          var(--b47-form-field-font-weight);
    --b47-form-upload-btn-line-height:          var(--b47-form-field-line-height);
    --b47-form-upload-btn-letter-spacing:       var(--b47-form-field-letter-spacing);
    --b47-form-upload-btn-text-transform:       var(--b47-form-label-text-transform);
    --b47-form-upload-btn-padding:              var(--b47-button-padding-s);
    --b47-form-upload-btn-border:               var(--b47-form-field-border);
    --b47-form-upload-btn-shadow:               var(--b47-shadow-xs);
    --b47-form-upload-btn-bg-hover:             var(--b47-button-bg);
    --b47-form-upload-btn-color-hover:          var(--b47-button-text-hover);
    --b47-form-upload-btn-border-hover:         var(--b47-button-accent-hover);
    --b47-form-upload-btn-transition:           background var(--b47-transition-fast), color var(--b47-transition-fast), border-color var(--b47-transition-fast);
    --b47-form-upload-filename-color:           var(--b47-form-placeholder-color);
    --b47-form-upload-filename-size:            var(--b47-body-s-size);
    --b47-form-upload-gap:                      var(--b47-spacing-m);
    --b47-form-upload-btn-icon-gap:             var(--b47-spacing-s);
    --b47-form-upload-clear-color:              var(--b47-secondary-text-color);
    --b47-form-upload-clear-hover:              var(--b47-heading-color);
    --b47-form-upload-clear-margin:             var(--b47-spacing-xs);
    --b47-form-upload-clear-size:               var(--b47-text-size-m);
    --b47-form-upload-clear-transition:         color var(--b47-transition-fast);

    /* --- Form Upload Field -inverse --- */
    --b47-form-upload-btn-bg-inverse:           var(--b47-inverse-background-color);
    --b47-form-upload-btn-color-inverse:        var(--b47-secondary-text-inverse-color);

    /* --- Acceptance Field --- */
    --b47-form-acceptance-link-color:           var(--b47-primary-color);
    --b47-form-acceptance-link-decoration:      var(--b47-text-decoration-none);
    --b47-form-acceptance-link-hover:           var(--b47-primary-color-light);
    --b47-form-acceptance-link-hover-decoration: var(--b47-text-decoration-underline);

    /* --- Form Buttons --- */
    --b47-form-buttons-bg:                      var(--b47-button-secondary-bg);
    --b47-form-buttons-bg-hover:                var(--b47-button-secondary-bg-hover);
    --b47-form-buttons-color:                   var(--b47-button-secondary-accent);
    --b47-form-buttons-color-hover:             var(--b47-button-secondary-accent-hover);
    --b47-form-buttons-margin-top:              48px;
    --b47-form-btn-min-width:                   100%;
    --b47-form-btn-min-height:                  44px;
    --b47-form-btn-radius:                      var(--b47-spacing-m);
    --b47-form-btn-arrow-transition:            transform var(--b47-transition-fast);
    --b47-form-btn-arrow-offset:                translateX(var(--b47-translate-xs));

    /* --- Error/Success messages --- */
    --b47-form-message-gap:                     var(--b47-spacing-xs);
    --b47-form-message-margin-top:              var(--b47-spacing-2xl);
    --b47-form-message-inline-margin-top:       var(--b47-spacing-xs);
    --b47-form-message-font-family:             var(--b47-form-label-font-family);
    --b47-form-message-font-size:               var(--b47-form-label-font-size);
    --b47-form-message-font-weight:             var(--b47-form-label-font-weight);
    --b47-form-message-line-height:             var(--b47-form-label-line-height);
    --b47-form-message-letter-spacing:          var(--b47-form-label-letter-spacing);
    --b47-form-message-text-transform:          var(--b47-form-label-text-transform);
    --b47-form-message-danger-color:            var(--b47-error);
    --b47-form-message-success-color:           var(--b47-success);
}

/* ------------------------------ PROGRESS BAR ----------------------------- */

.b47-form .e-form__indicators--type-progress_bar {
    margin-bottom:                              var(--b47-form-progress-mb) !important;
}
.b47-form .e-form__indicators__indicator__progress {
    width:                                      100% !important;
    height:                                     var(--b47-form-progress-height) !important;
    background:                                 var(--b47-form-progress-bg) !important;
    border-radius:                              var(--b47-form-progress-radius) !important;
    overflow:                                   hidden !important;
}
.b47-form .e-form__indicators__indicator__progress__meter {
    height:                                     100% !important;
    background:                                 var(--b47-form-progress-fill) !important;
    border-radius:                              var(--b47-form-progress-radius) !important;
    font-size:                                  0 !important;
    transition:                                 var(--b47-form-progress-transition) !important;
}

/* --------------------------------- STEPS --------------------------------- */

.b47-form .e-form__indicators--type-number_text {
    display:                                    flex !important;
    align-items:                                center !important;
    gap:                                        0 !important;
    margin-bottom:                              var(--b47-form-progress-mb) !important;
}
.b47-form .e-form__indicators__indicator {
    display:                                    flex !important;
    flex-direction:                             column !important;
    align-items:                                center !important;
    gap:                                        var(--b47-form-field-gap) !important;
    white-space:                                nowrap !important;
}
.b47-form .e-form__indicators__indicator__number {
    width:                                      var(--b47-form-step-size) !important;
    height:                                     var(--b47-form-step-size) !important;
    border-radius:                              var(--b47-form-step-radius) !important;
    border:                                     var(--b47-form-step-border) !important;
    display:                                    flex !important;
    align-items:                                center !important;
    justify-content:                            center !important;
    font-family:                                var(--b47-form-step-font-family) !important;
    font-size:                                  var(--b47-form-step-font-size) !important;
    font-weight:                                var(--b47-form-step-font-weight) !important;
    line-height:                                var(--b47-form-step-line-height) !important;
    letter-spacing:                             var(--b47-form-step-letter-spacing) !important;
    color:                                      var(--b47-form-step-color-inactive) !important;
    background:                                 transparent !important;
    transition:                                 var(--b47-form-step-transition) !important;
}
.b47-form .e-form__indicators__indicator--state-active .e-form__indicators__indicator__number {
    background:                                 var(--b47-form-step-bg-active) !important;
    border-color:                               var(--b47-form-step-bg-active) !important;
    color:                                      var(--b47-form-step-color-active) !important;
}
.b47-form .e-form__indicators__indicator__label {
    font-family:                                var(--b47-form-step-label-font-family) !important;
    font-size:                                  var(--b47-form-step-label-font-size) !important;
    font-weight:                                var(--b47-form-step-label-font-weight) !important;
    line-height:                                var(--b47-form-step-label-line-height) !important;
    letter-spacing:                             var(--b47-form-step-letter-spacing) !important;
    color:                                      var(--b47-form-step-label-color) !important;
}
.b47-form .e-form__indicators__indicator__separator {
    flex:                                       1 !important;
    height:                                     var(--b47-form-step-separator-height) !important;
    background:                                 var(--b47-form-step-separator) !important;
    margin-top:                                 calc(var(--b47-form-step-size) / 2) !important;
    transform:                                  translateY(-50%) !important;
    align-self:                                 flex-start !important;
}

/* --- Inverse Variant --- */
.is-color-inverse .b47-form .e-form__indicators__indicator__number,
.b47-form.is-color-inverse .e-form__indicators__indicator__number {
    border:       var(--b47-form-step-border-inverse) !important;
    color:        var(--b47-form-step-color-inactive-inverse) !important;
}
.is-color-inverse .b47-form .e-form__indicators__indicator__number.is-active,
.b47-form.is-color-inverse .e-form__indicators__indicator__number.is-active {
    background:   var(--b47-form-step-bg-active-inverse) !important;
    border-color: var(--b47-form-step-bg-active-inverse) !important;
    color:        var(--b47-white) !important;
}
.is-color-inverse .b47-form .e-form__indicators__indicator__label,
.b47-form.is-color-inverse .e-form__indicators__indicator__label {
    color:        var(--b47-form-step-label-color-inverse) !important;
}

/* ------------------------------ TEXT FIELDS ------------------------------ */

.b47-form .elementor-widget-container {
    margin:                                     0 !important;
}
.b47-form .elementor-field-group {
    gap:                                        var(--b47-form-field-gap) !important;
}
.b47-form .elementor-form-fields-wrapper {
    gap:                                        var(--b47-form-group-gap) !important;
}
.b47-form .elementor-field-label {
    font-family:                                var(--b47-form-label-font-family) !important;
    font-size:                                  var(--b47-form-label-font-size) !important;
    font-weight:                                var(--b47-form-label-font-weight) !important;
    line-height:                                var(--b47-form-label-line-height) !important;
    letter-spacing:                             var(--b47-form-label-letter-spacing) !important;
    color:                                      var(--b47-form-label-color) !important;
}
.b47-form .elementor-field-label .elementor-mark-required {
    color:                                      var(--b47-form-required-color) !important;
}
.b47-form .elementor-field-textual {
    width:                                      100% !important;
    font-family:                                var(--b47-form-field-font-family) !important;
    font-size:                                  var(--b47-form-field-font-size) !important;
    font-weight:                                var(--b47-form-field-font-weight) !important;
    line-height:                                var(--b47-form-field-line-height) !important;
    letter-spacing:                             var(--b47-form-field-letter-spacing) !important;
    color:                                      var(--b47-form-field-color) !important;
    padding:                                    var(--b47-form-field-padding-y) var(--b47-form-field-padding-x) !important;
    border-radius:                              var(--b47-form-field-radius) !important;
    border:                                     var(--b47-form-field-border) !important;
    background-color:                                 var(--b47-form-field-bg) !important;
    box-shadow:                                 var(--b47-form-field-shadow) !important;
    transition:                                 var(--b47-form-field-transition) !important;
}
.b47-form .elementor-field-textual::placeholder {
    font-family:                                var(--b47-form-field-font-family) !important;
    font-size:                                  var(--b47-form-field-font-size) !important;
    font-weight:                                var(--b47-form-field-font-weight) !important;
    line-height:                                var(--b47-form-field-line-height) !important;
    letter-spacing:                             var(--b47-form-field-letter-spacing) !important;
    color:                                      var(--b47-form-placeholder-color) !important;
    opacity:                                    var(--b47-form-placeholder-opacity) !important;
}
.b47-form .elementor-field-textual:focus {
    outline:                                    none !important;
    border-color:                               var(--b47-form-field-border-focus) !important;
}
.b47-form #form-field-message {
    border-radius:                              var(--b47-form-field-textarea-radius) !important;
}
/* --- Inverse Variant --- */
.is-color-inverse .b47-form .elementor-field-label,
.b47-form.is-color-inverse .elementor-field-label {
    color:        var(--b47-form-label-color-inverse) !important;
}
.is-color-inverse .b47-form .elementor-field-textual,
.b47-form.is-color-inverse .elementor-field-textual {
    background:   var(--b47-form-field-bg-inverse) !important;
    border:       var(--b47-form-field-border-inverse) !important;
    color:        var(--b47-form-field-color-inverse) !important;
}
.is-color-inverse .b47-form .elementor-field-textual::placeholder,
.b47-form.is-color-inverse .elementor-field-textual::placeholder {
    color:        var(--b47-form-placeholder-color-inverse) !important;
    opacity:      var(--b47-form-placeholder-opacity) !important;
}

/* --------------------------------- RADIO --------------------------------- */

.b47-form .elementor-field-type-radio .elementor-field-subgroup {
    display:                                    flex !important;
    flex-direction:                             column !important;
    gap:                                        var(--b47-form-choice-gap) !important;
}
.b47-form .elementor-field-type-radio .elementor-field-option {
    display:                                    flex !important;
    align-items:                                center !important;
    gap:                                        var(--b47-form-choice-option-gap) !important;
}
.b47-form .elementor-field-type-radio input[type="radio"] {
    appearance:                                 none !important;
    -webkit-appearance:                         none !important;
    width:                                      var(--b47-form-choice-size) !important;
    height:                                     var(--b47-form-choice-size) !important;
    min-width:                                  var(--b47-form-choice-size) !important;
    border:                                     var(--b47-form-choice-border) !important;
    border-radius:                              var(--b47-form-radio-radius) !important;
    background:                                 var(--b47-form-choice-bg) !important;
    cursor:                                     pointer !important;
    transition:                                 var(--b47-form-choice-transition) !important;
}
.b47-form .elementor-field-type-radio input[type="radio"]:checked {
    background:                                 var(--b47-form-choice-checked-bg) !important;
    border:                                     var(--b47-form-choice-checked-border) !important;
    box-shadow:                                 var(--b47-form-radio-ring) !important;
}
.b47-form .elementor-field-type-radio input[type="radio"]:focus {
    outline:                                    none !important;
    border:                                     var(--b47-form-choice-focus-border) !important;
}
.b47-form .elementor-field-type-radio .elementor-field-option label {
    font-family:                                var(--b47-form-field-font-family) !important;
    font-size:                                  var(--b47-form-field-font-size) !important;
    font-weight:                                var(--b47-form-field-font-weight) !important;
    line-height:                                var(--b47-form-field-line-height) !important;
    letter-spacing:                             var(--b47-form-field-letter-spacing) !important;
    color:                                      var(--b47-form-choice-label-color) !important;
    cursor:                                     pointer !important;
}

/* ------------------------------- CHECKBOX -------------------------------- */

.b47-form .elementor-field-type-checkbox .elementor-field-subgroup,
.b47-form .elementor-field-type-acceptance .elementor-field-subgroup {
    display:                                    flex !important;
    flex-direction:                             column !important;
    gap:                                        var(--b47-form-choice-gap) !important;
}
.b47-form .elementor-field-type-checkbox .elementor-field-option,
.b47-form .elementor-field-type-acceptance .elementor-field-option {
    display:                                    flex !important;
    align-items:                                center !important;
    gap:                                        var(--b47-form-choice-option-gap) !important;
}
.b47-form .elementor-field-type-checkbox input[type="checkbox"],
.b47-form .elementor-field-type-acceptance input[type="checkbox"] {
    position:                                   relative;
    appearance:                                 none !important;
    -webkit-appearance:                         none !important;
    width:                                      var(--b47-form-choice-size) !important;
    height:                                     var(--b47-form-choice-size) !important;
    min-width:                                  var(--b47-form-choice-size) !important;
    border:                                     var(--b47-form-choice-border) !important;
    border-radius:                              var(--b47-form-checkbox-radius) !important;
    background:                                 var(--b47-form-choice-bg) !important;
    cursor:                                     pointer !important;
    display:                                    grid !important;
    place-content:                              center !important;
    transition:                                 var(--b47-form-choice-transition) !important;
}
.b47-form .elementor-field-type-checkbox input[type="checkbox"]::before,
.b47-form .elementor-field-type-acceptance input[type="checkbox"]::before {
    position:                                   absolute !important;
    top:                                        50% !important;
    left:                                       var(--b47-form-checkbox-icon-left) !important;
    content:                                    '' !important;
    width:                                      var(--b47-form-choice-size) !important;
    height:                                     var(--b47-form-choice-size) !important;
    transform:                                  translate(-50%, -50%) scale(0) !important;
    transform-origin:                           bottom left !important;
    transition:                                 var(--b47-form-checkbox-check-transition) !important;
    background-color:                           var(--b47-form-checkbox-icon-color) !important;
    -webkit-mask-image:                         var(--b47-form-checkbox-icon) !important;
    mask-image:                                 var(--b47-form-checkbox-icon) !important;
    -webkit-mask-repeat:                        no-repeat !important;
    mask-repeat:                                no-repeat !important;
    -webkit-mask-size:                          contain !important;
    mask-size:                                  contain !important;
    -webkit-mask-position:                      center !important;
    mask-position:                              center !important;
}
.b47-form .elementor-field-type-checkbox input[type="checkbox"]:checked,
.b47-form .elementor-field-type-acceptance input[type="checkbox"]:checked {
    background:                                 var(--b47-form-choice-checked-bg) !important;
    border:                                     var(--b47-form-choice-checked-border) !important;
}
.b47-form .elementor-field-type-checkbox input[type="checkbox"]:checked::before,
.b47-form .elementor-field-type-acceptance input[type="checkbox"]:checked::before {
    transform:                                  translate(-50%, -50%) scale(1) !important;
}
.b47-form .elementor-field-type-checkbox input[type="checkbox"]:focus,
.b47-form .elementor-field-type-acceptance input[type="checkbox"]:focus {
    outline:                                    none !important;
    border:                                     var(--b47-form-choice-focus-border) !important;
}
.b47-form .elementor-field-type-checkbox .elementor-field-option label,
.b47-form .elementor-field-type-acceptance .elementor-field-option label {
    font-family:                                var(--b47-form-field-font-family) !important;
    font-size:                                  var(--b47-form-field-font-size) !important;
    font-weight:                                var(--b47-form-field-font-weight) !important;
    line-height:                                var(--b47-form-field-line-height) !important;
    letter-spacing:                             var(--b47-form-field-letter-spacing) !important;
    color:                                      var(--b47-form-choice-label-color) !important;
    cursor:                                     pointer !important;
}

/* -------------------------------- SELECT --------------------------------- */

.b47-select {
    position:                                   relative;
    width:                                      100% !important;
}
.b47-select__trigger {
    display:                                    flex;
    align-items:                                center;
    justify-content:                            space-between;
    padding:                                    var(--b47-form-field-padding-y) var(--b47-form-field-padding-x);
    border-radius:                              var(--b47-form-field-radius);
    border:                                     var(--b47-form-field-border);
    background:                                 var(--b47-form-field-bg);
    box-shadow:                                 var(--b47-form-field-shadow);
    cursor:                                     pointer;
    font-family:                                var(--b47-form-field-font-family);
    font-size:                                  var(--b47-form-field-font-size);
    font-weight:                                var(--b47-form-field-font-weight);
    color:                                      var(--b47-form-field-color);
    transition:                                 var(--b47-form-select-trigger-transition);
    user-select:                                none;
}
.b47-select.is-open .b47-select__trigger {
    border-color:                               var(--b47-form-field-border-focus);
}
.b47-select__value {
    overflow:                                   hidden !important;
    white-space:                                nowrap !important;
    text-overflow:                              ellipsis !important;
    flex:                                       1 !important;
}
.b47-select__value.is-placeholder {
    color:                                      var(--b47-form-select-placeholder-color) !important;
    opacity:                                    var(--b47-form-placeholder-opacity) !important;
}
/* --- Chevron --- */
.b47-select__chevron {
    width:                                      var(--b47-form-select-chevron-size) !important;
    height:                                     var(--b47-form-select-chevron-size) !important;
    background-color:                           var(--b47-form-select-chevron-color) !important;
    mask-image:                                 var(--b47-form-select-chevron-icon) !important;
    -webkit-mask-image:                         var(--b47-form-select-chevron-icon) !important;
    mask-size:                                  contain !important;
    -webkit-mask-size:                          contain !important;
    mask-repeat:                                no-repeat !important;
    mask-position:                              center !important;
    flex-shrink:                                0 !important;
    transform:                                  var(--b47-form-select-chevron-transform);
    transition:                                 var(--b47-form-select-chevron-transition) !important;
}
.b47-select.is-open .b47-select__chevron {
    transform:                                  var(--b47-form-select-chevron-open-transform);
    background-color:                           var(--b47-form-select-chevron-color-hover) !important;
}
.b47-select__trigger:hover .b47-select__chevron {
    background-color:                           var(--b47-form-select-chevron-color-hover) !important;
}
/* --- Dropdown --- */
.b47-select__dropdown {
    display:                                    none;
    position:                                   absolute;
    top:                                        var(--b47-form-select-dropdown-position) !important;
    left:                                       0;
    right:                                      0;
    background:                                 var(--b47-form-select-dropdown-bg);
    border:                                     var(--b47-form-select-dropdown-border) !important;
    border-radius:                              var(--b47-form-select-dropdown-radius);
    box-shadow:                                 var(--b47-form-select-dropdown-shadow);
    list-style:                                 none;
    padding:                                    var(--b47-form-select-dropdown-padding);
    z-index:                                    var(--b47-form-select-z);
    max-height:                                 var(--b47-form-select-dropdown-max-height) !important;
    overflow-y:                                 auto;
}
.b47-select.is-open .b47-select__dropdown {
    display:                                    block;
}
/* --- Options --- */
.b47-select__option {
    padding:                                    var(--b47-form-select-option-padding-y) var(--b47-form-field-padding-x);
    font-family:                                var(--b47-form-field-font-family);
    font-size:                                  var(--b47-form-field-font-size);
    font-weight:                                var(--b47-form-field-font-weight);
    color:                                      var(--b47-form-field-color);
    cursor:                                     pointer;
    transition:                                 var(--b47-form-select-option-transition);
}
.b47-select__option:hover {
    background:                                 var(--b47-form-select-option-hover-bg);
}
.b47-select__option.is-selected {
    background:                                 var(--b47-form-select-selected-bg);
    color:                                      var(--b47-form-select-selected-color);

}

/* --- Inverse Variant --- */
.is-color-inverse .b47-select__trigger,
.b47-form.is-color-inverse .b47-select__trigger {
    background:   var(--b47-form-field-bg-inverse) !important;
    border:       var(--b47-form-field-border-inverse) !important;
    color:        var(--b47-form-field-color-inverse) !important;
}
.is-color-inverse .b47-select__value.is-placeholder,
.b47-form.is-color-inverse .b47-select__value.is-placeholder {
    color:        var(--b47-form-select-placeholder-color-inverse) !important;
}
.is-color-inverse .b47-select__chevron,
.b47-form.is-color-inverse .b47-select__chevron {
    background-color: var(--b47-form-select-chevron-color-inverse) !important;
}
.is-color-inverse .b47-select__dropdown,
.b47-form.is-color-inverse .b47-select__dropdown {
    background:   var(--b47-form-select-dropdown-bg-inverse) !important;
    border:       var(--b47-form-select-dropdown-border-inverse) !important;
}
.is-color-inverse .b47-select__option:hover,
.b47-form.is-color-inverse .b47-select__option:hover {
    background:   var(--b47-form-select-option-hover-bg-inverse) !important;
}

/* ------------------------------ DATE PICKER ------------------------------ */

.flatpickr-calendar {
    background:                                 var(--b47-form-date-bg) !important;
    margin-top:                                 var(--b47-form-date-offset) !important;
    font-family:                                var(--b47-form-date-font) !important;
    border-radius:                              var(--b47-form-date-radius) !important;
    box-shadow:                                 var(--b47-form-date-shadow) !important;
    border:                                     var(--b47-form-date-border) !important;
}

/* --- Month --- */
.flatpickr-calendar .flatpickr-months {
    align-items:                                center !important;
}
.flatpickr-calendar .flatpickr-month {
    height:                                     var(--b47-form-date-header-height) !important;
    display:                                    flex !important;
    align-items:                                center !important;
    padding-bottom:                             var(--b47-form-date-header-padding-bottom) !important;
}
.flatpickr-calendar .flatpickr-current-month {
    display:                                    flex !important;
    align-items:                                center !important;
    height:                                     auto !important;
    color:                                      var(--b47-form-date-month-color) !important
}
/* --- Year --- */
.flatpickr-calendar .flatpickr-current-month input.numInput {
    color:                                      var(--b47-form-date-month-color) !important;
    background:                                 transparent !important;
}

/* --- Year spinner arrows --- */
.flatpickr-calendar .numInputWrapper span {
    border-color:                               rgba(255,255,255,0.15) !important;
}
.flatpickr-calendar .numInputWrapper span.arrowUp::after {
    border-bottom-color:                        var(--b47-form-date-month-color) !important;
}
.flatpickr-calendar .numInputWrapper span.arrowDown::after {
    border-top-color:                           var(--b47-form-date-month-color) !important;
}

/* --- Nav arrows — target container for color + svg for fill --- */
.flatpickr-calendar .flatpickr-months .flatpickr-prev-month:hover,
.flatpickr-calendar .flatpickr-months .flatpickr-next-month:hover {
    color:                                      var(--b47-form-date-nav-hover) !important;
    fill:                                       var(--b47-form-date-nav-hover) !important;
}
.flatpickr-calendar .flatpickr-months .flatpickr-prev-month svg,
.flatpickr-calendar .flatpickr-months .flatpickr-next-month svg {
    fill:                                       var(--b47-form-date-nav-color) !important;
    transition:                                 var(--b47-form-date-nav-transition) !important;
}
.flatpickr-calendar .flatpickr-months .flatpickr-prev-month:hover svg,
.flatpickr-calendar .flatpickr-months .flatpickr-next-month:hover svg {
    fill:                                       var(--b47-form-date-nav-hover) !important;
}

/* --- Weekday headers --- */
.flatpickr-calendar .flatpickr-weekday {
    color:                                      var(--b47-form-date-weekday-color) !important;
}

/* --- Day --- */
.flatpickr-calendar .flatpickr-day {
    border-radius:                              var(--b47-form-date-day-radius) !important;
    color:                                      var(--b47-form-date-day-color) !important;
}
.flatpickr-calendar .flatpickr-day:hover,
.flatpickr-calendar .flatpickr-day:focus {
    background:                                 var(--b47-form-date-hover-bg) !important;
    color:                                      var(--b47-form-date-hover-color) !important;
    border-color:                               transparent !important;
}
.flatpickr-calendar .flatpickr-day.today {
    border:                                     var(--b47-form-date-today-border) !important;
    background:                                 transparent !important;
}
.flatpickr-calendar .flatpickr-day.today:hover {
    background:                                 var(--b47-form-date-hover-bg) !important;
    color:                                      var(--b47-form-date-hover-color) !important;
    border:                                     none !important;
}
.flatpickr-calendar .flatpickr-day.selected,
.flatpickr-calendar .flatpickr-day.selected:hover,
.flatpickr-calendar .flatpickr-day.selected.today,
.flatpickr-calendar .flatpickr-day.selected.today:hover {
    background:                                 var(--b47-form-date-selected-bg) !important;
    border-color:                               var(--b47-form-date-selected-bg) !important;
    color:                                      var(--b47-form-date-selected-color) !important;
}
.flatpickr-calendar .flatpickr-day.prevMonthDay,
.flatpickr-calendar .flatpickr-day.nextMonthDay {
    color:                                      var(--b47-form-date-muted-color) !important;
}

/* --- Time input placeholder --- */
.flatpickr-calendar .flatpickr-time input {
    color: var(--b47-form-date-day-color) !important;
}
.flatpickr-calendar .flatpickr-time input:hover {
    background: var(--b47-form-date-time-bg-active) !important;
}
.flatpickr-calendar .flatpickr-time input::placeholder {
    color:   var(--b47-form-date-time-placeholder-color) !important;
    opacity: var(--b47-form-placeholder-opacity) !important;
}
.flatpickr-calendar .flatpickr-time .flatpickr-time-separator,
.flatpickr-calendar .flatpickr-time .flatpickr-am-pm {
    color: var(--b47-form-date-day-color) !important;
}

/* --- iOS Safari — date & time placeholder fix --- */
.b47-form input[type="date"],
.b47-form input[type="time"] {
    -webkit-appearance:             none !important;
    appearance:                     none !important;
}
.b47-form input[type="date"]::before,
.b47-form input[type="time"]::before {
    content:                        attr(placeholder);
    color:                          var(--b47-form-placeholder-color);
    opacity:                        var(--b47-form-placeholder-opacity);
    font-family:                    var(--b47-form-field-font-family);
    font-size:                      var(--b47-form-field-font-size);
    font-weight:                    var(--b47-form-field-font-weight);
    display:                        block;
    white-space:                    nowrap;
    text-overflow:                  ellipsis;
    max-width:                      calc(100% - var(--b47-form-field-padding-x));
}
.b47-form input[type="date"].date-selected::before,
.b47-form input[type="time"].date-selected::before {
    content:                        '' !important;
}
.b47-form input::-webkit-date-and-time-value {
    text-align:                     left !important;
    width:                          100% !important;
    display:                        block !important;
}

/* ------------------------------ FILE UPLOAD ------------------------------ */

.b47-form .elementor-field-type-upload .elementor-field-group,
.b47-form .elementor-field-type-upload {
    flex-direction:                             column !important;
    justify-content:                            start !important;
    align-items:                                start !important;
    position:                                   relative !important;
}
.b47-upload {
    display:                                    flex !important;
    align-items:                                center !important;
    gap:                                        var(--b47-form-upload-gap) !important;
}
.b47-upload__btn {
    -webkit-appearance:                         none !important;
    appearance:                                 none !important;
    margin:                                     0 !important;
    display:                                    inline-flex !important;
    align-items:                                center !important;
    gap:                                        var(--b47-form-upload-btn-icon-gap) !important;
    padding:                                    var(--b47-form-upload-btn-padding) !important;
    border:                                     var(--b47-form-upload-btn-border) !important;
    border-radius:                              var(--b47-form-upload-btn-radius) !important;
    background:                                 var(--b47-form-upload-btn-bg) !important;
    color:                                      var(--b47-form-upload-btn-color) !important;
    font-family:                                var(--b47-form-upload-btn-font-family) !important;
    font-size:                                  var(--b47-form-upload-btn-font-size) !important;
    font-weight:                                var(--b47-form-upload-btn-font-weight) !important;
    line-height:                                var(--b47-form-upload-btn-line-height) !important;
    letter-spacing:                             var(--b47-form-upload-btn-letter-spacing) !important;
    text-transform:                             var(--b47-form-upload-btn-text-transform) !important;
    cursor:                                     pointer !important;
    white-space:                                nowrap !important;
    transition:                                 var(--b47-form-upload-btn-transition) !important;
}
.b47-upload__btn:hover {
    background:                                 var(--b47-form-upload-btn-bg-hover) !important;
    color:                                      var(--b47-form-upload-btn-color-hover) !important;
    border-color:                               var(--b47-form-upload-btn-border-hover) !important;
}
.b47-upload__icon {
    width:                                      var(--b47-form-upload-icon-size) !important;
    height:                                     var(--b47-form-upload-icon-size) !important;
    background-color:                           currentColor !important;
    mask-image:                                 var(--b47-form-upload-icon) !important;
    -webkit-mask-image:                         var(--b47-form-upload-icon) !important;
    mask-size:                                  contain !important;
    mask-repeat:                                no-repeat !important;
    mask-position:                              center !important;
    flex-shrink:                                0 !important;
}
.b47-upload__filename {
    font-family:                                var(--b47-form-label-font-family) !important;
    font-size:                                  var(--b47-form-upload-filename-size) !important;
    font-weight:                                var(--b47-form-label-font-weight) !important;
    line-height:                                var(--b47-form-label-line-height) !important;
    letter-spacing:                             var(--b47-form-label-letter-spacing) !important;
    color:                                      var(--b47-form-upload-filename-color) !important;
}
.b47-upload__clear {
    appearance:                                 none !important;
    background:                                 none !important;
    border:                                     none !important;
    padding:                                    0 !important;
    margin-left:                                var(--b47-form-upload-clear-margin) !important;
    font-size:                                  var(--b47-form-upload-clear-size) !important;
    color:                                      var(--b47-form-upload-clear-color) !important;
    cursor:                                     pointer !important;
    line-height:                                1 !important;
    transition:                                 var(--b47-form-upload-clear-transition) !important;
}
.b47-upload__clear:hover {
    color:                                      var(--b47-form-upload-clear-hover) !important;
}
.b47-upload__filename.is-selected {
    color:                                      var(--b47-form-field-color) !important;
}

/* --- Inverse Variant --- */
.is-color-inverse .b47-upload__btn,
.b47-form.is-color-inverse .b47-upload__btn {
    background:   var(--b47-form-upload-btn-bg-inverse) !important;
    color:        var(--b47-form-upload-btn-color-inverse) !important;
    border:       var(--b47-form-field-border-inverse) !important;
}
.is-color-inverse .b47-upload__icon,
.b47-form.is-color-inverse .b47-upload__icon {
    background-color: var(--b47-form-upload-btn-color-inverse) !important;
}

/* ------------------------------ ACCEPTANCE ------------------------------- */

/* --- Acceptance text --- */
.b47-form .elementor-field-type-acceptance .elementor-field-option label {
    font-family:                                var(--b47-form-field-font-family) !important;
    font-size:                                  var(--b47-form-field-font-size) !important;
    font-weight:                                var(--b47-form-field-font-weight) !important;
    line-height:                                var(--b47-form-field-line-height) !important;
    letter-spacing:                             var(--b47-form-field-letter-spacing) !important;
    color:                                      var(--b47-form-choice-label-color) !important;
    cursor:                                     default !important;
}
/* --- Acceptance link --- */
.b47-form .elementor-field-type-acceptance .elementor-field-option label a {
    color:                                      var(--b47-form-acceptance-link-color) !important;
    text-decoration:                            var(--b47-form-acceptance-link-decoration) !important;
    cursor:                                     pointer !important;
}
.b47-form .elementor-field-type-acceptance .elementor-field-option label a:hover {
    color:                                      var(--b47-form-acceptance-link-hover) !important;
    text-decoration:                            var(--b47-form-acceptance-link-hover-decoration) !important;
}

/* ----------------------------- SUBMIT BUTTONS ---------------------------- */

.b47-form .e-form__buttons {
    flex-wrap:                                  nowrap !important;
    margin-top:                                 var(--b47-form-buttons-margin-top);
}
.b47-form .elementor-field-type-submit .elementor-button {
    flex-basis:                                 auto !important;
    min-width:                                  var(--b47-form-btn-min-width) !important;
}
.b47-form .e-form__buttons__wrapper .elementor-button {
    white-space:                                nowrap !important;

}
.b47-form .elementor-field-type-submit .elementor-button {
    background:                                 var(--b47-form-buttons-bg) !important;
    color:                                      var(--b47-form-buttons-color) !important;
    width:                                      var(--b47-form-btn-min-width) !important;
    height:                                     var(--b47-form-btn-min-height) !important;
    border-radius:                              var(--b47-form-btn-radius) !important;
}
.b47-form .elementor-field-type-submit .elementor-button:hover {
    background:                                 var(--b47-form-buttons-bg-hover) !important;
    color:                                      var(--b47-form-buttons-color-hover) !important;
}
.b47-form .e-form__buttons__wrapper__button {
    min-width:                                  100px !important;
}
.b47-form.is-btn-stretch .e-form__buttons,
.b47-form.is-btn-stretch-mobile .e-form__buttons,
.b47-form.is-btn-stretch-tablet .e-form__buttons {
    align-items:                                stretch !important;
    width:                                      100% !important;
}
.b47-form.is-btn-stretch .e-form__buttons__wrapper,
.b47-form.is-btn-stretch-mobile .e-form__buttons__wrapper,
.b47-form.is-btn-stretch-tablet .e-form__buttons__wrapper {
    width:                                      100% !important;
    flex:                                       1 !important;
}
/* --- Arrow variant — submit only --- */
.b47-form.is-btn-arrow .elementor-field-type-submit .elementor-button .elementor-button-content-wrapper {
    display:                                    flex !important;
    align-items:                                center !important;
    gap:                                        var(--b47-button-gap) !important;
}
.b47-form.is-btn-arrow .elementor-field-type-submit .elementor-button .elementor-button-content-wrapper::after {
    content:                                    '' !important;
    width:                                      var(--b47-button-arrow-size) !important;
    height:                                     var(--b47-button-arrow-size) !important;
    background-color:                           currentColor !important;
    mask-image:                                 var(--b47-button-arrow-icon) !important;
    -webkit-mask-image:                         var(--b47-button-arrow-icon) !important;
    mask-size:                                  contain !important;
    mask-repeat:                                no-repeat !important;
    mask-position:                              center !important;
    flex-shrink:                                0 !important;
    transition:                                 var(--b47-form-btn-arrow-transition) !important;
}
.b47-form.is-btn-arrow .elementor-field-type-submit .elementor-button:hover .elementor-button-content-wrapper::after {
    transform:                                  var(--b47-form-btn-arrow-offset) !important;
}

/* ----------------------------- FORM MESSAGES ----------------------------- */

.b47-form .elementor-message {
    font-family:                                var(--b47-form-message-font-family) !important;
    font-size:                                  var(--b47-form-message-font-size) !important;
    font-weight:                                var(--b47-form-message-font-weight) !important;
    line-height:                                var(--b47-form-message-line-height) !important;
    letter-spacing:                             var(--b47-form-message-letter-spacing) !important;
    text-transform:                             var(--b47-form-message-text-transform) !important;
    display:                                    flex !important;
    align-items:                                center !important;
    gap:                                        var(--b47-form-message-gap) !important;
}
/* --- Hide Elementor's broken icon --- */
.b47-form .elementor-message::before {
    display:                                    none !important;
}
.b47-form .elementor-message-danger {
    color:                                      var(--b47-form-message-danger-color) !important;
}
.b47-form .elementor-message-success {
    color:                                      var(--b47-form-message-success-color) !important;
    margin-top:                                 var(--b47-form-message-margin-top) !important;
}
/* --- Inline field errors --- */
.b47-form .elementor-form-help-inline {
    margin-top:                                 var(--b47-form-message-inline-margin-top) !important;
}

/* --- Popup form --- */
.b47-form.popup-form .elementor-field-textual {
    font-family:                                var(--b47-body-s-family) !important;
    font-size:                                  var(--b47-body-s-size) !important;
    font-weight:                                var(--b47-body-s-weight) !important;
    line-height:                                var(--b47-body-s-line-height) !important;
    letter-spacing:                             var(--b47-body-s-letter-spacing) !important;
    padding:                                    var(--b47-spacing-m) !important;
}
.b47-form.popup-form .elementor-field-textual::placeholder {
    font-family:                                var(--b47-body-s-family) !important;
    font-size:                                  var(--b47-body-s-size) !important;
    font-weight:                                var(--b47-body-s-weight) !important;
    line-height:                                var(--b47-body-s-line-height) !important;
    letter-spacing:                             var(--b47-body-s-letter-spacing) !important;
}
.b47-form.popup-form input[type="date"]::before,
.b47-form.popup-form input[type="time"]::before {
    font-family:                                var(--b47-body-s-family) !important;
    font-size:                                  var(--b47-body-s-size) !important;
    font-weight:                                var(--b47-body-s-weight) !important;
    line-height:                                var(--b47-body-s-line-height) !important;
    letter-spacing:                             var(--b47-body-s-letter-spacing) !important;
}
.b47-form.popup-form .e-form__buttons {
    margin-top:                                 24px;
}
.b47-form.popup-form .elementor-button {
    font-family:                                var(--b47-body-s-family) !important;
    font-size:                                  var(--b47-body-s-size) !important;
    font-weight:                                var(--b47-body-s-weight) !important;
    line-height:                                var(--b47-body-s-line-height) !important;
    letter-spacing:                             var(--b47-body-s-letter-spacing) !important;
}

/* --- Newsletter form layout --- */
.b47-form.newsletter-form .elementor-form-fields-wrapper {
    position:           relative !important;
}
.b47-form.newsletter-form .elementor-field-group {
    margin:             0 !important;
    padding:            0 !important;
    width:              100% !important;
}

/* --- Email field --- */
.b47-form.newsletter-form .elementor-field-group.elementor-field-type-email input {
    padding-top:        16px !important;
    padding-right:      110px !important; /* clears button — adjust if button width changes */
    padding-bottom:     16px !important;
    padding-left:       24px !important;
    width:              100% !important;
    border-radius:      var(--b47-radius-max) !important;
    background:         var(--b47-tertiary-background-color) !important;
}

/* --- Submit button — inside field right --- */
.b47-form.newsletter-form .elementor-form-fields-wrapper {
    margin: 0 !important;
}
.b47-form.newsletter-form .elementor-field-group.elementor-field-type-submit {
    position:           absolute !important;
    right:              6px !important;
    top:                50% !important;
    transform:          translateY(-50%) !important;
    width:              auto !important;
}
.b47-form.newsletter-form .elementor-button {
    padding:            12px 20px !important;
    font-size:          14px !important;
    line-height:        1 !important;
    white-space:        nowrap !important;
    border-radius:      var(--b47-radius-max) !important;
    background:         #343434 !important;
    color:              var(--b47-heading-color) !important;
    border:             none !important;
    opacity:                                    var(--b47-button-disabled-opacity) !important;
    cursor:                                     not-allowed !important;
    pointer-events:                             none !important;
}
.b47-form.newsletter-form .elementor-button:hover {
    background: var(--b47-button-secondary-bg-hover) !important;
    color: var(--b47-button-secondary-text-hover) !important;
}
/* ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ 
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ HEADER & NAV POPUP ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ */

/* --------------------------- HEADER VARIABLES ---------------------------- */

/* --- set dynamically by JS on load and resize — do not hardcode --- */
:root { 
    --b47-header-height:                        0px;
    --b47-header-width:                         var(--b47-layout-width);
    --b47-header-width:                         var(--b47-layout-width);
    --b47-header-position:                      translateY(calc(-100% - var(--b47-header-top))) translateX(-50%);
    --b47-header-visible:                       translateY(0) translateX(-50%);
    --b47-header-hidden:                        translateY(calc(-100% - var(--b47-header-top))) translateX(-50%);
    --b47-header-top:                           16px;
    --b47-header-left:                          50%;
    --b47-header-bg:                            var(--b47-primary-background-color);
    --b47-header-bg-scrolled:                   var(--b47-primary-background-color);
    --b47-header-padding:                       var(--b47-padding-global) var(--b47-padding-global) var(--b47-padding-global) var(--b47-spacing-l);
    --b47-header-padding-scrolled:              var(--b47-padding-global);
    --b47-header-radius:                        var(--b47-radius-max);
    --b47-header-logo-width:                    180px;
    --b47-header-shadow:                        var(--b47-shadow-m);
    --b47-header-z:                             var(--b47-z-fixed);

    --b47-anchor-extra:                         20px;
    
    /* --- Transitions — intentional, more granular than system --- */
    --b47-header-transition:                    transform 0.4s ease, background 0.3s ease, padding 0.25s ease, top 0.3s ease;
    
    /* --- Nav colors — default (light bg) --- */
    --b47-header-icon-size:                     var(--b47-spacing-3xl);
    --b47-header-icon-color:                    var(--b47-heading-color);
    --b47-header-nav-color:                     var(--b47-heading-color);
    --b47-header-nav-color-hover:               var(--b47-primary-color);
    
    /* --- Nav colors — dark page --- */
    --b47-header-icon-color-dark:               var(--b47-primary-text-inverse-color);
    --b47-header-nav-color-dark:                var(--b47-primary-text-inverse-color);
    --b47-header-nav-color-dark-hover:          var(--b47-secondary-text-inverse-color);

    /* --- CTA colors — default (light bg) --- */
    --b47-header-cta-bg:                        transparent;
    --b47-header-cta-bg-hover:                  var(--b47-heading-color);
    --b47-header-cta-text:                      var(--b47-heading-color);
    --b47-header-cta-text-hover:                var(--b47-primary-background-color);
    --b47-header-cta-border:                    var(--b47-border-width) solid var(--b47-heading-color);
    --b47-header-cta-radius:                    var(--b47-radius-max);

    /* --- CTA colors — dark page --- */
    --b47-header-cta-dark-bg:                   transparent;
    --b47-header-cta-dark-bg-hover:             var(--b47-primary-text-inverse-color);
    --b47-header-cta-dark-text:                 var(--b47-primary-text-inverse-color);
    --b47-header-cta-dark-text-hover:           var(--b47-heading-color);
    --b47-header-cta-dark-border:               var(--b47-border-width) solid var(--b47-primary-text-inverse-color);
}

/* ----------------------------- HEADER CLASSES ---------------------------- */

/* --- Base --- */
.b47-header {
    position:                                   fixed !important;
    top:                                        var(--b47-header-top) !important;
    left:                                       var(--b47-header-left) !important;
    width:                                      var(--b47-header-width) !important;
    z-index:                                    var(--b47-header-z);
    background:                                 var(--b47-header-bg);
    border-radius:                              var(--b47-header-radius);
    padding:                                    var(--b47-header-padding) !important;
    transform:                                  var(--b47-header-position);
    transition:                                 var(--b47-header-transition);
}

/* --- Anchor Offset --- */
[id]                                            { scroll-margin-top: calc(var(--b47-header-height) + var(--b47-anchor-extra)); }

/* --- States --- */
.b47-header.is-visible                          { transform: var(--b47-header-visible) }
.b47-header.is-hidden                           { transform: var(--b47-header-hidden); }
.b47-header.is-scrolled {
    top:                                        8px !important;
    transition:                                 var(--b47-header-transition);
    background:                                 var(--b47-header-bg-scrolled) !important;
    box-shadow:                                 var(--b47-header-shadow);
    /* padding-top:                                var(--b47-header-padding-scrolled) !important;
    padding-bottom:                             var(--b47-header-padding-scrolled) !important; */
}

/* --- Logo --- */
.b47-header .b47-logo-light img,
.b47-header .b47-logo-dark img                  { width: var(--b47-header-logo-width) !important; }

/* Default + scrolled: light bg → dark logo */
.b47-header .b47-logo-dark                      { display: block; }
.b47-header .b47-logo-light                     { display: none; }

/* Dark page → light logo */
.b47-header.is-dark-page .b47-logo-dark         { display: none; }
.b47-header.is-dark-page .b47-logo-light        { display: block; }

/* Scrolled always wins: light bg → dark logo */
.b47-header.is-scrolled .b47-logo-dark          { display: block; }
.b47-header.is-scrolled .b47-logo-light         { display: none; }

/* --- Nav Links --- */
.b47-header .b47-header_nav .elementor-item {
    color:                                      var(--b47-header-nav-color) !important;
    transition:                                 none;
}
.b47-header .b47-header_nav .elementor-item:hover,
.b47-header .b47-header_nav .elementor-item-active,
.b47-header.is-scrolled .b47-header_nav .elementor-item:hover,
.b47-header.is-scrolled .b47-header_nav .elementor-item-active {
    color:                                      var(--b47-header-nav-color-hover) !important;
    transition:                                 none;
}
.b47-header.is-scrolled .b47-header_nav .elementor-item {
    color:                                      var(--b47-header-nav-color) !important;
}
.b47-header.is-dark-page .b47-header_nav .elementor-item {
    color:                                      var(--b47-header-nav-color-dark) !important;
}
.b47-header.is-dark-page .b47-header_nav .elementor-item:hover,
.b47-header.is-dark-page .b47-header_nav .elementor-item-active {
    color:                                      var(--b47-header-nav-color-dark-hover) !important;
}

/* --- CTA Button --- */
.b47-header .b47-header_cta .elementor-button,
.b47-header.is-scrolled .b47-header_cta .elementor-button {
    background:                                 var(--b47-header-cta-bg) !important;
    color:                                      var(--b47-header-cta-text) !important;
    border:                                     var(--b47-header-cta-border) !important;
    border-radius:                              var(--b47-header-cta-radius) !important;
    transition:                                 none;
}
.b47-header .b47-header_cta .elementor-button:hover,
.b47-header.is-scrolled .b47-header_cta .elementor-button:hover {
    background:                                 var(--b47-header-cta-bg-hover) !important;
    color:                                      var(--b47-header-cta-text-hover) !important;
}
.b47-header.is-dark-page .b47-header_cta .elementor-button {
    background:                                 var(--b47-header-cta-dark-bg) !important;
    color:                                      var(--b47-header-cta-dark-text) !important;
    border:                                     var(--b47-header-cta-dark-border) !important;
}
.b47-header.is-dark-page .b47-header_cta .elementor-button:hover {
    background:                                 var(--b47-header-cta-dark-bg-hover) !important;
    color:                                      var(--b47-header-cta-dark-text-hover) !important;
}

/* --- Mobile Nav Icon --- */
.b47-header .b47-header_icon                    { display: none; }
.b47-header .b47-header_icon svg                { width: var(--b47-header-icon-size); }

.b47-header .b47-header_icon svg path,
.b47-header.is-scrolled .b47-header_icon svg path {
    fill:                                       var(--b47-header-icon-color);
}
.b47-header.is-dark-page .b47-header_icon svg path {
    fill:                                       var(--b47-header-icon-color-dark);
}

/* ---------------------- NAV DROPDOWN VARIABLES ---------------------- */

:root {
    /* --- Nav Arrow (parent item) --- */
    --b47-nav-arrow-icon:                   url('/wp-content/uploads/chevron-down.svg');
    --b47-nav-arrow-color:                  var(--b47-header-nav-color);
    --b47-nav-arrow-size:                   var(--b47-spacing-l);
    --b47-nav-arrow-gap:                    var(--b47-spacing-3xs);
    --b47-nav-arrow-transition:                 none;

    /* --- Layout --- */
    --b47-nav-dropdown-margin-top:          29px;
    --b47-nav-dropdown-padding:             var(--b47-spacing-l);
    --b47-nav-dropdown-radius:              var(--b47-radius-xl);
    --b47-nav-dropdown-min-width:           300px;
    --b47-nav-dropdown-z:                   999;
    --b47-nav-dropdown-shadow:              var(--b47-shadow-m);
    --b47-nav-dropdown-bg:                  var(--b47-header-bg-scrolled);
    --b47-nav-dropdown-animation-in:        b47-dropdown-in 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    --b47-nav-dropdown-animation-out:       b47-dropdown-out 0.2s ease forwards;
    --b47-nav-dropdown-l2-offset:           var(--b47-spacing-10xl);

    /* --- Colors --- */
    --b47-nav-dropdown-item-bg:             var(--b47-muted-background-color);
    --b47-nav-dropdown-item-bg-hover:       var(--b47-secondary-background-color);
    --b47-nav-dropdown-item-color:          var(--b47-header-nav-color);
    --b47-nav-dropdown-item-color-hover:    var(--b47-header-nav-color-hover);
    --b47-nav-dropdown-item-padding:        var(--b47-spacing-xs);
    --b47-nav-dropdown-item-gap:            0;
    --b47-nav-dropdown-item-radius:         var(--b47-radius-l);
    --b47-nav-dropdown-item-hover-indent:   var(--b47-spacing-xs);
    --b47-nav-dropdown-item-transition:     padding var(--b47-transition-fast),
                                            background-color var(--b47-transition-fast);

    /* --- Typography --- */
    --b47-nav-dropdown-item-family:         var(--b47-body-family);
    --b47-nav-dropdown-item-size:           var(--b47-text-size-s);
    --b47-nav-dropdown-item-weight:         var(--b47-font-weight-regular);
    --b47-nav-dropdown-item-line-height:    var(--b47-leading-normal);
    --b47-nav-dropdown-item-letter-spacing: var(--b47-letter-spacing-normal);

    /* --- Item --- */
    --b47-nav-dropdown-item-padding:        var(--b47-padding-global);
    --b47-nav-dropdown-item-gap:            var(--b47-spacing-s);
    --b47-nav-dropdown-item-hover-indent:   var(--b47-spacing-xs);
    --b47-nav-dropdown-item-transition:     padding var(--b47-transition-fast),
                                            background var(--b47-transition-fast);

    /* --- Sub-item arrow --- */
    --b47-nav-dropdown-arrow-size:          14px;
    --b47-nav-dropdown-arrow-icon:          url('/wp-content/uploads/arrow-right.svg');
    --b47-nav-dropdown-arrow-color:         var(--b47-header-nav-color);
}

@keyframes b47-dropdown-in { from { transform: translate(-6px, -6px) scale(0.97); opacity: 0; } to { transform: translate(0, 0) scale(1); opacity: 1; } }
@keyframes b47-dropdown-out { from { transform: translate(0, 0) scale(1); opacity: 1; } to { transform: translate(-6px, -6px) scale(0.97); opacity: 0; } }

/* -------------------------- NAV DROPDOWN CLASSES ------------------------- */

/* --- Parent arrow --- */
.b47-header .b47-header_nav .sub-arrow svg      { display: none !important; }
.b47-header .b47-header_nav .sub-arrow {
    display:                                    block !important;
    width:                                      var(--b47-nav-arrow-size) !important;
    height:                                     var(--b47-nav-arrow-size) !important;
    margin-left:                                var(--b47-nav-arrow-gap) !important;
    background-color:                           var(--b47-nav-arrow-color) !important;
    -webkit-mask-image:                         var(--b47-nav-arrow-icon) !important;
    mask-image:                                 var(--b47-nav-arrow-icon) !important;
    -webkit-mask-size:                          contain !important;
    mask-size:                                  contain !important;
    -webkit-mask-repeat:                        no-repeat !important;
    mask-repeat:                                no-repeat !important;
    -webkit-mask-position:                      center !important;
    mask-position:                              center !important;
    transition:                                 var(--b47-nav-arrow-transition) !important;
}
.b47-header .b47-header_nav .menu-item-has-children > a:hover .sub-arrow {
    background-color:                           var(--b47-header-nav-color-hover) !important;
}
.b47-header .b47-header_nav .elementor-sub-item.has-submenu .sub-arrow {
    display:                                    none !important;
}

/* --- Dropdown container --- */
.b47-header .b47-header_nav .sub-menu.elementor-nav-menu--dropdown {
    animation:                                  none !important; 
}
.b47-header .b47-header_nav .sub-menu.elementor-nav-menu--dropdown[style*="display: block"] {
    animation:                                  var(--b47-nav-dropdown-animation-in) !important;
}
.b47-header .b47-header_nav .sub-menu.elementor-nav-menu--dropdown.is-hiding {
    display:                                    block !important;
    animation:                                  var(--b47-nav-dropdown-animation-out) !important;
}
.b47-header .b47-header_nav .menu-item .sub-menu.elementor-nav-menu--dropdown {
    margin-top:                                 var(--b47-nav-dropdown-margin-top) !important;
    padding:                                    var(--b47-nav-dropdown-padding) !important;
    background:                                 var(--b47-nav-dropdown-bg) !important;
    border:                                     var(--b47-nav-dropdown-border) !important;
    border-radius:                              var(--b47-nav-dropdown-radius) !important;
    box-shadow:                                 var(--b47-nav-dropdown-shadow) !important;
    min-width:                                  var(--b47-nav-dropdown-min-width) !important;
    z-index:                                    var(--b47-nav-dropdown-z) !important;
}

/* --- Second level dropdown --- */
.b47-header .b47-header_nav .sub-menu .sub-menu.elementor-nav-menu--dropdown {
    margin-top:                                 0 !important;
    margin-left:                                var(--b47-nav-dropdown-l2-offset) !important;
    border:                                     var(--b47-nav-dropdown-border) !important;
}
.b47-header .b47-header_nav .sub-menu .sub-menu.elementor-nav-menu--dropdown li a.elementor-sub-item::after {
    background-color:                           var(--b47-nav-dropdown-arrow-color) !important;
}
/* --- List items --- */
.b47-header .b47-header_nav .menu-item .sub-menu.elementor-nav-menu--dropdown li {
    background:                                 var(--b47-nav-dropdown-item-bg) !important;
    padding:                                    var(--b47-nav-dropdown-item-padding) !important;
    margin-bottom:                              var(--b47-nav-dropdown-item-gap) !important;
    border-radius:                              var(--b47-nav-dropdown-item-radius) !important;
    transition:                                 var(--b47-nav-dropdown-item-transition) !important;
}
.b47-header .b47-header_nav .menu-item .sub-menu.elementor-nav-menu--dropdown li:last-child {
    margin-bottom:                              0 !important;
}
/* --- Links --- */
.b47-header .b47-header_nav .menu-item .sub-menu.elementor-nav-menu--dropdown li a {
    display:                                    flex !important;
    align-items:                                center !important;
    justify-content:                            flex-start !important;
    padding:                                    0 !important;
    background:                                 transparent !important;
    border-inline-start:                        0px !important;
    font-family:                                var(--b47-nav-dropdown-item-family) !important;
    font-size:                                  var(--b47-nav-dropdown-item-size) !important;
    font-weight:                                var(--b47-nav-dropdown-item-weight) !important;
    line-height:                                var(--b47-nav-dropdown-item-line-height) !important;
    letter-spacing:                             var(--b47-nav-dropdown-item-letter-spacing) !important;
    color:                                      var(--b47-nav-dropdown-item-color) !important;
    transition:                                 var(--b47-nav-dropdown-item-transition) !important;
}
.b47-header .b47-header_nav .menu-item .sub-menu.elementor-nav-menu--dropdown li:has(a:hover) {
    background:                                 var(--b47-nav-dropdown-item-bg-hover) !important;
}
.b47-header .b47-header_nav .menu-item .sub-menu.elementor-nav-menu--dropdown li a:hover {
    color:                                      var(--b47-nav-dropdown-item-color-hover) !important;
    padding-left:                               var(--b47-nav-dropdown-item-hover-indent) !important;
    background:                                 transparent !important;
}

/* --- Sub-item arrow --- */
.b47-header .b47-header_nav .sub-menu.elementor-nav-menu--dropdown li a.elementor-sub-item::after {
    content:                                    '' !important;
    display:                                    block !important;
    width:                                      var(--b47-nav-dropdown-arrow-size) !important;
    height:                                     var(--b47-nav-dropdown-arrow-size) !important;
    background-color:                           var(--b47-nav-dropdown-arrow-color) !important;
    -webkit-mask-image:                         var(--b47-nav-dropdown-arrow-icon) !important;
    mask-image:                                 var(--b47-nav-dropdown-arrow-icon) !important;
    -webkit-mask-size:                          contain !important;
    mask-size:                                  contain !important;
    -webkit-mask-repeat:                        no-repeat !important;
    mask-repeat:                                no-repeat !important;
    mask-position:                              center !important;
    flex-shrink:                                0 !important;
    margin-left:                                auto !important;
}
.b47-header .b47-header_nav .sub-menu.elementor-nav-menu--dropdown li a.elementor-sub-item:not(:has(.sub-menu)):hover::after,
.b47-header .b47-header_nav .sub-menu.elementor-nav-menu--dropdown li:not(:has(.sub-menu:hover)) a.elementor-sub-item:hover::after {
    background-color:                           var(--b47-header-nav-color-hover) !important;
}

/* -------------------------- NAV POPUP VARIABLES -------------------------- */
:root {
    --b47-nav-popup-padding:                    var(--b47-spacing-3xl);
    --b47-nav-popup-nav-padding:                var(--b47-spacing-3xl) 0px;
    --b47-nav-popup-icon-size:                  var(--b47-spacing-2xl);
    --b47-nav-popup-icon-transition:            fill var(--b47-transition-fast);
    --b47-nav-popup-btn-gap:                    10.5px;
    --b47-nav-popup-sub-item-offset:            -12px;
    --b47-nav-popup-dropdown-size:              28px;
    --b47-nav-popup-dropdown-offset:            3px;
    --b47-nav-popup-sub-item-indent:            0px;

    /* Items */
    --b47-nav-popup-item-family:                var(--b47-h3-family);
    --b47-nav-popup-item-size:                  var(--b47-h4-size);
    --b47-nav-popup-item-weight:                var(--b47-h3-weight);
    --b47-nav-popup-item-line-height:           var(--b47-h3-line-height);
    --b47-nav-popup-item-letter-spacing:        var(--b47-h3-letter-spacing);
    --b47-nav-popup-item-text-transform:        var(--b47-text-transform-none);

    /* Sub-items */
    --b47-nav-popup-sub-family:                 var(--b47-h5-family);
    --b47-nav-popup-sub-size:                   var(--b47-h5-size);
    --b47-nav-popup-sub-weight:                 var(--b47-h5-weight);
    --b47-nav-popup-sub-line-height:            var(--b47-h5-line-height);
    --b47-nav-popup-sub-letter-spacing:         var(--b47-h5-letter-spacing);
    --b47-nav-popup-sub-text-transform:         var(--b47-text-transform-none);

    /* Back */
    --b47-nav-popup-back-family:                var(--b47-nav-family);
    --b47-nav-popup-back-size:                  var(--b47-nav-size);
    --b47-nav-popup-back-weight:                var(--b47-nav-weight);
    --b47-nav-popup-back-line-height:           var(--b47-nav-line-height);
    --b47-nav-popup-back-letter-spacing:        var(--b47-nav-letter-spacing);
    --b47-nav-popup-back-text-transform:        var(--b47-nav-popup-sub-text-transform);

    /* Footer */
    --b47-nav-popup-footer-family:              var(--b47-nav-family);
    --b47-nav-popup-footer-size:                var(--b47-nav-size);
    --b47-nav-popup-footer-weight:              var(--b47-nav-weight);
    --b47-nav-popup-footer-line-height:         var(--b47-nav-line-height);
    --b47-nav-popup-footer-letter-spacing:      var(--b47-nav-letter-spacing);
    --b47-nav-popup-footer-text-transform:      var(--b47-nav-popup-sub-text-transform);

    /* --- Colors --- */
    --b47-nav-popup-bg:                         var(--b47-primary-background-color);
    --b47-nav-popup-item-text:                  var(--b47-heading-color);
    --b47-nav-popup-sub-text:                   var(--b47-primary-text-color);
    --b47-nav-popup-text-hover:                 var(--b47-primary-color);
    --b47-nav-popup-icon-color:                 var(--b47-heading-color);
    --b47-nav-popup-footer-text:                var(--b47-secondary-text-color);

    /* --- CTA --- */
    --b47-nav-popup-cta-bg:                     transparent;
    --b47-nav-popup-cta-bg-hover:               var(--b47-primary-color);
    --b47-nav-popup-cta-text:                   var(--b47-heading-color);
    --b47-nav-popup-cta-text-hover:             var(--b47-primary-background-color);
    --b47-nav-popup-cta-border:                 var(--b47-border-width) solid var(--b47-heading-color);
    --b47-nav-popup-cta-border-hover:           var(--b47-primary-color);
    --b47-nav-popup-cta-radius:                 var(--b47-radius-max);
    --b47-nav-popup-footer-padding:             var(--b47-spacing-4xl);
}

/* --------------------------- NAV POPUP CLASSES --------------------------- */

/* --- Container --- */
.b47-nav-popup {
    width:                                      100% !important;
    min-height:                                 100vh !important;
    background:                                 var(--b47-nav-popup-bg) !important;
    padding:                                    var(--b47-nav-popup-padding) !important;
}

/* --- Back button --- */
.b47-nav-popup .b47-nav-popup_back .elementor-heading-title {
    font-family:                                var(--b47-nav-popup-back-family) !important;
    font-size:                                  var(--b47-nav-popup-back-size) !important;
    font-weight:                                var(--b47-nav-popup-back-weight) !important;
    line-height:                                var(--b47-nav-popup-back-line-height) !important;
    letter-spacing:                             var(--b47-nav-popup-back-letter-spacing) !important;
    text-transform:                             var(--b47-nav-popup-back-text-transform) !important;
    color:                                      var(--b47-nav-popup-item-text) !important;
    cursor:                                     pointer;
}
.b47-nav-popup .b47-nav-popup_back:hover .elementor-heading-title {
    color:                                      var(--b47-nav-popup-text-hover) !important;
}

/* --- Close + Back icons --- */
.b47-nav-popup .b47-nav-popup_back svg,
.b47-nav-popup .b47-nav-popup_close svg {
    width:                                      var(--b47-nav-popup-icon-size) !important;
    height:                                     var(--b47-nav-popup-icon-size) !important;
    line-height:                                0 !important;
    cursor:                                     pointer;
}
.b47-nav-popup .b47-nav-popup_back svg path,
.b47-nav-popup .b47-nav-popup_close svg path {
    fill:                                       var(--b47-nav-popup-icon-color);
    transition:                                 var(--b47-nav-popup-icon-transition);
}
.b47-nav-popup .b47-nav-popup_back:hover svg path,
.b47-nav-popup .b47-nav-popup_close:hover svg path {
    fill:                                       var(--b47-nav-popup-text-hover);
}

/* --- Nav Items --- */
.b47-nav-popup .b47-nav {
    padding:                                    var(--b47-nav-popup-nav-padding);
}
.b47-nav-popup .b47-nav_item p {
    font-family:                                var(--b47-nav-popup-item-family) !important;
    font-size:                                  var(--b47-nav-popup-item-size) !important;
    font-weight:                                var(--b47-nav-popup-item-weight) !important;
    line-height:                                var(--b47-nav-popup-item-line-height) !important;
    letter-spacing:                             var(--b47-nav-popup-item-letter-spacing) !important;
    text-transform:                             var(--b47-nav-popup-item-text-transform) !important; 
    color:                                      var(--b47-nav-popup-item-text) !important;
    cursor:                                     pointer;
}
.b47-nav-popup .b47-nav_item:hover p {
    color:                                      var(--b47-nav-popup-text-hover) !important;
}
.b47-nav-popup .b47-nav_sub-item {
    margin-top:                                 var(--b47-nav-popup-sub-item-offset);
}
.b47-nav-popup .b47-nav_sub-item p {
    font-family:                                var(--b47-nav-popup-sub-family) !important;
    font-size:                                  var(--b47-nav-popup-sub-size) !important;
    font-weight:                                var(--b47-nav-popup-sub-weight) !important;
    line-height:                                var(--b47-nav-popup-sub-line-height) !important;
    letter-spacing:                             var(--b47-nav-popup-sub-letter-spacing) !important;
    text-transform:                             var(--b47-nav-popup-sub-text-transform) !important;
    color:                                      var(--b47-nav-popup-sub-text) !important;
    cursor:                                     pointer;
}

/* --- Dropdown Icon --- */
.b47-nav-popup .b47-nav_item svg {
    width:                                      var(--b47-nav-popup-dropdown-size);
    height:                                     var(--b47-nav-popup-dropdown-size);
    margin-top:                                 var(--b47-nav-popup-dropdown-offset);
}
.b47-nav-popup .b47-nav_item svg path {
    fill:                                       var(--b47-nav-popup-item-text);
}
.b47-nav-popup .b47-nav_item:hover svg path {
    fill:                                       var(--b47-nav-popup-text-hover);
}

/* --- Footer / Socials --- */
.b47-nav-popup .b47-nav-popup_footer .elementor-heading-title {
    font-family:                                var(--b47-nav-popup-sub-family) !important;
    font-size:                                  var(--b47-nav-popup-sub-size) !important;
    font-weight:                                var(--b47-nav-popup-sub-weight) !important;
    line-height:                                var(--b47-nav-popup-sub-line-height) !important;
    letter-spacing:                             var(--b47-nav-popup-sub-letter-spacing) !important;
    text-transform:                             var(--b47-nav-popup-sub-text-transform) !important;
    color:                                      var(--b47-nav-popup-footer-text) !important;
    cursor:                                     pointer;
}
.b47-nav-popup .b47-nav-popup_footer .elementor-widget-container:hover .elementor-heading-title {
    color:                                      var(--b47-nav-popup-text-hover) !important;
}

/* --- Responsive --- */
@media only screen and (max-width: 1024px) {
    :root                                       { --b47-header-logo-width: 160px; 
                                                 --b47-nav-popup-sub-item-indent: var(--b47-spacing-s); 
                                                 --b47-header-radius: var(--b47-radius-xl);
                                                 --b47-header-padding: var(--b47-spacing-l) var(--b47-spacing-xl);}
    .b47-header                                 { width: calc(100vw - (var(--b47-body-padding) * 4)) !important; }                                             
    .b47-header .b47-logo-light img,
    .b47-header .b47-logo-dark img              { width: var(--b47-header-logo-width) !important; }
    .b47-header .b47-header_nav                 { display: none; }
    .b47-header .b47-header_icon                { display: block; }
    .b47-nav-popup .b47-nav-popup_back          { display: none; }
    .b47-nav-popup .b47-nav_sub-item            { margin-left: var(--b47-nav-popup-sub-item-indent); }
}
@media only screen and (max-width: 599px) {
    :root                                       { --b47-header-logo-width: 120px;
                                                  --b47-header-icon-size: 24px;
                                                  --b47-nav-popup-padding: var(--b47-spacing-2xl);
                                                  --b47-nav-popup-footer-padding:  var(--b47-spacing-4xl); }
    .b47-header .b47-logo-light img,
    .b47-header .b47-logo-dark img              { width: var(--b47-header-logo-width) !important; }
    .b47-nav-popup                              { padding: var(--b47-nav-popup-padding) !important; }
    .b47-nav-popup .b47-nav                     { padding: var(--b47-nav-popup-nav-padding); }
    .b47-nav-popup .b47-nav-popup_footer        { padding-bottom: var(--b47-nav-popup-footer-padding); }
}

/* ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ 
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ FOOTER ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ */

/* ---------------------------- FOOTER VARIABLES --------------------------- */

:root {
    --b47-footer-bg:                            var(--b47-primary-background-color);
    --b47-footer-logo-width:                    320px;
    --b47-footer-social-icon-size:              var(--b47-spacing-2xl);
    --b47-footer-social-margin:                 var(--b47-spacing-5xl);
    --b47-footer-social-transition:             fill var(--b47-transition-fast);
    --b47-footer-lower-border-top:              var(--b47-subtle-border);
    --b47-footer-lower-padding-top:             var(--b47-spacing-l);

    /* --- Colors --- */
    --b47-footer-text:                          var(--b47-primary-text-color);
    --b47-footer-text-hover:                    var(--b47-heading-color);
    --b47-footer-text-muted:                    var(--b47-muted-text-color);
    --b47-footer-text-muted-hover:              var(--b47-heading-color);
    --b47-footer-icon-color:                    var(--b47-primary-text-color);
    --b47-footer-social-icon-color:             var(--b47-secondary-text-color);
    --b47-footer-icon-hover:                    var(--b47-primary-color);
    --b47-footer-link-hover:                    var(--b47-heading-color);
    --b47-footer-link-weight:                   var(--b47-font-weight-regular);
    --b47-footer-link-transition:               color var(--b47-transition-fast);

    /* --- Inverse variant --- */
    --b47-footer-inverse-bg:                    var(--b47-inverse-background-color);
    --b47-footer-inverse-text:                  var(--b47-primary-text-inverse-color);
    --b47-footer-inverse-text-opacity:          var(--b47-opacity-2xl);
    --b47-footer-inverse-text-opacity-hover:    var(--b47-opacity-full);
    --b47-footer-inverse-icon-hover:            var(--b47-primary-color-light);
    --b47-footer-inverse-border:                var(--b47-border-color-strong);

    --b47-footer-link-size:                     var(--b47-text-size-s);
    --b47-footer-policies-size:                 var(--b47-text-size-xs);
}
.b47-footer .b47-list {
    /* --- List — inherits b47-list, overrides colors only --- */
    --icon-vertical-align:                      center !important;
    --icon-vertical-offset:                     0px !important;
    --b47-list-icon-color:                      var(--b47-footer-icon-color);
    --b47-list-text-color:                      var(--b47-footer-text);
    --b47-list-icon-hover:                      var(--b47-footer-icon-hover);
    --b47-list-text-hover:                      var(--b47-footer-text-hover);
}
.b47-footer .b47-list.is-link .elementor-icon-list-item:hover .elementor-icon-list-icon svg path {
    fill: var(--b47-footer-icon-hover) !important;
}
/* ----------------------------- FOOTER CLASSES ---------------------------- */

/* --- Base --- */
.b47-footer {
    background:                                 var(--b47-footer-bg) !important;
}

/* --- Logo --- */
.b47-footer .b47-footer_info a img {
    width:                                      var(--b47-footer-logo-width) !important;
}
.b47-footer .b47-footer_info .elementor-widget-text-editor p {
    color:                                      var(--b47-footer-text) !important;
}

/* --- Social Icons --- */
.b47-footer .b47-footer_social {
    margin-top:                                 var(--b47-footer-social-margin);
}
.b47-footer .b47-footer_social .elementor-icon svg {
    width:                                      var(--b47-footer-social-icon-size);
    height:                                     auto;
}
.b47-footer .b47-footer_social .elementor-icon svg path {
    fill:                                       var(--b47-footer-social-icon-color);
    transition:                                 var(--b47-footer-social-transition);
}
.b47-footer .b47-footer_social .elementor-icon:hover svg path {
    fill:                                       var(--b47-footer-icon-hover);
}

/* --- Nav Links --- */
.b47-footer .b47-footer_link .elementor-heading-title {
    font-size:                                  var(--b47-footer-link-size) !important;
    font-weight:                                var(--b47-footer-link-weight) !important;
    color:                                      var(--b47-footer-text) !important;
    cursor:                                     pointer;
    transition:                                 var(--b47-footer-link-transition);
}
.b47-footer .b47-footer_link:hover .elementor-heading-title {
    color:                                      var(--b47-footer-link-hover) !important;
}

/* --- Lower --- */
.b47-footer_lower {
    border-top:                                 var(--b47-footer-lower-border-top);
    padding-top:                                var(--b47-footer-lower-padding-top);
}

/* --- Policies + Copyright --- */
.b47-footer .b47-footer_policies .elementor-heading-title {
    font-size:                                  var(--b47-footer-policies-size) !important;
    color:                                      var(--b47-footer-text-muted) !important;
    cursor:                                     pointer;
    transition:                                 var(--b47-footer-link-transition);
}
.b47-footer .b47-footer_policies .elementor-heading-title:hover {
    color:                                      var(--b47-footer-text-muted-hover) !important;
}

/* --- Inverse variant --- */
.b47-footer.is-inverse {
    background-color:                           var(--b47-footer-inverse-bg) !important;
    border-top-color:                           var(--b47-footer-inverse-border);
}
.b47-footer.is-inverse .b47-footer_info p,
.b47-footer.is-inverse .b47-footer_info .elementor-heading-title,
.b47-footer.is-inverse .b47-footer_links .elementor-heading-title,
.b47-footer.is-inverse .elementor-icon-list-text,
.b47-footer.is-inverse .b47-footer_policies .elementor-heading-title {
    color:                                      var(--b47-footer-inverse-text) !important;
    opacity:                                    var(--b47-footer-inverse-text-opacity);
}
.b47-footer.is-inverse .b47-footer_links .elementor-widget-heading:hover .elementor-heading-title,
.b47-footer.is-inverse .b47-footer_policies .elementor-widget-heading:hover .elementor-heading-title,
.b47-footer.is-inverse .elementor-icon-list-item:hover .elementor-icon-list-text {
    color:                                      var(--b47-footer-inverse-text) !important;
    opacity:                                    var(--b47-footer-inverse-text-opacity-hover)
}
.b47-footer.is-inverse .b47-footer_lower {
    border-top-color:                           var(--b47-footer-inverse-border);
}
.b47-footer.is-inverse .b47-footer_social .elementor-icon svg path,
.b47-footer.is-inverse .b47-footer_social .elementor-icon svg circle {
    fill:                                       var(--b47-footer-inverse-text);
    opacity:                                    var(--b47-footer-inverse-text-opacity);
}
.b47-footer.is-inverse .b47-footer_social .elementor-icon:hover svg path,
.b47-footer.is-inverse .b47-footer_social .elementor-icon:hover svg circle {
    fill:                                       var(--b47-footer-inverse-icon-hover);
    opacity:                                    var(--b47-footer-inverse-text-opacity-hover);
}

/* --- Responsive --- */
@media only screen and (max-width: 1024px) {
    :root                                       { --b47-footer-logo-width: 230px; }
    .b47-footer .b47-footer_info a img          { width: var(--b47-footer-logo-width); }
}
@media only screen and (max-width: 768px) {
    .b47-footer .b47-col-1                      { display: none; }
}
@media only screen and (max-width: 599px) {
    :root                                       { --b47-footer-logo-width: 200px;
                                                  --b47-footer-lower-padding-top: var(--b47-spacing-3xl); }
    .b47-footer .b47-footer_info a img          { width: var(--b47-footer-logo-width); }
}

/* ------------------------- PROJECT CUSTOM FOOTER ------------------------- */

.footer-cta-title .elementor-heading-title {
    max-width:                                  400px;
}
.footer-logo img {
    opacity:                                    var(--b47-opacity-xs) !important;
    width:                                      100% !important;
}

.footer-links .elementor-heading-title:hover {
    color: var(--b47-heading-color) !important;
}
.contact-link .elementor-heading-title:hover {
    text-decoration: underline !important;
}

@media only screen and (max-width: 800px) {
.footer-cta-title.is-style-h4 p.elementor-heading-title { font-size: 18px !important; }
.footer-cta-button.is-btn-arrow .elementor-button-wrapper,
.footer-cta-button.is-btn-arrow .elementor-button { width: 100% !important; }
.footer-cta-button.is-btn-arrow .elementor-button-content-wrapper { justify-content: space-between !important; width: 100% !important; }
.footer-logo-container { padding: var(--b47-spacing-2xl) var(--b47-spacing-l) !important; }
.footer-links .elementor-heading-title { color: var(--b47-heading-color) !important; }
}

/* -------------------------------- PLUGINS -------------------------------- */

/* ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ 
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ COOKIE YES ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ */

/* ------------------------- COOKIE YES VARIABLES -------------------------- */

:root {
    /* --- Layout --- */
    --b47-cky-radius:                           var(--b47-radius-xl);
    --b47-cky-border:                           none;
    --b47-cky-shadow:                           none;
    --b47-cky-padding:                          var(--b47-spacing-2xl);
    
    /* --- Animation — uses system b47-fade-in keyframe --- */
    --b47-cky-animation:                        b47-fade-in var(--b47-duration-base) 100ms both;
    
    /* --- Typography --- */
    --b47-cky-desc-family:                      var(--b47-body-s-family);
    --b47-cky-desc-size:                        var(--b47-body-s-size);
    --b47-cky-desc-weight:                      var(--b47-body-s-weight);
    --b47-cky-desc-line-height:                 var(--b47-body-s-line-height);
    --b47-cky-desc-letter-spacing:              var(--b47-body-s-letter-spacing);
    
    --b47-cky-btn-family:                       var(--b47-body-s-family);
    --b47-cky-btn-size:                         var(--b47-body-s-size);
    --b47-cky-btn-weight:                       var(--b47-body-s-weight);
    --b47-cky-btn-line-height:                  var(--b47-body-s-line-height);
    --b47-cky-btn-letter-spacing:               var(--b47-body-s-letter-spacing);
    --b47-cky-btn-text-transform:               var(--b47-text-transform-none);
    --b47-cky-btn-padding:                      var(--b47-spacing-xs) var(--b47-spacing-l);
    --b47-cky-btn-transition:                  none;

    /* --- Colors --- */
    --b47-cky-bg:                               var(--b47-secondary-background-color);
    --b47-cky-text:                             var(--b47-primary-text-color);
    --b47-cky-text-hover:                       var(--b47-white);

    /* --- Accept button — mirrors system primary button --- */
    --b47-cky-accept-bg:                        var(--b47-gray-100);
    --b47-cky-accept-bg-hover:                  var(--b47-white);
    --b47-cky-accept-border:                    var(--b47-border-width) solid var(--b47-cky-accept-bg);
    --b47-cky-accept-radius:                    var(--b47-button-radius);
    --b47-cky-accept-text:                      var(--b47-black);
    --b47-cky-accept-text-hover:                var(--b47-black);

    /* --- Secondary buttons — border + text, lower opacity --- */
    --b47-cky-secondary-bg:                     transparent;
    --b47-cky-secondary-text:                   var(--b47-white);
    --b47-cky-secondary-border:                 var(--b47-border-width) solid var(--b47-white);
    --b47-cky-secondary-opacity:                var(--b47-opacity-2xl);  /* 0.7 */
    --b47-cky-secondary-opacity-hover:          var(--b47-opacity-full);

    --b47-cky-close-margin:                     15px 10px;
    --b47-cky-close-bg:                         transparent;

    /* --- Revisit floater --- */
    --b47-cky-revisit-size:                     28px;
    --b47-cky-revisit-icon-size:                15px;
    --b47-cky-revisit-bg:                       var(--b47-primary-background-color);
    --b47-cky-revisit-bg-hover:                 var(--b47-white);
    --b47-cky-revisit-z:                        10;

    /* --- Switch --- */
    --b47-cky-switch-bg:                        var(--b47-primary-background-color);
    --b47-cky-switch-checked-bg:                var(--b47-primary-color);
    --b47-cky-switch-border:                    none;
    --b47-cky-switch-radius:                    var(--b47-radius-max);
}

/* -------------------------- COOKIE YES CLASSES --------------------------- */

/* --- Consent bar --- */
.cky-consent-bar {
    opacity:                                    0;
    box-shadow:                                 var(--b47-cky-shadow) !important;
    border-radius:                              var(--b47-cky-radius) !important;
    border:                                     var(--b47-cky-border) !important;
    animation:                                  var(--b47-cky-animation) !important;
    padding:                                    var(--b47-cky-padding) !important;
    background:                                 var(--b47-cky-bg) !important;
}

/* --- Title --- */
.cky-consent-bar .cky-title                     { display: none !important; }

/* --- Description --- */
.cky-consent-bar .cky-notice-des p {
    font-family:                                var(--b47-cky-desc-family) !important;
    font-size:                                  var(--b47-cky-desc-size) !important;
    font-weight:                                var(--b47-cky-desc-weight) !important;
    line-height:                                var(--b47-cky-desc-line-height) !important;
    letter-spacing:                             var(--b47-cky-desc-letter-spacing) !important;
    color:                                      var(--b47-cky-text) !important;
}
.cky-consent-bar .cky-notice-des a {
    color:                                      var(--b47-cky-text) !important;
    text-decoration:                            none !important;
}
.cky-consent-bar .cky-notice-des a:hover {
    color:                                      var(--b47-cky-text-hover) !important;
}

/* --- Accept button — primary style --- */
.cky-btn.cky-btn-accept {
    opacity:                                    var(--b47-opacity-full) !important;
    font-family:                                var(--b47-cky-btn-family)  !important;
    font-size:                                  var(--b47-cky-btn-size) !important;
    font-weight:                                var(--b47-cky-btn-weight) !important;
    line-height:                                var(--b47-cky-btn-line-height) !important;
    letter-spacing:                             var(--b47-cky-btn-letter-spacing) !important;
    text-transform:                             var(--b47-cky-btn-text-transform) !important;
    background-color:                           var(--b47-cky-accept-bg) !important;
    color:                                      var(--b47-cky-accept-text) !important;
    border:                                     var(--b47-cky-accept-border) !important;
    border-radius:                              var(--b47-cky-accept-radius) !important;
    padding:                                    var(--b47-cky-btn-padding) !important;
    transition:                                 var(--b47-cky-btn-transition) !important;
}
.cky-btn.cky-btn-accept:hover {
    background-color:                           var(--b47-cky-accept-bg-hover) !important;
    border-color:                               var(--b47-cky-accept-bg-hover) !important;
    color:                                      var(--b47-cky-accept-text-hover) !important;
    transition:                                 var(--b47-cky-btn-transition) !important;
}

/* --- Secondary buttons — border + text, lower opacity --- */
.cky-btn.cky-btn-reject,
.cky-btn.cky-btn-customize,
.cky-btn.cky-btn-preferences {
    opacity:                                    var(--b47-cky-secondary-opacity) !important;
    font-family:                                var(--b47-cky-btn-family), sans-serif !important;
    font-size:                                  var(--b47-cky-btn-size) !important;
    font-weight:                                var(--b47-cky-btn-weight) !important;
    line-height:                                var(--b47-cky-btn-line-height) !important;
    letter-spacing:                             var(--b47-cky-btn-letter-spacing) !important;
    text-transform:                             var(--b47-cky-btn-text-transform) !important;
    background-color:                           var(--b47-cky-secondary-bg) !important;
    color:                                      var(--b47-cky-secondary-text) !important;
    border:                                     var(--b47-cky-secondary-border) !important;
    border-radius:                              var(--b47-cky-accept-radius) !important;
    padding:                                    var(--b47-cky-btn-padding) !important;
    transition:                                 var(--b47-cky-btn-transition) !important;
}
.cky-btn.cky-btn-reject:hover,
.cky-btn.cky-btn-customize:hover,
.cky-btn.cky-btn-preferences:hover {
    opacity:                                    var(--b47-cky-secondary-opacity-hover) !important;
}

/* --- Powered by + footer --- */
.cky-consent-bar [data-cky-tag="powered-by"]    { display: none !important; }
.cky-footer-wrapper div:last-child              { display: none !important; }

/* --- Close button --- */
.cky-consent-bar .cky-banner-btn-close img {
    margin:                                     var(--b47-cky-close-margin) !important;
}
.cky-preference-header .cky-btn-close:hover {
    background-color:                           var(--b47-cky-close-bg) !important;
}

/* --- Preference center --- */
.cky-modal,
.cky-modal .cky-preference-center,
.cky-modal .cky-preference-center .cky-audit-table {
    border-radius:                              var(--b47-cky-radius) !important;
    background:                                 var(--b47-cky-bg) !important;
    border-color:                               var(--b47-secondary-background-color) !important;
}
.cky-modal .cky-preference-center .cky-preference-title,
.cky-modal .cky-preference-center .cky-preference-body-wrapper button {
    color:                                      var(--b47-heading-color) !important;
    font-family:                                var(--b47-font-primary) !important;
}
.cky-modal .cky-preference-center .cky-accordion-btn,
.cky-modal .cky-preference-center span,
.cky-modal .cky-preference-center p,
.cky-modal .cky-preference-center .cky-accordion .cky-accordion-chevron i::before,
.cky-modal .cky-preference-center .cky-audit-table div {
    color:                                      var(--b47-cky-text) !important;
    font-family:                                var(--b47-font-primary) !important;
}
.cky-modal .cky-preference-center .cky-preference-body-wrapper button:hover {
    color:                                      var(--b47-primary-color) !important;
}
/* --- Switch --- */
#ckySwitchanalytics {
    border:                                     var(--b47-cky-switch-border) !important;
    border-radius:                              var(--b47-cky-switch-radius) !important;
}
.cky-switch input[type="checkbox"] {
    background:                                 var(--b47-cky-switch-bg) !important;
}
.cky-switch input[type="checkbox"]:checked {
    background:                                 var(--b47-cky-switch-checked-bg) !important;
}
.cky-footer-shadow {
    display: none !important;
}

/* --- Revisit floater --- */
.cky-btn-revisit-wrapper {
    background:                                 var(--b47-cky-revisit-bg) !important;
    width:                                      var(--b47-cky-revisit-size) !important;
    height:                                     var(--b47-cky-revisit-size) !important;
    z-index:                                    var(--b47-cky-revisit-z) !important;
}
.cky-btn-revisit-wrapper:hover {
    background-color:                           var(--b47-cky-revisit-bg-hover) !important;
}
.cky-btn-revisit-wrapper .cky-btn-revisit img {
    width:                                      var(--b47-cky-revisit-icon-size) !important;
    height:                                     var(--b47-cky-revisit-icon-size) !important;
}
.cky-btn-revisit-wrapper:hover .cky-btn-revisit img {
    filter:                                     invert(1) !important;
}

/* ------------------------------- CUSTOM CSS ------------------------------ */

.b47-hero_section {
    overflow:                                   hidden;
    border-radius:                              var(--b47-radius-3xl);
    height:                                     calc(100vh - (var(--b47-body-padding) * 2));
    padding:                                    var(--b47-spacing-3xl) var(--b47-spacing-3xl);
    --b47-anim:                                 b47-blur-in; --b47-anim-duration: var(--b47-duration-sloth); --b47-anim-delay: var(--b47-delay-400);
}
/* --- Container below hero section - radius --- */
.b47-hero_spacer-left                           { border-radius: var(--b47-radius-3xl) var(--b47-radius-xl) var(--b47-radius-xl) var(--b47-radius-xl); }
.b47-hero_spacer-right                          { border-radius: var(--b47-radius-xl) var(--b47-radius-3xl) var(--b47-radius-xl) var(--b47-radius-xl); }

/* --- Section base --- */
/* --- Parent: change space-between to flex-start --- */
.is-col-center-fixed                            { --justify-content: flex-start !important; --flex-wrap-mobile: nowrap !important; min-height: 150px !important; }

/* --- Left + right: grow to fill --- */
.is-col-center-fixed > .e-con:not(.b47-layout)  { --container-widget-flex-grow: 1 !important; background: var(--b47-muted-background-color); }

/* --- Middle: don't grow, fixed width --- */
.is-col-center-fixed > .e-con.b47-layout        { --container-widget-flex-grow: 0 !important; min-width: 1112px !important; max-width: 1112px !important; background: var(--b47-muted-background-color); }

@media (max-width: 1179px)                      { .is-col-center-fixed > .e-con.b47-layout { min-width: 752px !important; max-width: 752px !important; } }
@media (max-width: 800px)                       { .is-col-center-fixed > .e-con.b47-layout { min-width: 343px !important; max-width: 343px !important; }
                                                  .is-col-center-fixed { min-height: 100px !important; } }

/* --- Section Title --- */
.b47-layout .section-title, .b47-layout .section-cta {
    height:                                     100%;
    background:                                 var(--b47-secondary-background-color);
    border-radius:                              var(--b47-radius-xl);
    padding:                                    var(--b47-spacing-2xl);
}
.b47-layout .section-cta .elementor-widget-icon {
    background:                                 var(--b47-tertiary-background-color);
    padding:                                    var(--b47-spacing-s);
    border-radius:                              var(--b47-radius-max);
    transition:                                 var(--b47-button-arrow-transition);
}
.b47-layout .section-cta:hover .elementor-widget-icon {
    transform:                                  rotate(-45deg);
    transition:                                 var(--b47-button-arrow-transition);
}
.b47-layout .section-cta .elementor-icon svg {
    width:                                      var(--b47-spacing-xl) !important;
}

/* --- Cover Image View Overlay --- */
a.is-cover-image::after {
    content:                                    'detalii';
    position:                                   absolute;
    inset:                                      0;
    display:                                    flex;
    align-items:                                center;
    justify-content:                            center;
    backdrop-filter:                            blur(0px);
    -webkit-backdrop-filter:                    blur(0px);
    background:                                 transparent;
    color:                                      var(--b47-white);
    font-family:                                var(--b47-body-s-family);
    font-size:                                  var(--b47-body-s-size);
    font-weight:                                var(--b47-body-s-weight);
    line-height:                                var(--b47-body-s-line-height);
    letter-spacing:                             var(--b47-body-s-letter-spacing);
    text-transform:                             var(--b47-text-transform-none);
    opacity:                                    0;
    transition:                                 opacity 0.4s ease, backdrop-filter 0.4s ease;
    z-index:                                    2;
}
a.is-cover-image:hover::after {
    opacity:                                    1;
    backdrop-filter:                            blur(12px);
    -webkit-backdrop-filter:                    blur(12px);
}
/* --- View pill --- */
a.is-cover-image::before {
    content:                                    '';
    position:                                   absolute;
    top:                                        50%;
    left:                                       50%;
    width:                                      80px;
    height:                                     36px;
    transform:                                  translate(-50%, -50%);
    padding:                                    var(--b47-btn-padding-y) var(--b47-btn-padding-x);
    border-radius:                              var(--b47-btn-radius);
    background:                                 transparent;
    color:                                      var(--b47-white);
    backdrop-filter:                            blur(15px);
    border-radius:                              var(--b47-radius-max);
    -webkit-backdrop-filter:                    blur(15px);
    opacity:                                    0;
    transition:                                 opacity 0.4s ease;
    z-index:                                    3;
    white-space:                                nowrap;
}
a.is-cover-image:hover::before {
    opacity:                                    0.5;
}


/* --- Responsive --- */
@media only screen and (max-width: 1024px) {
.b47-hero_section .swiper-slide[data-swiper-slide-index="0"] .elementor-background-slideshow__slide__image {
    background-image: url('/wp-content/uploads/doifluturi-image-mobile-carousel-6.jpg') !important;
}
.b47-hero_section .swiper-slide[data-swiper-slide-index="1"] .elementor-background-slideshow__slide__image {
    background-image: url('/wp-content/uploads/doifluturi-image-mobile-carousel-9.jpg') !important;
}
.b47-hero_section .swiper-slide[data-swiper-slide-index="2"] .elementor-background-slideshow__slide__image {
    background-image: url('/wp-content/uploads/doifluturi-image-mobile-carousel-7.jpg') !important;
}
.b47-hero_section .swiper-slide[data-swiper-slide-index="3"] .elementor-background-slideshow__slide__image {
    background-image: url('/wp-content/uploads/doifluturi-image-mobile-carousel-1.jpg') !important;
}
.b47-hero_section .swiper-slide[data-swiper-slide-index="4"] .elementor-background-slideshow__slide__image {
    background-image: url('/wp-content/uploads/doifluturi-image-mobile-carousel-8.jpg') !important;
    background-position: center bottom !important;
}
.b47-hero_section .swiper-slide[data-swiper-slide-index="5"] .elementor-background-slideshow__slide__image {
    background-image: url('/wp-content/uploads/doifluturi-image-mobile-carousel-3.jpg') !important;
}

}

@media only screen and (max-width: 599px) {
.b47-hero_section { padding: var(--b47-spacing-3xl) var(--b47-spacing-l); } 
}

.policy-content h2 {
    font-family:                var(--b47-font-primary);
    font-size:                  var(--b47-heading-size-s);
    font-weight:                var(--b47-font-weight-medium);
    line-height:                var(--b47-line-height-normal);
    letter-spacing:             var(--b47-letter-spacing-tight);
    color:                      var(--b47-heading-color);
}
/* ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ */
/* ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ !DO NOT TOUCH! ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ */
/* ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ ELEMENTOR OVERRIDES ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ */
/* ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ !DO NOT TOUCH! ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ */
/* ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ */

.elementor-kit-5 {
    /* --- Layout width — mirrors Elementor global content width setting --- */
    --b47-layout-width:                             var(--e-global-content-width);
    /* --- Default Scale Override --- */
    --e-global-color-primary:                       var(--b47-primary-color) !important;
    --e-global-color-secondary:                     var(--b47-secondary-color) !important;
    --e-global-color-text:                          var(--b47-primary-text-color) !important;
    --e-global-color-accent:                        var(--b47-secondary-color) !important;
    --e-global-color-30b4139:                       var(--b47-secondary-color) !important;
    /* --- Primary Scale Override --- */
    --e-global-color-4246e61:                       var(--b47-primary-50) !important;
    --e-global-color-95b5580:                       var(--b47-primary-100) !important;
    --e-global-color-964ec23:                       var(--b47-primary-200) !important;
    --e-global-color-502e2cb:                       var(--b47-primary-300) !important;
    --e-global-color-1f71a2c:                       var(--b47-primary-400) !important;
    --e-global-color-11ab757:                       var(--b47-primary-500) !important;
    --e-global-color-3d770f2:                       var(--b47-primary-600) !important;
    --e-global-color-172f5f1:                       var(--b47-primary-700) !important;
    --e-global-color-4d377e9:                       var(--b47-primary-800) !important;
    --e-global-color-6dea4e8:                       var(--b47-primary-900) !important;
    --e-global-color-7328d7d:                       var(--b47-primary-950) !important;
    /* --- Secondary Scale Override --- */
    --e-global-color-12d259e:                       var(--b47-secondary-50) !important;
    --e-global-color-31fe862:                       var(--b47-secondary-100) !important;
    --e-global-color-74d8222:                       var(--b47-secondary-200) !important;
    --e-global-color-40693a0:                       var(--b47-secondary-300) !important;
    --e-global-color-bbbd181:                       var(--b47-secondary-400) !important;
    --e-global-color-9799c1b:                       var(--b47-secondary-500) !important;
    --e-global-color-f6bb3b2:                       var(--b47-secondary-600) !important;
    --e-global-color-7c9f85a:                       var(--b47-secondary-700) !important;
    --e-global-color-484b968:                       var(--b47-secondary-800) !important;
    --e-global-color-bb50ca1:                       var(--b47-secondary-900) !important;
    --e-global-color-cc87fe5:                       var(--b47-secondary-950) !important;
    /* --- Neutral Grays Override --- */
    --e-global-color-de3a066:                       var(--b47-white) !important;
    --e-global-color-497ae85:                       var(--b47-gray-50) !important;
    --e-global-color-028408d:                       var(--b47-gray-100) !important;
    --e-global-color-1d164f3:                       var(--b47-gray-200) !important;
    --e-global-color-246843e:                       var(--b47-gray-300) !important;
    --e-global-color-d019f2d:                       var(--b47-gray-400) !important;
    --e-global-color-58b7736:                       var(--b47-gray-500) !important;
    --e-global-color-3ea0afb:                       var(--b47-gray-600) !important;
    --e-global-color-d2b97e3:                       var(--b47-gray-700) !important;
    --e-global-color-3054ab4:                       var(--b47-gray-800) !important;
    --e-global-color-0d3cf96:                       var(--b47-gray-900) !important;
    --e-global-color-df205c0:                       var(--b47-gray-950) !important;
    --e-global-color-0e27546:                       var(--b47-black) !important;
    /* --- H1 --- */
    --e-global-typography-primary-font-family:      var(--b47-h1-family) !important;
    --e-global-typography-primary-font-size:        var(--b47-h1-size) !important;
    --e-global-typography-primary-font-weight:      var(--b47-h1-weight) !important;
    --e-global-typography-primary-line-height:      var(--b47-h1-line-height) !important;
    --e-global-typography-primary-letter-spacing:   var(--b47-h1-letter-spacing) !important;
    /* --- H2 --- */
    --e-global-typography-secondary-font-family:    var(--b47-h2-family) !important;
    --e-global-typography-secondary-font-size:      var(--b47-h2-size) !important;
    --e-global-typography-secondary-font-weight:    var(--b47-h2-weight) !important;
    --e-global-typography-secondary-line-height:    var(--b47-h2-line-height) !important;
    --e-global-typography-secondary-letter-spacing: var(--b47-h2-letter-spacing) !important;
    /* --- Body --- */
    --e-global-typography-text-font-family:         var(--b47-body-family) !important;
    --e-global-typography-text-font-size:           var(--b47-body-size) !important;
    --e-global-typography-text-font-weight:         var(--b47-body-weight) !important;
    --e-global-typography-text-line-height:         var(--b47-body-line-height) !important;
    --e-global-typography-text-letter-spacing:      var(--b47-body-letter-spacing) !important;
    /* --- Accent — points to secondary since accent is removed --- */
    --e-global-typography-accent-font-family:       var(--b47-body-family) !important;
    --e-global-typography-accent-font-size:         var(--b47-body-size) !important;
    --e-global-typography-accent-font-weight:       var(--b47-font-weight-semibold) !important;
    --e-global-typography-accent-line-height:       var(--b47-body-line-height) !important;
    --e-global-typography-accent-letter-spacing:    var(--b47-body-letter-spacing) !important;
    /* --- H3 --- */
    --e-global-typography-6709bb9-font-family:      var(--b47-h3-family) !important;
    --e-global-typography-6709bb9-font-size:        var(--b47-h3-size) !important;
    --e-global-typography-6709bb9-font-weight:      var(--b47-h3-weight) !important;
    --e-global-typography-6709bb9-line-height:      var(--b47-h3-line-height) !important;
    --e-global-typography-6709bb9-letter-spacing:   var(--b47-h3-letter-spacing) !important;
    /* --- H4 --- */
    --e-global-typography-6bc1921-font-family:      var(--b47-h4-family) !important;
    --e-global-typography-6bc1921-font-size:        var(--b47-h4-size) !important;
    --e-global-typography-6bc1921-font-weight:      var(--b47-h4-weight) !important;
    --e-global-typography-6bc1921-line-height:      var(--b47-h4-line-height) !important;
    --e-global-typography-6bc1921-letter-spacing:   var(--b47-h4-letter-spacing) !important;
    /* --- H5 --- */
    --e-global-typography-cd9ceb9-font-family:      var(--b47-h5-family) !important;
    --e-global-typography-cd9ceb9-font-size:        var(--b47-h5-size) !important;
    --e-global-typography-cd9ceb9-font-weight:      var(--b47-h5-weight) !important;
    --e-global-typography-cd9ceb9-line-height:      var(--b47-h5-line-height) !important;
    --e-global-typography-cd9ceb9-letter-spacing:   var(--b47-h5-letter-spacing) !important;
    /* --- H5 (alternate slot) --- */
    --e-global-typography-2b02bca-font-size:        var(--b47-h5-size) !important;
    --e-global-typography-2b02bca-font-weight:      var(--b47-h5-weight) !important;
    --e-global-typography-2b02bca-line-height:      var(--b47-h5-line-height) !important;
    --e-global-typography-2b02bca-letter-spacing:   var(--b47-h5-letter-spacing) !important;

    /* --- H6 --- */
    --e-global-typography-89dc100-font-family:      var(--b47-h6-family) !important;
    --e-global-typography-89dc100-font-size:        var(--b47-h6-size) !important;
    --e-global-typography-89dc100-font-weight:      var(--b47-h6-weight) !important;
    --e-global-typography-89dc100-line-height:      var(--b47-h6-line-height) !important;
    --e-global-typography-89dc100-letter-spacing:   var(--b47-h6-letter-spacing) !important;
    /* --- Body Secondary --- */
    --e-global-typography-0f04bdb-font-family:      var(--b47-body-s-family) !important;
    --e-global-typography-0f04bdb-font-size:        var(--b47-body-s-size) !important;
    --e-global-typography-0f04bdb-font-weight:      var(--b47-body-s-weight) !important;
    --e-global-typography-0f04bdb-line-height:      var(--b47-body-s-line-height) !important;
    --e-global-typography-0f04bdb-letter-spacing:   var(--b47-body-s-letter-spacing) !important;
    /* --- Body Tertiary --- */
    --e-global-typography-d293a02-font-family:      var(--b47-body-xs-family) !important;
    --e-global-typography-d293a02-font-size:        var(--b47-body-xs-size) !important;
    --e-global-typography-d293a02-font-weight:      var(--b47-body-xs-weight) !important;
    --e-global-typography-d293a02-line-height:      var(--b47-body-xs-line-height) !important;
    --e-global-typography-d293a02-letter-spacing:   var(--b47-body-xs-letter-spacing) !important;
    /* --- Navigation --- */
    --e-global-typography-bf139ad-font-family:      var(--b47-nav-family) !important;
    --e-global-typography-bf139ad-font-size:        var(--b47-nav-size) !important;
    --e-global-typography-bf139ad-font-weight:      var(--b47-nav-weight) !important;
    --e-global-typography-bf139ad-line-height:      var(--b47-nav-line-height) !important;
    --e-global-typography-bf139ad-letter-spacing:   var(--b47-nav-letter-spacing) !important;
    /* --- Links — inherits from parent, color handled globally via a { } No override needed --- */
    /* --- Links (weight only) --- */
    --e-global-typography-5cb811c-font-weight:      var(--b47-font-weight-regular) !important;
    /* --- Overline --- */
    --e-global-typography-5d1c0cb-font-family:      var(--b47-overline-family) !important;
    --e-global-typography-5d1c0cb-font-size:        var(--b47-overline-size) !important;
    --e-global-typography-5d1c0cb-font-weight:      var(--b47-overline-weight) !important;
    --e-global-typography-5d1c0cb-text-transform:   var(--b47-overline-transform) !important;
    --e-global-typography-5d1c0cb-line-height:      var(--b47-overline-line-height) !important;
    --e-global-typography-5d1c0cb-letter-spacing:   var(--b47-overline-letter-spacing) !important;
    /* --- Overline (alternate slot) --- */
    --e-global-typography-d812638-font-size:        var(--b47-overline-size) !important;
    --e-global-typography-d812638-font-weight:      var(--b47-overline-weight) !important;
    --e-global-typography-d812638-text-transform:   var(--b47-overline-transform) !important;
    --e-global-typography-d812638-line-height:      var(--b47-overline-line-height) !important;
    --e-global-typography-d812638-letter-spacing:   var(--b47-overline-letter-spacing) !important;
    /* --- Buttons --- */
    --e-global-typography-a0fc8f7-font-family:      var(--b47-button-family) !important;
    --e-global-typography-a0fc8f7-font-size:        var(--b47-button-size-m) !important;
    --e-global-typography-a0fc8f7-font-weight:      var(--b47-button-weight) !important;
    --e-global-typography-a0fc8f7-line-height:      var(--b47-button-line-height) !important;
    --e-global-typography-a0fc8f7-letter-spacing:   var(--b47-button-letter-spacing) !important;
    /* --- Buttons (alternate slot) --- */
    --e-global-typography-344c83e-font-size:        var(--b47-button-size-m) !important;
    --e-global-typography-344c83e-font-weight:      var(--b47-button-weight) !important;
    --e-global-typography-344c83e-line-height:      var(--b47-button-line-height) !important;
    --e-global-typography-344c83e-letter-spacing:   var(--b47-button-letter-spacing) !important;
}