/*
Theme Name: Divi Child theme of Divi
Theme URI:
Description: Child theme of Divi theme for the Divi theme
Author: <a href="http://www.elegantthemes.com">Elegant Themes</a>
Author URI:
Template: Divi
Version: 4.27.4
*/

/*
 * MoCA\CT CHILD THEME STYLESHEET
 * ============================================================================
 * Loading order is intentional. Rules needed above the fold appear first;
 * page- and component-specific rules follow afterward. Keep later overrides
 * below their base component rules so the CSS cascade continues to work.
 *
 * TABLE OF CONTENTS
 * --------------------------------------------------------------------------
 * 01. Design Tokens and Global Utilities
 * 02. Above-the-Fold: Typography, Notice Bar, Header and Navigation
 * 03. Home Page and General Content
 * 04. Exhibitions and Performances
 * 05. Education, Membership, Leadership and Blog
 * 06. Buttons, Hours and Price Lists
 * 07. Calendar and Event Views
 * 08. Forms, Footer, Gallery and Staff
 * 09. Global Responsive Adjustments
 * 10. Custom Performance Carousel
 * 11. Dynamic Post Feed
 * 12. Calendar Toolbar
 * 13. MoMA-Style Divi Supreme Carousel
 *
 * PERFORMANCE NOTE
 * --------------------------------------------------------------------------
 * For the fastest first render, sections 01 and 02 are the critical CSS.
 * They may be inlined by WP Rocket/another optimization layer. Keep this full
 * stylesheet loaded as the fallback and for all below-the-fold components.
 */

/* ==========================================================================
   01. DESIGN TOKENS AND GLOBAL UTILITIES
   ========================================================================== */

:root {
	--clr-primary: #00a5d0;
	--clr-pink: #ec008c;
	--clr-orange: #f15924;
	--clr-lt-gray: #f9f8f5;
	--clr-dk-gray: #636466;
	--clr-black: #000;
	--clr-white: #fff;
}

/* Color and typography utilities. */
.alt-h3 h3 {
	font-family: 'Acumin Pro Condensed Light', sans-serif;
	font-size: 1.5rem;
	text-transform: uppercase;
}

.blue {
	color: var(--clr-primary);
}

.pink {
	color: var(--clr-pink);
}

.orange {
	color: var(--clr-orange);
}

.white {
	color: var(--clr-white);
}

.gray {
	color: #6d6e71;
}

#intro .et_pb_text_inner {
	color: #000;
	font-family: 'Acumin Pro Condensed';
	font-size: 36px;
	line-height: 1.2;
}

/* ==========================================================================
   02. ABOVE-THE-FOLD: TYPOGRAPHY, NOTICE BAR, HEADER AND NAVIGATION
   ========================================================================== */

/* Notification bar positioning. */
body:not(.home) #wpfront-notification-bar-spacer {
	display: none;
}

body:not(.home) #main-header.et_pb_sticky {
	top: -75px !important;
}

body.admin-bar:not(.home) #main-header.et_pb_sticky {
	top: -43px !important;
}

/* WPFront notification bar marquee */
#wpfront-notification-bar .wpfront-message {
  width: 100%;
  overflow: hidden !important;
  white-space: nowrap !important;
}

#wpfront-notification-bar .bd-marquee {
  position: relative;
  width: 100%;
  min-height: 1.4em;
  overflow: hidden !important;
  white-space: nowrap !important;
}

#wpfront-notification-bar .bd-marquee-track {
  display: block !important;
  width: max-content;
  min-width: max-content;
  white-space: nowrap !important;
  animation: wpfront-marquee-scroll 18s linear infinite !important;
  transform: translate3d(100vw, 0, 0);
  will-change: transform;
}

#wpfront-notification-bar .bd-marquee-content {
  display: inline-block !important;
  white-space: nowrap !important;
  padding-left: 0 !important;
  font-size: 20px;
  line-height: 1.4;
}

#wpfront-notification-bar .bd-marquee-content strong {
  display: inline-block !important;
  white-space: nowrap !important;
}

/*
 * Keep the marquee moving even when the markup contains `.bd-fits`.
 * That class may be added by the notification-bar script, but it must not
 * disable the scrolling effect for this site.
 */
#wpfront-notification-bar .bd-marquee.bd-fits .bd-marquee-track {
  animation: wpfront-marquee-scroll 18s linear infinite !important;
  transform: translate3d(100vw, 0, 0);
}

#wpfront-notification-bar .bd-marquee.bd-fits .bd-marquee-content {
  padding-left: 0 !important;
}

@keyframes wpfront-marquee-scroll {
  from {
    transform: translate3d(100vw, 0, 0);
  }

  to {
    transform: translate3d(-100%, 0, 0);
  }
}

@media (max-width: 767px) {
  #wpfront-notification-bar .bd-marquee-track,
  #wpfront-notification-bar .bd-marquee.bd-fits .bd-marquee-track {
    animation-duration: 14s !important;
  }

  #wpfront-notification-bar .bd-marquee-content {
    font-size: 17px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #wpfront-notification-bar .bd-marquee-track,
  #wpfront-notification-bar .bd-marquee.bd-fits .bd-marquee-track {
    animation: none !important;
    transform: none !important;
  }

  #wpfront-notification-bar .bd-marquee-content,
  #wpfront-notification-bar .bd-marquee.bd-fits .bd-marquee-content {
    padding-left: 0 !important;
  }
}


/* Header: expanding search controls. */
.bd-slide-search {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  position: relative;
  z-index: 9999;
  line-height: 1;
}

/* Remove extra wrapper spacing */
.bd-slide-search .bd-slide-search-button-wrapper {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
}

/* SEARCH button: Divi-style, matching neighboring header buttons */
.bd-slide-search-toggle.et_pb_button {
  background-color: #ffffff !important;
  color: #000000 !important;
  border-color: #ffffff !important;


}

/* Prevent Divi's hover padding shift */
.bd-slide-search-toggle.et_pb_button:hover {
  background-color: black !important;
    color: white !important;

  border-color: black!important;

  padding-top: 0.3em !important;
  padding-right: 1em !important;
  padding-bottom: 0.3em !important;
  padding-left: 1em !important;
}

/* Remove Divi arrow */
.bd-slide-search-toggle.et_pb_button:after,
.bd-slide-search-toggle.et_pb_button:before {
  display: none !important;
}

/* Search field slides left over existing header items */
.bd-slide-search-panel {
  position: absolute;
  top: 50%;
  right: 100%;
  transform: translateY(-50%);
  width: 0;
  opacity: 0;
  overflow: hidden;
  transition: width 0.35s ease, opacity 0.25s ease;
  white-space: nowrap;
  z-index: 2;
  margin-right: 10px;
}

.bd-slide-search.search-open .bd-slide-search-panel {
  width: 340px;
  opacity: 1;
}

.bd-slide-search .is-search-form {
  width: 340px;
  margin: 0;
}

.bd-slide-search .is-search-input {
  width: 100% !important;
}

@media (max-width: 767px) {
  .bd-slide-search.search-open .bd-slide-search-panel {
    width: 240px;
  }

  .bd-slide-search .is-search-form {
    width: 240px;
  }
}


a.bd-slide-search-toggle.et_pb_button.et_pb_bg_layout_light {
    padding-top: 7px !important;
    padding-bottom: 4px !important;
}

/* Sticky header: icon-triggered expanding search. */

/* Wrapper. */
.bd-icon-expand-search {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  z-index: 9999;
}

/* Make Ivory form sit in place */
.bd-icon-expand-search .is-search-form {
  display: flex;
  align-items: center;
  flex-direction: row-reverse;
  width: 42px;
  max-width: 42px;
  overflow: hidden;
  margin: 0 !important;
  transition: width 0.35s ease, max-width 0.35s ease;
}

/* Expanded state */
.bd-icon-expand-search.search-open .is-search-form,
.bd-icon-expand-search .is-search-form:focus-within {
  width: 340px;
  max-width: 340px;
}

/* Hide/collapse input until open */
.bd-icon-expand-search .is-search-input {
  width: 0 !important;
  min-width: 0 !important;
  opacity: 0;
  padding-left: 0 !important;
  padding-right: 0 !important;
  border-width: 0 !important;
  transition: width 0.35s ease, opacity 0.25s ease, padding 0.35s ease;
}

/* Show input when open */
.bd-icon-expand-search.search-open .is-search-input,
.bd-icon-expand-search .is-search-form:focus-within .is-search-input {
  width: 290px !important;
  opacity: 1;
  padding-left: 12px !important;
  padding-right: 12px !important;
  border-width: 1px !important;
}

/* Style built-in Ivory search button */
.bd-icon-expand-search .is-search-submit {
  width: 42px !important;
  min-width: 42px !important;
  height: 42px !important;
  padding: 0 !important;
  border: none !important;
  background: #ffffff !important;
  color: #000000 !important;
  cursor: pointer;
  display: flex !important;
  align-items: center;
  justify-content: center;
}

/* Icon color */
.bd-icon-expand-search .is-search-icon svg,
.bd-icon-expand-search .is-search-icon path {
  fill: #000000 !important;
}

/* Remove odd spacing from Ivory icon wrapper */
.bd-icon-expand-search .is-search-icon {
  display: flex !important;
  align-items: center;
  justify-content: center;
}

/* Slide LEFT over existing header items instead of pushing them */
.bd-icon-expand-search.search-open .is-search-form,
.bd-icon-expand-search .is-search-form:focus-within {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
}

