Site Code and Class “single row working dropdown” Feb 1, 26

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

Current Feb 12/26 Working *Additional CSS Code* for chevron, switch, dropdown

/* Anchor for absolute dropdown panel */
.WRAPPER { position: relative; }

/* Trigger/header stays above the panel */
.app-row-header.app-row-dropdown-toggle{
position: relative;
z-index: 1000;
cursor: pointer;
height: 70px;
display: flex;
align-items: center;
}

/* Dropdown panel (closed by default) */
.dropdown-wrapper.app-row-dropdown{
position: absolute;
left: 0;
right: 0;
top: 100%;
z-index: 9999;
background: #fff;

max-height: 0;
overflow: hidden;
opacity: 0;
visibility: hidden;
pointer-events: none;

transition: max-height .25s ease, opacity .2s ease, visibility .2s ease;
}

/* Open state */
.dropdown-wrapper.app-row-dropdown.open{
max-height: 375px;
opacity: 1;
visibility: visible;
pointer-events: auto;
}

/* Scroll vs fixed behavior */
.dropdown-wrapper.app-row-dropdown.app-row-dropdown-scroll.open{
overflow-y: auto;
overflow-x: hidden;
}
.dropdown-wrapper.app-row-dropdown.app-row-dropdown-fixed.open{
overflow: hidden;
}

/* Optional: keep red bar visible inside the panel */
.dropdown-wrapper.app-row-dropdown .dropdown-red-bar{
position: sticky;
top: 0;
z-index: 2;
}
/* Replace your current chevron block with this */

/* room for the badge */
.app-row-header.app-row-dropdown-toggle{
padding-right: 36px;
}

/* Smaller circle (-25%), bigger arrow (+100%), bottom-right positioning */
.app-row-header.app-row-dropdown-toggle::after{
content: “▾”;

width: 20px; /* 26 -> ~20 (-25%) */
height: 20px; /* 26 -> ~20 (-25%) */
border-radius: 50%;
background: #111;
color: #6ecbff;

display: flex;
align-items: center;
justify-content: center;

position: absolute;
right: 8px;
top: auto;
bottom: 8px; /* move to bottom-right corner area */
transform: rotate(0deg);

font-size: 36px; /* 18 -> 36 (+100%) */
line-height: 1;
transition: transform .2s ease;
}

.app-row-header.app-row-dropdown-toggle.is-open::after{
transform: rotate(180deg);
}

Snippets, parts and lines of code removed and site still works**  From the working Additional CSS code parts of the code (0121) **

Removed:

CODE  LINES 87, 88, 89,

.app-row-header.app-row-dropdown-toggle.is-open::after{
transform: rotate(180deg);
}

Removed:

CODE  LINES 14

/* Dropdown panel (closed by default) */

Removed:

CODE  LINES 14

position: absolute

Current Feb 12/26 Working *Additional CSS Code* for chevron, switch, dropdown

/* Anchor for absolute dropdown panel */
.WRAPPER { position: relative; }

/* Trigger/header stays above the panel */
.app-row-header.app-row-dropdown-toggle{
position: relative;
z-index: 1000;
cursor: pointer;
height: 70px;
display: flex;
align-items: center;
}

/* Dropdown panel (closed by default) */
.dropdown-wrapper.app-row-dropdown{
position: absolute;
left: 0;
right: 0;
top: 100%;
z-index: 9999;
background: #fff;

max-height: 0;
overflow: hidden;
opacity: 0;
visibility: hidden;
pointer-events: none;

transition: max-height .25s ease, opacity .2s ease, visibility .2s ease;
}

/* Open state */
.dropdown-wrapper.app-row-dropdown.open{
max-height: 375px;
opacity: 1;
visibility: visible;
pointer-events: auto;
}

/* Scroll vs fixed behavior */
.dropdown-wrapper.app-row-dropdown.app-row-dropdown-scroll.open{
overflow-y: auto;
overflow-x: hidden;
}
.dropdown-wrapper.app-row-dropdown.app-row-dropdown-fixed.open{
overflow: hidden;
}

/* Optional: keep red bar visible inside the panel */
.dropdown-wrapper.app-row-dropdown .dropdown-red-bar{
position: sticky;
top: 0;
z-index: 2;
}
/* Replace your current chevron block with this */

/* room for the badge */
.app-row-header.app-row-dropdown-toggle{
padding-right: 36px;
}

/* Smaller circle (-25%), bigger arrow (+100%), bottom-right positioning */
.app-row-header.app-row-dropdown-toggle::after{
content: “▾”;

width: 20px; /* 26 -> ~20 (-25%) */
height: 20px; /* 26 -> ~20 (-25%) */
border-radius: 50%;
background: #111;
color: #6ecbff;

display: flex;
align-items: center;
justify-content: center;

position: absolute;
right: 8px;
top: auto;
bottom: 8px; /* move to bottom-right corner area */
transform: rotate(0deg);

font-size: 36px; /* 18 -> 36 (+100%) */
line-height: 1;
transition: transform .2s ease;
}

.app-row-header.app-row-dropdown-toggle.is-open::after{
transform: rotate(180deg);
}

 Current Feb 12/26 Working *JS Code* for chevron, switch, dropdown

