/**
 * @file
 * Inner page styles (certification, resources, etc.)
 * Ported from legacy edge.gbci.org yoda theme.
 */

/* Page header with blue underline */
.page-header {
  border-bottom: none;
  padding-bottom: 20px;
  padding-top: 15px;
  margin: 10px 0 30px;
  font-weight: 400;
  position: relative;
}

.page-header:after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 60px;
  height: 3px;
  background-color: #1D5D8B;
}

/* Accordion styles */
.accordion_view {
  position: relative;
  margin: 0;
  padding: 0;
  list-style: none;
  padding-left: 15px;
}

.accordion_in {
  border-top: 0;
  border-bottom: 0;
  position: relative;
  z-index: 10;
  margin-top: -1px;
  overflow: hidden;
  padding: 2px 0;
}

.acc_head {
  position: relative;
  padding-left: 24px;
  font-size: 18px;
  display: block;
  cursor: pointer;
  font-weight: bold;
  color: #1D5D8B;
}

.acc_head:before {
  content: '+';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  line-height: 16px;
  text-align: center;
  font-size: 14px;
  font-weight: bold;
  color: #fff;
  background-color: #7bc144;
  border-radius: 50%;
}

.accordion_in.acc_active > .acc_head:before {
  content: '−';
}

.acc_content {
  margin-bottom: 30px;
  background-color: #E6F5FB;
  color: #7b7e85;
  padding: 30px;
  padding-left: 30px;
  padding-right: 30px;
  overflow: hidden;
  transition: max-height 0.15s ease, padding 0.15s ease;
}

.accordion_in:not(.acc_active) > .acc_content {
  display: none;
}

.accordion_in.acc_active > .acc_content {
  display: block;
}

.acc_content h1:first-of-type,
.acc_content h2:first-of-type,
.acc_content h3:first-of-type,
.acc_content h4:first-of-type {
  margin-top: 5px;
}

/* Responsive tables */

.responsive th {
  border: 1px solid #1D5D8B;
  background-color: #1D5D8B;
  color: #fff;
  font-weight: 800;
}

.responsive tr {
  border-bottom: 1px solid white;
  background-color: #e0f7ff;
}

.responsive tr:hover {
  background-color: #ade9ff;
}

.responsive td {
  border: 0;
}

table.responsive {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 20px;
}

table.responsive td {
  border-left: 1px solid white;
  --bs-table-bg: none;
}

.table.responsive p {
  padding: 0px;
  margin: 0px;
}

@media only screen and (max-width: 500px) {
  .responsive {
    -webkit-hyphens: auto;
    -moz-hyphens: auto;
    -ms-hyphens: auto;
    hyphens: auto;
    font-size: .7em;
  }
}

/* Ghost/outline buttons
 * line-height matches the Bootstrap 3 body value these buttons inherited on the
 * legacy site (1.428571429), so their height stays 38px rather than Bootstrap
 * 5's 1.5 which renders them 2px taller. */
#btn, #btn a {
  display: inline-block;
  outline: none;
  text-align: center;
  text-decoration: none;
  font-family: inherit;
  font-weight: 600;
  letter-spacing: 1px;
  line-height: 1.428571429;
  vertical-align: middle;
  border-radius: 5px;
  transition: all 0.2s ease;
  box-sizing: border-box;
  padding: .3em 2.5em;
  border: 3px solid #1D5D8B;
  color: white;
  background: #1D5D8B;
  width: 100%;
}

a:hover#btn {
  background: transparent;
  color: #5d9732;
}

a#programbtn, #programbtn, #programbtn a {
  display: inline-block;
  outline: none;
  text-align: center;
  text-decoration: none;
  font-family: inherit;
  font-weight: 600;
  letter-spacing: 1px;
  line-height: 1.428571429;
  vertical-align: middle;
  border-radius: 5px;
  transition: all 0.2s ease;
  box-sizing: border-box;
  padding: .3em 2em;
  margin: 0 5px 5px 5px;
  background: #1D5D8B;
  color: white;
  border: 3px solid #1D5D8B;
}

a#programbtn:hover, a#programbtn:focus,
#programbtn:hover, #programbtn:focus,
#programbtn a:hover, #programbtn a:focus {
  background: #144466;
  color: white;
  border: 3px solid #144466;
}

