/*
Theme Name: NJAPA
Theme URI: https://njapa.info
Author: NJAPA
Description: Custom theme for the New Jersey Association of Public Accountants — navy & gold professional design.
Version: 1.4
Text Domain: njapa
*/
body{margin:0;background:oklch(98% 0.006 258);font-family:'Public Sans',sans-serif;color:oklch(20% 0.02 258)}
a{color:oklch(52% 0.14 258)}
a:hover{color:oklch(42% 0.14 258)}
img{max-width:100%}

/* Elementor */
.njapa-elementor-ready .elementor-section.elementor-section-boxed>.elementor-container{max-width:1200px}
.njapa-elementor-page .elementor{width:100%}
.elementor-widget-container img{height:auto}

/* Safety: chrome lists must never show default bullets if Elementor CSS is late */
.njapa-header-bar ul,
.njapa-header-bar ol,
.elementor-location-header ul,
body .elementor-nav-menu,
ul.njapa-menu-list{list-style:none;margin:0;padding-left:0}

/* Header shell */
.njapa-header-bar{background:oklch(100% 0 0);border-bottom:1px solid oklch(90% 0.01 258);position:relative;z-index:100}
.njapa-header-inner{max-width:1200px;margin:0 auto;padding:16px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.njapa-nav-panel{display:flex;align-items:center;gap:28px}
.njapa-join-btn{background:oklch(70% 0.14 80);color:oklch(20% 0.05 80);padding:10px 20px;border-radius:3px;text-decoration:none;font-weight:700;font-size:14px;white-space:nowrap}
.njapa-join-btn:hover{color:oklch(20% 0.05 80);filter:brightness(0.96)}

/* Hamburger (mobile) */
.njapa-nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:10px;border:1px solid oklch(88% 0.01 258);border-radius:4px;background:oklch(100% 0 0);cursor:pointer}
.njapa-nav-toggle-bar{display:block;height:2px;width:100%;background:oklch(24% 0.05 258);border-radius:1px;transition:transform .2s,opacity .2s}
.njapa-nav-toggle[aria-expanded="true"] .njapa-nav-toggle-bar:nth-child(1){transform:translateY(7px) rotate(45deg)}
.njapa-nav-toggle[aria-expanded="true"] .njapa-nav-toggle-bar:nth-child(2){opacity:0}
.njapa-nav-toggle[aria-expanded="true"] .njapa-nav-toggle-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Top-level menu */
.njapa-menu{display:block}
.njapa-menu-list{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.njapa-menu-list>li{position:relative;display:block}
.njapa-menu-list>li>a{display:block;padding:10px 12px;text-decoration:none;color:oklch(30% 0.02 258);font-weight:500;font-size:15px;white-space:nowrap}
.njapa-menu-list>li>a:hover,
.njapa-menu-list>li:focus-within>a{color:oklch(52% 0.14 258)}
.njapa-menu-list>li.current-menu-item>a,
.njapa-menu-list>li.current_page_item>a,
.njapa-menu-list>li.current-menu-ancestor>a{color:oklch(52% 0.14 258);font-weight:700;box-shadow:inset 0 -2px 0 oklch(70% 0.14 80)}
.njapa-menu-list .menu-item-has-children>a{padding-right:28px;position:relative}
.njapa-menu-list>.menu-item-has-children>a::after,
.njapa-menu-list .sub-menu .menu-item-has-children>a::after{content:"";position:absolute;right:10px;top:50%;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-70%) rotate(45deg)}
.njapa-menu-list .sub-menu .menu-item-has-children>a::after{right:12px;transform:translateY(-50%) rotate(-45deg)}
.njapa-submenu-toggle{display:none;position:absolute;top:50%;right:2px;transform:translateY(-50%);width:28px;height:28px;border:0;background:transparent;cursor:pointer;padding:0}
.njapa-submenu-toggle span{display:block;width:8px;height:8px;margin:0 auto;border-right:2px solid oklch(30% 0.02 258);border-bottom:2px solid oklch(30% 0.02 258);transform:rotate(45deg);transition:transform .2s}
.njapa-menu-list .menu-item-has-children.is-open>.njapa-submenu-toggle span,
.njapa-menu-list .menu-item-has-children:hover>.njapa-submenu-toggle span{transform:rotate(-135deg)}

/* Dropdowns (desktop) */
.njapa-menu-list .sub-menu{list-style:none;margin:0;padding:8px 0;position:absolute;top:100%;left:0;min-width:220px;background:oklch(100% 0 0);border:1px solid oklch(90% 0.01 258);box-shadow:0 10px 28px oklch(24% 0.05 258 / 0.12);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .15s,transform .15s,visibility .15s;z-index:200}
.njapa-menu-list .sub-menu li{position:relative;display:block}
.njapa-menu-list .sub-menu a{display:block;padding:10px 16px;text-decoration:none;color:oklch(30% 0.02 258);font-weight:500;font-size:14px;white-space:nowrap}
.njapa-menu-list .sub-menu a:hover{background:oklch(97% 0.01 258);color:oklch(52% 0.14 258)}
.njapa-menu-list .sub-menu .current-menu-item>a,
.njapa-menu-list .sub-menu .current_page_item>a{color:oklch(52% 0.14 258);font-weight:700}
.njapa-menu-list .sub-menu .sub-menu{top:0;left:100%;transform:translateX(6px)}
.njapa-menu-list>li:hover>.sub-menu,
.njapa-menu-list>li:focus-within>.sub-menu,
.njapa-menu-list .sub-menu>li:hover>.sub-menu,
.njapa-menu-list .sub-menu>li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}

/* Mobile / tablet */
@media (max-width:960px){
  body.njapa-nav-open{overflow:hidden}
  .njapa-nav-toggle{display:flex;margin-left:auto}
  .njapa-nav-panel{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:8px 16px 20px;background:oklch(100% 0 0);border-bottom:1px solid oklch(90% 0.01 258);box-shadow:0 16px 32px oklch(24% 0.05 258 / 0.12);max-height:calc(100vh - 80px);overflow:auto}
  .njapa-nav-panel.is-open{display:flex}
  .njapa-menu-list{flex-direction:column;align-items:stretch;gap:0}
  .njapa-menu-list>li>a{padding:14px 12px;white-space:normal;border-bottom:1px solid oklch(94% 0.01 258)}
  .njapa-menu-list>li.current-menu-item>a,
  .njapa-menu-list>li.current_page_item>a,
  .njapa-menu-list>li.current-menu-ancestor>a{box-shadow:none;border-left:3px solid oklch(70% 0.14 80);padding-left:9px}
  .njapa-submenu-toggle{display:block;top:14px;right:8px;transform:none;width:40px;height:40px}
  .njapa-menu-list .menu-item-has-children>a{padding-right:48px}
  .njapa-menu-list>.menu-item-has-children>a::after,
  .njapa-menu-list .sub-menu .menu-item-has-children>a::after{display:none}
  .njapa-menu-list .sub-menu{position:static;min-width:0;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;border-left:2px solid oklch(90% 0.01 258);margin:0 0 0 12px;padding:0;display:none;background:transparent}
  .njapa-menu-list .sub-menu .sub-menu{margin-left:12px}
  .njapa-menu-list .menu-item-has-children.is-open>.sub-menu{display:block}
  .njapa-menu-list .sub-menu a{padding:12px;white-space:normal;border-bottom:1px solid oklch(95% 0.01 258)}
  .njapa-join-btn{display:block;text-align:center;margin-top:12px}
}
