/* WCAG Accessibility Styles */

/* ============================================
   Mobile Nav Close Button
   Visible only below the lg breakpoint (992px).
   Uses rem units and flexbox for zoom resilience.
   ============================================ */
.navbar-mobile-close {
  display: none; /* hidden on desktop */
}

@media (max-width: 991.98px) {
  .navbar-mobile-close {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 0.75rem 1rem;
  }

  .navbar-mobile-close-btn {
    background: transparent;
    border: 2px solid #FFFFFF;
    border-radius: 4px;
    color: #FFFFFF;
    font-size: 1rem;
    line-height: 1;
    padding: 0.5rem 0.75rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-width: 44px;
    min-height: 44px;
  }

  .navbar-mobile-close-btn:hover {
    background: rgba(255, 255, 255, 0.1);
  }

  .navbar-mobile-close-btn:focus,
  .navbar-mobile-close-btn:focus-visible {
    outline: 2px solid #FFFFFF !important;
    outline-offset: 3px;
    box-shadow: none !important;
  }

  .navbar-mobile-close-btn svg {
    pointer-events: none;
  }
}

/* Visually hidden but screen-reader accessible helper */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Heading color utility classes - replacing inline styles on headings */
.heading-color-blue {
  color: #292562;
}
.heading-color-red {
  color: #F04E45;
}
.heading-color-white {
  color: #FFFFFF;
}
.heading-color-grey {
  color: #686682;
}
.heading-color-dark {
  color: #03002F;
}

/* Hidden decorative spacer inside headings */
.heading-spacer {
  color: #FFFFFF;
}

/* WCAG Focus Styles */
.navbar-cust .navbar-nav .nav-link:focus,
.navbar-cust-home .navbar-nav .nav-link:focus,
.navbar-cust .navbar-nav .nav-link:focus-visible,
.navbar-cust-home .navbar-nav .nav-link:focus-visible {
  outline: 2px solid #FFFFFF !important;
  outline-offset: 3px;
  border-radius: 2px;
  box-shadow: none !important;
}
.navbar-toggler:focus,
.navbar-toggler:focus-visible {
  outline: 2px solid #FFFFFF !important;
  outline-offset: 3px;
  box-shadow: none !important;
}
.cust-menu .nav-btn:focus,
.cust-menu .nav-btn:focus-visible {
  outline: 2px solid #FFFFFF !important;
  outline-offset: 2px;
  box-shadow: none !important;
}
.footer-links li a:focus,
.footer-links li a:focus-visible {
  outline: 2px solid #FFFFFF !important;
  outline-offset: 2px;
}
a:focus-visible {
  outline: 2px solid #000000 !important;
  outline-offset: 2px;
}
button:focus-visible {
  outline: 2px solid #000000 !important;
  outline-offset: 2px;
}

/* Override focus color to white for links/buttons on dark backgrounds */
.navbar-cust a:focus-visible,
.navbar-cust-home a:focus-visible,
.footer a:focus-visible,
.footer button:focus-visible {
  outline-color: #FFFFFF !important;
}

/* Dropdown arrow visibility for 'What we do' menu */
#main-menu .dropdown-toggle::after {
  display: inline-block;
  border-top-color: #fff;
}

/* Blockquote reset for semantic replacement of heading quotes */
blockquote {
  margin: 0;
  padding: 0;
  border: none;
}

/* Semantic emphasis elements - maintain visual consistency */
strong.u-fw-bold {
  font-weight: 700;
  font-style: normal;
}

strong.u-fw-600 {
  font-weight: 600;
  font-style: normal;
}

/* em used for semantic stress emphasis - keep upright to match existing design */
em.u-color-coral,
em.u-color-red,
em.smallTxtRed,
em.smallTxtWRed {
  font-style: normal;
}

/* Ensure .h3 and .h4 utility classes on non-heading elements preserve visual style */
.pm-since-label {
  display: inline-block;
}

/* Focus styles for section headings on light backgrounds */
h2.colorBlue:focus,
h2.colorBlue:focus-visible {
  outline: 2px solid #F04E45 !important;
  outline-offset: 3px;
  border-radius: 2px;
}

/* Constrain carousel prev/next buttons so focus wraps only the icon area */
.carousel-control-prev,
.carousel-control-next {
  width: auto;
  height: auto;
  top: 50%;
  transform: translateY(-50%);
  padding: 12px;
  align-items: center;
}

.carousel-control-prev {
  left: 8px;
}

.carousel-control-next {
  right: 8px;
}