(function () {
if (document.body.classList.contains(‘elementor-editor-active’)) return;
function closest(el, sel){ return el && el.closest ? el.closest(sel) : null; }

const parent = document.querySelector(‘.a-one’);
if (!parent) return;

let swapped = false;
let currentSwapRow = null;

function closeAll(except){
parent.querySelectorAll(‘.dropdown-wrapper.app-row-dropdown.open’).forEach(dd => {
if (except && dd === except) return;
dd.classList.remove(‘open’);
});
parent.querySelectorAll(‘.app-row-header.app-row-dropdown-toggle.is-open’).forEach(t => {
t.classList.remove(‘is-open’);
});
}

function swapRows(rowA, rowB) {
const aNext = rowA.nextSibling;
const bNext = rowB.nextSibling;
const p = rowA.parentNode;
if (!p || p !== rowB.parentNode) return;

if (aNext === rowB) {
p.insertBefore(rowB, rowA);
} else if (bNext === rowA) {
p.insertBefore(rowA, rowB);
} else {
p.insertBefore(rowA, bNext);
p.insertBefore(rowB, aNext);
}
}

function toggleFor(trigger){
const row = closest(trigger, ‘.app-row’) || trigger.parentElement;
if (!row) return;

const dd = row.querySelector(‘.dropdown-wrapper.app-row-dropdown’);
if (!dd) return;

const row1 = parent.querySelector(‘.row1-wrap’);
if (!row1) return;

const willOpen = !dd.classList.contains(‘open’);

// clicking same swapped row again -> restore + close
if (swapped && currentSwapRow === row) {
closeAll(null);
swapRows(row, row1);
swapped = false;
currentSwapRow = null;
return;
}

// if another row was swapped in -> restore it first
if (swapped && currentSwapRow && currentSwapRow !== row) {
closeAll(null);
swapRows(currentSwapRow, row1);
swapped = false;
currentSwapRow = null;
}

// swap clicked row into Row 1 position (unless it already is Row 1)
if (row !== row1) {
swapRows(row, row1);
swapped = true;
currentSwapRow = row;
}

closeAll(willOpen ? dd : null);
dd.classList.toggle(‘open’, willOpen);
trigger.classList.toggle(‘is-open’, willOpen);
}

document.addEventListener(‘click’, function(e){
const trigger = closest(e.target, ‘.app-row-header.app-row-dropdown-toggle’);
const insideDropdown = closest(e.target, ‘.dropdown-wrapper.app-row-dropdown’);

if (trigger){
e.preventDefault();
toggleFor(trigger);
return;
}

if (!insideDropdown){
// restore swap when clicking outside
if (swapped && currentSwapRow) {
const row1 = parent.querySelector(‘.row1-wrap’);
closeAll(null);
if (row1) swapRows(currentSwapRow, row1);
swapped = false;
currentSwapRow = null;
} else {
closeAll();
}
}
});

document.addEventListener(‘keydown’, function(e){
if (e.key === ‘Escape’) {
if (swapped && currentSwapRow) {
const row1 = parent.querySelector(‘.row1-wrap’);
closeAll(null);
if (row1) swapRows(currentSwapRow, row1);
swapped = false;
currentSwapRow = null;
} else {
closeAll();
}
}
});
})();

**This is a working JS code (0121) for Dropdown-Swap rows-chevron back arrow.in the live and preview modes, working well.** And works with the Additional CSS code ** (o121)

(function () {
if (document.body.classList.contains(‘elementor-editor-active’)) return;
function closest(el, sel){ return el && el.closest ? el.closest(sel) : null; }

const parent = document.querySelector(‘.a-one’);
if (!parent) return;

let swapped = false;
let currentSwapRow = null;

function closeAll(except){
parent.querySelectorAll(‘.dropdown-wrapper.app-row-dropdown.open’).forEach(dd => {
if (except && dd === except) return;
dd.classList.remove(‘open’);
});
parent.querySelectorAll(‘.app-row-header.app-row-dropdown-toggle.is-open’).forEach(t => {
t.classList.remove(‘is-open’);
});
}

function swapRows(rowA, rowB) {
const aNext = rowA.nextSibling;
const bNext = rowB.nextSibling;
const p = rowA.parentNode;
if (!p || p !== rowB.parentNode) return;

if (aNext === rowB) {
p.insertBefore(rowB, rowA);
} else if (bNext === rowA) {
p.insertBefore(rowA, rowB);
} else {
p.insertBefore(rowA, bNext);
p.insertBefore(rowB, aNext);
}
}

function toggleFor(trigger){
const row = closest(trigger, ‘.app-row’) || trigger.parentElement;
if (!row) return;

const dd = row.querySelector(‘.dropdown-wrapper.app-row-dropdown’);
if (!dd) return;

const row1 = parent.querySelector(‘.row1-wrap’);
if (!row1) return;

const willOpen = !dd.classList.contains(‘open’);

// clicking same swapped row again -> restore + close
if (swapped && currentSwapRow === row) {
closeAll(null);
swapRows(row, row1);
swapped = false;
currentSwapRow = null;
return;
}

// if another row was swapped in -> restore it first
if (swapped && currentSwapRow && currentSwapRow !== row) {
closeAll(null);
swapRows(currentSwapRow, row1);
swapped = false;
currentSwapRow = null;
}

// swap clicked row into Row 1 position (unless it already is Row 1)
if (row !== row1) {
swapRows(row, row1);
swapped = true;
currentSwapRow = row;
}

closeAll(willOpen ? dd : null);
dd.classList.toggle(‘open’, willOpen);
trigger.classList.toggle(‘is-open’, willOpen);
}

document.addEventListener(‘click’, function(e){
const trigger = closest(e.target, ‘.app-row-header.app-row-dropdown-toggle’);
const insideDropdown = closest(e.target, ‘.dropdown-wrapper.app-row-dropdown’);

if (trigger){
e.preventDefault();
toggleFor(trigger);
return;
}

if (!insideDropdown){
// restore swap when clicking outside
if (swapped && currentSwapRow) {
const row1 = parent.querySelector(‘.row1-wrap’);
closeAll(null);
if (row1) swapRows(currentSwapRow, row1);
swapped = false;
currentSwapRow = null;
} else {
closeAll();
}
}
});

document.addEventListener(‘keydown’, function(e){
if (e.key === ‘Escape’) {
if (swapped && currentSwapRow) {
const row1 = parent.querySelector(‘.row1-wrap’);
closeAll(null);
if (row1) swapRows(currentSwapRow, row1);
swapped = false;
currentSwapRow = null;
} else {
closeAll();
}
}
});
})();

Current Feb 12/26 Working *Additional CSS Code* for chevron, switch, dropdown

/* Anchor for absolute dropdown panel */
.WRAPPER { position: relative; }

/* Trigger/header stays above the panel */
.app-row-header.app-row-dropdown-toggle{
position: relative;
z-index: 1000;
cursor: pointer;
height: 70px;
display: flex;
align-items: center;
}

