/*
 Theme Name: ufl-main-uni-child
 Template: ufl-main-uni
*/
/* Apply the specific font and remove underlines */
.site-title-nav {
  font-family: "IBM Plex Bold";
  text-decoration: none !important;
  margin-right: 35px !important; /* Reduced distance */ 
}
/* Removes the underline and box borders when clicking/hovering */
.custom-logo-link, 
.custom-logo-link:hover, 
.custom-logo-link:focus, 
.custom-logo-link:active {
  text-decoration: none !important;
  outline: none !important;
  box-shadow: none !important;
  border: none !important;
}
/* Removes the focus-visible box specifically */
.custom-logo-link:focus-visible {
  outline: none !important;
}
.child-site-logo-text a {
  display: none !important;
  align-items: center !important;
}
/* Hides ONLY the parent empty footer */ 
footer.m-0.footer-title.pb-4.text-lg-start.text-white { 
	display: none !important; 
	visibility: hidden !important;
 	height: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
} 
footer.m-0.footer-title.pb-4.text-lg-start.text-white .container-fluid {
	display: none !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}
@media (max-width:1409px) {
	#menu-item-3981 .dropdown-menu {
		column-count: 1 !important;
		flex-direction: column !important;
	}
}
.header #main-navbar #main-nav-ul .dropdown-toggle:focus {
	outline: none !important;
	box-shadow: none !important;
}
.custom-logo-link {
	gap: 10px !important;
}
@media (min-width: 992px) {
	.site-title-nav,
	.site-logo-text {
		font-size: 23px !important;
	}
}
/* Footer spacing */
.footer-wrapper .footer .footer-section {
  padding-left: 30px !important;
  padding-right: 30px !important;
}
/*Keyboard focus fix - header logo and title */
.custom-logo-link:focus {
	outline: 2px solid #FFFFFF !important;
	outline-offset: 4px !important;
	box-shadow: none !important;
}
/* Touch target - Search button (desktop only, scoped to prevent mobile breakage) */
@media (min-width: 992px) {
  .desk-only-search .search-button,
  #search-button {
    padding: 10px;
    box-sizing: border-box;
  }
}
/* Touch target - Main nav links (desktop only) */
@media (min-width: 992px) {
  #main-navbar .nav-link {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
}
#main .gform_wrapper .gfield_required,
#main .gform_wrapper .gfield_required span {
	color: #9B3400 !important;
}
#main .gform_wrapper .gform-field-label--type-sub {
	color: #000000 !important;
}
/* Faculty Landing — card layout */
.faculty-page .faculty-listing-item {
  width: 300px !important;
  max-width: 300px !important;
  min-width: 200px !important;
  flex: 0 0 300px !important;
  margin-bottom: 45px !important;
}
.faculty-page .faculty-listing-img {
  width: 100% !important;
  max-height: 300px !important;
  overflow: hidden !important;
  display: block !important;
}
.faculty-page .faculty-listing-img img {
  width: 100% !important;
  height: auto !important;
  max-height: 300px !important;
  object-fit: cover !important;
  object-position: top center !important;
}
.faculty-page .faculty-row {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 30px !important;
  justify-content: center !important;
  padding-top: 40px !important;
}
.faculty-page.light .faculty-listing-item .faculty-listing-bio p {
	line-height: 1.5 !important;
	}
