/* Container-aligned, AJAX-loaded mega menu. Panel is removed from DOM on close. */
@media (min-width:821px) {
  .catalog-trigger-wrap.catalog-is-open .nav-categories { color:var(--primary,#3562b2); }
  .catalog-mega-panel {
    position:fixed; z-index:10050; box-sizing:border-box;
    max-width:calc(100vw - 24px); height:420px; overflow:hidden;
    overscroll-behavior:contain; background:#fff; color:#293c55;
    border:1px solid #e7ebf1; border-top:0; border-radius:0 0 12px 12px;
    box-shadow:0 17px 35px rgba(24,38,62,.12);
    animation:catalog-fade-in .13s ease-out;
  }
  .catalog-mega-panel * { box-sizing:border-box; }
  .catalog-mega-shell {
    display:grid; grid-template-columns:240px minmax(0,1fr);
    height:100%; min-height:0; padding:0 14px;
  }
  .catalog-mega-sidebar {
    min-width:0; min-height:0; overflow-y:auto; overflow-x:hidden;
    padding:12px 13px 14px 0; border-right:1px solid #ebeff4;
    overscroll-behavior:contain; scrollbar-width:none; -ms-overflow-style:none;
  }
  /* Scroll remains available with mouse wheel, touchpad and keyboard.
     Only the distracting native scrollbar track is hidden. */
  .catalog-mega-sidebar::-webkit-scrollbar,
  .catalog-mega-detail::-webkit-scrollbar { display:none; width:0; height:0; }
  .catalog-mega-parent-list { display:flex; flex-direction:column; gap:3px; }
  .catalog-mega-panel .catalog-mega-parent {
    display:flex; align-items:center; gap:12px; min-height:40px;
    padding:8px 11px; border-radius:8px; text-decoration:none;
    font-size:13px; font-weight:500; color:#516074;
    transition:background-color .2s ease,color .2s ease,box-shadow .2s ease;
  }
  .catalog-mega-parent>i:first-child { width:21px; flex:0 0 21px; text-align:center; color:#8293a7; font-size:14px; }
  .catalog-mega-chevron { margin-left:auto; color:#b0bdca; font-size:10px; }
  .catalog-mega-panel .catalog-mega-parent:hover,
  .catalog-mega-panel .catalog-mega-parent.is-active {
    background-color:#f0f5fd; color:#2756a0;
    box-shadow:inset 3px 0 0 #4777cb;
  }
  .catalog-mega-panel .catalog-mega-parent.is-active>i:first-child { color:#3864b2; }

  .catalog-mega-detail {
    min-width:0; min-height:0; overflow-y:auto; overscroll-behavior:contain;
    padding:17px 0 12px 14px;
    scrollbar-width:none; -ms-overflow-style:none;
  }
  /* Compact category heading; all styles are kept in this stylesheet. */
  .catalog-mega-detail-head {
    display:flex; align-items:center; justify-content:space-between;
    gap:14px; min-height:56px; padding:9px 12px 9px 14px;
    margin-bottom:6px; border:1px solid #e8edf6;
    border-radius:11px; background:#f7f9fd;
  }
  .catalog-mega-detail-title {
    display:flex; align-items:center; gap:11px;
    min-width:0; flex:1 1 auto;
  }
  .catalog-mega-detail-title::before {
    content:""; display:block; flex:0 0 3px; width:3px;
    height:22px; border-radius:3px; background:#4777cb;
  }
  .catalog-mega-detail h2 {
    margin:0; color:#203956; font-size:18px; font-weight:800;
    line-height:1.3; letter-spacing:-.35px;
  }
  .catalog-mega-panel .catalog-mega-all {
    display:inline-flex; align-items:center; gap:10px; flex:0 0 auto;
    padding:4px 4px 4px 10px; border:0; border-radius:8px;
    background:transparent; color:#315da6; text-decoration:none;
    font-size:14px; font-weight:750; line-height:1.35; white-space:nowrap;
    transition:background-color .16s,color .16s;
  }
  .catalog-mega-panel .catalog-mega-all:hover {
    background:#e9f0fb; color:#214e96;
  }
  .catalog-mega-panel .catalog-mega-all:focus-visible {
    outline:2px solid #4777cb; outline-offset:2px;
  }
  .catalog-mega-panel .catalog-mega-all i {
    display:grid; place-items:center; flex:0 0 27px;
    width:27px; height:27px; border-radius:8px;
    background:#e5edfa; color:#4777cb; font-size:11px;
    transition:background-color .16s;
  }
  .catalog-mega-panel .catalog-mega-all:hover i { background:#dbe7f9; }

  .catalog-mega-content { display:flex; align-items:flex-start; gap:22px; }
  .catalog-mega-links {
    display:grid; flex:1; min-width:0; grid-template-columns:repeat(3,minmax(0,1fr));
    gap:0 8px; align-content:start;
  }
  .catalog-mega-panel .catalog-mega-child {
    display:flex; align-items:center; gap:10px; min-width:0; min-height:40px;
    padding:6px 10px; border-radius:7px; color:#475b72;
    text-decoration:none; font-size:13px; font-weight:500; line-height:1.45;
    overflow-wrap:anywhere; transition:color .12s,background .12s;
  }
  .catalog-mega-panel .catalog-mega-child:hover { color:#2258ad; background:#f5f8fc; }
  .catalog-mega-bullet { width:5px; height:5px; flex:0 0 5px; border-radius:50%; background:#b7c5d6; }
  .catalog-mega-panel .catalog-mega-child:hover .catalog-mega-bullet { background:#467aca; }

  .catalog-mega-featured {
    flex:0 0 160px; max-width:160px; padding:2px 0 2px 17px;
    border-left:1px solid #edf1f5;
  }
  .catalog-mega-featured-heading {
    display:block; margin-bottom:12px; color:#8c9aad;
    font-size:10px; font-weight:700; letter-spacing:.035em;
  }
  .catalog-mega-covers { display:flex; gap:9px; align-items:flex-start; }
  .catalog-mega-panel .catalog-mega-cover {
    display:block; flex:0 0 61px; width:61px; height:91px;
    overflow:hidden; border-radius:5px; background:#f0f3f8;
    box-shadow:0 3px 11px rgba(31,51,69,.14); transition:transform .16s;
  }
  .catalog-mega-panel .catalog-mega-cover:hover { transform:translateY(-3px); }
  .catalog-mega-cover img { width:100%; height:100%; display:block; object-fit:cover; }
  .catalog-mega-loading, .catalog-mega-empty { padding:33px 35px; color:#8392a5; font-size:13px; }
}
@keyframes catalog-fade-in {
  from { opacity:0; transform:translateY(-5px); }
  to { opacity:1; transform:translateY(0); }
}
@media (min-width:821px) and (max-width:1180px) {
  .catalog-mega-shell { grid-template-columns:240px minmax(0,1fr); }
  .catalog-mega-content>.catalog-mega-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .catalog-mega-featured { flex-basis:90px; max-width:90px; padding-left:10px; }
  .catalog-mega-covers { flex-wrap:wrap; }
}
@media (prefers-reduced-motion:reduce) {
  .catalog-mega-panel { animation:none; }
}

/* One visual template for every desktop category: fixed two-column links,
   56px title bar, steady image column, independent sidebar/content scrolling.
   Actual category content varies, not the layout. */
@media (min-width:821px) {
  .catalog-mega-panel .catalog-mega-detail {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:56px minmax(0,1fr);
    column-gap:0;
    row-gap:8px;
    min-width:0;
    min-height:0;
    overflow:hidden;
    align-items:stretch;
  }
  .catalog-mega-panel .catalog-mega-detail.has-banner {
    grid-template-columns:minmax(0,1fr) clamp(185px,20vw,250px);
    column-gap:16px;
  }
  .catalog-mega-panel .catalog-mega-detail-head {
    grid-column:1;
    grid-row:1;
    height:56px;
    min-height:56px;
    max-height:56px;
    min-width:0;
    margin:0;
    padding:9px 12px;
    overflow:hidden;
  }
  .catalog-mega-panel .catalog-mega-detail-title {
    min-width:0;
    overflow:hidden;
  }
  .catalog-mega-panel .catalog-mega-detail-title h2 {
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .catalog-mega-panel .catalog-mega-content {
    grid-column:1;
    grid-row:2;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:12px;
    flex:1 1 auto;
    min-width:0;
    min-height:0;
    padding:0;
    overflow-x:hidden;
    overflow-y:auto;
    scrollbar-width:thin;
    scrollbar-color:#d6e0ef transparent;
  }
  .catalog-mega-panel .catalog-mega-links,
  .catalog-mega-panel .catalog-mega-content>.catalog-mega-links {
    display:grid;
    flex:0 0 auto;
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:minmax(44px,auto);
    column-gap:20px;
    row-gap:8px;
    width:100%;
    min-width:0;
    height:auto;
    align-content:start;
    animation:catalog-links-enter .2s ease-out both;
  }
  .catalog-mega-panel .catalog-mega-child {
    min-width:0;
    min-height:44px;
    padding:6px 9px;
    line-height:1.4;
  }
  .catalog-mega-panel .catalog-mega-banner {
    grid-column:2;
    grid-row:1 / -1;
    display:block;
    position:relative;
    width:100%;
    height:100%;
    min-width:0;
    min-height:0;
    overflow:hidden;
    border-radius:12px;
    background:#eaf0f8;
    text-decoration:none;
    isolation:isolate;
    box-shadow:0 5px 17px rgba(31,54,86,.10);
    transition:box-shadow .2s ease;
  }
  .catalog-mega-panel .catalog-mega-banner-image {
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    opacity:0;
    filter:blur(7px);
    transform:scale(1.045);
    transition:opacity .32s ease,transform .5s ease,filter .45s ease;
  }
  .catalog-mega-panel .catalog-mega-banner.is-loaded .catalog-mega-banner-image {
    opacity:1;
    filter:blur(0);
    transform:scale(1);
  }
  .catalog-mega-panel .catalog-mega-banner:not(.is-loaded)::after {
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:linear-gradient(110deg,#e9eff7 10%,#f6f9fc 40%,#e9eff7 70%);
    background-size:200% 100%;
    animation:catalog-photo-skeleton 1.25s ease-in-out infinite;
  }
  .catalog-mega-panel .catalog-mega-banner:hover {
    box-shadow:0 8px 24px rgba(31,54,86,.18);
  }
  .catalog-mega-panel .catalog-mega-banner:focus-visible {
    outline:3px solid #7c95e6;
    outline-offset:3px;
  }
  /* Optional book covers sit beneath the two-column category grid
     instead of stealing width from one of the columns. */
  .catalog-mega-panel .catalog-mega-featured {
    display:block;
    flex:0 0 auto;
    width:100%;
    max-width:100%;
    padding:12px 2px 0;
    border-left:0;
    border-top:1px solid #edf1f5;
  }
  .catalog-mega-panel .catalog-mega-covers {
    display:flex;
    flex-wrap:wrap;
    gap:9px;
  }
}
@media (min-width:821px) and (max-width:1180px) {
  .catalog-mega-panel .catalog-mega-detail.has-banner {
    grid-template-columns:minmax(0,1fr) clamp(170px,20vw,205px);
    column-gap:12px;
  }
  .catalog-mega-panel .catalog-mega-links,
  .catalog-mega-panel .catalog-mega-content>.catalog-mega-links {
    column-gap:12px;
  }
}
@media (min-width:821px) and (max-width:960px) {
  .catalog-mega-panel .catalog-mega-detail-title h2 {
    font-size:15px;
  }
  .catalog-mega-panel .catalog-mega-all {
    gap:5px;
    padding-left:4px;
    font-size:12px;
  }
  .catalog-mega-panel .catalog-mega-links,
  .catalog-mega-panel .catalog-mega-content>.catalog-mega-links {
    column-gap:7px;
  }
  .catalog-mega-panel .catalog-mega-child {
    padding-left:6px;
    padding-right:5px;
    font-size:12px;
  }
  .catalog-mega-panel .catalog-mega-featured {
    display:none;
  }
}
@keyframes catalog-photo-skeleton {
  from{background-position:120% 0}
  to{background-position:-120% 0}
}
@keyframes catalog-links-enter {
  from{opacity:.65;transform:translateY(5px)}
  to{opacity:1;transform:translateY(0)}
}
@media (prefers-reduced-motion:reduce) {
  .catalog-mega-panel .catalog-mega-banner:not(.is-loaded)::after,
  .catalog-mega-panel .catalog-mega-links {
    animation:none;
  }
  .catalog-mega-panel .catalog-mega-banner-image {
    transition:none;
    filter:none;
    transform:none;
  }
}