/* Dropdown panel (closed by default) */
.dropdown-wrapper.app-row-dropdown{
position: absolute;
left: 0;
right: 0;
top: 100%;
z-index: 9999;
background: #fff;

max-height: 0;
overflow: hidden;
opacity: 0;
visibility: hidden;
pointer-events: none;

transition: max-height .25s ease, opacity .2s ease, visibility .2s ease;
}

/* Open state */
.dropdown-wrapper.app-row-dropdown.open{
max-height: 375px;
opacity: 1;
visibility: visible;
pointer-events: auto;
}

/* Scroll vs fixed behavior */
.dropdown-wrapper.app-row-dropdown.app-row-dropdown-scroll.open{
overflow-y: auto;
overflow-x: hidden;
}
.dropdown-wrapper.app-row-dropdown.app-row-dropdown-fixed.open{
overflow: hidden;
}

/* Optional: keep red bar visible inside the panel */
.dropdown-wrapper.app-row-dropdown .dropdown-red-bar{
position: sticky;
top: 0;
z-index: 2;
}
/* Replace your current chevron block with this */

/* room for the badge */
.app-row-header.app-row-dropdown-toggle{
padding-right: 36px;
}

/* Smaller circle (-25%), bigger arrow (+100%), bottom-right positioning */
.app-row-header.app-row-dropdown-toggle::after{
content: “▾”;

width: 20px; /* 26 -> ~20 (-25%) */
height: 20px; /* 26 -> ~20 (-25%) */
border-radius: 50%;
background: #111;
color: #6ecbff;

display: flex;
align-items: center;
justify-content: center;

position: absolute;
right: 8px;
top: auto;
bottom: 8px; /* move to bottom-right corner area */
transform: rotate(0deg);

font-size: 36px; /* 18 -> 36 (+100%) */
line-height: 1;
transition: transform .2s ease;
}

.app-row-header.app-row-dropdown-toggle.is-open::after{
transform: rotate(180deg);
}

 Current Feb 12/26 Working *JS Code* for chevron, switch, dropdown

(function () {
if (document.body.classList.contains(‘elementor-editor-active’)) return;
function closest(el, sel){ return el && el.closest ? el.closest(sel) : null; }

const parent = document.querySelector(‘.a-one’);
if (!parent) return;

let swapped = false;
let currentSwapRow = null;

function closeAll(except){
parent.querySelectorAll(‘.dropdown-wrapper.app-row-dropdown.open’).forEach(dd => {
if (except && dd === except) return;
dd.classList.remove(‘open’);
});
parent.querySelectorAll(‘.app-row-header.app-row-dropdown-toggle.is-open’).forEach(t => {
t.classList.remove(‘is-open’);
});
}

function swapRows(rowA, rowB) {
const aNext = rowA.nextSibling;
const bNext = rowB.nextSibling;
const p = rowA.parentNode;
if (!p || p !== rowB.parentNode) return;

if (aNext === rowB) {
p.insertBefore(rowB, rowA);
} else if (bNext === rowA) {
p.insertBefore(rowA, rowB);
} else {
p.insertBefore(rowA, bNext);
p.insertBefore(rowB, aNext);
}
}

function toggleFor(trigger){
const row = closest(trigger, ‘.app-row’) || trigger.parentElement;
if (!row) return;

const dd = row.querySelector(‘.dropdown-wrapper.app-row-dropdown’);
if (!dd) return;

const row1 = parent.querySelector(‘.row1-wrap’);
if (!row1) return;

const willOpen = !dd.classList.contains(‘open’);

// clicking same swapped row again -> restore + close
if (swapped && currentSwapRow === row) {
closeAll(null);
swapRows(row, row1);
swapped = false;
currentSwapRow = null;
return;
}

// if another row was swapped in -> restore it first
if (swapped && currentSwapRow && currentSwapRow !== row) {
closeAll(null);
swapRows(currentSwapRow, row1);
swapped = false;
currentSwapRow = null;
}

// swap clicked row into Row 1 position (unless it already is Row 1)
if (row !== row1) {
swapRows(row, row1);
swapped = true;
currentSwapRow = row;
}

closeAll(willOpen ? dd : null);
dd.classList.toggle(‘open’, willOpen);
trigger.classList.toggle(‘is-open’, willOpen);
}

document.addEventListener(‘click’, function(e){
const trigger = closest(e.target, ‘.app-row-header.app-row-dropdown-toggle’);
const insideDropdown = closest(e.target, ‘.dropdown-wrapper.app-row-dropdown’);

if (trigger){
e.preventDefault();
toggleFor(trigger);
return;
}

if (!insideDropdown){
// restore swap when clicking outside
if (swapped && currentSwapRow) {
const row1 = parent.querySelector(‘.row1-wrap’);
closeAll(null);
if (row1) swapRows(currentSwapRow, row1);
swapped = false;
currentSwapRow = null;
} else {
closeAll();
}
}
});

document.addEventListener(‘keydown’, function(e){
if (e.key === ‘Escape’) {
if (swapped && currentSwapRow) {
const row1 = parent.querySelector(‘.row1-wrap’);
closeAll(null);
if (row1) swapRows(currentSwapRow, row1);
swapped = false;
currentSwapRow = null;
} else {
closeAll();
}
}
});
})();

**This is a working JS code (0121) for Dropdown-Swap rows-chevron back arrow.in the live and preview modes, working well.** And works with the Additional CSS code ** (o121)

