  :root{
    --brand:#00bdff;
    --brand-dark:#0090c7;
    --ink:#00152b;
    --ink-soft:#5b6472;
    --muted:#4f5a68;
    --line:#e6e6e6;
    --line-soft:#efefef;
    --bg-card:#efefef;
    --bg-page:#f4f6f8;
    --paper:#f5f5f5;
    --white:#fff;
    --radius:12px;
    --radius-sm:8px;
    --dark-blue--700:#16294f;
    --navy:#00152B;
    --colortext:#5D5C5C;
    --btn-blue:#0077a8;
    --btn-blue-dark:#005f87;
    --tint:rgb(227,242,253);
    --tint-text:rgb(0,110,165);
    --shadow-sm:0 1px 2px rgba(20,24,33,.05);
    --shadow-md:0 12px 28px rgba(20,24,33,.10);
    --focus-ring:0 0 0 3px rgba(0,189,255,.35);
    --ease:cubic-bezier(.22,.61,.36,1);
    --btn-dur:.2s;
    --font:'Noto Sans',sans-serif;
    --fs-sm:13px;
  }
  *{box-sizing:border-box;}
  body,button,input,select,textarea{font-family:var(--font);}
  body{
    margin:0;color:var(--ink);background:var(--bg-page);
    -webkit-font-smoothing:antialiased;line-height:1.5;
  }
  a{color:inherit;text-decoration:none;}
  :focus-visible{outline:none;box-shadow:var(--focus-ring);}
  img{max-width:100%;display:block;}

  header.topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 40px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:16px;background:var(--white);}
  .logo{font-weight:800;font-size:22px;letter-spacing:.5px;color:var(--brand);}
  nav.mainnav{display:flex;gap:28px;font-size:14px;font-weight:600;color:var(--ink);}
  .topbar-right{display:flex;align-items:center;gap:16px;}
  .search-box{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:8px 14px;min-width:220px;color:var(--ink-soft);font-size:13px;}
  .search-box svg{flex:none;}

  .crumb{padding:16px 40px 0;font-size:13px;color:var(--ink-soft);max-width:1400px;margin:0 auto;box-sizing:border-box;line-height:1.5;}
  .crumb b{color:var(--ink);}
  .crumb .crumb-active{color:var(--brand-dark);font-weight:700;}

  .layout{
    display:flex;gap:50px;padding:24px 40px 60px;align-items:flex-start;
    max-width:1400px;margin:auto;
    transition:gap .32s ease;
  }
  .filters-rail{
    width:300px;flex:none;
    position:sticky;top:24px;max-height:calc(100vh - 48px);
    overflow-x:hidden;overflow-y:auto;align-self:flex-start;
    opacity:1;transform:translateX(0);
    transition:width .32s ease,max-width .32s ease,opacity .28s ease,transform .32s ease;
  }
  .category-heading{margin:0 0 28px;padding:0;}
  .category-heading h1{
    font-size:32px;font-weight:800;color:var(--dark-blue--700);
    margin:0 0 4px;letter-spacing:-.2px;line-height:1.15;
  }
  .category-heading .count{font-size:13px;color:var(--ink-soft);}
  .category-heading .lead{
    margin:8px 0 0;font-size:13px;font-weight:500;color:var(--muted);line-height:1.4;
  }
  aside.filters{
    /* drawer mobile: oculto en desktop */
    display:none;
  }
  .filters-desktop-only{display:block;}
  .filters-desktop-heading{
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    margin:0 0 8px;padding-bottom:18px;border-bottom:1px solid var(--line);
  }
  .filters-desktop-title{font-size:16px;font-weight:600;color:var(--ink);}
  .filters-collapse-btn{
    display:inline-flex;align-items:center;justify-content:center;
    padding:0;border:none;background:transparent;color:var(--ink-soft);cursor:pointer;
    transition:color .12s;
  }
  .filters-collapse-btn:hover{color:var(--navy);}
  .filters-collapse-btn svg{display:block;}
  .filters-expand-btn{
    display:none;align-items:center;gap:8px;
    border:1px solid var(--line);background:var(--white);
    border-radius:var(--radius-sm);padding:9px 16px;font-size:13px;font-weight:600;color:var(--ink);
    cursor:pointer;font-family:inherit;transition:border-color .12s,background .12s;flex:none;
  }
  .filters-expand-btn:hover{border-color:#c3cad6;background:var(--bg-card);}
  .count-row-left{display:flex;align-items:center;gap:12px;min-width:0;flex-wrap:wrap;}
  main.results{flex:1;min-width:0;}
  .results-search{margin-bottom:18px;}
  .results-search .filters-toggle{display:none;}

  @media (min-width:901px){
    .layout.filters-collapsed{gap:0;}
    .layout.filters-collapsed .filters-rail{
      width:0;max-width:0;opacity:0;transform:translateX(-28px);
      pointer-events:none;overflow:hidden;
    }
    .layout.filters-collapsed .filters-expand-btn{display:inline-flex;}
    .layout.filters-collapsed .grid{grid-template-columns:repeat(4,1fr);}
    .layout.filters-collapsed .grid.list{grid-template-columns:1fr;}
  }
  @media (min-width:901px) and (max-width:1200px){
    .layout{gap:32px;}
    .filters-rail{width:260px;}
    .layout.filters-collapsed .grid{grid-template-columns:repeat(3,1fr);}
    .layout.filters-collapsed .grid.list{grid-template-columns:1fr;}
    .grid{grid-template-columns:repeat(2,1fr);}
  }

  /* Notebook / desktop chico: 3 tags de tipo en una sola fila */
  @media (min-width:901px) and (max-width:1400px){
    .type-tabs{
      flex-wrap:nowrap;
      gap:4px;
    }
    .type-tab{
      flex:1 1 0;
      min-width:0;
      padding:6px 4px;
      font-size:10.5px;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }
  }

  .mobile-category-heading{display:none;}



  .facet-group{border-bottom:1px solid var(--line);padding:14px 0;}
  .facet-group:first-child{padding-top:6px;}
  .facet-group:last-child{border-bottom:none;}
  .facet-title{
    display:flex;align-items:center;justify-content:space-between;cursor:pointer;
    font-weight:600;font-size:14px;
    color:var(--navy);transition:opacity .12s;
  }
  .facet-title:hover{opacity:.72;}
  .facet-title .chev{transition:transform .15s;color:var(--ink-soft);font-size:12px;}
  .facet-group.collapsed .facet-title .chev{transform:rotate(180deg);}
  .ft-label{display:flex;align-items:center;gap:9px;}
  .ft-label svg{flex:none;color:var(--navy);}
  .facet-body{margin-top:14px;display:flex;flex-direction:column;gap:12px;}
  .facet-group.collapsed .facet-body{display:none;}
  .facet-row{display:flex;align-items:center;gap:10px;font-size:14px;cursor:pointer;user-select:none;color:var(--colortext);border-radius:6px;margin:0 -6px;padding:4px 6px;transition:background .12s,color .12s;min-width:0;}
  .facet-row:hover{background:var(--tint);color:var(--tint-text);}
  .facet-row.active{color:var(--brand-dark);font-weight:700;}
  .cb-wrap{position:relative;width:18px;height:18px;flex:none;display:inline-block;}
  .cb-wrap input{position:absolute;inset:0;opacity:0;margin:0;width:100%;height:100%;cursor:pointer;}
  .cb-wrap .box{position:absolute;inset:0;border:1.5px solid #d5d9e0;border-radius:5px;background:#fff;display:flex;align-items:center;justify-content:center;pointer-events:none;transition:background .12s,border-color .12s;}
  .cb-wrap .box svg{width:11px;height:11px;opacity:0;transition:opacity .1s;}
  .cb-wrap input:checked + .box{background:var(--navy);border-color:var(--navy);}
  .cb-wrap input:checked + .box svg{opacity:1;}
  .facet-label{flex:1;min-width:0;overflow-wrap:break-word;word-break:break-word;}
  .facet-row .count{flex:none;margin-left:8px;color:var(--ink-soft);font-size:12px;}

  .search-bar{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:12px 16px;background:var(--white);margin-bottom:0;transition:border-color .15s,box-shadow .15s;}
  .search-bar:focus-within{border-color:var(--brand);box-shadow:var(--focus-ring);}
  .search-bar:focus-within svg{color:var(--brand-dark);}
  .search-bar svg{flex:none;color:var(--ink-soft);}
  .search-bar input{border:none;outline:none;flex:1;font-size:14px;font-family:inherit;color:var(--ink);background:transparent;}
  .search-bar input::placeholder{color:var(--ink-soft);}

  .toolbar-top{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:18px;}
  .toolbar-top:empty{display:none;margin-bottom:0;}
  .toolbar-top .label{font-size:13px;color:var(--ink-soft);font-weight:600;}
  .chip{display:flex;align-items:center;gap:8px;background:#e6f8ff;color:var(--brand-dark);border-radius:20px;padding:6px 12px;font-size:13px;font-weight:600;}
  .chip button{border:none;background:none;color:var(--brand-dark);cursor:pointer;font-size:14px;line-height:1;font-family:inherit;}
  .clear-btn{margin-left:auto;border:1px solid var(--line);background:var(--white);border-radius:var(--radius-sm);padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;color:var(--ink);transition:border-color var(--btn-dur) var(--ease),color var(--btn-dur) var(--ease);}
  .clear-btn:hover{border-color:var(--tint-text);color:var(--tint-text);}

  .count-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:10px;}
  .count-row .showing{font-size:14px;color:var(--ink-soft);}
  .toolbar-right{display:flex;align-items:center;gap:10px;}
  select.sort{border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 12px;font-size:13px;background:var(--white);cursor:pointer;font-family:inherit;color:var(--ink);}
  .view-toggle{display:flex;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:var(--white);}
  .view-toggle button{border:none;background:var(--white);padding:8px 10px;cursor:pointer;font-size:15px;color:var(--ink-soft);font-family:inherit;transition:background var(--btn-dur) var(--ease),color var(--btn-dur) var(--ease);}
  .view-toggle button.active{background:var(--brand);color:#fff;}

  /* Botón "Filtros" mobile drawer */
  .filters-toggle{
    display:none;align-items:center;gap:8px;border:1px solid var(--line);background:var(--white);
    border-radius:var(--radius-sm);padding:9px 16px;font-size:13px;font-weight:600;color:var(--ink);
    cursor:pointer;font-family:inherit;transition:border-color var(--btn-dur) var(--ease),background var(--btn-dur) var(--ease);
  }
  .filters-toggle:hover{border-color:#c3cad6;background:var(--bg-card);}
  .filters-backdrop{display:none;position:fixed;inset:0;background:rgba(10,14,25,.45);z-index:10040;}
  .filters-backdrop.open{display:block;}
  .filters-mobile-header,.filters-mobile-footer,.filters-mobile-nav{display:none;}

  .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .card-skel{pointer-events:none;}
  .card-skel:hover{transform:none;box-shadow:2px 3px 20px 2px rgba(0,17,33,.04);}
  .card-skel .card-body{
    display:flex;flex-direction:column;gap:0;padding:.85rem .15rem .15rem;flex:1;min-width:0;
  }
  .card-skel .card-info{display:flex;flex-direction:column;justify-content:center;gap:0;min-width:0;flex:1;}
  .card-skel .skel-title{margin:0;padding-bottom:24px;}
  .skel-tabs{display:flex;flex-wrap:wrap;gap:8px;}
  .skel{
    display:block;border-radius:8px;
    background:#eee;
    background-image:linear-gradient(90deg,#eee 0%,#f5f5f5 40%,#eee 80%);
    background-size:200% 100%;
    animation:skel-shimmer 1.15s ease-in-out infinite;
  }
  .skel-media{
    position:absolute;inset:0;border-radius:.75rem;width:auto;height:auto;
  }
  .skel-title{height:18px;width:72%;border-radius:6px;}
  .skel-tab{height:32px;width:78px;border-radius:8px;flex:none;}
  .skel-tabs .skel-tab:nth-child(2){width:92px;}
  .skel-tabs .skel-tab:nth-child(3){width:70px;}
  .skel-btn{height:40px;width:100%;border-radius:10px;margin-top:auto;flex:none;}
  @keyframes skel-shimmer{
    0%{background-position:100% 0;}
    100%{background-position:-100% 0;}
  }
  @media (prefers-reduced-motion:reduce){
    .skel{animation:none;background:#eee;background-image:none;}
  }
  .grid.list .card-skel .card-body{padding:0;}
  .grid.list .card-skel .skel-title{height:22px;width:min(280px,70%);padding-bottom:24px;}
  .grid.list .skel-tab{height:30px;}
  .grid.list .skel-btn{
    width:148px;min-width:148px;max-width:148px;height:40px;
    margin-top:auto;flex:none;align-self:flex-start;padding:0;
  }
  .grid.list{grid-template-columns:1fr;}
  .grid.list .card{
    display:grid;
    grid-template-columns:144px 1fr;
    grid-template-rows:auto;
    column-gap:16px;
    row-gap:0;
    align-items:start;
    padding:1.1rem 2rem 1.1rem .9rem;
  }
  .grid.list .card .media{
    grid-column:1;grid-row:1;
    width:144px;height:144px;min-width:144px;min-height:144px;max-width:144px;max-height:144px;
    aspect-ratio:1/1;
  }
  .grid.list .card .media img{width:76%;height:76%;}
  .grid.list .card-catalogo .media img{width:96%;height:96%;}
  .grid.list .card .media .file-icon svg{width:28px;height:28px;}
  .grid.list .badge-nuevo{top:4px;right:4px;padding:2px 6px;font-size:9px;}
  .grid.list .card .card-body{
    grid-column:2;grid-row:1;
    flex-direction:column;align-items:flex-start;justify-content:flex-start;
    min-height:144px;padding:0;gap:0;
  }
  .grid.list .card-info{
    flex:1;min-width:0;width:100%;max-width:34rem;
    display:flex;flex-direction:column;justify-content:center;min-height:0;
  }
  .grid.list .card-title{margin:0;padding-bottom:24px;}
  .grid.list .card-catalogo .card-title{padding-bottom:8px;}
  .card-desc{display:none;margin:0;padding:0;}
  .grid.list .card-catalogo .card-desc{
    display:block;
    overflow:visible;
    margin:0;
    padding-bottom:24px;
    font-size:13px;
    line-height:1.4;
    font-weight:400;
    color:var(--ink-soft);
  }
  .grid.list .type-tabs{
    display:flex;flex-direction:row;flex-wrap:wrap;
    align-items:center;gap:6px;margin:0;
  }
  .grid.list .btn-download{
    width:auto;margin-top:auto;flex:none;align-self:flex-start;
  }

  .card{
    border:solid 1px #f1f1f1;border-radius:1rem;overflow:hidden;
    display:flex;flex-direction:column;background:var(--white);
    box-shadow:2px 3px 20px 2px rgba(0,17,33,.04);
    padding:.8rem;
    transition:transform .2s ease,box-shadow .18s ease;
  }
  .card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);}
  .card .media{
    position:relative;aspect-ratio:1/1;
    border-radius:.75rem;background:#f5f5f5;
    display:flex;align-items:center;justify-content:center;overflow:hidden;
    margin:0;max-height:none;
    transition:background-color .25s ease;
  }
  .card:hover .media{background:#e6f8ff;}
  .card .media img{
    width:62%;height:62%;object-fit:contain;box-sizing:border-box;padding:0;
    transition:transform .25s ease;
  }
  .card:hover .media img{transform:scale(1.06);}
  .card-catalogo .media img{width:84%;height:84%;}
  .card .media .file-icon{color:#b9c0c9;display:flex;align-items:center;justify-content:center;}
  .card .media .file-icon svg{width:38px;height:38px;}
  .badge-nuevo{position:absolute;top:.7rem;right:.7rem;background:#ffe8ad;color:#7a5b06;border-radius:6px;padding:4px 9px;font-size:11px;font-weight:700;z-index:2;}

  .card-body{padding:.85rem .15rem .15rem;display:flex;flex-direction:column;flex:1;min-width:0;}
  .tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;}
  .tag{background:#eef1f4;color:var(--ink-soft);font-size:10.5px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;padding:4px 9px;border-radius:6px;}

  .type-label{font-size:10px;font-weight:500;letter-spacing:.4px;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px;}
  .card-info{display:flex;flex-direction:column;flex:1;min-width:0;justify-content:center;}
  .type-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0;}
  .type-tab{border:1.5px solid var(--line);background:var(--white);color:var(--ink-soft);font-size:12px;font-weight:600;
    padding:7px 12px;border-radius:8px;cursor:pointer;transition:all .12s var(--ease);font-family:inherit;}
  .type-tab:hover{border-color:#c7ccd4;}
  .type-tab.active{background:#e6f8ff;border-color:var(--brand);color:var(--brand-dark);font-weight:700;}

  .card-title{
    font-family:var(--font);
    font-size:1.1rem;font-weight:600;line-height:1.35;letter-spacing:0;
    color:#00152b;margin:0;padding-bottom:24px;
  }
  .btn-download{
    margin-top:auto;background:var(--btn-blue);color:#fff;text-align:center;padding:11px;border-radius:var(--radius-sm);
    font-size:13px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;
    border:none;font-family:inherit;text-decoration:none;
    transition:background var(--btn-dur) var(--ease),transform var(--btn-dur) var(--ease);
  }
  .btn-download:hover{background:var(--btn-blue-dark);}

  .pagination{display:flex;justify-content:center;gap:8px;margin-top:32px;align-items:center;}
  .pagination-dots{color:var(--ink-soft);font-size:13px;padding:0 4px;}
  .pagination button{border:1px solid var(--line);background:var(--white);border-radius:var(--radius-sm);padding:8px 14px;cursor:pointer;font-size:13px;font-weight:600;font-family:inherit;color:var(--ink);transition:background var(--btn-dur) var(--ease),border-color var(--btn-dur) var(--ease),color var(--btn-dur) var(--ease);}
  .pagination button.active{background:var(--brand);color:#fff;border-color:var(--brand);}
  .pagination button:disabled{opacity:.4;cursor:not-allowed;}

  .state-msg{padding:64px 20px;text-align:center;color:var(--ink-soft);font-size:14px;grid-column:1/-1;}

  footer.site{background:var(--navy);color:#c7ccd4;margin-top:56px;padding:52px 40px 24px;text-align:center;font-size:12px;font-family:var(--font);}

  @media (max-width:900px){
    .layout{flex-direction:column;gap:20px;padding:16px 16px 40px;}
    .filters-rail{
      width:100%;max-width:none;
      position:static;max-height:none;
      overflow:visible;
      order:-1;
      /* sin transform: si no, position:fixed del drawer queda atrapado acá */
      transform:none !important;
      opacity:1 !important;
      pointer-events:auto !important;
    }
    .category-heading{margin:0 0 12px;}
    .category-heading h1{font-size:28px;}
    .category-heading .lead{
      display:block;
      margin:6px 0 0;
      font-size:13px;
      line-height:1.4;
    }
    aside.filters .filters-desktop-heading{display:none !important;}
    .filters-expand-btn{display:none !important;}
    .filters-desktop-only{display:none !important;}
    main.results{width:100%;min-width:0;}
    .results-search{
      display:flex;
      align-items:stretch;
      gap:10px;
      margin-bottom:14px;
    }
    .results-search .search-bar{
      flex:1 1 auto;
      min-width:0;
      margin:0;
    }
    .results-search .filters-toggle{
      display:inline-flex;
      flex:none;
      align-items:center;
      justify-content:center;
      gap:8px;
      align-self:stretch;
      padding:0 14px;
      min-height:48px;
      white-space:nowrap;
    }
    .grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:12px;}
    .grid.list{grid-template-columns:1fr !important;}
    .card{min-width:0;}
    .card .media{min-height:0;}
    .card-title{font-size:.95rem;margin:0;padding-bottom:20px;}
    .type-tabs{gap:6px;margin:0;}
    .type-tab{padding:6px 10px;font-size:11.5px;}
    .btn-download{font-size:12.5px;padding:10px;}

    .count-row{gap:12px;align-items:center;}
    .count-row-left{min-width:0;}
    .toolbar-right{margin-left:auto;}

    aside.filters{
      display:flex;
      position:fixed;left:0;right:0;bottom:0;top:auto;
      width:auto;max-width:none;
      height:min(78vh,720px);max-height:min(78vh,720px);
      height:min(78dvh,720px);max-height:min(78dvh,720px);
      background:#fff;border-radius:18px 18px 0 0;
      box-shadow:0 -10px 34px rgba(10,14,25,.22);
      transform:translateY(100%);
      opacity:1;
      transition:transform .28s ease;
      z-index:10045;
      padding:0 20px max(12px,env(safe-area-inset-bottom,0px));
      flex-direction:column;
      overflow:hidden;
      pointer-events:auto;
      margin:0;
    }
    aside.filters.open{transform:translateY(0);}
    .layout.filters-collapsed .filters-rail{
      width:100%;max-width:none;opacity:1;transform:none !important;
      pointer-events:auto;overflow:visible;
    }

    .filters-mobile-header{
      display:flex;align-items:center;justify-content:space-between;
      padding:18px 0 14px;flex:none;
      background:#fff;
      font-size:17px;font-weight:800;color:var(--ink);z-index:2;
    }
    .filters-close{
      border:none;background:var(--bg-card);width:36px;height:36px;border-radius:50%;
      font-size:18px;line-height:1;color:var(--ink-soft);cursor:pointer;
      display:inline-flex;align-items:center;justify-content:center;
      font-family:inherit;
    }

    .filters-mobile-nav{
      display:block;flex:1 1 auto;min-height:0;
      overflow:hidden;position:relative;
    }
    .fmn-screen{
      position:absolute;inset:0;overflow-y:auto;display:none;
      -webkit-overflow-scrolling:touch;
      overscroll-behavior:contain;
    }
    .fmn-screen.active{display:block;}

    .fmn-row{
      display:flex;align-items:center;justify-content:space-between;gap:12px;
      padding:15px 4px;border-bottom:1px solid var(--line);cursor:pointer;
      font-size:14px;font-weight:600;color:var(--ink);
    }
    .fmn-row-meta{display:flex;align-items:center;gap:8px;font-weight:400;color:var(--ink-soft);font-size:13px;min-width:0;}
    .fmn-row-meta span:first-child{max-width:min(160px,42vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

    .fmn-detail-header{
      padding:14px 0;border-bottom:1px solid var(--line);
      position:sticky;top:0;background:#fff;z-index:1;
    }
    .fmn-back{
      display:flex;align-items:center;gap:10px;border:none;background:none;cursor:pointer;
      padding:0;font-size:16px;font-weight:800;color:var(--ink);min-width:0;font-family:inherit;
    }
    .fmn-back-icon{
      width:26px;height:26px;border-radius:50%;background:var(--bg-card);
      display:flex;align-items:center;justify-content:center;
      font-size:17px;line-height:1;color:var(--ink);flex:none;
    }
    .fmn-detail-title{font-size:16px;font-weight:800;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
    .fmn-detail-body{padding:6px 0 20px;}

    .mobile-category-heading.active{display:block;padding:6px 0 0;margin:0 0 8px;}
    .mobile-category-heading h1{font-size:20px;font-weight:800;color:var(--dark-blue--700);margin:0 0 4px;letter-spacing:-.2px;}
    .mobile-category-heading .count{font-size:13px;color:var(--ink-soft);}

    .fmn-option-row{display:flex;align-items:center;gap:12px;padding:12px 4px;font-size:14px;color:var(--colortext);cursor:pointer;}
    .fmn-option-row.active{color:var(--ink);font-weight:600;}
    .fmn-option-row.disabled{opacity:.4;pointer-events:none;}
    .fmn-count{margin-left:auto;color:var(--ink-soft);font-size:12px;font-weight:400;}

    .fmn-radio{width:20px;height:20px;border-radius:50%;border:1.5px solid #d5d9e0;flex:none;display:flex;align-items:center;justify-content:center;}
    .fmn-option-row.active .fmn-radio{border-color:var(--navy);}
    .fmn-option-row.active .fmn-radio::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--navy);}

    .fmn-checkbox{width:20px;height:20px;border:1.5px solid #d5d9e0;border-radius:5px;flex:none;display:flex;align-items:center;justify-content:center;background:#fff;}
    .fmn-checkbox svg{width:11px;height:11px;}
    .fmn-option-row.active .fmn-checkbox{background:var(--navy);border-color:var(--navy);}

    .filters-mobile-footer{
      display:block;flex:none;
      background:#fff;padding:14px 0 max(14px,env(safe-area-inset-bottom,0px));
      border-top:1px solid var(--line);
    }
    .filters-apply{width:100%;background:var(--navy);color:#fff;border:none;border-radius:var(--radius-sm);padding:14px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;}

    select.sort{display:none;}
    .showing-full{display:none;}
    .btn-download .btn-icon{display:none;}

    .ai-launch{
      bottom:max(16px,env(safe-area-inset-bottom,0px));
    }
  }
  @media (max-width:680px){
    header.topbar{padding:14px 20px;}
    nav.mainnav{display:none;}
    .search-box{display:none;}
    .crumb{padding:12px 16px 0;}
    .category-heading h1{font-size:20px;}
    .layout{padding:14px 12px max(72px, calc(40px + env(safe-area-inset-bottom,0px)));gap:16px;}
    .results-search{gap:8px;}
    .results-search .filters-toggle{
      padding:0 12px;
      font-size:12.5px;
      min-height:46px;
    }
    .grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:10px;}
    .grid.list{grid-template-columns:1fr !important;}
    .grid.list .card{grid-template-columns:72px 1fr;grid-template-rows:auto;column-gap:12px;row-gap:0;padding:.55rem;}
    .grid.list .card .media{width:72px;height:72px;min-width:72px;min-height:72px;max-height:72px;}
    .grid.list .card .card-body{padding:0;gap:6px;}
    .grid.list .card-title{margin:0;padding-bottom:16px;font-size:.92rem;}
    .card-title{font-size:.88rem;margin:0;padding-bottom:16px;line-height:1.3;}
    .type-tab{font-size:10.5px;padding:5px 8px;}
    .btn-download{font-size:11.5px;padding:9px 8px;}
    .grid.list .btn-download{width:auto;align-self:flex-start;margin-top:auto;padding:9px 16px;}
    .grid.list .skel-btn{width:120px;min-width:120px;max-width:120px;height:36px;padding:0;}
    .pagination{flex-wrap:wrap;row-gap:8px;}
    .pagination button{padding:8px 12px;min-height:40px;}
    footer.site{padding:36px 20px 20px;}
  }
  @media (max-width:380px){
    .results-search .filters-toggle{
      padding:0;
      width:46px;
      min-width:46px;
      font-size:0;
      gap:0;
    }
    .results-search .filters-toggle svg{margin:0;}
    .grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:8px;}
    .view-toggle{display:none;}
  }

  /* ---- Asistente (mismo widget que el home/catálogo) ---- */
  body.assistant-open{overflow:hidden;}
  body.assistant-open .ai-launch{
    visibility:hidden;
    pointer-events:none;
  }
  .ai-launch{
    position:fixed;
    right:max(16px,env(safe-area-inset-right,0px));
    left:auto;
    bottom:max(20px,env(safe-area-inset-bottom,0px));
    z-index:10050;
    display:inline-flex;align-items:center;justify-content:center;gap:10px;
    width:auto;height:48px;padding:8px 18px 8px 14px;border:none;border-radius:999px;
    background:#00152B !important;color:#fff !important;
    font-family:var(--font);
    font-size:15px !important;font-weight:600 !important;cursor:pointer;
    box-shadow:0 12px 32px rgba(0,21,43,.28);
    transition:transform var(--btn-dur) var(--ease),background var(--btn-dur) var(--ease),box-shadow var(--btn-dur) var(--ease),visibility .2s;
    -webkit-font-smoothing:antialiased;
  }
  .ai-launch:hover{
    background:#021c38 !important;
    color:#fff !important;
    transform:translateY(-2px);
    box-shadow:0 16px 36px rgba(0,21,43,.34);
  }
  .ai-launch svg,
  .ai-launch img,
  .ai-launch-icon{
    flex:none;width:18px;height:18px;object-fit:contain;display:block;pointer-events:none;
    color:#fff;stroke:#fff;fill:none;
  }
  .ai-launch svg .ai-icon-spark,
  .ai-avatar svg .ai-icon-spark{
    fill:#fff !important;
    stroke:none !important;
  }
  .ai-launch > span:not(.ai-launch-dot){
    color:#fff !important;
    font-size:15px !important;
    font-weight:600 !important;
    line-height:1.2 !important;
    opacity:1 !important;
    visibility:visible !important;
  }
  .ai-launch-dot{
    display:block !important;
    position:static !important;
    width:8px !important;
    height:8px !important;
    flex:none;
    border-radius:50%;
    background:#00bdff !important;
    border:none !important;
    box-shadow:0 0 0 3px rgba(0,189,255,.25) !important;
    color:transparent !important;
    font-size:0 !important;
    line-height:0 !important;
  }
  .ai-backdrop{
    position:fixed;inset:0;z-index:10060;
    background:rgba(6,12,22,.35);
    opacity:0;pointer-events:none;transition:opacity .25s;
  }
  .ai-backdrop.is-open{opacity:1;pointer-events:auto;}
  .ai-panel{
    position:fixed;top:0;right:0;z-index:10070;
    width:min(400px,100%);height:100%;
    background:var(--white);
    border-left:1px solid var(--line);
    display:flex;flex-direction:column;
    font-family:var(--font);
    color:var(--ink);
    font-weight:400;
    transform:translateX(105%);
    transition:transform .3s var(--ease);
    box-shadow:-16px 0 48px rgba(0,21,43,.12);
    -webkit-font-smoothing:antialiased;
  }
  .ai-panel.is-open{transform:none;}
  .ai-panel *{font-family:inherit;}
  .ai-panel a{font-weight:inherit;text-decoration:none;}
  .ai-head{
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:26px 18px 16px;border-bottom:1px solid var(--line-soft);
    background:#fff !important;
  }
  .ai-head-main{
    display:flex;align-items:center;gap:14px;min-width:0;
  }
  .ai-avatar{
    position:relative;flex:none;
    width:52px;height:52px;border-radius:50%;
    background:#00152B;
    color:#fff;
    display:grid;place-items:center;
    box-shadow:0 8px 20px rgba(0,21,43,.22);
  }
  .ai-avatar svg,
  .ai-avatar img,
  .ai-avatar-icon{
    display:block;width:22px;height:22px;object-fit:contain;color:#fff;stroke:#fff;
  }
  .ai-avatar-online{
    position:absolute;right:2px;bottom:2px;
    width:12px;height:12px;border-radius:50%;
    background:#22c55e;border:2px solid #fff;
    box-shadow:0 0 0 1px rgba(34,197,94,.25);
  }
  .ai-head-copy{min-width:0;}
  .ai-head-copy h2{
    margin:0 0 4px;font-size:18px !important;font-weight:800 !important;
    color:var(--navy) !important;letter-spacing:-.2px;line-height:1.15 !important;
  }
  .ai-head-sub{
    margin:0;font-size:14px !important;color:var(--muted) !important;line-height:1.35 !important;
  }
  .ai-proto{display:none !important;}
  .ai-close{
    width:36px;height:36px;border:none;border-radius:var(--radius-sm);
    background:transparent;color:var(--muted) !important;cursor:pointer;
    display:grid;place-items:center;flex:none;
    transition:background var(--btn-dur) var(--ease),color var(--btn-dur) var(--ease);
  }
  .ai-close:hover{background:var(--bg-card);color:var(--navy) !important;}
  .ai-close svg{color:currentColor;stroke:currentColor;}
  .ai-messages{
    flex:1;overflow-y:auto;overflow-x:hidden;padding:18px 20px;
    display:flex;flex-direction:column;gap:14px;
  }
  .ai-msg{min-width:0;max-width:92%;font-size:13.5px;line-height:1.5;overflow-wrap:anywhere;word-break:break-word;}
  .ai-msg.bot{align-self:flex-start;}
  .ai-msg.user{align-self:flex-end;}
  .ai-bubble{padding:12px 14px;border-radius:12px;overflow-wrap:anywhere;word-break:break-word;overflow-x:hidden;max-width:100%;}
  .ai-msg.bot .ai-bubble{background:var(--paper);color:var(--ink);border-radius:4px 12px 12px 12px;}
  .ai-msg.user .ai-bubble{background:var(--navy);color:#fff;border-radius:12px 12px 4px 12px;}
  .ai-msg a{color:var(--btn-blue);font-weight:600;text-decoration:underline;overflow-wrap:anywhere;word-break:break-word;}
  .ai-msg.user a{color:#9fe0ff;}
  .ai-typing{
    display:none;align-self:flex-start;gap:4px;padding:12px 14px;
    background:var(--paper);border-radius:4px 12px 12px 12px;
  }
  .ai-typing.is-on{display:flex;}
  .ai-typing span{
    width:6px;height:6px;border-radius:50%;background:#b0b8c4;
    animation:aiDot 1s infinite ease-in-out;
  }
  .ai-typing span:nth-child(2){animation-delay:.15s;}
  .ai-typing span:nth-child(3){animation-delay:.3s;}
  @keyframes aiDot{
    0%,80%,100%{transform:translateY(0);opacity:.4}
    40%{transform:translateY(-3px);opacity:1}
  }
  .ai-suggestions{display:flex;flex-wrap:wrap;gap:8px;padding:0 20px 12px;}
  .ai-chip{
    border:1px solid var(--line);background:var(--white);
    border-radius:var(--radius-sm);padding:8px 12px;
    font-family:var(--font);
    font-size:12px;font-weight:500;color:var(--ink);cursor:pointer;
    transition:background var(--btn-dur) var(--ease),border-color var(--btn-dur) var(--ease),color var(--btn-dur) var(--ease);
  }
  .ai-chip:hover{border-color:var(--tint-text);background:var(--tint);color:var(--tint-text);}
  .ai-form{
    display:flex;gap:8px;padding:14px 16px 18px;
    border-top:1px solid var(--line-soft);background:var(--white);
  }
  .ai-form input{
    flex:1;min-width:0;border:1px solid var(--line);border-radius:var(--radius-sm);
    padding:12px 14px;font-size:13.5px;font-family:inherit;color:var(--ink);
  }
  .ai-form input:focus{outline:none;border-color:var(--brand);box-shadow:var(--focus-ring);}
  .ai-send{
    width:44px;height:44px;border:none;border-radius:var(--radius-sm);
    background:var(--btn-blue);color:#fff;cursor:pointer;display:grid;place-items:center;flex:none;
    transition:background var(--btn-dur) var(--ease);
  }
  .ai-send:hover{background:var(--btn-blue-dark);}
  .ai-send:disabled{opacity:.45;cursor:not-allowed;}
  @keyframes ml-fade-up{
    from{opacity:0;transform:translateY(22px);}
    to{opacity:1;transform:none;}
  }
  @media (prefers-reduced-motion:no-preference){
    .ai-launch{animation:ml-fade-up .55s var(--ease) .55s both;}
  }
  @media (prefers-reduced-motion:reduce){
    .ai-launch{animation:none !important;}
  }
  @media (max-width:640px){
    .ai-launch{
      width:auto;height:44px;padding:8px 16px 8px 11px;
      border-radius:999px;
      justify-content:center;
    }
    .ai-launch svg,
    .ai-launch img,
    .ai-launch-icon{width:18px;height:18px;}
    .ai-launch-dot{width:8px;height:8px;}
    .ai-panel{width:100%;}
    .ai-head{padding:24px 16px 14px;}
    .ai-avatar{width:48px;height:48px;}
    .ai-head-copy h2{font-size:17px !important;}
    .ai-head-sub{font-size:14px !important;}
    .ai-form{padding:12px 14px max(14px,env(safe-area-inset-bottom));}
    #aiInput,
    .ai-form input,
    .ai-form input:focus{font-size:16px !important;}
  }

/* —— Webflow isolation (va al final) ——
   Globals de Webflow (a, button, label, .w-button) no deben
   rearmar botones, tabs ni filtros de esta pagina. */
.layout,
.filters-rail,
.results,
aside.filters,
.ai-panel{
  font-family:var(--font) !important;
  color:var(--ink);
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  box-sizing:border-box;
}
.layout *,
.filters-rail *,
.results *,
aside.filters *,
.ai-panel *,
.ai-launch *{
  box-sizing:border-box;
  font-family:inherit;
}
.layout a,
.results a,
aside.filters a,
.ai-panel a{
  font-weight:inherit;
  text-decoration:none !important;
  color:inherit;
}
.ai-panel .ai-msg a{
  color:var(--btn-blue) !important;
  font-weight:600 !important;
  text-decoration:underline !important;
  overflow-wrap:anywhere;
  word-break:break-word;
}

/* Boton Descargar (es un <a>) */
.results a.btn-download,
.card a.btn-download,
a.btn-download{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  width:100%;
  margin-top:auto;
  padding:11px !important;
  border:none !important;
  border-radius:var(--radius-sm) !important;
  background:var(--btn-blue) !important;
  color:#fff !important;
  font-family:var(--font) !important;
  font-size:13px !important;
  font-weight:700 !important;
  line-height:1.2 !important;
  text-align:center !important;
  text-decoration:none !important;
  cursor:pointer;
  box-shadow:none !important;
  float:none !important;
  clear:none !important;
  max-width:none !important;
}
.results a.btn-download:hover,
.card a.btn-download:hover,
a.btn-download:hover{
  background:var(--btn-blue-dark) !important;
  color:#fff !important;
  text-decoration:none !important;
}

/* Tabs de tipo de descarga en la card */
.card button.type-tab,
button.type-tab{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border:1.5px solid var(--line) !important;
  background:var(--white) !important;
  color:var(--ink-soft) !important;
  font-family:var(--font) !important;
  font-size:12px !important;
  font-weight:600 !important;
  line-height:1.2 !important;
  padding:7px 12px !important;
  border-radius:8px !important;
  cursor:pointer;
  box-shadow:none !important;
  float:none !important;
  width:auto !important;
  max-width:100%;
  min-height:0 !important;
  text-transform:none !important;
  letter-spacing:0 !important;
}
.card button.type-tab:hover,
button.type-tab:hover{
  border-color:#c7ccd4 !important;
  background:var(--white) !important;
  color:var(--ink-soft) !important;
}
.card button.type-tab.active,
button.type-tab.active{
  background:#e6f8ff !important;
  border-color:var(--brand) !important;
  color:var(--brand-dark) !important;
  font-weight:700 !important;
}

/* Filtros desktop */
.filters-desktop-heading{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
}
.filters-desktop-title{
  font-size:16px !important;
  font-weight:600 !important;
  color:var(--ink) !important;
}
.filters-collapse-btn,
.filters-expand-btn,
.filters-toggle,
.filters-apply,
.filters-close,
.clear-btn,
.view-toggle button,
select.sort{
  font-family:var(--font) !important;
  text-transform:none !important;
  letter-spacing:0 !important;
  box-shadow:none !important;
}
.facet-title{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  font-weight:600 !important;
  font-size:14px !important;
  color:var(--navy) !important;
  background:transparent !important;
  border:none !important;
  width:100%;
  padding:0;
  cursor:pointer;
}
.facet-row{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  font-size:14px !important;
  color:var(--colortext) !important;
  font-weight:400 !important;
}
.facet-row.active{
  color:var(--brand-dark) !important;
  font-weight:700 !important;
}
.cb-wrap{
  position:relative !important;
  width:18px !important;
  height:18px !important;
  flex:none !important;
  display:inline-block !important;
}
.cb-wrap input{
  position:absolute !important;
  inset:0 !important;
  opacity:0 !important;
  margin:0 !important;
  width:100% !important;
  height:100% !important;
}
.cb-wrap .box{
  position:absolute !important;
  inset:0 !important;
  border:1.5px solid #d5d9e0 !important;
  border-radius:5px !important;
  background:#fff !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  pointer-events:none !important;
  box-shadow:none !important;
}
.cb-wrap input:checked + .box{
  background:var(--navy) !important;
  border-color:var(--navy) !important;
}
.facet-label{
  flex:1 !important;
  min-width:0 !important;
  font-weight:inherit !important;
}
.facet-row .count{
  flex:none !important;
  margin-left:8px !important;
  color:var(--ink-soft) !important;
  font-size:12px !important;
  font-weight:400 !important;
}

/* Search / toolbar */
.search-bar{
  display:flex !important;
  align-items:center !important;
  background:var(--white) !important;
  border:1px solid var(--line) !important;
  border-radius:10px !important;
}
.search-bar input{
  border:none !important;
  outline:none !important;
  background:transparent !important;
  box-shadow:none !important;
  font-family:var(--font) !important;
  font-size:14px !important;
  color:var(--ink) !important;
}
.view-toggle{
  display:flex !important;
  overflow:hidden !important;
  border:1px solid var(--line) !important;
  border-radius:var(--radius-sm) !important;
  background:var(--white) !important;
}
.view-toggle button{
  border:none !important;
  background:var(--white) !important;
  color:var(--ink-soft) !important;
  padding:8px 10px !important;
  border-radius:0 !important;
  min-height:0 !important;
  width:auto !important;
}
.view-toggle button.active{
  background:var(--brand) !important;
  color:#fff !important;
}
select.sort{
  border:1px solid var(--line) !important;
  border-radius:var(--radius-sm) !important;
  background:var(--white) !important;
  color:var(--ink) !important;
  padding:8px 12px !important;
  font-size:13px !important;
  min-height:0 !important;
  height:auto !important;
}

.category-heading h1{
  font-family:var(--font) !important;
  font-size:32px !important;
  font-weight:800 !important;
  color:var(--dark-blue--700) !important;
  letter-spacing:-.2px !important;
  line-height:1.15 !important;
  margin:0 0 4px !important;
}
@media (max-width:900px){
  .category-heading h1{font-size:28px !important;}
}
@media (max-width:680px){
  .category-heading h1{font-size:26px !important;}
}
@media (min-width:901px) and (max-width:1400px){
  .card button.type-tab,
  button.type-tab{
    flex:1 1 0 !important;
    min-width:0 !important;
    width:auto !important;
    padding:6px 4px !important;
    font-size:10.5px !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }
  .type-tabs{
    flex-wrap:nowrap !important;
    gap:4px !important;
  }
}
.card-title{
  font-family:var(--font) !important;
  font-size:1.1rem !important;
  font-weight:600 !important;
  color:#00152b !important;
  line-height:1.35 !important;
  margin:0 !important;
  padding-bottom:24px !important;
  text-decoration:none !important;
}
.card-skel .card-body{
  display:flex !important;
  flex-direction:column !important;
  gap:0 !important;
}
.card-skel .skel{
  display:block !important;
}
.card-skel .card-info{
  flex:1 !important;
  justify-content:center !important;
  gap:0 !important;
}
.card-skel .skel-title{
  margin:0 !important;
  padding-bottom:24px !important;
}
.card-skel .skel-tabs{
  display:flex !important;
  gap:8px !important;
  margin:0 !important;
}
.card-skel .skel-btn{
  flex:none !important;
}
.grid.list .card-skel .card-body{
  padding:0 !important;
}
.grid.list .card-skel .skel-title{
  height:22px !important;
  width:min(280px,70%) !important;
}
.grid.list .card-skel .skel-btn,
.grid.list .skel-btn{
  width:148px !important;
  min-width:148px !important;
  max-width:148px !important;
  height:40px !important;
  padding:0 !important;
  margin-top:auto !important;
  align-self:flex-start !important;
}

.grid.list,
.layout.filters-collapsed .grid.list{
  grid-template-columns:1fr !important;
}
.grid.list .card{
  display:grid !important;
  grid-template-columns:144px 1fr !important;
  grid-template-rows:auto !important;
  align-items:start !important;
  column-gap:16px !important;
  row-gap:0 !important;
  padding:1.1rem 2rem 1.1rem .9rem !important;
}
.grid.list .card .media,
.grid.list .card-catalogo .media{
  width:144px !important;
  height:144px !important;
  min-width:144px !important;
  min-height:144px !important;
  max-width:144px !important;
  max-height:144px !important;
  aspect-ratio:1/1 !important;
  background:#f5f5f5 !important;
}
.grid.list .card:hover .media,
.grid.list .card-catalogo:hover .media{background:#e6f8ff !important;}
.grid.list .card .media img{
  width:76% !important;
  height:76% !important;
}
.grid.list .card-catalogo .media img{
  width:96% !important;
  height:96% !important;
}
.grid.list .card .card-body,
.grid.list .card-catalogo .card-body{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  min-height:144px !important;
  padding:0 !important;
  gap:0 !important;
}
.grid.list .card-info,
.grid.list .card-catalogo .card-info{
  flex:1 !important;
  width:100% !important;
  max-width:34rem !important;
  min-height:0 !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}
.grid.list .card-title,
.grid.list .card-catalogo .card-title{
  margin:0 !important;
  padding-bottom:24px !important;
  font-size:1.22rem !important;
}
.grid.list .card-catalogo .card-title{
  padding-bottom:8px !important;
}
.grid.list .card-catalogo .card-desc{
  display:block !important;
  -webkit-line-clamp:unset !important;
  -webkit-box-orient:unset !important;
  overflow:visible !important;
  white-space:normal !important;
  text-overflow:unset !important;
  margin:0 !important;
  padding-bottom:24px !important;
  font-size:13px !important;
  line-height:1.4 !important;
  font-weight:400 !important;
  color:var(--ink-soft) !important;
}
.grid.list .type-tabs,
.grid.list .skel-tabs{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  gap:6px !important;
  margin:0 !important;
}
.grid.list .card button.type-tab,
.grid.list button.type-tab{
  flex:0 0 auto !important;
  width:auto !important;
  max-width:none !important;
  white-space:nowrap !important;
}
.grid.list .btn-download,
.grid.list a.btn-download{
  grid-column:auto !important;
  width:auto !important;
  max-width:none !important;
  align-self:flex-start !important;
  margin-top:auto !important;
  padding:10px 20px !important;
}
@media (max-width:680px){
  .grid.list .card,
  .grid.list .card-catalogo{
    grid-template-columns:72px 1fr !important;
  }
  .grid.list .card .media,
  .grid.list .card-catalogo .media{
    width:72px !important;
    height:72px !important;
    min-width:72px !important;
    min-height:72px !important;
    max-width:72px !important;
    max-height:72px !important;
  }
  .grid.list .card .card-body,
  .grid.list .card-info,
  .grid.list .card-catalogo .card-body,
  .grid.list .card-catalogo .card-info{
    min-height:72px !important;
  }
}

/* Asistente: texto blanco + encima del nav Webflow (va al final) */
button.ai-launch,
.ai-launch{
  z-index:10050 !important;
  width:auto !important;
  height:48px !important;
  padding:8px 18px 8px 14px !important;
  border-radius:999px !important;
  background:#00152B !important;
  color:#fff !important;
  font-family:var(--font) !important;
  font-size:15px !important;
  font-weight:600 !important;
  -webkit-text-fill-color:#fff !important;
}
@media (max-width:640px){
  button.ai-launch,
  .ai-launch{
    width:auto !important;
    height:44px !important;
    padding:8px 16px 8px 11px !important;
  }
}
button.ai-launch > span,
.ai-launch > span,
button.ai-launch svg,
.ai-launch svg,
button.ai-launch img,
.ai-launch img{
  opacity:1 !important;
  visibility:visible !important;
}
button.ai-launch .ai-launch-dot,
.ai-launch .ai-launch-dot{
  display:block !important;
  position:static !important;
  right:auto !important;
  bottom:auto !important;
  width:8px !important;
  height:8px !important;
  border-radius:50% !important;
  background:#00bdff !important;
  border:none !important;
  color:transparent !important;
  font-size:0 !important;
  box-shadow:0 0 0 3px rgba(0,189,255,.25) !important;
}
button.ai-launch svg,
.ai-launch svg{
  color:#fff !important;
  stroke:#fff !important;
  fill:none !important;
  -webkit-text-fill-color:#fff !important;
}
button.ai-launch > span:not(.ai-launch-dot),
.ai-launch > span:not(.ai-launch-dot){
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}
button.ai-launch svg .ai-icon-spark,
.ai-launch svg .ai-icon-spark,
.ai-avatar svg .ai-icon-spark{
  fill:#fff !important;
  stroke:none !important;
}
.ai-backdrop{z-index:10060 !important;}
.ai-panel{z-index:10070 !important;}
.filters-backdrop{z-index:10040 !important;}
aside.filters.filters--drawer{z-index:10045 !important;}

/* Consistencia de controles y filtros con el catálogo de Productos */
.filters-desktop-heading{display:none !important;}
.facet-title{
  font-size:16px !important;
  color:var(--dark-blue--700) !important;
}
.ft-label svg{color:rgb(0,110,165) !important;}
.facet-body{margin-top:16px;gap:4px;}
.facet-row{
  width:100% !important;
  margin:0 !important;
  padding:6px 8px !important;
  color:#414750 !important;
}
.facet-row:hover{
  background:rgb(227,242,253) !important;
  color:rgb(0,110,165) !important;
  font-weight:400 !important;
}
.facet-row:hover .cb-wrap .box{border-color:rgb(0,110,165) !important;}
.facet-row .count{margin-left:auto !important;color:#414750 !important;}

.results-search{
  display:flex;
  align-items:stretch;
  gap:10px;
  margin-bottom:18px;
}
.results-search .search-bar{flex:1;min-width:0;padding:12px 16px;}
.search-bar:focus-within{border-color:#0090c7 !important;box-shadow:none !important;}
.results-search .view-toggle{flex:none;align-self:stretch;}
.results-search .view-toggle button{height:100%;}
.view-toggle{border-radius:10px !important;background:transparent !important;}
.view-toggle button{
  background:transparent !important;
  padding:8px 10px !important;
  transition:background .12s,color .12s;
}
.view-toggle button:hover:not(.active){background:var(--bg-card) !important;}
.view-toggle button.active{background:#fff !important;color:var(--dark-blue--700) !important;}

.sort-dropdown{position:relative;z-index:1;flex:none;align-self:stretch;width:max-content;min-width:0;}
.sort-dropdown.open{z-index:40;}
.sort-trigger{
  width:max-content;height:100%;min-height:42px;border:1px solid var(--line);border-radius:10px;
  padding:8px 14px;background:#fff;color:var(--ink);cursor:pointer;
  display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;
  align-items:center;column-gap:14px;row-gap:1px;font:inherit;font-size:13px;text-align:left;
  transition:border-color .12s,box-shadow .12s;
}
.sort-trigger:hover{border-color:#c3cad6;}
.sort-trigger:focus-visible{outline:2px solid var(--ink);outline-offset:2px;}
.sort-current{grid-column:1;grid-row:1/3;font-weight:600;color:#5f6670;white-space:nowrap;line-height:1.25;}
.sort-trigger svg{grid-column:2;grid-row:1/3;transition:transform .18s;}
.sort-dropdown.open .sort-trigger svg{transform:rotate(180deg);}
.sort-menu{
  position:absolute;top:calc(100% + 6px);right:0;z-index:10030;width:180px;
  padding:6px;background:#fff;border:1px solid var(--line);border-radius:10px;
  box-shadow:0 12px 28px rgba(10,14,25,.15);
}
.sort-menu[hidden]{display:none;}
.sort-menu-title{display:block;padding:5px 12px 4px;color:var(--ink-soft);font-size:11px;font-weight:500;line-height:1.2;}
.sort-option{
  width:100%;border:0;background:transparent;color:var(--ink);border-radius:7px;
  padding:7px 12px;text-align:left;font:inherit;font-size:13px;font-weight:400;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.sort-option::after{
  content:"";width:14px;height:11px;flex:none;opacity:0;background-color:currentColor;
  -webkit-mask:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 11'%3E%3Cpath d='M1.5 5.5 5.25 9 12.5 1.5' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  mask:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 11'%3E%3Cpath d='M1.5 5.5 5.25 9 12.5 1.5' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.sort-option:hover,.sort-option:focus-visible{background:#f5f5f5;font-weight:600;outline:none;}
.sort-option.active::after{opacity:1;}
select.sort-native{
  position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;
  margin:-1px !important;overflow:hidden !important;clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;border:0 !important;
}

.toolbar-top{align-items:flex-start;gap:12px;}
.chips-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;flex:1;min-width:0;}
.chip{background:#e1edfb;}
.toolbar-top .clear-btn{
  min-height:30px;margin-left:auto;padding:0;border:0;border-radius:0;
  background:transparent;color:#16294f;box-shadow:none;
}
.toolbar-top .clear-btn:hover,.toolbar-top .clear-btn:focus-visible{
  border:0;background:transparent;color:var(--btn-blue);box-shadow:none;
}
.count-row{justify-content:flex-start;margin-bottom:16px;}

/* El lateral conserva el scroll, pero sin mostrar la barra del navegador. */
.filters-rail{scrollbar-width:none;-ms-overflow-style:none;}
.filters-rail::-webkit-scrollbar{width:0;height:0;display:none;}

@media (max-width:900px){
  .results-search .sort-dropdown,.results-search .view-toggle{display:none !important;}
  .count-row{display:flex;}
  .showing-full{display:inline;}
}

/* Misma grilla estructural de Productos: encabezado/controles y filtros/resultados. */
@media (min-width:901px){
  .layout,
  .layout.filters-collapsed{
    display:grid;
    grid-template-columns:300px minmax(0,1fr);
    grid-template-rows:auto auto;
    column-gap:50px;
    row-gap:24px;
    align-items:start;
  }
  .category-heading{grid-column:1;grid-row:1;margin:0;align-self:start;}
  .filters-rail,
  .layout.filters-collapsed .filters-rail{
    grid-column:1;grid-row:2;width:300px;max-width:300px;
    opacity:1;transform:none;pointer-events:auto;
  }
  main.results{display:contents;}
  .results-controls{
    grid-column:2;grid-row:1;min-width:0;align-self:end;padding-top:8px;
  }
  .results-controls .results-search{margin:0;}
  .results-body{grid-column:2;grid-row:2;min-width:0;}
  .results-body > .toolbar-top{margin:0 0 18px;}
}
@media (min-width:901px) and (max-width:1200px){
  .layout,
  .layout.filters-collapsed{
    grid-template-columns:260px minmax(0,1fr);column-gap:32px;
  }
  .filters-rail,
  .layout.filters-collapsed .filters-rail{width:260px;max-width:260px;}
}
@media (max-width:900px){
  .layout{display:flex;}
  .category-heading{order:-1;}
  .filters-rail{order:0;}
  main.results{order:1;}
}

/* Chips sin separación inicial; 20px únicamente antes de Borrar filtros. */
.results-body > .toolbar-top{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  align-items:start !important;
  column-gap:20px !important;
  row-gap:8px !important;
  margin-left:0 !important;
  padding-left:0 !important;
}
.results-body > .toolbar-top:empty{display:none !important;}
.results-body > .toolbar-top .chips-row{
  grid-column:1 !important;
  grid-row:1 !important;
  margin-left:0 !important;
  padding-left:0 !important;
}
.results-body > .toolbar-top .clear-btn{
  grid-column:2 !important;
  grid-row:1 !important;
  margin-left:0 !important;
}

/* Cards: separación de acciones y badge NUEVO compartido con Home/Productos. */
.grid:not(.list) .card:not(.card-skel) .type-tabs{
  margin-bottom:1rem !important;
}
.card .media .badge-nuevo,
.grid.list .card .media .badge-nuevo{
  position:absolute !important;
  top:.6rem !important;
  left:.6rem !important;
  right:auto !important;
  bottom:auto !important;
  z-index:3 !important;
  display:inline-flex !important;
  align-items:center !important;
  max-width:58% !important;
  margin:0 !important;
  padding:.45rem .7rem !important;
  overflow:hidden !important;
  border:0 !important;
  border-radius:999px !important;
  background:#ddca97 !important;
  color:var(--dark-blue--700) !important;
  box-shadow:0 3px 10px rgba(201,179,118,.35) !important;
  font-size:.60rem !important;
  font-weight:600 !important;
  line-height:1 !important;
  letter-spacing:.03em !important;
  text-transform:uppercase !important;
  white-space:nowrap !important;
  text-overflow:ellipsis !important;
}

/* Vista lista y tipografía común entre vistas. */
.card .card-title,
.grid.list .card .card-title,
.grid.list .card-catalogo .card-title{
  font-size:1.1rem !important;
  line-height:1.35 !important;
  color:#16294f !important;
}
@media (min-width:901px){
  .grid.list,
  .layout.filters-collapsed .grid.list{
    grid-template-columns:1fr !important;
    gap:20px !important;
  }
}
@media (max-width:900px){
  .grid.list,
  .layout.filters-collapsed .grid.list{
    grid-template-columns:1fr !important;
  }
}

/* Skeleton de grilla: replica título, tabs, separación de 1rem y CTA. */
.grid:not(.list) .card-skel .card-body{
  display:flex !important;
  flex-direction:column !important;
  padding:.85rem .15rem .15rem !important;
  gap:0 !important;
}
.grid:not(.list) .card-skel .card-info{
  display:flex !important;
  flex:0 0 auto !important;
  flex-direction:column !important;
  justify-content:flex-start !important;
}
.grid:not(.list) .card-skel .skel-title{
  width:72% !important;
  height:18px !important;
  margin:0 0 24px !important;
  padding:0 !important;
}
.grid:not(.list) .card-skel .skel-tabs{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  margin:0 0 1rem !important;
}
.grid:not(.list) .card-skel .skel-btn{
  width:100% !important;
  height:40px !important;
  margin:0 !important;
  flex:none !important;
}

/* Skeleton de lista: mismas columnas, alturas y alineaciones que la card real. */
.grid.list .card-skel{
  align-items:start !important;
}
.grid.list .card-skel .card-body{
  display:flex !important;
  flex-direction:column !important;
  min-width:0 !important;
  min-height:144px !important;
  padding:0 !important;
  gap:0 !important;
}
.grid.list .card-skel .card-info{
  display:flex !important;
  flex:1 1 auto !important;
  flex-direction:column !important;
  justify-content:flex-start !important;
  width:100% !important;
  min-width:0 !important;
}
.grid.list .card-skel .skel-title{
  width:min(240px,72%) !important;
  height:18px !important;
  margin:0 0 24px !important;
  padding:0 !important;
}
.grid.list .card-skel .skel-tabs{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:6px !important;
  margin:0 !important;
}
.grid.list .card-skel .skel-btn{
  width:148px !important;
  min-width:148px !important;
  max-width:148px !important;
  height:40px !important;
  margin-top:auto !important;
  align-self:flex-start !important;
  flex:none !important;
}

/* En lista, el bloque de texto comienza siempre en el margen superior. */
.grid.list .card:not(.card-skel) .card-info,
.grid.list .card-catalogo:not(.card-skel) .card-info{
  justify-content:flex-start !important;
}

/* El contenido de la card nunca se centra verticalmente. */
.card .card-info,
.card-catalogo .card-info,
.card-skel .card-info{
  justify-content:flex-start !important;
}

/* En lista, tabs y CTA forman un único bloque con 1rem de separación. */
.grid.list .card .card-info,
.grid.list .card-catalogo .card-info,
.grid.list .card-skel .card-info{
  flex:0 0 auto !important;
}
.grid.list .card .btn-download,
.grid.list .card-catalogo .btn-download,
.grid.list .card-skel .skel-btn{
  margin-top:1rem !important;
}

/* En catálogos sin pills, el CTA llega al margen inferior de la card. */
.grid.list .card-catalogo:not(.card-skel) .card-info{
  flex:1 1 auto !important;
}
.grid.list .card-catalogo:not(.card-skel) .btn-download{
  margin-top:auto !important;
}

/* Prueba visual: descripción de catálogos también visible en grilla. */
.card-catalogo .card-desc,
.grid.list .card-catalogo .card-desc,
.grid:not(.list) .card-catalogo .card-desc{
  font-size:13px !important;
  line-height:1.4 !important;
  color:var(--ink-soft) !important;
}
.card-catalogo .card-title,
.grid.list .card-catalogo .card-title,
.grid:not(.list) .card-catalogo .card-title{
  padding-bottom:16px !important;
}
.grid:not(.list) .card-catalogo .card-desc{
  display:block !important;
  margin:0 !important;
  padding:0 0 20px !important;
  overflow:visible !important;
  white-space:normal !important;
}

/* Grilla: título arriba y acciones abajo, sin reservar una segunda línea vacía. */
.grid:not(.list) .card:not(.card-skel) .card-body{
  justify-content:space-between !important;
}
.grid:not(.list) .card:not(.card-skel) .card-info{
  display:flex !important;
  flex:1 1 auto !important;
  flex-direction:column !important;
  justify-content:flex-start !important;
}
.grid:not(.list) .card:not(.card-skel) .card-title{
  height:auto !important;
  min-height:0 !important;
  align-self:flex-start !important;
}
.grid:not(.list) .card:not(.card-catalogo):not(.card-skel) .card-title{
  display:-webkit-box !important;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
}
.grid:not(.list) .card-catalogo:not(.card-skel) .card-title{
  display:-webkit-box !important;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
}
.grid:not(.list) .card:not(.card-skel) .type-tabs{
  margin-top:auto !important;
  margin-bottom:1rem !important;
  min-height:var(--type-tabs-row-height,auto) !important;
  align-content:flex-start !important;
}
.grid:not(.list) .card:not(.card-skel) .btn-download{
  margin-top:0 !important;
}

/* Prueba visual: SKU secundario debajo del nombre en descargables de producto. */
.card:not(.card-catalogo) .card-title:has(+ .card-sku){
  padding-bottom:4px !important;
}
.card-sku{
  margin:0 0 20px;
  color:#7a828d;
  font-size:11px;
  font-weight:500;
  line-height:1.35;
  letter-spacing:.01em;
}

/* Bottom sheet mobile alineado al patrón de filtros de Productos. */
.filters-count{
  position:absolute;top:-7px;right:-7px;z-index:1;
  width:20px;height:20px;border-radius:50%;background:var(--brand);color:#fff;
  display:inline-grid;place-items:center;place-content:center;
  font-size:11px;font-weight:700;line-height:1;text-align:center;
  box-shadow:0 0 0 2px #fff;
}
.filters-count[hidden]{display:none;}

@media (max-width:900px){
  .results-search .filters-toggle{
    position:relative;
    width:48px;
    min-width:48px;
    padding:0 !important;
    gap:0;
  }
  .results-search .filters-toggle-label{display:none;}
  .results-search .filters-toggle > svg{width:17px;height:17px;margin:0;}
  .fmn-row{
    padding:15px 4px;
    border-bottom:0;
    font-size:15px;
  }
  .fmn-row-label{display:flex;align-items:center;gap:10px;min-width:0;}
  .fmn-row-label > svg{width:16px;height:16px;flex:none;color:rgb(0,110,165);}
  .fmn-active-count{margin-left:6px;color:var(--ink-soft);font-size:13px;font-weight:600;}
  .fmn-secondary-start{position:relative;margin-top:18px;}
  .fmn-secondary-start::before{
    content:"";position:absolute;top:-10px;left:-20px;right:-20px;
    height:1px;background:var(--line);pointer-events:none;
  }
  .fmn-secondary-row .fmn-row-label{gap:0;}
  .fmn-chev{display:inline-flex;align-items:center;justify-content:center;color:#868686;line-height:0;flex:none;}
  .fmn-chev svg{display:block;transform:rotate(-90deg);}
  .fmn-view-option-icon{margin-left:auto;color:var(--ink-soft);font-size:16px;}
}

/* Evita desplazamiento lateral dentro del bottom sheet. */
@media (max-width:900px){
  .filters-mobile-nav,
  .fmn-screen,
  .fmn-list,
  .fmn-detail,
  .fmn-detail-body{
    max-width:100%;
    overflow-x:hidden !important;
  }
  .fmn-row{width:100%;min-width:0;}
  .fmn-row-label,
  .fmn-row-meta{min-width:0;}
  .fmn-row-meta{overflow:hidden;}
  .fmn-secondary-start::before{left:0;right:0;}
}

/* Color de marca para descargas y CTA del bottom sheet. */
.results a.btn-download,
.card a.btn-download,
a.btn-download,
.filters-apply{
  background:#0086b5 !important;
}
.results a.btn-download:hover,
.card a.btn-download:hover,
a.btn-download:hover,
.filters-apply:hover{
  background:#00688c !important;
}

/* Controles del bottom sheet idénticos a Productos. */
@media (max-width:900px){
  .filters-mobile-header{
    padding:18px 0 14px;
    position:sticky;
    top:0;
    background:#fff;
    z-index:2;
  }
  .filters-close{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:30px !important;
    height:30px !important;
    padding:0 !important;
    border:0 !important;
    border-radius:50% !important;
    background:var(--bg-card) !important;
    color:var(--ink-soft) !important;
    font-size:18px !important;
    line-height:1 !important;
  }
  .fmn-back{
    display:flex !important;
    align-items:center !important;
    gap:10px !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
    color:var(--ink) !important;
    font-size:16px !important;
    font-weight:800 !important;
  }
  .fmn-back-icon{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:26px !important;
    height:26px !important;
    flex:none !important;
    border-radius:50% !important;
    background:var(--bg-card) !important;
    color:#868686 !important;
    line-height:0 !important;
  }
  .fmn-back-icon svg{display:block;transform:rotate(180deg);}
}

/* Breadcrumb y ritmo vertical compartidos con Productos. */
.crumb{
  padding:16px 20px 0 !important;
  max-width:1500px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
@media (min-width:901px) and (max-width:1440px){
  .crumb{padding:16px 48px 0 !important;}
}
@media (max-width:900px){
  .crumb{padding:16px 20px 0 !important;}
  .layout{gap:16px !important;}
  .category-heading{margin:0 !important;}
  .filters-rail{display:none !important;}
  .results-body > .toolbar-top{margin:0 0 20px !important;}
  .results-body > .toolbar-top:empty{margin:0 !important;}
}

/* Acción para limpiar la búsqueda. */
.search-clear{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:none !important;
  width:26px !important;
  height:26px !important;
  min-width:26px !important;
  min-height:26px !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:50% !important;
  background:transparent !important;
  color:#9aa1aa !important;
  font:400 18px/1 var(--font) !important;
  cursor:pointer !important;
  box-shadow:none !important;
}
.search-clear:hover{background:#f1f3f5 !important;color:#6f7781 !important;}
.search-clear[hidden]{display:none !important;}

/* Contenedor compartido de escritorio: 1500px con laterales de 40px. */
@media (min-width:901px){
  .crumb{
    width:100% !important;
    max-width:1500px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding:16px 40px 0 !important;
  }
  .layout,
  .layout.filters-collapsed{
    width:100% !important;
    max-width:1500px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding:24px 40px 60px !important;
  }
}

/* Título principal compartido en desktop y mobile. */
.category-heading h1{
  font-weight:700 !important;
  letter-spacing:-.02em !important;
}

/* Asistente con el mismo comportamiento visual responsive de Home. */
body.assistant-open .ai-launch{
  visibility:hidden !important;
  pointer-events:none !important;
}
button.ai-launch,
.ai-launch{
  position:fixed !important;
  top:auto !important;
  right:max(16px,env(safe-area-inset-right,0px)) !important;
  bottom:max(20px,env(safe-area-inset-bottom,0px)) !important;
  z-index:2147483645 !important;
  width:auto !important;
  height:48px !important;
  min-width:0 !important;
  padding:8px 18px 8px 14px !important;
  gap:10px !important;
  border-radius:999px !important;
}
.ai-backdrop{position:fixed !important;z-index:2147483646 !important;}
.ai-panel{position:fixed !important;z-index:2147483647 !important;}

@media (max-width:640px){
  button.ai-launch,
  .ai-launch{
    width:56px !important;
    height:56px !important;
    min-width:56px !important;
    padding:0 !important;
    gap:0 !important;
    border-radius:50% !important;
  }
  button.ai-launch svg,
  .ai-launch svg{width:24px !important;height:24px !important;}
  button.ai-launch > span:not(.ai-launch-dot),
  .ai-launch > span:not(.ai-launch-dot){display:none !important;}
  button.ai-launch .ai-launch-dot,
  .ai-launch .ai-launch-dot{
    display:block !important;
    position:absolute !important;
    right:2px !important;
    bottom:2px !important;
    width:12px !important;
    height:12px !important;
    border:2px solid #fff !important;
    background:#22c55e !important;
    box-shadow:none !important;
  }
  .ai-panel{width:100% !important;}
  .ai-head{padding:24px 16px 14px !important;}
  .ai-avatar{width:48px !important;height:48px !important;}
  .ai-head-copy h2{font-size:20px !important;}
  .ai-head-sub{font-size:15px !important;}
  .ai-form{padding:12px 14px max(14px,env(safe-area-inset-bottom)) !important;}
}

/* Overrides finales: asistente flotante independiente del alto del embed. */
body.assistant-open .ai-launch{
  visibility:hidden !important;
  pointer-events:none !important;
}

/* Webflow define .card-body con margin-top:1em; evitamos sumar ese espacio
   al padding interno propio de las cards de Descargas. */
.results .card .card-body,
.results .card-catalogo .card-body{
  margin-top:0 !important;
  margin-bottom:0 !important;
}

/* Cards responsive: contenido completo y acciones de altura uniforme. */
@media (max-width:900px){
  /* Los catálogos muestran descripción únicamente en vista lista. */
  .grid:not(.list) .card-catalogo .card-desc{
    display:none !important;
  }
  .grid:not(.list) .card-catalogo .card-title,
  .grid:not(.list) .card:not(.card-skel) .card-title,
  .grid.list .card .card-title{
    display:block !important;
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
    white-space:normal !important;
    text-overflow:clip !important;
    -webkit-line-clamp:unset !important;
    -webkit-box-orient:unset !important;
  }
  .grid .btn-download,
  .grid a.btn-download{
    box-sizing:border-box !important;
    height:44px !important;
    min-height:44px !important;
    padding:0 16px !important;
    line-height:1 !important;
    white-space:nowrap !important;
  }
}

@media (max-width:680px){
  /* En lista, una miniatura mayor mejora la lectura sin quitarle espacio al texto. */
  .grid.list .card,
  .grid.list .card-catalogo{
    grid-template-columns:96px minmax(0,1fr) !important;
  }
  .grid.list .card .media,
  .grid.list .card-catalogo .media{
    width:96px !important;
    height:96px !important;
    min-width:96px !important;
    min-height:96px !important;
    max-width:96px !important;
    max-height:96px !important;
  }
  .grid.list .card .card-body,
  .grid.list .card-info,
  .grid.list .card-catalogo .card-body,
  .grid.list .card-catalogo .card-info{
    min-height:96px !important;
  }
  .card .media .badge-nuevo,
  .grid.list .card .media .badge-nuevo{
    max-width:none !important;
    overflow:visible !important;
    text-overflow:clip !important;
  }
}
button.ai-launch,
.ai-launch{
  position:fixed !important;
  top:auto !important;
  right:max(16px,env(safe-area-inset-right,0px)) !important;
  bottom:max(20px,env(safe-area-inset-bottom,0px)) !important;
  z-index:2147483645 !important;
  width:auto !important;
  height:48px !important;
  min-width:0 !important;
  padding:8px 18px 8px 14px !important;
  gap:10px !important;
  border-radius:999px !important;
}
.ai-backdrop{position:fixed !important;z-index:2147483646 !important;}
.ai-panel{position:fixed !important;z-index:2147483647 !important;}
@media (max-width:640px){
  button.ai-launch,
  .ai-launch{
    width:56px !important;
    height:56px !important;
    min-width:56px !important;
    padding:0 !important;
    gap:0 !important;
    border-radius:50% !important;
  }
  button.ai-launch svg,
  .ai-launch svg{width:24px !important;height:24px !important;}
  button.ai-launch > span:not(.ai-launch-dot),
  .ai-launch > span:not(.ai-launch-dot){display:none !important;}
  button.ai-launch .ai-launch-dot,
  .ai-launch .ai-launch-dot{
    display:block !important;
    position:absolute !important;
    right:2px !important;
    bottom:2px !important;
    width:12px !important;
    height:12px !important;
    border:2px solid #fff !important;
    background:#22c55e !important;
    box-shadow:none !important;
  }
  .ai-panel{width:100% !important;}
  .ai-head{padding:24px 16px 14px !important;}
  .ai-avatar{width:48px !important;height:48px !important;}
  .ai-head-copy h2{font-size:20px !important;}
  .ai-head-sub{font-size:15px !important;}
  .ai-form{padding:12px 14px max(14px,env(safe-area-inset-bottom)) !important;}
}
