/* =========================================
   PJM HEADER & FOOTER
   ========================================= */

/* --- BAZA IKON (Material Symbols Rounded) ---
   Google CSS2 (?family=Material+Symbols+Rounded) dostarcza TYLKO @font-face;
   klasę pomocniczą trzeba zdefiniować samemu — inaczej ikony pokazują się jako
   surowy tekst (np. „account_circle"). Ta reguła jest globalna (header-footer.css
   ładuje się na każdej podstronie), więc naprawia ikony w całym froncie. */
.material-symbols-rounded {
    font-family: 'Material Symbols Rounded';
    font-weight: normal;
    font-style: normal;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    display: inline-block;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
    font-feature-settings: 'liga';
    -webkit-font-feature-settings: 'liga';
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Inline SVG ikon (pjm_icon) — pewne renderowanie niezależne od czcionki */
.pjm-icon { display: inline-block; vertical-align: middle; flex-shrink: 0; }

/* --- SKIP LINK (WCAG 2.4.1) — widoczny dopiero przy fokusie --- */
.pjm-skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 100000;
    background: #14352A;
    color: #fff;
    padding: 12px 20px;
    border-radius: 0 0 8px 0;
    font-weight: 600;
    text-decoration: none;
}
.pjm-skip-link:focus {
    left: 0;
    outline: 3px solid #E0A33E;
    outline-offset: 2px;
}

/* --- UKRYJ TYLKO SUROWY NAGŁÓWEK MOTYWU (gdy używasz nagłówka wtyczki zamiast motywu) ---
   UWAGA: NIE ukrywamy .elementor-location-header / .ehf-header / .hfe-header-content,
   bo to wrappery, w których wstawiasz shortcode [pjm_header] — ich ukrycie schowałoby
   Twój własny nagłówek. Plugin-header siedzi WEWNĄTRZ szablonu nagłówka Elementora. */
header.site-header,
header#masthead {
    display: none !important;
}

/* --- VARIABLES --- */
.pjm-site-header,
.pjm-site-footer {
    --hdr-bg: #14352A;            /* głęboka pinia */
    --hdr-text: #DCEAE2;
    --hdr-accent: #E0A33E;        /* złoto — akcenty, przycisk logowania (ciemny tekst) */
    --hdr-accent-hover: #C98A2A;
    --hdr-link-hover: #ffffff;
    --hdr-height: 70px;
    --ftr-bg: #102A22;            /* ciemniejsza pinia */
    --ftr-border: rgba(255,255,255,0.08);
    font-family: 'Plus Jakarta Sans', 'Inter', sans-serif;
}

/* ===== HEADER ===== */
.pjm-site-header {
    position: sticky;
    top: 0;
    /* PONIŻEJ paska admina WP (#wpadminbar ma z-index 99999) — inaczej nagłówek zasłaniał
       rozwijane opcje admin bara. Wciąż wysoko, więc kryje treść strony. */
    z-index: 9990;
    background: var(--hdr-bg);
    border-bottom: 1px solid rgba(255,255,255,0.06);
    transition: box-shadow 0.3s ease, background 0.3s ease;
}

.pjm-site-header.scrolled {
    background: rgba(20,53,42,0.97);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 4px 20px rgba(0,0,0,0.3);
}

.pjm-header-inner {
    max-width: 1340px;
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    align-items: center;
    height: var(--hdr-height);
    gap: 12px;
}

/* Logo */
.pjm-header-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    flex-shrink: 0;
    max-width: 70%;
}

/* Wysoka specyficzność + !important — bo motyw/Elementor potrafi narzucić img{height:auto}
   z wyższą specyficznością, przez co logo (1024×730) renderowało się w pełnym rozmiarze
   i rozpychało nagłówek (menu uciekało poza ekran). */
.pjm-site-header .pjm-header-logo img,
.pjm-site-header .pjm-header-logo img.pjm-logo-img {
    height: 40px !important;
    max-height: 40px !important;
    width: auto !important;
    max-width: 200px !important;
    object-fit: contain;
    filter: brightness(0) invert(1);
}

.pjm-logo-text {
    font-size: 15px;
    color: var(--hdr-text);
    letter-spacing: 0.3px;
    white-space: nowrap;
}

.pjm-logo-text strong {
    color: #fff;
    font-weight: 700;
}

/* Navigation */
.pjm-header-nav {
    flex: 1;
    display: flex;
    justify-content: center;
}

.pjm-nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 4px;
}

.pjm-nav-link {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 8px 16px;
    color: var(--hdr-text);
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
    border-radius: 8px;
    transition: color 0.2s, background 0.2s;
    white-space: nowrap;
}

