<?php
/*
    File: Theme Header v1 - deprecated
*/
if( ! defined( 'ABSPATH' ) ) exit;

new header();
class header {

    /* 
        Constructor 
    */
    public function __construct() {
        $this->enqueue();
        $this->customizer();
        $this->render();
    }

    /*
        enqueue styles
    */
    public function enqueue() {
        add_action('wp_enqueue_scripts', array($this, 'load_scripts'), 11);
    }
    public function load_scripts() {
        wp_process_style('default_style', get_template_directory().'/assets/css/style_header.css');
    }
    
    /*
        customizer settings extensions
    */
    public function customizer() {
        add_action( 'get_header', array($this, 'add_process_defaults') );
        add_action( 'customize_register', array($this, 'add_customizer_settings') );
    }
    public function add_process_defaults() {
        
        if (!array_key_exists('HDRinfo' ,processor::$root)) {
            // common prio to bundle sets
            // $prio = 10;
            // $section = 'section_modules';
            processor::$root = array_merge(processor::$root, array(

                /* 
                panel 'panel_navigation' 
                */       
                /* section 'section_header' */
                'HDRinfo'          => array( 'section' => 'section_header', 'type' => 'info', 'description' => 'Dieses Feature ist veraltet und wird nicht mehr unterstützt. Stelle unter „Erweitert > Features“ die aktuelle Version ein.', 'mod' => 'section_header_info', 'input_attrs' => 'alert'),
                
                'HDRseparator'      => array( 'section' => 'section_header', 'type' => 'separator', 'label' => 'Layout', 'mod' => 'sep_header' ),
                'HDRrow'            => array( 'section' => 'section_header', 'type' => 'select',      'description' => 'Row Setting', 'mod' => 'header_row', 'default' => '', 'transport' => 'refresh', 
                                                                                                    'choices' => array( '' => 'Volle Breite, kein Gutter', 'gutter' => 'Volle Breite, Grid Gutter', 'maxwidth' => 'Grid maximale Breite, kein Gutter', 'maxwidth gutter' => 'Grid maximale Breite, Grid Gutter' ) ),
                '--HDRflexDirection'=> array( 'section' => 'section_header', 'type' => 'select',      'description' => 'Flex Direction', 'mod' => 'header_flex_direction', 'default' => 'column', 
                                                                                                    'choices' => array( 'column' => 'column', 'column-reverse' => 'column-reverse', 'row' => 'row', 'row-reverse' => 'row-reverse' ) ),
                '--HDRjustifyContent'=> array( 'section' => 'section_header', 'type' => 'select',     'description' => 'Justify Content', 'mod' => 'header_justify_content', 'default' => 'center', 
                                                                                                    'choices' => array( 'center' => 'center', 'flex-end' => 'flex-end', 'flex-start' => 'flex-start', 'space-around' => 'space-around', 'space-between' => 'space-between' ) ),
                'HDRscroll'         => array( 'section' => 'section_header', 'type' => 'select',      'description' => 'Header Scroll', 'mod' => 'header_scroll', 'default' => 'sticky', 'transport' => 'refresh', 
                                                                                                    'choices' => array( 'sticky' => 'sticky', 'non-sticky' => 'non-sticky' ) ),
                'HDRscrollOn'       => array( 'section' => 'section_header', 'type' => 'range',       'lbl' => 'add scrolled at:', 'mod' => 'header_scroll_on', 'default' => 250, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 500, 'step'  => 1 ) ),
                'HDRscrollOff'      => array( 'section' => 'section_header', 'type' => 'range',       'lbl' => 'remove scrolled at:', 'mod' => 'header_scroll_off', 'default' => 150, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 500, 'step'  => 1 ) ),
                '--HDRcontentTop'   => array( 'section' => 'section_header', 'type' => 'range',       'lbl' => 'content top:', 'mod' => 'header_content_top', 'default' => 260, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 500, 'step'  => 1 ) ),

                'BRNDseparator'     => array( 'section' => 'section_header', 'type' => 'separator', 'label' => 'Branding', 'mod' => 'sep_branding' ),
                '--BRbgcolor'       => array( 'section' => 'section_header', 'type' => 'colselect',   'description' => 'Branding Background Color 2.0', 'mod' => 'branding_background_color2', 'default' => 'color22', 'transport' => 'refresh' ),
                
                'BRNDrow'           => array( 'section' => 'section_header', 'type' => 'select',      'description' => 'Row Setting', 'mod' => 'branding_row', 'default' => 'row_xxl', 'transport' => 'refresh', 
                                                                                                    'choices' => array( 'row_l' => 'Zeile S', 'row_xl' => 'Zeile M', 'row_xxl' => 'Zeile L', 'row_xxxl' => 'Zeile XL' ) ),
                '--BRNDjustifyContent'=> array( 'section' => 'section_header', 'type' => 'select',    'description' => 'Justify Content', 'mod' => 'branding_justify_content', 'default' => 'center', 
                                                                                                    'choices' => array( 'center' => 'center', 'flex-end' => 'flex-end', 'flex-start' => 'flex-start' ) ),
                '--BRNDalignItems'  => array( 'section' => 'section_header', 'type' => 'select',      'description' => 'Align Items', 'mod' => 'branding_align_items', 'default' => 'center', 
                                                                                                    'choices' => array( 'center' => 'center', 'flex-end' => 'flex-end', 'flex-start' => 'flex-start' ) ),

                '--BRNDheight'      => array( 'section' => 'section_header', 'type' => 'range',       'lbl' => 'height:', 'mod' => 'branding_height', 'default' => 200, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 500, 'step'  => 1 ) ),
                '--BRNDheightScrolled'=> array( 'section' => 'section_header', 'type' => 'range',     'lbl' => 'height scrolled:', 'mod' => 'branding_height_scrolled', 'default' => 0, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 500, 'step'  => 1 ) ),
                
                '--BRNDwidth'       => array( 'section' => 'section_header', 'type' => 'range',       'lbl' => 'width:', 'mod' => 'branding_width', 'default' => 350, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 1000, 'step'  => 1 ) ),
                '--BRNDwidthScrolled'=> array( 'section' => 'section_header', 'type' => 'range',      'lbl' => 'width scrolled:', 'mod' => 'branding_width_scrolled', 'default' => 350, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 1000, 'step'  => 1 ) ),

                'BRNDMseparator'    => array( 'section' => 'section_header', 'type' => 'separator', 'label' => 'Branding Mobile', 'mod' => 'sep_branding_mobile' ),
                'BRNDMtoggle'       => array( 'section' => 'section_header', 'type' => 'range',       'lbl' => 'max-width toggle:', 'mod' => 'branding_toggle', 'default' => 768, 'unit' => 'px', 'transport' => 'refresh', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 1920, 'step'  => 1 ) ),  
                '--BRNDMheight'     => array( 'section' => 'section_header', 'type' => 'range',       'lbl' => 'height:', 'mod' => 'branding_mobile_height', 'default' => '--BRNDheight', 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 500, 'step'  => 1 ) ),
                '--BRNDMheightScrolled'=> array( 'section' => 'section_header', 'type' => 'range',    'lbl' => 'height scrolled:', 'mod' => 'branding_mobile_height_scrolled', 'default' => '--BRNDheightScrolled', 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 500, 'step'  => 1 ) ),
                
                '--BRNDMwidth'      => array( 'section' => 'section_header', 'type' => 'range',       'lbl' => 'width:', 'mod' => 'branding_mobile_width', 'default' => '--BRNDwidth', 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 1000, 'step'  => 1 ) ),
                '--BRNDMwidthScrolled'=> array( 'section' => 'section_header', 'type' => 'range',     'lbl' => 'width scrolled:', 'mod' => 'branding_mobile_width_scrolled', 'default' => '--BRNDwidthScrolled', 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 1000, 'step'  => 1 ) ),

                /* section 'section_meta' */
                '--MNAVinfo'          => array( 'section' => 'section_meta', 'type' => 'info', 'description' => 'Dieses Feature ist veraltet und wird nicht mehr unterstützt. Stelle unter „Erweitert > Features“ die aktuelle Version ein.', 'mod' => 'section_meta_info', 'input_attrs' => 'alert'),
                
                // basics
                'MNAVBscseparator'   => array( 'section' => 'section_meta', 'type' => 'separator',   'label' => 'Metamenü', 'mod' => 'sep_meta_navi_basics' ),
                'MNAVstyles'         => array( 'section' => 'section_meta', 'type' => 'select',        'description' => 'Navigation Style', 'mod' => 'meta_navi_style', 'default' => 'offleft', 'transport' => 'refresh', 
                                                                                                    'choices' => array( 'offright' => 'Off-Canvas rechts', 'offleft' => 'Off-Canvas links', 'overright' => 'Overlay rechts', 'overleft' => 'Overlay links', 'full' => 'Fullscreen rechts', 'fullleft' => 'Fullscreen links', 'hover' => 'Hover'  ) ),
                'MNAVtoggle'         => array( 'section' => 'section_meta', 'type' => 'range',         'label' => 'Mobile Toggle', 'lbl' => 'max-width toggle:', 'mod' => 'meta_menu_toggle', 'default' => 768, 'unit' => 'px', 'transport' => 'refresh', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 1921, 'step'  => 1 ) ),

                // override
                'MNAVseparator'      => array( 'section' => 'section_meta', 'type' => 'separator',   'label' => 'Meta Navigation', 'mod' => 'sep_enable_meta_navi' ),
                'MNAVoverride'       => array( 'section' => 'section_meta', 'type' => 'checkbox',    'label' => 'Erweiterte Einstellungen', 'mod' => 'enable_meta_navi', 'default' => 0 ),

                // menu
                'MMNUseparator'      => array( 'section' => 'section_meta', 'type' => 'separator',   'label' => 'Menu', 'mod' => 'sep_meta_navi_menu', 'dependency' => 'enable_meta_navi' ),
                '--MMNUbgcolor'      => array( 'section' => 'section_meta', 'type' => 'colselect',     'description' => 'Metamenü Background Color 2.0', 'mod' => 'meta_menu_background_color2', 'default' => 'color31', 'transport' => 'refresh' ),
                '--MMNSbgcolor'      => array( 'section' => 'section_meta', 'type' => 'colselect',     'description' => 'Metamenü Off-/SubMenü Background Color 2.0', 'mod' => 'meta_menusub_background_color2', 'default' => 'color31', 'transport' => 'refresh' ),
                
                '--MMNUheight'       => array( 'section' => 'section_meta', 'type' => 'range',         'lbl' => 'height:', 'mod' => 'meta_menu_height', 'dependency' => 'enable_meta_navi', 'default' => 40, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 30, 'max' => 200, 'step'  => 1 ) ),
                '--MMNUheightScrolled'=> array( 'section' => 'section_meta', 'type' => 'range',        'lbl' => 'height scrolled:', 'mod' => 'meta_menu_height_scrolled', 'dependency' => 'enable_meta_navi', 'default' => 0, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 200, 'step'  => 1 ) ),
                'MMNUrow'            => array( 'section' => 'section_meta', 'type' => 'select',        'description' => 'Row Setting', 'mod' => 'meta_menu_row', 'dependency' => 'enable_meta_navi', 'default' => 'row_xxl', 'transport' => 'refresh', 
                                                                                                    'choices' => array( 'row_l' => 'Zeile S', 'row_xl' => 'Zeile M', 'row_xxl' => 'Zeile L', 'row_xxxl' => 'Zeile XL' ) ),
                '--MMNUjustifyContent'=> array( 'section' => 'section_meta', 'type' => 'select',       'description' => 'Justify Content', 'mod' => 'meta_menu_justify_content', 'dependency' => 'enable_meta_navi', 'default' => 'flex-start', 
                                                                                                    'choices' => array( 'center' => 'center', 'flex-end' => 'flex-end', 'flex-start' => 'flex-start' ) ),
                '--MMNUalignItems'   => array( 'section' => 'section_meta', 'type' => 'select',        'description' => 'Align Items', 'mod' => 'meta_menu_align_items', 'dependency' => 'enable_meta_navi', 'default' => 'center', 
                                                                                                    'choices' => array( 'center' => 'center', 'flex-end' => 'flex-end', 'flex-start' => 'flex-start' ) ),
                // '--MMNUalignSelf'    => array( 'section' => 'section_meta', 'type' => 'select',        'description' => 'Align Self', 'mod' => 'meta_menu_align_self', 'dependency' => 'enable_meta_navi', 'default' => 'auto', 
                //                                                                                       'choices' => array( 'auto' => 'auto', 'center' => 'center', 'flex-end' => 'flex-end', 'flex-start' => 'flex-start' ) ),

                // font        
                'MMNUFntseparator'   => array( 'section' => 'section_meta', 'type' => 'separator',   'label' => 'Font', 'mod' => 'sep_meta_menu_font', 'dependency' => 'enable_meta_navi' ),
                '--MMNfontFamily'    => array( 'section' => 'section_meta', 'type' => 'ffselect',    'label' => 'Schrift', 'mod' => 'meta_menu_fontfamily', 'default' => 'fontFamily1', 'transport' => 'refresh' ),
                '--MMNUfontSize'     => array( 'section' => 'section_meta', 'type' => 'range',         'mod' => 'meta_menu_font_size', 'dependency' => 'enable_meta_navi', 'default' => 1.0, 'unit' => 'em' ),
                '--MMNUfontWeight'   => array( 'section' => 'section_meta', 'type' => 'select',        'mod' => 'meta_menu_font_weight', 'dependency' => 'enable_meta_navi', 'default' => 600 ),
                '--MMNUletterSpacing'=> array( 'section' => 'section_meta', 'type' => 'range',         'mod' => 'meta_menu_letter_spacing', 'dependency' => 'enable_meta_navi', 'default' => '--letterSpacing', 'unit' => 'px' ),
                '--MMNUwordSpacing'  => array( 'section' => 'section_meta', 'type' => 'range',         'mod' => 'meta_menu_word_spacing', 'dependency' => 'enable_meta_navi', 'default' => '--wordSpacing', 'unit' => 'px' ),
                '--MMNUtextAlign'    => array( 'section' => 'section_meta', 'type' => 'select',        'description' => 'Text Align', 'mod' => 'meta_menu_text_align', 'dependency' => 'enable_meta_navi', 'default' => 'left' ),
                '--MMNUtextTransform'=> array( 'section' => 'section_meta', 'type' => 'select',        'mod' => 'meta_menu_text_transform', 'dependency' => 'enable_meta_navi', 'default' => 'none' ),
                
                // items colors
                'MMNPrmseparator'    => array( 'section' => 'section_meta', 'type' => 'separator', 'label' => 'Colors 2.0', 'mod' => 'sep_meta_menu_item_color2' ),
                '--MMNtxtcolor'      => array( 'section' => 'section_meta', 'type' => 'colselect',   'label' => 'Text', 'description' => 'Metamenü Item Text Color', 'mod' => 'meta_menuitm_text_color2', 'default' => 'color22', 'transport' => 'refresh' ),
                '--MMNtxtcolorHover' => array( 'section' => 'section_meta', 'type' => 'colselect',   'description' => 'Metamenü Item Text Hover Color', 'mod' => 'meta_menuitm_text_hover_color2', 'default' => 'color23', 'transport' => 'refresh' ),
                '--MMNbgcolor'       => array( 'section' => 'section_meta', 'type' => 'colselect',   'label' => 'Background', 'description' => 'Metamenü Item Background Color', 'mod' => 'meta_menuitm_background_color2', 'default' => 'color63', 'transport' => 'refresh' ),
                '--MMNbgcolorHover'  => array( 'section' => 'section_meta', 'type' => 'colselect',   'description' => 'Metamenü Item Background Hover Color', 'mod' => 'meta_menuitm_background_hover_color2', 'default' => 'color63', 'transport' => 'refresh' ),
                
                'MMNUITMgroup'         => array( 'section' => 'section_meta', 'type' => 'group',     'label' => 'Border', 'mod' => 'group_meta_menu_item_border', 'dependency' => 'enable_meta_navi', 'input_attrs' => array( 'children' => 8 ) ),
                
                '--MMNbocolor'       => array( 'section' => 'section_meta', 'type' => 'colselect',   'label' => 'Border', 'description' => 'Metamenü Item Border Color', 'mod' => 'meta_menuitm_border_color2', 'default' => 'color22', 'transport' => 'refresh' ),
                '--MMNbocolorHover'  => array( 'section' => 'section_meta', 'type' => 'colselect',   'description' => 'Metamenü Item Border Hover Color', 'mod' => 'meta_menuitm_border_hover_color2', 'default' => 'color22', 'transport' => 'refresh' ),
                '--MMNUITMborderWidth' => array( 'section' => 'section_meta', 'type' => 'range',       'mod' => 'meta_menu_item_border_width', 'dependency' => 'enable_meta_navi', 'default' => 0, 'unit' => 'px' ),
                '--MMNUITMborderRadius'=> array( 'section' => 'section_meta', 'type' => 'range',       'mod' => 'meta_menu_item_border_radius', 'dependency' => 'enable_meta_navi', 'default' => 0, 'unit' => 'px' ),
                '--MMNUITMborderTop'   => array( 'section' => 'section_meta', 'type' => 'select',      'mod' => 'meta_menu_item_border_style_top', 'dependency' => 'enable_meta_navi', 'default' => 'solid' ),
                '--MMNUITMborderLeft'  => array( 'section' => 'section_meta', 'type' => 'select',      'mod' => 'meta_menu_item_border_style_left', 'dependency' => 'enable_meta_navi', 'default' => 'solid' ),
                '--MMNUITMborderRight' => array( 'section' => 'section_meta', 'type' => 'select',      'mod' => 'meta_menu_item_border_style_right', 'dependency' => 'enable_meta_navi', 'default' => 'solid' ), 
                '--MMNUITMborderBottom'=> array( 'section' => 'section_meta', 'type' => 'select',      'mod' => 'meta_menu_item_border_style_bottom', 'dependency' => 'enable_meta_navi', 'default' => 'solid' ),
                
                // items sec colors 
                'MMNSecseparator'    => array( 'section' => 'section_meta', 'type' => 'separator', 'label' => 'Secondary Colors 2.0', 'mod' => 'sep_meta_menu_item_sec_color2' ),
                '--MMN2txtcolor'     => array( 'section' => 'section_meta', 'type' => 'colselect',   'label' => 'Text', 'description' => 'Metamenü Item Sec Text Color', 'mod' => 'meta_menuitm2_text_color2', 'default' => 'color21', 'transport' => 'refresh' ),
                '--MMN2txtcolorHover'=> array( 'section' => 'section_meta', 'type' => 'colselect',   'description' => 'Metamenü Item Sec Text Hover Color', 'mod' => 'meta_menuitm2_text_hover_color2', 'default' => 'color23', 'transport' => 'refresh' ),
                '--MMN2bgcolor'      => array( 'section' => 'section_meta', 'type' => 'colselect',   'label' => 'Background', 'description' => 'Metamenü Item Sec Background Color', 'mod' => 'meta_menuitm2_background_color2', 'default' => 'color11', 'transport' => 'refresh' ),
                '--MMN2bgcolorHover' => array( 'section' => 'section_meta', 'type' => 'colselect',   'description' => 'Metamenü Item Sec Background Hover Color', 'mod' => 'meta_menuitm2_background_hover_color2', 'default' => 'color11', 'transport' => 'refresh' ),
                
                'MMNUITM2group'         => array( 'section' => 'section_meta', 'type' => 'group',    'label' => 'Border', 'mod' => 'group_meta_menu_item_sec_border', 'dependency' => 'enable_meta_navi', 'input_attrs' => array( 'children' => 8 ) ),
                
                '--MMN2bocolor'      => array( 'section' => 'section_meta', 'type' => 'colselect',   'label' => 'Border', 'description' => 'Metamenü Item Sec Border Color', 'mod' => 'meta_menuitm2_border_color2', 'default' => 'color22', 'transport' => 'refresh' ),
                '--MMN2bocolorHover' => array( 'section' => 'section_meta', 'type' => 'colselect',   'description' => 'Metamenü Item Sec Border Hover Color', 'mod' => 'meta_menuitm2_border_hover_color2', 'default' => 'color22', 'transport' => 'refresh' ),
                '--MMNUITM2borderWidth' => array( 'section' => 'section_meta', 'type' => 'range',      'mod' => 'meta_menu_item_sec_border_width', 'dependency' => 'enable_meta_navi', 'default' => 0, 'unit' => 'px' ),
                '--MMNUITM2borderRadius'=> array( 'section' => 'section_meta', 'type' => 'range',      'mod' => 'meta_menu_item_sec_border_radius', 'dependency' => 'enable_meta_navi', 'default' => 0, 'unit' => 'px' ),
                '--MMNUITM2borderTop'   => array( 'section' => 'section_meta', 'type' => 'select',     'mod' => 'meta_menu_item_sec_border_style_top', 'dependency' => 'enable_meta_navi', 'default' => 'solid' ),
                '--MMNUITM2borderLeft'  => array( 'section' => 'section_meta', 'type' => 'select',     'mod' => 'meta_menu_item_sec_border_style_left', 'dependency' => 'enable_meta_navi', 'default' => 'solid' ),
                '--MMNUITM2borderRight' => array( 'section' => 'section_meta', 'type' => 'select',     'mod' => 'meta_menu_item_sec_border_style_right', 'dependency' => 'enable_meta_navi', 'default' => 'solid' ),
                '--MMNUITM2borderBottom'=> array( 'section' => 'section_meta', 'type' => 'select',     'mod' => 'meta_menu_item_sec_border_style_bottom', 'dependency' => 'enable_meta_navi', 'default' => 'solid' ),

                /* section 'section_navi' */
                '--NAVinfo'          => array( 'section' => 'section_navi', 'type' => 'info', 'description' => 'Dieses Feature ist veraltet und wird nicht mehr unterstützt. Stelle unter „Erweitert > Features“ die aktuelle Version ein.', 'mod' => 'section_navi_info', 'input_attrs' => 'alert'),
                
                // basics
                'NAVBscseparator'   => array( 'section' => 'section_navi', 'type' => 'separator',   'label' => 'Hauptmenü', 'mod' => 'sep_navi_basics' ),
                'NAVstyles'         => array( 'section' => 'section_navi', 'type' => 'select',        'description' => 'Navigation Style', 'mod' => 'navi_style', 'default' => 'offright', 'transport' => 'refresh', 
                                                                                                    'choices' => array( 'offright' => 'Off-Canvas rechts', 'offleft' => 'Off-Canvas links', 'overright' => 'Overlay rechts', 'overleft' => 'Overlay links', 'full' => 'Fullscreen rechts', 'fullleft' => 'Fullscreen links', 'dropdown' => 'Dropdown', 'hover' => 'Hover'  ) ),
                'NAVsearch'         => array( 'section' => 'section_navi', 'type' => 'select',        'description' => 'Suche im Menü', 'mod' => 'navi_search', 'default' => 'none', 'transport' => 'refresh', 
                                                                                                    'choices' => array( 'none' => 'Kein Suchsymbol', 'right' => 'Suchsymbol rechts', 'left' => 'Suchsymbol links' ) ),

                'NAVtoggle'         => array( 'section' => 'section_navi', 'type' => 'range',         'label' => 'Hamburger Menu', 'lbl' => 'max-width toggle:', 'mod' => 'menu_toggle', 'default' => 768, 'unit' => 'px', 'transport' => 'refresh', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 1921, 'step'  => 1 ) ),  
                'HAMstyles'         => array( 'section' => 'section_navi', 'type' => 'select',        'description' => '<a href="https://jonsuh.com/hamburgers/" target="_blank">Hamburger Styles</a>', 'mod' => 'menu_burger', 'default' => 'collapse', 'transport' => 'refresh', 
                                                                                                        'choices' => array( '3dx' => '3dx', '3dy' => '3dy', '3dxy' => '3dxy', 'arrow' => 'arrow', 'arrowalt' => 'arrowalt', 'arrowturn' => 'arrowturn', 'boring' => 'boring', 'collapse' => 'collapse', 'elastic' => 'elastic', 'emphatic' => 'emphatic', 'minus' => 'minus', 'slider' => 'slider', 'spin' => 'spin', 'spring' => 'spring', 'stand' => 'stand', 'squeeze' => 'squeeze', 'vortex' => 'vortex' ) ),
                '--HAMsize'         => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'Hamburger Size:', 'mod' => 'hamburger_size', 'default' => 0.5, 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 2, 'step'  => 0.01 ) ),
                'HAMhide'           => array( 'section' => 'section_navi', 'type' => 'checkbox',      'label' => 'Hamburger Button auf Desktop verstecken', 'mod' => 'hamburger_hide', 'default' => 0, 'transport' => 'refresh' ),
                                                                                                    
                // override
                'NAVseparator'      => array( 'section' => 'section_navi', 'type' => 'separator',   'label' => 'Navigation', 'mod' => 'sep_enable_navi' ),
                'NAVoverride'       => array( 'section' => 'section_navi', 'type' => 'checkbox',    'label' => 'Erweiterte Einstellungen', 'mod' => 'enable_navi', 'default' => 0 ),

                // menu
                'MNUseparator'      => array( 'section' => 'section_navi', 'type' => 'separator',   'label' => 'Menü', 'mod' => 'sep_navi_menu', 'dependency' => 'enable_navi' ),
                '--MNUbgcolor'      => array( 'section' => 'section_navi', 'type' => 'colselect',     'description' => 'Hauptmenü Background Color 2.0', 'mod' => 'menu_background_color2', 'default' => 'color21', 'transport' => 'refresh' ),
                '--MNSbgcolor'      => array( 'section' => 'section_navi', 'type' => 'colselect',     'description' => 'Hauptmenü Off-/SubMenü Background Color 2.0', 'mod' => 'menusub_background_color2', 'default' => 'color21', 'transport' => 'refresh' ),
                
                '--MNUheight'       => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'height:', 'mod' => 'menu_height', 'dependency' => 'enable_navi', 'default' => 60, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 30, 'max' => 200, 'step'  => 1 ) ),
                '--MNUheightScrolled'=> array( 'section' => 'section_navi', 'type' => 'range',        'lbl' => 'height scrolled:', 'mod' => 'menu_height_scrolled', 'dependency' => 'enable_navi', 'default' => 60, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 200, 'step'  => 1 ) ),
                'MNUrow'            => array( 'section' => 'section_navi', 'type' => 'select',        'description' => 'Row Setting', 'mod' => 'menu_row', 'dependency' => 'enable_navi', 'default' => 'row_xxl', 'transport' => 'refresh', 
                                                                                                    'choices' => array( 'row_l' => 'Zeile S', 'row_xl' => 'Zeile M', 'row_xxl' => 'Zeile L', 'row_xxxl' => 'Zeile XL' ) ),
                '--MNUjustifyContent'=> array( 'section' => 'section_navi', 'type' => 'select',       'description' => 'Justify Content', 'mod' => 'menu_justify_content', 'dependency' => 'enable_navi', 'default' => 'center', 
                                                                                                    'choices' => array( 'center' => 'center', 'flex-end' => 'flex-end', 'flex-start' => 'flex-start' ) ),
                '--MNUalignItems'   => array( 'section' => 'section_navi', 'type' => 'select',        'description' => 'Align Items', 'mod' => 'menu_align_items', 'dependency' => 'enable_navi', 'default' => 'center', 
                                                                                                    'choices' => array( 'center' => 'center', 'flex-end' => 'flex-end', 'flex-start' => 'flex-start' ) ),
                '--MNUalignSelf'    => array( 'section' => 'section_navi', 'type' => 'select',        'description' => 'Align Self', 'mod' => 'menu_align_self', 'dependency' => 'enable_navi', 'default' => 'auto', 
                                                                                                    'choices' => array( 'auto' => 'auto', 'center' => 'center', 'flex-end' => 'flex-end', 'flex-start' => 'flex-start' ) ),

                // font        
                'MNUFntseparator'   => array( 'section' => 'section_navi', 'type' => 'separator',   'label' => 'Font', 'mod' => 'sep_menu_font', 'dependency' => 'enable_navi' ),
                '--MNfontFamily'    => array( 'section' => 'section_navi', 'type' => 'ffselect',    'label' => 'Schrift', 'mod' => 'menu_fontfamily', 'default' => 'fontFamily1', 'transport' => 'refresh' ),
                '--MNUfontSize'     => array( 'section' => 'section_navi', 'type' => 'range',         'mod' => 'menu_font_size', 'dependency' => 'enable_navi', 'default' => 1.3, 'unit' => 'em' ),
                '--MNUfontWeight'   => array( 'section' => 'section_navi', 'type' => 'select',        'mod' => 'menu_font_weight', 'dependency' => 'enable_navi', 'default' => 600 ),
                '--MNUletterSpacing'=> array( 'section' => 'section_navi', 'type' => 'range',         'mod' => 'menu_letter_spacing', 'dependency' => 'enable_navi', 'default' => '--letterSpacing', 'unit' => 'px' ),
                '--MNUwordSpacing'  => array( 'section' => 'section_navi', 'type' => 'range',         'mod' => 'menu_word_spacing', 'dependency' => 'enable_navi', 'default' => '--wordSpacing', 'unit' => 'px' ),
                '--MNUtextAlign'    => array( 'section' => 'section_navi', 'type' => 'select',        'description' => 'Text Align', 'mod' => 'menu_text_align', 'dependency' => 'enable_navi', 'default' => 'left' ),
                '--MNUtextTransform'=> array( 'section' => 'section_navi', 'type' => 'select',        'mod' => 'menu_text_transform', 'dependency' => 'enable_navi', 'default' => 'none' ),
                
                // items colors
                'MNPrmseparator'    => array( 'section' => 'section_navi', 'type' => 'separator', 'label' => 'Colors 2.0', 'mod' => 'sep_menu_item_color2' ),
                '--MNtxtcolor'      => array( 'section' => 'section_navi', 'type' => 'colselect',   'label' => 'Text', 'description' => 'Menü Item Text Color', 'mod' => 'menuitm_text_color2', 'default' => 'color22', 'transport' => 'refresh' ),
                '--MNtxtcolorHover' => array( 'section' => 'section_navi', 'type' => 'colselect',   'description' => 'Menü Item Text Hover Color', 'mod' => 'menuitm_text_hover_color2', 'default' => 'color23', 'transport' => 'refresh' ),
                '--MNbgcolor'       => array( 'section' => 'section_navi', 'type' => 'colselect',   'label' => 'Background', 'description' => 'Menü Item Background Color', 'mod' => 'menuitm_background_color2', 'default' => 'color63', 'transport' => 'refresh' ),
                '--MNbgcolorHover'  => array( 'section' => 'section_navi', 'type' => 'colselect',   'description' => 'Menü Item Background Hover Color', 'mod' => 'menuitm_background_hover_color2', 'default' => 'color63', 'transport' => 'refresh' ),
                
                'MNUITMgroup'         => array( 'section' => 'section_navi', 'type' => 'group',     'label' => 'Border', 'mod' => 'group_menu_item_border', 'dependency' => 'enable_navi', 'input_attrs' => array( 'children' => 8 ) ),
                
                '--MNbocolor'       => array( 'section' => 'section_navi', 'type' => 'colselect',   'label' => 'Border', 'description' => 'Menü Item Border Color', 'mod' => 'menuitm_border_color2', 'default' => 'color22', 'transport' => 'refresh' ),
                '--MNbocolorHover'  => array( 'section' => 'section_navi', 'type' => 'colselect',   'description' => 'Menü Item Border Hover Color', 'mod' => 'menuitm_border_hover_color2', 'default' => 'color22', 'transport' => 'refresh' ),
                '--MNUITMborderWidth' => array( 'section' => 'section_navi', 'type' => 'range',       'mod' => 'menu_item_border_width', 'dependency' => 'enable_navi', 'default' => 0, 'unit' => 'px' ),
                '--MNUITMborderRadius'=> array( 'section' => 'section_navi', 'type' => 'range',       'mod' => 'menu_item_border_radius', 'dependency' => 'enable_navi', 'default' => 0, 'unit' => 'px' ),
                '--MNUITMborderTop'   => array( 'section' => 'section_navi', 'type' => 'select',      'mod' => 'menu_item_border_style_top', 'dependency' => 'enable_navi', 'default' => 'solid' ),
                '--MNUITMborderLeft'  => array( 'section' => 'section_navi', 'type' => 'select',      'mod' => 'menu_item_border_style_left', 'dependency' => 'enable_navi', 'default' => 'solid' ),
                '--MNUITMborderRight' => array( 'section' => 'section_navi', 'type' => 'select',      'mod' => 'menu_item_border_style_right', 'dependency' => 'enable_navi', 'default' => 'solid' ), 
                '--MNUITMborderBottom'=> array( 'section' => 'section_navi', 'type' => 'select',      'mod' => 'menu_item_border_style_bottom', 'dependency' => 'enable_navi', 'default' => 'solid' ),
                
                // items sec colors 
                'MNSecseparator'    => array( 'section' => 'section_navi', 'type' => 'separator', 'label' => 'Secondary Colors 2.0', 'mod' => 'sep_menu_item_sec_color2' ),
                '--MN2txtcolor'     => array( 'section' => 'section_navi', 'type' => 'colselect',   'label' => 'Text', 'description' => 'Menü Item Sec Text Color', 'mod' => 'menuitm2_text_color2', 'default' => 'color21', 'transport' => 'refresh' ),
                '--MN2txtcolorHover'=> array( 'section' => 'section_navi', 'type' => 'colselect',   'description' => 'Menü Item Sec Text Hover Color', 'mod' => 'menuitm2_text_hover_color2', 'default' => 'color23', 'transport' => 'refresh' ),
                '--MN2bgcolor'      => array( 'section' => 'section_navi', 'type' => 'colselect',   'label' => 'Background', 'description' => 'Menü Item Sec Background Color', 'mod' => 'menuitm2_background_color2', 'default' => 'color11', 'transport' => 'refresh' ),
                '--MN2bgcolorHover' => array( 'section' => 'section_navi', 'type' => 'colselect',   'description' => 'Menü Item Sec Background Hover Color', 'mod' => 'menuitm2_background_hover_color2', 'default' => 'color11', 'transport' => 'refresh' ),
                
                'MNUITM2group'         => array( 'section' => 'section_navi', 'type' => 'group',    'label' => 'Border', 'mod' => 'group_menu_item_sec_border', 'dependency' => 'enable_navi', 'input_attrs' => array( 'children' => 8 ) ),
                
                '--MN2bocolor'      => array( 'section' => 'section_navi', 'type' => 'colselect',   'label' => 'Border', 'description' => 'Menü Item Sec Border Color', 'mod' => 'menuitm2_border_color2', 'default' => 'color22', 'transport' => 'refresh' ),
                '--MN2bocolorHover' => array( 'section' => 'section_navi', 'type' => 'colselect',   'description' => 'Menü Item Sec Border Hover Color', 'mod' => 'menuitm2_border_hover_color2', 'default' => 'color22', 'transport' => 'refresh' ),
                '--MNUITM2borderWidth' => array( 'section' => 'section_navi', 'type' => 'range',      'mod' => 'menu_item_sec_border_width', 'dependency' => 'enable_navi', 'default' => 0, 'unit' => 'px' ),
                '--MNUITM2borderRadius'=> array( 'section' => 'section_navi', 'type' => 'range',      'mod' => 'menu_item_sec_border_radius', 'dependency' => 'enable_navi', 'default' => 0, 'unit' => 'px' ),
                '--MNUITM2borderTop'   => array( 'section' => 'section_navi', 'type' => 'select',     'mod' => 'menu_item_sec_border_style_top', 'dependency' => 'enable_navi', 'default' => 'solid' ),
                '--MNUITM2borderLeft'  => array( 'section' => 'section_navi', 'type' => 'select',     'mod' => 'menu_item_sec_border_style_left', 'dependency' => 'enable_navi', 'default' => 'solid' ),
                '--MNUITM2borderRight' => array( 'section' => 'section_navi', 'type' => 'select',     'mod' => 'menu_item_sec_border_style_right', 'dependency' => 'enable_navi', 'default' => 'solid' ),
                '--MNUITM2borderBottom'=> array( 'section' => 'section_navi', 'type' => 'select',     'mod' => 'menu_item_sec_border_style_bottom', 'dependency' => 'enable_navi', 'default' => 'solid' ),

                // sizes
                'MNULayseparator'   => array( 'section' => 'section_navi', 'type' => 'separator',   'label' => 'Sizes', 'mod' => 'sep_navi_menu_sizes', 'dependency' => 'enable_navi' ),
                // menu items
                'MNUgroup'          => array( 'section' => 'section_navi', 'type' => 'group','label' => 'Menu Items','description' => 'Optionen', 'mod' => 'group_navi_menu_item', 'dependency' => 'enable_navi', 'input_attrs' => array( 'children' => 3 ) ),
                '--MNUITMheight'    => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'height:', 'mod' => 'menu_item_height', 'dependency' => 'enable_navi', 'default' => 30, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 200, 'step'  => 1 ) ),
                '--MNUITMpadding'   => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'padding:', 'mod' => 'menu_item_padding', 'dependency' => 'enable_navi', 'default' => 20, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 50, 'step'  => 1 ) ),
                '--MNUITMmargin'    => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'margin:', 'mod' => 'menu_item_margin', 'dependency' => 'enable_navi', 'default' => 0, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 50, 'step'  => 1 ) ),
                // sub menu
                'SUBgroup'          => array( 'section' => 'section_navi', 'type' => 'group','label' => 'SubMenu','description' => 'Optionen', 'mod' => 'group_navi_menu_sub', 'dependency' => 'enable_navi', 'input_attrs' => array( 'children' => 5 ) ),
                '--SUBwidth'        => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'width:', 'mod' => 'menu_sub_width', 'dependency' => 'enable_navi', 'default' => 240, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 50, 'max' => 300, 'step'  => 1 ) ),
                '--SUBtop'          => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'padding top:', 'mod' => 'menu_sub_top', 'dependency' => 'enable_navi', 'default' => 20, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 200, 'step'  => 1 ) ),
                '--SUBtopScrolled'  => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'padding top scrolled:', 'mod' => 'menu_sub_top_scrolled', 'dependency' => 'enable_navi', 'default' => 20, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 200, 'step'  => 1 ) ),
                '--SUBleftright'    => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'padding left right:', 'mod' => 'menu_sub_leftright', 'dependency' => 'enable_navi', 'default' => 20, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 50, 'step'  => 1 ) ),
                '--SUBbottom'       => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'padding bottom:', 'mod' => 'menu_sub_bottom', 'dependency' => 'enable_navi', 'default' => 10, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 50, 'step'  => 1 ) ),
                // sub menu items
                'SUBITMgroup'       => array( 'section' => 'section_navi', 'type' => 'group','label' => 'SubMenu Items','description' => 'Optionen', 'mod' => 'group_navi_menu_sub_item', 'dependency' => 'enable_navi', 'input_attrs' => array( 'children' => 3 ) ),
                '--SUBITMheight'    => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'height:', 'mod' => 'menu_sub_item_height', 'dependency' => 'enable_navi', 'default' => 30, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 30, 'max' => 200, 'step'  => 1 ) ),
                '--SUBITMpadding'   => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'padding:', 'mod' => 'menu_sub_item_padding', 'dependency' => 'enable_navi', 'default' => 20, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 50, 'step'  => 1 ) ),
                '--SUBITMmargin'    => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'margin:', 'mod' => 'menu_sub_item_margin', 'dependency' => 'enable_navi', 'default' => 0, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 50, 'step'  => 1 ) ),
                // hamburger
                'HAMgroup'          => array( 'section' => 'section_navi', 'type' => 'group','label' => 'BurgerMenu','description' => 'Optionen', 'mod' => 'group_navi_hamburger', 'dependency' => 'enable_navi', 'input_attrs' => array( 'children' => 4 ) ),
                '--HAMwidth'        => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'width:', 'mod' => 'hamburger_width', 'dependency' => 'enable_navi', 'default' => 300, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 50, 'max' => 500, 'step'  => 1 ) ),
                '--HAMtop'          => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'padding top:', 'mod' => 'hamburger_top', 'dependency' => 'enable_navi', 'default' => 10, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 50, 'step'  => 1 ) ),
                '--HAMleftright'    => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'padding left right:', 'mod' => 'hamburger_leftright', 'dependency' => 'enable_navi', 'default' => 20, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 50, 'step'  => 1 ) ),
                '--HAMbottom'       => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'padding bottom:', 'mod' => 'hamburger_bottom', 'dependency' => 'enable_navi', 'default' => 10, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 50, 'step'  => 1 ) ),
                // hamburger items
                'HAMITMgroup'       => array( 'section' => 'section_navi', 'type' => 'group','label' => 'BurgerMenu Items','description' => 'Optionen', 'mod' => 'group_navi_hamburger_item', 'dependency' => 'enable_navi', 'input_attrs' => array( 'children' => 5 ) ),
                '--HAMITMheight'    => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'height:', 'mod' => 'hamburger_item_height', 'dependency' => 'enable_navi', 'default' => 40, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 30, 'max' => 200, 'step'  => 1 ) ),
                '--HAMITMpadding'   => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'padding:', 'mod' => 'hamburger_item_padding', 'dependency' => 'enable_navi', 'default' => 20, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 50, 'step'  => 1 ) ),
                '--HAMITMmargin'    => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'margin:', 'mod' => 'hamburger_item_margin', 'dependency' => 'enable_navi', 'default' => 0, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 50, 'step'  => 1 ) ),
                '--HAMSUBpadding'   => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'sub padding:', 'mod' => 'hamburger_sub_padding', 'dependency' => 'enable_navi', 'default' => 50, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 50, 'step'  => 1 ) ),
                '--HAMSUBmargin'    => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'sub margin:', 'mod' => 'hamburger_sub_margin', 'dependency' => 'enable_navi', 'default' => 20, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 50, 'step'  => 1 ) ),
                // offmenu
                'OFFgroup'          => array( 'section' => 'section_navi', 'type' => 'group','label' => 'Off-Menü','description' => 'Optionen', 'mod' => 'group_navi_off', 'dependency' => 'enable_navi', 'input_attrs' => array( 'children' => 4 ) ),
                '--OFFwidth'        => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'width:', 'mod' => 'off_width', 'dependency' => 'enable_navi', 'default' => 500, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 50, 'max' => 1620, 'step'  => 1 ) ),
                '--OFFtop'          => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'padding top:', 'mod' => 'off_top', 'dependency' => 'enable_navi', 'default' => 185, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 300, 'step'  => 1 ) ),
                '--OFFtopScrolled'  => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'padding top scrolled:', 'mod' => 'off_top_scrolled', 'dependency' => 'enable_navi', 'default' => 5, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 300, 'step'  => 1 ) ),
                '--OFFleftright'    => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'padding left right:', 'mod' => 'off_leftright', 'dependency' => 'enable_navi', 'default' => 50, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 50, 'step'  => 1 ) ),
                // offmenu items
                'OFFITMgroup'       => array( 'section' => 'section_navi', 'type' => 'group','label' => 'Off-Menü Items','description' => 'Optionen', 'mod' => 'group_navi_off_item', 'dependency' => 'enable_navi', 'input_attrs' => array( 'children' => 5 ) ),
                '--OFFITMheight'    => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'height:', 'mod' => 'off_item_height', 'dependency' => 'enable_navi', 'default' => 40, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 30, 'max' => 200, 'step'  => 1 ) ),
                '--OFFITMpadding'   => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'padding:', 'mod' => 'off_item_padding', 'dependency' => 'enable_navi', 'default' => 20, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 50, 'step'  => 1 ) ),
                '--OFFITMmargin'    => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'margin:', 'mod' => 'off_item_margin', 'dependency' => 'enable_navi', 'default' => 0, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 50, 'step'  => 1 ) ),
                '--OFFSUBpadding'   => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'sub padding:', 'mod' => 'off_sub_padding', 'dependency' => 'enable_navi', 'default' => 50, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 50, 'step'  => 1 ) ),
                '--OFFSUBmargin'    => array( 'section' => 'section_navi', 'type' => 'range',         'lbl' => 'sub margin:', 'mod' => 'off_sub_margin', 'dependency' => 'enable_navi', 'default' => 20, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 50, 'step'  => 1 ) ),

                /* section 'section_footer' */
                '--FOTinfo'          => array( 'section' => 'section_footer', 'type' => 'info', 'description' => 'Dieses Feature ist veraltet und wird nicht mehr unterstützt. Stelle unter „Erweitert > Features“ die aktuelle Version ein.', 'mod' => 'section_footer_info', 'input_attrs' => 'alert'),
                'FOToverride'       => array( 'section' => 'section_footer', 'type' => 'checkbox',  'label' => 'Erweiterte Einstellungen', 'mod' => 'enable_footer', 'default' => 0 ),

                'FOTMNUseparator'   => array( 'section' => 'section_footer', 'type' => 'separator', 'label' => 'Menü', 'mod' => 'sep_footer_menu_color', 'dependency' => 'enable_footer' ),
                // '--FOTMNUjustifyContent'=> array( 'section' => 'section_footer', 'type' => 'select',  'description' => 'Justify Content', 'mod' => 'footer_menu_justify_content', 'dependency' => 'enable_footer', 'default' => 'center', 
                //                                                                                       'choices' => array( 'center' => 'center', 'flex-end' => 'flex-end', 'flex-start' => 'flex-start', 'space-around' => 'space-around', 'space-between' => 'space-between' ) ),

                '--FOTMNUfontSize'  => array( 'section' => 'section_footer', 'type' => 'range',       'mod' => 'footer_menu_font_size', 'dependency' => 'enable_footer', 'default' => 1, 'unit' => 'em' ),
                '--FOTMNUfontWeight'=> array( 'section' => 'section_footer', 'type' => 'select',      'mod' => 'footer_menu_font_weight', 'dependency' => 'enable_footer', 'default' => 600 ),
                '--FOTMNUlineHeight'=> array( 'section' => 'section_footer', 'type' => 'range',       'mod' => 'footer_menu_line_height', 'dependency' => 'enable_footer', 'default' => 180, 'unit' => '%' ),
                '--FOTMNUtextTransform'=> array( 'section' => 'section_footer', 'type' => 'select',   'mod' => 'footer_menu_text_transform', 'dependency' => 'enable_footer', 'default' => 'none' ),

                '--FOTMNUpadding'   => array( 'section' => 'section_footer', 'type' => 'range', 'label' => 'Menüpunkte', 'lbl' => 'Padding seitlich:', 'mod' => 'footer_menu_item_padding', 'dependency' => 'enable_footer', 'default' => 20, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 50, 'step'  => 1 ) ),
                '--FOTSUBtop'       => array( 'section' => 'section_footer', 'type' => 'range', 'label' => 'Menü Unterebene', 'lbl' => 'Abstand oben:', 'mod' => 'footer_menu_sub_top', 'dependency' => 'enable_footer', 'default' => 5, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 50, 'step'  => 1 ) ),
                '--FOTSUBleft'      => array( 'section' => 'section_footer', 'type' => 'range',       'lbl' => 'Abstand links:', 'mod' => 'footer_menu_sub_left', 'dependency' => 'enable_footer', 'default' => 10, 'unit' => 'px', 
                                                                                                    'input_attrs' => array( 'min' => 0, 'max' => 50, 'step'  => 1 ) ),

                'FOColseparator'    => array( 'section' => 'section_footer', 'type' => 'separator', 'label' => 'Farben', 'mod' => 'sep_footer_color2' ),
                '--FOtxtcolor'      => array( 'section' => 'section_footer', 'type' => 'colselect',   'description' => 'Schrift', 'mod' => 'footer_text_color2', 'default' => 'color22', 'transport' => 'refresh' ),
                '--FObgcolor'       => array( 'section' => 'section_footer', 'type' => 'colselect',   'mod' => 'footer_background_color2', 'default' => 'color21', 'transport' => 'refresh' ),
                '--FOLtxtcolor'     => array( 'section' => 'section_footer', 'type' => 'colselect',  'label' => 'Links', 'description' => 'Schrift', 'mod' => 'footer_link_color2', 'default' => 'color22', 'transport' => 'refresh' ),
                '--FOLbgcolor'      => array( 'section' => 'section_footer', 'type' => 'colselect',   'mod' => 'footer_link_background_color2', 'default' => 'color63', 'transport' => 'refresh' ),
                '--FOLtxtcolorHover'=> array( 'section' => 'section_footer', 'type' => 'colselect',  'label' => 'Hover', 'description' => 'Schrift', 'mod' => 'footer_link_hover_color2', 'default' => 'color23', 'transport' => 'refresh' ),
                '--FOLbgcolorHover' => array( 'section' => 'section_footer', 'type' => 'colselect',   'mod' => 'footer_link_background_hover_color2', 'default' => 'color63', 'transport' => 'refresh' ),
                
            ));
        }

    }
    public function add_customizer_settings($wp_customize) {

        $this->add_process_defaults();

    }

    /*
        render
    */
    public function render() {
        add_action('navigation', array($this, 'add_navigation_old'));
        add_action('footer', array($this, 'add_footer'));

        // old navigation
        add_action('navigation_offcanvas', array($this, 'add_offcanvas'), 10, 2);
        add_filter('wp_nav_menu_items', array($this, 'add_search_item'), 11, 2 );
        add_action('navigation_toggle', array($this, 'add_toggle'));
        add_action('navigation_logo', array($this, 'add_logo'));
    }

    public function add_footer() {
        $template_name = 'footer';
        echo "<footer class='footer'>";
        if (shortcode_exists('dynamic') && !strpos($_SERVER["SCRIPT_FILENAME"], "wp-activate.php")) 
            echo do_shortcode("[dynamic template='".$template_name."']");
        echo "</footer>";
    }

    // old navigation
    public function add_navigation_old() {
        // $var = "navigation";        
        ob_start();

            echo "<nav class='navigation v1 animate_fast ".get_theme_mod('header_scroll', 'sticky')."' 
                        data-mod-header_scroll_on='".get_theme_mod('header_scroll_on', 250)."'
                        data-mod-header_scroll_off='".get_theme_mod('header_scroll_off', 150)."'
                        data-mod-anim='".get_theme_mod('anim', 0.3)."'
                        data-mod-scrollspeed='".get_theme_mod('scrollspeed', 0.5)."' >";
                // announcement
                do_action('announcement_hook');

                $headrow = get_theme_mod('header_row', '');

                if (has_nav_menu('meta-menu')) {
                    $metastyle = get_theme_mod('meta_navi_style', 'offleft');
                    if ($metastyle == 'full') $metastyle = 'fullright';
                    $metarow = get_theme_mod('meta_menu_row', 'row_xxl');
                    // meta menü wrapper
                    echo "<div id='metamenu' class='headermenu ".$headrow." animate_fast'>";
                        echo "<div class='mmenu desktop ".$metarow." animate_fast'>";
                            // meta menü
                            // wp_nav_menu( array( 'theme_location' => 'meta-menu' ) );
                            if ($metastyle == 'hover')
                                wp_nav_menu(array('theme_location' => 'meta-menu'));
                            else
                                wp_nav_menu(array('theme_location' => 'meta-menu', 'depth' => 1, 'dropmenu' => true));
                            // language button
                            // if ( get_theme_mod( 'enable_language', 1 ) ) do_action('navigation_language');
                        echo "</div>";
                    echo "</div>";
                    // offcanvas meta menu
                    // if (get_theme_mod('enable_offcanvas',1)) do_action('navigation_offcanvas', 'meta-menu');
                    if ($metastyle != 'hover' && $metastyle != 'dropdown') do_action('navigation_offcanvas', 'meta-menu', $metastyle);
                }

                // main menü wrapper
                echo "<div id='mainmenu' class='headermenu ".$headrow." animate_fast'>";
                    // branding
                    $brandrow = get_theme_mod('branding_row', 'row_xxl');
                    echo "<div class='branding ".$brandrow." animate_fast'>";
                        // header logo
                        do_action('navigation_logo');
                    echo "</div>";
                    // menu
                    $class = "";
                    // if (get_theme_mod('enable_off', 1)) $class = "show-toggle";
                    $navistyle = get_theme_mod('navi_style', 'offright');
                    if ($navistyle == 'full') $navistyle = 'fullright';
                    $hideburger = get_theme_mod('hamburger_hide', false);
                    if (!$hideburger) {
                        if ($navistyle == 'offright' || $navistyle == 'overright' || $navistyle == 'fullright') $class = "show-toggle-right";
                        if ($navistyle == 'offleft' || $navistyle == 'overleft' || $navistyle == 'fullleft') $class = "show-toggle";
                    }
                    $navirow = get_theme_mod('menu_row', 'row_xxl');
                    echo "<div class='mmenu resp ".$class." ".$navirow." animate_fast'>";
                        // hamburger
                        do_action('navigation_toggle');
                        // main menü
                        if ($navistyle == 'hover')
                            wp_nav_menu(array('theme_location' => 'main-menu'));
                        else
                            wp_nav_menu(array('theme_location' => 'main-menu', 'depth' => 1, 'dropmenu' => true));
                    echo "</div>";
                echo "</div>";
                // offcanvas main menü
                // if (get_theme_mod('enable_offcanvas', 1)) do_action('navigation_offcanvas', 'main-menu');
                if ($navistyle != 'hover' && $navistyle != 'dropdown') do_action('navigation_offcanvas', 'main-menu', $navistyle);

                // // dropdown menüs
                // $droprow = get_theme_mod('drop_row', 'menu');
                // if ($droprow == 'header') $droprow = get_theme_mod('branding_row', 'row_xxl');
                // else if ($droprow == 'menu') $droprow = get_theme_mod('menu_row', 'row_xxl');
                // else if ($droprow == 'auto') $droprow = "";
                // $this->add_dropmenus(array(
                //     'droprow' => $droprow,
                //     'dropmode' => $navistyle,
                //     'trigger' => 'hover',
                //     'effect' => get_theme_mod('drop_anim', 'slide'), // slide fade toggle
                //     'align' => get_theme_mod('drop_align', 'center'), // left center right
                //     'tab' => get_theme_mod('drop_tab_style', 'triangle'),
                // ));

            echo "</nav>";
        
        return ob_get_contents();
    }
    public function add_offcanvas($menu, $navistyle) {
        $id = $menu == 'meta-menu' ? "metamenuoff" : "mainmenuoff";
        ob_start();
            echo "<div id='".$id."' class='offmenu ".$navistyle." mmenu animate_fast'>";
                if ($navistyle == "fullright" || $navistyle == 'fullleft' || $navistyle == 'overright' || $navistyle == 'overleft') {
                    $burger = get_theme_mod( 'menu_burger', 'collapse' );
                    echo "<span class='hamburger hamburger--$burger toggle_close'>
                            <span class='hamburger-box'>
                                <span class='hamburger-inner'></span>
                            </span>
                        </span>";
                }
                // check template
                $template_name = 'main-menu-offcanvas';
                if ($menu == 'meta-menu') $template_name = 'meta-menu-offcanvas';
                $template = get_posts(array(
                    'name'        => $template_name,
                    'post_type'   => 'dynamic_template',
                    'post_status' => 'publish',
                    'numberposts' => 1
                ));
                // get content
                if (count($template) > 0) {
                    // get template content
                    //$content = $template[0]->post_content;
                    echo do_shortcode("[dynamic template='".$template_name."']");
                }
                else {
                    echo "<div class='menu_wrapper'>";
                    echo wp_nav_menu( array( 'theme_location' => $menu ) );
                    echo "</div>";
                }
            // if (get_theme_mod('enable_language',0)) {
            //     // debug($this->current);
            //     // debug($this->languages);
            //     echo "<div style='flex:1'></div>";
            //     echo "<div id='langmenu' data-lang-count='".count($this->languages)."'>";
            //     foreach ($this->languages as $lang => $val) {
            //         if ($val['code'] == $this->current)
            //             echo "<span>".$this->current."</span>";
            //         else
            //             echo "<span><a href='".$val['url']."'>".$val['code']."</a></span>";
            //     }
            //     echo "</div>";
            // }
            echo "</div>";
        return ob_get_contents();
    }
    public function add_search_item($items, $args) {
        // Top Navigation Area Only
        // debug($args->walker);
        if (property_exists($args,'theme_location') && $args->theme_location === 'main-menu' && !$args->walker) {
            $search = get_theme_mod('navi_search', 'none');
            if ($search != 'none') {
                $css_class = "menu-item menu-item-type-search";
                // Is this the search page?
                if (is_search()) $css_class .= " current-menu-item";
                // make new search item
                $item = "<li class='".esc_attr($css_class)."'>";
                    $item .= "<a id='search_btn' href='".esc_url( home_url( '/?s=' ) )."'>";
                        $item .= "<span aria-hidden='true' class='icon_search'></span>";
                    $item .= "</a>";
                $item .= "</li>";
                // add search item
                if ($search == 'right') $items = $items.$item;
                if ($search == 'left') $items = $item.$items;
            }
        }
        return $items;
    }
    public function add_toggle() {
        $burger = get_theme_mod( 'menu_burger', 'collapse' );
        $navistyle = get_theme_mod('navi_style', 'offright');
        $lbl = ($navistyle == 'hover') ? "for='toggle'" : "";
        ob_start();
            // echo "<label class='toggle' for='toggle'>
            //             <a><span aria-hidden='true' class='icon_menu'></span></a>
            //         </label>
            //         <input id='toggle' class='toggle' type='checkbox' />";
            echo "<label class='toggle animate_fast' ".$lbl.">
                    <span id='dropmenu_all' class='hamburger hamburger--$burger'>
                        <span class='hamburger-box'>
                            <span class='hamburger-inner'></span>
                        </span>
                    </span>
                </label>
                <input id='toggle' class='toggle' type='checkbox' />";
        return ob_get_contents();
    }
    public function add_logo() { 
        if (function_exists('the_custom_logo')) {
            $logo_src = get_theme_mod( 'custom_logo' );
            $logo_img = wp_get_attachment_image_src( $logo_src , 'full' );
            $logo_img = is_array($logo_img) && isset($logo_img[0]) ? $logo_img[0] : null;
            $logom_img = get_theme_mod( 'mobile_logo' );

            if (!$logom_img || $logom_img == "") $logom_img = $logo_img;
            if ($logo_img && $logo_img != "") {
                $home = "";
                if (get_theme_mod('branding_logo_link', 1)) 
                    $home = "href='".esc_url( home_url( '/' ) )."' class='custom-logo-link' rel='home' itemprop='url'";
                else 
                    $home = "class='no-link'";
                $name = esc_html( get_bloginfo( 'name' ) );
                $info = esc_html( get_bloginfo( 'description' ) );
                ob_start();
                    echo "<a $home>
                                <img src='$logo_img' class='custom-logo' title='$name - $info' itemprop='logo' >
                                <img src='$logom_img' class='custom-logo mobile' title='$name - $info' itemprop='logo' >
                            </a>";
                return ob_get_contents();
            }
            else {
                // header text
                if (get_theme_mod('header_text', 1)) {
                    $home = esc_url(home_url('/'));
                    $name = esc_html(get_bloginfo('name'));
                    $info = esc_html(get_bloginfo('description'));
                    ob_start();
                        echo "<div class='site-title'><a href='".$home."' title='".$name."' rel='home'>".$name."</a></div>";
                        // echo "<div class='site-description'>".$info."</div>";
                    return ob_get_contents();
                }
                else
                    return false;
            }
        }
        else return false;
    }

}

?>
