/*
 Theme Name:   Greater Baltimore Cultural Alliance
 Theme URI:    https://www.elegantthemes.com/gallery/divi/
 Description:  Divi Child Theme for GBCA Project
 Author:       Valtira
 Author URI:   https://valtira.com
 Template:     Divi
 Version:      1.0.3.17
 License:      GNU General Public License v2 or later
 License URI:  http://www.gnu.org/licenses/gpl-2.0.html
 Text Domain:  divi-child
*/

:root {
   --color-primary: #005270;
   --color-secondary: #9d2355;
   --font-primary: 'Open Sans', sans-serif;
}

body:not(.et-fb) html,
body:not(.et-fb) body {
   height: 100%;
}

body:not(.et-fb) #page-container,
body:not(.et-fb) #et-boc {
   min-height: 100svh;
   display: flex;
   flex-direction: column;
}

body:not(.et-fb) #et-main-area {
   flex: 1;
   display: flex;
   flex-direction: column;
}

body:not(.et-fb) #main-content {
   flex: 1;
}

body,
body.et_pb_button_helper_class,
.et_pb_section,
.et_pb_row,
.et_pb_column,
.et-l--header *,
.et-l--footer * {
   font-family: var(--font-primary);
}

.et_pb_row,
.container {
   width: 90%;
}

.et-l--header * {
   color: #ffffff;
}

.et-l--header .et_pb_menu .et_pb_menu_inner_container {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.et-l--header .et_pb_menu .et_pb_menu__logo-wrap {
	margin: 0 !important;
}
.et-l--header .et_pb_menu .et-menu>li {
   font-size: 16px;
   padding: 0 1.5em;
}

.et-l--header .et_pb_menu .et_mobile_menu .menu-item-has-children>a {
   background: none;
}

.et-l--header .et_pb_module .mobile_menu_bar:before,
.et-l--header .et_pb_menu .et_pb_menu__icon {
   color: #ffffff !important;
}

.et-l--header .et_pb_menu_0_tb_header.et_pb_menu .et_mobile_menu,
.et-l--header .et_pb_menu_0_tb_header.et_pb_menu .nav li ul {
   background-color: var(--color-primary) !important;
   box-shadow: none;
}

.et-l--header .et_pb_menu__icon.et_pb_menu__close-search-button {
   margin: 0 10px ! IMPORTANT;
}

.et-l--header .et_pb_menu .et_pb_menu__search {
   max-width: 100%;
   margin-left: auto;
}

@media (min-width: 981px) {
   .et-l--header .et_pb_menu .et_pb_menu__search {
      max-width: calc(100% - 260px);
   }
}

@media (max-width: 780px) {
   .et-l--header .et_pb_menu .et_pb_menu__search-container {
      padding: 0 !important;
   }
}

.et-l--header .et_pb_menu .et_pb_menu__icon {
   margin: 0 20px;
}

.et-l--header .et_pb_menu .et_pb_menu__search-input {
   color: #000000;
   background: #fff;
   padding: 15px 20px;
}

.et-l--header .et_pb_menu .et-menu-nav>ul ul {
   padding: 25px 0px 10px;
   border: none;
}

.et-l--header .et-menu a {
   font-weight: 400;
}

.et-l--header .et-menu li li {
   padding: 0 20px;
}

.et-l--header .et-menu li li a {
   padding: 9px 5px;
   width: 200px;
   line-height: 1.4em;
   font-size: 15px;
}

.et-l--header .et-menu li li:not(:last-of-type) a {
   border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.et-l--header .et-menu li li.menu-item-has-children>a:first-child:after {
   top: 8px;
   right: 0;
}

.et-l--header .et-menu li li ul {
   z-index: 1000;
   top: -25px;
   left: 100%;
}

.et-menu .menu-item-has-children>a:first-child:after {
   font-size: 24px;
   font-weight: 400;
   right: -8px;
}





.et-l--footer * {
   color: #ffffff;
}

.et-l--footer .et_pb_menu ul li a {
   color: #ffffff;
}

.et-l--footer .et_pb_menu .et_pb_menu__menu {
   display: block !important;
}

.et-l--footer .et_pb_menu .et_mobile_nav_menu {
   display: none !important;
}

.et-l--footer .et_pb_menu .et_pb_menu__menu .et-menu {
   display: flex;
   flex-direction: column;
   justify-content: flex-start;
}

.et-l--footer .et_pb_menu .et_pb_menu__wrap {
   justify-content: flex-start;
}

@media (min-width: 981px) {

   .et-l--footer .et_pb_row_1_tb_footer {
      display: flex;
      flex-direction: row;
      align-items: flex-end;
   }

   .et-l--footer .et_pb_menu .et_pb_menu__menu .et-menu {
      justify-content: flex-end;
   }

   .et-l--footer .et_pb_menu .et_pb_menu__wrap {
      justify-content: flex-end;
   }

   .et-l--footer .et_pb_menu li {
      justify-content: flex-end;
   }
}


.gradient .et_pb_module_heading {
   font-size: 18px;
   font-weight: 700;
   color: #ffffff !important;
   background: linear-gradient(90deg, var(--color-secondary), var(--color-primary));
   padding: 17px 20px !important;
   display: block;
   text-transform: uppercase;
}

.et_pb_toggle {
   padding: 0;
   border: none;
}

.et_pb_toggle_title {
   font-size: 18px;
   font-weight: 700;
   color: #ffffff !important;
   background: linear-gradient(90deg, var(--color-secondary), var(--color-primary));
   padding: 17px 20px !important;
   display: block;
   text-transform: uppercase;
}

.et_pb_toggle_title:before {
   content: "\4c";
   font-size: 24px;
   color: #ffffff;
   padding: 0 20px;
   font-weight: bold;
}

.et_pb_toggle_content {
   color: #333333;
   padding: 20px;
   font-size: inherit;
}

.et_pb_toggle_content .row {
   display: flex;
   flex-wrap: wrap;
   flex-direction: row;
   gap: 20px;
}

.et_pb_toggle_content .col {
   width: calc(50% - 10px);
}

.et_pb_toggle_content .et_pb_row {
   padding: 0;
   width: 100%;
}

.et_pb_toggle_content .et_pb_row .et_pb_column {
   margin-bottom: 30px !important;
}


.et_pb_team_member {
   display: flex;
   flex-direction: column;
}

.et_pb_team_member_image {
   margin: 0 !important;
   padding: 0 !important;
}

.et_pb_team_member_image img {
   aspect-ratio: 3 / 4;
   object-fit: cover;
   object-position: center;
   width: 100%;
}

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

.et_pb_team_member .et_pb_module_header {
   color: #ffffff;
   padding: 10px;
   text-transform: uppercase;
   font-weight: bold;
   letter-spacing: .02em;
   font-size: 12px;
   line-height: 1.2em;
   text-align: center;
}

.et_pb_team_member .et_pb_member_position {
   display: none;
}


#marquee {
   text-transform: uppercase;
   font-weight: 600;
   font-size: clamp(2em, 4vw, 6em);
   letter-spacing: .1em;
   line-height: 1em;
   white-space: nowrap;
   width: 100%;
   overflow: hidden;
}

#marquee .et_pb_text_inner {
   display: inline-flex;
   gap: 2rem;
   animation: marquee 25s linear infinite;
}