/* Mobile */
@media (max-width: 767px) {
  .bd-icon-expand-search.search-open .is-search-form,
  .bd-icon-expand-search .is-search-form:focus-within {
    width: 260px;
    max-width: 260px;
  }

  .bd-icon-expand-search.search-open .is-search-input,
  .bd-icon-expand-search .is-search-form:focus-within .is-search-input {
    width: 210px !important;
  }
}


/* Ivory Search 60723 - force 40px height */
form.is-form-id-60723,
form.is-form-id-60723 label,
form.is-form-id-60723 .is-search-input,
form.is-form-id-60723 .is-search-submit {
  height: 40px !important;
  min-height: 40px !important;
  max-height: 40px !important;
  box-sizing: border-box !important;
}

/* Form layout */
form.is-form-id-60723 {
  display: flex !important;
  align-items: stretch !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* The label wraps the input, so this must be controlled too */
form.is-form-id-60723 label {
  display: flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Input */
form.is-form-id-60723 .is-search-input {
  line-height: 40px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin: 0 !important;
}

/* Submit button */
form.is-form-id-60723 .is-search-submit {
  width: 40px !important;
  min-width: 40px !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Icon wrapper */
form.is-form-id-60723 .is-search-icon {
  width: 40px !important;
  height: 40px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
}

/* SVG size */
form.is-form-id-60723 .is-search-icon svg {
  width: 22px !important;
  height: 22px !important;
}


/* Header and primary navigation. */
.dsm-dropdown-icon-wrapper {
	display: none;
}

.dsm-mega-menu-container .dsm-root-menu .dsm-mega-menu-link .dsm-menu-text-wrapper .dsm-menu-text {
	margin-right: 0;
}

.dsm_mega_menu .dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu .dsm-mega-menu-item:not(.dsm-native-menu) .dsm-submenu-container {
	position: fixed !important;

}

.dsm-submenu-container nav .et-menu {
	display: flex;
	flex-direction: column;
}

.dsm-submenu-container nav .et-menu li {
	margin-bottom: 10px !important;
	padding-right: 40px;
}

.dsm_link_animation_effect_three .dsm-mega-menu-link:after {
	margin-bottom: 0;
}

.dsm_link_animation_effect_three .dsm_mega_menu_child_1_tb_header .dsm-mega-menu-link:after {
	background: var(--clr-primary) !important;
}

.dsm_link_animation_effect_three .dsm_mega_menu_child_2_tb_header .dsm-mega-menu-link:after {
	background: var(--clr-pink) !important;
}

.dsm_link_animation_effect_three .dsm_mega_menu_child_3_tb_header .dsm-mega-menu-link:after {
	background: var(--clr-orange) !important;
}

#main-header .is-search-icon,
#main-header.et_pb_sticky .is-search-icon {
	background: #fff;
	border: 0;
}

#main-header.et_pb_sticky .bd-icon-expand-search .is-search-form {
	flex-direction: row;
}

#main-header.et_pb_sticky .bd-icon-expand-search.search-open .is-search-form {
	top: -5px;
}

#main-header .is-form-style input.is-search-input,
#main-header.et_pb_sticky .bd-icon-expand-search.search-open .is-search-input {
	width: 300px !important;
	border: 0 !important;
}

/* Off-canvas section */
.offcanvas-menu {
	position: fixed !important;
	top: 0;
	right: 0; /* change to left if desired */
	width: 100vw;
	height: 100vh;
	background: #fff;
	transform: translateX(100%);
	transition: transform 0.35s ease;
	z-index: 99999;
	overflow-y: auto;
}

/* Open state */
.offcanvas-menu.is-open {
	transform: translateX(0);
}

.offcanvas-open .offcanvas-overlay {
	opacity: 1;
	pointer-events: auto;
}

.offcanvas-menu .menu-item-has-children > ul.sub-menu {
	display: none;
}

.offcanvas-menu .menu-item-has-children.open > ul.sub-menu {
	display: block;
}

.offcanvas-menu .menu-item-has-children > a {
	position: relative;
	cursor: pointer;
	padding-right: 24px;
}

.et_pb_icon_1_tb_header {
	margin-left: 0 !important;
	margin-right: 0 !important;
}

#wpfront-notification-bar div.wpfront-message,
#wpfront-notification-bar-editor.wpfront-message {
	font-family: 'Acumin Pro Condensed', sans-serif
}

/* search dropdown */
.dsm-submenu-container {
	box-shadow: 0 10px 10px rgb(0 0 0 / .1);
}

/* ==========================================================================
   03. HOME PAGE AND GENERAL CONTENT
   ========================================================================== */

/* Home page. */
.home #exhibitions .mocact-tab-content {
	display: block;
}

/* Home hero. */
#hero h4.dsm_card_title.et_pb_module_header {
	display: none;
}

.home #exhibitions .exhibition-slide {
	padding: 0;
}

.home #exhibitions .exhibition-thumb img {
	margin-bottom: 20px;
    width: 100%;
    height: auto;
    display: block;
}

.home #exhibitions .exhibition-slide h3,
.home #exhibitions .exhibition-slide p,
.home #exhibitions .exhibition-slide .exhibition-btn {
	padding: 0;
	background: transparent;
	color: #000 !important;
}

.home #exhibitions .exhibition-info {
	width: 100%;
}

.home .exhibition-single-feature h3 {
	font-size: 2em;
}

.home #exhibitions .exhibition-slide .exhibition-dates {
	font-size: 16px;
}

.home .blog .mocact-date {
	display: none;
}

/* Heading/Arrows */
.carousel-header,
.home #exhibitions .exhibitions-header {
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	margin-bottom: 60px;
	padding-bottom: 30px;
	border-bottom: 1px solid var(--clr-black);
}

.carousel-controls {
	display: flex;
	align-items: end;
	gap: 2em;
}

.carousel-prev,
.carousel-next {
	padding: 0;
	background: transparent;
	color: var(--clr-black);
	font-family: 'Font Awesome 5 Free';
	font-size: 24px;
	font-weight: 900;
	border: 0;
	cursor: pointer;
	transition: transform .15s ease, background .15s ease;
}

.carousel-prev,
.carousel-next {
	padding: 0;
	background: transparent;
	color: var(--clr-black);
	font-family: 'Font Awesome 5 Free';
	font-size: 24px;
	font-weight: 900;
	border: 0;
	cursor: pointer;
	transition: transform .15s ease, background .15s ease;
}

.carousel-prev:hover,
.carousel-next:hover {
	color: var(--clr-dk-gray);
}

/* Mobile tweaks */
@media (max-width: 980px) {
	.exhibitions-carousel {
		padding-top: 40px;
  }
}

.experience img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

/* Frequently asked questions. */
.FAQ .et_pb_toggle .et_pb_toggle_title:before {
	top: 65% !important;
}

/* ==========================================================================
   04. EXHIBITIONS AND PERFORMANCES
   ========================================================================== */

/* Exhibition filter tabs. */
.mocact-tab-buttons {
    display: flex;
    gap: 30px;
    margin-bottom: 60px;
}

.mocact-tab-buttons button {
	position: relative;
    padding: 0;
    background: none;
	color: var(--clr-dk-gray);
	font-family: 'Acumin Pro Condensed', sans-serif;
	font-size: 18px;
    font-weight: 600;
    border: 0;
    cursor: pointer;
	transition: all .2s ease-in;
}

.mocact-tab-buttons button.active {
	color: #000;
}

.mocact-tab-buttons button:after {
	content: '';
	position: absolute;
	width: 0;
	height: 3px;
	bottom: -2px;
	left: 0;
	background: var(--clr-black);
	transition: all .2s ease-in;
}

.mocact-tab-buttons button.active:after {
	width: 100%;
}

.mocact-tab-content {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1em;

	position: relative;
}

.mocact-project {
    transition: opacity 0.35s ease, transform 0.35s ease;
    opacity: 1;
    transform: translateY(0);
}

.mocact-project.hide {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;

    opacity: 0;
    transform: translateY(12px);
    pointer-events: none;
    position: absolute; /* removes from flow to prevent spacing */
}

.mocact-project {
	text-align: center;
}

.mocact-project img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.mocact-tab-content h4 {
	margin-bottom: 0;
	padding-bottom: 0;
	font-size: 24px;
}

.mocact-dates {
	margin-bottom: 10px;
	font-size: 16px;
}

.mocact-tab-content .alt-btn {
	font-size: 16px;
}

/* Current and upcoming exhibitions. */
.page-current-exhibitions .mocact-tab-content {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
}

.page-current-exhibitions .mocact-blog {
	background: transparent;
}

.page-current-exhibitions .mocact-blog img {
	aspect-ratio: 16 / 9;
	object-position: top;
}

.page-current-exhibitions .mocact-blog h4,
.page-current-exhibitions .mocact-blog .mocact-cat,
.page-current-exhibitions .mocact-blog .sep,
.page-current-exhibitions .mocact-blog .mocact-date,
.page-current-exhibitions .mocact-blog .mocact-excerpt {
	padding-left: 0;
	padding-right: 0;
}

.page-current-exhibitions .mocact-blog .mocact-excerpt {
	margin-bottom: 30px;
}

.page-current-exhibitions button.read-more {
	position: relative;
	left: 0;
	bottom: 0;
}

.mocact-current-exhibition .mocact-inner {
    display: flex;
    gap: 40px;
}

.mocact-current-exhibition .mocact-left {
    flex: 1;
}

.mocact-current-exhibition .mocact-right {
    flex: 1;
}