/* Faculty Bio phone link touch target */
.faculty-tel {
  display: inline-block !important;
  min-height: 44px !important;
  line-height: 44px !important;
}
/* Fix hover — remove red, match Mercury grey overlay */
.faculty-page .faculty-listing-item .faculty-listing-img:after {
  background-color: #A3A3A3 !important;
  mix-blend-mode: multiply !important;
}
.faculty-page .faculty-listing-item:hover .faculty-listing-img img {
  filter: grayscale(100%) !important;
  transition: all 0.3s ease-in-out !important;
}
/* Remove any red hover from child theme links */
.faculty-page .faculty-listing-item a:hover,
.faculty-page .faculty-listing-item a:focus {
  color: #ffffff !important;
  text-decoration: none !important;
}
.faculty-page .faculty-listing-bio a strong,
.faculty-page .faculty-listing-bio p strong,
.faculty-bio-header-text {
  font-weight: bold !important;
}
/* Event Shell Calendar Block */
#main .event-shell .inner-txt a {
  display: block !important;
  min-height: unset !important;
  align-items: unset !important;
}
#main .event-shell .inner-txt .date {
  font-size: 3rem !important;
  line-height: 1.5 !important;
  display: block !important;
}
#main .event-shell .inner-txt .time {
  font-size: 1.2rem !important;
  line-height: 1.5 !important;
  display: block !important;
}
.event-shell .carousel-control-prev,
.event-shell .carousel-control-next {
  outline: none !important;
  box-shadow: none !important;
  border: none !important;
  background: transparent !important;
}
section.event-shell {
  overflow: hidden !important;
}
.event-shell .carousel-control-prev {
  left: 5px !important;
}
.event-shell .carousel-control-next {
  right: auto !important;
  left: calc(100% - 55px) !important;
}
/* Header title wrap */ 
.site-title-nav { 
	font-family: "IBM Plex Bold"; 
	text-decoration: none !important; 
	margin-right: 35px !important; 
	white-space: normal !important; 
	max-width: 24rem !important; 
	line-height: 1.2 !important; 
} 
/* Mobile header title only */
@media (max-width: 991px) {
	.header .custom-logo-link .site-title-nav {
		white-space: normal !important;
		display:block !important;
		max-width: 165px !important;
		font-size: 20px !important;
		line-height: 1.15 !important;
		margin: 0 !important;
	}
}
/* Footer title 2 lines like header on mobile view */
@media (max-width: 991px) {
 .footer-wrapper .site-logo-text {
  width: 170px !important;
  max-width: 170px !important;
  font-size: 20px !important;
  white-space: normal !important;
  line-height: 1.15 !important;
 }
 .footer-wrapper .footer-site-logo {
  gap: 1rem !important;
 }
}
/* Card Text Image block responsive fix */
@media (max-width: 991px) {
 .cards-text-image-inner-wrapper .col-wrapper {
  display: flex !important;
  flex-wrap: wrap !important;
  overflow: visible !important;
 }
 .wp-block-create-block-card-text-image-inner {
  flex: 0 0 100% !important;
  max-width: 100% !important;
  width: 100% !important;
  margin-bottom: 40px !important;
 }
 .wp-block-create-block-card-text-image-inner img {
  max-width: 100% !important;
  height: auto !important;
  display: block !important;
 }
}
/* Header logo — it removes mouse click/hover box focus */
.custom-logo-link:hover,
.custom-logo-link:active,
.custom-logo-link:focus:not(:focus-visible) {
  outline: none !important;
  box-shadow: none !important;
  text-decoration: none !important;
}
/* TablePress inside accordion: keep names readable */
.accordion-body-wrap {
 overflow-x: auto !important;
}
.accordion-body-wrap .tablepress td,
.accordion-body-wrap .tablepress th {
 white-space: nowrap !important;
}
/* Accessible default links on the light main-content background. */
#main {
  --bs-link-color: #00529b;
  --bs-link-color-rgb: 0, 82, 155;
  --bs-link-hover-color: #003865;
  --bs-link-hover-color-rgb: 0, 56, 101;
}

/* Keep hero subtitles in their editor-provided case for readability. */
#main .wp-block-create-block-hero-block .banner_subtitle_text {
  text-transform: none !important;
}