@media only screen and (max-width: 768px) {
  a#programbtn, #programbtn, #programbtn a {
    width: 100%;
  }
}

/* The legacy site rendered page nodes two ways.
 *
 * Panelised pages (/certification, /auditors, /resources, the front page) went
 * straight into the 1170px container and brought their own .container/.row grid,
 * which is what positions their text.
 *
 * Everything else went through a .main-container wrapper that capped the row at
 * 960px and added 30px of top padding. Those bodies carry no grid of their own,
 * so without the cap they stretch across the full content region — /edge-auditors
 * was 1280px wide against 930px on the legacy site, and its heading sat flush
 * against the banner instead of 55px below it.
 *
 * Reproduce the split by keying off the same thing the markup does: whether the
 * body brings a .container. Browsers without :has() simply keep the full width. */
.page-node-type-page .field--name-body:not(:has(> .container)) {
  max-width: 930px;
  margin-left: auto;
  margin-right: auto;
  /* Legacy left 55px between the banner and the first heading, accumulated
   * across its wrapper chain (30px of .main-container padding plus a 25px
   * region offset). Stated as the measured total, minus the 20px the banner
   * pulls back with its negative bottom margin. */
  padding-top: 65px;
}

/* Inner page content area.
 *
 * Every section in these node bodies brings its own .container wrapper, so the
 * horizontal inset comes from the grid inside them. Padding the field itself
 * would shrink the containing block for the plain sections while the
 * full-bleed ones re-center against the viewport, which made the two bands
 * start at different x positions. */
.page-node-type-page .field--name-body {
  max-width: none;
}

/* The .container elements inside these bodies are Bootstrap 3 markup, where the
 * container capped at 1170px and the grid used 30px gutters. Bootstrap 5 caps at
 * 1320px with 24px gutters, which widened every column and shifted the text left
 * of where the legacy site put it. Restoring both values lines the columns up:
 * the container centres at the same x and the 8.33% offsets resolve identically. */
.page-node-type-page .field--name-body .container {
  max-width: 1170px;
}

.page-node-type-page .field--name-body .row {
  --bs-gutter-x: 30px;
}

/* Map Bootstrap 3 grid classes not present in Bootstrap 5 */
.page-node-type-page .field--name-body .col-sm-offset-1 {
  margin-left: 8.3333333%;
}

.page-node-type-page .field--name-body .col-lg-offset-1 {
  margin-left: 8.3333333%;
}

.page-node-type-page .field--name-body .col-xs-6 {
  width: 50%;
  flex: 0 0 50%;
  max-width: 50%;
  padding-left: 15px;
  padding-right: 15px;
  box-sizing: border-box;
}

@media (min-width: 992px) {
  .page-node-type-page .field--name-body .col-lg-10 {
    width: 83.33%;
    flex: 0 0 83.33%;
    max-width: 83.33%;
  }
}

/* Make col-lg-10 act as a row when it contains col-sm-4 children */
.page-node-type-page .field--name-body [class*="col-lg-10"] {
  display: flex;
  flex-wrap: wrap;
}

.page-node-type-page .field--name-body [class*="col-lg-10"] > [class*="col-sm-4"] {
  padding-left: 15px;
  padding-right: 15px;
  box-sizing: border-box;
}

@media (min-width: 576px) {
  .page-node-type-page .field--name-body .col-sm-4 {
    width: 33.33%;
    flex: 0 0 33.33%;
    max-width: 33.33%;
  }
}

/* Auditor/Resource grid layout */
.auditorimage {
  display: block;
  float: left;
}

/* The legacy stylesheet declared this after img.steps, so 80px won over the
 * 140px cap for icons sitting in an .auditorimage wrapper (Resources list).
 * Qualify the selector with the element name so the order in this file cannot
 * silently change which cap applies. */
div.auditorimage img,
div.auditorimage img.steps {
  max-width: 80px;
}

.auditortext {
  float: left;
  margin-left: 2em;
  margin-top: 15px;
  max-width: 600px;
}

@media only screen and (min-width: 769px) and (max-width: 991px) {
  .auditortext {
    max-width: 450px;
  }
}

@media only screen and (max-width: 768px) {
  .auditortext {
    max-width: 550px;
  }
}

