/* ════════════════════════════════════════
   GB Biblioteca Virtual — Frontend v1.3.1
   Tipografía: Outfit (en uso en el sitio)
   Todo escopado bajo .gb-biblioteca para
   evitar conflictos con estilos del tema.
════════════════════════════════════════ */

/* ── Reset base del contenedor ── */
.gb-biblioteca {
    width: 100%;
    font-family: 'Outfit', sans-serif;
    font-weight: 300;
    color: #000;
    box-sizing: border-box;
}
.gb-biblioteca *,
.gb-biblioteca *::before,
.gb-biblioteca *::after {
    box-sizing: border-box;
}

/* ── Barra de búsqueda ── */
.gb-biblioteca .gb-search-bar { margin-bottom: 20px; }

.gb-biblioteca .gb-search-wrap {
    display: flex !important;
    align-items: center;
    gap: 10px;
    background: #fff !important;
    border: 1px solid rgba(201,84,35,.2) !important;
    border-radius: 50px !important;
    padding: 10px 16px;
    transition: border-color .2s, box-shadow .2s;
    box-shadow: none !important;
}
.gb-biblioteca .gb-search-wrap:focus-within {
    border-color: rgba(201,84,35,.5) !important;
    box-shadow: 0 0 0 3px rgba(201,84,35,.1) !important;
}
.gb-biblioteca .gb-search-icon {
    width: 17px; height: 17px; flex-shrink: 0;
    stroke: #9E9189; stroke-width: 2; fill: none;
    stroke-linecap: round; stroke-linejoin: round;
}
.gb-biblioteca .gb-search-input {
    flex: 1;
    border: none !important;
    outline: none !important;
    background: transparent !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: .93rem !important;
    color: #000 !important;
    min-width: 0;
    padding: 0 !important;
    box-shadow: none !important;
}
.gb-biblioteca .gb-search-input::placeholder { color: #b0a9a3; }
.gb-biblioteca .gb-search-clear {
    background: none !important;
    border: none !important;
    cursor: pointer;
    padding: 0 !important;
    color: #b0a9a3;
    display: flex;
    align-items: center;
    transition: color .15s;
    flex-shrink: 0;
    box-shadow: none !important;
}
.gb-biblioteca .gb-search-clear:hover { color: #C95423; background: none !important; }
.gb-biblioteca .gb-search-clear svg {
    width: 14px; height: 14px; stroke: currentColor;
    stroke-width: 2.5; fill: none; stroke-linecap: round;
}

/* ── Tabs ── */
.gb-biblioteca .gb-tabs {
    display: flex;
    gap: 6px;
    border-bottom: 1px solid rgba(201,84,35,.12);
    margin-bottom: 24px;
}

/* Reset agresivo para botones de tab — el tema aplica estilos que opacan el texto */
.gb-biblioteca .gb-tab {
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px !important;
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    padding: 10px 16px !important;
    margin-bottom: -1px;
    font-family: 'Outfit', sans-serif !important;
    font-size: .87rem !important;
    font-weight: 400 !important;
    color: #7A6E67 !important;
    cursor: pointer !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    box-shadow: none !important;
    text-shadow: none !important;
    transition: color .18s, border-color .18s;
    line-height: 1.4 !important;
}
.gb-biblioteca .gb-tab svg {
    width: 15px; height: 15px; stroke: currentColor !important;
    stroke-width: 1.8; fill: none; stroke-linecap: round; stroke-linejoin: round;
}
.gb-biblioteca .gb-tab:hover {
    color: #C95423 !important;
    background: transparent !important;
    background-color: transparent !important;
    border-color: transparent !important;
    border-bottom-color: transparent !important;
}
.gb-biblioteca .gb-tab--active {
    color: #C95423 !important;
    border-bottom: 2px solid #C95423 !important;
    font-weight: 500 !important;
    background: transparent !important;
}
.gb-biblioteca .gb-tab-count {
    background: rgba(201,84,35,.1) !important;
    color: #C95423 !important;
    font-size: .7rem !important;
    font-weight: 500 !important;
    padding: 2px 7px !important;
    border-radius: 20px !important;
    min-width: 22px;
    text-align: center;
    line-height: 1.4 !important;
}

/* ── Panels ── */
.gb-biblioteca .gb-panel--hidden { display: none !important; }

/* ── Navegación alfabética ── */
.gb-biblioteca .gb-alpha-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 24px;
}

/* Reset agresivo para botones de letra */
.gb-biblioteca .gb-alpha-btn {
    background: #fff !important;
    background-color: #fff !important;
    border: 1px solid rgba(201,84,35,.2) !important;
    border-radius: 6px !important;
    padding: 5px 10px !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: .78rem !important;
    font-weight: 500 !important;
    color: #7A6E67 !important;
    cursor: pointer !important;
    min-width: 34px;
    text-align: center;
    transition: background .15s, border-color .15s, color .15s;
    text-transform: none !important;
    letter-spacing: normal !important;
    box-shadow: none !important;
    text-shadow: none !important;
    line-height: 1.4 !important;
}
.gb-biblioteca .gb-alpha-btn:hover {
    border-color: rgba(201,84,35,.4) !important;
    color: #C95423 !important;
    background: #fff !important;
}
.gb-biblioteca .gb-alpha-btn--active {
    background: #C95423 !important;
    background-color: #C95423 !important;
    border-color: #C95423 !important;
    color: #fff !important;
}

/* ── Secciones por letra ── */
.gb-biblioteca .gb-sections { display: flex; flex-direction: column; gap: 28px; }

.gb-biblioteca .gb-section-head {
    display: flex; align-items: center; gap: 12px; margin-bottom: 14px;
}
.gb-biblioteca .gb-section-letter {
    font-family: 'Outfit', sans-serif;
    font-size: 2rem; font-weight: 600;
    color: #C95423; line-height: 1; min-width: 28px;
}
.gb-biblioteca .gb-section-rule {
    flex: 1; height: 1px;
    background: linear-gradient(to right, rgba(201,84,35,.2), transparent);
}
.gb-biblioteca .gb-section-count {
    font-size: .68rem; color: #b0a9a3; font-weight: 400; white-space: nowrap;
}

/* ── Grid ── */
.gb-biblioteca .gb-bib-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
}

