/* GMG 2026-11-09: alumni.gmc.edu speed + accessibility (WCAG 2.2 AA). Loaded by mu-plugins/gmg-alumni.php */

/* Page banner: a real <img> that looks exactly like the old cover background (310px tall, centered crop). */
.gmg-page-banner .gmc-image-contain { left: 0; right: 0; width: 100%; background: none !important; overflow: hidden; }
.gmg-page-banner .gmc-image-contain picture { display: contents; }
.gmg-page-banner .gmc-image-contain img.gmg-banner-img {
	position: absolute; top: 0; left: 0; width: 100%; height: 100%;
	min-width: 0; min-height: 0; max-width: none;
	object-fit: cover; object-position: 50% 50%; display: block;
}

/* GIVE button now sits in its own list item; keep the old inline layout. */
.genesis-nav-menu > li.gmg-give { display: inline-block; vertical-align: middle; }
.genesis-nav-menu > li.gmg-give > a.btn { position: relative; }

/* Visible keyboard focus everywhere (2.4.7, 2.4.11). */
:focus-visible { outline: 3px solid #1d4c80 !important; outline-offset: 2px !important; box-shadow: 0 0 0 5px #fff !important; }
.genesis-nav-menu a:focus-visible, .page-menu a:focus-visible { outline-offset: -3px !important; }
a.btn:focus-visible, .button:focus-visible, button:focus-visible { outline-color: #1d4c80 !important; }

/* Skip link: visible when focused. */
.genesis-skip-link a.screen-reader-shortcut:focus, .genesis-skip-link a:focus {
	clip: auto !important; clip-path: none !important; height: auto !important; width: auto !important;
	position: fixed !important; top: 8px; left: 8px; z-index: 100000;
	background: #fff; color: #1d1d1d; padding: 12px 18px; font-size: 18px; font-weight: 700;
	border: 3px solid #ba0c2f; text-decoration: underline;
}

/* Links inside body text are underlined so they don't rely on color alone (1.4.1). */
.entry-content p a:not(.button):not(.btn):not(.elementor-button),
.entry-content li a:not(.button):not(.btn):not(.elementor-button),
.entry-content td a:not(.button):not(.btn),
.textwidget p a:not(.button):not(.btn) { text-decoration: underline; text-underline-offset: 2px; }

/* Respect "reduce motion": no fade-ups, no smooth scrolling. */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
	.fadeup-effect { opacity: 1 !important; transform: none !important; }
}

/* Menu and submenu icons, drawn locally (replaces the Ionicons web font from code.ionicframework.com). */
.ionicons-before.ion-ios-drag::before,
.site-header .ionicons-before.ion-ios-drag::before,
.ionicons-before.ion-ios-arrow-down::before {
	content: "" !important; display: inline-block; width: 1em; height: 1em; vertical-align: middle;
	background-color: currentColor; font-family: inherit;
	-webkit-mask: var(--gmg-ico) center / contain no-repeat; mask: var(--gmg-ico) center / contain no-repeat;
}
.ionicons-before.ion-ios-drag::before { --gmg-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z'/%3E%3C/svg%3E"); }
.ionicons-before.ion-ios-arrow-down::before { --gmg-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4.3 8.3 12 16l7.7-7.7 1.4 1.4-9.1 9.1-9.1-9.1z'/%3E%3C/svg%3E"); }

/* Footer bulldog: a 1000px WebP (about 1/6 the weight) instead of the 1921px PNG shown at 500px. */
.dog-bg { background-image: url(/wp-content/uploads/gmg/bulldog-footer-1000.png); background-image: image-set(url(/wp-content/uploads/gmg/bulldog-footer-1000.webp) type("image/webp"), url(/wp-content/uploads/gmg/bulldog-footer-1000.png) type("image/png")); }

/* Pause / play buttons for the sliders and the home hero video (2.2.2). */
.soliloquy-container, .hero-wrap { position: relative; }
.gmg-pause {
	position: absolute; right: 14px; bottom: 14px; z-index: 30; width: 44px; height: 44px; padding: 0;
	border: 2px solid #fff; border-radius: 50%; background: rgba(0, 0, 0, .7); color: #fff; cursor: pointer;
	display: flex; align-items: center; justify-content: center; line-height: 1;
}
.gmg-pause[hidden], .soliloquy-container .gmg-pause.gmg-pause[hidden], .hero-wrap .gmg-pause.gmg-pause[hidden] { display: none !important; }
/* Soliloquy resets everything inside its container; restate the button box. */
.soliloquy-container .gmg-pause.gmg-pause, .hero-wrap .gmg-pause.gmg-pause {
	position: absolute !important; width: 44px !important; height: 44px !important; padding: 0 !important; margin: 0 !important;
	border: 2px solid #fff !important; border-radius: 50% !important; background: rgba(0, 0, 0, .7) !important;
	display: flex !important; align-items: center !important; justify-content: center !important; box-sizing: border-box !important;
	right: 14px !important; bottom: 14px !important; left: auto !important; top: auto !important; z-index: 30 !important;
}
.soliloquy-container .gmg-pause.gmg-pause:hover, .hero-wrap .gmg-pause.gmg-pause:hover { background: #000 !important; }
.hero-wrap .gmg-pause.gmg-pause--video { right: 24px !important; bottom: 24px !important; }
.gmg-pause .gmg-pause__icon { display: block !important; box-sizing: border-box !important; background: transparent !important; }
.gmg-pause[data-state="playing"] .gmg-pause__icon { width: 14px !important; height: 16px !important; border-style: solid !important; border-color: #fff !important; border-width: 0 5px !important; margin: 0 !important; }
.gmg-pause[data-state="paused"] .gmg-pause__icon { width: 0 !important; height: 0 !important; border-style: solid !important; border-width: 8px 0 8px 14px !important; border-color: transparent transparent transparent #fff !important; margin: 0 0 0 4px !important; }
.gmg-pause:hover { background: #000; }
.gmg-pause__icon { display: block; width: 14px; height: 16px; box-sizing: border-box; }
.gmg-pause[data-state="playing"] .gmg-pause__icon { border-left: 5px solid #fff; border-right: 5px solid #fff; }
.gmg-pause[data-state="paused"] .gmg-pause__icon { width: 0; height: 0; border-style: solid; border-width: 8px 0 8px 14px; border-color: transparent transparent transparent #fff; margin-left: 4px; }
.gmg-pause--video { bottom: 24px; right: 24px; }

/* Text contrast (1.4.3). */
.tribe-events-notices, .tribe-events-notices li { color: #1f5f7d !important; }
[id^="bboxdonation_"] input:not([type="submit"]):not([type="button"]), [id^="bboxdonation_"] select, [id^="bboxdonation_"] textarea,
input[id^="bboxdonation_"]:not([type="submit"]):not([type="button"]), select[id^="bboxdonation_"], textarea[id^="bboxdonation_"] { color: #595c5d !important; opacity: 1 !important; }
#bboxdonation_btnSecurePayment { background-color: #007a00 !important; border-color: #007a00 !important; color: #fff !important; opacity: 1 !important; }
/* Be the One campaign pages (Elementor): active menu items and the khaki button. */
.page-id-1849 .elementor-nav-menu .current-menu-item > a.elementor-item, .page-id-1843 .elementor-nav-menu .current-menu-item > a.elementor-item,
.page-id-1847 .elementor-nav-menu .current-menu-item > a.elementor-item, .page-id-2068 .elementor-nav-menu .current-menu-item > a.elementor-item,
.page-id-1992 .elementor-nav-menu .current-menu-item > a.elementor-item { color: #6b6b5f !important; }
.page-id-1908 .elementor-nav-menu .current-menu-item > a.elementor-item { color: #b5531c !important; }
body.elementor-template-canvas .elementor-button { text-shadow: none; }

/* Swiper carousel dots: 24px touch targets (2.5.8) without changing the dot size. */
.swiper-pagination-bullet { box-sizing: content-box; padding: 9px; margin: 0 !important; background-clip: content-box; }

/* Links inside Elementor text blocks are underlined (1.4.1). */
.elementor-widget-text-editor p a:not(.elementor-button), .elementor-widget-text-editor li a { text-decoration: underline; text-underline-offset: 2px; }

/* Be the One campaign colors, darkened just enough for text contrast (4.5:1 small, 3:1 large). */
.elementor-element-da6bd3c .elementor-item-active, .elementor-element-da6bd3c .current-menu-item > a, .elementor-element-1a35ef7 .elementor-item-active, .elementor-element-1a35ef7 .current-menu-item > a { color: #b5531c !important; }
.elementor-element-ae83323 .elementor-item-active, .elementor-element-ae83323 .current-menu-item > a { color: #7a7130 !important; }
.elementor-element-c8d4566 .elementor-item-active, .elementor-element-c8d4566 .current-menu-item > a { color: #6b6b5f !important; }
.elementor-element-0a3c660 .elementor-item-active, .elementor-element-0a3c660 .current-menu-item > a { color: #2b7d6e !important; }
.elementor-nav-menu--dropdown .elementor-item-active { color: #fff !important; }
.elementor-element-e43dc36 .elementor-button { background-color: #b5531c !important; }
.elementor-element-382d18b3 .elementor-button { background-color: #7a7130 !important; }
.elementor-element-2e2ccc2c .elementor-button { background-color: #6b6b5f !important; }
.elementor-element-18fa3c09 .elementor-button { background-color: #2b7d6e !important; }

/* Phone and tablet header: the full-width "Menu" button covered the logo link. Keep it to the right. */
@media only screen and (max-width: 1279px) {
	.site-header .menu-toggle { width: auto; margin-left: auto; margin-right: 0; float: none; display: block; }
	.site-header .title-area { z-index: 1001; }
	.site-header > .wrap { min-height: 110px; } /* room for the Menu button before the theme's script adds it */
}

/* The Events Calendar month view (desktop layout): day numbers were white on #b2b2b2 and faded past days. */
@media only screen and (min-width: 769px) {
	.tribe-events-calendar div[id*="tribe-events-daynum-"], .tribe-events-calendar div[id*="tribe-events-daynum-"] a { background-color: #6b6b6b !important; color: #fff !important; opacity: 1 !important; }
	.tribe-events-calendar td.tribe-events-othermonth div[id*="tribe-events-daynum-"], .tribe-events-calendar td.tribe-events-othermonth div[id*="tribe-events-daynum-"] a,
	.tribe-events-calendar td.tribe-events-past div[id*="tribe-events-daynum-"], .tribe-events-calendar td.tribe-events-past div[id*="tribe-events-daynum-"] a { background-color: #e9e9e9 !important; color: #595959 !important; }
	.tribe-events-calendar td.tribe-events-present div[id*="tribe-events-daynum-"], .tribe-events-calendar td.tribe-events-present div[id*="tribe-events-daynum-"] a { background-color: #ba0c2f !important; color: #fff !important; }
}/* The Events Calendar, phone layout: past and other-month dates were #d3d3d3 on #f9f9f9. */
@media only screen and (max-width: 768px) {
	.tribe-events-calendar td.tribe-events-past div[id*="tribe-events-daynum-"], .tribe-events-calendar td.tribe-events-othermonth div[id*="tribe-events-daynum-"],
	.tribe-events-calendar td.tribe-events-past div[id*="tribe-events-daynum-"] a, .tribe-events-calendar td.tribe-events-othermonth div[id*="tribe-events-daynum-"] a { color: #595959 !important; opacity: 1 !important; }
}

/* Bright red notes typed into page content (#ff0000 is 3.6:1 on this background) and Gravity Forms' upload hint. */
.entry-content [style*="color: #ff0000"], .entry-content [style*="color:#ff0000"], .entry-content [style*="color: rgb(255, 0, 0)"] { color: #b30000 !important; }
.gform_wrapper .gform_drop_instructions, .gform_wrapper .gform_fileupload_rules, .gform_wrapper .gfield_description { color: #595959 !important; }

/* Be the One spotlight pages: a text block with -13px side margins made phones scroll sideways (1.4.10 Reflow). */
@media only screen and (max-width: 767px) {
	body.elementor-template-canvas .elementor-widget-text-editor > .elementor-widget-container { margin-left: 0 !important; margin-right: 0 !important; }
}
