/* =====================
   EvoRoads Theme
   ===================== */

@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@300;400;600;700&display=swap');


/* ====================
   GLOBAL
   ==================== */

body {
  font-family: 'Raleway', sans-serif;
  font-weight: 300;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Raleway', sans-serif;
  color: #842FDD;
  font-weight: 700;
}

a {
  color: #0077D8;
}

a:hover {
  color: #842FDD;
}


/* ====================
   HEADER & NAVBAR
   ==================== */

/* Top account bar */
.account-masthead {
  background: linear-gradient(135deg, #842FDD, #0077D8) !important;
}

.account-masthead a,
.account-masthead span {
  color: #ffffff !important;
}

.account-masthead a:hover {
  color: #F59D32 !important;
}

/* Main header wrapper */
header.masthead {
  background-color: #ffffff !important;
  background-image: none !important;
  border-bottom: 3px solid #842FDD !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

/* Logo spacing */
.header-image {
  margin-right: 2rem;
}

/* Navbar background */
.navbar,
nav.navbar,
.navbar.navbar-expand-lg,
.navbar-light {
  background-color: #ffffff !important;
  background-image: none !important;
  border: none !important;
}

/* Navbar links */
.navbar a,
.navbar .nav-link,
.navbar .navbar-nav a {
  font-family: 'Raleway', sans-serif;
  font-weight: 600;
  font-size: 1rem !important;
  color: #842FDD !important;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

/* Navbar link hover */
.navbar a:hover,
.navbar .nav-link:hover,
.navbar .navbar-nav a:hover {
  color: #F59D32 !important;
  text-decoration: underline !important;
  text-underline-offset: 4px;
  text-decoration-thickness: 2px;
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

/* Navbar active link */
.navbar a[aria-current],
.navbar li.active a,
.navbar .active a,
a.nav-link.active,
.nav-link.active {
  color: #842FDD !important;
  background-color: transparent !important;
  border: none !important;
  border-bottom: 2px solid #842FDD !important;
  border-radius: 0 !important;
  padding-bottom: 2px;
  box-shadow: none !important;
}

/* Navbar search bar */
.navbar .search-input {
  border-radius: 20px;
  border: none;
}


/* ====================
   BUTTONS
   ==================== */

.btn-primary,
.btn-danger {
  background: linear-gradient(135deg, #842FDD, #0077D8) !important;
  border: none !important;
  border-radius: 20px;
  font-weight: 600;
  letter-spacing: 0.05em;
}

.btn-primary:hover,
.btn-danger:hover {
  background: linear-gradient(135deg, #0077D8, #842FDD) !important;
}


/* ====================
   SIDEBAR, TAGS & MODULES
   ==================== */

.sidebar .nav-facet .nav-item.active a {
  background-color: #842FDD;
  color: #ffffff;
}

.tag {
  background-color: #0677FF;
  color: #ffffff;
  border-radius: 20px;
}

.module-heading {
  background: linear-gradient(135deg, #9B59B6, #5DADE2) !important;
  color: #ffffff !important;
}

.module-content {
  background-color: #f8f4ff !important;
}

/* Order by dropdown padding */
.select2-container,
select.form-select,
.form-select {
  margin-right: 1rem;
}


/* ====================
   HOMEPAGE
   ==================== */

/* Layout */
.homepage .main.hero .container {
  max-width: 80% !important;
  padding: 0 2rem;
}

.homepage .main.hero .row {
  display: flex;
  align-items: stretch;
}

.homepage .main.hero .col-md-6 {
  flex: 1;
}

/* Promotion box wider than search box */
.homepage .main.hero .col-md-6:first-child {
  flex: 2;
}

.homepage .main.hero .col-md-6:last-child {
  flex: 1;
}

/* Promotion box */
.module-promotion {
  height: 100%;
  min-height: 700px;
}

.module-promotion .featured {
  height: 100%;
  max-height: none !important;
}

.module-promotion .featured img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  cursor: default;
}

.module-promotion .featured a {
  pointer-events: none;
  cursor: default;
}

/* Search data box (homepage only) */
.homepage .module-search,
.homepage .module-search .module-content,
.homepage .search-form {
  background-color: #842FDD !important;
  background-image: none !important;
}

.homepage .module-search .heading {
  color: #ffffff !important;
}

.homepage .module-search .search-input input {
  border: none;
  border-radius: 4px;
}

/* Popular tags (homepage only) */
.homepage .module-search .tags,
.homepage .module-search .tags h3 {
  background-color: #0077D8 !important;
  color: #ffffff !important;
  padding: 8px 12px;
  margin: 0;
}


/* ====================
   FOOTER
   ==================== */

footer {
  background: linear-gradient(135deg, #842FDD, #0077D8) !important;
  color: #ffffff !important;
}

footer a {
  color: #F59D32 !important;
}

footer a:hover {
  color: #ffffff !important;
}

/* ---- Reduce space above footer ---- */
.homepage .main.module-feeds {
  padding-top: 0 !important;
  margin-top: 0 !important;
  min-height: 0 !important;
}

/* ---- Footer height ---- */
footer.site-footer {
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
}

footer.site-footer .py-3 {
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
}

/* ---- Hide featured organisations/groups on homepage ---- */
.homepage .main.module-feeds {
  display: none !important;
}

/* ---- Checkbox grid layout ---- */
fieldset.checkboxes {
  display: grid;
  grid-template-columns: repeat(5, auto);
  gap: 4px 16px;
  border: none;
  padding: 0;
  margin: 0;
}

fieldset.checkboxes label {
  display: flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
}

/* Data requirement has long labels — use 3 columns */
#field-data_requirement ~ fieldset.checkboxes,
fieldset.checkboxes:has(input[name="data_requirement"]) {
  grid-template-columns: repeat(2, 1fr);
  white-space: normal;
}

fieldset.checkboxes:has(input[name="data_requirement"]) label {
  white-space: normal;
}

/* ---- Logout button icon ---- */
.account-masthead .fa-sign-out {
  color: #ffffff !important;
}

/* Hide Members tab for anonymous visitors */
body.anonymous a[href*="/members"] {
  display: none !important;
}

/* Dataset field group headers */
.dataset-group-header {
  background-color: #f0eaf8 !important;
  color: #842FDD;
  padding: 8px 12px !important;
  font-size: 0.95rem;
  border-top: 2px solid #842FDD !important;
}

.dataset-group-header i {
  margin-right: 6px;
}

/* Dataset field group headers */
.dataset-group-header {
  background-color: #f0eaf8 !important;
  color: #842FDD !important;
  padding: 8px 12px !important;
  font-size: 0.95rem;
  border-top: 2px solid #842FDD !important;
}

.dataset-group-header i {
  margin-right: 6px;
}

/* Hide Flask Debug Toolbar */
#flDebug {
  display: none !important;
}

.flDebugBar, .flDebugPanel, #flDebugToolbar, .debug {
  display: none !important;
}

/* Fill aside secondary background */
aside.secondary {
  background-color: #f8f4ff !important;
}