@media only screen and (max-width: 736px) {
  .auditortext {
    margin-left: 0;
    margin-top: 0;
    max-width: 100%;
  }
  .auditorimage {
    float: none;
    max-width: 100%;
    text-align: center;
  }
}

.auditorrow {
  clear: both;
  display: block;
  padding-top: 20px;
}

/* Bootstrap 3's .table-condensed, which the migrated markup still uses. It was
 * renamed to .table-sm in Bootstrap 5, so the class did nothing and tables fell
 * back to the roomier default padding. */
.table-condensed > :not(caption) > * > * {
  padding: 5px;
}

/* Auditor list table (/edge-auditors): green region header rows. */
.auditor-list-table td {
  font-size: 12px;
}

.auditor-list-table .header {
  background-color: #72c067;
  color: #fff;
}

/* Qualified with the body field so it outranks the generic h4 spacing below. */
.page-node-type-page .field--name-body .auditor-list-table .header h4,
.auditor-list-table .header h4 {
  margin: 0;
}

.bg-2 {
  background-color: #fff;
}

.margin-2 {
  margin-top: 20px;
}

/* Multi-column lists. */
.col3-list {
  columns: 100px 3;
}

@media only screen and (max-width: 768px) {
  .col3-list {
    columns: 1;
  }
}

/* Callout paragraph with a pulsing border. */
p.highlight {
  border: 2px solid #1D5D8B;
  padding: 16px;
  border-radius: 8px;
  animation: borderPulse 2s infinite;
}

@keyframes borderPulse {
  0% {
    border-color: #1D5D8B;
  }
  50% {
    border-color: #2ecc71;
  }
  100% {
    border-color: #1D5D8B;
  }
}

/* Respect a reduced-motion preference rather than animating regardless. */
@media (prefers-reduced-motion: reduce) {
  p.highlight {
    animation: none;
  }
}

/* Horizontal anchor nav, used for the region jump links on /edge-auditors.
 * Ported from the legacy theme; without it the list stacks vertically. */
.horiz-nav ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

.horiz-nav li {
  float: left;
}

.horiz-nav li a {
  display: block;
  text-align: center;
  padding: 14px 10px;
  text-decoration: none;
  font-size: 12px;
}

/* Text-center utility (Bootstrap 3 compat) */
.text-center {
  text-align: center;
}

/* Clearfix helpers from Bootstrap 3 */
.clearfix::after {
  display: block;
  clear: both;
  content: "";
}

.visible-xs {
  display: none !important;
}

.hidden-xs {
  display: none !important;
}

@media (max-width: 767px) {
  .visible-xs {
    display: block !important;
  }
}

.page-node-type-page .field--name-body p {
  margin: 10px 0 15px 0;
}

/* Link color matching legacy theme */
.page-node-type-page .field--name-body a {
  color: #1D5D8B;
  text-decoration: none;
}

.page-node-type-page .field--name-body a:hover {
  color: #144466;
  text-decoration: underline;
}

/* Keep button labels white inside body copy.
 * The generic body link colour above (#1D5D8B) is specific enough to beat the
 * button rules, which left blue text on the blue button background. */
.page-node-type-page .field--name-body a.btn,
.page-node-type-page .field--name-body a.button,
.page-node-type-page .field--name-body a.onlinelink,
.page-node-type-page .field--name-body a.programlink,
.page-node-type-page .field--name-body a#btn,
.page-node-type-page .field--name-body a#programbtn {
  color: #fff;
  text-decoration: none;
}

.page-node-type-page .field--name-body a.btn:hover,
.page-node-type-page .field--name-body a.btn:focus,
.page-node-type-page .field--name-body a.button:hover,
.page-node-type-page .field--name-body a.button:focus,
.page-node-type-page .field--name-body a.onlinelink:hover,
.page-node-type-page .field--name-body a.onlinelink:focus,
.page-node-type-page .field--name-body a.programlink:hover,
.page-node-type-page .field--name-body a.programlink:focus,
.page-node-type-page .field--name-body a#btn:hover,
.page-node-type-page .field--name-body a#btn:focus,
.page-node-type-page .field--name-body a#programbtn:hover,
.page-node-type-page .field--name-body a#programbtn:focus {
  color: #fff;
  text-decoration: none;
}

.page-node-type-page .field--name-body h1 {
  font-size: 38px;
  font-weight: 300;
  position: relative;
  padding-bottom: 20px;
  margin-bottom: 30px;
}

