@font-face {
  font-family: "Source Serif 4";
  src: url("fuentes/SourceSerif4-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Source Serif 4";
  src: url("fuentes/SourceSerif4-Bold.ttf") format("truetype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}
:root {
  color-scheme: light;
  --ink: #183247;
  --ink-soft: #435765;
  --paper: #f7f5ef;
  --surface: #fffefa;
  --line: #d7d7ce;
  --accent: #b84e33;
  --accent-dark: #84351f;
  --gold: #bd8b35;
  --focus: #9b4a20;
  --page-width: 80rem;
  font-family: Arial, Helvetica, sans-serif;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  accent-color: var(--accent);
}
* { box-sizing: border-box; }
html { min-width: 20rem; background: var(--paper); scroll-behavior: smooth; scroll-padding-block-start: 1rem; }
body { min-width: 20rem; margin: 0; color: var(--ink); background: var(--paper); font-size: 1rem; line-height: 1.65; }
::selection { color: var(--surface); background: var(--ink); }
.skip-link { position: fixed; z-index: 20; inset-block-start: .75rem; inset-inline-start: .75rem; padding: .65rem 1rem; transform: translateY(-180%); background: var(--surface); color: var(--ink); font-weight: 700; }
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
a { color: #154d67; text-decoration-thickness: .08em; text-underline-offset: .19em; overflow-wrap: anywhere; }
a:hover { color: var(--accent-dark); text-decoration-thickness: .14em; }
.site-header { border-block-end: 1px solid var(--line); background: var(--surface); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem 2rem; inline-size: min(var(--page-width), calc(100% - 4rem)); margin-inline: auto; padding-block: 1.1rem; }
.site-brand { display: inline-flex; align-items: center; gap: .85rem; min-inline-size: 0; color: var(--ink); text-decoration: none; }
.site-brand:hover, .site-brand:focus-visible { color: var(--ink); background: transparent; }
.site-brand__mark { display: grid; flex: 0 0 auto; place-items: center; inline-size: 3.1rem; block-size: 3.1rem; border: 1px solid var(--ink); border-radius: 50%; color: var(--ink); font-family: "Source Serif 4", Georgia, serif; font-size: 1rem; font-weight: 700; }
.site-brand__name { display: block; max-inline-size: 20ch; font-family: "Source Serif 4", Georgia, serif; font-size: 1.13rem; font-weight: 700; line-height: 1.15; }
.site-brand__detail { display: block; margin-block-start: .2rem; color: var(--ink-soft); font-size: .76rem; letter-spacing: .015em; }
.site-nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .25rem .55rem; }
.site-nav a { display: inline-flex; align-items: center; min-block-size: 2.75rem; padding: .45rem .7rem; border-block-end: 2px solid transparent; color: var(--ink); font-size: .88rem; font-weight: 600; text-decoration: none; }
.site-nav a:hover, .site-nav a[aria-current="page"] { border-color: var(--accent); color: var(--ink); }
.site-main { inline-size: min(var(--page-width), calc(100% - 4rem)); min-inline-size: 0; margin: 2.25rem auto 4rem; padding: clamp(1.5rem, 4vw, 3.5rem); background: var(--surface); }
.page-heading { margin-block-end: clamp(1.5rem, 3vw, 2.6rem); padding-block-end: 1.25rem; border-block-end: 1px solid var(--line); }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 .65rem; color: var(--ink-soft); font-size: .82rem; }
.breadcrumbs a { color: #15516d; }
.breadcrumbs [aria-current="page"] { color: var(--ink-soft); }
h1, h2, h3, h4 { color: var(--ink); font-family: "Source Serif 4", Georgia, serif; font-weight: 700; line-height: 1.18; text-wrap: balance; }
h1 { max-inline-size: 38ch; margin: 0; font-size: clamp(2.15rem, 5vw, 3.6rem); letter-spacing: -.025em; }
h2 { margin-block: 2.35rem .8rem; font-size: clamp(1.5rem, 3vw, 2rem); }
h3 { margin-block: 1.8rem .65rem; font-size: 1.35rem; }
h4 { margin-block: 1.5rem .5rem; font-size: 1.12rem; }
.legacy-content { min-inline-size: 0; color: var(--ink); }
.legacy-content p, .legacy-content li, .legacy-content blockquote { max-inline-size: 74ch; }
.legacy-content p { margin-block: 0 1.05rem; }
.legacy-content ul, .legacy-content ol { padding-inline-start: 1.5rem; }
.legacy-content li { margin-block: .28rem; }
.legacy-content strong, .legacy-content b { color: #17364a; }
.legacy-content font { color: inherit !important; font-family: inherit !important; font-size: inherit !important; }
.legacy-content hr { block-size: 1px; margin-block: 2rem; border: 0; background: var(--line); }
.legacy-content img[src*="line.gif"] { display: none; }
.legacy-content img { max-inline-size: 100%; block-size: auto; }
.legacy-content img[src*="atulan1.jpg"], .legacy-content img[src*="bap1.jpg"] { float: inline-end; max-inline-size: min(36%, 14rem); margin: .2rem 0 1rem 1.5rem; }
.legacy-content img[src*="prabhu.jpg"], .legacy-content img[src*="sidhan.jpg"], .legacy-content img[src*="sridhar.jpg"], .legacy-content img[src*="vinod.jpg"] { display: block; max-inline-size: min(100%, 14rem); margin: 1rem auto; border: 1px solid var(--line); }
.legacy-centered { text-align: start; }
.legacy-layout, .legacy-row, .legacy-cell { min-inline-size: 0; }
.legacy-layout { margin-block: 0; }
.legacy-row { display: flex; flex-wrap: wrap; gap: 1rem; }
.legacy-cell { flex: 1 1 16rem; }
.page-index .site-main { max-inline-size: 86rem; }
.page-index .page-heading { margin: 0 auto 2.4rem; padding-block: .25rem 1.8rem; border: 0; text-align: center; }
.page-index .page-heading h1 { max-inline-size: none; font-size: clamp(2.7rem, 4.3vw, 4.1rem); }
.home-intro { max-inline-size: 54ch; margin: .8rem auto 0; color: var(--ink-soft); font: 1.12rem/1.55 "Source Serif 4", Georgia, serif; }
.home-feature { display: grid; grid-template-columns: minmax(11rem, .75fr) minmax(0, 1.45fr) minmax(13rem, .8fr); align-items: stretch; border-block: 1px solid var(--line); }
.home-book { display: flex; min-block-size: 17rem; flex-direction: column; justify-content: space-between; padding: 1.25rem; background: #ece8dc; color: var(--ink); }
.home-book__series, .home-book__foot { color: #4d5a5d; font-size: .68rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.home-book__title { max-inline-size: 13ch; font: 700 clamp(1.6rem, 3vw, 2.2rem)/1.08 "Source Serif 4", Georgia, serif; }
.home-feature__copy { padding: clamp(1.4rem, 3vw, 2.6rem); }
.home-feature__copy h2 { margin: 0 0 .8rem; font-size: clamp(1.8rem, 3.5vw, 2.7rem); }
.home-feature__copy p { max-inline-size: 48ch; margin-block: 0 .8rem; color: var(--ink-soft); }
.home-meta { display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; margin-block: 1.2rem; padding-block-start: .85rem; border-block-start: 1px solid var(--line); color: var(--ink-soft); font-size: .87rem; }
.home-feature__copy .home-action { display: inline-block; margin-block-start: .5rem; font-weight: 700; }
.home-news { padding: 1.5rem; border-inline-start: 1px solid var(--line); }
.home-news h2 { margin: 0 0 .8rem; font: 700 .84rem/1.4 Arial, Helvetica, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.home-news p { margin-block: .6rem; color: var(--ink-soft); font-size: .92rem; }
.home-news a { font-size: .88rem; font-weight: 700; }
.home-section { margin-block-start: clamp(2.8rem, 6vw, 5rem); }
.home-section > h2 { margin-block: 0 1rem; padding-block-end: .6rem; border-block-end: 1px solid var(--line); }
.home-link-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 2rem; }
.home-link-grid section { padding-block: .7rem 1.15rem; }
.home-link-grid h3 { margin: 0 0 .35rem; font-size: 1.2rem; }
.home-link-grid ul { margin: 0; padding-inline-start: 1.2rem; }
.home-link-grid li { margin-block: .35rem; }
.home-link-grid a { font-size: .95rem; }
.topic-list { display: flex; flex-wrap: wrap; gap: .5rem .75rem; margin: 0; padding: 0; list-style: none; }
.topic-list li { max-inline-size: none; padding: .25rem .55rem; border-block-end: 1px solid var(--line); color: var(--ink-soft); font-size: .9rem; }
.membership { display: grid; justify-items: center; gap: .3rem; margin-block-start: clamp(3rem, 7vw, 5rem); padding: 1.5rem; border-block: 1px solid var(--ink); text-align: center; }
.membership img { inline-size: 6rem; block-size: 6rem; object-fit: contain; }
.membership__label { margin: .2rem 0 0; color: var(--ink-soft); font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.membership h2 { margin: 0; font-size: clamp(1.55rem, 3vw, 2rem); }
.membership p { max-inline-size: none; margin: 0; color: var(--ink-soft); font-size: .9rem; }
.legacy-content table { max-inline-size: 100%; margin-block: 1.25rem; border-collapse: collapse; border-spacing: 0; }
.legacy-content td, .legacy-content th { padding: .65rem .7rem; text-align: start; vertical-align: top; }
.legacy-content .catalog-table { inline-size: max(100%, 82rem); min-inline-size: 82rem; margin: 0; background: var(--surface); font-family: Arial, Helvetica, sans-serif; font-size: .88rem; table-layout: fixed; }
.catalog-table[data-columns="11"] { inline-size: max(100%, 92rem); min-inline-size: 92rem; }
.catalog-table caption { text-align: start; }
.catalog-table th { position: sticky; inset-block-start: 0; padding: .8rem .65rem; border-block-end: 2px solid var(--ink); background: #eeeee8; color: var(--ink); font-size: .8rem; font-weight: 700; line-height: 1.4; }
.catalog-table td { border-block-end: 1px solid #e3e0d7; line-height: 1.45; overflow-wrap: anywhere; }
.catalog-table th { overflow-wrap: anywhere; }
.catalog-table tbody tr:nth-child(even) { background: #f8f6f0; }
.catalog-table tbody tr:hover { background: #f1eee4; }
.catalog-table :is(th, td) :is(p, div) { margin-block: 0; }
.catalog-table :is(th, td) a { white-space: normal; overflow-wrap: anywhere; }
.catalog-table[data-columns="11"] :is(th, td):nth-child(1) { width: 5%; }
.catalog-table[data-columns="11"] :is(th, td):nth-child(2) { width: 22%; }
.catalog-table[data-columns="11"] :is(th, td):nth-child(3) { width: 14%; }
.catalog-table[data-columns="11"] :is(th, td):nth-child(4) { width: 7%; }
.catalog-table[data-columns="11"] :is(th, td):nth-child(5) { width: 12%; }
.catalog-table[data-columns="11"] :is(th, td):nth-child(6) { width: 7%; }
.catalog-table[data-columns="11"] :is(th, td):nth-child(7) { width: 7%; }
.catalog-table[data-columns="11"] :is(th, td):nth-child(8) { width: 9%; }
.catalog-table[data-columns="11"] :is(th, td):nth-child(9) { width: 6%; }
.catalog-table[data-columns="11"] :is(th, td):nth-child(10) { width: 5%; }
.catalog-table[data-columns="11"] :is(th, td):nth-child(11) { width: 6%; }
.catalog-table[data-columns="10"] :is(th, td):nth-child(1) { width: 5%; }
.catalog-table[data-columns="10"] :is(th, td):nth-child(2) { width: 27%; }
.catalog-table[data-columns="10"] :is(th, td):nth-child(3) { width: 12%; }
.catalog-table[data-columns="10"] :is(th, td):nth-child(4) { width: 12%; }
.catalog-table[data-columns="10"] :is(th, td):nth-child(5) { width: 8%; }
.catalog-table[data-columns="10"] :is(th, td):nth-child(6) { width: 8%; }
.catalog-table[data-columns="10"] :is(th, td):nth-child(7) { width: 8%; }
.catalog-table[data-columns="10"] :is(th, td):nth-child(8) { width: 8%; }
.catalog-table[data-columns="10"] :is(th, td):nth-child(9) { width: 6%; }
.catalog-table[data-columns="10"] :is(th, td):nth-child(10) { width: 6%; }
.table-scroll { max-inline-size: 100%; margin-block: 1rem; padding: .6rem; overflow: auto; overscroll-behavior-inline: contain; border: 1px solid var(--line); scrollbar-color: #596d78 #eeeae0; }
.table-scroll:focus-visible { outline-offset: 2px; }
.catalog-hint { margin: .35rem 0 0; color: var(--ink-soft); font-size: .84rem; }
.visually-hidden { position: absolute !important; inline-size: 1px !important; block-size: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.catalog-tools { display: grid; grid-template-columns: minmax(15rem, 27rem) 1fr; align-items: end; gap: .5rem 1rem; margin-block: 1.25rem .65rem; }
.catalog-tools label { display: grid; gap: .35rem; color: var(--ink); font-size: .9rem; font-weight: 700; }
.catalog-tools input[type="search"] { inline-size: 100%; min-block-size: 3rem; padding: .65rem .8rem; border: 1px solid #747f7f; border-radius: 0; background: #fff; color: var(--ink); font: inherit; }
.catalog-tools input[type="search"]::placeholder { color: #52616b; opacity: 1; }
.catalog-tools output { color: var(--ink-soft); font-size: .9rem; }
.catalog-tools .catalog-hint { grid-column: 1 / -1; }
.catalog-cards { display: none; }
.catalog-card { padding: .9rem 1rem; border-block-end: 1px solid var(--line); background: var(--surface); }
.catalog-card__heading { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: .8rem; margin-block-end: .55rem; padding-block-end: .6rem; border-block-end: 1px solid var(--line); }
.catalog-card__number { color: var(--ink-soft); font: 700 .8rem/1.5 Arial, Helvetica, sans-serif; }
.catalog-card__title { min-inline-size: 0; color: var(--ink); font-weight: 700; line-height: 1.45; overflow-wrap: anywhere; }
.catalog-card__details { display: grid; gap: .1rem; margin: 0; }
.catalog-card__field { display: grid; grid-template-columns: minmax(7rem, 13rem) minmax(0, 1fr); gap: .75rem; padding-block: .35rem; border-block-end: 1px dotted var(--line); }
.catalog-card__field:last-child { border-block-end: 0; }
.catalog-card__field dt { color: var(--ink-soft); font: 700 .78rem/1.5 Arial, Helvetica, sans-serif; }
.catalog-card__field dd { min-inline-size: 0; margin: 0; overflow-wrap: anywhere; }
.catalog-card__field a { overflow-wrap: anywhere; }
.catalog-table tr[hidden], .catalog-card[hidden] { display: none !important; }
.resource-note { max-inline-size: 72ch; margin-block: 1.5rem; padding: 1rem 0; border-block: 1px solid var(--line); color: var(--ink-soft); }
.site-footer { border-block-start: 1px solid var(--line); background: var(--surface); color: var(--ink); }
.site-footer__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .7rem 1.5rem; inline-size: min(var(--page-width), calc(100% - 4rem)); margin-inline: auto; padding-block: 1.25rem; font-size: .86rem; }
.site-footer p { margin: 0; }
.site-footer nav { display: flex; flex-wrap: wrap; gap: .45rem 1rem; }
.site-footer a { color: #154d67; }
@media (max-width: 64rem) {
  .home-feature { grid-template-columns: minmax(10rem, .65fr) minmax(0, 1.35fr); }
  .home-news { grid-column: 1 / -1; border-block-start: 1px solid var(--line); border-inline-start: 0; }
  .home-link-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 54rem) {
  .site-header__inner { align-items: flex-start; flex-direction: column; inline-size: min(100% - 2rem, var(--page-width)); gap: .7rem; }
  .site-nav { justify-content: flex-start; margin-inline: -.45rem; }
  .site-nav a { padding-inline: .6rem; }
  .site-main { inline-size: min(100% - 1.5rem, var(--page-width)); margin-block: 1rem 1.5rem; padding: clamp(1rem, 4vw, 1.6rem); }
  .site-footer__inner { inline-size: min(100% - 2rem, var(--page-width)); }
  .legacy-content img[src*="atulan1.jpg"], .legacy-content img[src*="bap1.jpg"] { float: none; display: block; max-inline-size: min(100%, 12rem); margin: 1rem auto; }
  .catalog-tools { grid-template-columns: minmax(0, 1fr); }
  .catalog-tools output, .catalog-tools .catalog-hint { grid-column: 1; }
  .js .table-scroll .catalog-table { display: none; }
  .js .table-scroll .catalog-cards { display: grid; gap: .65rem; }
}
@media (max-width: 36rem) {
  body { font-size: .97rem; }
  .site-brand__name { font-size: 1rem; }
  .site-brand__detail { font-size: .72rem; }
  .site-main { inline-size: calc(100% - 1rem); padding: 1rem .8rem; }
  .page-index .page-heading { padding-block-end: 1.3rem; }
  .page-index .page-heading h1 { font-size: clamp(2.55rem, 11vw, 3.4rem); }
  .home-feature { grid-template-columns: minmax(0, 1fr); }
  .home-book { min-block-size: 13rem; }
  .home-book__title { max-inline-size: 16ch; }
  .home-feature__copy { padding: 1.2rem .2rem; }
  .home-news { padding-inline: .2rem; }
  .home-link-grid { grid-template-columns: minmax(0, 1fr); }
  .catalog-card__field { grid-template-columns: minmax(6rem, 8rem) minmax(0, 1fr); gap: .5rem; }
  .legacy-content td, .legacy-content th { padding: .45rem; }
  .site-nav { gap: .1rem; }
  .site-nav a { min-block-size: 2.5rem; font-size: .83rem; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }

.home-legal { margin-block: 2rem 0; padding-block-start: 1rem; border-block-start: 1px solid var(--line); color: var(--ink-soft); font-size: .82rem; }
.home-legal p { margin-block: .3rem; }

@media (max-width: 88rem) {
  .js .table-scroll .catalog-table { display: none; }
  .js .table-scroll .catalog-cards { display: grid; gap: .65rem; }
}