#marquee .et_pb_text_inner p {
   background: linear-gradient(90deg, var(--color-secondary), #fac22a, var(--color-primary));
   -webkit-background-clip: text;
   background-clip: text;
   -webkit-text-fill-color: transparent;
}

@keyframes marquee {
   from {
      transform: translateX(0);
   }

   to {
      transform: translateX(-50%);
   }
}

body:not(.et-fb) .text-gradient .et_pb_text_inner {
   background: linear-gradient(90deg, var(--color-secondary), var(--color-primary));
   -webkit-background-clip: text;
   background-clip: text;
   -webkit-text-fill-color: transparent;
}

.align-center {
   align-items: center;
}


.cta-home {
    display: flex;
}
.cta-home .et_pb_promo_description {
    padding: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.border-gradient-1,
.border-gradient-1 span.et_pb_image_wrap {
  	border-image: linear-gradient(90deg, #9e2254, #3e7fdc) 1;
}
.border-gradient-2,
.border-gradient-2 span.et_pb_image_wrap {
  	border-image: linear-gradient(90deg, #3e7fdc, #fec42a) 1;
}
.border-gradient-3,
.border-gradient-3 span.et_pb_image_wrap {
  	border-image: linear-gradient(90deg, #9e2254, #3e7fdc) 1;
}

.cta-home.cta-hover-hide-content:hover .et_pb_promo_description {
	opacity: 0 !important;
}



.gbca-form {
   display: flex;
   align-items: center;
   gap: .5rem;
}

.gbca-form label {
   display: block;
   font-family: var(--font-primary);
   font-weight: 600;
   color: var(--color-primary);
   margin-bottom: 0.35em;
   font-size: 0.95em;
}

.gbca-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.gbca-form select,
.gbca-form textarea {
   font-family: var(--font-primary);
   font-size: 15px;
   color: #333333;
   background: #fff;
   border: 1px solid rgba(0, 82, 112, 0.25);
   padding: 8px 12px;
   box-sizing: border-box;
   transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.gbca-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):focus,
.gbca-form select:focus,
.gbca-form textarea:focus {
   outline: none;
   border-color: var(--color-primary);
   box-shadow: 0 0 0 2px rgba(0, 82, 112, 0.15);
}

.gbca-form input::placeholder,
.gbca-form textarea::placeholder {
   color: #666;
   opacity: 0.9;
}

.gbca-form textarea {
   min-height: 120px;
   resize: vertical;
}

.gbca-form select {
   appearance: none;
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23005270' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
   background-repeat: no-repeat;
   background-position: right 14px center;
   padding-right: 36px;
   cursor: pointer;
}

.gbca-form fieldset {
   border: 1px solid rgba(0, 82, 112, 0.2);
   padding: 1.25em;
   margin: 0 0 1em;
   font-family: var(--font-primary);
}

.gbca-form fieldset legend {
   font-weight: 700;
   color: var(--color-primary);
   padding: 0 0.5em;
   font-size: 1em;
}

.gbca-form input[type="checkbox"],
.gbca-form input[type="radio"] {
   width: auto;
   margin-right: 0.5em;
   accent-color: var(--color-primary);
   cursor: pointer;
}

.gbca-form input[type="checkbox"] + label,
.gbca-form input[type="radio"] + label {
   display: inline;
   font-weight: 400;
   cursor: pointer;
   margin-bottom: 0;
}

.gbca-form input[type="submit"] {
   border: none;
   background: var(--color-secondary);
   color: #fff;
   padding: 8px 12px;
   outline: none;
   font-weight: bold;
   text-transform: uppercase;
   letter-spacing: .5px;
   cursor: pointer;
   min-height: 32px;
   line-height: 1rem;
}

.gbca-form input[type="submit"]:hover {
   background: var(--color-primary);
}

.gbca-form input[type="submit"]:focus {
   box-shadow: 0 0 0 2px rgba(157, 35, 85, 0.4);
}

.gbca-calendar {
   font-family: var(--font-primary);
   max-width: 100%;
   margin-bottom: 2rem;
}

.gbca-calendar .gbca-calendar__header {
   font-size: 1.5rem;
   font-weight: 700;
   color: var(--color-primary);
   margin: 0 0 1rem;
   padding: 0;
   background: none !important;
   letter-spacing: 0.02em;
   line-height: 1.2;
   text-transform: none;
}

.gbca-calendar__toolbar {
   display: flex;
   flex-wrap: wrap;
   justify-content: space-between;
   align-items: flex-start;
   gap: 0.75rem;
   margin-bottom: 1rem;
   background: #eee;
   border: 1px solid #ddd;
   padding: 1em;
}

.gbca-calendar__toolbar-form {
   flex: 1;
   min-width: 0;
   display: flex;
   flex-direction: column;
   gap: 0;
   align-items: stretch;
}

.gbca-calendar__toolbar-left {
   display: flex;
   flex-wrap: wrap;
   gap: 0.5rem 0.75rem;
}

.gbca-calendar__action-btn {
   padding: 0.5rem 1rem;
   font-size: 0.875rem;
   font-family: var(--font-primary);
   font-weight: 600;
   color: var(--color-primary);
   background: rgba(0, 82, 112, 0.06);
   border: 1px solid rgba(0, 82, 112, 0.25);
   border-radius: 6px;
   cursor: pointer;
   transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.gbca-calendar__action-btn:hover {
   background: rgba(0, 82, 112, 0.1);
   border-color: var(--color-primary);
}

.gbca-calendar__action-btn.is-active {
   background: var(--color-primary);
   color: #fff;
   border-color: var(--color-primary);
}

.gbca-calendar__action-btn--search {
   margin: 0;
}

.gbca-calendar__input-date,
.gbca-calendar__input-keyword {
   width: auto;
   min-width: 120px;
   padding: 0.5rem 0.75rem;
   font-size: 0.9rem;
   font-family: var(--font-primary);
   border: 1px solid rgba(0, 82, 112, 0.25);
   border-radius: 6px;
}

.gbca-calendar__input-date:focus,
.gbca-calendar__input-keyword:focus {
   outline: none;
   border-color: var(--color-primary);
}

.gbca-calendar__advanced-toggle {
   display: inline-flex;
   align-items: center;
   gap: 0.35rem;
   padding: 0.5rem 0.75rem;
   font-family: var(--font-primary);
   font-size: 0.85rem;
   font-weight: 600;
   color: var(--color-primary);
   background: rgba(0, 82, 112, 0.06);
   border: 1px solid rgba(0, 82, 112, 0.2);
   border-radius: 6px;
   cursor: pointer;
   transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.gbca-calendar__advanced-toggle:hover {
   background: rgba(0, 82, 112, 0.06);
   border-color: var(--color-primary);
}

.gbca-calendar__advanced-toggle.is-open {
   background: rgba(0, 82, 112, 0.08);
   border-color: var(--color-primary);
}

.gbca-calendar__advanced-toggle-icon {
   display: inline-block;
   width: 0;
   height: 0;
   border-left: 5px solid transparent;
   border-right: 5px solid transparent;
   border-top: 6px solid currentColor;
   transition: transform 0.2s ease;
}

.gbca-calendar__advanced-toggle.is-open .gbca-calendar__advanced-toggle-icon {
   transform: rotate(180deg);
}

.gbca-calendar__advanced {
   width: 100%;
   margin-top: 1rem;
   padding-top: 1rem;
   border-top: 1px solid rgba(0, 82, 112, 0.15);
}

.gbca-calendar__advanced[hidden] {
   display: none !important;
}

.gbca-calendar__advanced-inner {
   display: grid;
   grid-template-columns: auto 1fr;
   align-items: center;
   gap: 0.5rem 1rem;
   max-width: 560px;
}

.gbca-calendar__advanced-inner label {
   font-size: 0.9rem;
   font-weight: 600;
   color: var(--color-primary);
}

.gbca-calendar__advanced-field {
   min-width: 140px;
   max-width: 200px;
   opacity: 0.85;
}

@media (min-width: 480px) {
   .gbca-calendar__advanced-inner {
      grid-template-columns: repeat(2, auto 1fr);
   }
}

.gbca-calendar__view-nav {
   min-width: 0;
}

@media (max-width: 767px) {
   .gbca-calendar__view-nav {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
   }
}

.gbca-calendar__view-links {
   display: inline-flex;
   background: rgba(0, 82, 112, 0.06);
   border: 1px solid rgba(0, 82, 112, 0.25);
   border-radius: 6px;
   padding: 3px;
   gap: 0;
}

.gbca-calendar__view-link {
   display: inline-block;
   padding: 0.45rem 1rem;
   font-size: 0.875rem;
   font-weight: 600;
   color: var(--color-primary);
   text-decoration: none;
   border-radius: 4px;
   transition: background 0.2s ease, color 0.2s ease;
}

.gbca-calendar__view-link:hover {
   background: rgba(0, 82, 112, 0.1);
   color: var(--color-primary);
}

.gbca-calendar__view-link.is-active {
   background: var(--color-primary);
   color: #fff;
}

.gbca-calendar__view-link:first-child {
   border-radius: 4px 0 0 4px;
}

.gbca-calendar__view-link:last-child {
   border-radius: 0 4px 4px 0;
}

.gbca-calendar__grid {
   display: grid;
   align-items: start;
   margin: 0 -1em;
}

.gbca-calendar__grid--cols-1 {
   grid-template-columns: 1fr;
}

.gbca-calendar__grid.gbca-calendar__grid--cols-3 {
   grid-template-columns: 50% 25% 25%;
}

@media (max-width: 980px) {
   .gbca-calendar__grid.gbca-calendar__grid--cols-3 {
      grid-template-columns: 1fr;
   }
}

.gbca-calendar__column {
   min-width: 0;
   background: #fff;
   overflow: hidden;
   margin: 0 1em;
}

.gbca-calendar__column .gbca-calendar__day-title,
.gbca-calendar__list .gbca-calendar__day-title {
   font-size: 16px;
   font-weight: 700;
   padding: 12px 16px !important;
   margin: 0 !important;
   display: block;
   background: #005270;
   color: #fff;
}

.gbca-calendar__events {
   padding: 1rem;
   display: flex;
   flex-direction: column;
   gap: 1rem;
   background: #eeeeee;
   border: 1px solid #ddd;
}

.gbca-calendar__day-hr {
   margin: 0.5rem 0;
   border: none;
   border-top: 1px solid rgba(0, 82, 112, 0.15);
   display: none;
}

.gbca-event-card {
   display: flex;
   flex-direction: column;
   background: #fff;
   border: 1px solid rgba(0, 82, 112, 0.2);
   border-radius: 4px;
   overflow: hidden;
   transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.gbca-event-card:hover {
   border-color: var(--color-primary);
   box-shadow: 0 4px 12px rgba(0, 82, 112, 0.12);
}

.gbca-event-card__image {
   margin: 0;
   padding: 0;
   line-height: 0;
   background: #f5f5f5;
}

.gbca-event-card__image img {
   width: 100%;
   aspect-ratio: 16 / 10;
   object-fit: cover;
   object-position: center;
   display: block;
}

.gbca-event-card__image a {
   display: block;
}

.gbca-event-card__body {
   padding: 1rem;
   flex: 1;
   display: flex;
   flex-direction: column;
   gap: 0.5rem;
}

.gbca-event-card__title {
   font-size: 1.125rem;
   font-weight: 700;
   margin: 0;
   line-height: 1.2;
}

@media (min-width: 981px) {
   .gbca-calendar .gbca-event-card:has(.gbca-event-card__image) {
      flex-direction: row;
   }

   .gbca-calendar .gbca-event-card:has(.gbca-event-card__image) .gbca-event-card__image {
      width: 40%;
      flex-shrink: 0;
   }

   .gbca-calendar .gbca-event-card:has(.gbca-event-card__image) .gbca-event-card__image img {
      width: 100%;
      height: 100%;
      min-height: 100%;
      aspect-ratio: 4 / 3;
      object-fit: contain;
   }

   .gbca-calendar .gbca-event-card:has(.gbca-event-card__image) .gbca-event-card__body {
      width: 60%;
      box-sizing: border-box;
   }
}

.gbca-event-card__title a {
   color: var(--color-primary);
}

.gbca-event-card__title a:hover {
   color: var(--color-secondary);
}

.gbca-event-card__meta {
   font-size: 0.9em;
   color: #333;
   line-height: 1.4;
}

.gbca-event-card__meta a {
   color: var(--color-primary);
}

.gbca-event-card__meta a:hover {
   color: var(--color-secondary);
}

.gbca-event-card__hours {
   color: #666;
}

.gbca-event-card__member {
   display: inline-block;
   font-size: 0.75em;
   font-weight: 600;
   color: var(--color-secondary);
   text-transform: uppercase;
   letter-spacing: 0.03em;
}

.gbca-event-card__tags {
   font-size: 0.85em;
   color: #666;
}

.gbca-event-card__add-calendar {
   display: block;
   margin-top: auto;
   padding-top: 0.5rem;
   display: flex;
}
.gbca-event-card__add-calendar input {
   color: #fff;
   cursor: pointer;
   background: var(--color-secondary);
   font-weight: bold;
   font-size: 12px;
   letter-spacing: 0.5px;
   text-transform: uppercase;
   border: none;
   padding: 8px 12px;
   box-sizing: border-box;
}
.gbca-calendar__list .gbca-calendar__day-title {
   margin-bottom: 1rem;
}

.gbca-calendar__events--list {
   display: grid;
   gap: 1.25rem;
}

@media (min-width: 768px) {
   .gbca-calendar__events--list {
      grid-template-columns: repeat(auto-fill, minmax(640px, 1fr));
   }
}


.gbca-event {
   font-family: var(--font-primary);
   max-width: 100%;
   margin-bottom: 2rem;
}

.gbca-event__image {
   margin: 0 0 1.5rem;
   padding: 0;
   line-height: 0;
   border-radius: 0;
   overflow: hidden;
   background: #f0f0f0;
}

.gbca-event__image img {
   width: 100%;
   display: block;
   aspect-ratio: 16 / 10;
   object-fit: cover;
   object-position: center;
}

.gbca-event__title {
   font-size: 1.75rem;
   font-weight: 700;
   color: var(--color-primary);
   margin: 0 0 1.25rem;
   padding: 0;
   background: none;
   letter-spacing: 0.02em;
   line-height: 1.25;
}

.gbca-event__meta {
   display: grid;
   grid-template-columns: 1fr;
   gap: 0;
   margin: 0 0 1.5rem;
   padding: 1rem 1.25rem;
   background: rgba(0, 82, 112, 0.04);
   border: 1px solid rgba(0, 82, 112, 0.12);
   border-radius: 8px;
   font-size: 0.9375rem;
}

@media (min-width: 600px) {
   .gbca-event__meta {
      grid-template-columns: repeat(2, 1fr);
      gap: 0.75rem 2rem;
   }
}

.gbca-event__meta-item {
   display: flex;
   flex-direction: column;
   gap: 0.2rem;
   margin: 0;
   padding: 0.5rem 0;
}

@media (min-width: 600px) {
   .gbca-event__meta-item {
      padding: 0.35rem 0;
   }
}

.gbca-event__meta-item dt {
   font-size: 0.7rem;
   font-weight: 700;
   text-transform: uppercase;
   letter-spacing: 0.06em;
   color: rgba(0, 82, 112, 0.7);
   margin: 0;
}

.gbca-event__meta-item dd {
   margin: 0;
   color: #333;
   line-height: 1.4;
}

.gbca-event__meta-item a {
   color: var(--color-primary);
   font-weight: 600;
}

.gbca-event__meta-item a:hover {
   color: var(--color-secondary);
}

.gbca-event__edit {
   margin: 0 0 1rem;
   font-size: 0.9rem;
}

.gbca-event__edit a {
   color: var(--color-secondary);
}

.gbca-event__edit a:hover {
   color: var(--color-primary);
}

.gbca-event__description {
   margin: 0 0 1.5rem;
   color: #333;
   line-height: 1.6;
   font-size: 1rem;
}

.gbca-event__description p {
   margin: 0 0 1em;
}

.gbca-event__description p:last-child {
   margin-bottom: 0;
}

.gbca-event__back {
   margin: 0;
   padding-top: 1rem;
   border-top: 1px solid rgba(0, 82, 112, 0.15);
}

.gbca-event__back a {
   color: var(--color-primary);
   font-weight: 600;
}

.gbca-event__back a:hover {
   color: var(--color-secondary);
}

.gbca-repository {
   font-family: var(--font-primary);
   max-width: 100%;
   margin-bottom: 2rem;
}

.gbca-repository__header {
   font-size: 1.5rem;
   font-weight: 700;
   color: var(--color-primary);
   margin: 0 0 1rem;
   padding: 0;
   background: none;
   letter-spacing: 0.02em;
   line-height: 1.25;
}

.gbca-repository__top {
   display: flex;
   flex-wrap: wrap;
   justify-content: space-between;
   align-items: center;
   gap: 0.75rem;
   margin-bottom: 1.25rem;
}

.gbca-repository__count {
   font-size: 0.95rem;
   color: #555;
}

.gbca-repository__view-links {
   display: inline-flex;
   background: rgba(0, 82, 112, 0.06);
   border-radius: 6px;
   padding: 3px;
}

.gbca-repository__view-link {
   display: inline-block;
   padding: 0.45rem 1rem;
   font-size: 0.875rem;
   font-weight: 600;
   color: var(--color-primary);
   text-decoration: none;
   border-radius: 4px;
   transition: background 0.2s ease, color 0.2s ease;
}

.gbca-repository__view-link:hover,
.gbca-repository__view-link.is-active {
   background: var(--color-primary);
   color: #fff;
}

.gbca-repository__grid {
   display: grid;
   grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
   gap: 1.25rem;
}

.gbca-repository__card {
   display: flex;
   flex-direction: column;
   background: #fff;
   border: 1px solid rgba(0, 82, 112, 0.2);
   border-radius: 6px;
   overflow: hidden;
   cursor: pointer;
   transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.gbca-repository__card:hover {
   border-color: var(--color-primary);
   box-shadow: 0 4px 12px rgba(0, 82, 112, 0.12);
}

.gbca-repository__card-thumb {
   margin: 0;
   padding: 0;
   line-height: 0;
   background: #f5f5f5;
   aspect-ratio: 16 / 10;
   overflow: hidden;
}

.gbca-repository__card-thumb img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   object-position: center;
   display: block;
}

.gbca-repository__card-body {
   padding: 1rem;
   flex: 1;
   display: flex;
   flex-direction: column;
   gap: 0.35rem;
}

.gbca-repository__card-title {
   font-size: 1.0625rem;
   font-weight: 700;
   margin: 0;
   line-height: 1.3;
   color: var(--color-primary);
}

.gbca-repository__card-desc {
   font-size: 0.875rem;
   color: #555;
   margin: 0;
   line-height: 1.4;
}

.gbca-repository__card-type {
   display: inline-block;
   font-size: 0.7rem;
   font-weight: 700;
   text-transform: uppercase;
   letter-spacing: 0.05em;
   color: var(--color-secondary);
   margin-top: 0.25rem;
}

.gbca-repository__table-wrap {
   overflow-x: auto;
   margin-bottom: 1.5rem;
}

.gbca-repository__table {
   width: 100%;
   border-collapse: collapse;
   border: 1px solid rgba(0, 82, 112, 0.15);
   border-radius: 6px;
   overflow: hidden;
}

.gbca-repository__table th,
.gbca-repository__table td {
   padding: 0.6rem 1rem;
   text-align: left;
   border-bottom: 1px solid rgba(0, 82, 112, 0.1);
}

.gbca-repository__table th {
   background: rgba(0, 82, 112, 0.08);
   font-weight: 700;
   font-size: 0.85rem;
   color: var(--color-primary);
}

.gbca-repository__table th a {
   color: inherit;
}

.gbca-repository__table th a:hover {
   color: var(--color-secondary);
}

.gbca-repository__table tbody tr {
   cursor: pointer;
}

.gbca-repository__table tbody tr:hover {
   background: rgba(0, 82, 112, 0.04);
}

.gbca-repository__table td a {
   color: var(--color-primary);
   font-weight: 600;
}

.gbca-repository__table td a:hover {
   color: var(--color-secondary);
}

.gbca-repository__pagination {
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
   align-items: center;
   gap: 0.5rem;
   margin-top: 1.5rem;
}

.gbca-repository__page-num {
   display: inline-block;
   padding: 0.35rem 0.65rem;
   font-size: 0.9rem;
   font-weight: 600;
   color: var(--color-primary);
   text-decoration: none;
   border-radius: 4px;
}

.gbca-repository__page-num:hover {
   background: rgba(0, 82, 112, 0.1);
}

.gbca-repository__page-num.is-current {
   background: var(--color-primary);
   color: #fff;
   cursor: default;
}

.gbca-repository-modal {
   position: fixed;
   inset: 0;
   z-index: 100000;
   display: flex;
   align-items: center;
   justify-content: center;
   padding: 1rem;
   opacity: 0;
   visibility: hidden;
   transition: opacity 0.2s ease, visibility 0.2s ease;
}

.gbca-repository-modal.is-open {
   opacity: 1;
   visibility: visible;
}

.gbca-repository-modal__backdrop {
   position: absolute;
   inset: 0;
   background: rgba(0, 0, 0, 0.65);
   cursor: pointer;
}

.gbca-repository-modal__content {
   position: relative;
   max-width: 95vw;
   max-height: 90vh;
   width: 100%;
   background: #fff;
   border-radius: 8px;
   box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
   display: flex;
   flex-direction: column;
   overflow: hidden;
}

.gbca-repository-modal__close {
   position: absolute;
   top: 0.5rem;
   right: 0.5rem;
   z-index: 2;
   width: 2.5rem;
   height: 2.5rem;
   padding: 0;
   font-size: 1.5rem;
   line-height: 1;
   color: #333;
   background: #fff;
   border: 1px solid rgba(0, 0, 0, 0.15);
   border-radius: 6px;
   cursor: pointer;
   transition: background 0.2s ease, color 0.2s ease;
}

.gbca-repository-modal__close:hover {
   background: #f0f0f0;
   color: var(--color-primary);
}

.gbca-repository-modal__title {
   padding: 1rem 1.25rem 0.5rem;
   margin: 0;
   font-size: 1.125rem;
   font-weight: 700;
   color: var(--color-primary);
}

.gbca-repository-modal__body {
   flex: 1;
   min-height: 200px;
   max-height: calc(90vh - 80px);
   padding: 1rem 1.25rem 1.25rem;
   overflow: auto;
   display: flex;
   align-items: center;
   justify-content: center;
}

.gbca-repository-modal__img {
   max-width: 100%;
   max-height: 55vh;
   width: auto;
   height: auto;
   object-fit: contain;
   display: block;
}

.gbca-repository-modal__video {
   max-width: 100%;
   max-height: 70vh;
   width: 100%;
}

.gbca-repository-modal__audio {
   width: 100%;
   max-width: 400px;
}

.gbca-repository-modal__iframe {
   width: 100%;
   min-height: 70vh;
   border: none;
}

.gbca-repository-modal__fallback {
   margin: 0;
   font-size: 1rem;
}

.gbca-repository-modal__fallback a {
   color: var(--color-primary);
   font-weight: 600;
}

.gbca-repository-modal__meta {
   margin: 0;
   padding: 1rem 1.25rem 1.25rem;
   border-top: 1px solid rgba(0, 82, 112, 0.12);
   background: rgba(0, 82, 112, 0.03);
   font-size: 0.9rem;
}

.gbca-repository-modal__meta-row {
   display: grid;
   grid-template-columns: 120px 1fr;
   gap: 0.5rem 1rem;
   margin-bottom: 0.5rem;
}

.gbca-repository-modal__meta-row:last-child {
   margin-bottom: 0;
}

.gbca-repository-modal__meta-row dt {
   font-weight: 700;
   color: var(--color-primary);
   margin: 0;
   font-size: 0.8rem;
   text-transform: uppercase;
   letter-spacing: 0.04em;
}

.gbca-repository-modal__meta-row dd {
   margin: 0;
   color: #333;
   line-height: 1.45;
}

.gbca-repository-modal__meta-row dd a {
   color: var(--color-primary);
   font-weight: 600;
}

.gbca-repository-modal__meta-row dd a:hover {
   color: var(--color-secondary);
}

/* GBCA Members directory (cards + modal) */
.gbca-members__title {
   margin: 0 0 1rem;
   font-size: 1.5rem;
   font-weight: 700;
   color: var(--color-primary);
}

.gbca-members__grid {
   display: grid;
   grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
   gap: 1.25rem;
}

.gbca-members__card {
   display: flex;
   flex-direction: column;
   background: #fff;
   border: 1px solid rgba(0, 82, 112, 0.2);
   border-radius: 6px;
   overflow: hidden;
   cursor: pointer;
   transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.gbca-members__card:hover {
   border-color: var(--color-primary);
   box-shadow: 0 4px 12px rgba(0, 82, 112, 0.12);
}

.gbca-members__card-thumb {
   margin: 0;
   padding: 0;
   line-height: 0;
   background: #e8eef2;
   aspect-ratio: 16 / 10;
   overflow: hidden;
   display: flex;
   align-items: center;
   justify-content: center;
}

.gbca-members__card-placeholder {
   font-size: 2.5rem;
   font-weight: 700;
   color: var(--color-primary);
   opacity: 0.6;
}

.gbca-members__card-body {
   padding: 1rem;
   flex: 1;
   display: flex;
   flex-direction: column;
   gap: 0.35rem;
}

.gbca-members__card-title {
   font-size: 1.0625rem;
   font-weight: 700;
   margin: 0;
   line-height: 1.3;
   color: var(--color-primary);
}

.gbca-members__hidden-content {
   display: none;
}

/* Member profile block (used in modal and on page-member) */
.gbca-member-profile__name { margin: 0 0 0.5rem; font-size: 1.125rem; }
.gbca-member-profile__address { margin: 0 0 0.5rem; color: #555; }
.gbca-member-profile__web { margin: 0 0 1rem; }
.gbca-member-profile__events { margin-top: 0.5rem; }
.gbca-member-profile__event-links { margin: 0 0 0.75rem; font-size: 0.95rem; }
.gbca-member-profile__event-links a { color: var(--color-primary); font-weight: 600; }
.gbca-member-profile__event-links a:hover { color: var(--color-secondary); }
.gbca-member-profile__event-list { margin: 0; padding-left: 1.25rem; }
.gbca-member-profile__event-list li { margin-bottom: 0.35rem; }

/* Members modal */
.gbca-members-modal {
   position: fixed;
   inset: 0;
   z-index: 100000;
   display: flex;
   align-items: center;
   justify-content: center;
   padding: 1rem;
   opacity: 0;
   visibility: hidden;
   transition: opacity 0.2s ease, visibility 0.2s ease;
}

.gbca-members-modal.is-open {
   opacity: 1;
   visibility: visible;
}

.gbca-members-modal__backdrop {
   position: absolute;
   inset: 0;
   background: rgba(0, 0, 0, 0.65);
   cursor: pointer;
}

.gbca-members-modal__content {
   position: relative;
   max-width: 95vw;
   max-height: 90vh;
   width: 100%;
   max-width: 90vw;
   background: #fff;
   border-radius: 8px;
   box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
   display: flex;
   flex-direction: column;
   overflow: hidden;
}

.gbca-members-modal__close {
   position: absolute;
   top: 0.5rem;
   right: 0.5rem;
   z-index: 2;
   width: 2.5rem;
   height: 2.5rem;
   padding: 0;
   font-size: 1.5rem;
   line-height: 1;
   color: #333;
   background: #fff;
   border: 1px solid rgba(0, 0, 0, 0.15);
   border-radius: 6px;
   cursor: pointer;
   transition: background 0.2s ease, color 0.2s ease;
}

.gbca-members-modal__close:hover {
   background: #f0f0f0;
   color: var(--color-primary);
}

.gbca-members-modal__body {
   flex: 1;
   min-height: 200px;
   max-height: calc(90vh - 2rem);
   padding: 1.25rem;
   overflow: auto;
}

/* Modal two-column layout: left = ficha, right = tabs + events */
.gbca-members-modal__body .gbca-member-profile--modal {
   display: grid;
   grid-template-columns:  minmax(0, 36%) minmax(0, 1fr);
   gap: 1.5rem;
   align-items: start;
   min-height: 0;
}

@media (max-width: 640px) {
   .gbca-members-modal__body .gbca-member-profile--modal {
      grid-template-columns: 1fr;
   }
}

.gbca-members-modal__body .gbca-member-profile__left {
   background: rgba(0, 82, 112, 0.04);
   border: 1px solid rgba(0, 82, 112, 0.12);
   border-radius: 8px;
   padding: 1rem;
   position: sticky;
   top: 0;
}

.gbca-members-modal__body .gbca-member-profile__placeholder {
   width: 100%;
   aspect-ratio: 16 / 10;
   background: #e8eef2;
   border-radius: 6px;
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: 2.5rem;
   font-weight: 700;
   color: var(--color-primary);
   opacity: 0.7;
   margin: 0 0 0.75rem;
}

.gbca-members-modal__body .gbca-member-profile__left .gbca-member-profile__name {
   margin: 0 0 0.5rem;
   font-size: 1.0625rem;
   font-weight: 700;
   color: var(--color-primary);
   line-height: 1.3;
}

.gbca-members-modal__body .gbca-member-profile__left .gbca-member-profile__address,
.gbca-members-modal__body .gbca-member-profile__left .gbca-member-profile__web,
.gbca-members-modal__body .gbca-member-profile__left .gbca-member-profile__map {
   margin: 0 0 0.5rem;
   font-size: 0.875rem;
   color: #555;
   line-height: 1.4;
}

.gbca-members-modal__body .gbca-member-profile__map-wrap {
   margin: 0.75rem 0 0;
}

.gbca-members-modal__body .gbca-member-profile__map-embed {
   display: block;
   width: 100%;
   height: 200px;
   border: 0;
   border-radius: 6px;
   overflow: hidden;
   background: #e8eef2;
}

.gbca-members-modal__body .gbca-member-profile__left .gbca-member-profile__map-wrap .gbca-member-profile__map {
   margin-top: 0.35rem;
   margin-bottom: 0;
}

.gbca-members-modal__body .gbca-member-profile__left a {
   color: var(--color-primary);
   font-weight: 600;
}

.gbca-members-modal__body .gbca-member-profile__left a:hover {
   color: var(--color-secondary);
}

.gbca-members-modal__body .gbca-member-profile__right {
   min-height: 0;
   display: flex;
   flex-direction: column;
}

.gbca-members-modal__body .gbca-member-profile__tabs {
   display: flex;
   gap: 0;
   border-bottom: 2px solid rgba(0, 82, 112, 0.15);
   margin-bottom: 0.75rem;
   flex-shrink: 0;
}

.gbca-members-modal__body .gbca-member-profile__tab {
   padding: 0.5rem 0.75rem 0.5rem 0;
   margin-right: 1rem;
   font-size: 0.9rem;
   font-weight: 600;
   color: #666;
   text-decoration: none;
   border-bottom: 2px solid transparent;
   margin-bottom: -2px;
   transition: color 0.2s ease, border-color 0.2s ease;
}

.gbca-members-modal__body .gbca-member-profile__tab:hover {
   color: var(--color-primary);
}

.gbca-members-modal__body .gbca-member-profile__tab.is-active {
   color: var(--color-primary);
   border-bottom-color: var(--color-primary);
}

.gbca-members-modal__body .gbca-member-profile__event-section {
   flex: 1;
   min-height: 0;
   overflow: auto;
}

.gbca-members-modal__body .gbca-member-profile__event-list {
   margin: 1em 0;
   padding-left: 0;
   display: flex;
   flex-direction: column;
   gap: 1em;
}

.gbca-members-modal__body .gbca-member-profile__event-list li {
   margin-bottom: 0.4rem;
   font-size: 0.9rem;
   line-height: 1.45;
   display: flex;
   flex-direction: column;
}

.gbca-members-modal__body .gbca-member-profile__event-list a {
   color: var(--color-primary);
   font-weight: 600;
}

.gbca-members-modal__body .gbca-member-profile__event-list a:hover {
   color: var(--color-secondary);
}