/* Focus styles for carousel arrow buttons in "Some winners" section */
#carouselExampleIndicatorsLogos .carousel-control-prev:focus,
#carouselExampleIndicatorsLogos .carousel-control-prev:focus-visible,
#carouselExampleIndicatorsLogos .carousel-control-next:focus,
#carouselExampleIndicatorsLogos .carousel-control-next:focus-visible {
  outline: 2px solid #F04E45 !important;
  outline-offset: 3px;
  border-radius: 2px;
}

/* Focus styles for "Our Leadership" carousel section */
#carouselExampleCaptionsLeader .carousel-control-prev:focus,
#carouselExampleCaptionsLeader .carousel-control-prev:focus-visible,
#carouselExampleCaptionsLeader .carousel-control-next:focus,
#carouselExampleCaptionsLeader .carousel-control-next:focus-visible {
  outline: 2px solid #000000 !important;
  outline-offset: 3px;
  border-radius: 2px;
}

/* Focus styles for "Our Leadership" carousel indicators */
#carouselExampleCaptionsLeader .carousel-indicators [data-bs-target]:focus,
#carouselExampleCaptionsLeader .carousel-indicators [data-bs-target]:focus-visible {
  outline: 2px solid #000000 !important;
  outline-offset: 2px;
  border-radius: 50%;
}

/* Focus and hover styles for "Read More" links in Leadership carousel */
#carouselExampleCaptionsLeader .carousel-caption a:focus,
#carouselExampleCaptionsLeader .carousel-caption a:focus-visible {
  outline: 2px solid #000000 !important;
  outline-offset: 3px;
  border-radius: 2px;
}

#carouselExampleCaptionsLeader .carousel-caption a:hover {
  text-decoration: underline;
  cursor: pointer;
}

/* Focus styles for Home Purpose carousel (index.html) */
#carouselExampleRideHome .carousel-control-prev:focus,
#carouselExampleRideHome .carousel-control-prev:focus-visible,
#carouselExampleRideHome .carousel-control-next:focus,
#carouselExampleRideHome .carousel-control-next:focus-visible {
  outline: 2px solid #FFFFFF !important;
  outline-offset: 3px;
  border-radius: 2px;
}

/* Focus styles for Home Guiding Principles carousel (index.html) */
#carouselExampleRideHomeTwo .carousel-control-prev:focus,
#carouselExampleRideHomeTwo .carousel-control-prev:focus-visible,
#carouselExampleRideHomeTwo .carousel-control-next:focus,
#carouselExampleRideHomeTwo .carousel-control-next:focus-visible {
  outline: 2px solid #FFFFFF !important;
  outline-offset: 3px;
  border-radius: 2px;
}

/* Focus styles for bottom-arrow scroll link (dark background) */
.bottom-arrow:focus,
.bottom-arrow:focus-visible {
  outline: 2px solid #F04E45 !important;
  outline-offset: 3px;
  border-radius: 2px;
}

/* Focus styles for Logos carousel (private-markets.html) */
#carouselExampleIndicatorsLogos .carousel-control-prev:focus,
#carouselExampleIndicatorsLogos .carousel-control-prev:focus-visible,
#carouselExampleIndicatorsLogos .carousel-control-next:focus,
#carouselExampleIndicatorsLogos .carousel-control-next:focus-visible {
  outline: 2px solid #000000 !important;
  outline-offset: 3px;
  border-radius: 2px;
}

/* Focus styles for Logos carousel indicators */
#carouselExampleIndicatorsLogos .carousel-indicators [data-bs-target]:focus,
#carouselExampleIndicatorsLogos .carousel-indicators [data-bs-target]:focus-visible {
  outline: 2px solid #000000 !important;
  outline-offset: 2px;
  border-radius: 50%;
}


/* ============================================
   WCAG 1.4.12 Text Spacing Compliance
   Ensures text containers accommodate user-defined spacing
   adjustments (line-height 1.5, letter-spacing 0.12em,
   word-spacing 0.16em, paragraph spacing 2em) without
   clipping, overlapping, or misalignment.
   ============================================ */

/* Prevent text clipping in containers that may have overflow:hidden.
   Use visible overflow on text-containing elements so increased
   spacing doesn't cause content loss. */
.red-box-private,
.blue-box-private,
.red-box-private-zoomout,
.blue-box-private-zoomout,
.red-box-private-public,
.blue-box-private-public,
.crossOverHolder1,
.crossOverHolder2,
.crossOver4AHolder,
.AumHolder,
.CrossOverOne,
.topHolder,
.targetHolder,
.Operationalbtn,
.cardHolder .card-item,
.nav-btn,
.MediaBtn,
.cardTitle {
  overflow: visible;
}

