@charset "UTF-8";

/*
Theme Name:   TwentyTwentyOne Child
Description:  Child theme for disability.umich.edu Pantheon.
Author:       <Erin Norris>
Template:     twentytwentyone
Version:      1.0.0
*/

/* =========================
   DESKTOP NAV FIX
   ========================= */
@media only screen and (min-width: 901px) {
  .site-header,
  .primary-navigation,
  .primary-navigation .primary-menu-container,
  .primary-navigation .menu-wrapper {
    position: relative;
    z-index: 1000;
  }

  .primary-navigation .sub-menu {
    z-index: 1001;
  }
}

/* =========================
   DESKTOP FIX: CURRENT MENU ITEM SHIFT
   Prevent current section dropdown from being pushed off-screen
   ========================= */
@media only screen and (min-width: 901px) {

  .primary-navigation .current-menu-item > a,
  .primary-navigation .current-menu-ancestor > a,
  .primary-navigation .current_page_item > a,
  .primary-navigation .current_page_ancestor > a {
    margin-left: 0 !important;
  }

  .primary-navigation .menu-wrapper > li,
  .primary-navigation .primary-menu-container > ul > li {
    position: relative;
  }

  .primary-navigation .menu-wrapper > li > .sub-menu,
  .primary-navigation .primary-menu-container > ul > li > .sub-menu {
    left: 0 !important;
    right: auto !important;
    transform: none !important;
  }
}

/* =========================
   MOBILE ONLY: Bigger top nav items
   ========================= */
@media only screen and (max-width: 1286px) {
  .primary-navigation .menu-wrapper .menu > li > a,
  .primary-navigation .primary-menu-container > ul > li > a {
    font-size: 1.25rem;
    line-height: 1.4;
  }
}

/* =========================
   MOBILE NAV SIMPLIFIED
   Show child links under each main item
   No extra nested accordion behavior
   ========================= */
@media only screen and (max-width: 1286px) {

  /* Keep nav inside viewport */
  .primary-navigation .primary-menu-container,
  .primary-navigation .menu-wrapper,
  .primary-navigation ul,
  .primary-navigation li {
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
  }

  /* Parent items */
  .primary-navigation .menu-item-has-children,
  .primary-navigation .page_item_has_children {
    position: relative;
  }

  /* Reset submenu layout */
  .primary-navigation .sub-menu,
  .primary-navigation ul ul,
  .primary-navigation ul ul ul,
  .primary-navigation ul ul ul ul {
    margin-left: 0 !important;
    padding-left: 0 !important;
    border: 0 !important;
    left: auto !important;
    width: 100%;
    background: transparent !important;
  }

  /* Hide submenus until parent is opened */
  .primary-navigation .sub-menu {
    display: none !important;
  }

  /* Show the first submenu when its parent is opened */
  .primary-navigation .sub-menu.toggled-on,
  .primary-navigation .sub-menu-toggle[aria-expanded="true"] + .sub-menu {
    display: block !important;
  }

  /* Show all deeper children automatically once section is open */
  .primary-navigation .sub-menu .sub-menu,
  .primary-navigation .sub-menu .sub-menu .sub-menu,
  .primary-navigation .sub-menu .sub-menu .sub-menu .sub-menu {
    display: block !important;
  }

  /* Hide nested toggle buttons */
  .primary-navigation .sub-menu .sub-menu-toggle {
    display: none !important;
  }

  /* Links */
  .primary-navigation a {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin: 0 !important;
    text-indent: 0 !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    border: 0 !important;
  }

  /* Top-level rows (exclude Contact Us button) */
  .primary-navigation .menu-wrapper .menu > li:not(.menu-button) > a,
  .primary-navigation .primary-menu-container > ul > li:not(.menu-button) > a {
    /*padding: 1.1rem 4rem 1.1rem 0 !important;*/
    padding: 1.1rem 4.25rem 1.1rem 0 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14) !important;
  }

  /* First-level child links */
  .primary-navigation .sub-menu > li > a {
    padding: 0.9rem 1rem 0.9rem 1rem !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
  }

  /* Deeper child links */
  .primary-navigation .sub-menu .sub-menu > li > a {
    padding-left: 1.5rem !important;
  }

  .primary-navigation .sub-menu .sub-menu .sub-menu > li > a {
    padding-left: 2rem !important;
  }

  .primary-navigation .sub-menu .sub-menu .sub-menu .sub-menu > li > a {
    padding-left: 3.5rem !important;
  }

  /* Keep current page states from jumping */
  .primary-navigation .current-menu-item > a,
  .primary-navigation .current-menu-ancestor > a,
  .primary-navigation .current_page_item > a,
  .primary-navigation .current_page_ancestor > a {
    margin-left: 0 !important;
  }

  /* Keep top-level toggle buttons aligned with the parent row */
