/* ============================================
   INITIALISE Publications
   Scoped to .initialise-pub-wrap
   Uses site CSS variables
   Bootstrap classes used inside scope only
   ============================================ */

/* ── Root overrides scoped to our wrapper ── */
.initialise-pub-wrap {
    font-family: var(--ff-sans-normal, 'Lato', sans-serif);
    font-size:   var(--fs-200, 1.2rem);
    color:       var(--clr-dark, #1c1c1a);
    /* max-width:   960px; */
    margin:      0 auto;
}

/* ── Count bar ───────────────────────────── */
.initialise-pub-wrap .pub-count-bar {
    background:    rgba(2, 115, 176, 0.07);
    border:        1px solid rgba(2, 115, 176, 0.2);
    border-radius: 8px;
    padding:       12px 18px;
}

.initialise-pub-wrap .pub-count {
    font-size: var(--fs-200, 1.2rem);
    color:     var(--clr-dark);
}

.initialise-pub-wrap .pub-source a {
    color:           var(--clr-blue, #0273b0);
    text-decoration: none;
}

.initialise-pub-wrap .pub-source a:hover {
    text-decoration: underline;
}

/* ── Filter form ─────────────────────────── */
.initialise-pub-wrap .pub-filter-form {
    background:    var(--clr-light, #f6fafc);
    border:        1px solid #e0eaf0;
    border-radius: 10px;
    padding:       18px;
}

.initialise-pub-wrap .pub-filter-label {
    font-size:   var(--fs-100, 0.9rem);
    font-weight: 600;
    color:       var(--clr-dark);
    display:     block;
    margin-bottom: 4px;
}

.initialise-pub-wrap .pub-input,
.initialise-pub-wrap .pub-select {
    font-size:     var(--fs-100, 0.9rem);
    border:        1px solid rgba(2, 115, 176, 0.3);
    border-radius: 6px;
    color:         var(--clr-dark);
    background:    #fff;
}

.initialise-pub-wrap .pub-input:focus,
.initialise-pub-wrap .pub-select:focus {
    border-color: var(--clr-blue, #0273b0);
    box-shadow:   0 0 0 3px rgba(2, 115, 176, 0.15);
    outline:      none;
}

.initialise-pub-wrap .pub-btn-primary {
    background:   var(--clr-blue, #0273b0);
    border-color: var(--clr-blue, #0273b0);
    color:        #fff;
}

.initialise-pub-wrap .pub-btn-primary:hover {
    background:   var(--clr-orange, #f29102);
    border-color: var(--clr-orange, #f29102);
    color:        #fff;
}

/* Active filters */
.initialise-pub-wrap .pub-active-filters {
    font-size:  var(--fs-100, 0.9rem);
    margin-top: 10px;
    color:      #555;
}

.initialise-pub-wrap .pub-filter-tag {
    display:       inline-block;
    background:    rgba(2, 115, 176, 0.1);
    color:         var(--clr-blue, #0273b0);
    border:        1px solid rgba(2, 115, 176, 0.3);
    border-radius: 20px;
    padding:       2px 10px;
    font-size:     var(--fs-50, 0.7rem);
    margin:        0 3px;
}

.initialise-pub-wrap .pub-clear-filters {
    color:           #cc0000;
    font-weight:     bold;
    text-decoration: none;
    margin-left:     8px;
}

.initialise-pub-wrap .pub-clear-filters:hover {
    text-decoration: underline;
}

/* ── Publication Card ────────────────────── */
.initialise-pub-wrap .pub-card {
    border:        none;
    border-left:   5px solid var(--clr-blue, #0273b0);
    border-radius: 0 10px 10px 0;
    box-shadow:    0 2px 8px rgba(0, 0, 0, 0.07);
    transition:    box-shadow 0.2s ease, border-color 0.2s ease;
}

.initialise-pub-wrap .pub-card:hover {
    box-shadow:  0 5px 16px rgba(2, 115, 176, 0.15);
    border-color: var(--clr-orange, #f29102);
}

/* ── Badges ──────────────────────────────── */
.initialise-pub-wrap .pub-badge-oa {
    background: #28a745;
    color:      #fff;
    font-size:  var(--fs-50, 0.7rem);
    padding:    4px 10px;
    border-radius: 20px;
}

.initialise-pub-wrap .pub-badge-manual {
    background: var(--clr-orange, #f29102);
    color:      #fff;
    font-size:  var(--fs-50, 0.7rem);
    padding:    4px 10px;
    border-radius: 20px;
}

.initialise-pub-wrap .pub-year-badge {
    font-size:   var(--fs-100, 0.9rem);
    font-weight: 700;
    color:       #888;
}

/* ── Card Title ──────────────────────────── */
.initialise-pub-wrap .pub-card-title {
    font-family: var(--ff-serif, 'Montserrat', serif);
    font-size:   var(--fs-300, 1.3rem);
    font-weight: 700;
    line-height: 1.4;
    margin-bottom: 8px;
}

.initialise-pub-wrap .pub-card-title a {
    color:           var(--clr-blue, #0273b0);
    text-decoration: none;
}

.initialise-pub-wrap .pub-card-title a:hover {
    color:           var(--clr-orange, #f29102);
    text-decoration: underline;
}

/* ── Authors ─────────────────────────────── */
.initialise-pub-wrap .pub-authors {
    font-size: var(--fs-100, 0.9rem);
    color:     #555;
    margin:    4px 0;
}

/* ── Journal ─────────────────────────────── */
.initialise-pub-wrap .pub-journal {
    font-size: var(--fs-100, 0.9rem);
    color:     #444;
    margin:    4px 0;
}

.initialise-pub-wrap .pub-citation {
    font-size: var(--fs-50, 0.7rem);
    color:     #777;
}

/* ── DOI ─────────────────────────────────── */
.initialise-pub-wrap .pub-doi {
    font-size: var(--fs-50, 0.7rem);
    color:     #999;
    margin:    4px 0;
}

.initialise-pub-wrap .pub-doi a {
    color: #999;
}

.initialise-pub-wrap .pub-doi a:hover {
    color: var(--clr-blue);
    text-decoration: underline;
}

/* ── Abstract toggle button ──────────────── */
.initialise-pub-wrap .pub-btn-abstract {
    background:    transparent;
    border:        1px solid rgba(2, 115, 176, 0.3);
    color:         var(--clr-blue, #0273b0);
    font-size:     var(--fs-100, 0.9rem);
    padding:       4px 12px;
    border-radius: 5px;
    cursor:        pointer;
}

.initialise-pub-wrap .pub-btn-abstract:hover {
    background:  rgba(2, 115, 176, 0.08);
    border-color: var(--clr-blue);
}

/* ── Abstract text ───────────────────────── */
.initialise-pub-wrap .pub-abstract {
    font-size:     var(--fs-100, 0.9rem);
    color:         #555;
    line-height:   1.7;
    background:    var(--clr-light, #f6fafc);
    border-radius: 6px;
    border-left:   3px solid var(--clr-blue);
}

/* ── Full text button ────────────────────── */
.initialise-pub-wrap .pub-btn-fulltext {
    background:   var(--clr-blue, #0273b0);
    color:        #fff;
    font-size:    var(--fs-100, 0.9rem);
    font-weight:  600;
    padding:      6px 16px;
    border-radius: 5px;
    text-decoration: none;
    transition:   background 0.2s ease;
}

.initialise-pub-wrap .pub-btn-fulltext:hover {
    background:      var(--clr-orange, #f29102);
    color:           #fff;
    text-decoration: none;
}

/* ── Alert / empty state ─────────────────── */
.initialise-pub-wrap .pub-alert-empty {
    background:  rgba(242, 145, 2, 0.1);
    border:      1px solid rgba(242, 145, 2, 0.3);
    border-left: 4px solid var(--clr-orange, #f29102);
    color:       #555;
    border-radius: 0 6px 6px 0;
    padding:     15px;
}

.initialise-pub-wrap .pub-alert-empty a {
    color:      var(--clr-blue);
    font-weight: bold;
}

/* ── Pagination ──────────────────────────── */
.initialise-pub-wrap .pub-pagination-info {
    font-size: var(--fs-100, 0.9rem);
    color:     #888;
}

.initialise-pub-wrap .pub-pagination-list {
    gap: 5px;
}

.initialise-pub-wrap .pub-page-link {
    color:         var(--clr-blue, #0273b0);
    border-color:  rgba(2, 115, 176, 0.3);
    font-size:     var(--fs-100, 0.9rem);
    border-radius: 5px;
}

.initialise-pub-wrap .pub-page-link:hover {
    background:  var(--clr-blue, #0273b0);
    color:       #fff;
    border-color: var(--clr-blue);
}

.initialise-pub-wrap .page-item.active .pub-page-link {
    background:  var(--clr-blue, #0273b0);
    border-color: var(--clr-blue, #0273b0);
    color:       #fff;
}

/* ── Latest Publications Section ─────────── */
.initialise-pub-wrap.initialise-pub-latest .pub-latest-header {
    border-bottom: 3px solid var(--clr-blue, #0273b0);
    padding-bottom: 12px;
    margin-bottom:  20px;
}

.initialise-pub-wrap.initialise-pub-latest .pub-latest-title {
    font-family: var(--ff-serif, 'Montserrat', serif);
    font-size:   var(--fs-500, 1.5rem);
    color:       var(--clr-blue, #0273b0);
}

.initialise-pub-wrap .pub-btn-viewall {
    background:   var(--clr-blue, #0273b0);
    color:        #fff;
    font-size:    var(--fs-100, 0.9rem);
    font-weight:  600;
    border-radius: 5px;
    padding:      7px 16px;
    text-decoration: none;
    border:       none;
}

.initialise-pub-wrap .pub-btn-viewall:hover {
    background:      var(--clr-orange, #f29102);
    color:           #fff;
    text-decoration: none;
}

 .pub-view-all-footer {
    color:       var(--clr-blue);
    font-weight: bold;
    font-size:   var(--fs-200, 1.2rem);
    text-decoration: none;
}

.initialise-pub-wrap .pub-view-all-footer:hover {
    color:           var(--clr-orange);
    text-decoration: underline;
}

/* ── Responsive ──────────────────────────── */
@media (max-width: 768px) {
    .initialise-pub-wrap .pub-card {
        border-left-width: 4px;
    }
    .initialise-pub-wrap .pub-card-title {
        font-size: var(--fs-200, 1.2rem);
    }
    .initialise-pub-wrap .pub-pagination-list {
        gap: 3px;
    }
    .initialise-pub-wrap .pub-latest-header {
        flex-direction: column;
        align-items:    flex-start !important;
        gap:            10px;
    }
}

/* ============================================
   LATEST PUBLICATIONS - GRID CARDS
   ============================================ */

/* Equal height cards */
.initialise-pub-wrap.initialise-pub-latest .pub-latest-card {
    border:        none;
    border-top:    4px solid var(--clr-blue, #0273b0);
    border-radius: 8px;
    box-shadow:    0 3px 10px rgba(0, 0, 0, 0.08);
    transition:    transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.initialise-pub-wrap.initialise-pub-latest .pub-latest-card:hover {
    transform:    translateY(-4px);
    box-shadow:   0 8px 20px rgba(2, 115, 176, 0.15);
    border-color: var(--clr-orange, #f29102);
}

/* Card footer border */
.initialise-pub-wrap .pub-card-footer-grid {
    border-top: 1px solid rgba(2, 115, 176, 0.15);
}

/* Compact title size for grid */
.initialise-pub-wrap.initialise-pub-latest .pub-card-title {
    font-size:   var(--fs-200, 1.2rem);
    line-height: 1.4;
}

/* Responsive adjustments */
@media (max-width: 576px) {
    .initialise-pub-wrap.initialise-pub-latest .pub-latest-card {
        border-top-width: 3px;
    }
}


/* ============================================
   FULL LIST - single column card overrides
   ============================================ */

/* 
   In the full list (col-12), cards can show
   more info horizontally on large screens 
*/
.initialise-pub-wrap:not(.initialise-pub-latest) .pub-latest-card {
    border-top:  none;
    border-left: 5px solid var(--clr-blue, #0273b0); /* back to left border for list */
    border-radius: 0 10px 10px 0;
}

.initialise-pub-wrap:not(.initialise-pub-latest) .pub-latest-card:hover {
    border-left-color: var(--clr-orange, #f29102);
    transform: none;   /* no lift effect on list view */
    box-shadow: 0 4px 14px rgba(2, 115, 176, 0.15);
}
/* ── Excerpt ─────────────────────────────── */
.initialise-pub-wrap .pub-excerpt {
    font-size:   var(--fs-100, 0.9rem);
    color:       #666;
    line-height: 1.6;
    margin-top:  8px;

    /* Clamp to 3 lines in grid mode */
    display:            -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow:           hidden;
}

/* Full list - show more lines */
.initialise-pub-wrap:not(.initialise-pub-latest) .pub-excerpt {
    -webkit-line-clamp: 4;
    color:              #555;
}

/* Grid - tighter */
.initialise-pub-wrap.initialise-pub-latest .pub-excerpt {
    -webkit-line-clamp: 3;
    font-size:          var(--fs-50, 0.7rem);
}

/* ============================================
   EXCERPT + READ MORE
   ============================================ */

/* Short excerpt - always visible */
.initialise-pub-wrap .pub-excerpt {
    font-size:   var(--fs-100, 0.9rem);
    color:       #666;
    line-height: 1.6;
    margin:      0;
}

/* Full abstract - inside collapse */
.initialise-pub-wrap .pub-abstract-full {
    font-size:     var(--fs-100, 0.9rem);
    color:         #555;
    line-height:   1.7;
    margin-top:    8px;
    padding:       12px;
    background:    var(--clr-light, #f6fafc);
    border-left:   3px solid var(--clr-blue, #0273b0);
    border-radius: 0 6px 6px 0;
}

/* Read more button */
.initialise-pub-wrap .pub-read-more-btn {
    background:      none;
    border:          none;
    padding:         4px 0;
    margin-top:      4px;
    color:           var(--clr-blue, #0273b0);
    font-size:       var(--fs-100, 0.9rem);
    font-weight:     600;
    cursor:          pointer;
    text-decoration: none;
    display:         inline-flex;
    align-items:     center;
    gap:             4px;
    transition:      color 0.2s ease;
}

.initialise-pub-wrap .pub-read-more-btn:hover {
    color:           var(--clr-orange, #f29102);
    text-decoration: none;
}

/* Toggle text visibility */
/* Default: show "Read more", hide "Read less" */
.initialise-pub-wrap .pub-read-more-btn .read-less-text {
    display: none;
}

.initialise-pub-wrap .pub-read-more-btn .read-more-text {
    display: inline;
}

/* When collapse is open: show "Read less", hide "Read more" */
.initialise-pub-wrap .pub-read-more-btn[aria-expanded="true"] .read-more-text {
    display: none;
}

.initialise-pub-wrap .pub-read-more-btn[aria-expanded="true"] .read-less-text {
    display: inline;
}

/* ============================================
   FULL LIST - 2 column layout adjustments
   ============================================ */

/* In 2-col layout, slightly smaller title */
.initialise-pub-wrap:not(.initialise-pub-latest) .pub-card-title {
    font-size: var(--fs-200, 1.2rem);
}

/* Left border for list cards */
.initialise-pub-wrap:not(.initialise-pub-latest) .pub-latest-card {
    border-top:    none;
    border-left:   5px solid var(--clr-blue, #0273b0);
    border-radius: 0 10px 10px 0;
}

.initialise-pub-wrap:not(.initialise-pub-latest) .pub-latest-card:hover {
    border-left-color: var(--clr-orange, #f29102);
    transform:         none;
}