(function () {
if (document.body.classList.contains(‘elementor-editor-active’)) return;
function closest(el, sel){ return el && el.closest ? el.closest(sel) : null; }

const parent = document.querySelector(‘.a-one’);
if (!parent) return;

let swapped = false;
let currentSwapRow = null;

function closeAll(except){
parent.querySelectorAll(‘.dropdown-wrapper.app-row-dropdown.open’).forEach(dd => {
if (except && dd === except) return;
dd.classList.remove(‘open’);
});
parent.querySelectorAll(‘.app-row-header.app-row-dropdown-toggle.is-open’).forEach(t => {
t.classList.remove(‘is-open’);
});
}

function swapRows(rowA, rowB) {
const aNext = rowA.nextSibling;
const bNext = rowB.nextSibling;
const p = rowA.parentNode;
if (!p || p !== rowB.parentNode) return;

if (aNext === rowB) {
p.insertBefore(rowB, rowA);
} else if (bNext === rowA) {
p.insertBefore(rowA, rowB);
} else {
p.insertBefore(rowA, bNext);
p.insertBefore(rowB, aNext);
}
}

function toggleFor(trigger){
const row = closest(trigger, ‘.app-row’) || trigger.parentElement;
if (!row) return;

const dd = row.querySelector(‘.dropdown-wrapper.app-row-dropdown’);
if (!dd) return;

const row1 = parent.querySelector(‘.row1-wrap’);
if (!row1) return;

const willOpen = !dd.classList.contains(‘open’);

// clicking same swapped row again -> restore + close
if (swapped && currentSwapRow === row) {
closeAll(null);
swapRows(row, row1);
swapped = false;
currentSwapRow = null;
return;
}

// if another row was swapped in -> restore it first
if (swapped && currentSwapRow && currentSwapRow !== row) {
closeAll(null);
swapRows(currentSwapRow, row1);
swapped = false;
currentSwapRow = null;
}

// swap clicked row into Row 1 position (unless it already is Row 1)
if (row !== row1) {
swapRows(row, row1);
swapped = true;
currentSwapRow = row;
}

closeAll(willOpen ? dd : null);
dd.classList.toggle(‘open’, willOpen);
trigger.classList.toggle(‘is-open’, willOpen);
}

document.addEventListener(‘click’, function(e){
const trigger = closest(e.target, ‘.app-row-header.app-row-dropdown-toggle’);
const insideDropdown = closest(e.target, ‘.dropdown-wrapper.app-row-dropdown’);

if (trigger){
e.preventDefault();
toggleFor(trigger);
return;
}

if (!insideDropdown){
// restore swap when clicking outside
if (swapped && currentSwapRow) {
const row1 = parent.querySelector(‘.row1-wrap’);
closeAll(null);
if (row1) swapRows(currentSwapRow, row1);
swapped = false;
currentSwapRow = null;
} else {
closeAll();
}
}
});

document.addEventListener(‘keydown’, function(e){
if (e.key === ‘Escape’) {
if (swapped && currentSwapRow) {
const row1 = parent.querySelector(‘.row1-wrap’);
closeAll(null);
if (row1) swapRows(currentSwapRow, row1);
swapped = false;
currentSwapRow = null;
} else {
closeAll();
}
}
});
})();

**This is a working Additional CSS code (0121) for Dropdown-Swap rows-chevron back arrow.in the live and preview modes, working well. And works with the JS code ** (0121)

/* Anchor for absolute dropdown panel */
.WRAPPER { position: relative; }

/* Trigger/header stays above the panel */
.app-row-header.app-row-dropdown-toggle{
position: relative;
z-index: 1000;
cursor: pointer;
height: 70px;
display: flex;
align-items: center;
}

/* Dropdown panel (closed by default) */
.dropdown-wrapper.app-row-dropdown{
position: absolute;
left: 0;
right: 0;
top: 100%;
z-index: 9999;
background: #fff;

max-height: 0;
overflow: hidden;
opacity: 0;
visibility: hidden;
pointer-events: none;

transition: max-height .25s ease, opacity .2s ease, visibility .2s ease;
}

/* Open state */
.dropdown-wrapper.app-row-dropdown.open{
max-height: 375px;
opacity: 1;
visibility: visible;
pointer-events: auto;
}

/* Scroll vs fixed behavior */
.dropdown-wrapper.app-row-dropdown.app-row-dropdown-scroll.open{
overflow-y: auto;
overflow-x: hidden;
}
.dropdown-wrapper.app-row-dropdown.app-row-dropdown-fixed.open{
overflow: hidden;
}

/* Optional: keep red bar visible inside the panel */
.dropdown-wrapper.app-row-dropdown .dropdown-red-bar{
position: sticky;
top: 0;
z-index: 2;
}
/* Replace your current chevron block with this */

/* room for the badge */
.app-row-header.app-row-dropdown-toggle{
padding-right: 36px;
}

/* Smaller circle (-25%), bigger arrow (+100%), bottom-right positioning */
.app-row-header.app-row-dropdown-toggle::after{
content: “▾”;

width: 20px; /* 26 -> ~20 (-25%) */
height: 20px; /* 26 -> ~20 (-25%) */
border-radius: 50%;
background: #111;
color: #6ecbff;

display: flex;
align-items: center;
justify-content: center;

position: absolute;
right: 8px;
top: auto;
bottom: 8px; /* move to bottom-right corner area */
transform: rotate(0deg);

font-size: 36px; /* 18 -> 36 (+100%) */
line-height: 1;
transition: transform .2s ease;
}

.app-row-header.app-row-dropdown-toggle.is-open::after{
transform: rotate(180deg);
}

Current Feb 12/26 Working *Additional CSS Code* for chevron, switch, dropdown

/* Anchor for absolute dropdown panel */
.WRAPPER { position: relative; }

/* Trigger/header stays above the panel */
.app-row-header.app-row-dropdown-toggle{
position: relative;
z-index: 1000;
cursor: pointer;
height: 70px;
display: flex;
align-items: center;
}

/* Dropdown panel (closed by default) */
.dropdown-wrapper.app-row-dropdown{
position: absolute;
left: 0;
right: 0;
top: 100%;
z-index: 9999;
background: #fff;

max-height: 0;
overflow: hidden;
opacity: 0;
visibility: hidden;
pointer-events: none;

transition: max-height .25s ease, opacity .2s ease, visibility .2s ease;
}

/* Open state */
.dropdown-wrapper.app-row-dropdown.open{
max-height: 375px;
opacity: 1;
visibility: visible;
pointer-events: auto;
}

/* Scroll vs fixed behavior */
.dropdown-wrapper.app-row-dropdown.app-row-dropdown-scroll.open{
overflow-y: auto;
overflow-x: hidden;
}
.dropdown-wrapper.app-row-dropdown.app-row-dropdown-fixed.open{
overflow: hidden;
}