/* Gravity Forms accessibility contrast */
.gform-theme--framework {
  --gf-local-color: #313535;
  --gf-ctrl-desc-color: #313535;
}
.gform-theme--framework .gfield_description {
  color: #313535 !important;
}
/* Job listing title links — 44px */
#uf-job-list li h3 a {
  display: flex;
  align-items: center;
  min-height: 44px;
}
/* This hides empty H1 tags in hero block banner title when hero title field is left blank */
.banner_title h1:empty {
  display: none;
}
#main p {
  font-size: 1.25em;
  line-height: 1.5;
}
/* Remove blue focus box on mouse click */
*:focus:not(:focus-visible) {
  outline: none !important;
  box-shadow: none !important;
}
/* prevent multi-column dropdown menus from splitting a single 
   menu item's wrapped text across two columns  */
.dropdown-menu .menu-item,
.dropdown-menu .dropdown-item {
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
}

/* Factoid Styling - Specific to experntial learning page only */
.page-id-1269 .factoid-number {
    font-size: 3rem !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    margin-bottom: 0.5rem !important;
}
/*CTA button block - text wrapping */
.cta-button-wrapper .cta-button[style] {
    height: auto;
    min-height: 120px !important;
    width: fit-content !important;
    min-width: min(100%, 420px) !important;
}

/*
 * CTA Showcase and Button responsive fixes
 */

/* Hide empty secondary CTA text. */
.wp-block-create-block-cta-showcase .cta-text:empty,
.cta-button-wrapper .cta-text:empty {
  display: none !important;
}

/* Keep CTA titles visible when the secondary hover text is empty. */
.wp-block-create-block-cta-showcase .cta-button:has(.cta-text:empty):hover .cta-title,
.wp-block-create-block-cta-showcase .cta-button:has(.cta-text:empty):focus .cta-title,
.wp-block-create-block-cta-showcase .cta-button:has(.cta-text:empty):focus-visible .cta-title,
.cta-button-wrapper .cta-button:has(.cta-text:empty):hover .cta-title,
.cta-button-wrapper .cta-button:has(.cta-text:empty):focus .cta-title,
.cta-button-wrapper .cta-button:has(.cta-text:empty):focus-visible .cta-title,
body.page-id-2169 .wp-block-create-block-cta-showcase .cta-button:hover .cta-title,
body.page-id-2169 .wp-block-create-block-cta-showcase .cta-button:focus .cta-title,
body.page-id-2169 .wp-block-create-block-cta-showcase .cta-button:focus-visible .cta-title {
  opacity: 1 !important;
}

/* Keep CTA wrappers and buttons within the available screen width. */
.wp-block-create-block-cta-showcase .wp-block-create-block-cta-button-block,
.wp-block-create-block-cta-showcase .wp-block-create-block-cta-button-block > span,
.cta-button-wrapper .wp-block-create-block-cta-button-block,
.cta-button-wrapper .wp-block-create-block-cta-button-block > span {
  display: block;
  width: min(100%, 420px) !important;
  max-width: 100% !important;
}

.wp-block-create-block-cta-showcase .cta-button,
.wp-block-create-block-cta-showcase .cta-button[style],
.cta-button-wrapper .cta-button,
.cta-button-wrapper .cta-button[style] {
  box-sizing: border-box !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 420px !important;
}

/* Mobile CTA layout. */
@media (max-width: 767px) {
  .wp-block-create-block-cta-showcase {
    padding-right: 7.5% !important;
    padding-left: 7.5% !important;
    overflow-x: clip;
  }

  .cta-button-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    gap: 16px !important;
  }

  .cta-button-wrapper .cta-button {
    margin-bottom: 0 !important;
    padding-right: 24px !important;
    padding-left: 24px !important;
  }
}

/*
 * Mobile navigation:
 * Stack submenu links vertically and keep the orange line inset.
 */