.mocact-current-exhibition .mocact-dates {
	color: #333;
	font-size: 20px;
}

@media (max-width: 768px) {
    .mocact-current-exhibition .mocact-inner {
        flex-direction: column;
    }
}

.page-upcoming-exhibitions .mocact-tab-content {
	grid-template-columns: repeat(2, 1fr);
}

.page-current-exhibition .exhibition-info h3 {
	font-size: 48px;
}

.page-current-exhibition .exhibition-info .exhibition_dates {
	margin-bottom: 30px;
	font-size: 16px;
}

.mocact-panel .mocact-project {
	margin-bottom: 30px;
	padding: 20px;
	text-align: left;
	border: 2px solid var(--clr-dk-gray);
}

.mocact-panel .mocact-panel-row .mocact-project a {
	display: flex;
	justify-content: space-between;
	column-gap: 2em;
}

.mocact-panel .mocact-panel-row .mocact-project .mocact-short-description {
	margin-bottom: 30px;
}

.mocact-panel .mocact-panel-row .mocact-project img {
	width: 300px;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.mocact-panel .mocact-project:hover .alt-btn:after {
	transform: rotate(0deg);
}

.mocact-panel .mocact-project button {
	cursor: pointer;
}

#exhibition-intro .et_pb_text_inner {
	color: #000;
	font-family: 'Acumin Pro Condensed';
	font-size: 32px;
	line-height: 1.5;
}

.sep,
.mocact-cat, .mocact-blog .mocact-cat {
	color: #000;
}

/* Exhibition lightbox. */
.mfp-bottom-bar {
	display: none;
}

@media (max-width: 980px) {
    .mocact-panel-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 767px) {
    .mocact-panel-grid {
        grid-template-columns: 1fr;
    }
}

.mocact-project {
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.mocact-project img {
    width: 100%;
    height: auto;
    display: block;
}

.mocact-title {
    margin-top: 12px;
}

.single-project .gallery-item img {
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border: 0 !important;
}

.single-project .gallery-caption {
	font-family: 'Acumin Pro Extra Light', sans-serif;
	font-size: 14px;
}

.mocact-dates {
    font-size: 0.9rem;
    color: #333;
}

.single #page-title .et_pb_image_wrap,
.single #page-title .et_pb_image_wrap img {
	width: 100%;
}

.single #page-title .et_pb_image_wrap img {
	aspect-ratio: 2 / 1;
	object-fit: cover;
}

.single #featured-img .et_pb_image .et_pb_image_wrap {
	width: 100%;
}

.single #featured-img img {
	width: 100%;
	object-fit: cover;
	object-position:  center center;
}

.single .et_pb_tabs {
	border: 0;
}

.single .date .et_pb_code_inner {
	color: var(--clr-white);
	font-family: 'Acumin Pro Condensed Light', sans-serif;
	font-size: 24px;
}

.single .et_pb_tabs .et_pb_tabs_controls ul {
	display: flex;
	flex-flow: row wrap;
	align-items: center;
	gap: 2em;

	margin: 0;
	padding: 0;
	border-bottom: 1px solid var(--clr-dk-gray);
	list-style: none;
}

.single .et_pb_tabs .et_pb_tabs_controls ul li {
	border-right: 0;
	border-bottom: 3px solid transparent;
}

.single .et_pb_tabs .et_pb_tabs_controls ul li.et_pb_tab_active {
	border-bottom: 3px solid var(--clr-dk-gray);
}

.single .et_pb_tabs .et_pb_tabs_controls ul li.et_pb_tab_active a {
	color: var(--clr-primary);
}

.single .et_pb_tabs .et_pb_tabs_controls ul li a {
	padding: 0 0 5px;
	color: var(--clr-dk-gray);
	font-family: 'Acumin Pro Condensed Bold', sans-serif;
	font-size: 1.2em;
}

.single .et_pb_tabs .et_pb_tab {
	display: none;
	opacity: 0;
}

.single .et_pb_tabs .et_pb_tab .et_pb_tab_content {
	padding: 30px 0 0;
}

.single .et_pb_tab_content ul,
.single .et_pb_tab_content ol {
	margin: 0;
	padding: 30px 0 30px 20px !important;
	list-style-position: outside;
}

.single .et_pb_tab_content {
	font-size: 16px;
}

.single .et_pb_tab_content ul li,
.single .et_pb_tab_content ol li {
	margin-bottom: 10px;
}

.special-note .et_pb_section {
	padding: 60px;
	background: #000 !important;
}

.special-note .et_pb_text_inner {
	color: #fff;
}

.additional-note .et_pb_text_inner {
	margin: 60px 0 0;
}

.mocact-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 16px;
}

.mocact-gallery img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	cursor: pointer;
	transition: transform 0.3s ease;
	transition: all .2s ease-in;
}

.mocact-gallery img:hover {
	transform: scale(1.03);
}

.mocact-gallery-caption {
	margin-top: 8px;
	font-size: 14px;
	line-height: 1.4;
	text-align: center;
}

/* Upcoming exhibitions. */
.mocact-hover-grid {
	display: flex;
	flex-wrap: nowrap;
	overflow: hidden;
	width: 100%;
	gap: 1em;
}

.mocact-hover-col {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	flex: 1 1 0;
	position: relative;
	min-width: 0;
	height: 40rem;
	background-size: cover;
	background-position: center;
	overflow: hidden;
	cursor: pointer;
	transition: flex 0.4s ease;
}

.mocact-hover-col:hover {
	flex: 2 1 0;
}

/* Past exhibitions. */
.single .date.past .et_pb_code_inner {
	color: #000;
}

/* Overlay fade effect */
.mocact-hover-col::before {
	content: '';
	position: absolute;
	background: rgb(0 0 0 / .4);
	inset: 0;
	transition: background 0.3s ease;
}

.mocact-hover-col:hover::before {
	background: rgb(0 0 0 / .6);
}

.mocact-hover-col .mocact-hover-content {
	position: relative;
	padding: 30px;
	width: 400px;
	background: var(--clr-black);
	opacity: 0.85;
	transition: opacity 0.3s ease;
	z-index: 1;
}

.mocact-hover-col:hover .mocact-hover-content {
	opacity: 1;
}

.mocact-hover-title {
	margin-bottom: 10px;
	padding-bottom: 0;
	color: var(--clr-white);
	font-family: 'Acumin Pro Condensed Bold', sans-serif;
}

.mocact-hover-dates {
	margin-bottom: 30px;
	color: var(--clr-white);
}

/* Responsive stacking */
@media (max-width: 768px) {

  .mocact-hover-grid {
    flex-direction: column;
  }

  .mocact-hover-col:hover {
    flex: 1 1 0;
  }

}

.mocact-hover-col .learn-more-button {
	padding: 8px 10px 5px;
	background: var(--clr-white);
	color: var(--clr-black);
	font-family: 'Acumin Pro Condensed', sans-serif;
	font-size: 14px;
	letter-spacing: 2px;
	text-transform: uppercase;
	border: 0;
	cursor: pointer;
	transition: all .2s ease-in;
}

.mocact-hover-col:hover .learn-more-button,
.mocact-hover-col .learn-more-button:hover {
	background: var(--clr-dk-gray);
	color: var(--clr-white);
}

/* Exhibition and performance single-post layout. */
.et_pb_video_play {
	display: none;
}

.mocact-post a {
	display: flex;
	flex-direction: column;
}

.mocact-post img {
    width: 100%;
    height: 240px;
    object-fit: cover;
    display: block;
}

.page-upcoming-performances .mocact-post img {
	height: auto;
}

.mocact-post .category {
	display: block;
    padding: 10px 30px 0;
	width: 100%;
	background: #000;
    font-size: 18px;
	font-family: 'Acumin Pro Condensed', sans-serif;
    text-transform: uppercase;
}

#presents .mocact-post .category {
	display: block;
    padding: 10px 30px 0;
	width: 100%;
	background: #000;
	color: #ffa2b0 !important;
    font-size: 18px;
	font-family: 'Acumin Pro Condensed', sans-serif;
    text-transform: uppercase;
}

#sessions .mocact-post .category {
	display: block;
    padding: 10px 30px 0;
	width: 100%;
	background: #000;
	color: #00a5d0 !important;
    font-size: 18px;
	font-family: 'Acumin Pro Condensed', sans-serif;
    text-transform: uppercase;
}

.mocact-post h4 {
    margin: 20px 30px 0;
	padding: 0;
    font-size: 24px;
}

.mocact-post .sep,
.mocact-post .date {
    margin: 0 30px;
	color: #000 !important;
	font-family: 'Acumin Pro Condensed', sans-serif;
	font-size: 24px;
}

.mocact-post .sep {
	margin-top: 10px;
	margin-bottom: 10px;
}