/* Optional: keep red bar visible inside the panel */
.dropdown-wrapper.app-row-dropdown .dropdown-red-bar{
position: sticky;
top: 0;
z-index: 2;
}
/* Replace your current chevron block with this */

/* room for the badge */
.app-row-header.app-row-dropdown-toggle{
padding-right: 36px;
}

/* Smaller circle (-25%), bigger arrow (+100%), bottom-right positioning */
.app-row-header.app-row-dropdown-toggle::after{
content: “▾”;

width: 20px; /* 26 -> ~20 (-25%) */
height: 20px; /* 26 -> ~20 (-25%) */
border-radius: 50%;
background: #111;
color: #6ecbff;

display: flex;
align-items: center;
justify-content: center;

position: absolute;
right: 8px;
top: auto;
bottom: 8px; /* move to bottom-right corner area */
transform: rotate(0deg);

font-size: 36px; /* 18 -> 36 (+100%) */
line-height: 1;
transition: transform .2s ease;
}

.app-row-header.app-row-dropdown-toggle.is-open::after{
transform: rotate(180deg);
}

 Current Feb 12/26 Working *JS Code* for chevron, switch, dropdown

(function () {
if (document.body.classList.contains(‘elementor-editor-active’)) return;
function closest(el, sel){ return el && el.closest ? el.closest(sel) : null; }

const parent = document.querySelector(‘.a-one’);
if (!parent) return;

let swapped = false;
let currentSwapRow = null;

function closeAll(except){
parent.querySelectorAll(‘.dropdown-wrapper.app-row-dropdown.open’).forEach(dd => {
if (except && dd === except) return;
dd.classList.remove(‘open’);
});
parent.querySelectorAll(‘.app-row-header.app-row-dropdown-toggle.is-open’).forEach(t => {
t.classList.remove(‘is-open’);
});
}

function swapRows(rowA, rowB) {
const aNext = rowA.nextSibling;
const bNext = rowB.nextSibling;
const p = rowA.parentNode;
if (!p || p !== rowB.parentNode) return;

if (aNext === rowB) {
p.insertBefore(rowB, rowA);
} else if (bNext === rowA) {
p.insertBefore(rowA, rowB);
} else {
p.insertBefore(rowA, bNext);
p.insertBefore(rowB, aNext);
}
}

function toggleFor(trigger){
const row = closest(trigger, ‘.app-row’) || trigger.parentElement;
if (!row) return;

const dd = row.querySelector(‘.dropdown-wrapper.app-row-dropdown’);
if (!dd) return;

const row1 = parent.querySelector(‘.row1-wrap’);
if (!row1) return;

const willOpen = !dd.classList.contains(‘open’);

// clicking same swapped row again -> restore + close
if (swapped && currentSwapRow === row) {
closeAll(null);
swapRows(row, row1);
swapped = false;
currentSwapRow = null;
return;
}

// if another row was swapped in -> restore it first
if (swapped && currentSwapRow && currentSwapRow !== row) {
closeAll(null);
swapRows(currentSwapRow, row1);
swapped = false;
currentSwapRow = null;
}

// swap clicked row into Row 1 position (unless it already is Row 1)
if (row !== row1) {
swapRows(row, row1);
swapped = true;
currentSwapRow = row;
}

closeAll(willOpen ? dd : null);
dd.classList.toggle(‘open’, willOpen);
trigger.classList.toggle(‘is-open’, willOpen);
}

document.addEventListener(‘click’, function(e){
const trigger = closest(e.target, ‘.app-row-header.app-row-dropdown-toggle’);
const insideDropdown = closest(e.target, ‘.dropdown-wrapper.app-row-dropdown’);

if (trigger){
e.preventDefault();
toggleFor(trigger);
return;
}

if (!insideDropdown){
// restore swap when clicking outside
if (swapped && currentSwapRow) {
const row1 = parent.querySelector(‘.row1-wrap’);
closeAll(null);
if (row1) swapRows(currentSwapRow, row1);
swapped = false;
currentSwapRow = null;
} else {
closeAll();
}
}
});

document.addEventListener(‘keydown’, function(e){
if (e.key === ‘Escape’) {
if (swapped && currentSwapRow) {
const row1 = parent.querySelector(‘.row1-wrap’);
closeAll(null);
if (row1) swapRows(currentSwapRow, row1);
swapped = false;
currentSwapRow = null;
} else {
closeAll();
}
}
});
})();

=== JS code??? Feb 12,26 to keep dropdown open in the builder

(function () {
function openElementorPanelCategories() {
var panel = document.getElementById(‘elementor-panel’);
if (!panel) return;

panel.querySelectorAll(‘.elementor-panel-category’).forEach(function (cat) {
// “active/open” class differs slightly by version, so set both
cat.classList.add(‘elementor-active’, ‘active’);

var items = cat.querySelector(‘.elementor-panel-category-items’);
if (items) {
items.style.display = ‘block’;
items.style.height = ‘auto’;
items.style.maxHeight = ‘none’;
items.style.overflow = ‘visible’;
}
});
}

// Elementor editor loads dynamically, so retry a few times
var tries = 0;
var t = setInterval(function () {
openElementorPanelCategories();
if (++tries >= 30) clearInterval(t); // ~15s
}, 500);

// Also re-open after clicks (Elementor may re-collapse)
document.addEventListener(‘click’, function () {
setTimeout(openElementorPanelCategories, 50);
}, true);
})();

WORKS === GLOBAL CSS (Additional CSS) === [DATE: 2026-Feb. 10]

/* Anchor for absolute dropdown panel */
.WRAPPER { position: relative; }

/* Trigger/header stays above the panel */
.app-row-header.app-row-dropdown-toggle{
position: relative;
z-index: 1000;
cursor: pointer;
height: 70px;
display: flex;
align-items: center;
}

/* Dropdown panel (closed by default) */
.dropdown-wrapper.app-row-dropdown{
position: absolute;
left: 0;
right: 0;
top: 100%;
z-index: 9999;
background: #fff;

max-height: 0;
overflow: hidden;
opacity: 0;
visibility: hidden;
pointer-events: none;

transition: max-height .25s ease, opacity .2s ease, visibility .2s ease;
}

