/* =========================================================
 * TVS Capital — Accessibility fixes (child theme)
 * Enqueued from Capital23/functions.php with filemtime() versioning.
 * Companion file: a11y-fixes.js
 * ========================================================= */

/* =========================================================
 * A11y — TVS-7425/7426: team card trigger — focus ring + hover/focus parity
 * ========================================================= */
.awsm-modal-trigger:focus figure,
.awsm-modal-trigger:focus-visible figure {
  outline: 3px solid #0a2540 !important;
  outline-offset: 3px !important;
}

.awsm-modal-trigger:focus figcaption,
.awsm-modal-trigger:focus-within figcaption {
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
}

/* =========================================================
 * A11y — TVS-7307/6983: team modal controls (Close / Prev / Next) focus ring
 * White ring because the modal chrome sits on a dark overlay.
 * ========================================================= */
.awsm-modal .awsm-modal-close:focus-visible,
.awsm-modal .awsm-nav-item:focus-visible {
  outline: 3px solid #fff !important;
  outline-offset: 2px !important;
}

/* =========================================================
 * A11y — TVS-7682: reveal the Client Login submenu on keyboard focus
 * ========================================================= */
.pp-advanced-menu li:focus-within > .sub-menu {
  display: block !important;
}

/* =========================================================
 * A11y — TVS-6988: Updates filter buttons focus ring
 * ========================================================= */
.pp-post-filters .pp-post-filter:focus-visible {
  outline: 3px solid #0a2540;
  outline-offset: 2px;
}

/* =========================================================
 * A11y — TVS-7476: keyboard-reveal for flipbox cards (all slide directions)
 * ========================================================= */
.pp-animate-slide.pp-direction-up.pp-flipbox-container:focus-within .pp-flipbox-back,
.pp-animate-push.pp-direction-up.pp-flipbox-container:focus-within .pp-flipbox-back {
  top: 0;
}

.pp-animate-slide.pp-direction-down.pp-flipbox-container:focus-within .pp-flipbox-back,
.pp-animate-push.pp-direction-down.pp-flipbox-container:focus-within .pp-flipbox-back {
  top: auto;
  bottom: 0;
}

.pp-animate-slide.pp-direction-left.pp-flipbox-container:focus-within .pp-flipbox-back,
.pp-animate-push.pp-direction-left.pp-flipbox-container:focus-within .pp-flipbox-back {
  left: 0;
}

.pp-animate-slide.pp-direction-right.pp-flipbox-container:focus-within .pp-flipbox-back,
.pp-animate-push.pp-direction-right.pp-flipbox-container:focus-within .pp-flipbox-back {
  left: auto;
  right: 0;
}

/* =========================================================
 * A11y — TVS-6241/6946: single visible focus ring (WCAG 1.4.11)
 * Navy is used on light UI; dark surfaces receive the white override below.
 * ========================================================= */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.elementor-button:focus-visible,
.pp-posts-button:focus-visible,
.pp-menu-item:focus-visible,
.pp-advanced-menu a:focus-visible,
nav a:focus-visible,
.jet-listing-grid__item a:focus-visible,
.pp-post-title a:focus-visible,
[role="button"]:focus-visible {
  outline: 3px solid #0a2540 !important;
  outline-offset: 2px !important;
  border-radius: 2px;
}

/* Dark surfaces — use a light ring so the focus indicator remains visible. */
footer a:focus-visible,
.elementor-location-footer a:focus-visible {
  outline-color: #fff !important;
}

/* Portfolio flipbox — ring the container; suppress the clipped inner-link ring. */
.pp-flipbox-container:focus-within {
  outline: 3px solid #0a2540 !important;
  outline-offset: 2px !important;
}

.pp-flipbox-container .pp-flipbox-back a:focus-visible {
  outline: none !important;
}

/* Team triggers are inline role=button spans; their figure carries the visible ring. */
.awsm-modal-trigger:focus-visible {
  outline: none !important;
}

/* =========================================================
 * A11y — TVS-7395: visible “View profile” cue on team cards
 * ========================================================= */
.awsm-modal-trigger figure {
  position: relative;
}

.awsm-modal-trigger figure::after {
  content: "View profile →"; /* → */
  position: absolute;
  left: 50%;
  bottom: 12px;
  transform: translateX(-50%);
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(10, 37, 64, 0.9);
  color: #fff;
  font-size: 13px;
  white-space: nowrap;
  opacity: 0;
  transition: opacity 0.2s;
  pointer-events: none;
}

.awsm-modal-trigger:hover figure::after,
.awsm-modal-trigger:focus figure::after,
.awsm-modal-trigger:focus-within figure::after {
  opacity: 1;
}

/* =========================================================
 * A11y — submenu keyboard/hover parity (Client Login flyout)
 * ========================================================= */
