/* Main Site Fonts: Lato for body, Montserrat for UI/default headings, Oswald for Page Titles */
@import url('https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700&family=Montserrat:wght@400;500;600;700&family=Oswald:wght@400;500&display=swap');

:root {
  --primary-color: #3f638f;
  --primary-darker: #2a4466;
  --primary-medium: #34547a;
  --primary-lighter: #6083C9;
  --secondary-color: #cc5500;
  --text-color: #000;
  --text-muted: #555;
  --text-light: #333;
  --text-very-light: #444;
  --text-on-primary: #fff;
  --text-on-primary-muted: #eee;
  --bg-page: #eee;
  --bg-content: #fff;
  --bg-wrapper: #ccc; /* Hover button bg */
  --bg-secondary-entry: #f5f5f5; /* Active button bg & Secondary Entry background */
  --bg-filter-button: #eee;
  --bg-filter-button-hover: #ddd; /* Used for filter button hover */
  --bg-collapsible-default: #E9E9E9; /* For default collapsible background */
  --bg-expand-hover: #f0f0f0;
  --bg-details-box: #fff;
  --bg-year-overlay-start: rgba(42, 68, 102, 0.8);
  --bg-year-overlay-end: rgba(42, 68, 102, 0);
  --border-color: #eee;
  --border-color-light: #ddd; /* Button border */
  --border-secondary-entry: #eee;
  --border-details-box: #eee;
  --wrapper-bg-image: none;
  --base-font-size: 14px;
  --base-line-height: 1.5;
  --font-family-base: 'Lato', Arial, Helvetica, sans-serif;
  --font-family-ui-headings: 'Montserrat', Arial, Helvetica, sans-serif;
  --font-family-page-titles: 'Oswald', Arial, Helvetica, sans-serif;
  --border-radius-outer: 10px;
  --border-radius-inner: 3px;
  --border-radius-button: 5px;
  --border-radius-filter: 4px;
  --border-radius-collapsible: 5px;
  --border-radius-latest-box: 3px;
  --border-radius-details-box: 3px;
  --wrapper-width: 960px;
  --wrapper-max-width: 95%;
  --sidebar-width: 300px;
  --main-gap: 2.14rem;
  --sidebar-gap: 1.43rem;
  
  /* Article List Spacing Variables */
  --first-article-top-margin: 0.5em;  
  --inter-article-top-margin: 0.5em;   
  
  --inter-section-margin: 0.7rem; 
  
  --secondary-entry-padding-left: 2.6em;
  --secondary-entry-margin-left: -0.4em; 
  --secondary-entry-number-left: 0.4em;
  --collapsible-content-inner-padding-left: 1rem;
  --collapsible-line-margin-left: 0.36rem;

  --list-item-margin-bottom: 0.5em; /* Used by JS class for .article-item-needs-top-margin */
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html {
    line-height: var(--base-line-height);
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    overflow-y: scroll;
}
body {
  font-family: var(--font-family-base);
  font-size: var(--base-font-size);
  font-weight: 400;
  line-height: var(--base-line-height);
  background-color: var(--bg-page);
  color: var(--text-color);
}
ul { list-style: none; }
img, picture, video, canvas, svg { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }

b, strong {
    font-weight: 700;
}

a { color: var(--primary-color); text-decoration: none; cursor: pointer; transition: color 0.2s ease; }
a:visited { color: #551a8b; }
a:hover, a:focus { text-decoration: none; color: var(--secondary-color); outline: 2px solid transparent; outline-offset: 2px; }
button:focus-visible { outline: 2px solid var(--primary-darker); outline-offset: 2px; }

#wrapper {
  width: var(--wrapper-width); max-width: var(--wrapper-max-width); margin: 3.57rem auto 0 auto;
  background-color: transparent; display: flex; flex-wrap: wrap; flex-direction: row-reverse;
  gap: var(--main-gap); align-items: flex-start;
}
#sidebar-column-container { width: var(--sidebar-width); flex-shrink: 0; display: flex; flex-direction: column; gap: var(--sidebar-gap); }
#main-content-area { flex: 1; min-width: 300px; }

.content-frame {
  background-color: var(--bg-wrapper);
  padding: 0.71rem;
  border-radius: var(--border-radius-outer);
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}
.content-frame-inner { background-color: var(--bg-content); padding: 0.71rem; border-radius: var(--border-radius-inner); }
#main-content-inner { padding: 1.07rem; }
#sidebar { padding: 0; }

#sidebar-widgets-wrapper.content-frame {
  position: relative;
}

