/*
 * San Lorenzo de El Escorial - CKAN Theme
 * A clean, light theme inspired by https://www.aytosanlorenzo.es/
 *
 * Color palette:
 * - Primary (dark charcoal): #3C3C3C
 * - Accent (blueish dark gray): #4a5568
 * - Background: #ffffff
 * - Light gray: #f5f5f5
 * - Text: #333333
 */

:root {
  --sl-primary: #3C3C3C;
  --sl-primary-dark: #2a2a2a;
  --sl-accent: #4a5568;
  --sl-accent-hover: #2d3748;
  --sl-background: #ffffff;
  --sl-background-light: #f5f5f5;
  --sl-text: #333333;
  --sl-text-muted: #666666;
  --sl-border: #e0e0e0;
}

/* ========================================
   General Body & Typography
   ======================================== */

body {
  background-color: var(--sl-background);
  background-image: none;
  color: var(--sl-text);
  font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* ========================================
   Account Masthead (top bar)
   ======================================== */

.account-masthead {
  background-color: var(--sl-background-light);  /* Light gray for logged-in top bar */
  border-bottom: 1px solid var(--sl-border);
}

.account-masthead .account a,
.account-masthead .account button,
.account-masthead .account .not-authed a {
  color: var(--sl-primary) !important;
}

.account-masthead .account a:hover,
.account-masthead .account a:focus,
.account-masthead .account button:hover {
  color: var(--sl-accent) !important;
  background-color: transparent;
}

/* ========================================
   Main Header / Masthead
   ======================================== */

.masthead {
  background-color: var(--sl-background);
  background-image: none;
  border-bottom: none;
  padding: 25px 0;  /* Taller header for full-size logo */
}

.masthead .navbar {
  background-color: transparent;
  min-height: 80px;  /* Ensure navbar has minimum height */
}

/* Logo - override CKAN default of 60px */
.masthead .navbar .logo img {
  max-height: 120px !important;  /* Increased for full-size logo */
  height: auto;
}

/* Navigation items */
.masthead .navbar-nav .nav-item .nav-link,
.masthead .navigation .nav-pills li a,
.navbar-light .navbar-nav .nav-link,
.masthead .navbar-nav .nav-link,
.masthead .navbar-nav a,
.masthead .navbar-nav li a {
  color: var(--sl-primary) !important;
  font-weight: 500;
  transition: color 0.2s ease;
}

.masthead .navbar-nav .nav-item .nav-link:hover,
.masthead .navbar-nav .nav-item .nav-link:focus,
.masthead .navigation .nav-pills li a:hover,
.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .nav-link:focus,
.masthead .navbar-nav .nav-link:hover,
.masthead .navbar-nav .nav-link:focus,
.masthead .navbar-nav a:hover,
.masthead .navbar-nav a:focus,
.masthead .navbar-nav li a:hover,
.masthead .navbar-nav li a:focus {
  color: #ffffff !important;
  background-color: var(--sl-accent);
}

.masthead .navbar-nav .nav-item .nav-link.active,
.masthead .navigation .nav-pills li.active a,
.navbar-light .navbar-nav .nav-link.active,
.masthead .navbar-nav .nav-link.active,
.masthead .navbar-nav a.active,
.masthead .navbar-nav li.active a,
.masthead .navbar-nav .nav-item a.active,
.navbar-light .navbar-nav .nav-item .nav-link.active,
.main-navbar .navbar-nav li.active a,
.masthead .main-navbar .navbar-nav li.active a {
  color: #ffffff !important;
  background-color: var(--sl-primary) !important;
}

.masthead .navbar-nav .nav-item .nav-link.active:hover,
.masthead .navbar-nav .nav-item .nav-link.active:focus,
.masthead .navigation .nav-pills li.active a:hover,
.masthead .navigation .nav-pills li.active a:focus,
.navbar-light .navbar-nav .nav-link.active:hover,
.navbar-light .navbar-nav .nav-link.active:focus,
.masthead .navbar-nav .nav-link.active:hover,
.masthead .navbar-nav .nav-link.active:focus,
.masthead .navbar-nav a.active:hover,
.masthead .navbar-nav a.active:focus,
.masthead .navbar-nav li.active a:hover,
.masthead .navbar-nav li.active a:focus,
.masthead .navbar-nav .nav-item a.active:hover,
.masthead .navbar-nav .nav-item a.active:focus,
.main-navbar .navbar-nav li.active a:hover,
.main-navbar .navbar-nav li.active a:focus,
.masthead .main-navbar .navbar-nav li.active a:hover,
.masthead .main-navbar .navbar-nav li.active a:focus {
  color: #ffffff !important;
  background-color: var(--sl-primary-dark) !important;
}

/* Mobile toggle */
.masthead .navbar-toggler {
  border-color: var(--sl-primary);
}

.masthead .navbar-toggler .fa-bars {
  color: var(--sl-primary) !important;
}

/* Search box in header */
.masthead .site-search .form-control {
  background-color: var(--sl-background);
  border: 1px solid var(--sl-border);
  color: var(--sl-text);
}

.masthead .site-search .form-control::placeholder {
  color: var(--sl-text-muted);
}

.masthead .site-search .btn {
  background-color: var(--sl-accent);
  border-color: var(--sl-accent);
  color: #ffffff;
}

.masthead .site-search .btn:hover {
  background-color: var(--sl-accent-hover);
  border-color: var(--sl-accent-hover);
}

/* ========================================
   Main Content Area
   ======================================== */

.main {
  background-color: var(--sl-background);
  background-image: none;
}

.homepage .main {
  background-image: none;
}

/* ========================================
   Modules & Cards
   ======================================== */

.module {
  background-color: var(--sl-background);
  border: 1px solid var(--sl-border);
  border-radius: 4px;
}

.module-heading {
  background-color: var(--sl-background-light);
  border-bottom: 1px solid var(--sl-border);
  color: var(--sl-primary);
}

.module-content {
  background-color: var(--sl-background);
}

/* ========================================
   Buttons
   ======================================== */

.btn-primary {
  background-color: var(--sl-accent);
  border-color: var(--sl-accent);
  color: #ffffff;
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: var(--sl-accent-hover);
  border-color: var(--sl-accent-hover);
  color: #ffffff;
}

.btn-secondary {
  background-color: var(--sl-primary);
  border-color: var(--sl-primary);
  color: #ffffff;
}

.btn-secondary:hover,
.btn-secondary:focus {
  background-color: var(--sl-primary-dark);
  border-color: var(--sl-primary-dark);
  color: #ffffff;
}

/* ========================================
   Links
   ======================================== */

a {
  color: var(--sl-accent);
}

a:hover,
a:focus {
  color: var(--sl-accent-hover);
}

/* ========================================
   Sidebar
   ======================================== */

.secondary {
  background-color: var(--sl-background);
}

.secondary .module-heading {
  background-color: var(--sl-primary);
  color: #ffffff;
}

/* ========================================
   Footer
   ======================================== */

.site-footer {
  background-color: var(--sl-background-light);  /* Light gray for links section */
  color: var(--sl-primary);
  border-top: 1px solid var(--sl-border);
}

.site-footer a {
  color: var(--sl-primary) !important;
}

.site-footer a:hover {
  color: var(--sl-accent) !important;
}

.site-footer .footer-links {
  border-color: var(--sl-border);
}

.site-footer p,
.site-footer strong,
.site-footer span,
.site-footer label {
  color: var(--sl-primary) !important;
}

/* Make CKAN footer logo dark for light background */
.site-footer .ckan-footer-logo {
  filter: brightness(0.3);
}

/* Footer banner section - white background, full page width */
.footer-banner {
  background-color: var(--sl-background);  /* White */
  padding: 30px 0;
  border-top: 1px solid var(--sl-border);
  /* Break out of container to full width */
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  margin-top: 20px;
}

.footer-banner img {
  max-width: 100%;
  height: auto;
  max-height: 100px;
}

/* ========================================
   Dataset/Resource listings
   ======================================== */

.dataset-list .dataset-item {
  border-bottom: 1px solid var(--sl-border);
}

.dataset-heading a {
  color: var(--sl-primary);
}

.dataset-heading a:hover {
  color: var(--sl-accent);
}

/* Tags */
.tag {
  background-color: var(--sl-background-light);
  border: 1px solid var(--sl-border);
  color: var(--sl-text);
}

.tag:hover {
  background-color: var(--sl-primary);
  border-color: var(--sl-primary);
  color: #ffffff;
}

/* ========================================
   Breadcrumbs
   ======================================== */

.breadcrumb {
  background-color: transparent;
}

.breadcrumb-item a {
  color: var(--sl-accent);
}

.breadcrumb-item.active {
  color: var(--sl-text-muted);
}

/* ========================================
   Forms
   ======================================== */

.form-control {
  border-color: var(--sl-border);
  background-color: var(--sl-background);
}

.form-control:focus {
  border-color: var(--sl-accent);
  box-shadow: 0 0 0 0.2rem rgba(74, 85, 104, 0.15);
}

/* ========================================
   Pagination
   ======================================== */

.pagination .page-link {
  color: var(--sl-primary);
  border-color: var(--sl-border);
}

.pagination .page-item.active .page-link {
  background-color: var(--sl-accent);
  border-color: var(--sl-accent);
  color: #ffffff;
}

.pagination .page-link:hover {
  background-color: var(--sl-background-light);
  border-color: var(--sl-border);
  color: var(--sl-accent);
}

/* ========================================
   Alerts
   ======================================== */

.alert-info {
  background-color: #e8f4fc;
  border-color: #bee5eb;
  color: #0c5460;
}

.alert-success {
  background-color: #d4edda;
  border-color: #c3e6cb;
  color: #155724;
}

.alert-warning {
  background-color: #fff3cd;
  border-color: #ffeeba;
  color: #856404;
}

.alert-danger {
  background-color: #f8d7da;
  border-color: #f5c6cb;
  color: #721c24;
}

/* ========================================
   Home Page
   ======================================== */

.hero {
  background: var(--sl-background) !important;
  background-image: none !important;
}

.hero:after {
  background: transparent !important;
  background-image: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
}

/* Homepage search module - light theme */
.homepage .module-search {
  color: var(--sl-text);
  border: 1px solid var(--sl-border);
}

.homepage .module-search .search-form {
  background-color: var(--sl-background-light) !important;
  padding: 30px 20px;
}

.homepage .module-search .search-form h3 {
  color: var(--sl-text);
}

.homepage .module-search .tags {
  background-color: var(--sl-background) !important;
  border-top: 1px solid var(--sl-border);
}

.homepage .module-search .tags h3,
.homepage .module-search .tags .h3 {
  color: var(--sl-text);
}

/* Homepage feeds section */
.homepage .module-feeds {
  background: var(--sl-background) !important;
  background-image: none !important;
}

/* Remove all background images/patterns */
.wrapper,
.main-content,
.page-heading,
.featured-group,
.module-shallow {
  background-image: none !important;
}

/* ========================================
   Tables
   ======================================== */

.table {
  background-color: var(--sl-background);
}

.table thead th {
  background-color: var(--sl-background-light);
  border-bottom-color: var(--sl-border);
  color: var(--sl-primary);
}

.table-striped tbody tr:nth-of-type(odd) {
  background-color: var(--sl-background-light);
}

/* ========================================
   Pills and Tabs
   ======================================== */

.nav-tabs .nav-link {
  color: var(--sl-text);
}

.nav-tabs .nav-link.active {
  color: var(--sl-primary);
  border-color: var(--sl-border) var(--sl-border) var(--sl-background);
}

.nav-tabs .nav-link:hover {
  border-color: var(--sl-border);
}

.nav-pills .nav-link.active {
  background-color: var(--sl-accent);
}