/* Ensure paragraphs and text blocks have flexible spacing
   that won't collapse when user applies spacing overrides */
p,
li,
td,
th,
dd,
dt,
label,
blockquote {
  line-height: inherit;
  letter-spacing: inherit;
  word-spacing: inherit;
}

/* Remove any hard-coded text-spacing restrictions from body.
   Allow user stylesheets/extensions to override freely. */
body {
  line-height: 1.5;
  letter-spacing: normal;
  word-spacing: normal;
}

/* Ensure nav links accommodate spacing without clipping */
.navbar-cust .navbar-nav .nav-link,
.navbar-cust-home .navbar-nav .nav-link {
  overflow: visible;
  white-space: normal;
}

/* Footer text must not be clipped by containers */
.footer,
.footer-links li a {
  overflow: visible;
  line-height: 1.5;
}

/* Card and box elements: use min-height rather than fixed height
   to accommodate text spacing growth */

/* Ensure carousel caption text isn't truncated when spacing grows */
#carouselExampleCaptionsLeader .carousel-caption h5,
#carouselExampleCaptionsLeader .carousel-caption p {
  overflow: visible;
  text-overflow: clip;
}

/* Prevent showDiv interactive sections from hard-clipping
   text when spacing is adjusted by user preferences.
   The transition remains intact via max-height instead. */
.showDiv,
.showDiv1,
.showDiv3 {
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-line-clamp: unset;
}

/* Ensure modal text content adapts to spacing */
.modal-body,
.modal-body p {
  overflow: visible;
  line-height: 1.5;
}

/* Tables: allow cells to expand with text spacing overrides */
table td,
table th {
  overflow: visible;
  padding-top: 0.5em;
  padding-bottom: 0.5em;
}

/* Buttons and links: use padding for spacing instead of fixed height */
.home-viewmore-btn,
.nav-btn,
.MediaBtn {
  height: auto;
  min-height: auto;
  line-height: 1.5;
}

/* Headings: allow flexible line-height so increased
   letter/word spacing doesn't cause overlap */
h1, h2, h3, h4, h5, h6,
.about-title1,
.main-title-private,
.main-title-public,
.header-about,
.bigTxt,
.bigTxt6,
.bigTxt6-sub,
.smallTxt,
.smallTxtW,
.smallTxtRed,
.smallTxtWRed,
.newage-heading,
.VenDebt,
.beyondCapital h1,
.home-purpose-quote,
.guiding-principles-quote,
.fontSize76 {
  overflow: visible;
  overflow-wrap: break-word;
  word-wrap: break-word;
}

/* Ensure decorative lines and pseudo-elements don't
   interfere with text spacing adjustments */
.card .capitalText::after {
  position: absolute;
  bottom: -4px;
}

/* Venture/Real Estate cards: flexible height */
.venCard .card-title,
.venCard span {
  overflow: visible;
  line-height: 1.5;
}

/* Stats section: allow flexible sizing */
.fontSmall-stats,
.fontBig-stats {
  overflow: visible;
  line-height: 1.4;
}

/* Prevent text-transform from interfering with word-spacing */
.capitalText {
  overflow: visible;
}

/* ============================================
   WCAG Compliant Footer Email Links
   - 2.4.4 Link Purpose: aria-labels in HTML
   - 2.4.7 Focus Visible: high-contrast outline
   - 1.4.13 Content on Hover/Focus: underline
   - 2.5.8 Target Size: min 44px tap target
   - 1.4.3 Contrast: white on dark background
   ============================================ */
.footer-email-link {
  display: block;
  color: #FFFFFF;
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 3px;
  font-size: 0.875rem;
  padding: 0.5rem 0;
  min-height: 44px;
  line-height: 1.5;
  transition: text-decoration-color 0.2s ease, color 0.2s ease;
}

.footer-email-link:hover {
  color: #FFFFFF;
  text-decoration-color: #FFFFFF;
}

.footer-email-link:focus,
.footer-email-link:focus-visible {
  color: #FFFFFF;
  text-decoration-color: #FFFFFF;
  outline: 2px solid #FFFFFF !important;
  outline-offset: 3px;
  border-radius: 2px;
  box-shadow: none !important;
}

/* Focus style for pe.vc email link on dark video overlay */
a.u-color-coral-link:focus,
a.u-color-coral-link:focus-visible {
  outline: 2px solid #FFFFFF !important;
  outline-offset: 3px;
  border-radius: 2px;
  box-shadow: none !important;
}