@media (max-width: 960px) {
  #wrapper { width: 100%; max-width: 100%; margin-top: 1.43rem; flex-direction: column; gap: var(--main-gap); }
  #sidebar-column-container, #main-content-area { width: 100%; }
  #sidebar-column-container { gap: var(--sidebar-gap); }
  .content-frame { border-radius: 0; box-shadow: none; padding: 0.36rem; }
  .content-frame-inner, #main-nav, #site-title-block { border-radius: var(--border-radius-inner); }
  .book-cover-grid { grid-template-columns: repeat(2, 100px); justify-content: center; }
  .year-overlay { font-size: 0.9em; padding: 0.2em 0.4em;}
  .page-header-container { flex-direction: column; align-items: flex-start !important; gap: 0.5em; }
  .page-header-container .expand-collapse-controls { justify-content: flex-start; position: static; top: auto; }
  #page-books .image-collapsible-content { margin-left: 0.71rem; }
  #page-books .book-entry .short_resume_content { margin-left: 0.71rem; }
  #page-articles .latest-section-box { margin-left: 0; margin-right: 0; }
  .language-filter-controls, .status-filter-controls, .book-type-filter-controls { flex-direction: column; align-items: flex-start;}
  .language-filter-buttons-container, .status-filter-buttons-container { align-items: flex-start; width: 100%;}
  .language-filter-controls .filter-button-group, .status-filter-controls .filter-button-group { justify-content: flex-start; }
  .language-filter-controls .filter-label, .status-filter-controls .filter-label, .book-type-filter-controls .filter-label {
      margin-right: 0; margin-bottom: 0.5em;
  }
  #page-bio .entry > section,
  #page-articles .entry > section,
  #page-projects .entry > section,
  .section-group-header {
      margin-left: 0;
      margin-right: 0;
  }
}
@media (max-width: 480px) {
  .book-cover-grid { grid-template-columns: repeat(2, 80px); }
  .year-overlay { font-size: 0.8em; padding: 0.15em 0.3em;}
  #page-books .image-collapsible-content { margin-left: 0.71rem; }
  #page-books .book-entry .short_resume_content { margin-left: 0.71rem; }
}

#site-title-block {
  background: var(--primary-color); color: var(--text-on-primary);
  padding: 1rem 0.71rem 0.5rem 0.71rem;
  border-radius: var(--border-radius-inner) var(--border-radius-inner) 0 0;
  margin: 0;
}
#site-title-block h1 {
  font-family: var(--font-family-ui-headings);
  font-size: 2.1em;
  margin: 0 0 0.15rem 0;
  color: var(--text-on-primary);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.02em;
}
#site-title-block .tagline {
  font-family: var(--font-family-ui-headings);
  font-size: 0.9em;
  text-transform: uppercase;
  color: var(--text-on-primary-muted);
  margin: 0.1rem 0 0 0;
  font-weight: 500;
}
#portrait { margin: 0; }
#portrait img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0 0 var(--border-radius-inner) var(--border-radius-inner);
}

#sidebar .widget {
  padding: 0.71rem;
  margin-bottom: 0;
}
#sidebar .widget.contact-widget {
    padding: 0 0.71rem 0.71rem 0.71rem;
}
#sidebar .widget-title {
  font-family: var(--font-family-ui-headings);
  background-color: var(--primary-color); color: var(--text-on-primary); text-transform: uppercase;
  font-size: 0.9em;
  padding: 0.57rem 0.71rem; border-radius: var(--border-radius-inner);
  margin-bottom: 0.35rem;
  font-weight: 500;
  line-height: 1.3;
}
#sidebar .widget-content { padding: 0 0.36rem; font-size: 1em; }
#sidebar .widget:not(.contact-widget) .widget-content > div {
  margin-bottom: 0.6em;
}
#sidebar .widget:not(.contact-widget) .widget-content > div:last-child {
  margin-bottom: 0;
}
#sidebar .widget-content ul.social-links-list {
    list-style: none;
    padding: 0;
    margin: 0.8em 0 0.2em 0;
}
#sidebar .widget-content ul.social-links-list li {
    margin-bottom: 0.2em;
}
#sidebar .widget-content ul.social-links-list li:last-child {
    margin-bottom: 0;
}
#sidebar .widget-content ul.social-links-list li a {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    color: var(--primary-color);
    line-height: 1.2;
}
#sidebar .widget-content ul.social-links-list li a:hover {
    color: var(--secondary-color);
    text-decoration: none;
}
#sidebar .widget-content ul.social-links-list li a img {
    height: 1.5em;
    width: 1.5em;
    object-fit: contain;
    vertical-align: middle;
    opacity: 0.75;
    transition: opacity 0.2s ease-in-out;
    margin-right: 0.3em;
}
#sidebar .widget-content ul.social-links-list li a:hover img,
#sidebar .widget-content ul.social-links-list li a:focus img {
    opacity: 1;
}
#sidebar .widget.contact-widget .widget-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0;
}
.contact-title-icons {
    display: flex;
    align-items: center;
    gap: 0.6em;
}
.contact-title-icons a.social-icon-link {
    color: var(--text-on-primary);
    display: inline-flex;
    align-items: center;
    font-size: 0.9em;
    font-weight: 400;
    line-height: 1.2;
    text-decoration: none;
}
.contact-title-icons a.social-icon-link:hover {
    color: var(--text-on-primary-muted);
    text-decoration: none;
}
.contact-title-icons a.social-icon-link img {
    height: 1.2em;
    width: 1.2em;
    object-fit: contain;
    margin-right: 0.3em;
    opacity: 1;
    fill: currentColor;
    transition: opacity 0.2s ease-in-out;
}
.contact-title-icons a.social-icon-link:hover img {
    opacity: 0.9;
}

