/*
 * VYBE Journal Theme Kit – front-end components (Scholar Light).
 * Works with any theme; colours follow the Elementor global colours when set.
 */

/* Declared on body too: Elementor sets its global colours on the body
   (.elementor-kit-N), and a variable resolves where it is declared. */
:root, body {
	--vjk-ink: var(--e-global-color-primary, #14365d);
	--vjk-saffron: var(--e-global-color-secondary, #8c2f39); /* the journal's accent */
	--vjk-text: var(--e-global-color-text, #1e2430);
	--vjk-leaf: var(--e-global-color-accent, #1d5fa8);
	--vjk-gold: var(--e-global-color-aygold, #c9a227);
	--vjk-gold-soft: var(--e-global-color-aygoldsoft, #ebd9a0);
	--vjk-gold-deep: var(--vj-gold-deep, #8a6d12);
	--vjk-cream: var(--e-global-color-aycream, #f4f6f9);
	--vjk-sand: var(--e-global-color-aysand, #e9edf3);
	--vjk-peach: var(--e-global-color-aypeach, #eef3fa);
	--vjk-line: var(--e-global-color-ayline, #d9dfe8);
	--vjk-muted: var(--e-global-color-aymuted, #5b6474);
	--vjk-mist: var(--e-global-color-aymist, #d9e2ef);
	--vjk-ink2: var(--e-global-color-ayink2, #0f2747);
	--vjk-paper: var(--e-global-color-aywhite, #ffffff);
	--vjk-serif: "Journal Serif", "Noto Serif", "Noto Serif Tamil", Georgia, serif;
	--vjk-sans: "Journal Sans", "Noto Sans", "Noto Sans Tamil", system-ui, sans-serif;
	--vjk-radius: var(--vj-radius-card, 12px);
	--vjk-shadow: 0 14px 34px -18px rgba(15, 39, 71, .3);
}

/* ---------- Type scale ----------
 * Kit text sizes come from these variables. The VYBE Journal theme fills them
 * from Astra's typography settings (Customizer → Global → Typography: body,
 * H1–H6; Global → Buttons), per device, so changing a size there changes
 * every Journal Kit page. Without the theme, these defaults apply.
 * Widgets carry the design size as a class (vjk-fs-28 = 28px at 17px body
 * text); a size set on a widget in Elementor still wins.
 */
:root {
	--vjk-fs-body: 17px;
	--vjk-fs-h1: 36px;
	--vjk-fs-h2: 28px;
	--vjk-fs-h3: 22px;
	--vjk-fs-h4: 20px;
	--vjk-fs-h5: 18px;
	--vjk-fs-h6: 16px;
	--vjk-fs-button: 16px;
}
@media (max-width: 1024px) {
	:root { --vjk-fs-h1: 30px; --vjk-fs-h2: 25px; --vjk-fs-h3: 20px; --vjk-fs-h4: 18px; }
}
@media (max-width: 767px) {
	:root { --vjk-fs-body: 16px; --vjk-fs-h1: 30px; --vjk-fs-h2: 22px; --vjk-fs-h3: 19px; --vjk-fs-h4: 17px; }
}
.vjk-fs-30 { --vjk-fs: calc(var(--vjk-fs-h2) * 1.0714); }
.vjk-fs-28 { --vjk-fs: var(--vjk-fs-h2); }
.vjk-fs-26 { --vjk-fs: calc(var(--vjk-fs-h2) * .9286); }
.vjk-fs-24 { --vjk-fs: calc(var(--vjk-fs-h3) * 1.0909); }
.vjk-fs-22 { --vjk-fs: var(--vjk-fs-h3); }
.vjk-fs-20 { --vjk-fs: var(--vjk-fs-h4); }
.vjk-fs-18 { --vjk-fs: var(--vjk-fs-h5); }
.vjk-fs-19 { --vjk-fs: calc(var(--vjk-fs-body) * 1.1176); }
.vjk-fs-17 { --vjk-fs: var(--vjk-fs-body); }
.vjk-fs-16 { --vjk-fs: calc(var(--vjk-fs-body) * .9412); }
.vjk-fs-15 { --vjk-fs: calc(var(--vjk-fs-body) * .8824); }
.vjk-fs-14 { --vjk-fs: calc(var(--vjk-fs-body) * .8235); }
[class*="vjk-fs-"] .elementor-heading-title { font-size: var(--vjk-fs); line-height: 1.3; }
[class*="vjk-fs-"].elementor-widget-text-editor,
[class*="vjk-fs-"] .elementor-icon-list-text { font-size: var(--vjk-fs); }
.vjk-fw-700 .elementor-heading-title { font-weight: 700; }
.vjk-fw-600 .elementor-heading-title { font-weight: 600; }
.vjk-list .elementor-icon-list-text { line-height: 1.5; }
.vjk-iconbox .elementor-icon-box-title { font-size: var(--vjk-fs-h4); line-height: 1.3; }
.vjk-iconbox .elementor-icon-box-description { font-size: calc(var(--vjk-fs-body) * .9412); line-height: 1.6; }
.vjk-faq .elementor-tab-title { font-size: var(--vjk-fs-body); }
.elementor-widget-button.vjk-btn .elementor-button { font-size: var(--vjk-fs-button); }

/* ---------- Sections ---------- */

/* ---------- Section spacing ----------
 * Journal Kit sections get their vertical padding from vjk-pt-N / vjk-pb-N
 * (N in px, steps of 8), scaled by --vjk-space (the theme's "Section spacing",
 * 1 = as designed). Tablets get 80% (at least 40px) and phones 62% (at least
 * 32px) unless vjk-ptm-N / vjk-pbm-N set the phone value. Padding set on a
 * section in Elementor overrides all of this.
 */
.vjk-sec {
	--vjk-pt: 72px;
	--vjk-pb: 72px;
	padding-top: calc(var(--vjk-pt) * var(--vjk-space, 1));
	padding-bottom: calc(var(--vjk-pb) * var(--vjk-space, 1));
}
@media (max-width: 1024px) {
	.vjk-sec {
		padding-top: calc(var(--vjk-ptt, max(40px, var(--vjk-pt) * .8)) * var(--vjk-space, 1));
		padding-bottom: calc(var(--vjk-pbt, max(40px, var(--vjk-pb) * .8)) * var(--vjk-space, 1));
	}
}
@media (max-width: 767px) {
	.vjk-sec {
		padding-top: calc(var(--vjk-ptm, max(32px, var(--vjk-pt) * .62)) * var(--vjk-space, 1));
		padding-bottom: calc(var(--vjk-pbm, max(32px, var(--vjk-pb) * .62)) * var(--vjk-space, 1));
	}
}
.vjk-pt-0 { --vjk-pt: 0px; --vjk-ptt: 0px; --vjk-ptm: 0px; }
.vjk-pb-0 { --vjk-pb: 0px; --vjk-pbt: 0px; --vjk-pbm: 0px; }
.vjk-pt-8 { --vjk-pt: 8px; }
.vjk-pb-8 { --vjk-pb: 8px; }
.vjk-pt-16 { --vjk-pt: 16px; }
.vjk-pb-16 { --vjk-pb: 16px; }
.vjk-pt-24 { --vjk-pt: 24px; }
.vjk-pb-24 { --vjk-pb: 24px; }
.vjk-pt-32 { --vjk-pt: 32px; }
.vjk-pb-32 { --vjk-pb: 32px; }
.vjk-pt-40 { --vjk-pt: 40px; }
.vjk-pb-40 { --vjk-pb: 40px; }
.vjk-pt-48 { --vjk-pt: 48px; }
.vjk-pb-48 { --vjk-pb: 48px; }
.vjk-pt-56 { --vjk-pt: 56px; }
.vjk-pb-56 { --vjk-pb: 56px; }
.vjk-pt-64 { --vjk-pt: 64px; }
.vjk-pb-64 { --vjk-pb: 64px; }
.vjk-pt-72 { --vjk-pt: 72px; }
.vjk-pb-72 { --vjk-pb: 72px; }
.vjk-pt-80 { --vjk-pt: 80px; }
.vjk-pb-80 { --vjk-pb: 80px; }
.vjk-pt-88 { --vjk-pt: 88px; }
.vjk-pb-88 { --vjk-pb: 88px; }
.vjk-pt-96 { --vjk-pt: 96px; }
.vjk-pb-96 { --vjk-pb: 96px; }
.vjk-pt-104 { --vjk-pt: 104px; }
.vjk-pb-104 { --vjk-pb: 104px; }
.vjk-pt-112 { --vjk-pt: 112px; }
.vjk-pb-112 { --vjk-pb: 112px; }
.vjk-pt-120 { --vjk-pt: 120px; }
.vjk-pb-120 { --vjk-pb: 120px; }
.vjk-pt-128 { --vjk-pt: 128px; }
.vjk-pb-128 { --vjk-pb: 128px; }
.vjk-pt-136 { --vjk-pt: 136px; }
.vjk-pb-136 { --vjk-pb: 136px; }
.vjk-pt-144 { --vjk-pt: 144px; }
.vjk-pb-144 { --vjk-pb: 144px; }
.vjk-pt-152 { --vjk-pt: 152px; }
.vjk-pb-152 { --vjk-pb: 152px; }
.vjk-pt-160 { --vjk-pt: 160px; }
.vjk-pb-160 { --vjk-pb: 160px; }
.vjk-ptm-0 { --vjk-ptm: 0px; }
.vjk-pbm-0 { --vjk-pbm: 0px; }
.vjk-ptm-8 { --vjk-ptm: 8px; }
.vjk-pbm-8 { --vjk-pbm: 8px; }
.vjk-ptm-16 { --vjk-ptm: 16px; }
.vjk-pbm-16 { --vjk-pbm: 16px; }
.vjk-ptm-24 { --vjk-ptm: 24px; }
.vjk-pbm-24 { --vjk-pbm: 24px; }
.vjk-ptm-32 { --vjk-ptm: 32px; }
.vjk-pbm-32 { --vjk-pbm: 32px; }
.vjk-ptm-40 { --vjk-ptm: 40px; }
.vjk-pbm-40 { --vjk-pbm: 40px; }
.vjk-ptm-48 { --vjk-ptm: 48px; }
.vjk-pbm-48 { --vjk-pbm: 48px; }
.vjk-ptm-56 { --vjk-ptm: 56px; }
.vjk-pbm-56 { --vjk-pbm: 56px; }
.vjk-ptm-64 { --vjk-ptm: 64px; }
.vjk-pbm-64 { --vjk-pbm: 64px; }
.vjk-ptm-72 { --vjk-ptm: 72px; }
.vjk-pbm-72 { --vjk-pbm: 72px; }
.vjk-ptm-80 { --vjk-ptm: 80px; }
.vjk-pbm-80 { --vjk-pbm: 80px; }
.vjk-ptm-88 { --vjk-ptm: 88px; }
.vjk-pbm-88 { --vjk-pbm: 88px; }
.vjk-ptm-96 { --vjk-ptm: 96px; }
.vjk-pbm-96 { --vjk-pbm: 96px; }
.vjk-ptm-104 { --vjk-ptm: 104px; }
.vjk-pbm-104 { --vjk-pbm: 104px; }
.vjk-ptm-112 { --vjk-ptm: 112px; }
.vjk-pbm-112 { --vjk-pbm: 112px; }
.vjk-ptm-120 { --vjk-ptm: 120px; }
.vjk-pbm-120 { --vjk-pbm: 120px; }
.vjk-ptm-128 { --vjk-ptm: 128px; }
.vjk-pbm-128 { --vjk-pbm: 128px; }
.vjk-ptm-136 { --vjk-ptm: 136px; }
.vjk-pbm-136 { --vjk-pbm: 136px; }
.vjk-ptm-144 { --vjk-ptm: 144px; }
.vjk-pbm-144 { --vjk-pbm: 144px; }
.vjk-ptm-152 { --vjk-ptm: 152px; }
.vjk-pbm-152 { --vjk-pbm: 152px; }
.vjk-ptm-160 { --vjk-ptm: 160px; }
.vjk-pbm-160 { --vjk-pbm: 160px; }

/* Cards: inner space and corners (theme: "Card padding", "Corner radius"). */
body .elementor-column.vjk-card > .elementor-widget-wrap { padding: var(--vjk-card-pad, 28px); border-radius: var(--vjk-radius); }



.vjk-sec--hero {
	position: relative;
	overflow: hidden;
	border-bottom: 4px solid var(--vjk-gold);
}
.vjk-sec--hero::before {
	/* kolam-like dot lattice */
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		radial-gradient(circle at 1px 1px, rgba(201, 162, 39, .28) 1.2px, transparent 1.6px),
		radial-gradient(circle at 1px 1px, rgba(201, 162, 39, .14) 1px, transparent 1.4px);
	background-size: 28px 28px, 14px 14px;
	background-position: 0 0, 7px 7px;
	mask-image: linear-gradient(110deg, transparent 35%, #000 85%);
	-webkit-mask-image: linear-gradient(110deg, transparent 35%, #000 85%);
	pointer-events: none;
}
.vjk-sec--hero > .elementor-container { position: relative; z-index: 1; }
.vjk-sec--ink { position: relative; }

.vjk-eyebrow .elementor-heading-title {
	text-transform: uppercase;
	letter-spacing: .14em;
	font-size: .8rem !important;
}
.vjk-ta .elementor-heading-title, .vjk-ta { line-height: 1.6; }
.vjk-lead p { max-width: 760px; }
.vjk-hero .vjk-lead p { font-size: 1.15rem; }
.vjk-intro p { max-width: 820px; color: var(--vjk-muted); }
.vjk-rule { margin-bottom: 6px; }

/* Hero aside ("Journal at a glance") */
.vjk-hero__aside > .elementor-widget-wrap {
	background: rgba(255, 255, 255, .06);
	border: 1px solid rgba(201, 162, 39, .45);
	border-radius: var(--vjk-radius);
	padding: 26px 28px !important;
	backdrop-filter: blur(2px);
}
.vjk-hero__aside .elementor-icon-list-item a { color: inherit; }
.vjk-hero--split .vjk-hero__aside > .elementor-widget-wrap { height: auto; align-self: center; }

/* Title → Tamil line → gold rule sit closer together */
.elementor-widget-heading + .elementor-widget-heading.vjk-ta { margin-top: -10px; }
.elementor-widget-heading.vjk-ta + .vjk-rule, .elementor-widget-heading + .vjk-rule { margin-top: -6px; }

/* Card rows line up with the section heading */
.elementor-widget-wrap > .vjk-cards.elementor-inner-section { margin-left: -10px; margin-right: -10px; width: calc(100% + 20px); max-width: none; }

/* Buttons inline in a row */
.vjk-btn .elementor-button { box-shadow: 0 6px 16px -10px rgba(0, 0, 0, .5); transition: transform .15s, background-color .2s, color .2s; }
.vjk-btn .elementor-button:hover { transform: translateY(-1px); }
/* Buttons placed side by side: same top line, same spacing */
.elementor-widget-wrap > .vjk-btn.elementor-widget__width-auto { align-self: flex-start; margin-block-end: 12px; }
.vjk-cta__actions > .elementor-widget-wrap { justify-content: flex-end; align-content: center; }
@media (max-width: 1024px) {
	.vjk-cta__actions > .elementor-widget-wrap { justify-content: flex-start; }
}

/* Cards (columns) */
.vjk-card > .elementor-widget-wrap { transition: box-shadow .2s, transform .2s; }
.vjk-card:hover > .elementor-widget-wrap { box-shadow: var(--vjk-shadow); }
.vjk-cards > .elementor-container > .elementor-column { display: flex; }
.vjk-iconbox .elementor-icon-box-title a { color: inherit; text-decoration: none; }
.vjk-iconbox .elementor-icon-box-title a:hover { color: var(--vjk-saffron); }

@media (max-width: 1024px) {
	.vjk-empty { display: none !important; }
}

/* Sticky side card on long pages */
@media (min-width: 1025px) {
	.vjk-sticky > .elementor-widget-wrap { position: sticky; top: 96px; align-self: flex-start; }
	.vjk-sticky { align-self: flex-start; }
}
.vjk-aside .elementor-icon-list-text strong { color: var(--vjk-ink); }
.vjk-reviewed p { margin: 8px 0 0; font-size: .85rem; }

/* Long-form text */
.vjk-prose .elementor-widget-heading:not(:first-child) { margin-top: 18px; }
.vjk-prose ul, .vjk-prose ol { padding-left: 1.3em; }
.vjk-prose li { margin-bottom: .45em; }
.vjk-prose li::marker { color: var(--vjk-saffron); }
.vjk-prose a, .vjk-aside a { text-underline-offset: .18em; }

/* Facts table */
.vjk-facts { width: 100%; border-collapse: collapse; font-size: .95rem; margin: 0; }
.vjk-facts th, .vjk-facts td { padding: 9px 10px; border-bottom: 1px solid var(--vjk-line); vertical-align: top; text-align: left; border-left: 0; border-right: 0; border-top: 0; }
.vjk-facts th { width: 38%; color: var(--vjk-ink); font-weight: 700; background: transparent; }
.vjk-facts tr:last-child th, .vjk-facts tr:last-child td { border-bottom: 0; }
/* APC breakdown */
.vjk-fees { margin: 4px 0 8px; border: 1px solid var(--vjk-line); border-radius: var(--vjk-radius); overflow: hidden; border-collapse: separate; border-spacing: 0; }
table.vjk-fees thead th { background: var(--vjk-cream, #FCF8F1); font-size: .85rem; letter-spacing: .04em; text-transform: uppercase; color: var(--vjk-muted); }
.vjk-fees th, .vjk-fees td { padding: 11px 14px; }
.vjk-fees td:last-child, .vjk-fees thead th:last-child { text-align: right; white-space: nowrap; width: 30%; }
table.vjk-fees tr.vjk-fees__total > th[scope], table.vjk-fees tr.vjk-fees__total > td { background: var(--vjk-ink); color: #fff; border-bottom: 0; width: auto; }
.vjk-fees .vjk-fees__total td strong { color: #fff; font-size: 1.15rem; }
:where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) .vjk-fees .vjk-fees__total .l-2 { color: var(--vjk-mist) !important; }
.vjk-fees .vjk-fees__optional td { color: var(--vjk-muted); font-size: .92rem; border-top: 1px dashed var(--vjk-line); }
.vjk-fees tbody tr:last-child td { border-bottom: 0; }

/* FAQ */
.vjk-faq .elementor-tab-title { border-radius: 10px; }
.vjk-faq .elementor-toggle-item { border-radius: 10px; overflow: hidden; }

/* ---------- OJS: issue ---------- */

.vjk-issue__head {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 32px;
	align-items: start;
}
.vjk-issue--full .vjk-issue__head { margin-bottom: 32px; padding-bottom: 28px; border-bottom: 1px solid var(--vjk-line); }
.vjk-issue__cover { display: block; border-radius: 6px; overflow: hidden; box-shadow: var(--vjk-shadow); line-height: 0; }
.vjk-issue__cover img { width: 100%; height: auto; display: block; aspect-ratio: 3 / 4.25; object-fit: cover; }
.vjk-issue__label {
	margin: 0 0 4px;
	font: 700 .8rem/1.4 var(--vjk-sans);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--vjk-saffron);
}
.vjk-issue__title { margin: 0 0 6px !important; font-family: var(--vjk-serif); color: var(--vjk-ink); font-size: 1.6rem; line-height: 1.25; }
.vjk-issue__meta { margin: 0 0 12px; color: var(--vjk-muted); font-size: .92rem; }
.vjk-issue__desc { margin: 0 0 14px; }
.vjk-issue__actions { display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: center; margin: 18px 0 0; }
.vjk-btn-link { font-weight: 700; color: var(--vjk-saffron); text-decoration: none; }
.vjk-btn-link:hover { text-decoration: underline; }
.vjk-btn-link--ext { color: var(--vjk-ink); }

/* Typeset cover for issues without an image */
.vjk-cover {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	aspect-ratio: 3 / 4.25;
	padding: 18px 16px 14px;
	box-sizing: border-box;
	background:
		radial-gradient(circle at 1px 1px, rgba(201, 162, 39, .2) 1px, transparent 1.4px) 0 0 / 16px 16px,
		linear-gradient(160deg, var(--vjk-cover-a, #22355c), var(--vjk-ink) 60%, var(--vjk-ink2));
	color: #fff;
	text-align: center;
	line-height: 1.25;
	outline: 2px solid var(--vjk-gold);
	outline-offset: -8px;
}
.vjk-cover__name { font: 700 1.45rem/1.1 var(--vjk-serif); color: var(--vjk-gold); margin-top: 10px; }
.vjk-cover__sub { font: 600 .62rem/1.4 var(--vjk-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--vjk-mist); }
.vjk-cover__vol { font: 700 .95rem/1.3 var(--vjk-sans); color: #fff; margin-top: auto; }
.vjk-cover__date { font: 400 .9rem/1.3 var(--vjk-serif); color: var(--vjk-gold-soft); }
.vjk-cover__issn { font: 600 .6rem/1.2 var(--vjk-sans); letter-spacing: .06em; color: var(--vjk-mist); margin-top: 8px; }

/* Table of contents */
.vjk-toc { list-style: none; margin: 0; padding: 0; }
.vjk-toc-section + .vjk-toc-section { margin-top: 28px; }
.vjk-toc__section {
	font: 700 .85rem/1.4 var(--vjk-sans) !important;
	text-transform: uppercase;
	letter-spacing: .12em;
	color: var(--vjk-leaf) !important;
	margin: 0 0 10px !important;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--vjk-gold);
}
.vjk-art { padding: 14px 0; border-bottom: 1px solid var(--vjk-line); }
.vjk-art:last-child { border-bottom: 0; }
.vjk-art__title { margin: 0 0 4px !important; font: 700 1.08rem/1.4 var(--vjk-serif) !important; }
body .vjk-art__title a { color: var(--vjk-ink); text-decoration: none; }
body .vjk-art__title a:hover { color: var(--vjk-saffron); text-decoration: underline; }
.vjk-art__authors { margin: 0 0 4px; color: var(--vjk-muted); font-size: .95rem; }
.vjk-art__meta { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: .88rem; color: var(--vjk-muted); }
.vjk-sep { color: var(--vjk-line); }
.vjk-doi { color: var(--vjk-leaf); word-break: break-all; text-decoration: none; }
.vjk-doi:hover { text-decoration: underline; }
.vjk-art__galleys { display: inline-flex; gap: 6px; margin-left: auto; }
.vjk-galley {
	display: inline-block;
	padding: 3px 10px;
	border: 1px solid var(--vjk-saffron);
	border-radius: 999px;
	font: 700 .76rem/1.4 var(--vjk-sans);
	color: var(--vjk-saffron) !important;
	text-decoration: none;
	letter-spacing: .04em;
}
.vjk-galley:hover { background: var(--vjk-saffron); color: #fff !important; }
.vjk-toc--compact .vjk-art { padding: 10px 0; }
.vjk-toc--compact .vjk-art__title { font-size: 1rem !important; }

/* ---------- OJS: archive ---------- */

.vjk-archive__year {
	font: 700 1.4rem/1.2 var(--vjk-serif) !important;
	color: var(--vjk-ink) !important;
	margin: 36px 0 16px !important;
	display: flex;
	align-items: center;
	gap: 14px;
}
.vjk-archive__year:first-child { margin-top: 0 !important; }
.vjk-archive__year::after { content: ""; flex: 1; height: 1px; background: var(--vjk-line); }
.vjk-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 26px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.vjk-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.vjk-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.vjk-grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.vjk-grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
body .vjk-issue-card a { display: flex; flex-direction: column; gap: 4px; text-decoration: none; color: var(--vjk-text); }
.vjk-issue-card__cover { display: block; border-radius: 6px; overflow: hidden; line-height: 0; box-shadow: 0 8px 22px -14px rgba(15, 39, 71, .45); transition: transform .2s, box-shadow .2s; margin-bottom: 8px; }
.vjk-issue-card__cover img { width: 100%; height: auto; aspect-ratio: 3 / 4.25; object-fit: cover; display: block; }
.vjk-issue-card a:hover .vjk-issue-card__cover, .vjk-issue-card a:focus .vjk-issue-card__cover { transform: translateY(-3px); box-shadow: var(--vjk-shadow); }
.vjk-issue-card__label { font: 700 .95rem/1.35 var(--vjk-sans); color: var(--vjk-ink); }
.vjk-issue-card__title { font: 400 .92rem/1.4 var(--vjk-serif); color: var(--vjk-text); }
.vjk-issue-card__meta { font-size: .82rem; color: var(--vjk-muted); }
.vjk-back { margin: 0 0 18px; }
.vjk-back a { font-weight: 700; text-decoration: none; color: var(--vjk-saffron); }

/* ---------- People ---------- */

.vjk-people { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; }
.vjk-person {
	display: flex;
	gap: 16px;
	padding: 20px;
	background: #fff;
	border: 1px solid var(--vjk-line);
	border-radius: var(--vjk-radius);
}
.vjk-person__avatar {
	flex: 0 0 52px;
	height: 52px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: var(--vjk-ink);
	color: var(--vjk-gold);
	font: 700 1rem/1 var(--vjk-serif);
	letter-spacing: .04em;
	box-shadow: inset 0 0 0 2px var(--vjk-gold);
}
.vjk-person__body { min-width: 0; }
.vjk-person__body p { margin: 0 0 3px; font-size: .9rem; line-height: 1.45; }
.vjk-person__role { font: 700 .72rem/1.4 var(--vjk-sans) !important; letter-spacing: .1em; text-transform: uppercase; color: var(--vjk-saffron); }
.vjk-person__name { margin: 0 0 4px !important; font: 700 1.08rem/1.3 var(--vjk-serif) !important; color: var(--vjk-ink) !important; }
.vjk-person__qual { color: var(--vjk-muted); }
.vjk-person__loc { color: var(--vjk-muted); }
.vjk-person__links { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 6px !important; }
body .vjk-person__links a { color: var(--vjk-leaf); text-decoration: none; word-break: break-all; }
.vjk-person__links a:hover { text-decoration: underline; }
.vjk-orcid__id { display: inline-grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; background: #a6ce39; color: #fff; font: 700 9px/1 var(--vjk-sans); vertical-align: -2px; }
.vjk-people--compact { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.vjk-people--compact .vjk-person { padding: 16px; }

/* ---------- Indexing, news, stats ---------- */

.vjk-index { list-style: none; margin: 0 0 10px; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
body .vjk-index a, .vjk-index li { color: var(--vjk-ink); text-decoration: none; font-weight: 700; }
.vjk-index li { padding: 10px 16px; border: 1px solid var(--vjk-line); border-radius: 999px; background: #fff; }
.vjk-index li:hover { border-color: var(--vjk-saffron); }
.vjk-index--cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.vjk-index--cards li { border-radius: var(--vjk-radius); padding: 22px; font: 700 1.05rem/1.4 var(--vjk-serif); box-shadow: 0 6px 18px -14px rgba(15, 39, 71, .3); }

.vjk-news { list-style: none; margin: 0 0 14px; padding: 0; }
.vjk-news li { padding: 12px 0; border-bottom: 1px solid var(--vjk-line); }
.vjk-news time { display: block; font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; color: var(--vjk-saffron); font-weight: 700; }
body .vjk-news a { font: 700 1.05rem/1.4 var(--vjk-serif); color: var(--vjk-ink); text-decoration: none; }
.vjk-news a:hover { text-decoration: underline; }
.vjk-news p { margin: 4px 0 0; color: var(--vjk-muted); font-size: .92rem; }

.vjk-stats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; }
.vjk-stats li { padding: 18px; border-radius: var(--vjk-radius); background: var(--vjk-cream); border: 1px solid var(--vjk-line); text-align: center; }
.vjk-stats strong { display: block; font: 700 2rem/1.1 var(--vjk-serif); color: var(--vjk-ink); }
.vjk-stats span { font-size: .85rem; color: var(--vjk-muted); }

.vjk-muted { color: var(--vjk-muted); font-size: .92rem; }
.vjk-notice { padding: 18px 20px; border: 1px dashed var(--vjk-line); border-radius: var(--vjk-radius); background: var(--vjk-cream); }
.vjk-notice p { margin: 0 0 6px; }
.vjk-notice__admin { font-size: .85rem; color: var(--vjk-saffron); }
.vjk-link { font-weight: 700; color: var(--vjk-saffron); }

/* Quick Submit forms inside kit pages */
.vjk-form .elementor-shortcode { font-size: calc(var(--vjk-fs-body) * .9412); }

/* ---------- Responsive ---------- */

@media (max-width: 1024px) {
	.vjk-grid, .vjk-grid--5, .vjk-grid--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.vjk-issue__head { grid-template-columns: 180px 1fr; gap: 24px; }
}
@media (max-width: 767px) {
	.vjk-grid, .vjk-grid--3, .vjk-grid--4, .vjk-grid--5, .vjk-grid--6 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
	.vjk-issue__head { grid-template-columns: 1fr; }
	.vjk-issue__cover { max-width: 200px; }
	.vjk-issue__title { font-size: 1.35rem; }
	.vjk-art__galleys { margin-left: 0; }
	.vjk-hero__aside > .elementor-widget-wrap { padding: 20px !important; }
	.vjk-person { padding: 16px; }
}
@media (prefers-reduced-motion: reduce) {
	.vjk-issue-card__cover, .vjk-btn .elementor-button, .vjk-card > .elementor-widget-wrap { transition: none; }
}
@media print {
	.vjk-sec--hero::before { display: none; }
	.vjk-galley, .vjk-issue__actions { display: none; }
}

/* ---------- English / Tamil ----------
 * Kit text comes in pairs in the journal's language order: .l-1 is the
 * main language (Tamil for Tamilmanam and KALANJIYAM, English for
 * Aathiyoga), .l-2 the second – as spans, or divs (.l-block) for
 * paragraphs. The language switch sets html[data-vjk-lang] to
 * "en", "both" or "ta" and hides the other language. With "both" – or
 * without the switch – the main language comes first and the second follows:
 *   headings, buttons, card titles, list items: second language on a smaller line;
 *   paragraphs: the second language in a tinted block with a gold rule;
 *   meta lines, covers, dates (.l-compact): main language only.
 * Styling of .l-2 is limited to "both", so a single chosen language always
 * shows as plain main text.
 * The "both" defaults below have zero specificity, so component rules win.
 */
.l-ta, [lang="ta"] { letter-spacing: normal; text-transform: none; }
:where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) :where(.l-2:not(.l-block)) { display: block; font-size: .86em; }

:where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) .elementor-heading-title .l-2 { font-size: .6em; font-weight: 600; line-height: 1.45; margin-top: .35em; opacity: .88; }
:where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) h1.elementor-heading-title .l-2 { font-size: .55em; }
:where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) .vjk-eyebrow .elementor-heading-title .l-2 { font-size: .95em; font-weight: 600; margin-top: .25em; }
:where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) .elementor-button-text .l-2 { font-size: .8em; font-weight: 500; margin-top: 2px; opacity: .92; }
:where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) .elementor-icon-box-title .l-2 { font-size: .76em; font-weight: 600; margin-top: .3em; color: var(--vjk-saffron); }
:where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) .vjk-sec--ink .elementor-icon-box-title .l-2, :where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) .vjk-sec--hero .elementor-icon-box-title .l-2 { color: var(--vjk-gold-soft); }
:where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) .elementor-icon-box-description .l-2 { font-size: .94em; margin-top: .45em; opacity: .9; }
:where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) .elementor-icon-list-text .l-2 { font-size: .9em; opacity: .8; margin-top: 1px; }
:where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) .elementor-tab-title .l-2, :where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) .elementor-toggle-title .l-2 { font-size: .86em; font-weight: 500; opacity: .85; margin-top: 2px; }
:where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) .vjk-facts .l-2 { font-size: .9em; font-weight: 500; color: var(--vjk-muted); }
:where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) .vjk-sec--ink .vjk-facts .l-2, :where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) .vjk-sec--hero .vjk-facts .l-2 { color: var(--vjk-mist); }

/* Paragraphs: Tamil in a tinted block under the English. */
:where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) .l-2.l-block {
	margin: .2em 0 1.1em;
	padding: .75em 1em;
	border-left: 3px solid var(--vjk-gold);
	border-radius: 0 8px 8px 0;
	background: rgba(29, 95, 168, .06);
	font-size: .97em;
}
:where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) .l-2.l-block > :last-child, .l-block > :last-child { margin-bottom: 0; }
:where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) .l-1.l-block + .l-2.l-block { margin-top: .6em; }
:where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) .vjk-sec--hero .l-2.l-block, :where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) .vjk-sec--ink .l-2.l-block { background: rgba(255, 255, 255, .06); }
:where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) .vjk-faq .elementor-tab-content .l-2.l-block { background: transparent; padding-block: .2em; }

/* Tamil block as wide as the English text above it. */
.vjk-intro .l-block, .vjk-lead .l-block { max-width: 820px; }

/* Inline "English / தமிழ்" where a second line would look odd. */
:where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) :is(.vjk-person__role, .vjk-toc__section, .vjk-archive__year) .l-2 { display: inline; font-size: 1em; }
:where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) :is(.vjk-person__role, .vjk-toc__section, .vjk-archive__year) .l-2::before { content: " / "; opacity: .55; }

/* No room for two lines: English only. */
:where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) :is(.l-compact, .vjk-issue__meta, .vjk-issue-card__meta, .vjk-art__meta, .vjk-cover, .vjk-news time, .vjk-issue__label, .vjk-issue-card__label, .vjk-issue__title, .vjk-issue__actions, .vjk-back, .vjk-muted, .vjk-reviewed, .vjk-stats strong) .l-2 { display: none !important; }

/* Notices and statistics: Tamil on its own line. */
:where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) .vjk-notice .l-2 { margin-top: .2em; }
:where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) .vjk-stats__label .l-2 { font-size: .95em; }