.primary-navigation .menu-wrapper > li,
.primary-navigation .primary-menu-container > ul > li {
   position: relative;
  margin: 0 !important;
}

.primary-navigation .menu-wrapper > li > .sub-menu-toggle,
.primary-navigation .primary-menu-container > ul > li > .sub-menu-toggle {
  position: absolute !important;
  top: 1rem !important;
  right: 0.25rem !important;
  transform: none !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  margin: 0 !important;
  line-height: 1 !important;
  opacity: 1 !important;
  visibility: visible !important;
  z-index: 10 !important;
}
  /* Focus styles */
  .primary-navigation a:focus,
  .primary-navigation .sub-menu-toggle:focus {
    outline: 2px solid #ffcb05;
    outline-offset: 2px;
  }

  /* Increase the + sizing */
  .menu-item-has-children > button {
    font-size: 1.2rem;
  }
}

/* =========================
   FIX: SUBMENU BACKGROUND (Accordion overlap issue)
   ========================= */
@media only screen and (max-width: 1286px) {

  .primary-navigation .sub-menu,
  .primary-navigation ul ul {
    background: #00274C !important;
  }

  /* Ensure each submenu row fully covers content */
  .primary-navigation .sub-menu > li {
    background: #00274C !important;
  }

  .primary-navigation .sub-menu > li > a {
    background: #00274C !important;
    position: relative;
    z-index: 2;
  }
}

/* =========================
   FORCE CONSISTENT MOBILE LOGO SIZE
   ========================= */
@media only screen and (max-width: 1286px) {

  .site-logo,
  .site-branding,
  .custom-logo-link,
  .site-branding img,
  .site-logo .custom-logo,
  .custom-logo,
  .custom-logo-link img {
    max-width: 150px !important;
    width: 150px !important;
    height: auto !important;
  }

  .site-header {
    overflow: visible !important;
  }

  .primary-navigation {
    flex-shrink: 0 !important;
  }

  .menu-button-container,
  .primary-navigation button,
  .primary-navigation .menu-button-container button {
    position: relative !important;
    z-index: 20 !important;
  }
}

/* =========================
   SAFE MOBILE MENU FIX
   Keeps TT1 header layout intact
   ========================= */