/* ── Card base ── */
.gb-biblioteca .gb-bib-card {
    background: #ffffff;
    border: 1px solid rgba(201,84,35,.14);
    border-radius: 16px;
    padding: 20px 18px 16px;
    display: flex; flex-direction: column; gap: 8px;
    position: relative; overflow: hidden;
    text-decoration: none; color: inherit;
    transition: border-color .2s, transform .2s, box-shadow .2s;
}
.gb-biblioteca .gb-bib-card::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
    background: linear-gradient(90deg, #C95423, #A3191C);
    opacity: 0; transition: opacity .2s;
}
.gb-biblioteca .gb-bib-card:hover {
    border-color: rgba(201,84,35,.32) !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 24px rgba(201,84,35,.1);
    text-decoration: none; color: inherit;
}
.gb-biblioteca .gb-bib-card:hover::before { opacity: 1; }

/* ── Card top ── */
.gb-biblioteca .gb-bib-top {
    display: flex; align-items: flex-start;
    justify-content: space-between; gap: 8px;
}
.gb-biblioteca .gb-bib-icon {
    width: 38px; height: 38px; border-radius: 9px;
    background: rgba(201,84,35,.08);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0; transition: background .2s;
}
.gb-biblioteca .gb-bib-icon svg {
    width: 19px; height: 19px; stroke: #C95423;
    stroke-width: 1.6; fill: none; stroke-linecap: round; stroke-linejoin: round;
}
.gb-biblioteca .gb-bib-icon--pdf { background: rgba(163,25,28,.08); }
.gb-biblioteca .gb-bib-icon--pdf svg { stroke: #A3191C; }
.gb-biblioteca .gb-bib-card:hover .gb-bib-icon { background: rgba(201,84,35,.14); }
.gb-biblioteca .gb-bib-card:hover .gb-bib-icon--pdf { background: rgba(163,25,28,.14); }

/* ── Badge ── */
.gb-biblioteca .gb-bib-badge {
    font-size: .62rem !important; font-weight: 500 !important;
    letter-spacing: .05em; text-transform: uppercase !important;
    padding: 3px 8px !important; border-radius: 20px !important;
    flex-shrink: 0; white-space: nowrap;
    font-family: 'Outfit', sans-serif !important;
    box-shadow: none !important;
}
.gb-biblioteca .gb-bib-badge--liga { color: #C95423 !important; background: rgba(201,84,35,.09) !important; }
.gb-biblioteca .gb-bib-badge--pdf  { color: #A3191C !important; background: rgba(163,25,28,.09) !important; }

/* ── Título ── */
.gb-biblioteca .gb-bib-name {
    font-family: 'Outfit', sans-serif;
    font-size: 1rem; font-weight: 500;
    color: #000; line-height: 1.3; margin: 0;
}

/* ── Autores ── */
.gb-biblioteca .gb-bib-autores {
    display: flex; align-items: flex-start; gap: 5px;
    font-family: 'Outfit', sans-serif;
    font-size: .78rem; color: #C95423; margin: 0; line-height: 1.45;
}
.gb-biblioteca .gb-bib-autores svg {
    width: 13px; height: 13px; stroke: currentColor; stroke-width: 1.8;
    fill: none; stroke-linecap: round; stroke-linejoin: round;
    flex-shrink: 0; margin-top: 1px;
}

/* ── Descripción ── */
.gb-biblioteca .gb-bib-desc {
    font-family: 'Outfit', sans-serif;
    font-size: .8rem; line-height: 1.5;
    color: #7A6E67; flex: 1; margin: 0;
}

/* ── Footer de tarjeta ── */
.gb-biblioteca .gb-bib-footer {
    display: flex; align-items: center;
    justify-content: space-between; flex-wrap: wrap;
    gap: 6px; margin-top: 4px;
}
.gb-biblioteca .gb-bib-lock,
.gb-biblioteca .gb-bib-origen {
    display: flex; align-items: center; gap: 4px;
    font-family: 'Outfit', sans-serif;
    font-size: .7rem; color: #9E9189;
}
.gb-biblioteca .gb-bib-lock svg,
.gb-biblioteca .gb-bib-origen svg {
    width: 11px; height: 11px; stroke: currentColor; stroke-width: 1.8;
    fill: none; stroke-linecap: round; stroke-linejoin: round;
}
.gb-biblioteca .gb-bib-card:hover .gb-bib-origen { color: #C95423; }

.gb-biblioteca .gb-bib-btn-ver {
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: .73rem !important;
    font-weight: 500 !important;
    color: #A3191C !important;
    background: rgba(163,25,28,.09) !important;
    border-radius: 20px !important;
    padding: 4px 11px !important;
    text-decoration: none !important;
    transition: background .15s;
    border: none !important;
    box-shadow: none !important;
    text-transform: none !important;
    letter-spacing: normal !important;
}
.gb-biblioteca .gb-bib-btn-ver:hover {
    background: rgba(163,25,28,.18) !important;
    color: #A3191C !important;
    text-decoration: none !important;
}
.gb-biblioteca .gb-bib-btn-ver svg {
    width: 12px; height: 12px; stroke: currentColor; stroke-width: 1.8;
    fill: none; stroke-linecap: round; stroke-linejoin: round;
}

/* ── Sin resultados ── */
.gb-biblioteca .gb-no-results {
    padding: 3rem 1rem; text-align: center;
    display: flex; flex-direction: column; align-items: center; gap: 10px;
}
.gb-biblioteca .gb-no-results svg {
    width: 36px; height: 36px; stroke: #d0c8c0; stroke-width: 1.5;
    fill: none; stroke-linecap: round; stroke-linejoin: round;
}
.gb-biblioteca .gb-no-results p {
    font-family: 'Outfit', sans-serif;
    font-size: .93rem; color: #9E9189; margin: 0;
}

.gb-biblioteca .gb-empty-panel {
    font-family: 'Outfit', sans-serif;
    color: #9E9189; font-style: italic; padding: 2rem 0;
}

/* ── Responsive ── */
@media (max-width: 640px) {
    .gb-biblioteca .gb-bib-grid { grid-template-columns: 1fr; }
    .gb-biblioteca .gb-tab { font-size: .8rem !important; padding: 9px 10px !important; }
    .gb-biblioteca .gb-alpha-btn { min-width: 30px; padding: 4px 7px !important; font-size: .73rem !important; }
    .gb-biblioteca .gb-section-letter { font-size: 1.5rem; }
}
