/* Reversible grouped file catalog.
 * Old .tools-grid / .tool-card styles are intentionally left unchanged.
 */
#groupedCatalog[hidden],
#classicCatalog[hidden],
#catalogLanding[hidden],
#catalogDepartmentDetail[hidden],
#catalogLayoutSwitch[hidden],
#catalogSearchMessage[hidden],
#catalogClearSearch[hidden]{display:none!important}

.catalog-layout-switch{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;
  gap:14px 20px;margin:7px 0 25px;padding:14px 17px;
  border:1px solid #e4e4f0;border-radius:15px;background:#fff;
  box-shadow:0 5px 22px rgba(32,27,82,.035)
}
.catalog-layout-intro{display:flex;flex-direction:column;gap:2px}
.catalog-layout-intro strong{font-size:13px;font-weight:830;color:#292846}
.catalog-layout-intro>span{font-size:11px;line-height:1.4;color:#8a91a2}
.catalog-layout-options{display:flex;gap:5px;padding:4px;background:#f3f1fa;border-radius:11px}
.catalog-layout-options button{
  display:inline-flex;align-items:center;justify-content:center;
  gap:7px;min-height:38px;padding:8px 13px;
  border:1px solid transparent;border-radius:9px;
  color:#74758b;background:transparent;font-family:inherit;
  font-weight:750;font-size:12px;line-height:1.35;cursor:pointer;
  transition:color .15s,background .15s,box-shadow .15s
}
.catalog-layout-options button svg{width:16px;height:16px;flex:0 0 16px}
.catalog-layout-options button:hover{color:#5e50bc}
.catalog-layout-options button.is-active{
  color:#5645bc;background:#fff;border-color:#ebe7fa;
  box-shadow:0 3px 10px rgba(50,38,118,.09)
}
.catalog-layout-options button:focus-visible,
.catalog-department:focus-visible,
.catalog-quick-card:focus-visible,
.catalog-tool-row:focus-visible,
.catalog-back-button:focus-visible{
  outline:3px solid #b1a4f2;outline-offset:3px
}

.catalog-quick-section{margin:0 0 34px}
.catalog-departments-section{margin-bottom:8px}
.catalog-quick-heading{margin:0 0 16px}
.catalog-quick-heading h3{
  font-size:clamp(22px,3vw,27px);font-weight:850;line-height:1.28;
  color:#242542;letter-spacing:-.04em;margin:4px 0 4px
}
.catalog-quick-heading p{font-size:12px;line-height:1.55;color:#8890a1;margin:0}
.catalog-quick-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:11px
}
.catalog-quick-card{
  display:flex;align-items:center;gap:11px;min-width:0;min-height:88px;
  padding:15px;border:1px solid #e4e4ef;border-radius:15px;
  color:#2a2b4b;background:#fff;
  text-decoration:none!important;
  box-shadow:0 6px 19px rgba(33,29,82,.045);
  transition:border-color .17s,transform .17s,box-shadow .17s
}
.catalog-quick-card:hover{
  border-color:#bfb5f1;transform:translateY(-2px);
  box-shadow:0 10px 26px rgba(46,32,129,.09)
}
.catalog-tool-icon{
  display:grid;place-items:center;width:39px;height:39px;
  flex:0 0 39px;border-radius:11px;background:#f0ecff;color:#725ce4
}
.catalog-tool-icon img{max-width:30px;max-height:30px;object-fit:contain}
.catalog-tool-icon .catalog-svg,.catalog-tool-icon .icon-vector{
  width:23px;height:23px
}
.catalog-accent-green{background:#e8f6eb;color:#3cac70}
.catalog-accent-blue{background:#ebf0ff;color:#6787d6}
.catalog-accent-violet,.catalog-accent-purple{background:#f0ecff;color:#7563d9}
.catalog-accent-coral,.catalog-accent-amber{background:#fff0eb;color:#ed846a}
.catalog-tool-description{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}
.catalog-tool-description strong{font-size:13px;font-weight:810;line-height:1.4;color:#282b49;overflow-wrap:break-word}
.catalog-tool-description>span{font-size:11px;line-height:1.5;color:#858d9f}
.catalog-link-arrow{display:inline-flex;align-items:center;justify-content:center;flex:0 0 16px;color:#9da0b5}
.catalog-link-arrow .catalog-svg{width:16px;height:16px}

.catalog-departments{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:13px;scroll-margin-top:130px
}
.catalog-department{
  width:100%;min-height:171px;display:flex;align-items:flex-start;
  flex-direction:column;position:relative;gap:10px;overflow:hidden;
  border:1px solid #e4e5ef;border-radius:17px;
  padding:19px 18px 17px;text-align:left;background:#fff;
  box-shadow:0 6px 26px rgba(35,30,87,.045);
  transition:transform .17s,border-color .17s,box-shadow .17s;
  font-family:inherit;cursor:pointer
}
.catalog-department:hover{
  transform:translateY(-3px);border-color:#b4a8ee;
  box-shadow:0 13px 32px rgba(49,33,117,.11)
}
.catalog-department-icon{
  display:grid;place-items:center;width:39px;height:39px;
  flex:0 0 39px;border-radius:12px;background:#f0edff;color:#765edc
}
.catalog-department-icon .catalog-svg{width:22px;height:22px}
.catalog-department-blue .catalog-department-icon{background:#e9efff;color:#5f80dc}
.catalog-department-green .catalog-department-icon{background:#e8f7ee;color:#3fa66f}
.catalog-department-coral .catalog-department-icon{background:#ffede7;color:#ee8062}
.catalog-department-body{display:flex;flex-direction:column;gap:4px;min-width:0}
.catalog-department-body strong{
  color:#2a294c;font-size:15px;font-weight:840;
  line-height:1.33;letter-spacing:-.025em
}
.catalog-department-body>span{font-size:11px;color:#8a90a3;line-height:1.4}
.catalog-department-body small{margin-top:3px;font-size:10px;color:#7061cd;font-weight:780}
.catalog-department-arrow{
  position:absolute;right:16px;top:20px;display:grid;
  place-items:center;color:#aea7c9
}
.catalog-department-arrow .catalog-svg{width:16px;height:16px}

.catalog-department-detail{scroll-margin-top:125px}
.catalog-back-button{
  border:0;background:transparent;color:#6d5bca;
  font:800 12px/1.45 inherit;
  display:inline-flex;align-items:center;gap:8px;
  margin:1px 0 18px;padding:6px 2px;cursor:pointer
}
.catalog-back-button .catalog-svg{width:16px;height:16px;transform:rotate(180deg)}
.catalog-detail-head{
  display:flex;justify-content:space-between;align-items:flex-end;
  gap:16px;margin-bottom:20px
}
.catalog-detail-head h3{
  color:#24243f;font-size:clamp(24px,3vw,32px);
  letter-spacing:-.045em;line-height:1.28;margin:6px 0
}
.catalog-detail-head p{color:#8991a3;font-size:12px;margin:0}
.catalog-detail-count{
  display:inline-flex;padding:7px 12px;border:1px solid #e2ddfa;
  background:#f7f5ff;border-radius:99px;white-space:nowrap;
  color:#6856c1;font-size:11px;font-weight:780
}
.catalog-subgroups{display:grid;gap:10px}
.catalog-subgroup{
  border:1px solid #e3e3ee;border-radius:14px;overflow:hidden;
  background:#fff;box-shadow:0 4px 18px rgba(35,30,87,.035)
}
.catalog-subgroup summary{
  display:flex;align-items:center;gap:9px;cursor:pointer;
  padding:17px 20px;list-style:none;min-height:56px;
  font-size:14px;color:#302f4f;font-weight:840;
  user-select:none
}
.catalog-subgroup summary::-webkit-details-marker{display:none}
.catalog-subgroup summary:hover{background:#faf9ff}
.catalog-subgroup[open] summary{border-bottom:1px solid #efeff6}
.catalog-subgroup-name{flex:1}
.catalog-subgroup-count{
  background:#f0eeff;color:#725fd6;
  padding:4px 9px;border-radius:99px;font-size:11px;font-weight:800
}
.catalog-subgroup-chevron{display:flex;color:#9c97b9}
.catalog-subgroup-chevron .catalog-svg{width:17px;height:17px;transform:rotate(90deg);transition:transform .18s}
.catalog-subgroup[open] .catalog-subgroup-chevron .catalog-svg{transform:rotate(-90deg)}
.catalog-subgroup-tools{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 14px;padding:8px 15px 12px
}
.catalog-tool-row{
  text-decoration:none!important;display:flex;align-items:center;
  gap:11px;min-width:0;min-height:67px;padding:10px 9px;
  border-radius:10px;color:#2b2c46;transition:background .15s
}
.catalog-tool-row:hover{background:#f7f5ff}
.catalog-tool-row .catalog-tool-icon{width:35px;height:35px;flex-basis:35px;border-radius:10px}
.catalog-tool-row .catalog-tool-icon img{max-width:27px;max-height:27px}
.catalog-tool-row .catalog-tool-description strong{font-size:12.5px}
.catalog-tool-row .catalog-tool-description>span{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;font-size:10.5px;line-height:1.45
}

.catalog-search-message{
  padding:11px 0 16px;
  font-size:14px;font-weight:800;color:#393853
}
.catalog-clear-search{
  border:0;background:transparent;color:#6c56cd;
  font-size:12px;font-weight:800;margin-bottom:17px;
  padding:0;cursor:pointer
}
.classic-catalog.catalog-search-only .filter-toolbar,
.classic-catalog.catalog-search-only .feature-banner{display:none!important}
.classic-catalog.catalog-search-only .catalog-clear-search{display:inline-flex}
.classic-catalog.catalog-search-only .tools-grid{margin-top:0}

@media(max-width:1160px){
  .catalog-departments{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:880px){
  .catalog-departments{grid-template-columns:repeat(2,minmax(0,1fr))}
  .catalog-quick-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .catalog-quick-card{padding:12px;gap:7px;min-height:89px}
  .catalog-quick-card .catalog-tool-icon{width:34px;height:34px;flex-basis:34px}
  .catalog-quick-card .catalog-tool-description strong{font-size:11.5px}
  .catalog-quick-card .catalog-link-arrow{display:none}
}
@media(max-width:640px){
  .catalog-layout-switch{padding:12px;margin:9px 0 22px;gap:10px}
  .catalog-layout-intro{width:100%}
  .catalog-layout-options{width:100%}
  .catalog-layout-options button{flex:1;padding:8px 5px;min-width:0;font-size:11px}
  .catalog-quick-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .catalog-quick-card{
    flex-direction:column;justify-content:flex-start;align-items:flex-start;
    min-height:102px;gap:7px;border-radius:13px;padding:11px
  }
  .catalog-quick-card .catalog-tool-icon{width:31px;height:31px;flex-basis:31px;border-radius:9px}
  .catalog-quick-card .catalog-tool-description strong{font-size:11px;line-height:1.35}
  .catalog-departments{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .catalog-department{min-height:158px;padding:14px;gap:9px;border-radius:14px}
  .catalog-department-icon{width:35px;height:35px;flex-basis:35px}
  .catalog-department-body strong{font-size:13px}
  .catalog-department-body>span{font-size:10px}
  .catalog-department-arrow{right:12px;top:15px}
  .catalog-subgroup summary{padding:15px 13px;min-height:54px}
  .catalog-subgroup-tools{grid-template-columns:1fr;padding:5px 8px 8px}
  .catalog-tool-row{min-height:60px;padding:9px 7px}
  .catalog-tool-row .catalog-tool-description strong{font-size:12.5px}
  .catalog-detail-head{align-items:flex-start;flex-direction:column;gap:7px}
  .catalog-quick-heading h3{font-size:23px}
}
@media(max-width:355px){
  .catalog-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .catalog-departments{grid-template-columns:1fr}
  .catalog-department{min-height:135px}
}


/* 16 purposeful departments in a 4×4 desktop matrix.
   Nested tools are CARDS, not expandable accordions or plain rows. */
@media(min-width:1161px){
  .catalog-departments{
    grid-template-columns:repeat(4,minmax(0,1fr));
    grid-auto-rows:minmax(148px,auto);
    gap:12px;
  }
  .catalog-department{
    min-height:148px;
    height:100%;
    padding:16px 17px;
    gap:9px;
  }
  .catalog-department-body strong{font-size:14px;line-height:1.32}
  .catalog-department-body>span{font-size:10.5px;line-height:1.37}
}
.catalog-subgroups{
  display:flex;
  flex-direction:column;
  gap:27px;
}
.catalog-topic{min-width:0}
.catalog-topic-head{
  display:flex;align-items:center;gap:10px;
  margin:0 0 11px;
}
.catalog-topic-head h4{
  flex:1;font-size:14px;font-weight:830;letter-spacing:-.018em;
  line-height:1.45;color:#373655;margin:0
}
.catalog-topic-head>span{
  color:#735dd5;background:#f0edff;
  font-size:11px;font-weight:800;border-radius:99px;
  padding:4px 9px;
}
.catalog-tool-tiles{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:13px;
}
.catalog-tool-tile{
  position:relative;
  display:flex;flex-direction:column;align-items:flex-start;
  gap:11px;min-width:0;min-height:161px;
  padding:17px 18px 18px;
  color:#2a2b47;text-decoration:none!important;
  border:1px solid #e3e4ef;border-radius:15px;
  background:#fff;
  box-shadow:0 5px 22px rgba(35,30,88,.043);
  transition:border-color .17s,box-shadow .17s,transform .17s;
}
.catalog-tool-tile:hover{
  border-color:#b3a9eb;
  box-shadow:0 10px 30px rgba(41,32,117,.11);
  transform:translateY(-2px);
}
.catalog-tool-tile:focus-visible{
  outline:3px solid #b1a4f2;outline-offset:2px
}
.catalog-tool-tile .catalog-tool-icon{
  flex:0 0 38px;width:38px;height:38px;border-radius:11px;
}
.catalog-tool-tile .catalog-tool-icon img{
  width:26px;height:26px;max-width:28px;max-height:28px;
  object-fit:contain
}
.catalog-tool-tile .catalog-tool-description{
  display:flex;flex:1;flex-direction:column;gap:5px;
  width:100%;padding-right:11px
}
.catalog-tool-tile .catalog-tool-description strong{
  color:#2a2b48;font-size:13px;font-weight:800;line-height:1.39;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;
  overflow:hidden;overflow-wrap:anywhere
}
.catalog-tool-tile .catalog-tool-description>span{
  color:#8790a1;font-size:11px;line-height:1.47;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;
  overflow:hidden;overflow-wrap:anywhere
}
.catalog-tool-tile .catalog-link-arrow{
  position:absolute;top:20px;right:17px;
  color:#aba6c2;
}
@media(max-width:1160px){
  .catalog-tool-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:880px){
  .catalog-tool-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
}
@media(max-width:640px){
  .catalog-subgroups{gap:21px}
  .catalog-topic-head{margin:0 0 9px}
  .catalog-topic-head h4{font-size:13px}
  .catalog-tool-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .catalog-tool-tile{
    min-height:150px;padding:12px 12px 13px;gap:8px;
    border-radius:13px;
  }
  .catalog-tool-tile .catalog-tool-icon{
    flex:0 0 32px;width:32px;height:32px;border-radius:9px
  }
  .catalog-tool-tile .catalog-tool-icon img{width:23px;height:23px}
  .catalog-tool-tile .catalog-tool-description{gap:4px;padding-right:0}
  .catalog-tool-tile .catalog-tool-description strong{
    font-size:11.7px;line-height:1.35;
    -webkit-line-clamp:3
  }
  .catalog-tool-tile .catalog-tool-description>span{
    font-size:10px;line-height:1.38;-webkit-line-clamp:2
  }
  .catalog-tool-tile .catalog-link-arrow{
    top:14px;right:11px
  }
}
@media(max-width:355px){
  .catalog-tool-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .catalog-tool-tile{min-height:164px;padding:10px}
}