.pjm-nav-link:hover,
.pjm-nav-link:focus {
    color: var(--hdr-link-hover);
    background: rgba(255,255,255,0.07);
}

.pjm-chevron {
    font-size: 18px;
    transition: transform 0.25s ease;
}

/* Dropdown */
.pjm-has-dropdown {
    position: relative;
}

.pjm-dropdown {
    position: absolute;
    top: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%) translateY(4px);
    min-width: 240px;
    background: var(--hdr-bg);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 12px;
    padding: 8px;
    list-style: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s;
    box-shadow: 0 12px 40px rgba(0,0,0,0.4);
}

.pjm-has-dropdown:hover .pjm-dropdown,
.pjm-has-dropdown.open .pjm-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
}

.pjm-has-dropdown:hover .pjm-chevron {
    transform: rotate(180deg);
}

.pjm-dropdown li a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    color: var(--hdr-text);
    text-decoration: none;
    font-size: 13.5px;
    font-weight: 400;
    border-radius: 8px;
    transition: background 0.2s, color 0.2s;
}

.pjm-dropdown li a:hover {
    background: rgba(27, 94, 75,0.12);
    color: var(--hdr-accent);
}

.pjm-dropdown li a .material-symbols-rounded {
    font-size: 20px;
    color: var(--hdr-accent);
}

/* Header actions */
.pjm-header-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.pjm-header-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 8px;
    text-decoration: none;
    font-size: 13.5px;
    font-weight: 500;
    transition: all 0.2s ease;
    white-space: nowrap;
}

.pjm-header-btn .material-symbols-rounded {
    font-size: 20px;
}

.pjm-btn-login {
    background: var(--hdr-accent);
    color: #3A2A00; /* ciemny tekst na złocie = 6.2:1 */
    font-weight: 600;
}

.pjm-btn-login:hover {
    background: var(--hdr-accent-hover);
    color: #3A2A00;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(224,163,62,0.35);
}

.pjm-btn-account {
    background: rgba(255,255,255,0.08);
    color: var(--hdr-text);
    border: 1px solid rgba(255,255,255,0.12);
}

.pjm-btn-account:hover {
    background: rgba(255,255,255,0.14);
    color: #fff;
}

.pjm-btn-logout {
    padding: 8px;
    color: var(--hdr-text);
    border-radius: 8px;
}

.pjm-btn-logout:hover {
    background: rgba(231,76,60,0.15);
    color: #e74c3c;
}

/* Hamburger */
.pjm-hamburger {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 36px;
    height: 36px;
    padding: 6px;
    background: none;
    border: none;
    cursor: pointer;
}

.pjm-hamburger span {
    display: block;
    height: 2px;
    background: var(--hdr-text);
    border-radius: 2px;
    transition: all 0.3s ease;
    transform-origin: center;
}

.pjm-hamburger.active span:nth-child(1) {
    transform: rotate(45deg) translate(5px, 5px);
}

.pjm-hamburger.active span:nth-child(2) {
    opacity: 0;
}

.pjm-hamburger.active span:nth-child(3) {
    transform: rotate(-45deg) translate(5px, -5px);
}

/* Body padding for sticky header */
body:not(.wp-admin) {
    padding-top: 0 !important;
}

/* Adjust hero to overlap under header */
.jm-hero-section {
    margin-top: -70px;
    padding-top: 170px;
}

/* ===== FOOTER ===== */
.pjm-site-footer {
    width: 100%;
    box-sizing: border-box;
    margin-top: 0;
    font-family: 'Plus Jakarta Sans', 'Inter', sans-serif;
    overflow-x: hidden;
}

.pjm-site-footer *,
.pjm-site-footer *::before,
.pjm-site-footer *::after {
    box-sizing: border-box;
}

.pjm-footer-wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
    box-sizing: border-box;
}

.pjm-footer-main {
    background: var(--hdr-bg);
    padding: 52px 0 44px;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.pjm-footer-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) repeat(3, minmax(0, 1fr));
    gap: 36px 32px;
    align-items: start;
}

.pjm-footer-col {
    min-width: 0;
}

.pjm-footer-brand {
    padding-right: 12px;
}

.pjm-footer-logo {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    color: #fff;
    margin-bottom: 14px;
    max-width: 100%;
}

.pjm-footer-logo-text {
    font-size: 16px;
    line-height: 1.25;
    letter-spacing: -0.02em;
}

.pjm-footer-logo strong {
    font-weight: 700;
    color: var(--hdr-accent);
}

.pjm-footer-logo-img {
    height: 40px;
    width: auto;
    max-width: 56px;
    object-fit: contain;
    filter: brightness(0) invert(1);
    flex-shrink: 0;
}