.mocact-post .excerpt {
    display: -webkit-box;
    margin: 0 30px 120px;
	color: #000;
	font-size: 16px;
	line-height: 1.5;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.mocact-post .btn {
	position: absolute;
	left: 30px;
	bottom: 30px;
	padding: 3px 20px 0px;
	background: #000;
	color: #fff;
	font-family: 'Acumin Pro Condensed', sans-serif;
    font-size: 16px;
	text-transform: uppercase;
	transition: all .3s ease-in;
}

.mocact-post:hover .btn {
	background: #636466;
}

.single-performance .date .et_pb_code_inner {
	color: #000 !important;
	font-family: 'Acumin Pro Condensed', sans-serif;
}

.single-performance .sep .et_pb_code_inner {
	margin-bottom: 20px;
}

.page-heida-hermanns-international-music-competition .mocact-post .category {
	background: transparent;
}

.page-heida-hermanns-international-music-competition .mocact-post .excerpt {
	margin-bottom: 30px;
}

.page-heida-hermanns-international-music-competition .mocact-post .btn {
	display: none;
}

/* Exhibition and performance post carousel. */
.perf-carousel-track {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
    align-items: stretch;
}

/* 3 columns desktop */
/* container */
.perf-swiper {
    width: 100%;
    position: relative;
}

/* slide card */
.perf-slide {
    background: var(--clr-lt-gray);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: auto;
}

/* navigation */
.perf-nav {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    margin-bottom: 30px;
}

.perf-nav button {
    border: 0;
    background: transparent;
	color: #000;
	font-size: 24px;
    cursor: pointer;
	transition: all .3s ease-in;
}

.perf-nav button:hover {
	color: #636466;
}

/* ==========================================================================
   05. EDUCATION, MEMBERSHIP, LEADERSHIP AND BLOG
   ========================================================================== */

/* Education. */
.single-class-workshop .et_pb_title_meta_container {
	display: none;
}

.single-class-workshop #blog-content a {
	text-decoration: underline;
}

/* Membership. */
.page-membership .et_pb_pricing_heading {
	padding-bottom: 0 !important;
}

.page-membership .et_pb_pricing li {
	padding: 0 0 10px;
}

/* Leadership and staff. */
ul.staff {
  /*display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2em;*/
  margin: 0;
  padding: 0;
  list-style: none;
}

ul.staff li {
	margin-bottom: 10px;
}

/* Blog index. */
.mocact-blog {
	position: relative;
	background: var(--clr-lt-gray);
}

.mocact-blog.hide {
	display: none !important;
}

.mocact-blog img {
	aspect-ratio: 3 / 2;
	object-fit: cover;
	margin-bottom: 10px;
}

.mocact-blog h4,
.mocact-blog .mocact-cat,
.mocact-blog .sep,
.mocact-blog .mocact-date,
.mocact-blog .mocact-excerpt {
	display: block;
	padding-left: 30px;
	padding-right: 30px;
	color: #333;
}

.mocact-cat,
.mocact-blog .mocact-cat {
	padding-bottom: 0;
	font-family: 'Acumin Pro Condensed Bold', sans-serif;
	text-transform: uppercase;
}

.mocact-blog .sep,
.mocact-date {
	font-family: 'Acumin Pro Condensed', sans-serif;
	font-size: 24px;
}

.mocact-excerpt {
	margin-bottom: 80px;
	font-size: 16px;
	line-height: 1.5;
}

.mocact-blog button {
	position: absolute;
	left: 30px;
	bottom: 20px;
	cursor: pointer;
}

.mocact-cat.current-exhibition,
.mocact-cat.upcoming-exhibition,
.mocact-blog .mocact-cat.current-exhibition,
.mocact-blog .mocact-cat.past-exhibition,
.mocact-blog .mocact-cat.press-and-media,
.mocact-blog .mocact-cat.blog,
.mocact-blog .mocact-cat.press-release {
	color: var(--clr-primary);
}

.mocact-cat.performance,
.mocact-cat.past-performance,
.mocact-cat.upcoming-performance {
	color: var(--clr-pink);
}

.mocact-blog .mocact-cat.media-coverage {
	color: var(--clr-orange);
}

/* Blog single post. */
.single-post .et_pb_title_featured_container {
	margin-bottom: 60px;
}

.single-post #main-content ol {
	margin-left: 20px;
	list-style-position: outside;
}

.single-post #main-content ol li {
	margin-bottom: 10px;
}

/* Related posts. */
#related-posts .et_pb_salvattore_content {
	display: flex;
}

#related-posts .et_pb_blog_grid .column {
	float: none;
	padding: 20px;
	border: 2px solid var(--clr-dk-gray);
}

#related-posts .et_pb_blog_grid article {
	margin-bottom: 0;
	padding: 0;
	height: 100%;
}

#related-posts .et_pb_blog_grid article .et_pb_image_container {
	margin: 0 0 30px;
}

#related-posts .et_pb_blog_grid article .post-content-inner {
	margin-bottom: 60px;
}

#related-posts .et_pb_blog_grid article .more-link {
	position: absolute;
	bottom: 20px;
}

/* Upcoming exhibition feature layout. */
.page-upcoming-exhibitions .mocact-tab-content {
	display: block;
}

.page-upcoming-exhibitions .mocact-blog img {
	margin-bottom: 0;
}

.mocact-blog.layout-split .mocact-inner {
    display: flex;
    gap: 30px;
    align-items: center;
	margin-bottom: 30px;
}

.mocact-blog.layout-split .mocact-left {
    flex: 1;
	padding: 30px;
}

.mocact-blog.layout-split .mocact-right {
    flex: 1;
}

.mocact-blog.layout-split .mocact-right img {
    width: 100%;
    height: auto;
    display: block;
}

.page-upcoming-exhibitions .mocact-blog .mocact-cat,
.page-upcoming-exhibitions .mocact-blog h4,
.page-upcoming-exhibitions .mocact-blog .sep,
.page-upcoming-exhibitions .mocact-blog .mocact-excerpt {
	padding: 0;
}

.page-upcoming-exhibitions .mocact-blog .mocact-excerpt {
	margin-bottom: 30px;
}

.page-upcoming-exhibitions .mocact-blog button {
	position: relative;
	left: 0;
	bottom: 0;
}


/* Mobile stack */
@media (max-width: 768px) {
    .mocact-blog.layout-split .mocact-inner {
        flex-direction: column;
    }
}

.single-performance .blog-content .et_pb_row_0 {
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.single-performance #page-title {
	color: #fff;
}

.single-performance .past-performance .et_pb_section_0,
.single-performance .past-performance div.et_pb_section.et_pb_section_2 {
	background-image: none !important;
}

.single-performance .past-performance h3,
.single-performance .past-performance h1,
.single-performance .past-performance .et_pb_button_module_wrapper {
	display: none;
}

/* Press and media coverage. */
.mocact-press-thumb {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 10px;
	padding: 30px;
	width: 100%;
	height: 280px;
	color: #fff;
	font-family: 'Acumin Pro Condensed Bold', sans-serif;
	font-size: 48px;
	line-height: 1;
	text-align: center;
	text-transform: uppercase;
}

.mocact-press-thumb.press-release {
	background: var(--clr-primary);
}

.mocact-press-thumb.media-coverage {
	background: var(--clr-orange);
}

.page-id-408 span.mocact-date {
	display: none;
}

/* ==========================================================================
   06. BUTTONS, HOURS AND PRICE LISTS
   ========================================================================== */

/* Buttons. */
.et_pb_button.btn-big,
.et_pb_button.btn-big:hover {
	padding: 15px 30px 11px !important;
}

a.learn-more-button,
button.read-more,
.more-link {
	padding: 10px 15px 7px;
	background: var(--clr-black);
	color: #fff !important;
	font-family: 'Acumin Pro Condensed', sans-serif;
	font-size: 16px;
	letter-spacing: 2px;
	text-transform: uppercase;
	border: 0;
	transition: background .2s ease-in;
}

a.learn-more-button:hover,
button.read-more:hover,
.more-link:hover {
	background: var(--clr-dk-gray);
}

/* Hours. */
.entry-content table:not(.variations) {
	border: 0;
}

.entry-content tr th,
.entry-content tr td {
	color: var(--clr-black);
}

table.opening-hours tbody tr.day th,
table.opening-hours tbody tr.day td {
	padding: 5px 0;
	color: var(--dk-gray);
	border-bottom: 1px dotted #ccc;
}

.bg-blk table.opening-hours tbody tr.day th,
.bg-blk table.opening-hours tbody tr.day td {
	color: #fff;
}

/* Price list. */
ul.price-list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);

	margin: 0;
	padding: 0;
	list-style: none;
}

ul.price-list li {
	padding: 9px 0;
	border-bottom: 1px dotted #ccc;
}

ul.price-list li.type {
	font-weight: 700;
}

ul.price-list li.price {
	text-align: right;
}

/* ==========================================================================
   07. CALENDAR AND EVENT VIEWS
   ========================================================================== */

/* Calendar: shared styles. */
.page-calendar .mec-wrap .mec-totalcal-box .mec-totalcal-view span,
.mec-event-list-standard .mec-event-title,
.mec-wrap .mec-search-form .mec-date-search select,
.mec-calendar.mec-calendar-daily .mec-calendar-a-month h4,
.page-calendar .mec-calendar.mec-event-container-simple dl dt.mec-calendar-day,
.mec-calendar.mec-calendar-daily .mec-calendar-d-top h3,
.mec-calendar.mec-calendar-daily .mec-calendar-d-top h2,
.mec-calendar.mec-calendar-daily .mec-previous-month i,
.mec-calendar.mec-calendar-daily .mec-next-month i,
.mec-calendar.mec-calendar-daily .mec-calendar-d-table a.mec-table-d-prev,
.mec-calendar.mec-calendar-daily .mec-calendar-d-table a.mec-table-d-next,
.mec-calendar.mec-calendar-weekly .mec-event-list-weekly-date,
.mec-calendar .mec-weekly-contents,
.mec-wrap h3,
.entry-content .mec-wrap h3,
.entry-content .mec-wrap h5 {
	font-family: 'Acumin Pro Condensed', san-serif;
}

.page-calendar .mec-wrap .mec-totalcal-box {
	position: absolute;
	right: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
	z-index: 2;
}