@media only screen and (max-width: 1286px) {

  html,
  body {
    overflow-x: hidden;
  }

  /* Do not change header layout */
  .site-header,
  .site-branding,
  .primary-navigation,
  .menu-button-container {
    max-width: 100%;
  }

  /* Keep the open menu inside the screen */
  .primary-navigation .primary-menu-container,
  .primary-navigation .menu-wrapper,
  .primary-navigation ul,
  .primary-navigation li {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .primary-navigation .menu-wrapper,
  .primary-navigation .primary-menu-container {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box !important;
  }

  /* Center only the Contact Us button */
  .primary-navigation .menu-button {
    text-align: center;
    margin-top: 0.75rem;
  }

  .primary-navigation .menu-button > a {
    display: flex !important;
    width: auto !important;
    min-height: 44px;
    min-width: 220px;
    max-width: 100%;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    margin: 0 auto !important;
    padding: 1rem 2rem !important;
  }

  .primary-navigation .menu-button > a:hover,
  .primary-navigation .menu-button > a:focus {
    transform: translateY(-1px);
  }

  .primary-navigation .menu-button > a {
    transition: transform 0.15s ease;
  }

  /* Slightly reduce nested indent */
  .primary-navigation .sub-menu,
  .primary-navigation ul ul {
    padding-left: 1rem !important;
    margin-left: 0 !important;
  }

  .primary-navigation .sub-menu > li > a {
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important;
  }

  .primary-navigation .sub-menu .sub-menu > li > a {
    padding-left: 1.5rem !important;
  }

  .primary-navigation .sub-menu .sub-menu .sub-menu > li > a {
    padding-left: 2rem !important;
  }

  /* Keep logo above mobile menu */
  .site-branding {
    position: relative;
    z-index: 30;
  }

  .custom-logo-link {
    position: relative;
    z-index: 31;
    display: inline-block;
    pointer-events: auto;
  }

  .primary-navigation {
   width: auto !important;
   max-width: 100% !important;
}
}

/* =========================
   MOBILE/TABLET MENU SEARCH FIX
   ========================= */

/* Base sizing reset (put it FIRST) */
.primary-navigation .search-form,
.primary-navigation .wp-block-search,
.primary-navigation .search-field,
.primary-navigation .search-submit {
  box-sizing: border-box !important;
}

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

  /* Search wrapper */
  .primary-navigation .search-form,
  .primary-navigation .wp-block-search {
    width: 100% !important;
    max-width: 100% !important;
    margin-top: 0.75rem !important;
    margin-bottom: 1rem !important;
    padding-right: 0 !important;
  }

  /* Search input */
  .primary-navigation .search-field,
  .primary-navigation .wp-block-search__input {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 44px !important;
    padding: 0.6rem 3rem 0.6rem 0 !important;
    margin: 0 !important;
    line-height: 1.3 !important;
  }

  /* Search button */
  .primary-navigation .search-submit,
  .primary-navigation .wp-block-search__button {
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
  margin: 0 !important;
}

  .primary-navigation .search-form {
    position: relative !important;
  }

  .primary-navigation .search-form .search-submit {
    position: absolute !important;
    right: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
  }
}

/* =========================
   SHOW HOME ONLY ON MOBILE
   ========================= */

/* Hide on desktop + tablet */
@media only screen and (min-width: 901px) {
  .mobile-home-link {
    display: none !important;
  }
}

/* Show on mobile */
@media only screen and (max-width: 900px) {
  .mobile-home-link {
    display: block !important;
  }
}

/* =========================
   HOMEPAGE MOBILE MENU BUTTON FIX
   Closed state only
   ========================= */
@media only screen and (max-width: 651px) {
  body.home #masthead.has-logo {
    position: relative !important;
  }

  body.home #site-navigation .menu-button-container {
    position: absolute !important;
    top: 0.4rem !important;
    right: 0.75rem !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    z-index: 50 !important;
  }

  body.home #site-navigation .menu-button-container #primary-mobile-menu {
    min-width: 44px !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    background: transparent !important;
  }

  body.home #site-navigation .menu-button-container .dropdown-icon {
    margin: 0 !important;
  }

  /* OPEN STATE */
  body.home #site-navigation button[aria-expanded="true"] {
    position: relative !important;
    z-index: 60 !important;
  }

  body.home #site-navigation .menu-button-container:has(button[aria-expanded="true"]) {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    padding-top: 0.75rem !important;
    padding-right: 0.75rem !important;
  }
}

/* =========================
   HOMEPAGE ONLY: KEEP TOP-LEVEL TOGGLES ON THE RIGHT
   ========================= */
@media only screen and (max-width: 651px) {
  body.home #site-navigation .primary-menu-container > ul > li,
  body.home #site-navigation .menu-wrapper > li {
    position: relative !important;
  }

  body.home #site-navigation .primary-menu-container > ul > li > .sub-menu-toggle,
  body.home #site-navigation .menu-wrapper > li > .sub-menu-toggle {
    position: absolute !important;
    top: 1rem !important;
    right: 0.25rem !important;
    left: auto !important;
    transform: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
    z-index: 20 !important;
  }
}
/* =========================
   GLOBAL HEADING SCALE
   ========================= */

h1,
.entry-title,
.page-title,
.wp-block-post-title {
  font-size: 2.8rem;
  font-weight: 800;
  line-height: 1.1;
  margin-bottom: 1.25rem;
}

h2,
.entry-content h2,
h2.wp-block-heading {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.15;
  margin-bottom: 1rem;
}

h3,
.entry-content h3,
h3.wp-block-heading {
  font-size: 1.5rem;
  line-height: 1.2;
}

