/* Desktop navigation (replaces the old Genesis/superfish dropdown styles).
   Mobile (1023px and below) still uses the theme's slide-out menu. */

/* Labels used for menu groups that aren't pages ("By My Role", "By Issue") */
.cps-nav-label {
  display: block;
  font-family: 'Poppins', sans-serif;
}
.genesis-nav-menu span.cps-nav-label::after {
  display: none;
}

@media (min-width: 1024px) {
  /* ---- Header layout: slim utility strip (socials + search), then one bar
     with the logo on a white overlay and the whole menu ---- */
  .site-header > .wrap { position: relative; padding: 0; }
  .site-header .cps-top-nav {
    float: none; width: auto; position: static;
    margin: 0; padding: 0 24px; height: 40px;
    display: flex; align-items: center; justify-content: flex-end;
    background: #fff;
  }
  .site-header .cps-top-nav > ul { display: flex; align-items: center; justify-content: flex-end; gap: 2px; margin: 0 0 0 auto; padding: 0; float: none; width: auto !important; }
  .site-header .cps-top-nav > ul#menu-cps-top-menu { margin: 0 0 0 auto !important; height: 40px; }
  .site-header .cps-top-nav > ul > li { float: none; display: flex; align-items: center; height: 40px; margin: 0 !important; padding: 0 !important; }
  .site-header .cps-top-nav .navsocial > a { display: flex !important; align-items: center; justify-content: center; height: 30px; min-width: 32px; padding: 0 7px !important; line-height: 1 !important; position: static !important; top: auto !important; }
  .site-header .cps-top-nav .navsocial a { color: #5b2a86 !important; font-size: 15px; }
  .site-header .cps-top-nav .navsocial a:hover { color: #1d1d1f !important; }
  .site-header .cps-top-nav .menu-item-search { margin-left: 12px !important; }
  /* search: slim pill with a magnifier icon, widens a little on focus */
  .site-header .cps-top-nav .search-form { margin: 0 !important; max-width: none; position: relative; display: flex; align-items: center; }
  .site-header .cps-top-nav .search-form .search-form-input {
    width: 190px; height: 30px !important; margin: 0;
    padding: 0 14px 0 34px !important;
    font-size: 13.5px !important; line-height: 30px; color: #1d1d1f !important;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b5a85' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 12px 50% / 15px 15px !important;
    border: 1px solid #ddd3ec !important; border-radius: 999px !important;
    box-shadow: none; vertical-align: middle;
    transition: width .2s ease, border-color .2s ease, box-shadow .2s ease;
  }
  .site-header .cps-top-nav .search-form .search-form-input::placeholder { color: #6f6f78; opacity: 1; }
  .site-header .cps-top-nav .search-form .search-form-input:hover { border-color: #b9a3df !important; color: #1d1d1f !important; }
  .site-header .cps-top-nav .search-form .search-form-input:focus {
    width: 250px; outline: none; border-color: #8d3ff3 !important;
    box-shadow: 0 0 0 3px rgba(141, 63, 243, 0.18);
  }
  .site-header .cps-top-nav .search-form .search-form-input::-webkit-search-cancel-button { cursor: pointer; }
  .site-header .nav-primary { display: none; }

  /* the logo sits on the left of the bar, on a white overlay that fades into the gradient */
  .wp-custom-logo .title-area {
    position: absolute; left: 24px; top: 40px; bottom: auto;
    height: 80px; width: auto; margin: 0; padding: 0;
    display: flex; align-items: center; z-index: 61;
  }
  .wp-custom-logo .custom-logo-link { line-height: 0; display: block; }
  .site-header .custom-logo-link .custom-logo { display: block; height: 58px; width: auto; }

  /* ---- Gradient bar ---- */
  .cps-gradient-nav {
    position: relative; z-index: 60;
    display: flex; align-items: center; justify-content: flex-end;
    min-height: 80px; padding: 0;
    background:
      linear-gradient(to right, #fff 0, #fff 230px, rgba(255, 255, 255, 0.92) 270px, rgba(255, 255, 255, 0) 420px),
      linear-gradient(to right, #FFB106 0%, #00D078 33%, #0092E5 66%, #FF007F 100%);
  }
  /* A soft dark band behind the menu so white text stays readable on every part of the gradient */
  .cps-gradient-nav > ul {
    display: flex; align-items: center; flex-wrap: nowrap;
    align-self: stretch; align-items: stretch;
    padding: 0 20px 0 48px; margin: 0;
    background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.34) 44px);
  }
  .cps-gradient-nav > ul > li,
  .cps-gradient-nav > ul > li.menu-item {
    position: relative !important; float: none;
    display: flex; align-items: center;
  }
  .cps-gradient-nav > ul > li > a {
    display: block;
    color: #fff !important;
    font-weight: 600;
    font-size: 15px;
    line-height: 1.2;
    padding: 10px 13px;
    border-radius: 999px;
    white-space: nowrap;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
    transition: background-color 0.15s ease, color 0.15s ease;
  }
  .cps-gradient-nav > ul > li > a:hover,
  .cps-gradient-nav > ul > li > a:focus-visible,
  .cps-gradient-nav > ul > li.is-open > a {
    background: #fff;
    color: #1d1d1f !important;
    text-shadow: none;
  }
  .cps-gradient-nav > ul > li.current-menu-item > a,
  .cps-gradient-nav > ul > li.current-menu-ancestor > a,
  .cps-gradient-nav > ul > li.current-post-ancestor > a {
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 6px;
  }
  /* Donate: the loudest thing in the header */
  .cps-gradient-nav > ul > li.cps-nav-donate { margin-left: 10px; }
  .cps-gradient-nav > ul > li.cps-nav-donate > a {
    background: #FFC21A;
    color: #1d1d1f !important;
    font-weight: 700;
    padding: 11px 24px;
    text-shadow: none;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
  }
  .cps-gradient-nav > ul > li.cps-nav-donate > a:hover,
  .cps-gradient-nav > ul > li.cps-nav-donate > a:focus-visible { background: #fff; color: #1d1d1f !important; }
  .cps-gradient-nav > ul > li.cps-nav-donate.current-menu-item > a { text-decoration: none; }

  /* ---- Top menu (About / Podcast / Donate / Contact) ---- */
  #menu-middle-nav > li {
    position: relative;
  }
  #menu-middle-nav > li:not(:last-child) > a:hover span,
  #menu-middle-nav > li:not(:last-child) > a:focus-visible span,
  #menu-middle-nav > li.is-open > a span {
    color: #5b2a86;
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 5px;
  }

  /* ---- Dropdown panels (both menus) ---- */
  .cps-gradient-nav .sub-menu,
  #menu-middle-nav .sub-menu {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
    left: auto !important;
    margin: 0 !important;
    width: auto;
    min-width: 260px;
    padding: 10px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.18), 0 2px 6px rgba(0, 0, 0, 0.08);
    opacity: 1 !important;
    text-align: left;
    z-index: 9999;
  }
  .cps-gradient-nav .sub-menu::before,
  #menu-middle-nav .sub-menu::before {
    display: none;
  }
  /* invisible bridge so the panel doesn't close while the mouse travels down to it */
  .cps-gradient-nav > ul > li > .sub-menu::after,
  #menu-middle-nav > li > .sub-menu::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: -12px;
    height: 12px;
  }
  .cps-gradient-nav li.is-open > .sub-menu,
  #menu-middle-nav li.is-open > .sub-menu,
  .cps-gradient-nav > ul > li:hover > .sub-menu,
  #menu-middle-nav > li:hover > .sub-menu {
    display: block !important;
  }
  .cps-gradient-nav .sub-menu li,
  #menu-middle-nav .sub-menu li {
    display: block;
    width: auto;
    padding: 0 !important;
    background: none !important;
    border-radius: 0 !important;
  }
  .cps-gradient-nav .sub-menu a,
  #menu-middle-nav .sub-menu a {
    display: block;
    width: auto;
    padding: 9px 12px;
    border-radius: 6px;
    background: none !important;
    opacity: 1;
    color: #1d1d1f !important;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.35;
    text-shadow: none;
  }
  .cps-gradient-nav .sub-menu a span::after,
  #menu-middle-nav .sub-menu a span::after {
    display: none;
  }
  .cps-gradient-nav .sub-menu a:hover,
  .cps-gradient-nav .sub-menu a:focus-visible,
  #menu-middle-nav .sub-menu a:hover,
  #menu-middle-nav .sub-menu a:focus-visible {
    background: #f1eafb !important;
    color: #4b1f7a !important;
  }
  .cps-gradient-nav .sub-menu .current-menu-item > a,
  #menu-middle-nav .sub-menu .current-menu-item > a {
    font-weight: 600;
    color: #4b1f7a !important;
  }

  /* Third level: shown as a labelled group inside the panel instead of a fly-out */
  .cps-gradient-nav .sub-menu .sub-menu,
  #menu-middle-nav .sub-menu .sub-menu {
    display: block !important;
    position: static;
    min-width: 0;
    padding: 0 0 6px;
    margin: 0 0 0 12px !important;
    border-left: 2px solid #e6dcf5;
    border-radius: 0;
    box-shadow: none;
    background: none;
  }
  .cps-gradient-nav .sub-menu .sub-menu::after,
  #menu-middle-nav .sub-menu .sub-menu::after {
    display: none;
  }
  .cps-gradient-nav .sub-menu .menu-item-has-children > a {
    font-weight: 600;
  }
  .cps-gradient-nav .sub-menu .cps-nav-label {
    padding: 12px 12px 6px;
    color: #5a5a5a;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }

  /* Panels with groups get two columns */
  .cps-gradient-nav .sub-menu.cps-mega {
    width: 560px;
    columns: 2;
    column-gap: 12px;
  }
  .cps-gradient-nav .sub-menu.cps-mega > li {
    break-inside: avoid;
  }

  /* Panels made only of groups (Take Action) sit side by side at equal height, more compact */
  .cps-gradient-nav .sub-menu.cps-groups {
    width: 520px;
    padding: 12px;
    columns: auto;
  }
  .cps-gradient-nav li.is-open > .sub-menu.cps-groups,
  .cps-gradient-nav > ul > li:hover > .sub-menu.cps-groups {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    column-gap: 16px;
  }
  .cps-gradient-nav .sub-menu.cps-groups > li {
    display: flex;
    flex-direction: column;
  }
  .cps-gradient-nav .sub-menu.cps-groups > li > .sub-menu {
    flex: 1;
    display: flex !important;
    flex-direction: column;
    justify-content: space-between;
    padding-bottom: 0;
  }
  .cps-gradient-nav .sub-menu.cps-groups .sub-menu a {
    padding: 6px 12px;
    line-height: 1.3;
  }
  .cps-gradient-nav .sub-menu.cps-groups .cps-nav-label {
    padding: 4px 12px 8px;
  }

  /* Keyboard focus ring everywhere in the header */
  .site-header a:focus-visible,
  .cps-gradient-nav a:focus-visible {
    outline: 3px solid #1d1d1f;
    outline-offset: 2px;
  }
  .cps-gradient-nav > ul > li > a:focus-visible {
    outline-color: #fff;
  }
}

@media (min-width: 1024px) and (max-width: 1279px) {
  .site-header .custom-logo-link .custom-logo { height: 46px; }
  .cps-gradient-nav { background:
      linear-gradient(to right, #fff 0, #fff 170px, rgba(255, 255, 255, 0.92) 200px, rgba(255, 255, 255, 0) 320px),
      linear-gradient(to right, #FFB106 0%, #00D078 33%, #0092E5 66%, #FF007F 100%); }
  .cps-gradient-nav > ul { padding-left: 36px; padding-right: 12px; }
  .cps-gradient-nav > ul > li > a { font-size: 14px; padding: 9px 9px; }
  .cps-gradient-nav > ul > li.cps-nav-donate { margin-left: 6px; }
  .cps-gradient-nav > ul > li.cps-nav-donate > a { padding: 10px 18px; }
}