.page-calendar .mec-totalcal-view {
	padding: 0 !important;
}

.page-calendar .mec-wrap .mec-totalcal-box .mec-totalcal-view {
	text-align: right;
	float: none;
	display: flex;
	flex-flow: row wrap;
	justify-content: end;
	column-gap: 10px;
}

.page-calendar .mec-wrap .mec-totalcal-box .mec-totalcal-view span,
.mec-event-footer .mec-booking-button {
	padding: 7px 16px 4px;
	height: fit-content;
	font-size: 16px;
	letter-spacing: 2px;
	line-height: 2;
	border: 0;
}

.page-calendar .mec-wrap .mec-totalcal-box .mec-totalcal-view span.mec-totalcalview-selected {
	color: #fff;
	border-color: #000;
}

.mec-event-footer .mec-booking-button {
	background: #000;
	color: #fff;
	font-family: 'Acumin Pro Condensed', sans-serif;
}

.mec-wrap input:focus-visible,
.mec-wrap select:focus-visible {
	outline: 0;
}

.page-calendar .mec-calendar .mec-calendar-header h2,
.mec-calendar.mec-calendar-daily .mec-calendar-a-month h4,
.entry-content .mec-wrap h5 {
	margin-top: 8px;
	margin-left: 0;
	padding-top: 14px;
	color: #000;
	font-size: 48px;
	font-weight: 700;
	text-align: left;
}

.page-calendar .mec-box-calendar.mec-calendar.mec-event-calendar-classic .mec-calendar-side .mec-previous-month,
.page-calendar .mec-box-calendar.mec-calendar.mec-event-calendar-classic .mec-calendar-side .mec-next-month,
.mec-calendar.mec-calendar-weekly .mec-calendar-a-month .mec-previous-month,
.mec-calendar.mec-calendar-weekly .mec-calendar-a-month .mec-next-month,
i.mec-sl-calendar {
	display: none;
}

.mec-full-calendar-search-ends {
	display: flex;
	flex-direction: row;
	justify-content: flex-end;
}

.mec-search-form .mec-date-search {
	width: 20%;
}

.mec-tab-loader {
	width: 30%;
}

.mec-sl-calendar:before {
	line-height: 1.5;
}

.mec-wrap .mec-totalcal-box i,
.mec-wrap .mec-totalcal-box select {
	height: 43px;
	border: 0;
}

.mec-wrap .mec-search-form .mec-date-search select {
	font-size: 24px;
}

.page-calendar .mec-calendar.mec-event-calendar-classic dl.mec-calendar-table-head .mec-calendar-day-head {
	background: var(--clr-primary);
	color: #fff;
	border: 0;
}

.page-calendar .mec-calendar.mec-event-calendar-classic dl.mec-calendar-table-head .mec-calendar-day-head:not(:nth-of-type(1)) {
	border-left: 1px solid #000;
}

.page-calendar .mec-box-calendar.mec-calendar dt:not(:nth-of-type(1)) {
	border-left: 1px solid #000;
}

.page-calendar .mec-box-calendar.mec-calendar dt:nth-of-type(1) {
	border-left: 0;
}

.page-calendar .mec-calendar.mec-event-container-simple dl dt.mec-selected-day,
.page-calendar .mec-calendar.mec-event-container-simple .mec-calendar-row dt:hover {
	background: #fff !important;
}

.page-calendar .mec-calendar.mec-event-container-simple dl dt.mec-selected-day,
.page-calendar .mec-calendar.mec-event-container-simple dl dt.mec-selected-day:hover {
	border-bottom: 2px solid var(--clr-primary) !important;
}

.page-calendar .mec-calendar.mec-event-container-simple dl dt.mec-calendar-day {
	font-size: 14px;
	font-weight: 400;
}

.page-calendar .mec-box-calendar.mec-calendar dl dt:last-child {
	border-right: 0;
}

/* Calendar: weekly view. */
.mec-calendar {
	border: 0;
}

.mec-calendar.mec-calendar-daily .mec-calendar-a-month {
	border-bottom: 0;
}

.mec-calendar.mec-calendar-daily .mec-calendar-d-top {
	background: var(--clr-primary);
}

.mec-calendar.mec-calendar-daily .mec-calendar-d-top h3,
.mec-calendar.mec-calendar-daily .mec-calendar-d-top h2 {
	padding-bottom: 0;
	color: #fff;
}

.mec-calendar.mec-calendar-daily .mec-previous-month,
.mec-calendar.mec-calendar-daily .mec-next-month {
	background: transparent;
	border: 0;
}

.mec-calendar.mec-calendar-daily .mec-previous-month i,
.mec-calendar.mec-calendar-daily .mec-next-month i,
.mec-calendar.mec-calendar-daily .mec-calendar-d-table a.mec-table-d-prev,
.mec-calendar.mec-calendar-daily .mec-calendar-d-table a.mec-table-d-next {
	color: #fff;
	font-size: 32px;
}

.mec-sl-angle-right:before {
	content: '>';
}

.mec-sl-angle-left:before {
	content: '<';
}

.mec-calendar.mec-calendar-weekly .mec-calendar-d-table dl dt {
	height: auto;
}

.mec-calendar.mec-calendar-weekly .mec-calendar-d-table dl dt span {
	margin: 10px;
	font-size: 15px;
}

.mec-calendar.mec-calendar-daily .mec-calendar-d-table,
.mec-calendar.mec-calendar-daily .mec-calendar-day-events .mec-event-article {
	border: 0;
}

.mec-calendar.mec-calendar-weekly .mec-event-list-weekly-date {
	font-size: 16px;
}

.mec-calendar .mec-event-article:hover {
	background-color: transparent;
}

.mec-calendar .mec-event-article .mec-event-time {
	font-size: 12px;
}

.mec-calendar .mec-event-article .mec-event-title {
	font-size: 18px;
}

.mec-calendar .mec-event-article .mec-event-title a,
.mec-wrap h3 a,
.entry-content .mec-wrap h3 a,
.mec-wrap .mec-event-list-standard .mec-event-title a,
.mec-wrap.colorskin-custom .mec-event-description {
	color: #000 !important;
}

.mec-wrap.colorskin-custom .mec-event-description {
	font-size: 16px;
}

.mec-event-list-standard .mec-date-details i,
.mec-event-list-standard .mec-categories-wrapper i,
.mec-event-list-standard .mec-shortcode-organizers i {
	float: none;
}

.mec-event-list-standard .mec-event-meta span.mec-event-d .mec-start-date-label,
.mec-event-list-standard .mec-event-meta .mec-time-details .mec-start-time,
.mec-event-list-standard .mec-event-meta .mec-time-details .mec-end-time,
.mec-event-list-standard .mec-event-meta .mec-venue-details span,
.mec-event-list-standard .mec-event-meta .mec-venue-details .mec-event-address span {
	color: #000;
	font-family: 'Acumin Pro Condensed', sans-serif;
	font-size: 16px;
	font-weight: 400;
}

.mec-event-meta i:before {
	font-size: 14px !important;
}

.mec-event-list-standard .mec-event-meta svg {
	width: 14px;
	height: 14px;
}

.mec-event-list-standard .mec-venue-details:last-child svg {
	margin-right: 8px;
}

.mec-event-footer .mec-booking-button {
	background: #000;
}

/* Calendar: daily view. */
.mec-calendar.mec-calendar-daily .mec-today-container .mec-today-count {
	color: #fff;
	font-size: 14px;
}

.mec-calendar .mec-event-footer {
	display: none;
}

.mec-calendar.mec-calendar-daily .mec-calendar-d-table a.mec-table-d-prev,
.mec-calendar.mec-calendar-daily .mec-calendar-d-table a.mec-table-d-next {
	color: #000;
}

/* Calendar: list view. */
.mec-month-divider:before,
.mec-month-divider:after {
	display: none;
}

.mec-event-list-standard .mec-event-article {
	border: 0;
	box-shadow: none;
}

.mec-event-footer {
	background: #fff;
}

.mec-event-sharing-wrap {
	display: none;
}

.mec-event-footer .mec-booking-button {
	right: unset;
	left: 20px;
}

/* Calendar: single event view. */
.mec-single-modern .mec-single-event-bar>div i {
	position: absolute;
	top: 20px;
	color: #000;
	font-size: 16px;
}

.mec-single-modern .mec-single-event-bar>div>div,
.mec-single-modern .mec-single-event-bar>div h3 {
	margin-left: 30px;
	padding: 0;
	color: #000;
	font-family: 'Acumin Pro Condensed', sans-serif;
	font-size: 18px;
	font-weight: 400;
}

.mec-single-modern .mec-single-event-bar>div dd {
	padding-left: 30px;
	color: #000;
	font-size: 18px !important;
}

.mec-single-event .mec-event-meta h3,
.mec-single-event .mec-event-meta .mec-cost {
	font-family: 'Acumin Pro Condensed', sans-serif;
	font-size: 18px;
	font-weight: 400;
}

.mec-single-event .mec-single-event-location dl dd i {
	display: none;
}

.mec-single-event-sponsor span,
.mec-single-event .mec-event-meta h6,
.mec-single-event .mec-event-meta .mec-meta-label {
	color: #000;
}

.mec-single-event .mec-event-meta dd {
	padding-left: 28px;
}

.mec-single-event .mec-event-meta .mec-events-address .mec-address {
	font-size: 16px;
}

.mec-single-event .mec-single-event-location dd span {
	padding-left: 0;
}

.mec-wrap p {
	color: #000;
	font-size: 18px;
}