#main-nav { background: var(--primary-color); border-radius: var(--border-radius-inner); margin-bottom: 2.14rem; width: 100%; overflow: hidden; }
#main-nav ul.menu { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; }
#main-nav ul.menu li { position: relative; }
#main-nav ul.menu li a {
  font-family: var(--font-family-ui-headings);
  display: block; padding: 0.86rem 1.07rem; font-size: 0.9em;
  text-transform: uppercase; color: var(--text-on-primary);
  text-decoration: none; white-space: nowrap; transition: background-color 0.2s ease;
  font-weight: 500;
}
#main-nav ul.menu li.current-menu-item a,
#main-nav ul.menu li.current-menu-item a:hover,
#main-nav ul.menu li.current-menu-item a:focus {
  text-decoration: none; background-color: var(--primary-darker); font-weight: 500;
  color: var(--text-on-primary);
}

#content { padding: 0; }
.post { margin: 0 0 0.715rem 0; }

.page-header-container {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding-left: 0.71rem;
    padding-right: 0.71rem;
    margin-bottom: 1.07rem;
}

#page-books .page-header-container,
#page-articles .page-header-container,
#page-bio .page-header-container,
#page-projects .page-header-container {
    align-items: baseline;
}
#page-books .page-header-container .expand-collapse-controls,
#page-articles .page-header-container .expand-collapse-controls,
#page-bio .page-header-container .expand-collapse-controls,
#page-projects .page-header-container .expand-collapse-controls {
    position: relative;
    top: -0.35em;
}

.page-title {
    font-family: var(--font-family-page-titles);
    font-size: 2.3em;
    color: var(--primary-lighter);
    padding-bottom: 0; margin-bottom: 0;
    border-bottom: none; font-weight: 400;
    padding-left: 0; padding-right: 0;
    line-height: 1.2;
    letter-spacing: 0.01em;
}

.entry { line-height: var(--base-line-height); }
.entry > p,
.entry > ul:not(.social-links-list) { 
    padding-left: 0.71rem;
    padding-right: 0.71rem;
}
.entry > section {
    padding-left: 0;
    padding-right: 0;
}

#page-bio .entry > section,
#page-articles .entry > section,
#page-projects .entry > section {
    margin-left: 0.71rem;
    margin-right: 0.71rem;
}

.entry p { margin-bottom: 1em; }

.section-group-header {
  font-family: var(--font-family-ui-headings);
  background-color: var(--primary-color);
  color: var(--text-on-primary);
  font-weight: 500;
  font-size: 1em;
  padding: 0.6rem 0.71rem;
  border-radius: var(--border-radius-collapsible);
  line-height: 1.3;
  margin-top: 1.5em;
  margin-bottom: 0;
  margin-left: 0.71rem;
  margin-right: 0.71rem;
}

#page-bio .entry > h3.section-group-header:first-of-type {
    margin-top: 2.2em; 
}

.entry > h3:not(.section-group-header) {
    font-family: var(--font-family-ui-headings);
    padding-left: 0.71rem;
    padding-right: 0.71rem;
    font-size: 1.4em;
    margin: 1.5em 0 1em 0;
    border-bottom: none; padding-bottom: 0;
    font-weight: 500;
    color: var(--primary-darker);
    letter-spacing: normal;
}