/* page-node-title is hidden via PHP when body contains its own h1.page-header */

.page-node-type-page .field--name-body h1:after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 60px;
  height: 3px;
  background-color: #1D5D8B;
}

.page-node-type-page .field--name-body h2 {
  font-size: 32px;
  font-weight: 300;
  margin-top: 20px;
}

.page-node-type-page .field--name-body h3 {
  font-size: 24px;
  font-weight: 300;
  margin-top: 20px;
}

.page-node-type-page .field--name-body h4 {
  font-size: 18px;
  margin-top: 10px;
  margin-bottom: 10px;
}

/* Tabs/steps styling */
.steps {
  text-align: center;
}

/* Step items: tighten spacing for paragraphs with small icon images (green circles) */
.page-node-type-page .field--name-body p > img[src*="green"],
.page-node-type-page .field--name-body p > img[src*="circle"],
.page-node-type-page .field--name-body p > img[src*="bullet"],
.page-node-type-page .field--name-body p > img[src*="icon"],
.page-node-type-page .field--name-body p > img[width="20"],
.page-node-type-page .field--name-body p > img[width="18"] {
  vertical-align: middle;
  margin-right: 5px;
}

img.steps {
  max-width: 140px;
  display: block;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: -20px;
}

h3.steps {
  text-align: center;
}

/* Certification-specific two-column layout */
.certification {
  columns: 150px 2;
}

@media only screen and (max-width: 768px) {
  .certification {
    columns: 1 100px !important;
  }
}

/* Inline icons (small icons next to headings) */
.inline-icon {
  display: inline;
  max-width: 75px;
  vertical-align: middle;
  margin-right: 10px;
}

/* Banner text overlay */
.bannertext {
  text-align: center;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.bannertext h1 {
  text-transform: uppercase;
  color: white;
  font-weight: 300;
  font-size: 45px;
}

.bannertext p {
  font-size: 30px;
  color: white;
  max-width: 650px;
  text-shadow: 2px 2px black;
  margin: 0 auto;
}

@media only screen and (max-width: 500px) {
  .bannertext p {
    font-size: 20px;
  }
}

.bannertext hr {
  color: white;
  opacity: 1;
  height: 2px;
  max-width: 250px;
}

/* Horizontal rule styling for inner pages */
.page-node-type-page hr {
  margin-top: 10px;
  margin-bottom: 20px;
  border-width: 1px 0 0;
  border-color: #b2b2b2;
  opacity: 0.3;
}

/* Onlinelink / programlink buttons */
.onlinelink, .programlink {
  background: #1D5D8B;
  color: white;
  border: 3px solid #1D5D8B;
  display: inline-block;
  padding: .3em 2em;
  text-decoration: none;
  font-weight: 600;
  letter-spacing: 1px;
  line-height: 1.428571429;
  border-radius: 5px;
  transition: all 0.2s ease;
  margin: 0 5px 5px 5px;
}

.onlinelink:hover, .onlinelink:focus,
.programlink:hover, .programlink:focus {
  background: #144466;
  color: white;
  border-color: #144466;
  text-decoration: none;
}

/* Full-width sections inside page body.
 *
 * Only the background is meant to bleed to the viewport edges. The horizontal
 * padding cancels the breakout for the content box, so the .container nested
 * inside sees the same width as the sections outside the wrap and both bands
 * line up. 50% resolves against the body field, so this tracks any viewport. */
.page-node-type-page .field--name-body .full-grey-wrap {
  background-color: #f2f2f2;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  padding-top: 30px;
  padding-bottom: 60px;
  padding-left: calc(50vw - 50%);
  padding-right: calc(50vw - 50%);
}

/* Page node banner - full width */
.page-node-type-page .field--name-field-feature-banner .bannerimage {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  /* 300px on inner pages, as on the legacy site. No max-height: it only ever
   * conflicted with the taller front page banner, where min-height won anyway. */
  min-height: 300px;
  overflow: hidden;
  background-size: cover;
  background-position: center;
}

/* Page title for page nodes - styled with blue underline */
.page-node-type-page .block-page-title-block h1,
h1.page-node-title {
  font-size: 38px;
  /* 300 as on the legacy h1.page-header, not Bootstrap's heavier default. */
  font-weight: 300;
  color: #000;
  position: relative;
  padding-bottom: 15px;
  margin-top: 50px;
  margin-bottom: 40px;
  /* The inset comes from the .container/.row/.col-sm-offset-1 grid the template
   * wraps this heading in, the same grid the body copy goes through, so there is
   * nothing to add here. */
  text-align: left !important;
}

.page-node-type-page .block-page-title-block h1:after,
h1.page-node-title:after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 60px;
  height: 3px;
  background-color: #1D5D8B;
}