@media (max-width: 991px) {
  .header #main-navbar #main-nav-ul .dropdown-menu,
  .header #main-navbar #main-nav-ul
  .dropdown-menu.navbar-two-columns {
    position: static !important;
    width: calc(100% - 30px) !important;
    min-width: 0 !important;
    max-width: calc(100% - 30px) !important;
    margin-left: 30px !important;
    margin-right: 0 !important;
    padding: 8px 0 12px 24px !important;
    column-count: 1 !important;
    column-width: auto !important;
    columns: auto 1 !important;
    box-sizing: border-box !important;
  }

  .header #main-navbar #main-nav-ul
  .dropdown-menu > .menu-item {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    break-inside: avoid !important;
    -webkit-column-break-inside: avoid !important;
  }

  .header #main-navbar #main-nav-ul
  .dropdown-menu > .menu-item > .dropdown-item {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    white-space: normal !important;
  }
}

/* Staff directory landing blocks rendered as Mercury arrow carousels. */
.union-staff-carousel .title-wrapper {
  margin-bottom: 32px;
}
.union-staff-carousel .title-wrapper h1 {
  color: #fff;
  text-align: center;
  font-size: clamp(1.75rem, 4vw, 3rem);
  letter-spacing: .2em;
}
.union-staff-carousel .title-wrapper hr {
  max-width: 1074px;
  margin: 20px auto;
  border-color: #fa4616;
  opacity: 1;
}
/* Equal image proportions keep biography rows aligned. */
body.page-id-1317 .faculty-listing-carousel .faculty-listing-img img,
.mercury-staff-carousel .faculty-listing-carousel .faculty-listing-img img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: top center;
}
body.page-id-1317 .faculty-listing-bio,
.mercury-staff-carousel .faculty-listing-bio {
  display: grid;
  grid-template-rows: minmax(4.5em, auto) minmax(6em, auto) minmax(44px, auto) auto;
  align-content: start;
  display: block;
}
body.page-id-1317 .faculty-listing-bio > p:first-child,
.mercury-staff-carousel .faculty-listing-bio > p:first-child { grid-row: 1; }
body.page-id-1317 .faculty-listing-bio > p:nth-child(2),
.mercury-staff-carousel .faculty-listing-bio > p:nth-child(2) { grid-row: 2; }
body.page-id-1317 .faculty-listing-bio > .faculty-tel,
.mercury-staff-carousel .faculty-listing-bio > .faculty-tel { grid-row: 3; }
body.page-id-1317 .faculty-listing-bio > .faculty-email,
.mercury-staff-carousel .faculty-listing-bio > .faculty-email { grid-row: 4; }
/* Natural text heights avoid blank rows for short names or missing contacts. */
body.page-id-1317 .faculty-listing-bio > p,
body.page-id-1317 .faculty-listing-bio > a,
.mercury-staff-carousel .faculty-listing-bio > p,
.mercury-staff-carousel .faculty-listing-bio > a {
  margin: 0 0 8px;
  line-height: 1.4;
}
body.page-id-1317 .faculty-listing-bio > :last-child,
.mercury-staff-carousel .faculty-listing-bio > :last-child { margin-bottom: 0; }
body.page-id-1317 .faculty-listing-bio > a,
.mercury-staff-carousel .faculty-listing-bio > a { overflow-wrap: anywhere; }
.union-staff-carousel.light { background-color: #f4f6f6; }
.union-staff-carousel.light .faculty-listing-bio > *,
.union-staff-carousel.light .title-wrapper h1 { color: #343741; }
/* Keep rich headings together while leaving room for the accordion icon. */
body.page-id-2483 .accordion-button .union-mercury-heading,
body.page-id-1519 .tab-link .union-mercury-heading {
  min-width: 0;
  overflow-wrap: anywhere;
}



/* Share Your Story page heading. */
body.studentengagement-story #main #gform_wrapper_1 .gform_title {
  font-size: clamp(2rem, 5vw, 3.5rem);
  line-height: 1.1;
  margin: 0 0 1rem;
  overflow-wrap: anywhere;
}

/*
 * Shared Gravity Forms spacing.
 * Supports older and newer standard choice fields.
 * Preserves image-choice layouts and text/select sublabels.
 */
:is(#main .gform_wrapper, #main-content.form-ufl)
.gfield > .gfield_label {
  line-height: 1.5;
  flex-wrap: wrap;
}

/* Separate group questions from their choices. */
:is(#main .gform_wrapper, #main-content.form-ufl)
fieldset.gfield > legend.gfield_label,

:is(#main .gform_wrapper, #main-content.form-ufl)
.gfield:is(
  .gfield--type-radio,
  .gfield--type-checkbox,
  .gfield--type-consent
) > label.gfield_label {
  display: block;
  float: none;
  width: 100%;
  margin-bottom: 1rem;
}

/* Keep modern choice rows in normal document flow. */
:is(#main .gform_wrapper, #main-content.form-ufl)
.gfield:not(.gfield--type-image_choice)
:is(.ginput_container_radio, .ginput_container_checkbox)
.gchoice:not(li),

:is(#main .gform_wrapper, #main-content.form-ufl)
.ginput_container_consent {
  display: block;
  min-width: 0;
}

/* The theme already visually hides these native inputs. */
:is(#main .gform_wrapper, #main-content.form-ufl)
.gfield:not(.gfield--type-image_choice)
:is(
  .ginput_container_radio,
  .ginput_container_checkbox,
  .ginput_container_consent
) > input:is([type="radio"], [type="checkbox"]),

:is(#main .gform_wrapper, #main-content.form-ufl)
.gfield:not(.gfield--type-image_choice)
:is(.ginput_container_radio, .ginput_container_checkbox)
.gchoice > input:is([type="radio"], [type="checkbox"]) {
  position: absolute;
}

/* Override negative label margins and allow comfortable wrapping. */
:is(#main .gform_wrapper, #main-content.form-ufl)
.gfield:not(.gfield--type-image_choice)
:is(
  .ginput_container_radio,
  .ginput_container_checkbox,
  .ginput_container_consent
)
input:is([type="radio"], [type="checkbox"]) + label {
  display: block;
  box-sizing: border-box;
  min-height: 44px;
  margin: 0;
  padding: .4375rem 0 .4375rem 2rem;
  line-height: 1.5;
  white-space: normal;
  overflow-wrap: anywhere;
}

/* Align the theme's custom choice indicators. */
:is(#main .gform_wrapper, #main-content.form-ufl)
.gfield:not(.gfield--type-image_choice)
:is(
  .ginput_container_radio,
  .ginput_container_checkbox,
  .ginput_container_consent
)
input:is([type="radio"], [type="checkbox"]) + label::before {
  top: .75rem;
}

:is(#main .gform_wrapper, #main-content.form-ufl)
.gfield:not(.gfield--type-image_choice)
:is(
  .ginput_container_radio,
  .ginput_container_checkbox,
  .ginput_container_consent
)
input:is([type="radio"], [type="checkbox"]) + label::after {
  top: 1rem;
}

/* Union and Student Engagement staff grids */
.se-staff-grid .faculty-row {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 30px !important;
}

.se-staff-grid .faculty-listing-item {
    display: block !important;
    width: min(300px, 100%) !important;
    max-width: 300px !important;
    min-width: 0 !important;
    flex: 0 1 300px !important;
}

.se-staff-grid .se-staff-load-more {
    display: inline-block !important;
}

.se-staff-grid .faculty-listing-item[hidden],
.se-staff-grid .se-staff-load-more[hidden] {
    display: none !important;
}

/* Keep long staff email addresses inside their cards */
a.faculty-email[href^="mailto:"] {
    white-space: normal;
    overflow-wrap: anywhere;
}

/* Reserve side gutters for the inset arrows before Slick measures the slides. */
.event-shell .event-shell-wrapper .event-shell-carousel {
  padding-left: 60px;
  padding-right: 60px;
}