#page-books .entry > h3 {
    font-size: 1.25em;
    font-weight: 600;
    margin-bottom: 0.5em;
}

.entry > h4 { /* Default h4 styling in entry */
    font-family: var(--font-family-ui-headings);
    padding-left: 0.71rem;
    padding-right: 0.71rem;
    font-size: 1.1em;
    font-weight: 500;
    margin: 0.5em 0 0.3em 0;
    border-bottom: none; color: var(--text-very-light);
    letter-spacing: normal;
}
.entry h1, .entry h2:not(.page-title), .entry h5, .entry h6 {
    font-family: var(--font-family-ui-headings);
    font-weight: 500;
    padding-left: 0.71rem;
    padding-right: 0.71rem;
    color: var(--primary-darker);
}

.page-header-container + .entry > h3:first-child,
.page-header-container + .entry > .static-box:first-child,
.page-header-container + .book-type-filter-controls,
.page-header-container + .entry > .section-group-header:first-child {
    margin-top: 0;
}

.book-type-filter-controls + .entry > h3:first-child { margin-top: 0; }

.post > .page-title + .entry > h3:first-child { margin-top: 0; }
.post > .page-title + .entry > .static-box:first-child { margin-top: 0; }

.entry ul:not(.social-links-list) { list-style: none; } 

.static-box { margin-bottom: 1.5em; }
.static-box-header {
  font-family: var(--font-family-ui-headings);
  background-color: var(--primary-color); color: var(--text-on-primary);
  font-weight: 500;
  font-size: 1em;
  padding: 0.6rem 0.71rem;
  border-radius: var(--border-radius-collapsible) var(--border-radius-collapsible) 0 0;
  line-height: 1.3;
}
.static-box-content {
  background-color: var(--bg-details-box); border: 1px solid var(--border-details-box);
  border-top: none; padding: 1.4em 1.4em;
  border-radius: 0 0 var(--border-radius-details-box) var(--border-radius-details-box);
}
.static-box-content p { margin-bottom: 0.5em; } /* General rule for p in static-box-content */
.static-box-content p:last-child { margin-bottom: 0; }
.static-box-content ul { margin: 0; } 

}
.static-box-content li { margin-bottom: 0.5em; } 
.static-box-content li:last-child { margin-bottom: 0; } 

.latest-section-box {
    padding: 0;
    border: none;
    background-color: transparent;
    margin-bottom: 1.5em;
}
#page-articles .latest-section-box {
    margin-left: 0.71rem;
    margin-right: 0.71rem;
}
#page-projects .entry > .static-box { 
    margin-left: 0.71rem;
    margin-right: 0.71rem;
}

#page-articles .latest-section-box .static-box-content ul li {
    position: relative;
    padding-left: 2.2em;
    list-style: none;
    margin-bottom: 0.6em;
    margin-top: 0;
}
.latest-section-box .static-box-content ul li:last-child {
    margin-bottom: 0; 
}
.latest-section-box .static-box-content ul li::before {
    content: "◇"; 
    position: absolute;
    left: -0.4em; 
    top: 0; 
    width: 1.6em; 
    text-align: right; 
    color: var(--text-muted);
    font-style: normal;
    line-height: inherit;
}

#page-articles .collapsible-content > ul { 
    margin: 0; 
    padding: 0; 
    list-style: none; 
}

#page-articles .entry li { 
    margin-top: var(--first-article-top-margin);
    margin-bottom: 0;
    padding-left: 2.2em;
    padding-right: 1em; 
    position: relative; 
    display: list-item; 
}

#page-articles .entry li.article-item-needs-top-margin {
    margin-top: var(--inter-article-top-margin);
}

.article-number, .entry-number { 
  position: absolute; left: 0; top: 0; width: 1.6em;
  text-align: right; font-weight: 400;
  color: var(--text-muted);
  line-height: inherit;
  font-style: normal;
}
#page-articles .entry li.secondary-entry {
  background-color: var(--bg-secondary-entry); 
  border: 1px solid var(--border-secondary-entry); 
  border-radius: var(--border-radius-inner);
  padding: 0.3em 0.8em 0.3em var(--secondary-entry-padding-left);
  margin-left: var(--secondary-entry-margin-left);
  margin-right: 0;
  font-size: 1em;
  position: relative; 
}
#page-articles .entry li.secondary-entry .article-number {
    position: absolute; 
    left: var(--secondary-entry-number-left); 
    top: 0.3em;
    width: 1.6em; text-align: right; font-weight: 400;
    color: var(--text-muted); line-height: inherit;
}