/* Login/Register page styles */
.path-user .block-page-title-block, .path-user  .profile,
.user-logged-in.path-user #block-edge-gbci-content {
  max-width: 960px;
  margin: 20px auto 0;
  position: relative;
  padding: 0px 15px;
}

.path-user .block-page-title-block h1:after {
  content: '';
  position: absolute;
  bottom: -10px;
  left: 15px;
  width: 60px;
  height: 3px;
  background-color: #1D5D8B;
}
/* Hide tabs on login page, show on register/password */
.page-route-user-login .block-local-tasks-block {
  display: none;
}

.path-user .block-local-tasks-block {
  max-width: 960px;
  margin: 20px auto 0;
  padding: 0px 15px;
}

.path-user .block-local-tasks-block .nav-tabs {
  border-bottom: 1px solid #ddd;
}

.path-user .block-local-tasks-block .nav-link {
  text-transform: uppercase;
  font-size: 14px;
  font-weight: 600;
  color: #333;
  letter-spacing: 0.5px;
  padding: 10px 20px;
  border: 1px solid #ddd;
  border-bottom: none;
  background: #fff;
  margin-right: 2px;
}

.path-user .block-local-tasks-block .nav-link.active {
  background: #f5f5f5;
  border-bottom: 1px solid #f5f5f5;
  font-weight: 700;
}

.path-user .user-login-form {
  max-width: 540px;
  margin: 60px auto;
  padding: 15px;
  border: 1px solid #e0e0e0;
  border-radius: 4px;
  background: #fff;
}

.path-user .user-login-form .form-item {
  margin-bottom: 15px;
}

.path-user .user-login-form label {
  display: none;
}

.path-user .user-login-form .form-control {
    height: 40px;
    font-size: 15px;
    border-radius: 0px;
    color: #555;
    background-color: #fff;
    border: 1px solid #ccc;
}

.path-user .user-login-form .form-control::placeholder {
  color: #999999;
}

.path-user .user-login-form .form-control:focus {
  border-color: #1D5D8B;
  outline: none;
  box-shadow: 0 0 3px rgba(29, 93, 139, 0.3);
}

.path-user .user-login-form .btn:hover {
  background-color: #144466;
  border-color: #144466;
}

.path-user .login-description {
  margin-bottom: 25px;
  font-size: 16px;
  color: #333;
}

.path-user .login-links {
  margin-top: 15px;
  font-size: 16px;
}

/* Keep the Login button and the "Create one" text on the same line. */
.path-user .user-login-form .form-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 15px;
}

.path-user .login-links--inline {
  margin-top: 0;
}

.path-user .login-links a {
  color: #1D5D8B;
  text-decoration: none;
}

.path-user .login-links a:hover {
  text-decoration: underline;
}

.path-user .form-item .description {
  font-size: 16px;
  color: #666;
  margin-top: 5px;
}

/* Registration page styles */
.path-user .user-register-form {
  max-width: 960px;
  margin: 40px auto;
  padding: 0 15px;
}

.path-user .user-register-form .form-item {
  margin-bottom: 20px;
}

.path-user .user-register-form label {
  font-weight: 600;
  margin-bottom: 5px;
}

.path-user .user-register-form .form-control {
  border: 1px solid #ccc;
  border-radius: 3px;
  padding: 10px 15px;
  font-size: 16px;
  width: 100%;
}

.path-user .user-register-form .description {
  font-size: 13px;
  color: #666;
  margin-top: 5px;
}

.path-user .user-register-form .btn {
  background-color: #1D5D8B;
  border-color: #1D5D8B;
  color: #fff;
  padding: 8px 25px;
  font-size: 16px;
  border-radius: 3px;
  margin-top: 15px;
}

.path-user .user-register-form .btn:hover {
  background-color: #144466;
  border-color: #144466;
}