.mec-single-event .mec-booking-button:hover {
	background-color: #636466;
}

/* ==========================================================================
   08. FORMS, FOOTER, GALLERY AND STAFF
   ========================================================================== */

/* Forms. */
input[type=email] {
	border-color: var(--clr-blk) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

.gform-theme--foundation .gfield input[type=submit] {
	background: var(--clr-primary) !important;
	font-family: 'Acumin Pro Condensed', sans-serif !important;
	font-size: 16px !important;
	text-transform: uppercase !important;
	border-radius: 0 !important;
}

.gform-theme--foundation .gfield input[type=submit]:hover {
	background: rgb(0 165 208 / .8) !important;
	color: #fff !important;
}

/* Footer. */
#main-footer .et-menu-nav ul {
	flex-direction: column;
	margin: 0;
	padding: 0;
}

#main-footer .et-menu-nav ul>li {
	padding: 0;
}

#main-footer #mc_embed_signup {
	width: 80% !important;
}

#main-footer #mc_embed_signup form {
	margin: 0;
}

#main-footer #mc_embed_signup .mc-field-group input {
	height: 39px;
	border: 1px solid #000;
}

#main-footer #mc_embed_signup #mc-embedded-subscribe-form input.mce_inline_error {
	border-color: #e85c41;
}

#main-footer #mc_embed_signup .clear {
	position: absolute;
	top: 19px;
	right: 0;
}

#main-footer #mc_embed_signup .button {
	margin: 0;
	padding: 5px 20px 2px;
	height: auto;
	font-family: 'Acumin Pro Condensed', sans-serif;
	font-size: 16px;
	letter-spacing: 2px;
	text-transform: uppercase;
	border-radius: 0;
}

 #main-footer .opening-hours {
	width: 80%;
}

#main-footer table.opening-hours tbody tr.day th,
#main-footer table.opening-hours tbody tr.day td {
	padding: 0;
	font-size: 16px;
	text-align: left;
	border: 0;
}

/* Gallery. */
.mocact-gallery-3col.et_pb_gallery_grid .et_pb_gallery_items {
	display: flex;
}

.mocact-gallery-3col .et_pb_gallery_item {
    width: 33.3333% !important;
    clear: none !important;
}

.mocact-gallery-3col .et_pb_gallery_item:nth-child(3n+1) {
    clear: both !important;
}

/* Staff. */
.page-leadership-staff .et_pb_blurb h3,
.page-leadership-staff .et_pb_blurb_description,
.page-heida-competition-judges .et_pb_blurb h3,
.page-heida-competition-judges .et_pb_blurb_description {
	padding: 0 30px;
}

.page-leadership-staff .et_pb_icon {
	padding: 0 30px 30px;
}

/* ==========================================================================
   09. GLOBAL RESPONSIVE ADJUSTMENTS
   ========================================================================== */

/* Responsive typography and layout. */
.body-24-bold {
	font-family: 'Acumin Pro Condensed Bold', sans-serif;
	font-size: 24px;
}

@media (max-width: 980px) {

	#wpfront-notification-bar {
		position: relative !important;
		top: auto !important;
	}

	/*
	 * On the home page, the header begins below the notification bar. As the
	 * bar scrolls out of view, true sticky positioning holds the header at the
	 * top of the viewport without needing a calculated notification-bar height.
	 */
	body.home #main-header.et_pb_sticky,
	body.home #mobile-header.et_pb_sticky {
		position: -webkit-sticky !important;
		position: sticky !important;
		top: var(--mocact-mobile-notice-offset, 0px) !important;
		margin-top: 0 !important;
		z-index: 99998 !important;
	}

	/* Keep the sticky mobile header flush with the top of the viewport. */
	body:not(.home):not(.admin-bar) #main-header.et_pb_sticky,
	body:not(.home):not(.admin-bar) #mobile-header.et_pb_sticky {
		top: 0 !important;
		margin-top: 0 !important;
	}

	/* Leave room for WordPress's mobile admin toolbar when logged in. */
	body:not(.home).admin-bar #main-header.et_pb_sticky,
	body:not(.home).admin-bar #mobile-header.et_pb_sticky {
		top: 46px !important;
		margin-top: 0 !important;
	}

	body.home.admin-bar #main-header.et_pb_sticky,
	body.home.admin-bar #mobile-header.et_pb_sticky {
		top: calc(46px + var(--mocact-mobile-notice-offset, 0px)) !important;
	}

	.home #intro .moca-hours .et_pb_code_inner {
		text-align: left;
	}

	.exhibition-slide {
		min-width: calc((100% - 24px) / 2);
	}

	.offcanvas-menu-list {
		padding: 0 !important;
		list-style-type: none !important;
	}

	.offcanvas-menu-list  li {
		margin-bottom: 30px;
	}

	.offcanvas-menu-list  li a {
		font-family: 'Acumin Pro Condensed Bold', sans-serif;
		font-size: 24px;
	}

	.offcanvas-menu .et-menu-nav li:hover > .sub-menu,
	.offcanvas-menu .et-menu-nav li.et-hover > .sub-menu {
		display: none !important;
		opacity: 0 !important;
		visibility: hidden !important;
	}

	.offcanvas-menu-list .sub-menu {
		display: none !important;
		padding: 0;
		list-style: none;
		height: 0;
		transition: all .2s ease-in;
	}

	.offcanvas-menu-list .sub-menu li {
		margin-bottom: 10px;
	}

	.offcanvas-menu-list .sub-menu li a {
		font-family: 'Acumin Pro Condensed Light', sans-serif;
		font-size: 18px;
	}

	.offcanvas-menu-list li.submenu-open > .sub-menu {
		display: block !important;
		height: auto;
		opacity: 1 !important;
		visibility: visible !important;
	}

	.offcanvas-menu-list .sub-menu li {
		margin-bottom: 10px;
		font-size: 18px;
	}

	.open-mobile-menu .et_pb_menu__menu {
		display: flex!important;
	}

	.open-mobile-menu .et_mobile_nav_menu {
		display: none!important;
	}

	.mocact-tab-content {
		grid-template-columns: repeat(2, 1fr);
		gap: 2em;
	}

	#related-posts .et_pb_blog_grid .column {
		display: flex;
		flex-direction: column;
		row-gap: 2em;
		padding: 0;
		border: 0;
	}

	#related-posts .et_pb_blog_grid article {
		padding: 20px;
		height: auto;
		border: 2px solid var(--clr-dk-gray);
	}

	#related-posts .et_pb_blog_grid article .more-link {
		position: relative;
	}

	.mec-wrap .mec-totalcal-box {
		position: relative;
	}

	.mec-wrap .mec-totalcal-box .mec-totalcal-view {
		justify-content: center;
	}

	.mec-calendar .mec-calendar-header h2 {
		text-align: center;
	}

	#main-footer #mc_embed_signup {
		width: 100% !important;
	}

	#main-footer .et_pb_menu--style-left_aligned .et_pb_menu__wrap {
		justify-content: flex-start !important;
	}

	#main-footer .et-menu-nav ul {
		display: flex;
		flex-direction: column;
	}

	.mocact-panel .mocact-panel-row .mocact-project a {
		flex-direction: column-reverse;
	}

	.mocact-panel .mocact-panel-row .mocact-project img {
		width: 100%;
	}

	.special-note .et_pb_section {
		padding: 0;
	}

	.mocact-hover-grid {
		display: grid;
	}

	.page-leadership-staff ul.staff {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
	}

	#intro .et_pb_text_inner {
		font-size: 32px;
	}

	.mec-full-calendar-search-ends {
		flex-direction: column;
	}

	.mec-search-form .mec-date-search,
	.mec-full-calendar-wrap .mec-tab-loader {
		width: 100%;
	}

	.mec-full-calendar-wrap .mec-tab-loader {
		padding: 20px 0 0;
	}

	.page-calendar .mec-wrap .mec-totalcal-box .mec-totalcal-view {
		justify-content: center;
	}

	.page-calendar .mec-wrap .mec-totalcal-box {
		position: relative;
	}

}

@media (max-width: 680px) {

	.exhibition-slide {
		min-width: 100%;
	}

	.carousel-header {
		flex-direction: column;
		justify-content: center;
	}

	.page-leadership-staff ul.staff {
		grid-template-columns: repeat(1, 1fr);
		gap: 1em;
	}

	.mocact-tab-content,
	.page-past-exhibitions .mocact-tab-content {
		grid-template-columns: repeat(1, 1fr) !important;
		column-gap: 0;
	}

}


.two-col-text .et_pb_text_inner,
p.two-col-txt {
  column-count: 2;
  column-gap: 30px;
}

.two-col-text .et_pb_text_inner p,
p.two-col-txt {
  margin-top: 0;
}

@media (max-width: 980px) {
  .two-col-text .et_pb_text_inner {
    column-count: 1;
  }
}

/* ==========================================================================
   10. CUSTOM PERFORMANCE AND EXHIBITION CAROUSELS
   ========================================================================== */

/* =========================================================
   Exhibitions Single Slider
   Shortcode: [exhibitions_single_slider]
   Layout: 2 equal-width centered columns
========================================================= */


/* Main wrapper */
.exhibitions-single-swiper-wrap {
    width: 100%;
    overflow: visible;
}


/* Header area above carousel */
.exhibitions-single-swiper-wrap .carousel-header {
    position: relative;
    z-index: 5;
}


/* Title + controls layout */
.exhibitions-single-swiper-wrap .carousel-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 24px;
}