.entry em, .entry i { font-style: italic; }
.entry a { text-decoration: none; }
.entry a:hover, .entry a:focus { text-decoration: none; color: var(--secondary-color); }

.resume-item { margin-bottom: 0.8em; line-height: 1.4; }
#page-bio .collapsible-content .resume-item:last-child { margin-bottom: 0; }
#page-bio .collapsible-content .resume-item { padding-right: 1.07rem; padding-left: 0; }

#page-bio .collapsible-content .resume-item:first-child {
    margin-top: var(--first-article-top-margin); 
}

.resume-entry-block { }
.title-year-row { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 0; }
.title-year-row .title { font-weight: 400; }
.title-year-row .year { flex-shrink: 0; padding-left: 1em; color: var(--text-muted); font-weight: 400; }
.institution { font-size: 0.95em; color: var(--text-light); font-weight: 400; }
#page-bio .short_resume_content { margin-top: 0; font-size: 0.95em; padding-left: 0; padding-right: 0; }

.expand-collapse-controls { display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: flex-end; line-height: 1.2; }
.expand-collapse-controls button {
  font-family: var(--font-family-ui-headings);
  background: none; color: var(--text-muted); border: 1px solid transparent;
  padding: 0.4em 0.8em; font-weight: 400;
  border-radius: var(--border-radius-button);
  cursor: pointer; font-size: 0.9em; text-decoration: none; line-height: 1.2;
  transition: color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}
.expand-collapse-controls button:hover {
  background-color: var(--bg-expand-hover); color: var(--primary-darker);
  box-shadow: inset 0 0 0 1px var(--primary-darker); text-decoration: none;
}
.entry > .expand-collapse-controls { margin: 1rem 0 1.5rem 0; padding-left: 0.71rem; padding-right: 0.71rem; padding-top: 0.5rem; }

button.collapsible {
  font-family: var(--font-family-ui-headings);
  display: block;
  width: 100%;
  text-align: left;
  padding: 0.45rem 2.14rem 0.45rem 0.71rem;
  margin-top: var(--inter-section-margin);
  background-color: var(--bg-collapsible-default); 
  color: var(--text-light);
  border: 1px solid var(--border-color-light); 
  border-radius: var(--border-radius-collapsible);
  cursor: pointer; position: relative; text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  line-height: 1.3;
  font-weight: 400;
  font-size: 1em; 
  margin-bottom: 0;
  letter-spacing: normal;
}

button.collapsible.sub-collapsible {
    margin-top: var(--inter-section-margin);
}

#page-bio .collapsible-content > section > button.sub-collapsible {
    margin-left: var(--secondary-entry-margin-left); 
    width: calc(100% - var(--secondary-entry-margin-left)); 
}

button.collapsible:hover, button.collapsible:focus {
  background-color: var(--bg-wrapper); 
  color: var(--primary-darker);
  border-color: var(--border-color-light); 
  text-decoration: none;
}

button.collapsible.active {
  background-color: var(--bg-secondary-entry); 
  color: var(--text-light);          
  border-color: var(--border-color-light); 
}

button.collapsible::after {
  content: "▶"; font-size: 0.8em; position: absolute; right: 0.71rem; top: 50%; transform: translateY(-50%);
  transition: transform 0.2s ease-in-out, color 0.2s ease;
  color: var(--text-light); 
  text-decoration: none;
}
button.collapsible:hover::after, button.collapsible:focus::after {
  color: var(--primary-darker); 
}
button.collapsible.active::after {
  transform: translateY(-50%) rotate(90deg);
  content: "▶";
  color: var(--text-light); 
}

button.collapsible.project-button {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding-right: 7em;
    gap: 1em;
}

.project-title {
    flex-grow: 1;
    flex-shrink: 1;
}

.project-year {
    flex-shrink: 0;
    font-size: calc(var(--base-font-size) * 0.9);
    color: var(--text-muted);
    font-weight: 400;
}
button.collapsible.project-button:hover .project-year,
button.collapsible.project-button:focus .project-year {
    color: var(--primary-darker);
}
button.collapsible.project-button.active .project-year {
    color: var(--text-muted); 
}

button.collapsible.project-button::after {
     right: 0.71rem;
     align-self: center;
}