/* Open state */
.dropdown-wrapper.app-row-dropdown.open{
max-height: 375px;
opacity: 1;
visibility: visible;
pointer-events: auto;
}

/* Scroll vs fixed behavior */
.dropdown-wrapper.app-row-dropdown.app-row-dropdown-scroll.open{
overflow-y: auto;
overflow-x: hidden;
}
.dropdown-wrapper.app-row-dropdown.app-row-dropdown-fixed.open{
overflow: hidden;
}

/* Optional: keep red bar visible inside the panel */
.dropdown-wrapper.app-row-dropdown .dropdown-red-bar{
position: sticky;
top: 0;
z-index: 2;
}

Arrow working JS code

(function () {
// Don’t run toggling inside Elementor editor
if (document.body.classList.contains(‘elementor-editor-active’)) return;

function closest(el, sel){ return el && el.closest ? el.closest(sel) : null; }

function closeAll(except){
document.querySelectorAll(‘.dropdown-wrapper.app-row-dropdown.open’).forEach(dd => {
if (except && dd === except) return;
dd.classList.remove(‘open’);
});
document.querySelectorAll(‘.app-row-header.app-row-dropdown-toggle.is-open’).forEach(t => {
t.classList.remove(‘is-open’);
});
}

function toggleFor(trigger){
const row = closest(trigger, ‘.WRAPPER’) || trigger.parentElement;
if (!row) return;

// dropdown must be inside the same WRAPPER
const dd = row.querySelector(‘.dropdown-wrapper.app-row-dropdown’);
if (!dd) return;

const willOpen = !dd.classList.contains(‘open’);
closeAll(dd);
dd.classList.toggle(‘open’, willOpen);
trigger.classList.toggle(‘is-open’, willOpen);
}

document.addEventListener(‘click’, function(e){
const trigger = closest(e.target, ‘.app-row-header.app-row-dropdown-toggle’);
const insideDropdown = closest(e.target, ‘.dropdown-wrapper.app-row-dropdown’);

if (trigger){
e.preventDefault();
toggleFor(trigger);
return;
}

if (!insideDropdown){
closeAll();
}
});

document.addEventListener(‘keydown’, function(e){
if (e.key === ‘Escape’) closeAll();
});
})();

(function () {
if (document.body.classList.contains(‘elementor-editor-active’)) return;

function closest(el, sel){ return el && el.closest ? el.closest(sel) : null; }

const parent = document.querySelector(‘.a-one’);
if (!parent) return;

let swapped = false;
let currentSwapRow = null;

function closeAll(except){
parent.querySelectorAll(‘.dropdown-wrapper.app-row-dropdown.open’).forEach(dd => {
if (except && dd === except) return;
dd.classList.remove(‘open’);
});
parent.querySelectorAll(‘.app-row-header.app-row-dropdown-toggle.is-open’).forEach(t => {
t.classList.remove(‘is-open’);
});
}

function swapRows(rowA, rowB) {
const aNext = rowA.nextSibling;
const bNext = rowB.nextSibling;
const p = rowA.parentNode;
if (!p || p !== rowB.parentNode) return;

if (aNext === rowB) {
p.insertBefore(rowB, rowA);
} else if (bNext === rowA) {
p.insertBefore(rowA, rowB);
} else {
p.insertBefore(rowA, bNext);
p.insertBefore(rowB, aNext);
}
}

function toggleFor(trigger){
const row = closest(trigger, ‘.app-row’) || trigger.parentElement;
if (!row) return;

const dd = row.querySelector(‘.dropdown-wrapper.app-row-dropdown’);
if (!dd) return;

const row1 = parent.querySelector(‘.row1-wrap’);
if (!row1) return;

const willOpen = !dd.classList.contains(‘open’);

// clicking same swapped row again -> restore + close
if (swapped && currentSwapRow === row) {
closeAll(null);
swapRows(row, row1);
swapped = false;
currentSwapRow = null;
return;
}

// if another row was swapped in -> restore it first
if (swapped && currentSwapRow && currentSwapRow !== row) {
closeAll(null);
swapRows(currentSwapRow, row1);
swapped = false;
currentSwapRow = null;
}

// swap clicked row into Row 1 position (unless it already is Row 1)
if (row !== row1) {
swapRows(row, row1);
swapped = true;
currentSwapRow = row;
}

closeAll(willOpen ? dd : null);
dd.classList.toggle(‘open’, willOpen);
trigger.classList.toggle(‘is-open’, willOpen);
}

document.addEventListener(‘click’, function(e){
const trigger = closest(e.target, ‘.app-row-header.app-row-dropdown-toggle’);
const insideDropdown = closest(e.target, ‘.dropdown-wrapper.app-row-dropdown’);

if (trigger){
e.preventDefault();
toggleFor(trigger);
return;
}

if (!insideDropdown){
// restore swap when clicking outside
if (swapped && currentSwapRow) {
const row1 = parent.querySelector(‘.row1-wrap’);
closeAll(null);
if (row1) swapRows(currentSwapRow, row1);
swapped = false;
currentSwapRow = null;
} else {
closeAll();
}
}
});

document.addEventListener(‘keydown’, function(e){
if (e.key === ‘Escape’) {
if (swapped && currentSwapRow) {
const row1 = parent.querySelector(‘.row1-wrap’);
closeAll(null);
if (row1) swapRows(currentSwapRow, row1);
swapped = false;
currentSwapRow = null;
} else {
closeAll();
}
}
});
})();

Arrow working JS code

