/* ============================================================
   Fonts
   ============================================================ */

h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
  font-family: "Poppins", sans-serif;
}

/* ============================================================
   TRA Brand Color Utilities
   ============================================================ */

.bg-tra-navy        { background-color: #00093c; }
.bg-tra-darkblue    { background-color: #003594; }
.bg-tra-periwinkle  { background-color: #407ec9; }
.bg-tra-lightblue   { background-color: #447cc0; }
.bg-tra-magenta     { background-color: #991e66; }
.bg-tra-gold        { background-color: #ffb81c; }
.bg-tra-darklime    { background-color: #55842b; }
.bg-tra-lime        { background-color: #84bd00; }
.bg-tra-tan         { background-color: #d8d2c5; }
.bg-tra-tan-55      { background-color: #e7e4dc; }
.bg-tra-tan-25      { background-color: #f5f4f1; }

.text-tra-navy        { color: #00093c; }
.text-tra-darkblue    { color: #003594; }
.text-tra-periwinkle  { color: #407ec9; }
.text-tra-lightblue   { color: #447cc0; }
.text-tra-magenta     { color: #991e66; }
.text-tra-gold        { color: #ffb81c; }
.text-tra-darklime    { color: #55842b; }
.text-tra-lime        { color: #84bd00; }
.text-tra-tan         { color: #d8d2c5; }
.text-tra-tan-55      { color: #e7e4dc; }
.text-tra-tan-25      { color: #f5f4f1; }

.border-tra-navy        { border-color: #00093c; }
.border-tra-darkblue    { border-color: #003594; }
.border-tra-periwinkle  { border-color: #407ec9; }
.border-tra-lightblue   { border-color: #447cc0; }
.border-tra-magenta     { border-color: #991e66; }
.border-tra-gold        { border-color: #ffb81c; }
.border-tra-darklime    { border-color: #55842b; }
.border-tra-lime        { border-color: #84bd00; }
.border-tra-tan         { border-color: #d8d2c5; }
.border-tra-tan-55      { border-color: #e7e4dc; }
.border-tra-tan-25      { border-color: #f5f4f1; }

/* ============================================================
   Main Navigation
   ============================================================ */

.tra-site-header .navbar {
  margin-bottom: 0;
}

.tra-main-navbar {
  box-shadow: 0 6px 12px -4px rgba(0, 0, 0, 0.35);
  position: relative;
}

.tra-main-navbar .dropdown-toggle::after {
  display: none;
  z-index: 1020;
}

@media (min-width: 992px) {
  .tra-main-navbar .collapse.navbar-collapse {
    flex-grow: 1;
  }

  .tra-main-navbar .collapse.navbar-collapse > .block.menu--main {
    width: 100%;
  }

  .tra-main-navbar .navbar-nav {
    width: 100%;
    flex: 1;
    margin-right: 0 !important;
    justify-content: space-between;
  }

  .tra-site-header .tra-main-navbar {
    background: #d9d9d9
}

    .tra-site-header .tra-main-navbar .nav-link {
      font-weight: 700;
      color: #00093C;
      padding: 1.25rem 1.25rem
    }

        .tra-site-header .tra-main-navbar .nav-link:hover,
        .tra-site-header .tra-main-navbar .nav-link:focus-visible,
        .tra-site-header .tra-main-navbar .nav-link:active {
            color: #000!important;
            text-decoration: none;
            background-color: #E7E4DC;
        }

      .tra-site-header .tra-main-navbar .nav-link:focus:not(:focus-visible) {
        outline: none;
        background-color: #E7E4DC;
        color: #00093C !important;
      }

        .tra-site-header .tra-main-navbar .nav-link.active {
            text-decoration: none;
        }

        .tra-site-header .tra-main-navbar .nav-link--search:hover,
        .tra-site-header .tra-main-navbar .nav-link--search:focus-visible,
        .tra-site-header .tra-main-navbar .nav-link--search:active,
        .tra-site-header .tra-main-navbar .nav-link--search:focus:not(:focus-visible) {
            color: #FFF!important;
            text-decoration: none;
            background-color: inherit;
        }

}

.tra-main-navbar .nav-link[href*="/search"]::after {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-left: 0.4rem;
  margin-bottom: 5px;
  background: url("/sites/default/files/2026-03/mainnav-search-solid-full.svg") no-repeat center / contain;
  vertical-align: middle;
}

@media (min-width: 992px) {
  .tra-main-navbar .nav-item:has(> a[href*="/search"]) {
    position: relative;
    z-index: 0;
    margin-left: 20px;
  }

  .tra-main-navbar .nav-item:has(> a[href*="/search"])::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: -10px;
    background: #003594;
    transform: skewX(10deg);
    z-index: -1;
  }
}

.content-type-landing-page .node__meta,
.content-type-detail-page .node__meta {
  display: none;
}

/* ============================================================
   Left Nav
   ============================================================ */

.m-left-nav__list li {
  margin-bottom: 0.5rem;
}

.m-left-nav .m-left-nav__list li a {
  line-height: 1.3;
  font-size: 18px;
  color: #595959;
}

.m-left-nav .m-left-nav__sub li a {
  font-size: 16px;
  color: #595959;
}

.m-left-nav .m-left-nav__list li a:hover {
  text-decoration: none;
  color: #00093c;
}

.m-left-nav .m-left-nav__sub {
  border-left-color: #407ec9;
}

.m-left-nav__list a.active,
.m-left-nav__sub a.active {
  color: #991e66 !important;
  font-weight: 700;
}

/* ============================================================
   Breadcrumb
   ============================================================ */

.m-breadcrumb {
  margin-bottom: 1.25rem;
  font-size: 1rem;
}

.m-breadcrumb ol {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0;
}

.m-breadcrumb li {
  color: #595959;
}

.m-breadcrumb li:not(:first-child)::before {
  content: ">";
  margin: 0 0.5rem;
  color: #999;
}

.m-breadcrumb li a {
  color: #003594;
  text-decoration: none;
}

.m-breadcrumb li a:hover {
  text-decoration: underline;
}

.m-breadcrumb li[aria-current="page"] {
  font-weight: 600;
  color: #00093c;
}

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

.btn {
  display: inline-block;
  padding: 10px 28px;
  font-family: "Poppins", sans-serif;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

.btn-primary {
  background-color: #003594;
  border: 2px solid #003594;
  color: #fff !important;
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: #00093c;
  border-color: #00093c;
  color: #fff !important;
  text-decoration: none!important;
}

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

.tra-btn-login {
  background-color: #d8d2c5;
  border: 2px solid #d8d2c5;
  color: #00093c !important;
  border-radius: 4px;
  display: flex;
  align-items: center;
  font-weight: 500;
  letter-spacing: 1.5px;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 10px;
  padding-right: 10px;
}

.tra-btn-login:hover {
  background-color: #EFEDE8;
  color: #00093c !important;
  border: 2px solid #EFEDE8;
}

.btn-warning.tra-btn-login {
  background-color: #991e66;
  color: #fff !important;
  border: 2px solid #991e66;
  padding-top: 0px;
  padding-bottom: 0px;
}

.btn-warning.tra-btn-login:hover {
  background-color: #70134A;
  border: 2px solid #70134A;
}

.btn-warning.tra-btn-login::before {
  content: "";
  display: inline-block;
  width: 2rem;
  height: 2rem;
  background: url(/sites/default/files/2026-04/logo-mytra_white.png) no-repeat center / contain;
  vertical-align: middle;
  margin-right: 10px;
}

/* ============================================================
   Header Bar
   ============================================================ */

.m-short-header--dark,
.m-short-header--dark h1,
.m-short-header--dark .m-header-description {
  color: #00093c;
}

.search-page .m-short-header {
  background-image: url('/sites/default/files/2026-03/hero-1600w-2tone-peri.webp');
  background-size: cover;
  background-position: center;
}

@media (min-width: 768px) {
  .m-short-header h1 {
    white-space: normal;
  }
}

@media (min-width: 992px) {
  .tra-main-navbar .dropdown-menu {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.40);
    background-color: #E7E4DC;
  }

  .tra-main-navbar .navbar-nav > .nav-item.dropdown:hover > .dropdown-menu,
  .tra-main-navbar .navbar-nav > .nav-item.dropdown:focus-within > .dropdown-menu {
    display: block !important;
    top: 100%;
    left: 0;
    margin-top: 0;
  }

  .tra-main-navbar .navbar-nav > .nav-item.dropdown:hover > .nav-link.dropdown-toggle,
  .tra-main-navbar .navbar-nav > .nav-item.dropdown:focus-within > .nav-link.dropdown-toggle,
  ul.dropdown-menu > li {
    background: #E7E4DC;
    color: #000 !important;
  }

  .tra-main-navbar .dropdown-item:hover,
  .tra-main-navbar .dropdown-item:focus,
  .tra-main-navbar .dropdown-item.active,
  .tra-main-navbar .dropdown-item.active:hover,
  .tra-main-navbar .dropdown-item.active:focus {
    background-color: #00093c;
    color: #fff;
  }
}

.text-purple {
  background: #842b64;
  color: #FFFFFF!important;
}

/* ============================================================
   Sidebar Callout Tiles
   ============================================================ */

.m-sidebar-tile {
  overflow: hidden;
  border-radius: 6px;
}

.m-landing-sidbar__content {
  border-radius: 0 0 6px 6px;
}

.m-sidebar-tile + .m-sidebar-tile {
  margin-top: 1.5rem;
}

.m-sidebar-tile > img {
  width: 100%;
  height: auto;
  display: block;
}

.m-landing-sidbar__content {
  background: #e8e3da;
  padding: 1.25rem;
}

.m-landing-sidbar__content .title {
  font-weight: 700;
  font-size: 1.1rem;
  margin-bottom: 0.75rem;
}

.m-landing-sidbar__content p {
  font-size: 0.95rem;
}

.m-landing-sidbar__content a {
  text-decoration: underline;
}

.m-sidebar-tile--light .m-landing-sidbar__content {
  background: #00093c;
}

.m-sidebar-tile--light .m-landing-sidbar__content,
.m-sidebar-tile--light .m-landing-sidbar__content .title,
.m-sidebar-tile--light .m-landing-sidbar__content p,
.m-sidebar-tile--light .m-landing-sidbar__content a {
  color: #ffffff;
}

a.m-sidebar-tile {
  display: block;
  text-decoration: none;
  color: inherit;
}

a.m-sidebar-tile:hover,
a.m-sidebar-tile:focus {
  text-decoration: none;
}

/* ============================================================
   Content Sections
   ============================================================ */

.m-content-section {
  padding: 2rem 0;
  background: #fff;
}

.path-frontpage .m-content-section:first-of-type {
  padding-top: 0;
}

.text-formatted h2,
.m-page-content h2 {
  font-size: 2.25rem;
}

.m-page-content h3 {
  text-transform: uppercase;
}

/* ============================================================
   Home Hero
   ============================================================ */

.m-hero-select__wrapper::after {
  border-radius: 0 4px 4px 0;
}

.m-home-features .m-home-features__tile:hover h2 a {
  text-decoration: underline;
}

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

.m-quick-links-outer {
  border-top: 4px solid #d8d2c5;
}

.path-frontpage .m-quick-links-outer {
  margin-bottom: 50px;
}

.m-quick-links {
  border-top: none;
  padding-top: 60px;
}

@media only screen and (min-width: 992px) {
  .m-quick-links.m-quick-links__six .m-link-block {
    width: 16.6666667%;
  }
}

/* ============================================================
   Layout Builder Admin
   ============================================================ */

.node-layout-builder-form {
  max-width: 1140px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 0.75rem;
  padding-left: 0.75rem;
  box-sizing: border-box;
}

body:has(.layout-builder-form) #block-tra-bootstrap-page-title,
body:has(.layout-builder-form) #block-tra-bootstrap-local-tasks,
body:has(.layout-builder-form) #block-tra-bootstrap-help {
  max-width: 1140px;
  margin-right: auto;
  margin-left: auto;
  padding-right: 0.75rem;
  padding-left: 0.75rem;
  box-sizing: border-box;
}

body:has(.layout-builder-form) .layout--tra-landing-page .layout__region--main,
body:has(.layout-builder-form) .layout--tra-detail-page .layout__region--main {
  flex: 0 0 66.6667%;
  max-width: 66.6667%;
}

body:has(.layout-builder-form) .layout--tra-landing-page .layout__region--sidebar,
body:has(.layout-builder-form) .layout--tra-detail-page .layout__region--sidebar {
  flex: 0 0 33.3333%;
  max-width: 33.3333%;
}

/* ============================================================
   Alert Messages
   ============================================================ */

.alert.alert-dismissible {
  max-width: 1140px;
  margin: 1rem auto;
  padding: 0.75rem 3rem 0.75rem 1rem;
  background-color: #fff;
  color: #000;
  border: 2px solid #447cc0;
  border-radius: 0.375rem;
}

.alert.alert-dismissible .btn-close {
  width: 0.7em;
  height: 0.7em;
  padding: 0.5rem;
  top: 0.5rem;
  background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/0.7em auto no-repeat;
}

.view-faq-by-category .view-filters {
  display: none;
}

/* ============================================================
   Accordion
   ============================================================ */

.accordion-item {
  margin-bottom: 8px;
}

.accordion-item .accordion-button {
  padding: 18px 20px;
  font-size: 1.1rem;
  font-weight: 600;
}

.accordion-item .accordion-button:not(.collapsed) {
  background: #E7E4DC;
  color: #000;
  box-shadow: none;
}

.accordion-button::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23003594'%3e%3cpath d='M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4z'/%3e%3c/svg%3e");
  transform: none;
}

.accordion-button:not(.collapsed)::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23003594'%3e%3cpath d='M4 8a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7A.5.5 0 0 1 4 8z'/%3e%3c/svg%3e");
  transform: none;
  filter: brightness(0) saturate(100%) invert(47%) sepia(40%) saturate(793%) hue-rotate(173deg) brightness(91%) contrast(93%);
}

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

.text-formatted table,
.news-body table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1.5rem;
  font-size: 0.95rem;
}

.text-formatted table thead tr,
.text-formatted table thead tr th,
.news-body table thead tr,
.news-body table thead tr th {
  background-color: #407ec9 !important;
  color: #fff !important;
}

.text-formatted table thead th,
.news-body table thead th {
  padding: 14px 20px;
  font-weight: 400;
  font-size: 1.125rem;
  text-align: center;
  border: 2px solid #fff !important;
}

.text-formatted table tbody tr,
.news-body table tbody tr {
  background-color: #e7e4dc !important;
  --bs-table-bg: #e7e4dc;
}

.text-formatted table tbody tr:nth-child(even),
.news-body table tbody tr:nth-child(even) {
  background-color: #f5f4f1 !important;
  --bs-table-bg: #f5f4f1;
}

.text-formatted table tbody td,
.news-body table tbody td {
  padding: 14px 20px !important;
  border: 2px solid #fff !important;
  vertical-align: top;
  color: #000;
  text-align: center;
}

/* ============================================================
   WYSIWYG Blockquote / Callout
   ============================================================ */

.text-formatted blockquote,
.text-formatted blockquote p,
.event-detail blockquote,
.event-detail blockquote p,
.news-detail blockquote,
.news-detail blockquote p {
  font-weight: 700;
  line-height: 1.5;
}

.m-callout {
  padding: 10px 20px;
  margin: 0 0 1rem;
  border-left: 3px solid #991e66;
  font-weight: 700;
  line-height: 1.5;
}

/* ============================================================
   Event Detail Page
   ============================================================ */

.event-register {
  margin-bottom: 2.5rem;
}

/* ============================================================
   News Detail Page
   ============================================================ */

.news-back-link {
  margin-bottom: 1.5rem;
}

.news-back-link a {
  color: #003594;
  text-decoration: none;
}

.news-back-link a:hover {
  text-decoration: underline;
}

.news-meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.news-date {
  font-weight: 700;
  color: #003594;
}

.news-category {
  font-size: 0.85rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  background: #e8e3da;
  padding: 0.2rem 0.65rem;
  border-radius: 3px;
  color: #00093c;
}

.news-featured-image {
  margin: 0 0 1.5rem 0;
}

.news-featured-image img {
  width: 100%;
  height: auto;
  display: block;
}

.news-body {
  margin-bottom: 1.5rem;
}

.content-type-detail-page .m-page-content h2 ~ h2,
.content-type-landing-page .m-page-content h2 ~ h2 {
  margin-top: 2rem;
}

/* ============================================================
   News Listing
   ============================================================ */

.view-news-main-listing-block .views-row + .views-row {
  border-top: 1px solid #dee2e6;
  margin-top: 1.5rem;
  padding-top: 1.5rem;
}

.news-list-item {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
}

.news-list-item__image {
  flex: 0 0 200px;
  width: 200px;
}

.news-list-item__image img,
.news-list-item__no-image {
  width: 200px;
  height: 133px;
  display: block;
}

.news-list-item__image img {
  object-fit: cover;
}

.news-list-item__no-image {
  background-color: #d8d2c5;
}

.news-list-item__body {
  flex: 1;
  min-width: 0;
}

h2.news-list-item__title,
h2.news-list-item__title.news-list-item__title--h {
  font-size: 2rem;
  margin-top: 0.5rem;
  margin-bottom: 0;
}

.news-list-item__title a {
  color: #00093c;
  text-decoration: none;
}

h2.news-list-item__title a {
  font-weight: normal;
  color: #003594;
}

h2.news-list-item__title a:hover {
  font-weight: normal;
  text-decoration: underline;
  color: #003594;
}

.news-list-item__title a:hover {
  color: #003594;
  text-decoration: underline;
}

@media (max-width: 575.98px) {
  .news-list-item {
    flex-direction: column;
  }
  .news-list-item__image {
    flex: none;
    width: 100%;
  }
  .news-list-item__image img,
  .news-list-item__no-image {
    width: 100%;
    height: 180px;
  }
}

/* ============================================================
   Home News & Events
   ============================================================ */

.m-newsevents-section {
  background: url(/sites/default/files/2026-03/static_site_module_background_pattern.svg) no-repeat center center;
  background-size: cover;
  padding: 2.5rem 0;
}

.m-newsevents-section .row {
  display: flex;
  align-items: stretch;
}

.m-newsevents-section .row > [class*="col"] {
  display: flex;
}

.m-newsevents-section .row > [class*="col"] > .block,
.m-newsevents-section .row > [class*="col"] > .contextual-region {
  display: flex;
  width: 100%;
}

.m-newsevents-section .contextual-region .contextual-region {
  flex: 1;
}

.m-newsevents-white {
  padding: 2rem;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.m-newsevents-white__body {
  flex: 1;
  min-height: 0;
}

.m-newsevents-section .views-element-container {
  width: 100%;
}

.m-newsevents-white__more {
  padding-left: calc(50px + 1rem);
  padding-top: 1.5rem;
  flex-shrink: 0;
  letter-spacing: 1.5px;
}

.m-newsevents-white__more .btn i {
  margin-left: 20px;
}

.m-newsevents-white__title {
  margin: 0 0 1.5rem;
  font-size: 1.75rem;
  color: #00093c;
}

.m-newsevents-eventitm,
.m-newsevents-newsitm {
  align-items: flex-start;
  margin-bottom: 2rem;
}

.m-newsevents-eventitm__title,
.m-newsevents-newsitm__title {
  font-weight: 700;
  color: #003594;
  text-decoration: none;
  display: block;
  margin-bottom: 0.25rem;
}

.m-newsevents-eventitm__title:hover,
.m-newsevents-newsitm__title:hover {
  text-decoration: none!important;
}

.m-newsevents-eventitm__nextdate,
.m-newsevents-eventitm__description,
.m-newsevents-newsitm__category,
.m-newsevents-newsitm__description {
  font-size: 1.2rem;
  margin-top: 0.25rem;
  margin-bottom: 0;
}

.m-newsevents-arrow {
  flex: 0 0 auto;
  align-self: center;
  margin-left: 1rem;
  opacity: 0.6;
}

.m-newsevents-arrow:hover {
  opacity: 1;
}

.m-newsevents-white .more-link a {
  display: inline-block;
  margin: 1rem 0;
}

/* ============================================================
   CKEditor Divider
   ============================================================ */

p.tra-divider,
hr.tra-divider {
  border: none;
  height: 4px;
  background-color: #D8D2D5;
  border-radius: 2px;
  overflow: hidden;
  font-size: 0;
  line-height: 0;
  margin: 1rem 0;
  opacity: 1;
}

/* ============================================================
   CKEditor Tan Bar
   ============================================================ */

p.tan-bar,
div.tan-bar {
  padding: 19px 20px;
  margin: 0 0 1rem;
  background: #e7e4dc;
  border-left: 3px solid #407ec9;
  font-size: 1.1rem;
  font-weight: 600;
  color: #000;
  line-height: 38px;
}

/* ============================================================
   Embedded Media
   ============================================================ */

.m-page-content .media--view-mode-embedded img {
  width: 100%;
  height: auto;
}

.m-footer__col:last-child .media--view-mode-embedded {
  display: inline-block;
  margin-right: 0.5rem;
}

.m-footer__col:last-child .media--view-mode-embedded img {
  width: 40px;
  height: 40px;
}

/* ============================================================
   Spacing
   ============================================================ */

.media--view-mode-embedded + h2,
.media--view-mode-embedded + h3,
.media--view-mode-embedded + h4 {
  margin-top: 1.5rem;
}

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

.m-footer {
  background-color: #00093c;
  color: #fff;
  padding: 0;
  font-size: 0.9rem;
  line-height: 1.6;
}

.m-footer a {
  color: #fff;
  text-decoration: none;
}

.m-footer a:hover {
  color: #ffb81c;
}

.m-footer h3,
.m-footer h4 {
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: 0.75rem;
}

.m-footer__col {
  margin-bottom: 1.5rem;
}

.m-footer__col img {
  margin-bottom: 1.25rem;
  margin-top: 1rem;
}

.m-footer__col:last-child a img {
  display: inline-block;
  margin-right: 0.75rem;
  margin-bottom: 0;
  vertical-align: middle;
}

.m-footer__col:last-child a:has(img) {
  text-decoration: none;
}

.m-footer__col:last-child a:hover img.img-fluid {
  filter: brightness(0) saturate(100%) invert(76%) sepia(26%) saturate(1654%) hue-rotate(341deg) brightness(105%) contrast(103%);
}

a.location-link::before {
  content: "";
  display: inline-block;
  background: url(/sites/default/files/2026-03/icon-location-white.svg) no-repeat center / contain;
  width: 1.5rem;
  height: 1.5rem;
  margin-right: 5px;
  vertical-align: middle;
}

.m-footer p {
  margin-bottom: 0.75rem;
}

.m-footer__bottom {
  border-top: 2px solid #407ec9;
  margin-top: 2rem;
  padding-top: 1rem;
  text-transform: uppercase;
  font-size: 0.8rem;
  letter-spacing: 0.05em;
  text-align: center;
}

.m-footer__bottom a {
  color: #fff;
  text-decoration: none;
  margin: 0 0.5rem;
}

/* .m-footer__bottom a:hover {
  font-weight: 700;
} */

@media (min-width: 992px) {
  .m-footer > .container > .row {
    align-items: flex-start;
  }
  .m-footer__col {
    margin-bottom: 0;
    padding-top: 40px;
  }
  .m-footer .row > .m-footer__col:not(:first-child) {
    padding-top: 160px;
  }
}

/* ============================================================
   Sitemap
   ============================================================ */

.m-sitemap {
  display: flex;
  flex-direction: column;
}

.m-sitemap__section {
  margin-bottom: 2rem;
}

.m-sitemap__heading {
  font-size: 2rem;
  margin-bottom: 0.5rem;
}

@media (min-width: 992px) {
  .m-sitemap {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
  }
  .m-sitemap__section {
    margin-bottom: 0;
  }
}

.m-sitemap__heading a {
  color: #00093c;
  text-decoration: none;
}

.m-sitemap__heading a:hover {
  color: #407ec9;
}

.m-sitemap__divider {
  border-top: 2px solid #407ec9;
  margin-bottom: 1rem;
}

.m-sitemap__list {
  list-style: none;
  padding-left: 0;
}

.m-sitemap__list--level-2 {
  padding-left: 0;
}

.m-sitemap__list--level-3 {
  padding-left: 1.5rem;
}

.m-sitemap__list--level-4 {
  padding-left: 1.5rem;
}

.m-sitemap__item {
  margin-bottom: 0.35rem;
}

.m-sitemap__item a {
  color: #003594;
  text-decoration: none;
}

.m-sitemap__item a:hover {
  font-weight: 700;
}

/* ============================================================
   Events Calendar
   ============================================================ */

.view-id-calendar-months .form--inline {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.view-id-calendar-months .form--inline .form-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0;
}

.view-id-calendar-months .form--inline .form-actions {
  margin-bottom: 0;
}

table.calendar-view-table {
  border: none !important;
}

table.calendar-view-table thead th {
  background-color: #fff;
  color: #000;
  border-bottom: 2px solid #dee2e6;
  text-transform: capitalize;
  font-size: 1.1rem;
}

.calendar-view-pager {
  display: flex;
  align-items: center;
  justify-content: space-between;
  list-style: none;
  padding: 0;
  margin: 0 0 1rem;
}

.calendar-view-pager .pager__previous,
.calendar-view-pager .pager__next {
  flex: 0 0 auto;
}

.calendar-view-pager .pager__previous a,
.calendar-view-pager .pager__next a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background-color: #003594;
  color: #fff;
  padding: 0.375rem 0.75rem;
  border-radius: 0.25rem;
  text-decoration: none;
  font-weight: 600;
  white-space: nowrap;
}

.calendar-view-pager .pager__previous a::before {
  content: "\2039";
  font-size: 1.3em;
  line-height: 1;
}

.calendar-view-pager .pager__next a::after {
  content: "\203A";
  font-size: 1.3em;
  line-height: 1;
}

.calendar-view-pager .pager__previous a:hover,
.calendar-view-pager .pager__next a:hover {
  background-color: #00093c;
  color: #fff;
}

.calendar-view-pager .pager__current {
  flex: 1;
  text-align: center;
  white-space: nowrap;
}

.calendar-view-pager .pager__current,
.calendar-view-pager .pager__current > *,
.calendar-view-pager .pager__current .form-item {
  font-family: "Poppins", sans-serif !important;
  font-size: 2.5rem !important;
  font-weight: 600 !important;
  color: #003594 !important;
}

.calendar-view-pager__reset {
  display: none;
}

table.calendar-view-table caption {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.calendar-view-table .calendar-view-day__number,
time.calendar-view-day__number {
  background: none !important;
  border-radius: 0;
  padding: 0;
  color: #000 !important;
  font-size: 1rem !important;
}

table.calendar-view-table td.is-today {
  background-color: rgba(216, 210, 197, 0.55);
}

table.calendar-view-table td.next-month,
table.calendar-view-table td.prev-month {
  background-color: rgba(216, 210, 197, 0.2) !important;
}

.calendar-event-row .views-field-field-event-date,
.calendar-event-row .views-field-field-event-type {
  display: none;
}

.calendar-view-table .calendar-view-day__row {
  border: none !important;
}

.calendar-event-row {
  border-left: 3px solid #407ec9;
  padding-left: 0.35rem;
  margin-bottom: 0.25rem;
}

.event-type--board-meetings {
  border-left-color: #84bd00;
}

.event-type--holiday-closures {
  border-left-color: #00093c;
}

.event-type--member-education {
  border-left-color: #991e66;
}

.event-type--other {
  border-left-color: #ffb81c;
}

/* ============================================================
   Normalized Block Spacing
   ============================================================ */

.layout__region > .block,
.layout__region > .contextual-region,
.layout__region > .m-accordion-block {
  margin-bottom: 2rem !important;
}

.layout__region > .block:last-child,
.layout__region > .contextual-region:last-child,
.layout__region > .m-accordion-block:last-child {
  margin-bottom: 0 !important;
}

.layout__region > .m-divider-block {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding: 1.5rem 0 !important;
}

.layout__region > :has(+ .m-divider-block) {
  margin-bottom: 0 !important;
}

/* ============================================================
   Search Page
   ============================================================ */

.m-search-page {
  padding: 2rem 0;
}

.m-search-sidebar {
  margin-bottom: 2rem;
}

.m-search-filters__title {
  font-size: 1.25rem;
  font-weight: 600;
  color: #00093c;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid #d8d2c5;
}

.m-search-filters .form-item {
  margin-bottom: 1rem;
}

.m-search-filters .form-item label {
  font-weight: 600;
  margin-bottom: 0.25rem;
  display: block;
}

.m-search-filters .form-select,
.m-search-filters .form-text {
  width: 100%;
  border: 1px solid #000;
  height: auto;
}

.m-search-filters .form-actions .btn {
  width: 100%;
  margin-top: 0.5rem;
}

.m-search-filters .form-actions #edit-submit-acquia-search {
  background-color: #003594;
  border: 2px solid #003594;
  color: #fff;
  letter-spacing: 1.5px;
}

.m-search-filters .form-actions #edit-submit-acquia-search:hover {
  background-color: #00093c;
  border-color: #00093c;
  color: #fff;
}

label[for="edit-field-event-type-target-id"] {
  width: 160px;
}

#edit-submit-calendar-months {
  background-color: #003594;
  border: 2px solid #003594;
  color: #fff;
  letter-spacing: 1.5px;
  padding: 4px 20px;
}

#edit-submit-calendar-months:hover {
  background-color: #00093c;
  border-color: #00093c;
  color: #fff;
}

.m-search-filters--centered .form--inline {
  display: flex;
  gap: 0.5rem;
  align-items: flex-end;
}

.m-search-filters--centered .form-item {
  flex: 1;
  margin-bottom: 0;
}

.m-search-filters--centered .form-actions {
  flex: 0 0 auto;
  margin-bottom: 0;
}

.m-search-filters--centered .form-actions .btn {
  width: auto;
  margin-top: 0;
}

.m-search-empty {
  text-align: center;
  margin-top: 2rem;
  padding: 2rem 0;
  color: #555;
}

.m-search-results-list {
  margin-top: 1rem;
}

.m-search-result {
  padding: 1.25rem 0;
  border-bottom: 1px solid #dee2e6;
}

.m-search-result:first-child {
  padding-top: 0;
}

.m-search-result__title {
  margin: 0 0 0.25rem;
  font-size: 1.15rem;
}

.m-search-result__title a {
  color: #003594;
  text-decoration: none;
  font-weight: 600;
}

.m-search-result__title a:hover {
  text-decoration: underline;
}

.m-search-result__excerpt {
  margin: 0;
  color: #444;
  line-height: 1.5;
}

.m-search-results .pagination {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 2rem 0;
  gap: 0.25rem;
}

.m-search-results .pagination .page-item .page-link {
  display: inline-block;
  padding: 0.375rem 0.75rem;
  border: 1px solid #dee2e6;
  border-radius: 0.25rem;
  color: #003594;
  text-decoration: none;
}

.m-search-results .pagination .page-item.active .page-link {
  background-color: #003594;
  border-color: #003594;
  color: #fff;
}

.m-search-results .pagination .page-item .page-link:hover {
  background-color: #e9ecef;
}

/* ============================================================
   Alert Banner
   ============================================================ */

.m-page-alert {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding: 0.6rem 1rem;
}

.m-page-alert__icon {
  max-width: 30px;
  max-height: 30px;
  flex-shrink: 0;
}

.m-page-alert .field__label {
  display: none;
}

.m-page-alert .field__item,
.m-page-alert .field__item p {
  display: inline;
  margin: 0;
}

.m-page-alert .m-blue-button {
  text-transform: uppercase;
  font-size: 0.85rem;
  letter-spacing: 0.05em;
  padding: 0.3rem 1rem;
  white-space: nowrap;
}

.m-page-alert--gold {
  background: #ffb81c;
}

.m-page-alert--navy {
  background: #00093c;
}

.m-page-alert--periwinkle {
  background: #407ec9;
}

.m-page-alert--darkblue {
  background: #003594;
}

.m-page-alert--tan {
  background: #d8d2c5;
}

.m-page-alert--magenta {
  background: #991e66;
}

.m-page-alert--light,
.m-page-alert--light .field__item,
.m-page-alert--light .field__item p {
  color: #00093c;
}

.m-page-alert--light .m-blue-button {
  background: #00093c;
  color: #fff;
  border: none;
}

.m-page-alert--dark,
.m-page-alert--dark .field__item,
.m-page-alert--dark .field__item p {
  color: #fff;
}

.m-page-alert--dark a {
  color: #fff;
}

.m-page-alert--dark .m-blue-button {
  background: #fff;
  color: #00093c;
  border: none;
}

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

.alert.alert-dismissible {
  position: relative;
}

.alert.alert-dismissible .btn-close {
  position: absolute;
  top: 50%;
  right: 1rem;
  transform: translateY(-50%);
  padding: 0.5rem;
}

/* ============================================================
   Webform
   ============================================================ */

.webform-submission-form .form-control,
.webform-submission-form .form-select,
.webform-submission-form .form-textarea,
.webform-submission-form input[type="text"],
.webform-submission-form input[type="email"],
.webform-submission-form input[type="tel"],
.webform-submission-form input[type="number"],
.webform-submission-form input[type="url"],
.webform-submission-form input[type="date"],
.webform-submission-form input[type="password"] {
  border-color: #000;
}

.webform-submission-form input[type="text"],
.webform-submission-form input[type="email"],
.webform-submission-form input[type="tel"],
.webform-submission-form input[type="number"],
.webform-submission-form input[type="url"],
.webform-submission-form input[type="date"],
.webform-submission-form input[type="password"],
.webform-submission-form textarea.form-textarea,
.webform-submission-form select.form-select,
.webform-submission-form .form-control,
.webform-submission-form label,
.webform-submission-form .form-item {
  font-size: 18px;
}

.webform-submission-form .form-control {
  height: 40px;
}

textarea.form-textarea {
  height: auto !important;
  min-height: 8rem;
}

/* ============================================================
   Cookie Banner
   ============================================================ */

div#sliding-popup,
div#sliding-popup .eu-cookie-withdraw-banner,
.eu-cookie-withdraw-tab {
  background: #00093c;
}

div#sliding-popup {
  border-top: 2px solid #fff;
}

#sliding-popup .eu-cookie-compliance-content {
  padding: 1.5rem 2rem;
}

#sliding-popup h2 {
  color: #fff;
  font-size: 1.25rem;
  margin-bottom: 0.5rem;
}

#sliding-popup p {
  color: #fff;
  font-size: 1rem;
}

#sliding-popup .agree-button,
#sliding-popup .decline-button {
  color: #fff;
  border: 1px solid #fff;
  background: transparent;
  padding: 0.5rem 1.25rem;
  border-radius: 4px;
}

#sliding-popup .find-more-button {
  color: #fff;
  background: transparent;
  border: none;
  padding: 0.5rem 0;
  text-decoration: underline;
}

#sliding-popup .agree-button:hover,
#sliding-popup .decline-button:hover,
#sliding-popup .find-more-button:hover {
  background: #fff;
  color: #00093c;
}

.eu-cookie-compliance-more-button,
.eu-cookie-compliance-agree-button,
.eu-cookie-compliance-default-button,
.eu-cookie-compliance-hide-button,
.eu-cookie-compliance-more-button-thank-you,
.eu-cookie-withdraw-button,
.eu-cookie-compliance-save-preferences-button {
  text-shadow: none;
}

/* ============================================================
   Browse Tiles
   ============================================================ */

.m-browse-tiles {
  border-radius: 5px;
}

.m-browse-tiles a {
  border-radius: 0 5px 5px 0;
  display: flex;
  align-items: center;
}

.m-browse-tiles a::after {
  content: none;
}

/* ============================================================
   Mobile Fixes (max-width: 991px)
   ============================================================ */

@media (max-width: 991px) {

  .m-newsevents-white__more {
    padding-left: 0px;
  }

  .m-image-overlap .m-image-overlap__content {
    left: 0;
  }

  footer h2 {
    font-size: 1.75rem !important;
  }

  footer img {
    max-width: 150px;
  }

  .m-quick-links__four .m-link-block {
    margin-bottom: 30px;
  }

  .path-frontpage .m-quick-links-outer {
    margin-bottom: 30px;
  }

  .view-id-calendar-months .form--inline {
    flex-wrap: nowrap;
    align-items: flex-end;
  }

  .view-id-calendar-months .form--inline .form-item {
    flex: 1 1 auto;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
  }

  .view-id-calendar-months .form--inline .form-item .form-select {
    width: 100%;
  }

  .view-id-calendar-months .form--inline .form-actions {
    flex: 0 0 auto;
  }

  .calendar-view-pager {
    flex-direction: row !important;
  }

  .calendar-view-pager .pager__current {
    white-space: normal;
  }

  .m-browse-tiles__left {
    padding-bottom: 0px !important;
  }

  /* Hero: stack image + text instead of absolute overlay */
  .m-hero-header {
    display: flex;
    flex-direction: column;
  }

  .m-hero-header__image {
    width: 100%;
    height: auto;
  }

  .m-hero-header__content {
    position: static;
    background: #00093c;
    padding: 2rem 0;
  }

  .m-hero-header__content h1 {
    font-size: 1.75rem;
    margin-bottom: 1rem;
  }

  /* Home features: single column, no side borders */
  .m-home-features .m-home-features__three .m-home-features__tile {
    width: 100%;
    border-right: 0;
    border-bottom: 3px solid #000;
  }

  .m-home-features .m-home-features__three .m-home-features__tile:last-child {
    border-bottom: 0;
  }

}

/* ============================================================
   Front End QA Round 1
   ============================================================ */

.block-views-blockpage-faqs-page-faqs-block .m-accordion-section .col-lg-9 {
  width: 100% !important;
}

.m-left-nav__heading > a {
  text-decoration: none;
  color: #000;
}

/* 
Reverted
.text-formatted h2,
.m-page-content h2 {
  font-size: 2.75rem;
} */

.m-page-content a{
  color: #003594;
  text-decoration: none;
  font-weight: 700;
}

.m-page-content a:hover{
  color: #003594;
  text-decoration: underline;
  font-weight: 700;
}

.m-link-block__icon {
  transition: transform 0.25s;
}

.m-link-block a:hover .m-link-block__icon {
  transform: scale(1.05);
}

.tra-site-header .tra-header-utilities a {
  font-size: 1rem;
}

@media (min-width: 992px) {
  .tra-header-utilities {
    margin-bottom: -25px;
  }
}

.tra-site-header .tra-utility-sep {
  width: 3px;
  background: #000;
  height: 4.5rem;
  margin-top: -8px;
}

@media (min-width: 992px) {
  .tra-site-header .tra-main-navbar .nav-link {
    color: #fff;
    font-weight: 500;
    padding: 1rem 0.75rem;
    font-size: 1rem;
  }

  .m-newsevents-section .m-newsevents-white {
    height: calc(100% - 50px);
  }
}

@media (min-width: 1200px) {
  .tra-site-header .tra-main-navbar .nav-link {
    font-size: 1.125rem;
  }
}

/* Front End QA Round 1 - new rules */

.m-landing-sidbar__content .title {
  line-height: 30px;
}

.m-landing-links .m-landing-links__tile a {
  line-height: 1.25;
  margin-bottom: 1rem;
  margin-top: 0.5rem;
  font-weight: 400;
}

.accordion-item .accordion-button {
  border-left: 3px solid #407ec9;
  background: #e7e4dc;
}

.accordion-button::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23407ec9'%3e%3cpath d='M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4z'/%3e%3c/svg%3e");
  background-size: 2.5rem;
  width: 2.5rem;
  height: 2.5rem;
}

#sliding-popup .agree-button,
#sliding-popup .decline-button {
  box-shadow: none;
}

.m-blue-button{
    letter-spacing: 1.5px!important;
}

.m-blue-button:hover {
    background: #00093c!important;
    border-color: #00093c!important;
    text-decoration: none;
    color: #fff;
}

.m-image-overlap__content .m-blue-button i {
  margin-left: 20px;
}

@media (max-width: 991px) {
  .m-image-overlap .m-image-overlap__image {
    display: none;
  }

  .m-image-overlap .m-image-overlap__content {
    position: static;
    transform: none;
    width: 100%;
    max-width: 100%;
    box-shadow: none;
  }
}

/* ============================================================
   Mobile Navigation
   ============================================================ */

button.navbar-toggler {
  border: none;
}

.tra-mobile-dropdown-toggle {
  display: none;
  background: none;
  border: none;
  padding: 0.5rem 0.75rem;
  min-width: 44px;
  min-height: 44px;
  cursor: pointer;
  color: inherit;
  line-height: 1;
}

.tra-mobile-dropdown-toggle .fa-chevron-down {
  transition: transform 0.2s ease;
}

.tra-mobile-dropdown-toggle[aria-expanded="true"] .fa-chevron-right {
  transform: rotate(90deg);
}

@media (max-width: 991px) {
  .tra-mobile-dropdown-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  li.nav-item.dropdown {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
  }

  li.nav-item.dropdown > .nav-link {
    flex: 1;
  }

  .tra-main-navbar {
    overflow-x: hidden;
  }

  #tra-main-nav {
    max-width: 100%;
  }

  li.nav-item.dropdown > .dropdown-menu {
    width: 100%;
    background: #fff;
    border: none;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
  }

    li.nav-item.dropdown > .dropdown-menu .dropdown-item {
      background: #fff;
      color: #00093C;
    }

      li.nav-item.dropdown > .dropdown-menu .dropdown-item.active,
      li.nav-item.dropdown > .dropdown-menu .dropdown-item:hover,
      li.nav-item.dropdown > .dropdown-menu .dropdown-item:focus {
        background: #fff;
        color: #00093C;
      }
}

.tra-mobile-logo {
  max-width: 200px;
  padding: 1rem;
  filter: grayscale(100%) brightness(0);
}

.mobile-tra-sign-ins {
  padding-top: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #000;
  width: 100%;
  justify-content: space-evenly;
}

.mobile-tra-sign-ins a {
  text-decoration: none;
}

.mobile-tra-sign-ins .btn {
  font-size: 0.75rem;
  padding: 0.25rem 0.5rem;
}

.mobile-tra-sign-ins .btn.btn-primary {
  padding: 11px 10px;
}

.mobile-tra-sign-ins .tra-contact-link {
  font-size: 1.0rem;
}

.tra-mobile-search-form {
  position: relative;
  margin-top: 2rem;
  margin-bottom: 2rem;
}

.tra-mobile-search-box {
  width: 100%;
  border-radius: 10px;
  padding: .5rem 2.5rem .5rem .5rem;
  border: 1px solid #ccc;
}

.tra-mobile-search-btn {
  position: absolute;
  right: 0.5rem;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  color: #003594;
  font-size: 1rem;
}

@media (max-width: 991px) {
  .site-logo img {
    display: none;
  }
  .mobile-only {
    display: block;
  }
  .desktop-only {
    display: none !important;
  }
  .tra-site-header .tra-main-navbar {
    background: #fff;
  }
  li.nav-item {
    border-top: 1px solid #d8d2c5;
  }
}

@media (min-width: 992px) {
  .mobile-only {
    display: none !important;
  }
  .desktop-only {
    display: flex;
  }
  .m-left-nav.desktop-only {
    display: block;
  }
}

/* ============================================================
   Front End QA Round 2
   ============================================================ */

/* Mobile alert updates */
@media (max-width: 576px) {
  .m-page-alert {
    display: block;
    text-align: center;
  }
}

/* Sign in button styling for tiny phones */
@media (max-width: 400px) {
  .mobile-only.mobile-tra-sign-ins {
    display: block !important;
  }

  .mobile-tra-sign-ins a.tra-btn-login {
    justify-content: center;
  }
}

/* Links not wrapping and getting cut off in mobile */
@media (max-width: 400px) {
  a {
    word-wrap: break-word;
  }
}

/* No main/top image on mobile homepage */
@media (max-width: 991px) {
  .m-hero-header__image {
    display: none;
  }
}

/* Rounded corners on myTRA content for bottom module of homepage */
.m-image-overlap__content {
  border-radius: 5px;
}

/* Events calendar – next month button cuts off */
@media (max-width: 576px) {
  .calendar-view-pager {
    flex-direction: column !important;
  }
  li.pager__item.pager__current {
    padding: 0px;
  }
}

/* Search page – buttons cut out left and right side of frame */
@media (max-width: 576px) {
  .m-search-filters--centered .form--inline {
    display: block !important;
  }
  .m-search-filters .form-actions #edit-submit-acquia-search {
    margin-top: 1rem;
  }
  .m-search-page {
    padding: 1rem !important;
  }
}