.collapsible-content {
  padding-top: 0; 
  padding-bottom: 0.2rem;
  padding-left: var(--collapsible-content-inner-padding-left);
  padding-right: 0;
  margin-bottom: 0;
  border-left: 2px solid var(--border-color);
  margin-left: var(--collapsible-line-margin-left);
  overflow: hidden; display: none;
}

#page-projects .collapsible-content .project-details {
    font-size: 0.95em; 
    line-height: 1.4;  
    margin-top: 0.8em;
    padding-left: 0;
    padding-right: 0.71rem;
    padding-bottom: 0em;
    /* padding-top is now effectively handled by margin-top and the 0 padding-top of .collapsible-content */
}


#page-projects .collapsible-content .project-details p {
    /* Default paragraph margin is 1em from .entry p. */
    /* HTML change to use <br> between Funding/Role handles their spacing. */
    /* Other p tags (like descriptions) will get default .entry p margin. */
}
#page-projects .collapsible-content .project-details p:last-child {
    /* Default is margin-bottom: 1em. Override if needed for tighter spacing at end of content */
}
#page-projects .collapsible-content .project-details strong {
    font-weight: 600; 
    color: var(--text-light); 
}

#page-books .image-collapsible-content {
    margin-left: 0.71rem;
    border-left: 2px solid var(--border-color);
    padding-left: var(--collapsible-content-inner-padding-left);
    padding-right: 0.71rem;
    padding-top: 0.2rem;
    padding-bottom: 0.2rem;
    margin-top: 0.5rem;
    margin-bottom: 0;
}

.collapsible-content.sub-content {
  padding-left: var(--collapsible-content-inner-padding-left); 
  margin-left: var(--collapsible-line-margin-left); 
  border-left: 2px solid var(--bg-secondary-entry); 
}
#page-bio .collapsible-content.sub-content {
    margin-left: -1rem;       
    border-left: none;        
}

.entry > .book-entry, .journal-issues-list > .book-entry {
    padding-left: 0;
    position: static;
    border-bottom: none;
    padding-bottom: 0;
    margin-top: 0;
    margin-bottom: 0.75rem;
    padding-right: 0;
}
.entry > .book-entry:last-of-type,
.journal-issues-list > .book-entry:last-of-type { margin-bottom: 0; }

.book-entry > .book-reference-text .entry-number {
    position: absolute;
    left: 0.85rem;
    top: 0;
    width: 2.5em;
    text-align: left;
    font-weight: 400;
    color: var(--text-muted);
    line-height: inherit;
    font-style: normal;
}
.book-entry .book-reference-text {
    position: relative;
    padding-left: 2.6em;
    margin-bottom: 0.2em;
    padding-right: 0.71rem;
}
.book-entry .short_resume_content {
    margin-left: 0.71rem;
    padding-left: 0;
    padding-right: 0.71rem;
    margin-top: 0;
}

#page-books .short_resume_content > button.collapsible {
    margin-top: 0.3em;
}

#page-books .short_resume_content > button.collapsible.active:has(+ .book-details-box),
#page-books .short_resume_content > button.collapsible.active.followed-by-details-box {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}
#page-books .book-details-box + button.collapsible {
    margin-top: 0.3em;
}
#target-translations-work-of-history + #reviews-work-of-history {
    margin-top: 0.5rem;
}

.book-cover-grid {
    display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.07rem;
    margin-bottom: 0.3em;
}
.book-cover-placeholder {
  position: relative; width: 100%; height: auto; aspect-ratio: 150 / 220;
  background-color: #ccc; border-radius: var(--border-radius-inner);
  display: flex; align-items: center; justify-content: center;
  font-size: 0.8em; color: #666; text-align: center; overflow: hidden;
}
.book-cover-placeholder img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: var(--border-radius-inner); }
.book-cover-placeholder a { display: block; width: 100%; height: 100%; }
.book-cover-placeholder .error-text { padding: 0.36rem; font-size: 0.9em; }

.year-overlay {
    font-family: var(--font-family-ui-headings);
    position: absolute; bottom: 0; left: 0; width: 100%;
    background: linear-gradient(to top, var(--bg-year-overlay-start) 40%, var(--bg-year-overlay-end) 100%);
    color: var(--text-on-primary);
    padding: 0.8em 0.5em 0.4em 0.5em;
    border-bottom-left-radius: var(--border-radius-inner); border-bottom-right-radius: var(--border-radius-inner);
    font-size: 1.1em; font-weight: 400;
    line-height: 1;
    z-index: 1; text-align: center;
    letter-spacing: normal;
    pointer-events: none;
}
.book-cover-placeholder a .year-overlay { display: none; }
.book-reference-text em { font-style: italic; }