(function () {
// Don’t run toggling inside Elementor editor
if (document.body.classList.contains(‘elementor-editor-active’)) return;

function closest(el, sel){ return el && el.closest ? el.closest(sel) : null; }

function closeAll(except){
document.querySelectorAll(‘.dropdown-wrapper.app-row-dropdown.open’).forEach(dd => {
if (except && dd === except) return;
dd.classList.remove(‘open’);
});
document.querySelectorAll(‘.app-row-header.app-row-dropdown-toggle.is-open’).forEach(t => {
t.classList.remove(‘is-open’);
});
}

function toggleFor(trigger){
const row = closest(trigger, ‘.WRAPPER’) || trigger.parentElement;
if (!row) return;

// dropdown must be inside the same WRAPPER
const dd = row.querySelector(‘.dropdown-wrapper.app-row-dropdown’);
if (!dd) return;

const willOpen = !dd.classList.contains(‘open’);
closeAll(dd);
dd.classList.toggle(‘open’, willOpen);
trigger.classList.toggle(‘is-open’, willOpen);
}

document.addEventListener(‘click’, function(e){
const trigger = closest(e.target, ‘.app-row-header.app-row-dropdown-toggle’);
const insideDropdown = closest(e.target, ‘.dropdown-wrapper.app-row-dropdown’);

if (trigger){
e.preventDefault();
toggleFor(trigger);
return;
}

if (!insideDropdown){
closeAll();
}
});

document.addEventListener(‘keydown’, function(e){
if (e.key === ‘Escape’) closeAll();
});
})();

(function () {
if (document.body.classList.contains(‘elementor-editor-active’)) return;

function closest(el, sel){ return el && el.closest ? el.closest(sel) : null; }

const parent = document.querySelector(‘.a-one’);
if (!parent) return;

let swapped = false;
let currentSwapRow = null;

function closeAll(except){
parent.querySelectorAll(‘.dropdown-wrapper.app-row-dropdown.open’).forEach(dd => {
if (except && dd === except) return;
dd.classList.remove(‘open’);
});
parent.querySelectorAll(‘.app-row-header.app-row-dropdown-toggle.is-open’).forEach(t => {
t.classList.remove(‘is-open’);
});
}

function swapRows(rowA, rowB) {
const aNext = rowA.nextSibling;
const bNext = rowB.nextSibling;
const p = rowA.parentNode;
if (!p || p !== rowB.parentNode) return;

if (aNext === rowB) {
p.insertBefore(rowB, rowA);
} else if (bNext === rowA) {
p.insertBefore(rowA, rowB);
} else {
p.insertBefore(rowA, bNext);
p.insertBefore(rowB, aNext);
}
}

function toggleFor(trigger){
const row = closest(trigger, ‘.app-row’) || trigger.parentElement;
if (!row) return;

const dd = row.querySelector(‘.dropdown-wrapper.app-row-dropdown’);
if (!dd) return;

const row1 = parent.querySelector(‘.row1-wrap’);
if (!row1) return;

const willOpen = !dd.classList.contains(‘open’);

// clicking same swapped row again -> restore + close
if (swapped && currentSwapRow === row) {
closeAll(null);
swapRows(row, row1);
swapped = false;
currentSwapRow = null;
return;
}

// if another row was swapped in -> restore it first
if (swapped && currentSwapRow && currentSwapRow !== row) {
closeAll(null);
swapRows(currentSwapRow, row1);
swapped = false;
currentSwapRow = null;
}

// swap clicked row into Row 1 position (unless it already is Row 1)
if (row !== row1) {
swapRows(row, row1);
swapped = true;
currentSwapRow = row;
}

closeAll(willOpen ? dd : null);
dd.classList.toggle(‘open’, willOpen);
trigger.classList.toggle(‘is-open’, willOpen);
}

document.addEventListener(‘click’, function(e){
const trigger = closest(e.target, ‘.app-row-header.app-row-dropdown-toggle’);
const insideDropdown = closest(e.target, ‘.dropdown-wrapper.app-row-dropdown’);

if (trigger){
e.preventDefault();
toggleFor(trigger);
return;
}

if (!insideDropdown){
// restore swap when clicking outside
if (swapped && currentSwapRow) {
const row1 = parent.querySelector(‘.row1-wrap’);
closeAll(null);
if (row1) swapRows(currentSwapRow, row1);
swapped = false;
currentSwapRow = null;
} else {
closeAll();
}
}
});

document.addEventListener(‘keydown’, function(e){
if (e.key === ‘Escape’) {
if (swapped && currentSwapRow) {
const row1 = parent.querySelector(‘.row1-wrap’);
closeAll(null);
if (row1) swapRows(currentSwapRow, row1);
swapped = false;
currentSwapRow = null;
} else {
closeAll();
}
}
});
})();

 Top Barr L4M, L4N, L9J, L9X CSS 

(Full Width), (W.: 100%), (H.: none), (Items Dir.: Row Reverse), (J.C.: none), (Align It.: Start), (Align Self: none)

 

– (1 INDENTS from Top Barr L4M)                          Blue Sidebar  CSS

(Full Width), (W.: 34%), (H.: 895 pixels), (Items Dir.: Column), (J.C.: none), (Align It.: none), (Align Self: none)

— (2 INDENTS from Top Barr L4M)                           A 1 Container, CSS 

(Full Width), (W.: 100%), (H.: none), (Items Dir.: Column), (J.C.: none), (Align It.: none), (Align Self: none)

 – (3 INDENTS from Top Barr L4M)            WRAPPER container, CSS app-row WRAPPER 

(Full Width), (W.: 100%), (H.: none), (Items Dir.: Row), (J.C.: Center) (Align It.: none), (Align Self: End)

—- (4 INDENTS from Top Barr L4M)                      1 Wrap Group, CSS 

(Full Width), (W.: 75%), (H.: none), (Items Dir.: Column), (J.C.: none), (Align It.: none), (Align Self: none)

 

—–(5 INDENTS from Top Barr L4M)                  Row 1 Left Container, CSS app-row-header app-row-dropdown-toggle app-row-trigger 

(Full Width), (W.: 100%), (H.: 70 pixels), (Items Dir.: Column), (J.C.: none), (Align It.: Centre), (Align Self: none)

—— (6 INDENTS from Top Barr L4M)                  Text Heading: inside Row 1 Left container

 

—–(5 INDENTS from Top Barr L4M)    DROPDOWN CONTENT 1, CSS dropdown-wrapper app-row-dropdown app-row-dropdown-fixed 

(Full Width), (W.: 100%), (H.: none), (Items Dir: Column), (J.C.: End), (Align It: Stretch), (Align Self: Start) 