.pp-advanced-menu .sub-menu .pp-menu-item.highlighted,
.pp-advanced-menu .sub-menu .pp-menu-item:focus,
.pp-advanced-menu .sub-menu .pp-menu-item:focus-visible,
.pp-advanced-menu--dropdown .pp-menu-item.highlighted,
.pp-advanced-menu--dropdown .pp-menu-item:focus,
.pp-advanced-menu--dropdown .pp-menu-item:focus-visible {
  background-color: #4e9b95 !important;
  color: #fff !important;
}

/* =========================================================
 * A11y — company post-navigation: preserve a compact focusable target
 * ========================================================= */
.elementor-post-navigation__prev a,
.elementor-post-navigation__next a {
  display: inline-flex;
  width: auto;
}

/* =========================================================
 * TVS-7346/6940: breadcrumb list reset (wrapper is added in a11y-fixes.js)
 * ========================================================= */
nav[aria-label="Breadcrumb"] ol {
  list-style: none;
  padding-left: 0;
  margin: 0;
  display: flex;
  align-items: center;
}

/* =========================================================
 * TVS-6508: reset default definition-list spacing on company facts
 * The a11y-company-facts class is added dynamically by a11y-fixes.js.
 * ========================================================= */
.a11y-company-facts {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: inherit;
}

.a11y-company-facts dt,
.a11y-company-facts dd {
  margin: 0;
  display: inline;
}

/* =========================================================
 * TVS-6090/6181: list reset for grids rebuilt by a11y-fixes.js
 * ========================================================= */
.jet-listing-grid__items.jet-listing-grid--929,
ul.jet-listing-grid__items,
.awsm-grid-modal.awsm-grid ul,
ul.awsm-grid-modal {
  list-style: none;
  padding-left: 0;
  margin: 0;
}

.a11y-sector-list {
  list-style: none;
  padding-left: 0;
  margin: 0;
  display: flex;
  gap: inherit;
}

/* =========================================================
 * TVS-6952: compliant brand teal for live Posts buttons
 * #40807B provides 4.57:1 contrast with white text.
 * ========================================================= */
:root {
  --a11y-teal-compliant: #40807b;
}

.pp-posts-button {
  background-color: var(--a11y-teal-compliant) !important;
}

/* =========================================================
 * TVS-5557: footer copyright and legal-link contrast
 * The broad rule covers footer rich-text widgets; the selectors below preserve
 * the intended lighter blue on the specific copyright and policy-link widgets.
 * ========================================================= */
footer .elementor-widget-text-editor,
footer .elementor-widget-text-editor a,
.elementor-location-footer .elementor-widget-text-editor,
.elementor-location-footer .elementor-widget-text-editor a {
  color: #6aa2ca !important;
}

.elementor-503 .elementor-element.elementor-element-8835c61 .elementor-heading-title,
.elementor-503 .elementor-element.elementor-element-98b3185 .elementor-icon-list-text,
.elementor-503 .elementor-element.elementor-element-98b3185 a {
  color: #8fc6f0;
}

/* Keep policy links legible in every pointer and keyboard interaction state. */
.elementor-503 .elementor-element.elementor-element-98b3185 a:hover,
.elementor-503 .elementor-element.elementor-element-98b3185 a:focus,
.elementor-503 .elementor-element.elementor-element-98b3185 a:focus-visible {
  color: #fff;
}

/* =========================================================
 * TVS-6944: styling for job-title headings demoted by a11y-fixes.js
 * ========================================================= */
.a11y-role-line {
  font-size: inherit;
  font-weight: 600;
  margin: 0 0 4px;
}

/* =========================================================
 * A11y — portfolio-company founder repeater list reset
 * The script converts this component into a list; retain its inline layout.
 * ========================================================= */
.jet-listing-dynamic-repeater__items {
  list-style: none;
  padding-left: 0;
  margin: 0;
  display: inline;
}

/* =========================================================
 * TVS-6952: current PhonePe controls — hover/focus contrast
 * These two element IDs are present on the live PhonePe page.
 * ========================================================= */
.elementor-2398 .elementor-element.elementor-element-d6b90fb .elementor-button:hover,
.elementor-2398 .elementor-element.elementor-element-d6b90fb .elementor-button:focus,
.elementor-2398 .elementor-element.elementor-element-d6b90fb .elementor-button:focus-visible,
.elementor-2398 .elementor-element.elementor-element-c60cfc5 .elementor-button:hover,
.elementor-2398 .elementor-element.elementor-element-c60cfc5 .elementor-button:focus,
.elementor-2398 .elementor-element.elementor-element-c60cfc5 .elementor-button:focus-visible {
  background-color: #104764 !important;
  color: #fff !important;
}

/* =========================================================
 * A11y — keep portfolio-company founder lists on one line where space permits
 * ========================================================= */
.elementor-2398 .jet-listing-dynamic-repeater__items {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.elementor-2398 .jet-listing-dynamic-repeater__items > li {
  display: inline !important;
  white-space: nowrap;
  margin: 0;
  padding: 0;
}

.elementor-2398 .jet-listing-dynamic-repeater__items > li.jet-listing-dynamic-repeater__delimiter {
  margin: 0 0.25em;
}