/* Tamil only: Tamil script reads larger than Latin at the same size, so large headings step down a little. */
html:not([data-vjk-lang="en"]) :is(h1, h2).elementor-heading-title .l-ta { font-size: .82em; line-height: 1.4; }


/* ======================================================================
 * Scholar Light
 * Page tops (hero) and bands (ink) are pale with navy text, as in the
 * VYBE Journal concept. The Kit's widgets take their colours from
 * Elementor's global colours, so inside these sections the light-on-dark
 * colours are pointed at dark ones. A theme that wants dark page tops
 * adds .vjk-dark-tops to <body>.
 * ==================================================================== */
body:not(.vjk-dark-tops) .elementor-section.vjk-sec--hero { background-color: var(--vjk-cream) !important; }
body:not(.vjk-dark-tops) .elementor-section.vjk-sec--ink { background-color: var(--vjk-peach) !important; }
body:not(.vjk-dark-tops) :is(.vjk-sec--hero, .vjk-sec--ink) {
	--e-global-color-aywhite: var(--vjk-ink);
	--e-global-color-aymist: var(--vjk-text);
	--e-global-color-aygold: var(--vjk-saffron);
	--e-global-color-aygoldsoft: var(--vjk-gold-deep);
	--e-global-color-ayink2: var(--vjk-paper); /* cards on bands: white */
	--vjk-mist: var(--vjk-text);
	--vjk-gold-soft: var(--vjk-gold-deep);
	color: var(--vjk-text);
}
body:not(.vjk-dark-tops) .vjk-sec--hero { border-bottom: 3px solid var(--vjk-gold); }
body:not(.vjk-dark-tops) .vjk-sec--hero::before { opacity: .6; }
body:not(.vjk-dark-tops) .vjk-sec--hero .vjk-rule .elementor-divider-separator { border-color: var(--vjk-gold) !important; }
body:not(.vjk-dark-tops) .vjk-hero__aside > .elementor-widget-wrap { background: var(--vjk-paper); border-color: var(--vjk-line); backdrop-filter: none; box-shadow: var(--vjk-shadow); }
body:not(.vjk-dark-tops) .vjk-hero__aside .elementor-heading-title { color: var(--vjk-ink) !important; }
body:not(.vjk-dark-tops) :is(.vjk-sec--hero, .vjk-sec--ink) .elementor-icon-list-item:not(:last-child)::after { border-color: var(--vjk-line) !important; }
body:not(.vjk-dark-tops) :is(.vjk-sec--hero, .vjk-sec--ink) .elementor-icon-list-icon i,
body:not(.vjk-dark-tops) :is(.vjk-sec--hero, .vjk-sec--ink) .elementor-icon-list-icon svg { color: var(--vjk-saffron) !important; fill: var(--vjk-saffron) !important; }
body:not(.vjk-dark-tops) :is(.vjk-sec--hero, .vjk-sec--ink) .elementor-icon-box-icon .elementor-icon { color: #fff !important; background-color: var(--vjk-ink) !important; }
body:not(.vjk-dark-tops) :is(.vjk-sec--hero, .vjk-sec--ink) .elementor-icon-box-icon .elementor-icon svg { fill: #fff !important; }
:where(html:not([data-vjk-lang="en"]):not([data-vjk-lang="ta"])) body:not(.vjk-dark-tops) :is(.vjk-sec--hero, .vjk-sec--ink) .l-2.l-block { background: rgba(255, 255, 255, .75); }
/* Buttons on pale tops: navy filled, accent outline */
body:not(.vjk-dark-tops) :is(.vjk-sec--hero, .vjk-sec--ink) .vjk-btn--light .elementor-button { background-color: var(--vjk-ink) !important; border-color: var(--vjk-ink) !important; color: #fff !important; }
body:not(.vjk-dark-tops) :is(.vjk-sec--hero, .vjk-sec--ink) .vjk-btn--light .elementor-button:hover,
body:not(.vjk-dark-tops) :is(.vjk-sec--hero, .vjk-sec--ink) .vjk-btn--light .elementor-button:focus { background-color: var(--vjk-ink2) !important; border-color: var(--vjk-ink2) !important; }
body:not(.vjk-dark-tops) :is(.vjk-sec--hero, .vjk-sec--ink) .vjk-btn--outline-light .elementor-button { background-color: var(--vjk-paper) !important; border-color: var(--vjk-saffron) !important; color: var(--vjk-saffron) !important; }
body:not(.vjk-dark-tops) :is(.vjk-sec--hero, .vjk-sec--ink) .vjk-btn--outline-light .elementor-button:hover,
body:not(.vjk-dark-tops) :is(.vjk-sec--hero, .vjk-sec--ink) .vjk-btn--outline-light .elementor-button:focus { background-color: var(--vjk-saffron) !important; color: #fff !important; }
body:not(.vjk-dark-tops) :is(.vjk-sec--hero, .vjk-sec--ink) .elementor-column.vjk-card > .elementor-widget-wrap { box-shadow: 0 1px 0 var(--vjk-line), var(--vjk-shadow); border: 1px solid var(--vjk-line); }
/* Cards: a thin accent edge on top, as in the concept */
body:not(.vjk-dark-tops) .vjk-grid > .elementor-container > .elementor-column > .elementor-widget-wrap:has(.elementor-widget-icon-box) { border-top: 3px solid var(--vjk-saffron); }