h4,
.entry-content h4,
h4.wp-block-heading {
  font-size: 1.25rem;
  line-height: 1.25;
}
/* =========================
   MOBILE HEADING FIX
   ========================= */
@media only screen and (max-width: 900px) {

  h1,
  .entry-title,
  .page-title,
  .wp-block-post-title {
   font-size: clamp(1.75rem, 5.8vw, 2.1rem) !important;
   line-height: 1.08 !important;
   word-break: normal !important;
   overflow-wrap: normal !important;
   hyphens: none !important;
   text-wrap: balance;
   max-width: 95% !important;
   padding-right: 0.5rem;
}

  h2,
  .entry-content h2,
  h2.wp-block-heading {
    font-size: clamp(1.55rem, 5vw, 1.85rem) !important;
    line-height: 1.12 !important;
    margin-top: 2rem;
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
    text-wrap: balance;
  }

  h3,
  .entry-content h3,
  h3.wp-block-heading {
    font-size: 1.3rem !important;
    line-height: 1.18 !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
    text-wrap: balance;
  }

  h4,
  .entry-content h4,
  h4.wp-block-heading {
    font-size: 1.12rem !important;
    line-height: 1.22 !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
    text-wrap: balance;
  }
}

/* =========================
   MOBILE INTERIOR TITLE GROUP PADDING FIX
   ========================= */