—- (4 INDENTS from Top Barr L4M)                      Yellow, Container, CSS

(Full Width), (W.: 100%), (H.: 375), (Items Dir.: Column), (J.C.: End), (Align It.: Stretch), (Align Self: none)

 

——-(7 INDENTS from Top Barr L4M)                Red ContainerCSS dropdown-red-bar

(Full Width), (W.: 100%), (H.: 50 pixels), (Items Dir.: Row), (J.C.: Space Evenly), (Align it. none), (Align Self: none)

Button, CSS: none

Button, CSS: none

Button, CSS: none

 

—- (4 INDENTS from Top Barr L4M)                Right digit (GREEN) Container, CSS 

(Full Width), (W.: 25%), (H.: 70 pixels), (Items Dir: Column), (J.C. none), (Align It.: none), (Align Self: none) 

 

—–(5 INDENTS from Top Barr L4M)              (ORANGE) Container, CSS 

(Full Width), (W.: 100%), (H.: 70 pixels), (Items Dir.: none), (J.C.: none), Align It.: none), (Align Self: none)

 

——(6 INDENTS from Top Barr L4M)                    (BLUE) Container, CSS 

( 

Here is the sequence from the very top (first section) as shown in the navigation structure panel:

Barr First Section

Blue Sidebar Container

A 1 Container

WRAPPER Container, CSS app-row WRAPPER

—- 1 Wrap Group

—–Row 1 Left Container, CSS app-row-header app-row-dropdown-toggle app-row-trigger 

(—– “Heading inside Row 1 Left Container)

—– DROPDOWN CONTENT 1, Container, CSS dropdown-wrapper app-row-dropdown app-row-dropdown-fixed

—— Yellow Container,

——- Red Container, CSS dropdown-red-bar

button

button

button

—- Right Digit, (GREEN) Container

—– ORANGE, Container

1 Top, Container Left

Inside Top, Container

 Top Barr L4M, L4N, L9J, L9X CSS barr-main

(Full Width), (W.: 100%), (H.: none), (Items Dir.: Row Reverse), (J.C.: none), (Align It.: Start), (Align Self: none)

 

– (1 INDENTS from Top Barr L4M)                          Blue Sidebar  CSS blue-side

(Full Width), (W.: 34%), (H.: 895 pixels), (Items Dir.: Column), (J.C.: none), (Align It.: none), (Align Self: none)

— (2 INDENTS from Top Barr L4M)                           A One, Container, CSS a-one

(Full Width), (W.: 100%), (H.: none), (Items Dir.: Column), (J.C.: none), (Align It.: none), (Align Self: none)

 

– (3 INDENTS from Top Barr L4M)            WRAPPER container, CSS app-row WRAPPER 

(Full Width), (W.: 100%), (H.: none), (Items Dir.: Row), (J.C.: Center) (Align It.: none), (Align Self: End)

—- (4 INDENTS from Top Barr L4M)                      1 Wrap Group, CSS 1-wrap-group 

(Full Width), (W.: 75%), (H.: none), (Items Dir.: Column), (J.C.: none), (Align It.: none), (Align Self: none)

 

—–(5 INDENTS from Top Barr L4M)                  Row 1 Left Container, CSS app-row-header app-row-dropdown-toggle app-row-trigger 

(Full Width), (W.: 100%), (H.: 70 pixels), (Items Dir.: Column), (J.C.: none), (Align It.: Centre), (Align Self: none)

—— (6 INDENTS from Top Barr L4M)                  Text Heading: inside Row 1 Left container

 

—–(5 INDENTS from Top Barr L4M)    DROPDOWN CONTENT 1, CSS dropdown-wrapper app-row-dropdown app-row-dropdown-fixed 

(Full Width), (W.: 100%), (H.: none), (Items Dir: Column), (J.C.: End), (Align It: Stretch), (Align Self: Start) 

—- (6 INDENTS from Top Barr L4M)                      Yellow Art, Container, CSS yellow-art

(Full Width), (W.: 100%), (H.: 375), (Items Dir.: Column), (J.C.: End), (Align It.: Stretch), (Align Self: none)

—- (7 INDENTS from Top Barr L4M)                      Blue Art, Container, CSS blue-art

(Full Width), (W.: 100%), (H.: 375), (Items Dir.: Column), (J.C.: End), (Align It.: Stretch), (Align Self: none)

 

——-(7 INDENTS from Top Barr L4M)                Red ContainerCSS dropdown-red-bar

(Full Width), (W.: 100%), (H.: 50 pixels), (Items Dir.: Row), (J.C.: Space Evenly), (Align it. none), (Align Self: none)

Button, CSS: none

Button, CSS: none

Button, CSS: none

 

—- (4 INDENTS from Top Barr L4M)                Right digit,  CSS right-digit

(Full Width), (W.: 25%), (H.: 70 pixels), (Items Dir: Column), (J.C. none), (Align It.: none), (Align Self: none) 

 

—–(5 INDENTS from Top Barr L4M)              Number, Container, CSS number

(Full Width), (W.: 100%), (H.: 70 pixels), (Items Dir.: none), (J.C.: none), Align It.: none), (Align Self: none)

 

( 

Here is the sequence from the very top (first section) as shown in the navigation structure panel:

Barr, CSS barr-main

Blue Sidebar, CSS blue-side

A one Container, CSS a-one

WRAPPER Container, CSS app-row WRAPPER

—- 1 Wrap Group, CSS 1-wrap-group

—–Row 1 Left Container, CSS app-row-header app-row-dropdown-toggle app-row-trigger 

(—– “Heading inside Row 1 Left Container)

—– DROPDOWN CONTENT 1, Container CSS dropdown-wrapper app-row-dropdown app-row-dropdown-fixed

—— Yellow Art Container, CSS yellow-art

——- Blue Art Container, CSS blue-art

——- Red Bar Container, CSS dropdown-red-bar

button

button

button

—- Right Digit Container,  CSS right-digit 

—– Number Container, CSS number

1 Top, Container Left

Inside 1 Top, Container

Scroll to Top