/* Carousel controls */
.exhibitions-single-swiper-wrap .carousel-controls {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-shrink: 0;
}


/* Chevron buttons */
.exhibitions-single-swiper-wrap .carousel-controls button {
    width: 44px;
    height: 44px;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    padding: 0;
    transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}


.exhibitions-single-swiper-wrap .carousel-controls button i {
    font-size: 16px;
    line-height: 1;
}


.exhibitions-single-swiper-wrap .carousel-controls button:hover {
    color: rgb(0 0 0 / 50%);
}


/* =========================================================
   Carousel
========================================================= */

.exhibitions-single-swiper {
    width: 100%;
    margin: 0;
    padding: 20px 0 55px;
    overflow: hidden;
    box-sizing: border-box;
}


/* Swiper track */
.exhibitions-single-swiper .swiper-wrapper {
    align-items: flex-start;
}


/* =========================================================
   Slides
========================================================= */

.exhibitions-single-swiper .exhibition-slide {
    width: auto !important;
    height: auto;
    box-sizing: border-box;
    opacity: 0.45;
    transition: opacity 0.3s ease, transform 0.3s ease;
}


/* Active slide */
.exhibitions-single-swiper .swiper-slide-active {
    opacity: 1;
}


/* Neighbor slides */
.exhibitions-single-swiper .swiper-slide-prev,
.exhibitions-single-swiper .swiper-slide-next {
    opacity: 0.75;
}


/* =========================================================
   Images
========================================================= */

.exhibitions-single-swiper .exhibition-thumb {
    display: block;
    width: 100%;
    height: 460px;
    overflow: hidden;
}


.exhibitions-single-swiper .exhibition-thumb img {
    display: block;
    width: 100% !important;
    height: 460px !important;
    max-width: 100% !important;
    object-fit: contain;
    object-position: center;
}


/* =========================================================
   Text content
========================================================= */

.exhibitions-single-swiper .exhibition-content {
    max-width: 100%;
    padding-top: 22px;
}


/* Title */
.exhibitions-single-swiper .exhibition-title {
    margin-bottom: 8px;
}


/* Date */
.exhibitions-single-swiper .exhibition-dates {
    margin-bottom: 18px;
}


/* Button */
.exhibitions-single-swiper .exhibition-btn {
    margin-top: 12px;
}


/* Remove underlines */
.exhibitions-single-swiper .exhibition-title a,
.exhibitions-single-swiper .exhibition-thumb {
    text-decoration: none;
}


/* =========================================================
   Tablet
========================================================= */

@media (max-width: 980px) {

    .exhibitions-single-swiper-wrap .carousel-header {
        align-items: flex-start;
    }

    .exhibitions-single-swiper .exhibition-thumb {
        height: 390px;
    }

    .exhibitions-single-swiper .exhibition-thumb img {
        height: 390px !important;
        max-height: 390px;
    }

}


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

@media (max-width: 767px) {

    .exhibitions-single-swiper-wrap .carousel-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 18px;
    }

    .exhibitions-single-swiper {
        padding-bottom: 40px;
    }

    .exhibitions-single-swiper .exhibition-thumb {
        height: 300px;
    }

    .exhibitions-single-swiper .exhibition-thumb img {
        height: 300px !important;
        max-height: 300px;
    }

    .exhibitions-single-swiper .exhibition-content {
        padding-top: 18px;
    }

    .exhibitions-single-swiper-wrap .carousel-controls button {
        width: 40px;
        height: 40px;
    }

}

/* ==========================================================================
   11. DYNAMIC POST FEED
   ========================================================================== */

/* Style [mocact_posts post_type="project" term="current-exhibition"] posts. */
.mocact-tab-content .mocact-blog.project {
    margin-bottom: 50px;
}

/* Make featured image always fill the post width */
.mocact-tab-content .mocact-blog.project > a > img,
.mocact-tab-content .mocact-blog.project .mocact-right img {
    width: 100%;
    max-width: 100%;
    height: auto;
    display: block;
}

/* Force full-width images inside [mocact_posts post_type="project"] */
.mocact-tab-content .mocact-blog.project,
.mocact-tab-content .mocact-blog.project > a {
    width: 100%;
    max-width: 100%;
    display: block;
}

.mocact-tab-content .mocact-blog.project img,
.mocact-tab-content .mocact-blog.project .wp-post-image {
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    display: block;
}


ul#menu-main-nav-visit-1 {
    display: block !important;
}


.donation-form-embed-container h2:not(.ignore-typography) {
font-family: 'Acumin Pro Bold', Helvetica, Arial, Lucida, sans-serif !important;
}


/* ==========================================================================
   12. CALENDAR TOOLBAR
   ========================================================================== */

/* ==========================================================
   MOCA MEC FULL CALENDAR TOOLBAR
   Based on the calendar's actual HTML structure
========================================================== */

/* Main toolbar container */
.mec-full-calendar-wrap > .mec-search-form.mec-totalcal-box {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 0 32px !important;
    padding: 22px !important;
    clear: both !important;
    float: none !important;
    overflow: visible !important;
    background: #ffffff !important;
    border: 1px solid #d9dee2 !important;
    border-radius: 10px !important;
    box-shadow: 0 5px 18px rgba(0, 0, 0, 0.06) !important;
}

