/* ==========================================================================
   Vansh Capital – theme layer on top of the Capigo template
   Loaded last. Palette, contrast fixes and the few components the template
   does not provide (documents, officers, jobs, legal text, video).
   For the WordPress build this file becomes the child-theme stylesheet.
   ========================================================================== */

:root {
	--vansh-orange: #EF7B00;       /* logo orange: fills, icons, large type  */
	--vansh-orange-ink: #A04B00;   /* orange for small text on light (4.9:1) */
	--vansh-dark: #231B14;         /* secondary / dark sections               */
	--vansh-ink: #17110C;          /* headings, button text on orange         */
	--vansh-cream: #FFF4E6;        /* warm light background                   */
	--vansh-line: #E6D5BE;         /* hairlines on cream                      */
	--vansh-body: #4F4740;
	--pbmit-body-typography-color: var(--vansh-body);
}

/* ---- Accessibility basics ------------------------------------------------ */
.skip-link {
	position: absolute; left: 12px; top: -60px; z-index: 10000;
	background: var(--vansh-ink); color: #fff; padding: 10px 18px; border-radius: 4px;
	transition: top .2s ease;
}
.skip-link:focus { top: 12px; color: #fff; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible,
.accordion-button:focus-visible {
	outline: 3px solid var(--vansh-orange); outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* ---- Logo ---------------------------------------------------------------- */

/* ---- Buttons: orange fill needs dark text to pass contrast --------------- */
.pbmit-btn { color: var(--vansh-ink); background-color: var(--vansh-orange); }
.pbmit-btn svg line, .pbmit-btn .pbmit-svg-arrow line { stroke: var(--vansh-ink); }
.pbmit-btn:hover { color: #fff; background-color: var(--vansh-ink); }
.pbmit-btn:hover svg line, .pbmit-btn:hover .pbmit-svg-arrow line { stroke: #fff; }
.pbmit-btn.pbmit-btn-white { color: var(--vansh-ink); background-color: #fff; }
.pbmit-btn-white:hover { color: var(--vansh-ink); background-color: var(--vansh-orange); }
.pbmit-btn-white:hover svg line { stroke: var(--vansh-ink); }
.pbmit-btn-outline { color: #fff; }

/* ---- Small orange text on light backgrounds (scoped, so dark areas keep their own link colours) */
.vansh-prose a, .vansh-legal a, .vansh-form a, .list-unstyled a, .pbmit-heading-desc a, .vansh-officer a { color: var(--vansh-orange-ink); }
.vansh-prose a:hover, .vansh-legal a:hover, .vansh-form a:hover, .list-unstyled a:hover, .pbmit-heading-desc a:hover, .vansh-officer a:hover { color: var(--vansh-ink); }
.pbmit-heading-subheading .pbmit-subtitle { color: var(--vansh-orange-ink); }
.pbmit-bg-color-blackish .pbmit-subtitle,
.pbmit-text-color-white .pbmit-subtitle,
.pbmit-slider-content .pbmit-sub-title { color: var(--vansh-orange); }


/* ---- Section spacing helpers --------------------------------------------- */
.vansh-section { padding: 90px 0; }
.vansh-section--cream { background: var(--vansh-cream); }
.vansh-section--dark { background: var(--vansh-dark); color: #E9E2DA; }
.vansh-section--dark h2, .vansh-section--dark h3, .vansh-section--dark h4 { color: #fff; }
@media (max-width: 767px) { .vansh-section { padding: 60px 0; } }
.vansh-lead { font-size: 18px; line-height: 1.7; max-width: 68ch; }
.vansh-prose p { max-width: 70ch; }
.vansh-prose strong { color: var(--vansh-ink); }

/* ---- Document cards (PDF disclosures) ------------------------------------ */
.vansh-docs { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 20px; list-style: none; margin: 0; padding: 0; }
.vansh-doc {
	display: flex; align-items: center; gap: 16px; height: 100%;
	padding: 20px 22px; background: #fff; border: 1px solid var(--vansh-line); border-left: 4px solid var(--vansh-orange);
	border-radius: 6px; color: var(--vansh-ink) !important; text-decoration: none; transition: background-color .25s ease, border-color .25s ease;
}
.vansh-doc:hover { background: var(--vansh-cream); border-color: var(--vansh-orange); }
.vansh-doc__icon { flex: 0 0 auto; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: var(--vansh-cream); color: var(--vansh-orange-ink); font-size: 20px; }
.vansh-doc__text { display: flex; flex-direction: column; min-width: 0; }
.vansh-doc__title { font-family: var(--pbmit-heading-typography-font-family); font-weight: 600; font-size: 16px; line-height: 1.35; }
.vansh-doc__meta { font-size: 13px; color: var(--vansh-body); margin-top: 2px; }
.vansh-docs--external .vansh-doc__icon { background: var(--vansh-dark); color: #fff; }

/* ---- Officers -------------------------------------------------------------- */
.vansh-officer { color: var(--vansh-body); height: 100%; padding: 28px; background: #fff; border: 1px solid var(--vansh-line); border-radius: 6px; }
.vansh-officer h3, .vansh-section--dark .vansh-officer h3 { font-size: 20px; margin-bottom: 14px; color: var(--vansh-ink); }
.vansh-officer__name { font-family: var(--pbmit-heading-typography-font-family); font-weight: 700; font-size: 22px; color: var(--vansh-ink); margin: 0 0 8px; }
.vansh-officer ul { list-style: none; margin: 0; padding: 0; }
.vansh-officer li { margin: 4px 0; }
.vansh-officer li i { width: 22px; color: var(--vansh-orange-ink); }
.vansh-notice-img { width: 100%; height: auto; border: 1px solid var(--vansh-line); border-radius: 6px; background: #fff; }
.vansh-address { border-left: 4px solid var(--vansh-orange); padding: 6px 0 6px 18px; margin: 0; }

/* ---- Legal text (disclaimer, T&C, refund, privacy) ------------------------- */
.vansh-disclaimer { background: var(--vansh-cream); border-left: 5px solid var(--vansh-orange); padding: 26px 30px; border-radius: 4px; }
.vansh-disclaimer h2 { font-size: 26px; margin-bottom: 10px; }
.vansh-legal .accordion-body { max-width: 80ch; }
.vansh-legal .accordion-body h4, .vansh-legal .accordion-body h5 { margin: 22px 0 8px; font-size: 18px; }
.vansh-legal .accordion-body ul, .vansh-legal .accordion-body ol { padding-left: 22px; }
.vansh-legal .accordion-body li { margin-bottom: 6px; }
.vansh-legal .pbmit-accordion-title span { color: inherit; }

/* ---- Hiring ---------------------------------------------------------------- */
.vansh-job { height: 100%; background: #fff; border: 1px solid var(--vansh-line); border-top: 4px solid var(--vansh-orange); border-radius: 6px; padding: 28px; }
.vansh-job h3 { font-size: 21px; line-height: 1.3; margin-bottom: 16px; }
.vansh-job dl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 8px 16px; }
.vansh-job dt { font-weight: 600; color: var(--vansh-ink); }
.vansh-job dd { margin: 0; }
.vansh-job__open { display: inline-block; margin-top: 16px; padding: 4px 12px; border-radius: 30px; background: var(--vansh-ink); color: #fff; font-size: 13px; font-weight: 600; }
.vansh-job__closed { display: inline-block; margin-top: 16px; padding: 4px 12px; border-radius: 30px; background: var(--vansh-cream); color: var(--vansh-body); font-size: 13px; font-weight: 600; }

/* ---- Video ----------------------------------------------------------------- */
.vansh-video { position: relative; aspect-ratio: 16 / 9; border-radius: 6px; overflow: hidden; background: var(--vansh-ink); }
.vansh-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---- Fund-manager profile -------------------------------------------------- */
.vansh-manager__photo { width: 100%; height: auto; border-radius: 6px; background: var(--vansh-cream); }
.vansh-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.vansh-stats li { border-top: 3px solid var(--vansh-orange); padding-top: 12px; }
.vansh-stats strong { display: block; font-family: var(--pbmit-heading-typography-font-family); font-size: 38px; line-height: 1.1; color: var(--vansh-ink); }
.vansh-section--dark .vansh-stats strong { color: #fff; }
.vansh-stats span { font-size: 15px; }

/* ---- Criteria lists (Service page) ------------------------------------------ */
.vansh-criteria { list-style: none; margin: 0; padding: 0; }
.vansh-criteria li { position: relative; padding: 0 0 18px 44px; }
.vansh-criteria li::before {
	content: "\e64c"; font-family: "themify"; position: absolute; left: 0; top: 2px;
	width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%;
	background: var(--vansh-orange); color: var(--vansh-ink); font-size: 12px;
}
.vansh-service-img { width: 100%; height: auto; border-radius: 6px; }

/* ---- Forms ------------------------------------------------------------------- */
.vansh-form label { display: block; font-weight: 600; color: var(--vansh-ink); margin: 0 0 6px; }
.vansh-form .req { color: var(--vansh-orange-ink); }
.vansh-form .form-control { margin-bottom: 18px; }
.vansh-form .form-status { margin-top: 14px; font-weight: 600; }
.vansh-form .form-status.is-ok { color: #1c6b3a; }
.vansh-form .form-status.is-error { color: #a12a1b; }
.vansh-enquiry { background: #fff; border: 1px solid var(--vansh-line); border-top: 4px solid var(--vansh-orange); border-radius: 6px; padding: 34px; }
.vansh-enquiry h2 { font-size: 28px; margin-bottom: 20px; }

/* ---- Counters block ------------------------------------------------------------- */
.vansh-counter { padding: 6px 0 22px; }
.vansh-counter .pbmit-fid-title { margin-bottom: 4px; }


/* ==========================================================================
   v2 – header, hero, tiles, footer, focus and WCAG 2.1 AA refinements
   ========================================================================== */

/* ---- Focus: dark ring + white halo = visible on light and dark surfaces ---- */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible,
select:focus-visible, [tabindex]:focus-visible, summary:focus-visible, .accordion-button:focus-visible {
	outline: 3px solid var(--vansh-ink); outline-offset: 2px; box-shadow: 0 0 0 6px #fff;
}
.pbmit-cursor, .pbmit-cursor-text { display: none !important; }

/* ---- Header: dark info bar + white bar, one line of navigation ------------- */
.site-header .pbmit-header-overlay { position: relative; z-index: 30; }
.site-header .pbmit-pre-header-wrapper {
	display: block !important; height: auto; line-height: 1.5; padding: 9px 0; font-size: 14px;
	background: var(--vansh-ink); color: #fff; backdrop-filter: none !important;
}
.vansh-topbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2px 28px; }
.vansh-topbar p, .vansh-topbar ul { margin: 0; }
.vansh-topbar__sep { margin: 0 12px; opacity: .6; }
.vansh-nowrap { white-space: nowrap; }
.vansh-topbar__contact { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 2px 26px; }
.vansh-topbar__contact i { margin-right: 8px; color: var(--vansh-orange); }
.vansh-topbar a { color: #fff; text-decoration: none; }
.vansh-topbar a:hover { text-decoration: underline; }
@media (max-width: 767px) { .vansh-topbar__contact { display: none; } .vansh-topbar { font-size: 13px; } .vansh-topbar__sep { display: none; } .vansh-topbar__reg span.vansh-nowrap::after { content: ""; } }
.header-style-1 .pbmit-main-header-area { background: #fff; box-shadow: 0 1px 0 var(--vansh-line); }
.site-header .site-title { height: 84px; }
.site-header .site-branding img { max-height: 64px; width: auto; }
.site-header .pbmit-header-content { min-height: 84px; flex-wrap: nowrap; }

@media (min-width: 1201px) {
	.site-header .pbmit-main-header-area > .container-fluid,
	.header-style-1 .pbmit-main-header-area > .container-fluid { padding: 0 28px; }
	.site-header .site-navigation ul.navigation { display: flex; flex-wrap: nowrap; margin: 0; padding: 0; }
	.site-header .main-menu .navigation > li { float: none; margin: 0 !important; }
	.site-header .site-navigation ul.navigation > li > a {
		display: block; height: 84px; line-height: 84px; padding: 0 11px; white-space: nowrap;
		font-size: 15px; font-weight: 600; letter-spacing: 0; text-transform: none;
		color: var(--vansh-ink); font-family: var(--pbmit-heading-typography-font-family);
	}
	.site-header .site-navigation ul.navigation > li > a::after { display: none; }
	.site-header .site-navigation ul.navigation > li > a:hover { color: var(--vansh-orange-ink); }
	.site-header .site-navigation ul.navigation > li.active > a { box-shadow: inset 0 -4px 0 var(--vansh-orange); color: var(--vansh-ink); }
	.site-header .navbar-toggler, .site-header .closepanel { display: none; }
}
@media (min-width: 1500px) { .site-header .site-navigation ul.navigation > li > a { padding: 0 14px; font-size: 16px; } }

/* mobile / tablet menu: closed panel must not be reachable by keyboard */
@media (max-width: 1200px) {
	.site-header .pbmit-menu-wrap { visibility: hidden; transition: right .4s ease, visibility 0s linear .4s; }
	header.active .pbmit-menu-wrap { visibility: visible; transition: right .4s ease, visibility 0s; }
	.site-header .navbar-toggler { background: transparent; border: 0; min-width: 44px; min-height: 44px; }
	.closepanel { background: transparent; border: 0; padding: 0; cursor: pointer; }
	.site-header .site-navigation ul.navigation > li > a { color: var(--vansh-ink); }
	.site-header .site-navigation ul.navigation > li.active > a { box-shadow: inset 4px 0 0 var(--vansh-orange); padding-left: 12px; }
	.site-header .pbmit-header-content { min-height: 76px; }
	.site-header .site-title { height: 76px; }
	.site-header .site-branding img { max-height: 56px; }
}

/* ---- Title bar (inner pages) ---------------------------------------------- */
.pbmit-title-bar-wrapper { background-color: var(--vansh-ink); }
.pbmit-title-bar-wrapper, .pbmit-title-bar-content { min-height: 260px !important; }
.pbmit-title-bar-wrapper::after { opacity: 1; background: linear-gradient(90deg, rgba(23,17,12,.93) 0%, rgba(23,17,12,.85) 60%, rgba(23,17,12,.7) 100%); }
.pbmit-title-bar-content { display: flex; align-items: center; }
.pbmit-title-bar-content-inner { padding: 56px 0; }
.pbmit-title-bar-wrapper .pbmit-tbar-title { color: #fff; font-size: clamp(32px, 5vw, 56px); line-height: 1.15; max-width: 22ch; }
.pbmit-title-bar-wrapper .pbmit-breadcrumb, .pbmit-title-bar-wrapper .pbmit-breadcrumb a, .pbmit-title-bar-wrapper .pbmit-breadcrumb span { color: #fff; }

/* ---- Hero ---------------------------------------------------------------------- */
.pbmit-slider-one .pbmit-slider-item {
	padding: 120px 0 150px;
	background: linear-gradient(90deg, rgba(23,17,12,.9) 0%, rgba(23,17,12,.75) 55%, rgba(23,17,12,.5) 100%);
}
.pbmit-slider-one .pbmit-slider-item .pbmit-title { font-size: clamp(34px, 5.2vw, 68px); line-height: 1.12; }
.pbmit-slider-one .pbmit-slider-content .pbmit-desc { padding-left: 0; padding-top: 22px; max-width: 54ch; font-size: 18px; line-height: 1.6; }
.pbmit-slider-one .pbmit-slider-content .pbmit-desc::before { display: none; }
.pbmit-slider-one .pbmit-slider-item .pbmit-sub-title { background-color: rgba(23,17,12,.75); backdrop-filter: none; color: #fff; padding: 4px 16px; border-radius: 40px; display: inline-block; }
@media (max-width: 767px) { .pbmit-slider-one .pbmit-slider-item { padding: 70px 0 90px; } }

/* ---- Subtitle pills (now <p>, not headings) ----------------------------------------- */
.vansh-section--dark .pbmit-subtitle { background: rgba(255,255,255,.14); color: #fff; }

/* ---- Four tiles under the hero: equal height ------------------------------------------ */
.pbmit-multi-icon-box-hover-effect .swiper-wrapper { align-items: stretch; }
.pbmit-multi-icon-box-hover-effect .swiper-slide { height: auto; display: flex; }
.pbmit-miconheading-style-1 .pbmit-ihbox-style-1 { flex: 1 1 auto; display: flex; flex-direction: column; padding: 44px 40px; width: 100%; }
.pbmit-ihbox-style-1 .pbmit-ihbox-contents { display: flex; flex-direction: column; flex: 1 1 auto; }
.pbmit-ihbox-style-1 .pbmit-element-subtitle { margin-bottom: 34px; color: var(--vansh-body); }
.pbmit-ihbox-style-1 .pbmit-element-title { font-size: 26px; line-height: 34px; display: block; overflow: visible; -webkit-line-clamp: unset; min-height: 68px; }
.pbmit-ihbox-style-1 .pbmit-heading-desc { flex: 1 1 auto; padding-top: 12px; }
.pbmit-ihbox-style-1 .pbmit-ihbox-btn { top: -14px; right: -12px; }
.pbmit-ihbox-style-1 .pbmit-ihbox-btn a { display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; }
.pbmit-ihbox-style-1 .pbmit-ihbox-btn a svg { height: 14px; }

/* ---- Counters (label then number, no heading tags) ---------------------------------------- */
.pbmit-fid-title { font-family: var(--pbmit-heading-typography-font-family); font-weight: 600; color: var(--vansh-body); }

/* ---- Text links must not rely on colour alone ------------------------------------------------ */
.vansh-prose a, .vansh-legal a, .list-unstyled a, .pbmit-heading-desc a, .vansh-officer a,
.vansh-footer a, .vansh-topbar a:hover { text-decoration: underline; text-underline-offset: 3px; }
.vansh-doc, .vansh-social, .pbmit-btn { text-decoration: none !important; }

/* ---- Forms: visible borders (3:1), clear errors ------------------------------------------------ */
.vansh-form .form-control { border: 1px solid #7A6E63 !important; border-radius: 4px; background: #fff; padding: 12px 14px; color: var(--vansh-ink); margin-bottom: 18px; }
.vansh-form .form-control[aria-invalid="true"] { border: 2px solid #A12A1B !important; margin-bottom: 6px; }
.vansh-form .field-error { color: #A12A1B; font-weight: 600; font-size: 15px; margin: 0 0 16px; }
.vansh-form-note { font-size: 15px; margin-bottom: 20px; }
.vansh-form .req { color: #A12A1B; margin-left: 2px; }
.vansh-form .form-status.is-error { color: #A12A1B; }

/* ---- Registration card (real text) ------------------------------------------------------------------ */
.vansh-reg dl { margin: 0; display: grid; gap: 4px 0; }
.vansh-reg dt { font-weight: 700; color: var(--vansh-ink); margin-top: 12px; }
.vansh-reg dt:first-child { margin-top: 0; }
.vansh-reg dd { margin: 0; }

/* ---- Responsive grids that must not force horizontal scroll at 320px (WCAG 1.4.10) ------------------ */
.vansh-docs { grid-template-columns: repeat(auto-fill, minmax(min(290px, 100%), 1fr)); }
img, iframe, svg { max-width: 100%; }

/* ---- Footer ------------------------------------------------------------------------------------------ */
.site-footer.vansh-footer { background: var(--vansh-ink) none; color: #E9E2DA; padding: 72px 0 0; }
.vansh-footer__grid { display: grid; grid-template-columns: 1.25fr .9fr 1.25fr 1fr; gap: 48px 40px; padding-bottom: 56px; align-items: start; }
@media (max-width: 991px) { .vansh-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 575px) { .vansh-footer__grid { grid-template-columns: 1fr; gap: 36px; } .site-footer.vansh-footer { padding-top: 52px; } }
.vansh-footer__brand img { max-width: 190px; width: 100%; height: auto; display: block; margin-bottom: 26px; }
.vansh-footer__reg { list-style: none; margin: 0; padding: 0; }
.vansh-footer__reg li { margin: 0 0 16px; padding-left: 14px; border-left: 3px solid var(--vansh-orange); }
.vansh-footer__reg strong { display: block; color: #fff; font-weight: 600; line-height: 1.4; }
.vansh-footer__reg span { display: block; font-size: 15px; }
.vansh-footer .widget-title { font-size: 18px; line-height: 1.4; margin: 0 0 20px; color: var(--vansh-orange); font-weight: 700; text-transform: none; }
.vansh-footer__legal-title { margin-top: 38px !important; }
.vansh-footer__list { list-style: none; margin: 0; padding: 0; }
.vansh-footer__list li { margin: 0 0 11px; }
.vansh-footer a { color: #fff; }
.vansh-footer a:hover { color: var(--vansh-orange); }
.vansh-footer__address { font-style: normal; margin: 0; }
.vansh-footer__address p { margin: 0 0 14px; }
.vansh-social { width: 52px; height: 52px; border-radius: 50%; background: var(--vansh-orange); color: var(--vansh-ink) !important; display: inline-flex; align-items: center; justify-content: center; font-size: 26px; transition: background-color .25s ease; }
.vansh-social:hover { background: #fff; color: var(--vansh-ink) !important; }
.vansh-footer__bottom { border-top: 1px solid rgba(255,255,255,.22); padding: 24px 0; font-size: 14px; }
.vansh-footer__bottom p { margin: 0; }

/* template sets these with higher specificity and translucent colours */
.pbminfotech-ele-fid-style-7 .pbmit-fid-title { color: var(--vansh-body); }

/* ---- Footer rework: full-width brand band + three columns ------------------ */
.vansh-footer__top { display: flex; align-items: center; gap: 28px 56px; flex-wrap: wrap; padding-bottom: 40px; border-bottom: 1px solid rgba(255,255,255,.22); }
.vansh-footer__logo { display: block; flex: 0 0 auto; }
.vansh-footer__logo img { width: 150px; height: auto; display: block; }
.vansh-footer__top .vansh-footer__reg { display: flex; flex-wrap: wrap; gap: 18px 44px; flex: 1 1 320px; margin: 0; }
.vansh-footer__top .vansh-footer__reg li { margin: 0; }
.vansh-footer__top .vansh-social { margin-left: auto; }
.vansh-footer__grid { grid-template-columns: 1.1fr 1.3fr 1fr; padding: 48px 0 52px; }
.vansh-footer__list--cols { columns: 2; column-gap: 32px; }
.vansh-footer__list--cols li { break-inside: avoid; }
@media (max-width: 991px) { .vansh-footer__grid { grid-template-columns: 1fr 1fr; } .vansh-footer__grid > :first-child { grid-column: 1 / -1; } }
@media (max-width: 575px) {
	.vansh-footer__grid { grid-template-columns: 1fr; }
	.vansh-footer__top .vansh-social { margin-left: 0; }
	.vansh-footer__list--cols { columns: 1; }
}

/* Template draws a full-size ::before layer over the footer that swallowed clicks on the links */
.site-footer.vansh-footer::before, .site-footer.vansh-footer::after { display: none !important; content: none !important; }
.site-footer.vansh-footer { background-image: none; }
.site-footer.vansh-footer > .container { position: relative; z-index: 2; }
.pbmit-progress-wrap { z-index: 50; }
