/* KRSCMS Library microsite (layouts/library.blade.php)
   Mood: a calm, quiet reading room. Warm paper tones, serif headings, generous space,
   soft shadows, with the website's glowing orange (#ff8a24 → #ff6500 → #ec4e00) as the theme colour. */
.kr-library-site {
	--lib-accent: #ff6500;
	--lib-accent-2: #ff9a32;
	--lib-accent-text: #e65c00;   /* orange for text on paper */
	--lib-accent-soft: #fdf1e6;
	--lib-orange-deep: #ec4e00;          /* deep orange (bands, table headers) */
	--lib-orange: #ff6500;
	--lib-grad-orange: linear-gradient(135deg, #ff8a24 0%, #ff6500 58%, #ec4e00 100%);
	--lib-glow: 0 8px 22px rgba(255,101,0,.35);
	--lib-glow-sm: 0 0 10px rgba(255,101,0,.55);
	--lib-ink: #2b2622;
	--lib-text: #4a423b;
	--lib-muted: #857a6f;
	--lib-paper: #fbf8f3;
	--lib-parchment: #f5eee4;
	--lib-line: #ece3d7;
	--lib-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
	--lib-shadow: 0 1px 2px rgba(60,40,20,.04), 0 10px 30px rgba(60,40,20,.06);
	--lib-shadow-lg: 0 2px 4px rgba(60,40,20,.04), 0 22px 50px rgba(60,40,20,.10);
	/* faint paper grain */
	--lib-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .25 0 0 0 0 .15 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	font-family: 'DM Sans', system-ui, sans-serif;
	color: var(--lib-ink);
	background: var(--lib-paper);
}
/* Site CSS forces headings to var(--font-heading) !important; inside the library that becomes the serif. */
.kr-library-site .main, .kr-lib-header { --font-heading: var(--lib-serif); }
.kr-library-site ::selection { background: rgba(255,101,0,.18); color: var(--lib-ink); }

/* ── Header ─────────────────────────────────────────────── */
.kr-lib-header { position: sticky; top: 0; z-index: 1000; background: rgba(251,248,243,.94); backdrop-filter: saturate(140%) blur(10px); border-bottom: 1px solid var(--lib-line); }
.kr-lib-topbar { background: var(--lib-orange-deep); color: #d9cdbf; font-size: 12.5px; letter-spacing: .02em; }
.kr-lib-topbar .container { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-top: 7px; padding-bottom: 7px; }
.kr-lib-topbar a { color: #f3ebe1; text-decoration: none; font-weight: 500; transition: color .3s; }
.kr-lib-topbar a:hover { color: var(--lib-accent-2); }
.kr-lib-topbar i { margin-right: 6px; color: var(--lib-accent-2); opacity: .85; }

.kr-lib-bar .container { display: flex; align-items: center; gap: 24px; min-height: 80px; flex-wrap: wrap; }
.kr-lib-brand { display: flex; align-items: center; gap: 14px; text-decoration: none; color: var(--lib-ink); padding: 8px 0; }
.kr-lib-brand img { height: 54px; width: auto; }
.kr-lib-brand__text { display: flex; flex-direction: column; line-height: 1.1; border-left: 1px solid var(--lib-line); padding-left: 14px; }
.kr-lib-brand__text strong { font-family: var(--lib-serif); font-size: 25px; font-weight: 700; color: var(--lib-ink); letter-spacing: .01em; }
.kr-lib-brand__text small { font-size: 11.5px; color: var(--lib-muted); letter-spacing: .16em; text-transform: uppercase; margin-top: 2px; }

.kr-lib-toggle { display: none; margin-left: auto; background: transparent; border: 1px solid var(--lib-line); border-radius: 10px; width: 42px; height: 42px; font-size: 17px; color: var(--lib-ink); }

.kr-lib-nav { margin-left: auto; }
.kr-lib-nav > ul { display: flex; list-style: none; margin: 0; padding: 0; gap: 4px; }
.kr-lib-nav__item { position: relative; }
.kr-lib-nav__item > a,
.kr-lib-nav__item > button {
	position: relative; display: flex; align-items: center; gap: 6px;
	padding: 10px 12px; border: 0; background: none;
	font: inherit; font-size: 14.5px; font-weight: 500; color: var(--lib-text);
	text-decoration: none; cursor: pointer; white-space: nowrap; transition: color .3s;
}
.kr-lib-nav__item > button i { font-size: 9px; opacity: .6; }
.kr-lib-nav__item > a::after,
.kr-lib-nav__item > button::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 4px; height: 1px; background: var(--lib-accent); transform: scaleX(0); transform-origin: left; transition: transform .45s ease; }
.kr-lib-nav__item > a:hover, .kr-lib-nav__item > button:hover, .kr-lib-nav__item.is-open > button { color: var(--lib-ink); }
.kr-lib-nav__item > a:hover::after, .kr-lib-nav__item > button:hover::after,
.kr-lib-nav__item.is-active > a::after, .kr-lib-nav__item.is-active > button::after { transform: scaleX(1); }
.kr-lib-nav__item.is-active > a, .kr-lib-nav__item.is-active > button { color: var(--lib-accent-text); }

.kr-lib-nav__dropdown {
	position: absolute; top: calc(100% + 6px); left: 0; min-width: 250px;
	list-style: none; margin: 0; padding: 10px;
	background: #fffdf9; border: 1px solid var(--lib-line); border-radius: 14px; box-shadow: var(--lib-shadow-lg);
	opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .3s ease, transform .3s ease, visibility .3s;
}
.kr-lib-nav__item.is-open > .kr-lib-nav__dropdown { opacity: 1; visibility: visible; transform: none; }
@media (min-width: 992px) {
	/* invisible bridge so the menu stays open while the pointer crosses the 6px gap */
	.kr-lib-nav__dropdown::before { content: ""; position: absolute; left: 0; right: 0; top: -8px; height: 8px; }
	.kr-lib-nav__item.has-children:hover > .kr-lib-nav__dropdown { opacity: 1; visibility: visible; transform: none; }
}
.kr-lib-nav__dropdown a { display: block; padding: 9px 12px; border-radius: 8px; color: var(--lib-text); text-decoration: none; font-size: 14px; transition: background .3s, color .3s; }
.kr-lib-nav__dropdown a:hover,
.kr-lib-nav__dropdown a[aria-current="page"] { background: var(--lib-accent-soft); color: var(--lib-accent-text); }

@media (max-width: 991.98px) {
	.kr-lib-topbar__info { display: none; }
	.kr-lib-bar .container { gap: 8px; min-height: 68px; }
	.kr-lib-brand img { height: 42px; }
	.kr-lib-brand__text strong { font-size: 21px; }
	.kr-lib-toggle { display: inline-flex; align-items: center; justify-content: center; }
	.kr-lib-nav { display: none; flex-basis: 100%; margin: 0 0 12px; }
	.kr-lib-nav.is-open { display: block; }
	.kr-lib-nav > ul { flex-direction: column; }
	.kr-lib-nav__item > a, .kr-lib-nav__item > button { width: 100%; justify-content: space-between; white-space: normal; text-align: left; }
	.kr-lib-nav__item > a::after, .kr-lib-nav__item > button::after { display: none; }
	.kr-lib-nav__item.is-active > a, .kr-lib-nav__item.is-active > button { box-shadow: inset 2px 0 0 var(--lib-accent); }
	.kr-lib-nav__dropdown { position: static; display: none; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; border-left: 1px solid var(--lib-line); border-radius: 0; margin-left: 12px; padding: 0 0 6px 8px; min-width: 0; background: transparent; }
	.kr-lib-nav__item.is-open > .kr-lib-nav__dropdown { display: block; }
}

/* ── Banners ────────────────────────────────────────────── */
/* Photos show as uploaded (no colour tint); a soft shadow keeps text readable. */
.kr-lib-hero, .kr-lib-banner { position: relative; display: flex; background-size: cover; background-position: center; color: #fff; }
.kr-lib-hero::after, .kr-lib-banner::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 48px; background: linear-gradient(180deg, rgba(251,248,243,0), var(--lib-paper)); pointer-events: none; }
.kr-lib-hero .container, .kr-lib-banner .container { position: relative; z-index: 1; }

.kr-lib-banner { align-items: flex-end; min-height: 340px; padding: 48px 0 64px; }
.kr-lib-banner h1, .kr-lib-banner__crumbs { text-shadow: 0 2px 14px rgba(0,0,0,.6), 0 1px 3px rgba(0,0,0,.45); }
.kr-lib-banner h1 { color: #fff; font-family: var(--lib-serif); font-size: clamp(34px, 5vw, 56px); font-weight: 600; letter-spacing: .005em; margin: 6px 0 0; }
.kr-lib-banner__crumbs { font-size: 12.5px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: #fff; display: flex; gap: 10px; }
.kr-lib-banner__crumbs a { color: #fff; text-decoration: none; opacity: .9; }
.kr-lib-banner__crumbs a:hover { opacity: 1; color: var(--lib-accent-2); }
@media (max-width: 767.98px) { .kr-lib-banner { min-height: 240px; padding: 32px 0 48px; } }

.kr-lib-hero { align-items: center; min-height: 580px; padding: 80px 0 100px; }
.kr-lib-hero__eyebrow, .kr-lib-hero h1, .kr-lib-hero p { text-shadow: 0 2px 14px rgba(0,0,0,.6), 0 1px 3px rgba(0,0,0,.45); }
.kr-lib-hero__eyebrow { display: inline-flex; align-items: center; gap: 12px; font-size: 12px; letter-spacing: .22em; text-transform: uppercase; color: #fff; font-weight: 600; }
.kr-lib-hero__eyebrow::before { content: ""; width: 36px; height: 1px; background: var(--lib-accent-2); }
.kr-lib-hero h1 { color: #fff; font-family: var(--lib-serif); font-size: clamp(42px, 7vw, 76px); font-weight: 600; margin: 14px 0 14px; line-height: 1; letter-spacing: .005em; }
.kr-lib-hero p { font-family: var(--lib-serif); font-style: italic; font-size: clamp(19px, 2.3vw, 24px); max-width: 620px; color: #fff; margin: 0; line-height: 1.45; }
@media (max-width: 991.98px) { .kr-lib-hero { min-height: 460px; } }
@media (max-width: 767.98px) { .kr-lib-hero { min-height: 380px; padding: 56px 0 72px; } }

/* ── Sections ───────────────────────────────────────────── */
html:has(.kr-library-site) { scroll-behavior: smooth; }
.kr-library-site .main section[id] { scroll-margin-top: 120px; }
@media (max-width: 991.98px) { .kr-library-site .main section[id] { scroll-margin-top: 105px; } }

.kr-lib-section { position: relative; padding: 64px 0; background: var(--lib-paper); }
.kr-lib-section--alt { background: var(--lib-grain), var(--lib-parchment); }
/* a quiet ornament between two plain paper sections: hairline · dot · hairline */
.kr-lib-section + .kr-lib-section:not(.kr-lib-section--dark):not(.kr-lib-section--alt)::before {
	content: ""; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 180px; height: 9px;
	background:
		radial-gradient(circle, var(--lib-accent) 0 2.5px, transparent 3px) center / 9px 9px no-repeat,
		linear-gradient(var(--lib-line), var(--lib-line)) left center / 76px 1px no-repeat,
		linear-gradient(var(--lib-line), var(--lib-line)) right center / 76px 1px no-repeat;
}
@media (max-width: 767.98px) { .kr-lib-section { padding: 44px 0; } }

/* Heading block: small-caps eyebrow, serif title, hairline-dot ornament */
.kr-lib-head { max-width: 720px; margin-bottom: 32px; }
.kr-lib-head--center { margin-left: auto; margin-right: auto; text-align: center; }
.kr-lib-eyebrow { display: inline-flex; align-items: center; gap: 12px; font-size: 11.5px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--lib-accent-text); margin-bottom: 14px; }
.kr-lib-eyebrow b { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; border: 1px solid rgba(255,101,0,.35); color: var(--lib-accent-text); font-size: 12px; letter-spacing: 0; }
.kr-lib-eyebrow:not(:has(> b))::before { content: ""; width: 28px; height: 1px; background: currentColor; opacity: .6; }
.kr-lib-head--center .kr-lib-eyebrow:not(:has(> b))::after { content: ""; width: 28px; height: 1px; background: currentColor; opacity: .6; }
.kr-lib-title { font-family: var(--lib-serif); font-size: clamp(34px, 4.2vw, 52px); font-weight: 600; letter-spacing: .002em; line-height: 1.08; color: var(--lib-ink); margin: 0; }
.kr-lib-title::after {
	content: ""; display: block; width: 110px; height: 9px; margin-top: 14px;
	background:
		radial-gradient(circle, var(--lib-accent) 0 2.5px, transparent 3px) 0 center / 9px 9px no-repeat,
		linear-gradient(90deg, rgba(255,101,0,.55), rgba(255,101,0,0)) 16px center / 94px 1px no-repeat;
}
.kr-lib-head--center .kr-lib-title::after {
	margin-left: auto; margin-right: auto; width: 160px;
	background:
		radial-gradient(circle, var(--lib-accent) 0 2.5px, transparent 3px) center / 9px 9px no-repeat,
		linear-gradient(90deg, rgba(255,101,0,0), rgba(255,101,0,.55)) left center / 68px 1px no-repeat,
		linear-gradient(90deg, rgba(255,101,0,.55), rgba(255,101,0,0)) right center / 68px 1px no-repeat;
}

/* Library text is justified (krscms-inline.css justifies all .main p/li). Short text in banners and in the
   small Infrastructure tiles / Services boxes stays left-aligned: justifying one or two lines leaves wide gaps.
   Same :not() chain so these win on specificity while inline alignment from the editor still applies. */
.kr-library-site .main p:not(.text-center):not(.text-end):not(.text-right),
.kr-library-site .main li:not(.text-center):not(.text-end):not(.text-right) { text-align: justify; text-justify: inter-word; hyphens: auto; }
.kr-library-site .main .kr-lib-hero p:not(.text-center):not(.text-end):not(.text-right),
.kr-library-site .main .kr-lib-features li:not(.text-center):not(.text-end):not(.text-right),
.kr-library-site .main .kr-lib-checks li:not(.text-center):not(.text-end):not(.text-right) { text-align: left; hyphens: manual; }

/* Rich text from the CMS */
.kr-lib-prose { font-size: 16.5px; line-height: 1.95; color: var(--lib-text); }
.kr-lib-prose--lead p:first-child { font-size: 19px; line-height: 1.85; color: var(--lib-ink); }
.kr-lib-prose > :last-child { margin-bottom: 0; }
.kr-lib-prose p { margin-bottom: 1.15em; }
.kr-lib-prose a { color: var(--lib-accent-text); font-weight: 500; text-decoration: underline; text-decoration-color: rgba(255,101,0,.35); text-underline-offset: 4px; transition: text-decoration-color .3s; }
.kr-lib-prose a:hover { text-decoration-color: var(--lib-accent); }
/* The theme greys every <p> (#777); library body text uses a warm dark tone. Dark bands set their own colours. */
.kr-lib-prose p, .kr-lib-prose li, .kr-lib-page p, .kr-lib-page li, .kr-lib-page td { color: var(--lib-text); }
.kr-library-site .main strong, .kr-library-site .main b { color: var(--lib-ink); font-weight: 700; }
.kr-lib-prose h4 { font-family: var(--lib-serif); color: var(--lib-ink); font-weight: 600; font-size: 26px; }
.kr-lib-prose table { width: 100%; margin-bottom: 0; border-radius: 12px; overflow: hidden; }
.kr-lib-prose th { background: var(--lib-parchment); color: var(--lib-ink); }
.kr-lib-prose ul, .kr-lib-prose ol { padding-left: 1.2rem; }
.kr-lib-prose li { margin-bottom: 8px; }
.kr-lib-prose li::marker { color: var(--lib-accent); }

.kr-lib-card { position: relative; background: #fffdf9; border: 1px solid var(--lib-line); border-radius: 22px; padding: 38px; box-shadow: var(--lib-shadow); }
.kr-lib-card__title { font-family: var(--lib-serif); font-size: 28px; font-weight: 600; color: var(--lib-ink); margin-bottom: 24px; display: flex; align-items: center; gap: 14px; }
.kr-lib-card__title i { display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--lib-accent-soft); color: var(--lib-accent-text); font-size: 16px; }

/* ── Introduction: an open page ─────────────────────────── */
.kr-lib-intro { background: var(--lib-paper); }
.kr-lib-intro .kr-lib-head { margin-bottom: 36px; }
.kr-lib-intro__panel {
	position: relative; max-width: 1040px; margin: 0 auto 18px; padding: 56px 64px 44px;
	background: var(--lib-grain), #fffdf9; border: 1px solid var(--lib-line); border-radius: 6px 6px 28px 28px;
	/* soft shadow + a faint stack of two pages peeking out under the sheet */
	box-shadow:
		0 8px 0 -5px #f6efe5, 0 8px 0 -4px var(--lib-line),
		0 16px 0 -10px #f0e7db, 0 16px 0 -9px var(--lib-line),
		var(--lib-shadow-lg);
}
/* ribbon bookmark */
.kr-lib-intro__mark { position: absolute; top: -1px; right: 64px; width: 38px; height: 74px; display: grid; place-items: start center; padding-top: 14px; background: linear-gradient(180deg, var(--lib-accent-2), var(--lib-accent)); color: #fff; font-size: 14px; clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 80%, 0 100%); }
/* drop cap on the opening paragraph */
.kr-lib-intro .kr-lib-prose--lead > p:first-child::first-letter { float: left; font-family: var(--lib-serif); font-size: 4.6em; line-height: .82; font-weight: 600; color: var(--lib-accent-text); margin: .06em .12em 0 0; }
.kr-lib-intro .kr-lib-prose strong { color: var(--lib-ink); }
@media (max-width: 767.98px) {
	.kr-lib-intro__panel { padding: 52px 20px 26px; border-radius: 6px 6px 20px 20px; }
	.kr-lib-intro__mark { right: 22px; width: 32px; height: 60px; }
}

/* ── Tables ─────────────────────────────────────────────── */
.kr-lib-tablecard { background: #fffdf9; border: 1px solid var(--lib-line); border-radius: 22px; overflow: hidden; box-shadow: var(--lib-shadow); }
.kr-lib-tablecard .table-responsive { margin: 0; }
.kr-lib-tablecard table { width: 100%; margin: 0; border-collapse: collapse; font-size: 15.5px; }
.kr-lib-tablecard thead th { background: var(--lib-orange-deep); color: #f6efe6; font-weight: 600; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; padding: 18px 24px; border: 0; white-space: nowrap; }
.kr-lib-tablecard thead th:first-child { box-shadow: inset 3px 0 0 var(--lib-accent); }
.kr-lib-tablecard td, .kr-lib-tablecard tbody th { padding: 16px 24px; border: 0; border-top: 1px solid var(--lib-line); color: var(--lib-text); vertical-align: middle; background: transparent; }
.kr-lib-tablecard tbody tr:first-child td, .kr-lib-tablecard tbody tr:first-child th { border-top: 0; }
.kr-lib-tablecard tbody tr { transition: background .35s; }
.kr-lib-tablecard tbody tr:hover { background: var(--lib-accent-soft); }
.kr-lib-col-sr { width: 110px; text-align: center; }
td.kr-lib-col-sr { font-family: var(--lib-serif); font-style: italic; font-size: 18px; font-weight: 600; color: var(--lib-accent-text) !important; }
.kr-lib-col-num { width: 160px; text-align: right; }
td.kr-lib-col-num { font-family: var(--lib-serif); font-weight: 700; font-size: 22px; color: var(--lib-ink) !important; }
.kr-lib-col-name { font-weight: 600; color: var(--lib-ink) !important; }
/* Brief Information table from the CMS: Sr. No. | Details | Information */
.kr-lib-tablecard--brief th:first-child, .kr-lib-tablecard--brief td:first-child { width: 110px; text-align: center; }
.kr-lib-tablecard--brief td:first-child { font-family: var(--lib-serif); font-style: italic; font-size: 18px; font-weight: 600; color: var(--lib-accent-text); }
.kr-lib-tablecard--brief td:nth-child(2) { width: 34%; font-weight: 600; color: var(--lib-ink); }
.kr-lib-tablecard--brief td a { color: var(--lib-accent-text); overflow-wrap: anywhere; }
.kr-lib-tablecard--brief td strong { color: var(--lib-ink); }
@media (max-width: 767.98px) { .kr-lib-tablecard--brief table { min-width: 620px; } }

/* Two-column "label | value" table from the CMS (At a Glance) */
.kr-lib-tablecard--kv tbody th { width: 55%; font-weight: 500; color: var(--lib-text); background: transparent; }
.kr-lib-tablecard--kv td { font-family: var(--lib-serif); font-weight: 700; font-size: 20px; color: var(--lib-ink); }
@media (max-width: 575.98px) {
	.kr-lib-tablecard thead th, .kr-lib-tablecard td, .kr-lib-tablecard tbody th { padding: 12px 14px; font-size: 14px; }
	.kr-lib-col-sr { width: 60px; }
	.kr-lib-col-num { width: auto; }
	.kr-lib-tablecard--kv tbody th { width: auto; }
}

/* ── Vision & mission / partners: glowing orange band ── */
.kr-lib-section--dark { overflow: hidden; color: #e6dbcf; background:
	radial-gradient(640px 380px at 50% -10%, rgba(255,154,50,.16), transparent 70%),
	var(--lib-grain),
	linear-gradient(180deg, var(--lib-orange) 0%, var(--lib-orange-deep) 100%); }
.kr-lib-section--dark .kr-lib-title { color: #fbf5ec; }
.kr-lib-section--dark .kr-lib-eyebrow { color: var(--lib-accent-2); }
.kr-lib-section--dark .kr-lib-eyebrow b { border-color: rgba(255,154,50,.4); color: var(--lib-accent-2); }
.kr-lib-vm { position: relative; height: 100%; padding: 42px 36px 38px; border-radius: 22px; background: rgba(255,248,238,.04); border: 1px solid rgba(255,240,220,.12); transition: background .5s, border-color .5s, transform .5s; }
.kr-lib-vm:hover { background: rgba(255,248,238,.07); border-color: rgba(255,154,50,.35); transform: translateY(-3px); }
.kr-lib-vm__icon { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 50%; border: 1px solid rgba(255,154,50,.45); background: rgba(255,154,50,.08); color: var(--lib-accent-2); font-size: 20px; margin-bottom: 20px; }
.kr-lib-vm h3 { color: #fbf5ec; font-family: var(--lib-serif); font-size: 30px; font-weight: 600; margin-bottom: 14px; }
.kr-lib-vm .cms-content, .kr-lib-vm .cms-content p, .kr-lib-vm .cms-content li { color: #d8ccbf; font-size: 16px; line-height: 1.9; }
.kr-lib-vm .cms-content > :last-child { margin-bottom: 0; }
.kr-library-site .main .kr-lib-vm strong { color: #fbf5ec; }

/* ── Infrastructure: quiet tiles ────────────────────────── */
.kr-lib-features ul { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; }
.kr-lib-features li { position: relative; margin: 0; padding: 20px 22px 20px 84px; min-height: 84px; display: flex; align-items: center; background: #fffdf9; border: 1px solid var(--lib-line); border-radius: 20px; font-weight: 500; color: var(--lib-ink); line-height: 1.55; box-shadow: var(--lib-shadow); transition: transform .5s ease, box-shadow .5s ease, border-color .5s; }
.kr-lib-features li:hover { transform: translateY(-3px); box-shadow: var(--lib-shadow-lg); border-color: rgba(255,101,0,.25); }
.kr-lib-features li::before { content: "\f19c"; font-family: "Font Awesome 6 Free"; font-weight: 900; position: absolute; left: 24px; top: 50%; transform: translateY(-50%); width: 46px; height: 46px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--lib-accent-soft); color: var(--lib-accent-text); font-size: 16px; transition: background .5s, color .5s; }
.kr-lib-features li:hover::before { background: var(--lib-accent); color: #fff; }
.kr-lib-features li:nth-child(6n+2)::before { content: "\f02d"; }
.kr-lib-features li:nth-child(6n+3)::before { content: "\f518"; }
.kr-lib-features li:nth-child(6n+4)::before { content: "\f108"; }
.kr-lib-features li:nth-child(6n+5)::before { content: "\f0ac"; }
.kr-lib-features li:nth-child(6n+6)::before { content: "\f023"; }

/* ── Services: an index card list ───────────────────────── */
.kr-lib-checks ul { list-style: none; padding: 0; margin: 0; columns: 2 340px; column-gap: 24px; }
.kr-lib-checks li { break-inside: avoid; position: relative; margin: 0 0 16px; padding: 20px 22px 20px 62px; background: #fffdf9; border: 1px solid var(--lib-line); border-radius: 16px; line-height: 1.7; transition: border-color .5s, box-shadow .5s; }
.kr-lib-checks li:hover { border-color: rgba(255,101,0,.25); box-shadow: var(--lib-shadow); }
.kr-lib-checks li::before { content: "\f00c"; font-family: "Font Awesome 6 Free"; font-weight: 900; position: absolute; left: 20px; top: 21px; width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(255,101,0,.35); color: var(--lib-accent-text); font-size: 11px; }
.kr-lib-checks strong { color: var(--lib-ink); }

/* ── Timings & rules ────────────────────────────────────── */
.kr-lib-hours { position: relative; overflow: hidden; border-radius: 22px; padding: 38px 32px; color: #f6efe6; background:
	radial-gradient(260px 200px at 85% 0%, rgba(255,154,50,.22), transparent 70%),
	var(--lib-grain), linear-gradient(180deg, var(--lib-orange), var(--lib-orange-deep)); box-shadow: var(--lib-shadow-lg); }
.kr-lib-hours h3 { position: relative; color: #fbf5ec; font-family: var(--lib-serif); font-size: 28px; font-weight: 600; margin-bottom: 22px; }
.kr-lib-hours h3 i { color: var(--lib-accent-2); margin-right: 10px; font-size: 20px; }
.kr-lib-hours ul { position: relative; list-style: none; margin: 0; padding: 0; }
.kr-lib-hours li { padding: 14px 0; border-top: 1px solid rgba(255,240,220,.12); font-size: 15px; line-height: 1.65; color: #ddd1c4; }
.kr-lib-hours li:first-child { border-top: 0; padding-top: 0; }
.kr-library-site .main .kr-lib-hours strong { color: var(--lib-accent-2); }
.kr-lib-rules { list-style: none; counter-reset: rule; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 4px 32px; }
.kr-lib-rules li { counter-increment: rule; position: relative; padding: 12px 0 12px 48px; line-height: 1.7; font-size: 15px; color: var(--lib-text); border-bottom: 1px solid var(--lib-line); }
.kr-lib-rules li::before { content: counter(rule, decimal-leading-zero); position: absolute; left: 0; top: 10px; font-family: var(--lib-serif); font-style: italic; font-size: 22px; font-weight: 600; line-height: 1.2; color: var(--lib-accent-text); }
@media (max-width: 767.98px) { .kr-lib-rules { grid-template-columns: 1fr; } .kr-lib-card { padding: 26px 20px; } }

/* ── E-Resources page ───────────────────────────────────── */
/* Link tables: long URLs wrap instead of stretching the table */
.kr-lib-linktable { table-layout: fixed; }
.kr-lib-linktable .kr-lib-col-name { width: 38%; }
.kr-lib-col-url { overflow-wrap: anywhere; font-size: 14.5px; }
.kr-lib-col-url a { color: var(--lib-accent-text); text-decoration: none; font-weight: 500; }
.kr-lib-col-url a:hover { text-decoration: underline; text-underline-offset: 4px; }
.kr-lib-badge { display: inline-block; margin-left: 6px; font-style: normal; font-weight: 600; font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; padding: 3px 9px; border-radius: 999px; border: 1px solid rgba(255,101,0,.3); color: var(--lib-accent-text); white-space: nowrap; }
@media (max-width: 767.98px) {
	.kr-lib-linktable { table-layout: auto; min-width: 560px; }
	.kr-lib-linktable .kr-lib-col-name { width: auto; }
}

.kr-lib-more-details { margin-top: 12px; }
.kr-lib-more-details summary { cursor: pointer; color: var(--lib-accent-2); font-weight: 600; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; list-style: none; }
.kr-lib-more-details summary::-webkit-details-marker { display: none; }
.kr-lib-more-details summary::after { content: " \2192"; }
.kr-lib-more-details[open] summary::after { content: " \2191"; }
.kr-lib-more-details[open] summary { margin-bottom: 10px; }

.kr-lib-subjects { display: grid; gap: 14px; }
.kr-lib-subject { background: #fffdf9; border: 1px solid var(--lib-line); border-radius: 18px; overflow: hidden; transition: box-shadow .5s, border-color .5s; }
.kr-lib-subject:hover, .kr-lib-subject[open] { box-shadow: var(--lib-shadow); border-color: rgba(255,101,0,.22); }
.kr-lib-subject summary { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 18px 22px; cursor: pointer; list-style: none; font-family: var(--lib-serif); font-size: 21px; font-weight: 600; color: var(--lib-ink); }
.kr-lib-subject summary::-webkit-details-marker { display: none; }
.kr-lib-subject summary > span { flex: 1; }
.kr-lib-subject summary small { flex-shrink: 0; font-family: 'DM Sans', system-ui, sans-serif; padding: 3px 10px; border-radius: 999px; border: 1px solid rgba(255,101,0,.3); color: var(--lib-accent-text); font-size: 11.5px; font-weight: 600; }
.kr-lib-subject summary::after { content: "\f078"; font-family: "Font Awesome 6 Free"; font-weight: 900; font-size: 10px; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--lib-line); color: var(--lib-muted); transition: transform .4s, color .4s, border-color .4s; }
.kr-lib-subject[open] summary::after { transform: rotate(180deg); color: var(--lib-accent-text); border-color: rgba(255,101,0,.4); }
.kr-lib-subject[open] summary { border-bottom: 1px solid var(--lib-line); }
/* Tables inside the collapsible subject rows: lighter header than the main tables */
.kr-lib-subject table { width: 100%; margin: 0; font-size: 15px; }
.kr-lib-subject thead th { background: var(--lib-parchment); color: var(--lib-ink); font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; padding: 12px 22px; border: 0; }
.kr-lib-subject td { padding: 13px 22px; border: 0; border-top: 1px solid var(--lib-line); color: var(--lib-text); vertical-align: middle; background: transparent; }

/* ── Inner pages (Infrastructure, Journals, Activities…) ── */
.kr-library-site .kr-lib-page { max-width: 1000px; margin: 0 auto; padding: 44px 16px 56px; }
.kr-library-site .kr-lib-page h4 { font-family: var(--lib-serif); font-size: 30px; font-weight: 600; color: var(--lib-ink); margin-top: 32px; padding-bottom: 14px; border-bottom: 1px solid var(--lib-line); position: relative; }
.kr-library-site .kr-lib-page h4::after { content: ""; position: absolute; left: 0; bottom: -1px; width: 64px; height: 1px; background: var(--lib-accent); }
.kr-library-site .kr-lib-page h4:first-child { margin-top: 0; }
.kr-library-site .kr-lib-page table { width: 100%; background: #fffdf9; border: 1px solid var(--lib-line); border-radius: 18px; overflow: hidden; box-shadow: var(--lib-shadow); margin-bottom: 10px; border-collapse: separate; border-spacing: 0; }
.kr-library-site .kr-lib-page td { border-color: var(--lib-line); padding: 14px 18px; }
.kr-library-site .kr-lib-page tbody tr { transition: background .35s; }
.kr-library-site .kr-lib-page tbody tr:hover { background: var(--lib-accent-soft); }
/* Journals / Activities: white header text on the orange band. The page body has .kr-admission-page, whose
   "body.kr-admission-page .table thead th" rule (krscms-inline.css) darkens it, so match with higher specificity. */
body.kr-library-site .kr-lib-page table thead th,
body.kr-library-site .kr-lib-page table th { background: var(--lib-orange-deep); color: #f6efe6; border-color: var(--lib-orange-deep); font-weight: 600; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; padding: 16px 18px; }
body.kr-library-site .kr-lib-page table thead th *,
body.kr-library-site .kr-lib-page table th * { color: #f6efe6; }

/* ── Motion: slow, gentle reveal (JS adds .kr-reveal-ready; without JS everything is visible) ── */
.kr-reveal-ready .kr-reveal { opacity: 0; transform: translateY(18px); transition: opacity 1.1s ease, transform 1.1s cubic-bezier(.2,.7,.2,1); }
.kr-reveal-ready .kr-reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .kr-reveal-ready .kr-reveal { opacity: 1; transform: none; transition: none; } }

/* ── Website orange theme: bands, headers and headings in glowing orange ── */
.kr-lib-topbar { background: var(--lib-grad-orange); color: #fff3e8; box-shadow: 0 2px 14px rgba(255,101,0,.35); }
.kr-lib-topbar a { color: #fff; }
.kr-lib-topbar a:hover { color: #ffe0bf; }
.kr-lib-topbar i { color: #fff; opacity: 1; }
.kr-lib-brand__text { border-left: 2px solid var(--lib-accent); }
.kr-lib-brand__text strong { color: var(--lib-accent-text); }
.kr-lib-nav__item > a::after, .kr-lib-nav__item > button::after { height: 2px; box-shadow: var(--lib-glow-sm); }

.kr-lib-title, .kr-lib-card__title, .kr-lib-subject summary,
.kr-library-site .kr-lib-page h4, .kr-lib-prose h4 { color: var(--lib-accent-text); }
.kr-lib-title::after { filter: drop-shadow(0 0 4px rgba(255,101,0,.6)); }
.kr-lib-section + .kr-lib-section:not(.kr-lib-section--dark):not(.kr-lib-section--alt)::before { filter: drop-shadow(0 0 4px rgba(255,101,0,.5)); }
.kr-library-site .kr-lib-page h4::after { height: 2px; box-shadow: var(--lib-glow-sm); }
.kr-lib-eyebrow:not(:has(> b))::before, .kr-lib-head--center .kr-lib-eyebrow:not(:has(> b))::after { opacity: 1; box-shadow: var(--lib-glow-sm); }

/* Intro: orange ribbon and page with a soft orange glow */
.kr-lib-intro__panel { border-top: 4px solid var(--lib-accent); }
.kr-lib-intro__mark { top: -4px; background: var(--lib-grad-orange); filter: drop-shadow(0 6px 10px rgba(255,101,0,.45)); }
.kr-lib-intro .kr-lib-prose--lead > p:first-child::first-letter { color: var(--lib-accent); text-shadow: 0 0 18px rgba(255,101,0,.35); }

/* Tables: orange header with white text */
.kr-lib-tablecard thead th,
body.kr-library-site .kr-lib-page table thead th,
body.kr-library-site .kr-lib-page table th { background: var(--lib-grad-orange); color: #fff; border-color: var(--lib-orange-deep); box-shadow: 0 6px 16px -6px rgba(255,101,0,.5); }
.kr-lib-tablecard thead th:first-child { box-shadow: inset 3px 0 0 #c74300, 0 6px 16px -6px rgba(255,101,0,.5); }
body.kr-library-site .kr-lib-page table thead th *,
body.kr-library-site .kr-lib-page table th * { color: #fff; }
.kr-lib-tablecard:hover { box-shadow: var(--lib-shadow), 0 10px 30px -10px rgba(255,101,0,.35); }

/* Vision & mission / partners: orange band */
.kr-lib-section--dark { color: #fff3e8; background:
	radial-gradient(640px 380px at 50% -10%, rgba(255,214,170,.35), transparent 70%),
	var(--lib-grain),
	radial-gradient(80% 120% at 0% 0%, #ff8a24 0%, #ff6500 55%, #d94a00 100%); }
.kr-lib-section--dark .kr-lib-title { color: #fff; }
.kr-lib-section--dark .kr-lib-title::after { filter: brightness(0) invert(1) drop-shadow(0 0 6px rgba(255,255,255,.7)); }
.kr-lib-section--dark .kr-lib-eyebrow { color: #fff; }
.kr-lib-section--dark .kr-lib-eyebrow:not(:has(> b))::before,
.kr-lib-section--dark .kr-lib-eyebrow:not(:has(> b))::after { box-shadow: 0 0 10px rgba(255,255,255,.7); }
.kr-lib-section--dark .kr-lib-eyebrow b { border-color: rgba(255,255,255,.6); color: #fff; }
.kr-lib-vm { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.28); }
.kr-lib-vm:hover { background: rgba(255,255,255,.18); border-color: rgba(255,255,255,.7); box-shadow: 0 20px 46px rgba(120,45,0,.3), 0 0 30px rgba(255,214,170,.45); }
.kr-lib-vm__icon { background: #fff; border-color: #fff; color: var(--lib-accent); box-shadow: 0 10px 24px rgba(120,45,0,.25), 0 0 22px rgba(255,255,255,.55); }
.kr-lib-vm h3 { color: #fff; }
.kr-lib-vm .cms-content, .kr-lib-vm .cms-content p, .kr-lib-vm .cms-content li { color: #fff3e8; }
.kr-library-site .main .kr-lib-vm strong { color: #fff; }
.kr-lib-more-details summary { color: #fff; text-shadow: 0 0 12px rgba(255,255,255,.55); }

/* Timings: orange card */
.kr-lib-hours { color: #fff; background:
	radial-gradient(260px 200px at 85% 0%, rgba(255,214,170,.4), transparent 70%),
	var(--lib-grain), var(--lib-grad-orange); box-shadow: 0 22px 46px rgba(255,101,0,.35); }
.kr-lib-hours h3, .kr-lib-hours h3 i { color: #fff; }
.kr-lib-hours li { color: #fff3e8; border-top-color: rgba(255,255,255,.22); }
.kr-library-site .main .kr-lib-hours strong { color: #fff; text-shadow: 0 0 12px rgba(255,255,255,.55); }

/* Icons and accents: glowing orange */
.kr-lib-card__title i { background: var(--lib-grad-orange); color: #fff; box-shadow: var(--lib-glow); }
.kr-lib-features li::before { background: var(--lib-grad-orange); color: #fff; box-shadow: 0 6px 16px rgba(255,101,0,.3); }
.kr-lib-features li:hover::before { background: var(--lib-orange-deep); box-shadow: var(--lib-glow); }
.kr-lib-features li:hover { box-shadow: var(--lib-shadow-lg), 0 10px 28px -6px rgba(255,101,0,.35); }
.kr-lib-checks li { border-left: 3px solid var(--lib-accent); }
.kr-lib-checks li::before { background: var(--lib-accent); border-color: var(--lib-accent); color: #fff; box-shadow: 0 0 12px rgba(255,101,0,.4); }
.kr-lib-checks li:hover { box-shadow: var(--lib-shadow), -6px 0 18px -8px rgba(255,101,0,.75); }
.kr-lib-rules li::before { color: var(--lib-accent); text-shadow: 0 0 12px rgba(255,101,0,.3); }
.kr-lib-subject[open] summary::after { background: var(--lib-accent); border-color: var(--lib-accent); color: #fff; box-shadow: var(--lib-glow); }
.kr-lib-subject[open] { border-color: rgba(255,101,0,.35); box-shadow: var(--lib-shadow), 0 10px 28px -10px rgba(255,101,0,.35); }
.kr-lib-subject summary small, .kr-lib-badge { background: var(--lib-accent-soft); }