/* Password reset page styles */
.path-user .user-pass {
  max-width: 850px;
  margin: 40px auto;
  padding: 0 15px;
}

.path-user .user-pass .form-item {
  margin-bottom: 20px;
}

.path-user .user-pass label {
  font-weight: 600;
  margin-bottom: 5px;
}

.path-user .user-pass .form-control {
  border: 1px solid #ccc;
  border-radius: 3px;
  padding: 10px 15px;
  font-size: 16px;
  width: 100%;
}

.path-user .user-pass .btn {
  background-color: #1D5D8B;
  border-color: #1D5D8B;
  color: #fff;
  padding: 8px 25px;
  font-size: 16px;
  border-radius: 3px;
  margin-top: 15px;
}

.path-user .user-pass .btn:hover {
  background-color: #144466;
  border-color: #144466;
}

/* Projects view (/projects) — page title with blue underline */
h1,
.path-manage-auditors .block-page-title-block h1,
.path-manage-projects .block-page-title-block h1,
.path-manage .block-page-title-block h1,
#block-edge-gbci-page-title .path-manage h1,
.view-manage-projects .view-header h1 {
  font-weight: 400;
  font-size: 38px;
  color: #000;
  position: relative;
  padding-bottom: 15px;
  margin-top: 30px;
  margin-bottom: 30px;
}

h1:after,
.path-manage-auditors .block-page-title-block h1:after,
.path-manage-projects .block-page-title-block h1:after,
.path-manage .block-page-title-block h1:after,
#block-edge-gbci-page-title .path-manage h1:after,
.view-manage-projects .view-header h1:after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0px;
  width: 60px;
  height: 3px;
  background-color: #1D5D8B;
}

/* Manage Auditors — exposed filters inline layout */
.view-manage-auditors .views-exposed-form .form--inline,
.view-manage-projects .views-exposed-form .form--inline {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 15px;
}

.view-manage-auditors .views-exposed-form .form--inline .form-item,
.view-manage-projects .views-exposed-form .form--inline .form-item {
  margin-bottom: 0;
}

.view-manage-auditors .views-exposed-form .form-actions,
.view-manage-projects .views-exposed-form .form-actions {
  margin-top: 0;
  align-self: flex-end;
  margin-bottom: 0px;
}

.view-manage-auditors .views-exposed-form input[type="text"],
.view-manage-auditors .views-exposed-form select,
.view-manage-projects .views-exposed-form input[type="text"],
.view-manage-projects .views-exposed-form select {
  background-color: #fff;
  border: 1px solid #ccc;
}

/* Manage Projects — XLSX export button */
.view-manage-projects .btn-xlsx-export {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background-color: #1D5D8B;
  color: #fff;
  border: 2px solid #1D5D8B;
  padding: 8px 20px;
  border-radius: 5px;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-decoration: none;
  transition: all 0.2s ease;
}

.view-manage-projects .btn-xlsx-export:before {
  content: '\2193';
  font-weight: 700;
}

.view-manage-projects .btn-xlsx-export:hover,
.view-manage-projects .btn-xlsx-export:focus {
  background-color: #144466;
  border-color: #144466;
  color: #fff;
  text-decoration: none;
}

.path-manage-auditors .view-manage-auditors table,
.path-manage-projects .view-manage-projects table,
.path-manage .view-manage-projects table {
  background: transparent;
  width: 100%;
}

.path-manage-auditors .view-manage-auditors table tr,
.path-manage-projects .view-manage-projects table tr,
.path-manage .view-manage-projects table tr {
  background: transparent !important;
  --bs-table-bg-type: transparent !important;
  --bs-table-striped-bg: transparent !important;
}

.path-manage-auditors .view-manage-auditors table tr:nth-child(even),
.path-manage-projects .view-manage-projects table tr:nth-child(even),
.path-manage .view-manage-projects table tr:nth-child(even) {
  background: transparent !important;
}

.path-manage-auditors .view-manage-auditors table tr:hover,
.path-manage-projects .view-manage-projects table tr:hover,
.path-manage .view-manage-projects table tr:hover {
  background: transparent !important;
}

.path-manage-auditors .view-manage-auditors table td,
.path-manage-auditors .view-manage-auditors table th,
.path-manage-projects .view-manage-projects table td,
.path-manage-projects .view-manage-projects table th,
.path-manage .view-manage-projects table td,
.path-manage .view-manage-projects table th {
  background: transparent !important;
  border-left: none;
  border-right: none;
}