@media only screen and (max-width: 900px) {

  .page:not(.home):not(.front-page) .entry-content > .wp-block-group.alignfull:first-child {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  .page:not(.home):not(.front-page) .entry-content > .wp-block-group.alignfull:first-child > .wp-block-group__inner-container > h1.wp-block-heading {
    font-size: clamp(1.9rem, 8vw, 2.35rem) !important;
    line-height: 1.08 !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
    text-wrap: balance;
    max-width: 100% !important;
  }
}

/* =========================
   CONTENT LIST STYLING
   ========================= */
.entry-content ul,
.entry-content ol,
.site-main ul,
.site-main ol {
  padding-left: 1.75rem;
  margin-bottom: 1.25rem;
}

.entry-content li,
.site-main li {
  margin-bottom: 0.6rem;
  line-height: 1.6;
  padding-left: 0;
}

/* =========================
   TT1 CHECKMARK LIST FIX
   ========================= */
ul.is-style-tw-checkmark li,
ul.is-style-tw-arrow li {
  padding-inline-start: 2rem !important;
  padding-left: 2rem !important;
}

ul.is-style-tw-checkmark li::before,
ul.is-style-tw-arrow li::before {
  left: 0 !important;
}
/* =========================
   PAGES USING "NO TITLE" TEMPLATE
   Remove empty title area
   ========================= */
.page-template-page-no-title .entry-header,
.page-template-page-no-title .page-header {
  display: none;
}

.page-template-page-no-title .site-main > article {
  padding-top: 0 !important;
}
/* =========================
   RESPONSIVE LAYOUT FIXES
   ========================= */
/* =========================
   RESPONSIVE BULLET COLUMNS
   ========================= */

/* Tablet: make selected bullet columns 2-up */
@media only screen and (min-width: 652px) and (max-width: 1023px) {
  .wp-block-columns.bullet-columns-responsive {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 1.5rem 2rem !important;
  }

  .wp-block-columns.bullet-columns-responsive > .wp-block-column {
    width: 100% !important;
    max-width: 100% !important;
    flex-basis: 100% !important;
    margin: 0 !important;
  }
}

/* Mobile: stack into 1 column */
@media only screen and (max-width: 651px) {
  .wp-block-columns.bullet-columns-responsive {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0.5rem !important;
  }

  .wp-block-columns.bullet-columns-responsive > .wp-block-column {
    width: 100% !important;
    max-width: 100% !important;
    flex-basis: 100% !important;
    margin: 0 !important;
  }

  .wp-block-columns.bullet-columns-responsive ul {
    margin-top: 0 !important;
    margin-bottom: 0.75rem !important;
  }
}

/* =========================
   BULLET SPACING FIX
   ========================= */
.bullet-columns-responsive ul {
  margin: 0 !important;
  padding-left: 1.25rem !important;
}

.bullet-columns-responsive li {
  margin-bottom: 0.6rem !important;
}

/* Slightly more breathing room on mobile */
@media only screen and (max-width: 651px) {
  .bullet-columns-responsive li {
    margin-bottom: 0.75rem !important;
  }
}
/* =========================
   HIDE EMPTY BULLET COLUMNS
   ========================= */
.bullet-columns-responsive > .wp-block-column:empty {
  display: none !important;
}

/* =========================
   EVENTS MOBILE IMAGE FIX
   FacetWP event cards
   Keep native rectangle ratio
   ========================= */
@media only screen and (max-width: 651px) {

  .events-mobile-fix .fwp-row {
    display: flex !important;
    align-items: flex-start !important;
    gap: 0.875rem !important;
  }

  .events-mobile-fix .fwp-col:first-child {
    flex: 0 0 72px !important;
    width: 72px !important;
    max-width: 72px !important;
  }

  .events-mobile-fix .fwp-col:last-child {
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }

  .events-mobile-fix .fwp-item img,
  .events-mobile-fix img.attachment-medium,
  .events-mobile-fix img.wp-post-image {
    display: block !important;
    width: 80px !important;
    height: auto !important;
    max-width: 80px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    object-fit: contain !important;
  }
}

/* =========================
   MOBILE HOMEPAGE HERO GAP FIX
   ========================= */
@media only screen and (max-width: 651px) {
  body.home.tw-header-bg.tw-header-full .site-content,
  body.home.tw-header-bg.tw-header-full #content,
  body.home.tw-header-bg.tw-header-full .site-main,
  body.home.tw-header-bg.tw-header-full .site-main > article {
    padding-top: 0 !important;
    margin-top: 0 !important;
  }

  body.home .entry-content,
  body.home .entry-content > *:first-child,
  body.home .wp-block-group:first-child {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  body.home .wp-block-cover:first-child {
    margin-top: 0 !important;
    padding-top: 2rem !important;
  }
}

/* =========================
   MOBILE TOP SPACE FIX
   INTERIOR PAGES ONLY
   ========================= */
@media only screen and (max-width: 900px) {
  .page:not(.home):not(.front-page) .site-content {
    padding-top: 0 !important;
  }

  .page:not(.home):not(.front-page) .site-main > article {
    padding-top: 0 !important;
  }

  .page:not(.home):not(.front-page) .entry-content {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  .page:not(.home):not(.front-page) .entry-content > *:first-child {
    margin-top: 0 !important;
  }

  .page:not(.home):not(.front-page) h1:first-child,
  .page:not(.home):not(.front-page) .wp-block-heading:first-child {
    margin-top: 0 !important;
  }
}
/* =========================
   TABLET FIXES (HOMEPAGE)
   ========================= */
@media only screen and (min-width: 601px) and (max-width: 1024px) {

  body.home .site-content,
  body.home .site-main,
  body.home .site-main > article,
  body.home .entry-content {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  body.home .entry-content > *:first-child {
    margin-top: 0 !important;
  }

  body.home .wp-block-columns {
    flex-wrap: wrap !important;
    gap: 1.5rem;
  }

  body.home .wp-block-columns > .wp-block-column {
    flex-basis: calc(50% - 0.75rem) !important;
  }
}

/* =========================
   TABLET STACK FIX
   Force selected 3-column sections to stack
   ========================= */
@media only screen and (min-width: 652px) and (max-width: 1023px) {
    .wp-block-columns.three-up-tablet-stack {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
  }

   .wp-block-columns.three-up-tablet-stack > .wp-block-column {
    width: 100% !important;
    max-width: 100% !important;
    flex-basis: 100% !important;
    margin: 0 !important;
  }
}

/* =========================
   INTERACTIVE PROCESS MOBILE CARD FIX
   ========================= */
@media only screen and (max-width: 651px) {

  .interactive-steps-mobile {
    gap: 1rem !important;
  }

  .interactive-steps-mobile .wp-block-column {
    margin-bottom: 0 !important;
  }

  /* tighter card padding */
  .interactive-steps-mobile .wp-block-column > .wp-block-group {
    padding: 0.9rem 0.75rem !important;
  }

  /* ensure inner content uses full width */
  .interactive-steps-mobile .wp-block-group__inner-container {
    max-width: 100% !important;
    margin: 0 auto !important;
  }

  /* headings */
  .interactive-steps-mobile h2,
  .interactive-steps-mobile h3,
  .interactive-steps-mobile h4,
  .interactive-steps-mobile .wp-block-heading {
    font-size: 1.15rem !important;
    line-height: 1.15 !important;
    margin-bottom: 0.65rem !important;
    text-wrap: balance;
  }

  /* body text + lists */
  .interactive-steps-mobile p,
  .interactive-steps-mobile li {
    font-size: 1rem !important;
    line-height: 1.45 !important;
  }

  .interactive-steps-mobile p {
    margin-bottom: 0.6rem !important;
  }

  /* improve list spacing + width */
  .interactive-steps-mobile ul,
  .interactive-steps-mobile ol {
    padding-left: 0.95rem !important;
    margin-bottom: 0.75rem !important;
  }

  .interactive-steps-mobile li {
    margin-bottom: 0.45rem !important;
  }

  /* image/icon spacing */
  .interactive-steps-mobile figure,
  .interactive-steps-mobile .wp-block-image {
    margin-bottom: 0.85rem !important;
    text-align: center !important;
  }

  /* smaller icon for mobile */
  .interactive-steps-mobile .wp-block-image img {
    width: 72px !important;
    max-width: 72px !important;
    height: auto !important;
  }
}

/* =========================
   REUSABLE MOBILE STACK (CARDS / COLUMNS)
   ========================= */
@media only screen and (max-width: 651px) {

  .wp-block-columns.stack-on-mobile {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }

  .wp-block-columns.stack-on-mobile > .wp-block-column {
    width: 100% !important;
    max-width: 100% !important;
    flex-basis: 100% !important;
    margin: 0 !important;
  }

  .stack-on-mobile .wp-block-button {
    width: 100% !important;
  }

  .wp-block-columns.stack-on-mobile .wp-block-button__link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
    line-height: 1.25 !important;
    padding: 0.95rem 1.25rem !important;
  }

  .stack-on-mobile a[href^="mailto:"] {
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }
}

/* =========================
   FOOTER BUTTON CENTERING (MOBILE)
   ========================= */
@media only screen and (max-width: 651px) {

  footer .wp-block-buttons,
  .site-footer .wp-block-buttons,
  .widget-area .wp-block-buttons {
    justify-content: center !important;
  }

  footer .wp-block-buttons.is-content-justification-left,
  .site-footer .wp-block-buttons.is-content-justification-left,
  .widget-area .wp-block-buttons.is-content-justification-left {
    justify-content: center !important;
  }

  footer .wp-block-button,
  .site-footer .wp-block-button,
  .widget-area .wp-block-button {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  footer .wp-block-button__link,
  .site-footer .wp-block-button__link,
  .widget-area .wp-block-button__link {
    display: inline-flex !important;
    justify-content: center !important;
    align-items: center !important;
  }
}

/* =========================
   REUSABLE CIRCLE IMAGE LINK STYLE
   ========================= */

  .circle-icon-link a,
  .circle-icon-link a:hover,
  .circle-icon-link a:active {
   background: transparent !important;
   box-shadow: none !important;
}

  .circle-icon-link a img {
   display: block;
}

 .circle-icon-link a:focus-visible {
  outline: 3px solid #FFCB05;
  outline-offset: 4px;
  border-radius: 50%;
}
/* =========================
   FORCE CONTENT BUTTON STYLES
   Excludes header + footer
   ========================= */

body .site .site-main .wp-block-button > .wp-block-button__link,
body .site .site-main .wp-block-button.is-style-fill > .wp-block-button__link,
body .site .site-main .wp-block-button.is-style-outline > .wp-block-button__link,
body .site .site-main a.wp-block-button__link,
body .site .site-main .wp-element-button,
body .site .site-main input[type="submit"],
body .site .site-main input[type="button"],
body .site .site-main input[type="reset"] {
  background: #702082 !important;
  color: #ffffff !important;
  border: 2px solid #702082 !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  text-decoration: none !important;
  background-image: none !important;
  transition: background-color 0.2s ease-in-out,
            color 0.2s ease-in-out,
            border-color 0.2s ease-in-out !important;
}

/* visited */
body .site .site-main .wp-block-button > .wp-block-button__link:visited,
body .site .site-main a.wp-block-button__link:visited,
body .site .site-main .wp-element-button:visited {
  color: #ffffff !important;
}

/* hover + focus */
body .site .site-main .wp-block-button > .wp-block-button__link:hover,
body .site .site-main .wp-block-button > .wp-block-button__link:focus,
body .site .site-main .wp-block-button.is-style-fill > .wp-block-button__link:hover,
body .site .site-main .wp-block-button.is-style-fill > .wp-block-button__link:focus,
body .site .site-main .wp-block-button.is-style-outline > .wp-block-button__link:hover,
body .site .site-main .wp-block-button.is-style-outline > .wp-block-button__link:focus,
body .site .site-main a.wp-block-button__link:hover,
body .site .site-main a.wp-block-button__link:focus,
body .site .site-main .wp-element-button:hover,
body .site .site-main .wp-element-button:focus,
body .site .site-main input[type="submit"]:hover,
body .site .site-main input[type="submit"]:focus,
body .site .site-main input[type="button"]:hover,
body .site .site-main input[type="button"]:focus,
body .site .site-main input[type="reset"]:hover,
body .site .site-main input[type="reset"]:focus {

  background: transparent !important;
  color: #000000 !important;
  border: 2px solid #000000 !important;
}

/* focus ring */
body .site .site-main .wp-block-button > .wp-block-button__link:focus-visible,
body .site .site-main a.wp-block-button__link:focus-visible,
body .site .site-main .wp-element-button:focus-visible,
body .site .site-main input[type="submit"]:focus-visible,
body .site .site-main input[type="button"]:focus-visible,
body .site .site-main input[type="reset"]:focus-visible {
  outline: 3px solid #000000 !important;
  outline-offset: 2px !important;
}
	
/* =========================
   SEARCH RESULTS HEADING FIX
   ========================= */

.search-results .page-header .page-title {
  font-size: 1.6rem !important;
  line-height: 1.08 !important;
  margin-bottom: 0.5rem !important;
}

.search-results article .entry-title,
.search-results article .entry-title a {
  font-size: 1.35rem !important;
  line-height: 1.15 !important;
}

.search-results article .entry-title {
  margin-bottom: 0.45rem !important;
}

.search-results article p,
.search-results article .entry-summary,
.search-results article .entry-content {
  font-size: 1rem !important;
  line-height: 1.6 !important;
}

.search-results article {
  margin-bottom: 2rem !important;
}

.search-results .page-header {
  border-bottom: none !important;
}

.search-results .page-header::after {
  content: "";
  display: block;
  height: 2px;
  background: #000;
  width: 120px;
  margin-top: 1rem;
}

.search-results .entry-title a {
  text-decoration: none !important;
}

.search-results .entry-title a:hover {
  text-decoration: underline !important;
}

.search-results .search-result-count {
  font-size: 0.95rem;
  color: #555;
  margin-bottom: 1.5rem;
}

/* MOBILE ONLY */
@media only screen and (max-width: 900px) {
  .search-results .page-header .page-title {
    font-size: 1.6rem !important;
  }

  .search-results article .entry-title,
  .search-results article .entry-title a {
    font-size: 1.15rem !important;
  }
}
/* =========================
   FACETWP PAGINATION STYLE
   ========================= */

.facetwp-pager .facetwp-page,
.facetwp-pager a {
  text-decoration: underline !important;
  text-underline-offset: 0.12em;
}

/* hover + focus */
.facetwp-pager .facetwp-page:hover,
.facetwp-pager .facetwp-page:focus {
  text-decoration-thickness: 2px;
}

.facetwp-pager .facetwp-page:focus-visible {
  outline: 2px solid #000;
  outline-offset: 2px;
}

/* active page */
.facetwp-pager .facetwp-page.active {
  font-weight: 700;
}

/* Mobile fixes for homepage events */
@media (max-width: 640px) {
  .fwpl-row.el-acwt89 {
    display: flex;
    align-items: flex-start;
  }

  .fwpl-row.el-acwt89 .el-ja6937 {
    flex: 0 0 100px;
    width: 100px;
  }

  .fwpl-row.el-acwt89 .el-u5kgki {
    flex: 1;
    min-width: 0; /* prevents text overflow */
  }
}