:root {
    --primary-color: #111111; /* Dark Black */
    --text-color: #505050; /* Dark Grey */
    --secondary-color: #767676; /* Mid Grey */
    --disabled-color: #999999; /* Light Grey */
    --surface-color: #F5F5F5; /* Very Light Grey */
    --background-color: #FFFFFF; /* White */
    --blue-primary-color: #1a0dab; /* Dark Blue */
    --blue-text-color: #1F3D8A  ; /* Dark Sky Blue */
    --blue-secondary-color: #2376D8; /* Medium Sky Blue */
    --blue-surface-color: #E8F0FE; /* Light Sky Blue */
}

/* ===============================
   COLOR THEME OVERRIDES (Bulma mapping)
   =============================== */

/* Navbar theme */
.navbar,
.navbar.is-light {
  background-color: var(--surface-color) !important;
  color: var(--primary-color) !important;
  border-bottom: 1px solid rgba(0,0,0,0.06);
}

.navbar .navbar-item,
.navbar .navbar-link {
  color: var(--primary-color) !important;
}

.navbar .navbar-item:hover,
.navbar .navbar-link:hover {
  background-color: rgba(0,0,0,0.03) !important;
  color: var(--primary-color) !important;
}

/* Footer theme */
.footer {
  background-color: var(--surface-color) !important;
  color: var(--secondary-color) !important;
  border-top: 1px solid rgba(0,0,0,0.06);
  padding: 2rem 1.5rem;
}

.footer .content,
.footer p {
  color: var(--secondary-color) !important;
}

/* Burger icon color */
.navbar-burger,
.navbar-burger span {
  color: var(--primary-color) !important;
  background-color: var(--primary-color) !important; /* spans are bars */
}


/* Base page */
html, body {
  background: var(--background-color);
  color: var(--text-color);
}

/* Titles / emphasized text */
.title,
.subtitle,
.label,
strong {
  color: var(--primary-color);
}

/* Body content text */
.content,
.content p,
.content li,
.content span {
  color: var(--text-color);
}

/* Muted/secondary text */
.has-text-grey,
.help,
.is-size-7,
.is-size-6,
.is-size-5 {
  color: var(--secondary-color) !important;
}

/* Box/Card text */
.card,
.box {
  color: var(--text-color);
}
.card .title,
.box .title {
  color: var(--primary-color);
}

/* Tables */
.table {
  color: var(--text-color);
  background-color: var(--background-color) !important;
}
.table th {
  color: var(--primary-color);
}
.table.is-striped tbody tr:nth-child(even) {
  background-color: var(--surface-color) !important;
}

.table.is-hoverable tbody tr:hover {
  /* box-shadow: inset 3px 0 0 var(--blue-secondary-color); */
  background-color: var(--blue-surface-color) !important;
}

/* Links */
a {
  color: var(--blue-primary-color);
}
a:hover {
  color: var(--blue-text-color);
}


/* view toggle */
.view-toggles .button {
  background-color: var(--surface-color) !important;
  color: var(--text-color) !important;
  border-color: var(--surface-color) !important;
}

.view-toggles .button:hover {
  color: var(--primary-color) !important;
}

.view-toggles .button.is-active {
  background-color: var(--blue-surface-color) !important;
  color: var(--blue-primary-color) !important;
  border-color:  var(--blue-surface-color) !important;
  font-weight: 600;
}

/* Buttons */
.button.is-link {
  background-color: var(--blue-secondary-color) !important;
  border-color: var(--blue-secondary-color) !important;
  color: var(--blue-primary-color) !important;
}

.button.is-link.is-light {
  background-color: var(--blue-surface-color) !important;
  border-color: transparent !important;
  color: var(--blue-primary-color) !important;
}


/* ===============================
   COLOR OVERRIDES COMPLETED
   =============================== */

body {
    padding-top: 70px; /* account for fixed navbar */
}
.card {
    margin-bottom: 1.5rem;
    border-radius: 12px;
}
.section-title {
    margin-top: 2rem;
    margin-bottom: 1rem;
}

/* --- CUSTOM WIDTH ADJUSTMENT --- */
/* This overrides Bulma's default wide containers on large screens */
@media screen and (min-width: 1130px) {
    .container {
    max-width: 1130px !important; /* Forces the content to be narrower (approx 80% on laptop) */
    }
}

/* Make columns align with surrounding text on phones */
@media (max-width: 768px) {
    .flush-mobile > .column {
    padding-left: 0 !important;
    padding-right: 0 !important;
    }
}

/* Equal height grid cells */
.columns.is-multiline > .column {
  display: flex;
}
.columns.is-multiline > .column > .publication {
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 100%;
}

/* Only push a dedicated footer to the bottom */
.publication .pub-footer {
  margin-top: auto;
}