.book-details-box.collapsible-content {
  background-color: var(--bg-details-box);
  padding-top: 0.8em;
  padding-bottom: 0.8em;
  padding-left: 0.8em;
  padding-right: 1.2em;
  margin-top: 0;
  margin-left: 0;
  margin-bottom: 0;
  border-top: none;
  border-right: 1px solid var(--border-details-box);
  border-bottom: 1px solid var(--border-details-box);
  border-radius: 0 0 var(--border-radius-details-box) var(--border-radius-details-box);
  font-size: var(--base-font-size);
  line-height: var(--base-line-height);
}
.book-details-box.collapsible-content p { margin-bottom: 0.5em; }
.book-details-box.collapsible-content p:last-child { margin-bottom: 0; }

.book-details-box.collapsible-content ul {
     list-style: none;
     padding-left: 0;
     margin: 0;
}
.book-details-box.collapsible-content li {
    position: relative;
    padding-left: 2.2em; 
    margin-bottom: var(--inter-article-top-margin); 
}
.book-details-box.collapsible-content ul li:last-child {
    margin-bottom: 0;
}

.book-details-box.collapsible-content[id^="target-reviews-"] > ul > li::before {
    content: "◇";
    position: absolute;
    left: -0.4em; 
    top: 0;
    width: 1.6em;
    text-align: right; 
    color: var(--text-muted);
    font-style: normal;
    line-height: inherit;
}
.book-details-box.collapsible-content[id^="target-reviews-"] > ul > li .entry-number {
    display: none;
}
.book-details-box.collapsible-content[id^="target-translations-"] > ul > li .entry-number,
.book-details-box.collapsible-content[id^="target-covers-"] > ul > li .entry-number {
    position: absolute;
    left: 0;
    top: 0;
    width: 1.6em;
    text-align: right;
    font-weight: 400;
    color: var(--text-muted);
    line-height: inherit;
    font-style: normal;
}
.book-details-box.collapsible-content em { font-style: italic; }


.entry em, .entry i { font-style: italic; } 
.entry a { text-decoration: none; }
.entry a:hover, .entry a:focus { text-decoration: none; color: var(--secondary-color); }

.language-filter-controls button,
.status-filter-controls button,
.book-type-filter-controls button {
  font-family: var(--font-family-base);
  background-color: var(--bg-filter-button);
  color: var(--primary-color);
  border: 1px solid var(--border-color-light);
  padding: 0.2em 0.6em;
  border-radius: var(--border-radius-filter);
  cursor: pointer;
  font-size: 0.9em;
  transition: background-color 0.2s ease, color 0.2s ease;
  font-weight: 400;
}
.language-filter-controls button:hover, .status-filter-controls button:hover, .book-type-filter-controls button:hover,
.language-filter-controls button:focus, .status-filter-controls button:focus, .book-type-filter-controls button:focus {
    background-color: var(--bg-filter-button-hover); 
    color: var(--primary-darker);
}
.language-filter-controls button.active-filter,
.status-filter-controls button.active-filter,
.book-type-filter-controls button.active-filter {
    background-color: var(--primary-color);
    color: var(--text-on-primary);
    border-color: var(--primary-color);
}
.language-filter-controls .filter-label,
.status-filter-controls .filter-label,
.book-type-filter-controls .filter-label {
    font-family: var(--font-family-ui-headings);
    font-weight: 400;
    font-size: 0.9em;
    color: var(--text-light);
    padding-right: 1em;
    flex-shrink: 0;
    line-height: 1.4;
    padding-top: 0.2em;
}

.language-filter-controls {
    margin-bottom: 0.8em;
    padding-bottom: 0.8em;
    border-bottom: none;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5em;
    border-top: none;
    padding-top: 0.8em;
    margin-top: 1.5em;
    padding-left: 0.71rem;
    padding-right: 0.71rem;
}
.language-filter-buttons-container {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.5em;
    flex-grow: 1;
}
.filter-button-group {
     display: flex;
     flex-wrap: wrap;
     gap: 0.5em;
     justify-content: flex-end;
     width: 100%;
}

.status-filter-controls {
    margin-top: 1.5em;
    margin-bottom: 0.8em;
    padding: 0.8em 0.71rem;
    border-top: none;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5em;
}
.status-filter-buttons-container {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.5em;
    flex-grow: 1;
}