.pjm-footer-desc {
    color: rgba(255, 255, 255, 0.62);
    font-size: 14px;
    line-height: 1.65;
    margin: 0;
    max-width: 320px;
}

.pjm-footer-heading {
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin: 0 0 16px;
    padding: 0 0 10px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.pjm-footer-links {
    list-style: none;
    margin: 0;
    padding: 0;
}

.pjm-footer-links li {
    margin-bottom: 8px;
}

.pjm-footer-links li:last-child {
    margin-bottom: 0;
}

.pjm-footer-links a {
    color: rgba(255, 255, 255, 0.68);
    text-decoration: none;
    font-size: 14px;
    line-height: 1.4;
    transition: color 0.2s ease;
    display: inline-block;
}

.pjm-footer-links a:hover {
    color: var(--hdr-accent);
}

.pjm-footer-contact {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.pjm-footer-contact-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: rgba(255, 255, 255, 0.68);
    font-size: 14px;
    line-height: 1.45;
    min-width: 0;
}

.pjm-footer-contact-row .pjm-icon,
.pjm-footer-contact-row .material-symbols-rounded {
    color: var(--hdr-accent);
    flex-shrink: 0;
    margin-top: 2px;
}

.pjm-footer-contact-row a {
    color: inherit;
    text-decoration: none;
    word-break: break-word;
    transition: color 0.2s ease;
}

.pjm-footer-contact-row a:hover {
    color: var(--hdr-accent);
}

.pjm-footer-bottom {
    background: var(--ftr-bg);
    border-top: 1px solid var(--ftr-border);
    padding: 18px 0;
}

.pjm-footer-bottom-inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 12px 20px;
}

.pjm-footer-copy,
.pjm-footer-cert {
    color: rgba(255, 255, 255, 0.45);
    font-size: 12.5px;
    line-height: 1.45;
    margin: 0;
}

.pjm-footer-cert {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-align: left;
}

.pjm-footer-cert .pjm-icon {
    color: var(--hdr-accent);
    flex-shrink: 0;
}

/* Legacy aliases (stare klasy w szablonach / cache) */
.pjm-footer-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}

/* ===== MOBILE ===== */
@media (max-width: 960px) {
    .pjm-hamburger {
        display: flex;
    }

    .pjm-header-nav {
        position: fixed;
        top: var(--hdr-height);
        left: 0;
        right: 0;
        bottom: 0;
        background: var(--hdr-bg);
        padding: 20px 24px;
        overflow-y: auto;
        transform: translateX(100%);
        transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
        z-index: 9989; /* poniżej paska admina WP, nad treścią strony */
    }

    .pjm-header-nav.open {
        transform: translateX(0);
    }

    .pjm-nav-list {
        flex-direction: column;
        align-items: stretch;
        gap: 2px;
    }

    .pjm-nav-link {
        padding: 14px 16px;
        font-size: 16px;
        border-radius: 10px;
    }

    .pjm-dropdown {
        position: static;
        transform: none;
        opacity: 1;
        visibility: visible;
        background: rgba(255,255,255,0.04);
        border: none;
        box-shadow: none;
        padding: 4px 0 4px 16px;
        display: none;
        min-width: auto;
    }

    .pjm-has-dropdown.open .pjm-dropdown {
        display: block;
    }

    .pjm-dropdown li a {
        padding: 12px 14px;
    }

    .pjm-btn-label {
        display: none;
    }

    .pjm-header-btn {
        padding: 8px;
    }

    .pjm-logo-text {
        display: none;
    }

    /* Footer mobile */
    .pjm-footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: 28px 24px;
    }

    .pjm-footer-brand {
        grid-column: 1 / -1;
        padding-right: 0;
        text-align: center;
    }

    .pjm-footer-brand .pjm-footer-logo {
        justify-content: center;
    }

    .pjm-footer-brand .pjm-footer-desc {
        max-width: 420px;
        margin-left: auto;
        margin-right: auto;
    }

    .pjm-footer-bottom-inner {
        flex-direction: column;
        text-align: center;
        justify-content: center;
    }

    .pjm-footer-cert {
        justify-content: center;
    }

    .jm-hero-section {
        margin-top: -70px;
        padding-top: 140px;
    }
}