.path-manage-auditors .view-manage-auditors table th,
.path-manage-projects .view-manage-projects table th,
.path-manage .view-manage-projects table th {
  border-bottom: 1px solid #ccc;
  color: #000;
  font-weight: 600;
}

.path-manage-auditors .view-manage-auditors table td,
.path-manage-projects .view-manage-projects table td,
.path-manage .view-manage-projects table td {
  border-bottom: 1px solid #eee;
}

/* Projects view (/projects) — hide exposed filters when view has no results */
.view-user-projects:has(.view-empty) .views-exposed-form,
.view-user-projects:not(:has(.view-content)) .views-exposed-form {
  display: none;
}

/* Projects view — empty state styling to match D7 reference */
.view-container {
  max-width: 945px;
  margin: 0 auto;
}

.view-user-projects .view-empty a {
  color: #1D5D8B;
  text-decoration: none;
}

.view-user-projects .view-empty a:hover {
  text-decoration: underline;
}

/* Site-wide container width.
 *
 * The legacy site ran Bootstrap 3, whose .container capped at 1170px from the
 * 1200px breakpoint up. Bootstrap 5 caps at 1140px and then widens again to
 * 1320px at 1400px, which is what ran the header, footer and banner text wider
 * than live. Cap at the legacy width from 1200px up; below that Bootstrap 5's
 * own steps are close enough to Bootstrap 3's.
 *
 * The wrapper inside main is an extra container the legacy markup did not have,
 * because its page sections each brought their own .container. Zero that
 * wrapper's gutter so the nested containers still resolve to a full 1170px box
 * and start at the same x as live, rather than losing 24px to its padding. */
@media (min-width: 1200px) {
  .container,
  .container-sm,
  .container-md,
  .container-lg,
  .container-xl,
  .container-xxl {
    max-width: 1170px;
  }

  main > .container {
    max-width: none;
  }
}

.path-manage-auditors .container {
  max-width:960px;
}
.toolbar-fixed #navbar .navbar-nav .nav-link {
  font-size: 12px;
}

.page-route-node-add .container {
  max-width: 740px;
}

.accordion details[open] .accordion-button {
  color: #333;
  background-color: #f5f5f5;
  border-color: #ddd;
  padding: 10px 15px;
}

.node-form .form-wrapper {
    margin-bottom: 35px;
}
.field--type-address .form-wrapper { 
   margin-bottom: 0px;
}
.path-user .col-sm-offset-1, .page-route-node-add .col-sm-offset-1 {
  margin-left: 0px;
  padding-left: 0px;
}

.field--type-address legend {
  color: #333;
  background-color: #f5f5f5;
  border-color: #ddd;
  padding: 10px 15px;
  border-bottom: 1px solid transparent;
  border-top-right-radius: 3px;
  border-top-left-radius: 3px;
}

.field--type-address fieldset {
  margin-bottom: 20px;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
}

.field--type-address .fieldset-wrapper {
  padding: 15px;
}

.form-item .description, .form-item .description p {
  font-size: 16px;
  display: block;
  margin-top: 5px;
  margin-bottom: 10px;
  color: #737373;
}

.form-control {
  height: 40px;
  font-size: 15px;
  border-radius: 0px;
  box-shadow: none;
  border: 1px solid #ccc;
}

.site-disclaimer .alert-info {
  background: none;
  border: none;
  padding: 0px;
  color: #333;
}

.site-disclaimer #site-disclaimer {
  max-height: 300px;
  overflow: scroll;
}

.eu-cookie-compliance-banner {
  padding: 10px;
}

.eu-cookie-compliance-message {
  max-width: 80%;
}
.eu-cookie-compliance-message p {
  font-size: 16px;
  font-weight: normal;
}

.eu-cookie-compliance-banner .decline-button {
  display: none;
}

.eu-cookie-compliance-banner .agree-button {
  font-size: 15px;
  padding: 10px 30px;
  font-weight: 600;
  margin-top: 10px;
}

.path-project-profiles #block-edge-gbci-page-title,
.path-auditor-application #block-edge-gbci-page-title, 
.path-projects #block-edge-gbci-page-title {
  max-width: 980px;
  margin: 0 auto;
}