.book-type-filter-controls {
    margin-top: 1.5em;
    margin-bottom: 1.2em;
    padding: 0.8em 0.71rem;
    border-top: none;
    border-bottom: none;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5em;
}
.book-type-filter-controls .filter-label { margin-right: auto; }

.journal-issues-list .book-reference-text { font-weight: 400; }

#page-footer {
  height: 3.57rem;
  width: 100%;
  margin-top: 2.14rem;
}

.book-cover-placeholder .error-text {
    font-size: 0.8em;
    color: var(--text-muted);
    padding: 0.5em;
    line-height: 1.2;
}

.related-article-links {
    font-size: 0.8em; 
    margin-left: 0;
    display: inline-block;  
    vertical-align: baseline; 
    white-space: nowrap;    
}

.related-links-prefix,
.related-links-suffix {
    color: var(--text-muted);
}

a.related-link {
    text-decoration: none;
    border: 1px solid var(--border-color-light); 
    padding: 0.15em 0.5em;
    margin: 0 0.2em; 
    border-radius: var(--border-radius-filter); 
    background-color: var(--bg-filter-button); 
    color: var(--primary-medium); 
    transition: all 0.2s ease-in-out;
}

a.related-link:hover,
a.related-link:focus {
    background-color: var(--bg-filter-button-hover);
    color: var(--primary-darker);
    border-color: var(--primary-color);
    box-shadow: 0 0 3px rgba(0,0,0,0.1);
}

#page-articles .entry li:not(.secondary-entry).highlighted-article {
    background-color: #FFEE99; 
    transition: background-color 0.3s ease-out, box-shadow 0.3s ease-out;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15); 
}
#page-articles .entry li.secondary-entry.highlighted-article {
    background-color: #FFEE99; 
    transition: background-color 0.3s ease-out, box-shadow 0.3s ease-out;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15); 
}

/* --- Projects Page Specific Styling --- */
/* Styling for the title area of the 'Ongoing project' */
#page-projects .ongoing-project-entry h4 {
    font-family: var(--font-family-ui-headings); /* Explicitly Montserrat */
    font-size: 1.2em;   /* Slightly larger than default h4, for emphasis */
    font-weight: 500;   /* Consistent with other UI headings */
    color: var(--primary-darker); /* Use the darker primary blue */
    line-height: 1.3;
    margin-top: 0;
    margin-bottom: 0.2em; /* Make it closer to the institution line */
}

#page-projects .ongoing-project-entry h4 + p { /* Targets the 'Yerevan University...' line */
    margin-top: 0; /* Ensure it's snug against the h4 */
    margin-bottom: 1em; /* Provides space before the 'Funding:' details etc. */
    font-size: 0.95em;
    color: var(--text-muted);
}

/* Styling for the conference line font size */
#page-projects .ongoing-project-entry .conference-info { /* MODIFIED: Merged with new styles */
    font-size: 0.95em; /* Match Yerevan uni line font size */
    margin-bottom: 0.5em; /* Space between the title/date and the description block */
    line-height: var(--base-line-height);
}

/* ADDED: New styles for conference announcement in Ongoing Projects */
#page-projects .ongoing-project-entry .conference-announcement {
    margin-top: 1.5em; /* Adds some space above the conference block */
}

#page-projects .ongoing-project-entry .conference-info a {
    font-weight: 500; /* Makes the conference title link slightly bolder */
}

#page-projects .ongoing-project-entry .conference-info em { /* Styles the date and location line */
    font-style: normal; /* Removes italics if not desired, or use font-style: italic; */
    font-size: 0.9em;   /* Makes the date/location line slightly smaller */
    color: var(--text-muted);
    display: block;     /* Ensures it takes its own line if not already due to <br> */
    margin-top: 0.2em;  /* Small space below the title link */
}

/* Styles for the conference description and the dividing line */
#page-projects .ongoing-project-entry .conference-description {
    padding-top: 1em;  /* Space between the dividing line and the description text */
    margin-top: 1em;   /* Space between the conference title/date block and the dividing line */
    border-top: 1px solid var(--border-color-light); /* This creates the dividing line */
    font-size: 0.95em; /* Consistent font size with other project details */
    line-height: var(--base-line-height);
}

#page-projects .ongoing-project-entry .conference-description p {
    margin-bottom: 0; /* Ensures the paragraph inside the description doesn't add extra bottom margin */
}
/* --- End of Projects Page Specific Styling --- */