@media (max-width: 600px) {
    .pjm-footer-main {
        padding: 36px 0 28px;
    }

    .pjm-footer-wrap {
        padding: 0 18px;
    }

    .pjm-footer-grid {
        grid-template-columns: 1fr;
        gap: 26px;
        text-align: center;
    }

    .pjm-footer-brand .pjm-footer-desc {
        max-width: none;
    }

    .pjm-footer-heading {
        border-bottom-color: rgba(255, 255, 255, 0.08);
    }

    .pjm-footer-links {
        display: inline-block;
        text-align: left;
    }

    .pjm-footer-col-contact .pjm-footer-contact {
        align-items: center;
    }

    .pjm-footer-contact-row {
        justify-content: center;
        text-align: left;
        max-width: 280px;
        margin-left: auto;
        margin-right: auto;
    }
}

/* Bardzo małe ekrany (telefony) — ciaśniejszy nagłówek, mniejsze logo */
@media (max-width: 420px) {
    .pjm-header-inner { padding: 0 14px; gap: 8px; }
    .pjm-logo-img { height: 34px; }
    .pjm-header-actions { gap: 6px; }
    .pjm-header-btn { padding: 7px; }
}

/* WP admin bar offset */
body.admin-bar .pjm-site-header {
    top: 32px;
}

body.admin-bar .pjm-header-nav {
    top: calc(var(--hdr-height) + 32px);
}

@media (max-width: 782px) {
    body.admin-bar .pjm-site-header {
        top: 46px;
    }
    body.admin-bar .pjm-header-nav {
        top: calc(var(--hdr-height) + 46px);
    }
}

/* ============================================================
   MOBILE — JAKOŚĆ WPISYWANIA DANYCH NA TELEFONIE
   header-footer.css ładuje się na każdej podstronie (też /moje-konto/),
   więc te reguły poprawiają WSZYSTKIE formularze wtyczki naraz:
   1) font-size 16px na polach = iOS NIE zoomuje przy fokusie (kluczowe),
   2) siatki formularzy zwijają się do 1 kolumny na telefonie,
   3) koniec przewijania w bok (pola na 100% szerokości).
   ============================================================ */
@media (max-width: 768px) {
    .ja-field input, .ja-field select, .ja-field textarea,
    .pjm-asg-fld input, .pjm-asg-fld select, .pjm-asg-fld textarea,
    .pjm-asg-costedit input, .pjm-asg-costedit select,
    .pjm-asg-hours input, .pjm-asg-mat input, .pjm-asg-mat textarea, .asg-ratetax,
    .pjm-cpn-fld input, .pjm-cpn-fld select,
    .pjm-contact-form input, .pjm-contact-form select, .pjm-contact-form textarea,
    .pjm-input, .jm-input, .jm-input-group input, .jm-input-group select,
    .pjm-dashboard-content input:not([type=checkbox]):not([type=radio]),
    .pjm-dashboard-content select,
    .pjm-dashboard-content textarea {
        font-size: 16px !important;
    }
}
@media (max-width: 640px) {
    .ja-field-row, .ja-field-row-3 { grid-template-columns: 1fr !important; }
    .pjm-asg-grid { grid-template-columns: 1fr !important; }
    .pjm-cpn-grid { grid-template-columns: 1fr !important; }
    .pjm-mo-tr-row { grid-template-columns: 1fr !important; gap: 8px; }
    .pjm-asg-hours { flex-wrap: wrap; }
    .pjm-asg-hours input,
    .pjm-asg-hours input.asg-date,
    .pjm-asg-hours input.asg-start,
    .pjm-asg-hours input.asg-end { width: 100% !important; }
    .pjm-asg-mat textarea, .pjm-asg-mat input { max-width: 100% !important; width: 100%; }
    .pjm-cf-row { flex-direction: column; }
    .pjm-cf-group { min-width: 0 !important; }
    .jm-form-grid { grid-template-columns: 1fr !important; }
    /* większe pola dotykowe (min. 40px) */
    .pjm-mo-tr-del, .pjm-asg-ic, .pjm-cpn-ic { min-width: 40px; min-height: 40px; }
    /* domknięcie drobnego przewijania w bok (np. elementy 100vw) na froncie/panelu */
    .pjm-dashboard-content, .pjm-coupons, .pjm-asg, .ja-new-order-form { overflow-x: hidden; }
}

/* ============================================================
   MODALE — spójne i responsywne na każdym ekranie.
   header-footer.css ładuje się też w /moje-konto/, więc ujednolicamy
   WSZYSTKIE modale wtyczki naraz: max-height + scroll wewnętrzny,
   wyśrodkowanie, duże przyciski zamknięcia (44px), wąskie ekrany.
   ============================================================ */