/* Form layout */
.mec-full-calendar-wrap > .mec-search-form > form {
    display: grid !important;
    grid-template-columns: minmax(220px, 1fr) auto !important;
    align-items: center !important;
    gap: 18px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Category wrapper */
.mec-full-calendar-wrap
.mec-search-form
> form
> .mec-dropdown-wrap {
    display: block !important;
    position: relative !important;
    float: none !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Category inner wrappers */
.mec-full-calendar-wrap .mec-dropdown-wrap,
.mec-full-calendar-wrap .mec-dropdown-search {
    position: relative !important;
    float: none !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
}

/* Category select */
.mec-full-calendar-wrap select.mec_sf_category_mec1,
.mec-full-calendar-wrap select.postform {
    display: block !important;
    width: 100% !important;
    height: 50px !important;
    min-height: 50px !important;
    margin: 0 !important;
    padding: 0 42px 0 16px !important;
    border: 1px solid #cdd4d8 !important;
    border-radius: 6px !important;
    background-color: #fff !important;
    color: #212121 !important;
    font-family: inherit;
    font-size: 16px !important;
    font-weight: 500 !important;
    line-height: 50px !important;
    box-shadow: none !important;
}

/* Right side: date selectors + view buttons */
.mec-full-calendar-wrap .mec-full-calendar-search-ends {
    display: flex !important;
    position: relative !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex-wrap: nowrap !important;
    gap: 18px !important;
    float: none !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Month and year group */
.mec-full-calendar-wrap .mec-date-search {
    display: flex !important;
    position: relative !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    float: none !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Month and year dropdowns */
.mec-full-calendar-wrap .mec-date-search select {
    display: block !important;
    position: relative !important;
    float: none !important;
    width: auto !important;
    height: 50px !important;
    min-height: 50px !important;
    margin: 0 !important;
    padding: 0 40px 0 14px !important;
    border: 1px solid #cdd4d8 !important;
    border-radius: 6px !important;
    background-color: #fff !important;
    color: #212121 !important;
    font-family: inherit ;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 50px !important;
    box-shadow: none !important;
}

.mec-full-calendar-wrap
.mec-date-search
select[id*="mec_sf_month"] {
    min-width: 145px !important;
}

.mec-full-calendar-wrap
.mec-date-search
select[id*="mec_sf_year"] {
    min-width: 105px !important;
}

/* View button loader wrapper */
.mec-full-calendar-wrap .mec-tab-loader {
    display: block !important;
    position: relative !important;
    float: none !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* View button row */
.mec-full-calendar-wrap .mec-totalcal-view {
    display: flex !important;
    position: relative !important;
    align-items: center !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 7px !important;
    float: none !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Individual view buttons */
.mec-full-calendar-wrap .mec-totalcal-view > span {
    display: inline-flex !important;
    position: relative !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    align-items: center !important;
    justify-content: center !important;
    float: none !important;
    width: auto !important;
    min-width: 88px !important;
    height: 50px !important;
    min-height: 50px !important;
    margin: 0 !important;
    padding: 0 15px !important;
    border: 1px solid #cdd4d8 !important;
    border-radius: 6px !important;
    background: #fff !important;
    color: #252525 !important;
    font-family: inherit;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: 1px !important;
    text-align: center !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
    box-shadow: none !important;
    transform: none !important;
    transition: 0.2s ease !important;
}

/* Selected and hovered view */
.mec-full-calendar-wrap
.mec-totalcal-view
> span:hover,
.mec-full-calendar-wrap
.mec-totalcal-view
> span.mec-totalcalview-selected {
    background: #111 !important;
    border-color: #111 !important;
    color: #fff !important;
}

/* Calendar month heading */
.mec-full-calendar-wrap .mec-calendar-header h2 {
    margin: 0 !important;
    color: #111 !important;
    font-size: clamp(28px, 4vw, 48px) !important;
    line-height: 1.1 !important;
    font-weight: 700 !important;
}

/* Space between toolbar and calendar */
.mec-full-calendar-wrap .mec-full-calendar-skin-container {
    clear: both !important;
    position: relative !important;
    width: 100% !important;
    margin-top: 0 !important;
}

/* Prevent calendar from sliding under controls */
.mec-full-calendar-wrap .mec-calendar,
.mec-full-calendar-wrap .mec-calendar-side {
    clear: both !important;
    position: relative !important;
    width: 100% !important;
}

/* ==========================================================
   MEDIUM DESKTOP / TABLET
========================================================== */

@media only screen and (max-width: 1250px) {

    .mec-full-calendar-wrap > .mec-search-form > form {
        grid-template-columns: 1fr !important;
    }

    .mec-full-calendar-wrap .mec-full-calendar-search-ends {
        justify-content: space-between !important;
        width: 100% !important;
    }
}

/* ==========================================================
   TABLET
========================================================== */

@media only screen and (max-width: 900px) {

    .mec-full-calendar-wrap .mec-full-calendar-search-ends {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .mec-full-calendar-wrap .mec-date-search {
        width: 100% !important;
    }

    .mec-full-calendar-wrap .mec-date-search select {
        flex: 1 1 0 !important;
        width: 50% !important;
    }

    .mec-full-calendar-wrap .mec-tab-loader,
    .mec-full-calendar-wrap .mec-totalcal-view {
        width: 100% !important;
    }

    .mec-full-calendar-wrap .mec-totalcal-view > span {
        flex: 1 1 0 !important;
        min-width: 0 !important;
    }
}

/* ==========================================================
   MOBILE
========================================================== */

@media only screen and (max-width: 600px) {

    .mec-full-calendar-wrap > .mec-search-form.mec-totalcal-box {
        padding: 14px !important;
    }

    .mec-full-calendar-wrap .mec-date-search {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
    }

    .mec-full-calendar-wrap .mec-date-search select {
        width: 100% !important;
        min-width: 0 !important;
        font-size: 14px !important;
    }

    .mec-full-calendar-wrap .mec-totalcal-view {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
    }

    .mec-full-calendar-wrap .mec-totalcal-view > span {
        width: 100% !important;
        min-width: 0 !important;
        font-size: 11px !important;
    }
}

/* =========================================
   MEC toolbar - one line layout
========================================= */

.mec-full-calendar-wrap > .mec-search-form > form {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 18px !important;
    flex-wrap: nowrap !important;
}

/* Category area smaller */
.mec-full-calendar-wrap > .mec-search-form > form > .mec-dropdown-wrap {
    flex: 0 0 360px !important;
    width: 360px !important;
    max-width: 360px !important;
    min-width: 260px !important;
    margin: 0 !important;
}

/* Keep category select filling only its smaller box */
.mec-full-calendar-wrap > .mec-search-form > form > .mec-dropdown-wrap select,
.mec-full-calendar-wrap > .mec-search-form > form > .mec-dropdown-wrap .mec-dropdown-search,
.mec-full-calendar-wrap > .mec-search-form > form > .mec-dropdown-wrap .postform {
    width: 100% !important;
}

/* Right side takes remaining space */
.mec-full-calendar-wrap .mec-full-calendar-search-ends {
    flex: 1 1 auto !important;
    width: auto !important;
    justify-content: flex-end !important;
}

/* Keep month/year + view buttons aligned nicely */
.mec-full-calendar-wrap .mec-date-search,
.mec-full-calendar-wrap .mec-totalcal-view {
    flex-wrap: nowrap !important;
}

/* Tablet */
@media only screen and (max-width: 1100px) {
    .mec-full-calendar-wrap > .mec-search-form > form {
        flex-wrap: wrap !important;
    }

    .mec-full-calendar-wrap > .mec-search-form > form > .mec-dropdown-wrap {
        flex: 1 1 100% !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .mec-full-calendar-wrap .mec-full-calendar-search-ends {
        width: 100% !important;
        justify-content: space-between !important;
    }
}

/* Mobile */
@media only screen and (max-width: 767px) {
    .mec-full-calendar-wrap .mec-full-calendar-search-ends {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 12px !important;
    }
}

/* Remove the folder/calendar icon */
.mec-full-calendar-wrap .mec-search-form > form::before,
.mec-full-calendar-wrap .mec-search-form > form::after,
.mec-full-calendar-wrap .mec-dropdown-wrap::before,
.mec-full-calendar-wrap .mec-dropdown-wrap::after,
.mec-full-calendar-wrap .mec-search-form i,
.mec-full-calendar-wrap .mec-search-form svg {
    display: none !important;
}

/* Remove the space reserved for the icon */
.mec-full-calendar-wrap > .mec-search-form > form {
    padding-top: 0 !important;
}

.mec-full-calendar-wrap
.mec-search-form
> form
> .mec-dropdown-wrap {
    padding: 0 !important;
    margin: 0 !important;
}

/* Vertically line up all controls */
.mec-full-calendar-wrap > .mec-search-form > form,
.mec-full-calendar-wrap .mec-full-calendar-search-ends,
.mec-full-calendar-wrap .mec-date-search,
.mec-full-calendar-wrap .mec-tab-loader,
.mec-full-calendar-wrap .mec-totalcal-view {
    align-items: center !important;
}

/* Ensure the category field matches the other controls */
.mec-full-calendar-wrap .mec-dropdown-search,
.mec-full-calendar-wrap .mec-dropdown-search select,
.mec-full-calendar-wrap .mec-date-search select,
.mec-full-calendar-wrap .mec-totalcal-view > span {
    height: 50px !important;
    min-height: 50px !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Remove any remaining icon placeholder width */
.mec-full-calendar-wrap .mec-search-form .mec-dropdown-wrap {
    background-image: none !important;
    text-indent: 0 !important;
}

select#mec_sf_category_mec1 {
    margin-bottom: 0px !important;
}


/* ==========================================================================
   13. MOMA-STYLE DIVI SUPREME CAROUSEL
   ========================================================================== */

/* =========================================================
   MOMA-STYLE SUPREME CARD CAROUSEL
   ========================================================= */

/*
 * Keep the module itself at the normal Divi content width.
 * This gives the arrows a reliable content-right boundary.
 */
.moma-carousel {
    --carousel-overhang: 20vw;
    --arrow-size: 36px;
    --arrow-gap: 4px;

    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
}


/* Allow the desktop carousel to leave the Divi row */
.moma-carousel-section,
.moma-carousel-section .et_pb_row,
.moma-carousel-section .et_pb_column {
    overflow: visible !important;
}


/*
 * Expand only the actual carousel.
 * Its left edge stays aligned with the Divi content.
 */
.moma-carousel .swiper,
.moma-carousel .swiper-container {
    width: calc(
        50vw + 50% + var(--carousel-overhang)
    ) !important;

    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;

    /*
     * Static positioning makes the arrows position
     * relative to .moma-carousel instead of the
     * expanded Swiper container.
     */
    position: static !important;
    overflow: visible !important;
}


.moma-carousel .swiper-wrapper {
    overflow: visible !important;
}


/* Prevent horizontal page scrolling */
html,
body,
#page-container {
    overflow-x: hidden !important;
    overflow-x: clip !important;
}


/* =========================================================
   ARROWS
   ========================================================= */

.moma-carousel .swiper-button-prev,
.moma-carousel .swiper-button-next {
    position: absolute !important;

    /*
     * Sit just above the cards without adding padding.
     */
    top: 0 !important;
    bottom: auto !important;
    left: auto !important;

    width: var(--arrow-size) !important;
    height: var(--arrow-size) !important;
    min-width: var(--arrow-size) !important;

    margin: 0 !important;
    padding: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;

    color: #000 !important;
    opacity: 1;
    z-index: 20 !important;

    transform: translateY(calc(-100% - 8px)) !important;
}


/*
 * The module remains at the normal Divi width,
 * so right: 0 is the exact content-right edge.
 */
.moma-carousel .swiper-button-next {
    right: 0 !important;
}


.moma-carousel .swiper-button-prev {
    right: calc(
        var(--arrow-size) + var(--arrow-gap)
    ) !important;
}


.moma-carousel .swiper-button-prev::after,
.moma-carousel .swiper-button-next::after {
    font-size: 21px !important;
    line-height: 1 !important;
    font-weight: 400 !important;
}


.moma-carousel .swiper-button-prev:hover,
.moma-carousel .swiper-button-next:hover {
    opacity: 0.55 !important;
}


.moma-carousel .swiper-button-disabled {
    opacity: 0.25 !important;
    cursor: default !important;
}


/* =========================================================
   TABLET — ONE COMPLETE CARD
   ========================================================= */

@media only screen and (max-width: 980px) {

    .moma-carousel {
        --arrow-size: 34px;
        --arrow-gap: 3px;
    }

    /*
     * Return the carousel to normal content width.
     * No partially visible card on tablet.
     */
    .moma-carousel .swiper,
    .moma-carousel .swiper-container {
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden !important;
    }

    .moma-carousel .swiper-wrapper {
        overflow: visible !important;
    }

    .moma-carousel .swiper-button-prev,
    .moma-carousel .swiper-button-next {
        transform: translateY(calc(-100% - 7px)) !important;
    }

    .moma-carousel .swiper-button-prev::after,
    .moma-carousel .swiper-button-next::after {
        font-size: 19px !important;
    }
}


/* =========================================================
   PHONE — ONE COMPLETE CARD
   ========================================================= */

@media only screen and (max-width: 767px) {

    .moma-carousel {
        --arrow-size: 32px;
        --arrow-gap: 2px;
    }

    .moma-carousel .swiper,
    .moma-carousel .swiper-container {
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden !important;
    }

    .moma-carousel .swiper-button-prev,
    .moma-carousel .swiper-button-next {
        transform: translateY(calc(-100% - 6px)) !important;
    }

    .moma-carousel .swiper-button-prev::after,
    .moma-carousel .swiper-button-next::after {
        font-size: 18px !important;
    }
}