.ja-modal-content:not(.ja-modal-content--order),
.pjm-modal-content, .pjm-tr-modal-box, .jm-modal-content {
    max-height: 90vh !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
}
/* przyciski zamknięcia: minimum 44×44 px, wyśrodkowany znak */
.ja-modal-close, .pjm-tr-modal-close, .close-modal, .btn-modal-close, .jm-modal-close {
    width: 44px !important; height: 44px !important;
    display: inline-flex !important; align-items: center; justify-content: center;
    line-height: 1; padding: 0 !important;
}
@media (max-width: 640px) {
    .ja-modal-content:not(.ja-modal-content--order),
    .pjm-modal-content, .pjm-tr-modal-box, .jm-modal-content,
    #pjm-order-modal .pjm-order-modal-panel {
        width: 95% !important; max-width: 95% !important; max-height: 92vh !important;
    }
    /* overlaye przypięte do góry → wyśrodkuj w pionie, mniejszy padding */
    .pjm-tr-modal, .ja-modal, .pjm-modal-overlay, .jm-modal-overlay, #ja-order-modal, #pjm-order-modal {
        align-items: center !important; padding: 12px !important;
    }
    /* siatki formularzy w modalach → 1 kolumna */
    .ja-modal-content .ja-field-row, .ja-modal-content .ja-field-row-3,
    .pjm-tr-modal-box .ja-field-row, .pjm-tr-modal-box .ja-field-row-3 { grid-template-columns: 1fr !important; }
    .ja-form-actions { flex-direction: column; } .ja-form-actions .ja-btn { width: 100%; }
    /* tabela pozycji w podglądzie zamówienia → stos zamiast ucinania */
    .pjm-order-view .pjm-table thead { display: none; }
    .pjm-order-view .pjm-table, .pjm-order-view .pjm-table tbody,
    .pjm-order-view .pjm-table tr, .pjm-order-view .pjm-table td { display: block; width: 100%; }
    .pjm-order-view .pjm-table tr { border-bottom: 1px solid #eee; padding: 6px 0; }
    .pjm-order-view .pjm-table td { padding: 3px 0; border: none; text-align: left !important; }
    .pjm-order-view .pjm-grid { flex-direction: column; }
    .pjm-order-view .pjm-col-main, .pjm-order-view .pjm-col-side { min-width: 0 !important; width: 100%; flex: 1 1 100%; }
}

/* ============================================================
   PANEL (dashboard/admin) — dostępność i obsługa na telefonie.
   ============================================================ */
@media (max-width: 768px) {
    /* zakładki admina: przewijanie w poziomie zamiast łamania/uciekania */
    .ja-tabs { flex-wrap: nowrap !important; overflow-x: auto; -webkit-overflow-scrolling: touch;
               gap: 14px !important; padding-bottom: 8px; margin: 0 -12px 18px; padding-left: 12px; padding-right: 12px; }
    .ja-tabs::-webkit-scrollbar { height: 0; }
    .ja-tab-btn { white-space: nowrap; flex-shrink: 0; font-size: 13px; }
    /* mniejsze odstępy treści i kart na telefonie */
    .pjm-content { padding: 16px 12px !important; }
    .pjm-card, .account-card, .settings-card, .wallet-card, .ja-card, .ja-form-section { padding: 18px !important; }
    /* tabele danych: kontener przewijany w poziomie, nie rozpychają strony */
    .pjm-table-wrapper, .ja-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
}
@media (max-width: 640px) {
    /* karty KPI i siatki akcji → 1 kolumna */
    .ja-kpi-grid, .pjm-action-grid, .pjm-stats-grid, .overview-hero-section { grid-template-columns: 1fr !important; }
    .wallet-actions { flex-wrap: wrap; } .wallet-actions .btn { flex: 1 1 100%; }
}

/* ============================================================
   DOSTĘPNOŚĆ + ESTETYKA — widoczny pierścień fokusu (WCAG 2.4.7)
   dla nawigacji klawiaturą, w kolorze marki (złoto). Scope: wtyczka.
   ============================================================ */
.pjm-site-header a:focus-visible, .pjm-site-footer a:focus-visible,
.pjm-dashboard-content a:focus-visible, .pjm-dashboard-content button:focus-visible,
.ja-field input:focus-visible, .ja-field select:focus-visible, .ja-field textarea:focus-visible,
.pjm-asg-fld input:focus-visible, .pjm-asg-fld select:focus-visible,
.pjm-cpn-fld input:focus-visible, .pjm-cpn-fld select:focus-visible,
.pjm-input:focus-visible, .jm-input:focus-visible,
.ja-btn:focus-visible, .ja-tab-btn:focus-visible, .pjm-btn:focus-visible,
.pjm-asg-ic:focus-visible, .pjm-cpn-ic:focus-visible {
    outline: 3px solid #E0A33E !important;
    outline-offset: 2px;
    border-radius: 6px;
}
