/* ==========================================================================
   ქართული მეცნიერება — modern layout (layout/modern.blade.php)
   Used by the home page and all inner pages (see "Inner pages" below).
   ========================================================================== */

/* Headings: ALK Sanet (Mtavruli-style capitals), one weight — served from public/fonts */
@font-face {
    font-family: 'ALK Sanet';
    src: url('../fonts/alk-sanet.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

:root {
    --gs-gold: #E2B23B;          /* main brand color */
    --gs-gold-hover: #C99F33;
    --gs-gold-text: #8A6510;     /* gold for text on light backgrounds (contrast ≥ 4.5:1) */
    --gs-ink: #13213C;
    --gs-ink-deep: #0E1830;
    --gs-muted: #5A6275;
    --gs-muted-dark: #C9CFDB;    /* muted text on ink */
    --gs-line: #E4E6EC;
    --gs-tint: #F7F6F2;
    --gs-white: #FFFFFF;
    --gs-radius: 12px;
    --gs-serif: 'ALK Sanet', 'Noto Serif Georgian', Georgia, serif;   /* headings */
    --gs-sans: 'Noto Sans Georgian', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }

body.gs {
    margin: 0;
    font-family: var(--gs-sans);
    font-size: 16px;
    line-height: 1.6;
    color: var(--gs-ink);
    background: var(--gs-white);
    -webkit-font-smoothing: antialiased;
    /* ALK Sanet has one weight: show it as drawn, not artificially thickened for bold headings */
    font-synthesis-weight: none;
}

.gs a { color: var(--gs-ink); text-decoration: none; }
.gs a:hover { color: var(--gs-gold-text); }
.gs img { max-width: 100%; }


.gs-wrap { max-width: 1240px; margin: 0 auto; padding-left: 32px; padding-right: 32px; }

.gs-sr {
    position: absolute; width: 1px; height: 1px; overflow: hidden;
    clip: rect(0 0 0 0); white-space: nowrap;
}
.gs-skip {
    position: absolute; left: 16px; top: -60px; z-index: 100;
    background: var(--gs-gold); color: var(--gs-ink) !important;
    padding: 10px 16px; border-radius: 8px; font-weight: 600;
}
.gs-skip:focus { top: 12px; }

/* ---------- Header ---------- */
.gs-header {
    background: var(--gs-ink);
    border-top: 4px solid var(--gs-gold);
    border-bottom: 1px solid var(--gs-line);
    position: relative;
    z-index: 20;
}
.gs-header__bar {
    display: flex; align-items: center; justify-content: space-between; gap: 24px;
    padding-top: 14px; padding-bottom: 14px;
}
.gs-logo { display: flex; align-items: center; flex-shrink: 0; }
.gs-logo img { height: 60px; width: auto; object-fit: contain; display: block; }

.gs-nav { display: flex; align-items: center; gap: 28px; font-size: 15px; font-weight: 500; }
.gs-nav__link { padding: 10px 0; color: var(--gs-gold) !important; }
.gs-nav__link.is-active { box-shadow: inset 0 -2px 0 var(--gs-gold); }

.gs-lang { display: flex; align-items: center; gap: 4px; padding-left: 20px; border-left: 1px solid var(--gs-line); }
.gs-lang__item {
    padding: 8px 10px; border-radius: 6px; font-size: 13px; font-weight: 600; color: var(--gs-muted) !important;
}
.gs-lang__item.is-active { background: var(--gs-gold); color: var(--gs-ink) !important; font-weight: 700; }

.gs-menu-btn {
    display: none; width: 48px; height: 48px; padding: 0;
    align-items: center; justify-content: center;
    border: 1px solid var(--gs-line); border-radius: 10px; background: var(--gs-white);
    color: var(--gs-ink); cursor: pointer;
}
.gs-menu-btn .gs-icon-close { display: none; }
.gs-header.is-open .gs-menu-btn .gs-icon-open { display: none; }
.gs-header.is-open .gs-menu-btn .gs-icon-close { display: block; }

.gs-notice { background: #FBF3DD; border-bottom: 1px solid #EFDDAA; color: #6B4E0B; font-size: 14px; font-weight: 500; }
.gs-notice .gs-wrap { padding-top: 10px; padding-bottom: 10px; }

/* ---------- Hero ---------- */
.gs-hero { background: var(--gs-ink); color: var(--gs-white); }
.gs-hero__inner {
    padding-top: 96px; padding-bottom: 104px;
    display: flex; flex-direction: column; gap: 28px;
}
.gs-hero__title {
    margin: 0; max-width: 900px; color: var(--gs-gold);
    font-family: var(--gs-serif); font-size: 68px; line-height: 1.12; font-weight: 700; letter-spacing: -0.01em;
}
.gs-hero__title span { color: var(--gs-gold); }
.gs-hero__lead { margin: 0; max-width: 680px; font-size: 19px; line-height: 1.65; color: var(--gs-muted-dark); }

.gs-eyebrow {
    display: inline-flex; align-items: center; gap: 12px; flex-wrap: wrap;
    font-size: 13.5px; font-weight: 600; letter-spacing: 0.04em; color: var(--gs-gold-text);
}
.gs-eyebrow--dark { color: var(--gs-gold); }
.gs-eyebrow__line { width: 28px; height: 2px; background: currentColor; }

.gs-search { display: flex; flex-wrap: wrap; gap: 10px; max-width: 780px; margin-top: 8px; }
.gs-search__field {
    flex: 999 1 300px; min-width: 0; height: 60px;
    display: flex; align-items: center; gap: 12px; padding: 0 18px;
    background: var(--gs-white); border-radius: var(--gs-radius); color: var(--gs-muted);
}
.gs-search__field input {
    flex: 1; min-width: 0; height: 100%; border: 0; outline: none; background: transparent;
    font-family: inherit; font-size: 16px; color: var(--gs-ink);
}
.gs-search__field input::placeholder { color: #6B7387; }
.gs-search__field:focus-within { box-shadow: 0 0 0 3px var(--gs-gold); }

.gs-btn {
    height: 60px; padding: 0 28px; border: 0; border-radius: var(--gs-radius);
    font-family: inherit; font-size: 16px; font-weight: 700; cursor: pointer;
}
.gs-btn--gold { flex: 1 1 140px; background: var(--gs-gold); color: var(--gs-ink); }
.gs-btn--gold:hover { background: var(--gs-gold-hover); }

.gs-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 14px; }
.gs-chips__label { color: #AEB6C6; }
.gs .gs-chip {
    color: var(--gs-white); border: 1px solid rgba(255, 255, 255, 0.28); border-radius: 999px; padding: 9px 14px;
}
.gs .gs-chip:hover { color: var(--gs-white); background: rgba(226, 178, 59, 0.16); border-color: var(--gs-gold); }

/* ---------- Sections ---------- */
.gs-section { padding: 88px 0; }
.gs-section--tint { background: var(--gs-tint); }
.gs-section--cards { padding-top: 0; padding-bottom: 96px; }
.gs-section__head {
    display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 40px;
    margin-bottom: 40px;
}
.gs-section__head > div { display: flex; flex-direction: column; gap: 12px; }
.gs-section__head--stack { flex-direction: column; align-items: flex-start; gap: 12px; margin-bottom: 44px; }
.gs-h2 { margin: 0; font-family: var(--gs-serif); font-size: 40px; line-height: 1.2; font-weight: 700; }
.gs-section__text { margin: 0; max-width: 460px; color: var(--gs-muted); line-height: 1.65; }

/* ---------- Fields: area tabs + field cards ---------- */
.gs-fields { display: flex; flex-wrap: wrap; gap: 28px; align-items: flex-start; }
.gs-tabs {
    flex: 1 1 355px; min-width: 0;
    background: var(--gs-white); border: 1px solid var(--gs-line); border-radius: 16px; padding: 10px;
}
.gs-tabs__list { display: flex; flex-direction: column; gap: 4px; }
.gs-tab {
    display: flex; align-items: center; gap: 14px; width: 100%; min-height: 56px;
    padding: 10px 16px; border: 0; border-radius: 10px; background: transparent;
    font-family: inherit; font-size: 16px; font-weight: 500; color: var(--gs-ink); text-align: left; cursor: pointer;
}
.gs-tab:hover { background: #F6F1E3; }
.gs-tab__num { width: 22px; font-family: var(--gs-serif); font-size: 14px; color: var(--gs-gold-text); }
.gs-tab__title { flex: 1; }
.gs-tab__count { font-size: 13px; color: var(--gs-muted); }
.gs-tab[aria-selected="true"] { background: var(--gs-gold); font-weight: 700; }
.gs-tab[aria-selected="true"] .gs-tab__num,
.gs-tab[aria-selected="true"] .gs-tab__count { color: var(--gs-ink); font-weight: 600; }

.gs-tabs__extra {
    display: flex; flex-direction: column; gap: 10px;
    margin: 8px 6px 0; padding: 14px 10px 6px; border-top: 1px solid var(--gs-line); font-size: 15px;
}
.gs-tabs__extra a { display: flex; justify-content: space-between; align-items: center; min-height: 32px; }

.gs-panel { flex: 999 1 560px; min-width: 0; }
.gs-panel[hidden] { display: none; }
.gs-panel__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.gs-panel__title { margin: 0; font-family: var(--gs-serif); font-size: 28px; font-weight: 700; }
.gs-panel__count { font-size: 14px; color: var(--gs-muted); }

.gs-field-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.gs .gs-field {
    display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 64px;
    padding: 14px 18px; background: var(--gs-white); border: 1px solid var(--gs-line); border-radius: var(--gs-radius);
    font-size: 15.5px; font-weight: 500; line-height: 1.4; color: var(--gs-ink);
    transition: border-color .15s, box-shadow .15s;
}
.gs .gs-field:hover { color: var(--gs-ink); border-color: var(--gs-gold); box-shadow: 0 0 0 1px var(--gs-gold); }
.gs-field__arrow { color: #9AA1B2; transition: transform .15s, color .15s; }
.gs-field:hover .gs-field__arrow { color: var(--gs-gold-text); transform: translateX(3px); }

/* ---------- What you find ---------- */
.gs-find { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); border-top: 3px solid var(--gs-gold); }
.gs-find__item {
    display: flex; flex-direction: column; gap: 14px;
    padding: 28px 24px 32px 0; margin-right: 24px; border-bottom: 1px solid var(--gs-line);
}
.gs-find__num { font-family: var(--gs-serif); font-size: 34px; font-weight: 600; line-height: 1; color: var(--gs-gold-text); }
.gs-find__item h3 { margin: 0; font-size: 18px; font-weight: 600; line-height: 1.4; }
.gs-find__item p { margin: 0; font-size: 15px; line-height: 1.65; color: var(--gs-muted); }

/* ---------- Cards ---------- */
.gs-cards { display: flex; flex-wrap: wrap; gap: 20px; }
.gs .gs-card {
    min-width: 0; min-height: 260px; padding: 40px; border-radius: 20px;
    display: flex; flex-direction: column; justify-content: space-between; gap: 36px;
    transition: background .15s;
}
.gs-card__body { display: flex; flex-direction: column; gap: 14px; }
.gs-card__eyebrow { font-size: 13.5px; font-weight: 600; letter-spacing: 0.04em; }
.gs-card__title { font-family: var(--gs-serif); font-size: 34px; font-weight: 700; line-height: 1.25; }
.gs-card__text { font-size: 16px; line-height: 1.65; max-width: 520px; }
.gs-card__cta { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; }
.gs .gs-card--gold { flex: 999 1 520px; background: var(--gs-gold); color: var(--gs-ink); }
.gs .gs-card--gold:hover { background: #D9A92F; color: var(--gs-ink); }
.gs .gs-card--ink { flex: 1 1 320px; background: var(--gs-ink); color: var(--gs-white); }
.gs .gs-card--ink:hover { background: #1B2C4D; color: var(--gs-white); }
.gs-card--ink .gs-card__text { color: var(--gs-muted-dark); }
.gs-card--ink .gs-card__cta { color: var(--gs-gold); }

/* ---------- Footer ---------- */
.gs-footer { background: var(--gs-ink-deep); color: var(--gs-muted-dark); border-top: 4px solid var(--gs-gold); font-size: 14.5px; }
.gs-footer .gs-wrap { padding-top: 64px; padding-bottom: 32px; display: flex; flex-direction: column; gap: 48px; }
.gs-footer__cols { display: flex; flex-wrap: wrap; gap: 40px 56px; }
.gs-footer__about { flex: 2 1 300px; display: flex; flex-direction: column; gap: 18px; }
.gs-footer__about p { margin: 0; max-width: 380px; line-height: 1.7; }
.gs-footer__col { flex: 1 1 150px; display: flex; flex-direction: column; gap: 12px; }
.gs-footer__title { font-size: 13px; font-weight: 700; letter-spacing: 0.04em; color: var(--gs-gold); margin-bottom: 4px; }
.gs .gs-footer a { color: var(--gs-muted-dark); }
.gs .gs-footer a:hover { color: var(--gs-gold); }
.gs-footer__bottom {
    display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px;
    padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, 0.14); font-size: 13px; color: #9AA3B6;
}
.gs-footer__legal { display: flex; flex-wrap: wrap; gap: 24px; }
.gs .gs-footer__bottom a { color: #9AA3B6; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
    .gs-nav { gap: 20px; }
}

@media (max-width: 900px) {
    .gs-menu-btn { display: flex; }
    .gs-nav {
        display: none;
        position: absolute; left: 0; right: 0; top: 100%;
        flex-direction: column; align-items: stretch; gap: 0;
        background: var(--gs-white); border-bottom: 1px solid var(--gs-line);
        box-shadow: 0 12px 24px rgba(19, 33, 60, 0.08);
        padding: 8px 20px 20px; font-size: 16px;
    }
    .gs-header.is-open .gs-nav { display: flex; }
    .gs-nav__link { padding: 14px 0; border-bottom: 1px solid #EEF0F4; }
    .gs-lang { border-left: 0; padding-left: 0; padding-top: 16px; gap: 8px; }
    .gs-lang__item { padding: 10px 16px; border: 1px solid var(--gs-line); font-size: 14px; }
    .gs-lang__item.is-active { border-color: var(--gs-gold); }
}

@media (max-width: 760px) {
    .gs-wrap { padding-left: 20px; padding-right: 20px; }
    .gs-logo img { height: 45px; }
    .gs-hero__inner { padding-top: 56px; padding-bottom: 64px; gap: 22px; }
    .gs-hero__title { font-size: 40px; }
    .gs-hero__lead { font-size: 17px; }
    .gs-search__field, .gs-btn { height: 54px; }
    .gs-section { padding: 64px 0; }
    .gs-section--cards { padding-top: 0; }
    .gs-h2 { font-size: 30px; }
    .gs-section__head { margin-bottom: 28px; }

    .gs-fields { gap: 20px; }
    .gs-tabs { flex-basis: 100%; padding: 6px; border-radius: 12px; }
    .gs-tabs__list { flex-direction: row; overflow-x: auto; scrollbar-width: thin; }
    .gs-tab { width: auto; flex: 0 0 auto; white-space: nowrap; min-height: 48px; }
    .gs-tab__count, .gs-tabs__extra { display: none; }
    .gs-panel__title { font-size: 24px; }
    .gs-field-grid { grid-template-columns: minmax(0, 1fr); }

    .gs-find__item { margin-right: 0; padding-right: 0; }
    .gs .gs-card { padding: 28px; min-height: 0; }
    .gs-card__title { font-size: 28px; }
}

@media (prefers-reduced-motion: reduce) {
    .gs * { transition: none !important; }
}

/* ==========================================================================
   Inner pages: field page, search, news, research, static pages, contact
   ========================================================================== */

.gs-wrap--narrow { max-width: 920px; }
.gs-section--page { padding: 56px 0 96px; }
.gs-link { color: var(--gs-gold-text) !important; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.gs-link:hover { color: var(--gs-ink) !important; }
.gs-break { word-break: break-all; }

/* ---------- Page hero ---------- */
.gs-page-hero { background: var(--gs-ink); color: var(--gs-white); }
.gs-page-hero__inner { padding-top: 48px; padding-bottom: 56px; display: flex; flex-direction: column; gap: 18px; }
.gs-page-hero__title {
    margin: 0; max-width: 960px;
    font-family: var(--gs-serif); font-size: 48px; line-height: 1.18; font-weight: 700; letter-spacing: -0.01em;
    overflow-wrap: anywhere;
}
.gs-page-hero__lead { margin: 0; max-width: 680px; font-size: 18px; line-height: 1.65; color: var(--gs-muted-dark); }
.gs-page-hero__meta { margin: 0; font-size: 15px; color: var(--gs-gold); font-weight: 600; }
.gs-page-hero .gs-search { margin-top: 10px; }

.gs-crumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 0; margin: 0; padding: 0; list-style: none; font-size: 14px; }
.gs-crumbs li { display: flex; align-items: center; color: #AEB6C6; min-width: 0; }
.gs-crumbs li + li::before { content: "/"; margin: 0 10px; color: #5C6884; }
.gs .gs-crumbs a { color: #AEB6C6; }
.gs .gs-crumbs a:hover { color: var(--gs-gold); }
.gs-crumbs [aria-current] { color: var(--gs-white); max-width: 46ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---------- Field sections bar ---------- */
.gs-subnav {
    position: sticky; top: 0; z-index: 15;
    background: var(--gs-white); border-bottom: 1px solid var(--gs-line);
    box-shadow: 0 6px 18px rgba(19, 33, 60, 0.05);
}
.gs-subnav__list { display: flex; overflow-x: auto; scrollbar-width: none; }
.gs-subnav__list::-webkit-scrollbar { display: none; }
.gs .gs-subnav__link {
    flex: 0 0 auto; display: flex; align-items: center; min-height: 60px; padding: 0 4px;
    margin-right: 26px; border-bottom: 3px solid transparent;
    font-size: 15.5px; font-weight: 500; color: var(--gs-muted); white-space: nowrap;
}
.gs .gs-subnav__link:hover { color: var(--gs-ink); border-bottom-color: #EFDDAA; }
.gs .gs-subnav__link[aria-current="page"] { color: var(--gs-ink); font-weight: 700; border-bottom-color: var(--gs-gold); }

/* ---------- Empty states ---------- */
.gs-empty {
    margin: 0; padding: 40px 28px; text-align: center;
    background: var(--gs-tint); border: 1px dashed #DCD8CC; border-radius: var(--gs-radius);
    color: var(--gs-muted); font-size: 16px;
}
.gs-empty--inline { padding: 18px 20px; text-align: left; font-size: 15px; }

/* ---------- Rich text from the admin ---------- */
.gs-prose { font-size: 16px; line-height: 1.75; color: #2A344A; overflow-wrap: break-word; }
.gs-prose--lg { font-size: 17.5px; line-height: 1.8; }
.gs-prose > :first-child { margin-top: 0; }
.gs-prose > :last-child { margin-bottom: 0; }
.gs-prose p, .gs-prose ul, .gs-prose ol, .gs-prose blockquote, .gs-prose table { margin: 0 0 1.1em; }
.gs-prose h1, .gs-prose h2, .gs-prose h3, .gs-prose h4 { margin: 1.6em 0 0.6em; font-family: var(--gs-serif); line-height: 1.3; color: var(--gs-ink); }
.gs-prose h1, .gs-prose h2 { font-size: 1.5em; }
.gs-prose h3 { font-size: 1.25em; }
.gs-prose h4 { font-size: 1.1em; }
.gs-prose ul, .gs-prose ol { padding-left: 1.4em; }
.gs-prose li { margin-bottom: 0.4em; }
.gs-prose li::marker { color: var(--gs-gold-text); }
.gs-prose a { color: var(--gs-gold-text) !important; text-decoration: underline; text-underline-offset: 3px; }
.gs-prose blockquote { padding: 4px 0 4px 20px; border-left: 3px solid var(--gs-gold); color: var(--gs-muted); font-style: italic; }
.gs-prose img { height: auto !important; border-radius: 8px; }
.gs-prose table { display: block; overflow-x: auto; border-collapse: collapse; }
.gs-prose td, .gs-prose th { padding: 8px 12px; border: 1px solid var(--gs-line); }
/* Text pasted from Word carries fixed fonts and sizes; keep the page typography */
.gs-prose span, .gs-prose p, .gs-prose li, .gs-prose font { font-family: inherit !important; }
.gs-prose span, .gs-prose font { font-size: inherit !important; }

/* ---------- Field page: development of scientific thought ---------- */
.gs-doc { display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-start; }
.gs-doc__toc {
    flex: 1 1 260px; position: sticky; top: 92px;
    max-height: calc(100vh - 120px); overflow-y: auto;
    padding: 22px 22px 18px; background: var(--gs-tint); border-radius: 16px;
}
.gs-doc__toc-title { display: block; margin-bottom: 12px; font-size: 13px; font-weight: 700; letter-spacing: 0.04em; color: var(--gs-gold-text); }
.gs-doc__toc ol { margin: 0; padding: 0; list-style: none; counter-reset: toc; display: flex; flex-direction: column; gap: 2px; }
.gs-doc__toc li { counter-increment: toc; }
.gs .gs-doc__toc a {
    display: flex; gap: 12px; padding: 8px 10px; border-radius: 8px;
    font-size: 14.5px; line-height: 1.45; color: var(--gs-ink);
}
.gs .gs-doc__toc a::before { content: counter(toc, decimal-leading-zero); font-family: var(--gs-serif); font-size: 13px; color: var(--gs-gold-text); padding-top: 1px; }
.gs .gs-doc__toc a:hover { background: var(--gs-white); color: var(--gs-ink); }
.gs-doc__body { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 56px; }
.gs-doc__section { scroll-margin-top: 92px; }
.gs-doc__title {
    display: flex; align-items: baseline; gap: 16px; margin: 0 0 20px; padding-bottom: 16px;
    border-bottom: 1px solid var(--gs-line);
    font-family: var(--gs-serif); font-size: 28px; line-height: 1.3; font-weight: 700;
}
.gs-doc__num { font-size: 18px; font-weight: 600; color: var(--gs-gold-text); }

/* ---------- Field page: institutions ---------- */
.gs-stack { display: flex; flex-direction: column; gap: 20px; max-width: 920px; }
.gs-sheet { padding: 36px 40px; background: var(--gs-white); border: 1px solid var(--gs-line); border-top: 3px solid var(--gs-gold); border-radius: var(--gs-radius); }

/* ---------- Search box on light backgrounds ---------- */
.gs-filter { display: flex; flex-wrap: wrap; gap: 10px; max-width: 760px; margin-bottom: 28px; }
.gs-filter__field {
    flex: 999 1 280px; min-width: 0; height: 54px;
    display: flex; align-items: center; gap: 12px; padding: 0 16px;
    background: var(--gs-white); border: 1px solid #CDD2DC; border-radius: var(--gs-radius); color: var(--gs-muted);
}
.gs-filter__field input {
    flex: 1; min-width: 0; height: 100%; border: 0; outline: none; background: transparent;
    font-family: inherit; font-size: 16px; color: var(--gs-ink);
}
.gs-filter__field input::placeholder { color: #6B7387; }
.gs-filter__field:focus-within { border-color: var(--gs-gold); box-shadow: 0 0 0 3px rgba(226, 178, 59, 0.35); }
.gs-btn--ink { flex: 1 1 120px; height: 54px; background: var(--gs-ink); color: var(--gs-white); }
.gs-btn--ink:hover { background: #1B2C4D; }

.gs-results-head {
    display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 24px;
    margin-bottom: 16px; padding-bottom: 14px; border-bottom: 1px solid var(--gs-line);
    font-size: 15px; color: var(--gs-muted);
}
.gs-results-head p { margin: 0; }
.gs-results-head strong { color: var(--gs-ink); font-weight: 600; }

/* ---------- Publication records (bibliography, sources, search) ---------- */
.gs-records { display: flex; flex-direction: column; gap: 10px; }
.gs-record { background: var(--gs-white); border: 1px solid var(--gs-line); border-radius: var(--gs-radius); transition: border-color .15s, box-shadow .15s; }
.gs-record:hover { border-color: #D8C58E; }
.gs-record[open] { border-color: var(--gs-gold); box-shadow: 0 0 0 1px var(--gs-gold); }
.gs-record__summary {
    display: flex; align-items: flex-start; gap: 18px; padding: 18px 20px;
    list-style: none; cursor: pointer; border-radius: var(--gs-radius);
}
.gs-record__summary::-webkit-details-marker { display: none; }
.gs-record__summary:focus-visible { outline: 3px solid var(--gs-gold); outline-offset: 2px; }
.gs-record__num { min-width: 34px; padding-top: 2px; font-family: var(--gs-serif); font-size: 15px; font-weight: 600; color: var(--gs-gold-text); }
.gs-record__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.gs-record__title { font-size: 17px; font-weight: 600; line-height: 1.45; color: var(--gs-ink); overflow-wrap: anywhere; }
.gs-record__authors { font-size: 15px; color: var(--gs-muted); }
.gs-record__tags { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 13.5px; color: var(--gs-muted); }
.gs-tag { padding: 2px 8px; border-radius: 6px; background: #FBF3DD; color: #6B4E0B; font-size: 12px; font-weight: 700; letter-spacing: 0.03em; }
.gs-record__toggle {
    flex-shrink: 0; position: relative; width: 32px; height: 32px; margin-top: -2px;
    border: 1px solid var(--gs-line); border-radius: 50%;
}
.gs-record__toggle::before, .gs-record__toggle::after {
    content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; margin: -1px 0 0 -6px;
    background: var(--gs-ink); transition: transform .15s;
}
.gs-record__toggle::after { transform: rotate(90deg); }
.gs-record[open] .gs-record__toggle { background: var(--gs-gold); border-color: var(--gs-gold); }
.gs-record[open] .gs-record__toggle::after { transform: rotate(0deg); }
.gs-record__body { padding: 4px 20px 22px 72px; display: flex; flex-direction: column; gap: 18px; }
.gs-records--compact .gs-record__body { padding-left: 20px; }

.gs-meta { margin: 0; display: flex; flex-direction: column; border-top: 1px solid var(--gs-line); }
.gs-meta__row { display: flex; flex-wrap: wrap; gap: 4px 24px; padding: 11px 0; border-bottom: 1px solid #EEF0F4; font-size: 15px; line-height: 1.55; }
.gs-meta dt { flex: 0 0 210px; color: var(--gs-muted); }
.gs-meta dd { flex: 1 1 260px; min-width: 0; margin: 0; color: var(--gs-ink); }

.gs-files { display: flex; flex-wrap: wrap; gap: 10px; }
.gs .gs-file {
    display: inline-flex; align-items: center; gap: 12px; max-width: 100%; min-height: 48px; padding: 8px 16px 8px 8px;
    background: var(--gs-ink); color: var(--gs-white); border-radius: 10px; font-size: 14.5px; font-weight: 600;
}
.gs .gs-file:hover { background: #1B2C4D; color: var(--gs-white); }
.gs-file__icon { padding: 6px 8px; border-radius: 6px; background: var(--gs-gold); color: var(--gs-ink); font-size: 11.5px; font-weight: 800; letter-spacing: 0.03em; }
.gs-file__name { min-width: 0; overflow-wrap: anywhere; }
.gs-file__name small { margin-left: 6px; font-weight: 500; color: var(--gs-muted-dark); }

/* ---------- Pagination ---------- */
.gs-pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 16px; margin-top: 36px; }
.gs-pager__pages { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; }
.gs .gs-pager__num, .gs-pager__gap {
    display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 10px;
    border-radius: 10px; font-size: 15px; font-weight: 600;
}
.gs .gs-pager__num { border: 1px solid var(--gs-line); color: var(--gs-ink); }
.gs .gs-pager__num:hover { border-color: var(--gs-gold); color: var(--gs-ink); }
.gs-pager__num.is-active { background: var(--gs-gold); border-color: var(--gs-gold); }
.gs-pager__gap { color: var(--gs-muted); }
.gs .gs-pager__btn {
    display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 16px;
    border: 1px solid var(--gs-line); border-radius: 10px; font-size: 15px; font-weight: 600; color: var(--gs-ink);
}
.gs .gs-pager__btn:hover { border-color: var(--gs-gold); color: var(--gs-ink); }
.gs-pager__btn.is-disabled { color: #A9AFBD !important; background: #F6F7F9; }

/* ---------- Field page: "change field" menu (in the hero) ---------- */
.gs-switch { position: relative; align-self: flex-start; margin-top: 4px; }
/* Lift the hero above the sticky sections bar while the menu is open */
.gs-page-hero:has(.gs-switch__panel:not([hidden])) { position: relative; z-index: 30; }
.gs-switch__btn {
    display: inline-flex; align-items: center; gap: 10px; height: 46px; padding: 0 18px;
    border: 1px solid rgba(255, 255, 255, 0.3); border-radius: 999px; background: transparent;
    font-family: inherit; font-size: 15px; font-weight: 600; color: var(--gs-white); cursor: pointer;
    transition: background .15s, border-color .15s;
}
.gs-switch__btn:hover { border-color: var(--gs-gold); background: rgba(226, 178, 59, 0.12); }
.gs-switch__btn[aria-expanded="true"] { background: var(--gs-gold); border-color: var(--gs-gold); color: var(--gs-ink); }
.gs-switch__chevron { transition: transform .15s; }
.gs-switch__btn[aria-expanded="true"] .gs-switch__chevron { transform: rotate(180deg); }
.gs-switch__panel {
    position: absolute; left: 0; top: calc(100% + 10px); z-index: 40;
    width: min(980px, calc(100vw - 64px)); max-height: min(70vh, 640px); overflow-y: auto;
    padding-bottom: 22px; background: var(--gs-white); color: var(--gs-ink);
    border-radius: 16px; box-shadow: 0 24px 60px rgba(14, 24, 48, 0.35);
}
.gs-switch__panel[hidden] { display: none; }
.gs-switch__search {
    position: sticky; top: 0; z-index: 1;
    display: flex; align-items: center; gap: 10px; padding: 16px 24px;
    background: var(--gs-white); border-bottom: 1px solid var(--gs-line); color: var(--gs-muted);
}
.gs-switch__search input {
    flex: 1; min-width: 0; height: 44px; padding: 0 14px;
    border: 1px solid #CDD2DC; border-radius: 10px; outline: none;
    font-family: inherit; font-size: 15.5px; color: var(--gs-ink);
}
.gs-switch__search input:focus { border-color: var(--gs-gold); box-shadow: 0 0 0 3px rgba(226, 178, 59, 0.35); }
.gs-switch__areas { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 24px 28px; padding: 20px 24px 0; }
.gs-switch__area[hidden], .gs-switch__area li[hidden] { display: none; }
.gs-switch__area-title {
    display: block; margin-bottom: 6px; padding-bottom: 8px; border-bottom: 2px solid var(--gs-gold);
    font-size: 12.5px; font-weight: 700; letter-spacing: 0.04em; color: var(--gs-gold-text);
}
.gs-switch__area ul { margin: 0; padding: 0; list-style: none; }
.gs .gs-switch__area a { display: block; padding: 6px 8px; border-radius: 6px; font-size: 14.5px; line-height: 1.4; color: var(--gs-ink); }
.gs .gs-switch__area a:hover { background: #F6F1E3; color: var(--gs-ink); }
.gs .gs-switch__area a[aria-current="page"] { background: var(--gs-gold); font-weight: 700; }
.gs-switch__none { margin: 0; padding: 20px 24px 0; color: var(--gs-muted); }

/* ---------- Scientists ---------- */
.gs-people { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.gs-person {
    display: flex; flex-direction: column; align-items: center; gap: 6px; width: 100%;
    padding: 26px 18px 22px; background: var(--gs-white); border: 1px solid var(--gs-line); border-radius: 16px;
    font-family: inherit; text-align: center; color: var(--gs-ink); cursor: pointer;
    transition: border-color .2s, box-shadow .2s, transform .2s;
}
.gs-person:hover { border-color: var(--gs-gold); box-shadow: 0 12px 28px rgba(19, 33, 60, 0.10); transform: translateY(-2px); }
.gs-person:focus-visible { outline: 3px solid var(--gs-gold); outline-offset: 3px; }
.gs-person__avatar {
    display: flex; align-items: center; justify-content: center; width: 76px; height: 76px; margin-bottom: 8px;
    border-radius: 50%; overflow: hidden; box-shadow: 0 0 0 4px var(--gs-white), 0 0 0 5px var(--gs-line);
    font-family: var(--gs-serif); font-size: 25px; font-weight: 700;
    transition: box-shadow .2s;
}
.gs-person:hover .gs-person__avatar { box-shadow: 0 0 0 4px var(--gs-white), 0 0 0 6px var(--gs-gold); }
.gs-person__avatar img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.gs-person__name { font-family: var(--gs-serif); font-size: 17px; font-weight: 700; line-height: 1.3; overflow-wrap: anywhere; }
.gs-person__dates { font-size: 13.5px; color: var(--gs-muted); }
.gs-person__works { margin-top: 4px; padding: 2px 10px; border-radius: 999px; background: #FBF3DD; color: #6B4E0B; font-size: 12.5px; font-weight: 600; }

/* Initials backgrounds: five muted tones so a page without photos isn't monotonous */
.gs-tone-0 { background: #F3E7C4; color: #6B4E0B; }
.gs-tone-1 { background: #E1E7F1; color: #2B3E66; }
.gs-tone-2 { background: #E2ECE4; color: #2F5A3E; }
.gs-tone-3 { background: #F2E2DA; color: #7A3B22; }
.gs-tone-4 { background: #EAE4F1; color: #4F3B6B; }

/* ---------- Dialog: scientist profile ---------- */
.gs-dialog {
    width: min(980px, calc(100% - 32px)); max-width: none; height: min(86vh, 860px); max-height: none; padding: 0;
    border: 0; border-radius: 20px; overflow: hidden; background: var(--gs-white); color: var(--gs-ink);
    box-shadow: 0 30px 80px rgba(14, 24, 48, 0.35);
}
.gs-dialog::backdrop { background: rgba(14, 24, 48, 0.62); }
body:has(.gs-dialog[open]) { overflow: hidden; }
.gs-dialog__inner { position: relative; height: 100%; display: flex; }
.gs-dialog__body { flex: 1; min-width: 0; display: flex; }
.gs-dialog__close {
    position: absolute; top: 18px; right: 18px; z-index: 3;
    display: flex; align-items: center; justify-content: center; width: 44px; height: 44px;
    border: 1px solid rgba(255, 255, 255, 0.28); border-radius: 50%;
    background: rgba(255, 255, 255, 0.08); color: var(--gs-white); cursor: pointer;
}
.gs-dialog__close:hover { background: var(--gs-gold); border-color: var(--gs-gold); color: var(--gs-ink); }

.gs-pf { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.gs-pf__head { display: flex; align-items: center; gap: 24px; padding: 30px 84px 28px 40px; background: var(--gs-ink); color: var(--gs-white); }
.gs-pf__photo {
    flex-shrink: 0; display: flex; align-items: center; justify-content: center;
    width: 96px; height: 96px; overflow: hidden; border-radius: 50%; box-shadow: 0 0 0 3px var(--gs-gold);
    font-family: var(--gs-serif); font-size: 32px; font-weight: 700;
}
.gs-pf__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.gs-pf__id { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.gs-pf__id .gs-eyebrow { color: var(--gs-gold); }
.gs-pf__name { margin: 0; font-family: var(--gs-serif); font-size: 34px; line-height: 1.2; font-weight: 700; overflow-wrap: anywhere; }
.gs-pf__dates { margin: 0; font-size: 15px; color: var(--gs-muted-dark); }

.gs-pf__tabs { flex-shrink: 0; display: flex; gap: 28px; padding: 0 40px; border-bottom: 1px solid var(--gs-line); }
.gs-pf__tab {
    display: inline-flex; align-items: center; gap: 8px; min-height: 56px; padding: 0 2px;
    border: 0; border-bottom: 3px solid transparent; background: transparent;
    font-family: inherit; font-size: 15.5px; font-weight: 500; color: var(--gs-muted); cursor: pointer;
}
.gs-pf__tab:hover { color: var(--gs-ink); }
.gs-pf__tab[aria-selected="true"] { color: var(--gs-ink); font-weight: 700; border-bottom-color: var(--gs-gold); }
.gs-pf__tab span { padding: 1px 8px; border-radius: 999px; background: #FBF3DD; color: #6B4E0B; font-size: 12.5px; font-weight: 700; }

.gs-pf__panel { flex: 1; min-height: 0; overflow-y: auto; padding: 28px 40px 36px; }
.gs-pf__panel[hidden] { display: none; }
.gs-pf__panel--works { padding-top: 0; }
.gs-bib__tools {
    position: sticky; top: 0; z-index: 2;
    display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px;
    margin: 0 -40px 16px; padding: 16px 40px; background: var(--gs-white); border-bottom: 1px solid var(--gs-line);
}
.gs-bib__search { flex: 1 1 280px; height: 46px; }
.gs-bib__count { font-size: 14px; color: var(--gs-muted); }
[data-gs-bib-item][hidden] { display: none; }
.gs-more {
    display: block; margin: 18px auto 0; height: 46px; padding: 0 24px;
    border: 1px solid #CDD2DC; border-radius: 10px; background: var(--gs-white);
    font-family: inherit; font-size: 15px; font-weight: 600; color: var(--gs-ink); cursor: pointer;
}
.gs-more:hover { border-color: var(--gs-gold); background: #FBF3DD; }
.gs-more[hidden] { display: none; }

.gs-bio { margin: 0; display: flex; flex-direction: column; border-top: 3px solid var(--gs-gold); }
.gs-bio__row { display: flex; flex-wrap: wrap; gap: 6px 28px; padding: 16px 0; border-bottom: 1px solid var(--gs-line); }
.gs-bio dt { flex: 0 0 200px; font-size: 14.5px; font-weight: 600; color: var(--gs-ink); }
.gs-bio dd { flex: 1 1 320px; min-width: 0; margin: 0; font-size: 15.5px; }

@media (max-width: 1000px) {
    .gs-people { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
}

/* ---------- News / research ---------- */
.gs-posts { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }
.gs .gs-post {
    display: flex; flex-direction: column; overflow: hidden;
    background: var(--gs-white); border: 1px solid var(--gs-line); border-radius: 16px; color: var(--gs-ink);
    transition: border-color .15s, box-shadow .15s;
}
.gs .gs-post:hover { color: var(--gs-ink); border-color: var(--gs-gold); box-shadow: 0 0 0 1px var(--gs-gold); }
.gs-post__media { display: block; aspect-ratio: 16 / 10; background: var(--gs-tint); overflow: hidden; }
.gs-post__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.gs-post:hover .gs-post__media img { transform: scale(1.03); }
.gs-post__body { flex: 1; display: flex; flex-direction: column; gap: 10px; padding: 22px 24px 24px; }
.gs-post__date { font-size: 13.5px; font-weight: 600; color: var(--gs-gold-text); }
.gs-post__title {
    flex: 1; font-family: var(--gs-serif); font-size: 21px; line-height: 1.35; font-weight: 700;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.gs-post__more { margin-top: 6px; font-size: 15px; font-weight: 700; color: var(--gs-ink); }

.gs-article { display: flex; flex-wrap: wrap; gap: 56px; align-items: flex-start; }
.gs-article__main { flex: 999 1 600px; min-width: 0; display: flex; flex-direction: column; gap: 32px; }
.gs-article__cover { margin: 0; border-radius: 16px; overflow: hidden; background: var(--gs-tint); }
/* Covers are often posters: show the whole image, never crop it */
.gs-article__cover img { display: block; width: 100%; height: auto; max-height: 760px; object-fit: contain; }
.gs .gs-back { align-self: flex-start; display: inline-flex; gap: 10px; padding-top: 24px; font-weight: 700; color: var(--gs-ink); }
.gs .gs-back:hover { color: var(--gs-gold-text); }
.gs-article__aside { flex: 1 1 300px; position: sticky; top: 24px; }
.gs-aside__title { margin: 0 0 16px; padding-bottom: 12px; border-bottom: 3px solid var(--gs-gold); font-size: 13px; font-weight: 700; letter-spacing: 0.04em; color: var(--gs-gold-text); }
.gs-mini-list { display: flex; flex-direction: column; }
.gs .gs-mini { display: flex; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--gs-line); color: var(--gs-ink); }
.gs .gs-mini:hover { color: var(--gs-gold-text); }
.gs-mini__media { flex-shrink: 0; width: 96px; aspect-ratio: 4 / 3; border-radius: 8px; overflow: hidden; background: var(--gs-tint); }
.gs-mini__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gs-mini__body { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.gs-mini__body time { font-size: 12.5px; color: var(--gs-muted); }
.gs-mini__title { font-size: 15px; font-weight: 600; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* ---------- Contact ---------- */
.gs-contact { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 24px; align-items: stretch; }
.gs-contact__info { padding: 36px 36px 20px; background: var(--gs-white); border: 1px solid var(--gs-line); border-top: 4px solid var(--gs-gold); border-radius: 16px; }
.gs-contact__title { margin: 0 0 8px; font-family: var(--gs-serif); font-size: 26px; font-weight: 700; line-height: 1.3; }
.gs-contact__list { margin: 0; padding: 0; list-style: none; }
.gs-contact__row { display: flex; align-items: flex-start; gap: 18px; padding: 20px 0; border-bottom: 1px solid var(--gs-line); }
.gs-contact__row:last-child { border-bottom: 0; }
.gs-contact__icon { flex-shrink: 0; display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 12px; background: #FBF3DD; color: var(--gs-gold-text); }
.gs-contact__body { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 3px; }
.gs-contact__label { font-size: 13px; font-weight: 600; letter-spacing: 0.04em; color: var(--gs-muted); }
.gs .gs-contact__value { font-size: 17px; font-weight: 600; line-height: 1.45; color: var(--gs-ink); overflow-wrap: anywhere; }
.gs a.gs-contact__value:hover { color: var(--gs-gold-text); }
.gs .gs-contact__action { margin-top: 4px; font-size: 14px; font-weight: 600; color: var(--gs-gold-text); }
.gs .gs-contact__action:hover { color: var(--gs-ink); }

.gs-contact__map { min-height: 420px; overflow: hidden; border: 1px solid var(--gs-line); border-radius: 16px; background: var(--gs-tint); }
.gs-contact__map iframe { display: block; width: 100%; height: 100%; min-height: 420px; border: 0; }

.gs-contact__cta {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 40px;
    margin-top: 24px; padding: 36px 40px; border-radius: 16px; background: var(--gs-ink); color: var(--gs-white);
}
.gs-contact__cta-text { display: flex; flex-direction: column; gap: 6px; }
.gs-contact__cta h2 { margin: 0; font-family: var(--gs-serif); font-size: 28px; font-weight: 700; line-height: 1.25; }
.gs-contact__cta p { margin: 0; color: var(--gs-muted-dark); }
.gs .gs-contact__cta-btn { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 10px; color: var(--gs-ink); }
.gs .gs-contact__cta-btn:hover { color: var(--gs-ink); }

@media (max-width: 900px) {
    .gs-contact { grid-template-columns: minmax(0, 1fr); }
    .gs-contact__map, .gs-contact__map iframe { min-height: 320px; }
}
@media (max-width: 760px) {
    .gs-contact__info { padding: 24px 20px 8px; }
    .gs-contact__cta { padding: 28px 22px; }
    .gs-contact__cta h2 { font-size: 24px; }
    .gs .gs-contact__cta-btn { width: 100%; justify-content: center; }
}

/* ---------- Inner pages: responsive ---------- */
@media (max-width: 900px) {
    .gs-doc { gap: 28px; }
    .gs-doc__toc { position: static; max-height: none; flex-basis: 100%; }
    .gs-article__aside { position: static; }
}

@media (max-width: 760px) {
    .gs-section--page { padding: 32px 0 64px; }
    .gs-page-hero__inner { padding-top: 32px; padding-bottom: 40px; gap: 14px; }
    .gs-page-hero__title { font-size: 32px; }
    .gs-page-hero__lead { font-size: 16.5px; }
    .gs-crumbs [aria-current] { max-width: 24ch; }
    .gs .gs-subnav__link { min-height: 54px; margin-right: 18px; font-size: 15px; }

    .gs-doc__title { font-size: 23px; gap: 12px; }
    .gs-doc__section { scroll-margin-top: 70px; }
    .gs-sheet { padding: 24px 20px; }

    .gs-record__summary { gap: 12px; padding: 16px 14px; }
    .gs-record__num { min-width: 0; }
    .gs-record__title { font-size: 16px; }
    .gs-record__body { padding: 0 14px 18px; }
    .gs-meta dt { flex-basis: 100%; font-size: 13.5px; }

    .gs-switch__panel { width: calc(100vw - 40px); max-height: 65vh; }
    .gs-switch__search { padding: 12px 16px; }
    .gs-switch__areas { padding: 16px 16px 0; gap: 20px; }

    .gs-person { padding: 20px 12px 16px; }
    .gs-person__avatar { width: 64px; height: 64px; font-size: 21px; }
    .gs-person__name { font-size: 15.5px; }
    .gs-dialog { width: 100%; height: 100%; max-height: 100%; margin: 0; border-radius: 0; }
    .gs-dialog__close { top: 12px; right: 12px; }
    .gs-pf__head { gap: 16px; padding: 20px 64px 20px 20px; }
    .gs-pf__photo { width: 68px; height: 68px; font-size: 23px; }
    .gs-pf__name { font-size: 23px; }
    .gs-pf__tabs { padding: 0 20px; gap: 20px; }
    .gs-pf__panel { padding: 20px 20px 32px; }
    .gs-pf__panel--works { padding-top: 0; }
    .gs-bib__tools { margin: 0 -20px 14px; padding: 12px 20px; }
    .gs-bio dt { flex-basis: 100%; }

    .gs-posts { grid-template-columns: minmax(0, 1fr); }
    .gs-article { gap: 40px; }
    .gs .gs-pager__btn { padding: 0 12px; }
}

/* ---------- Search: matches inside the PDF texts ---------- */
.gs-results-head__scope { color: var(--gs-muted); }
.gs-text-hits { margin-top: 56px; padding-top: 40px; border-top: 3px solid var(--gs-gold); }
.gs-text-hits__head { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 20px; }
.gs-text-hits__icon { flex-shrink: 0; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 12px; background: var(--gs-ink); color: var(--gs-gold); }
.gs-text-hits__title { margin: 0 0 4px; font-family: var(--gs-serif); font-size: 26px; font-weight: 700; line-height: 1.3; }
.gs-text-hits__head p { margin: 0; font-size: 15px; color: var(--gs-muted); }

.gs-record__hit {
    display: flex; flex-direction: column; gap: 6px; margin-top: 6px; padding: 12px 14px;
    background: var(--gs-tint); border-left: 3px solid var(--gs-gold); border-radius: 0 8px 8px 0;
}
.gs-record__hit-page { font-size: 12.5px; font-weight: 700; letter-spacing: 0.03em; color: var(--gs-gold-text); }
.gs-record__hit-page span { margin-left: 6px; font-weight: 500; color: var(--gs-muted); letter-spacing: 0; }
.gs-record__hit-text { font-size: 14.5px; line-height: 1.65; color: #3A4458; overflow-wrap: anywhere; }
.gs-record__hit-text mark { padding: 0 2px; border-radius: 3px; background: #F6E3A8; color: var(--gs-ink); font-weight: 600; }
.gs .gs-file--hit { align-self: flex-start; background: var(--gs-gold); color: var(--gs-ink); }
.gs .gs-file--hit:hover { background: var(--gs-gold-hover); color: var(--gs-ink); }
.gs-file--hit .gs-file__icon { background: var(--gs-ink); color: var(--gs-gold); }

@media (max-width: 760px) {
    .gs-text-hits { margin-top: 40px; padding-top: 28px; }
    .gs-text-hits__title { font-size: 22px; }
}
.gs-record--volume .gs-record__summary { cursor: default; }
.gs-record--volume .gs-file--hit { margin-top: 6px; }

/* ==========================================================================
   Inner pages: light page header (navy only in the text, a navy dot grid on the right).
   The home page hero and the footer stay navy.
   ========================================================================== */

/* Page header: very light navy tint, navy dot grid fading in on the right */
.gs-page-hero {
    position: relative;   /* no overflow: hidden — it would clip the "change field" menu */
    background:
        radial-gradient(circle, rgba(19, 33, 60, 0.11) 1.2px, transparent 1.6px) 0 0 / 22px 22px,
        linear-gradient(180deg, #F2F4F8 0%, #F8F9FB 100%);
    color: var(--gs-ink);
    border-bottom: 1px solid #E3E7EE;
}
/* the dots only on the right, fading out towards the text */
.gs-page-hero::before {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(90deg, #F3F5F9 0%, #F3F5F9 45%, rgba(243, 245, 249, 0.6) 70%, rgba(243, 245, 249, 0) 100%);
}
.gs-page-hero__inner { position: relative; }
/* short gold rule above the title, echoing the home page eyebrow */
.gs-page-hero__title::before {
    content: ""; display: block; width: 44px; height: 3px; margin-bottom: 18px; background: var(--gs-gold);
}
.gs-page-hero__lead { color: var(--gs-muted); }
.gs-page-hero__meta { color: var(--gs-gold-text); }
.gs-crumbs li { color: var(--gs-muted); }
.gs-crumbs li + li::before { color: #B9C0CD; }
.gs .gs-crumbs a { color: var(--gs-muted); }
.gs .gs-crumbs a:hover { color: var(--gs-gold-text); }
.gs-crumbs [aria-current] { color: var(--gs-ink); font-weight: 600; }

.gs-page-hero .gs-search__field { border: 1px solid #CDD3DE; box-shadow: 0 1px 2px rgba(19, 33, 60, 0.05); }
.gs-page-hero .gs-search__field:focus-within { border-color: var(--gs-gold); box-shadow: 0 0 0 3px rgba(226, 178, 59, 0.35); }

.gs-switch__btn { border-color: #CDD3DE; background: var(--gs-white); color: var(--gs-ink); }
.gs-switch__btn:hover { background: #FBF3DD; }

/* Scientist profile: the same light header */
.gs-pf__head { background: linear-gradient(180deg, #F2F4F8 0%, #F8F9FB 100%); color: var(--gs-ink); border-bottom: 1px solid #E3E7EE; }
.gs-pf__id .gs-eyebrow { color: var(--gs-gold-text); }
.gs-pf__dates { color: var(--gs-muted); }
.gs-dialog__close { border-color: #DCE1E9; background: var(--gs-white); color: var(--gs-ink); }

/* Lighter accents inside the pages */
.gs .gs-file { background: var(--gs-white); color: var(--gs-ink); border: 1px solid #D9DEE7; }
.gs .gs-file:hover { background: #F4F6F9; border-color: var(--gs-ink); color: var(--gs-ink); }
.gs-file__name small { color: var(--gs-muted); }
.gs-contact__cta { background: #F2F4F8; color: var(--gs-ink); border: 1px solid #E3E7EE; }
.gs-contact__cta p { color: var(--gs-muted); }

/* Browser autofill paints inputs light blue: keep the field white */
.gs input:-webkit-autofill,
.gs input:-webkit-autofill:hover,
.gs input:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 1000px var(--gs-white) inset;
    box-shadow: 0 0 0 1000px var(--gs-white) inset;
    -webkit-text-fill-color: var(--gs-ink);
    caret-color: var(--gs-ink);
    transition: background-color 9999s ease-out;
}

/* ==========================================================================
   Field page: workspace layout (side panel + content) and bibliography filters
   ========================================================================== */

.gs-ws { padding: 32px 0 96px; }
.gs-ws__grid { display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: 40px; align-items: start; }

/* ---------- Side panel ---------- */
.gs-ws__side {
    position: sticky; top: 16px; z-index: 5;
    padding: 24px 18px 18px; border: 1px solid #E3E7EE; border-radius: 16px;
    background:
        linear-gradient(180deg, #F2F4F8 0%, #F2F4F8 45%, rgba(242, 244, 248, 0.82) 100%),
        radial-gradient(circle, rgba(19, 33, 60, 0.11) 1.2px, transparent 1.6px) 0 0 / 22px 22px,
        #F7F8FB;
}
.gs-ws__id { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 0 4px 18px; border-bottom: 1px solid #DDE2EA; }
.gs-ws__id .gs-crumbs ol { font-size: 13px; }
.gs-ws__area { font-size: 12.5px; font-weight: 700; letter-spacing: 0.05em; color: var(--gs-gold-text); }
.gs-ws__title { margin: 0; font-family: var(--gs-serif); font-size: 34px; line-height: 1.15; font-weight: 700; overflow-wrap: anywhere; }
.gs-ws__title::before { content: ""; display: block; width: 40px; height: 3px; margin-bottom: 14px; background: var(--gs-gold); }
.gs-ws__id .gs-switch { margin-top: 4px; }

.gs-ws__nav { display: flex; flex-direction: column; gap: 2px; padding-top: 14px; }
.gs .gs-ws__link {
    display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center; gap: 10px;
    padding: 10px 12px; border-radius: 10px; font-size: 14.5px; font-weight: 500; line-height: 1.35; color: var(--gs-ink);
}
.gs-ws__link svg { color: var(--gs-muted); }
.gs .gs-ws__link:hover { background: rgba(255, 255, 255, 0.75); color: var(--gs-ink); }
.gs .gs-ws__link[aria-current="page"] {
    background: var(--gs-white); font-weight: 700;
    box-shadow: inset 3px 0 0 var(--gs-gold), 0 1px 2px rgba(19, 33, 60, 0.06);
}
.gs-ws__link[aria-current="page"] svg { color: var(--gs-gold-text); }
.gs-ws__count { font-size: 12.5px; font-weight: 500; color: var(--gs-muted); font-variant-numeric: tabular-nums; }

.gs-ws__toc { list-style: none; margin: 4px 0 8px 22px; padding: 0 0 0 10px; border-left: 2px solid #DDE2EA; display: flex; flex-direction: column; }
.gs .gs-ws__toc a { display: block; padding: 6px 8px; border-radius: 6px; font-size: 13.5px; line-height: 1.4; color: var(--gs-muted); }
.gs .gs-ws__toc a:hover { background: rgba(255, 255, 255, 0.75); color: var(--gs-ink); }

/* ---------- Content ---------- */
.gs-ws__main { min-width: 0; }
.gs-ws__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 20px; margin-bottom: 18px; }
.gs-ws__head h2 { margin: 0; font-family: var(--gs-serif); font-size: 28px; line-height: 1.25; font-weight: 700; }
.gs-ws__head p { margin: 0; font-size: 15px; color: var(--gs-muted); }
.gs-ws__head strong { color: var(--gs-ink); font-weight: 700; }
.gs-ws__main .gs-doc__section { scroll-margin-top: 24px; }

/* ---------- Bibliography: search row and chosen filters (content column) ---------- */
.gs-bib__top { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
.gs-bib__top .gs-filter__field { flex: 999 1 300px; }

/* number of records + quiet sorting menu */
.gs-bib__bar {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 16px;
    margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid var(--gs-line);
    font-size: 15px; color: var(--gs-muted);
}
.gs-bib__bar p { margin: 0; }
.gs-bib__bar strong { color: var(--gs-ink); font-weight: 700; }
.gs-sort { position: relative; }
.gs-sort > summary {
    display: flex; align-items: center; gap: 6px; padding: 7px 9px; border-radius: 8px; list-style: none; cursor: pointer;
    font-size: 14.5px; font-weight: 700; color: var(--gs-ink); transition: background .15s;
}
.gs-sort > summary::-webkit-details-marker { display: none; }
.gs-sort > summary:hover, .gs-sort[open] > summary { background: #FBF3DD; }
.gs-sort > summary:focus-visible { outline: 3px solid var(--gs-gold); outline-offset: 2px; }
.gs-sort__label { font-weight: 500; color: var(--gs-muted); }
.gs-sort__chev { color: var(--gs-gold-text); transition: transform .15s; }
.gs-sort[open] .gs-sort__chev { transform: rotate(180deg); }
.gs-sort__menu {
    position: absolute; right: 0; top: calc(100% + 6px); z-index: 20; width: 270px; max-width: calc(100vw - 40px); padding: 6px;
    display: flex; flex-direction: column; gap: 2px;
    background: var(--gs-white); border: 1px solid var(--gs-line); border-radius: 12px;
    box-shadow: 0 14px 34px rgba(19, 33, 60, 0.16);
}
.gs .gs-sort__opt {
    display: grid; grid-template-columns: 20px minmax(0, 1fr) 18px; align-items: center; gap: 10px;
    min-height: 44px; padding: 7px 10px; border-radius: 8px; font-size: 14.5px; font-weight: 500; color: var(--gs-ink);
}
.gs-sort__opt > svg:first-child { color: var(--gs-muted); }
.gs .gs-sort__opt:hover { background: var(--gs-tint); color: var(--gs-ink); }
.gs .gs-sort__opt[aria-current] { background: #FBF3DD; font-weight: 700; }
.gs-sort__opt[aria-current] > svg { color: var(--gs-gold-text); }
.gs-sort__opt:focus-visible { outline: 3px solid var(--gs-gold); outline-offset: -1px; }
@media (max-width: 520px) {
    .gs-sort__menu { right: auto; left: 0; }
}

.gs-active { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 16px; }
.gs .gs-active__chip {
    display: inline-flex; align-items: center; gap: 8px; padding: 5px 7px 5px 13px; border-radius: 999px;
    background: var(--gs-ink); color: var(--gs-white); font-size: 13px; font-weight: 600; max-width: 100%;
}
.gs-active__chip > span[aria-hidden] {
    display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px;
    border-radius: 50%; background: rgba(255, 255, 255, 0.18); font-size: 13px;
}
.gs .gs-active__chip:hover { background: #1B2C4D; color: var(--gs-white); }
.gs .gs-active__clear { padding-left: 6px; font-size: 13.5px; font-weight: 600; color: var(--gs-gold-text); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Bibliography filters in the side panel ---------- */
.gs-ws__side--filters { position: relative; top: 0; }
.gs-ff { margin-top: 12px; border-top: 1px solid #DDE2EA; }
.gs-ff__toggle { display: none; }
.gs-ff__head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding: 14px 6px 6px; }
.gs-ff__head span { font-size: 12.5px; font-weight: 700; letter-spacing: 0.05em; color: var(--gs-ink); }
.gs .gs-ff__head a { font-size: 13px; font-weight: 600; color: var(--gs-gold-text); text-decoration: underline; text-underline-offset: 3px; }

.gs-fg { border-bottom: 1px solid #DDE2EA; }
.gs-fg:last-of-type { border-bottom: 0; }
.gs-fg > summary {
    display: flex; align-items: center; gap: 8px; padding: 12px 6px; list-style: none; cursor: pointer;
    font-size: 14px; font-weight: 700; color: var(--gs-ink);
}
.gs-fg > summary::-webkit-details-marker { display: none; }
.gs-fg > summary::after {
    content: ""; margin-left: auto; width: 8px; height: 8px; border-right: 2px solid var(--gs-muted); border-bottom: 2px solid var(--gs-muted);
    transform: rotate(45deg) translateY(-2px); transition: transform .15s;
}
.gs-fg[open] > summary::after { transform: rotate(-135deg) translateY(-2px); }
.gs-fg > summary em { padding: 1px 8px; border-radius: 999px; background: var(--gs-gold); font-size: 11.5px; font-style: normal; font-weight: 700; color: var(--gs-ink); }
.gs-fg > summary:focus-visible { outline: 3px solid var(--gs-gold); outline-offset: 2px; border-radius: 6px; }
.gs-fg__body { display: flex; flex-direction: column; gap: 1px; padding: 0 2px 12px; }

.gs-opt {
    display: grid; grid-template-columns: 17px minmax(0, 1fr) auto; align-items: center; gap: 10px;
    padding: 6px 6px; border-radius: 7px; font-size: 14px; line-height: 1.4; cursor: pointer;
}
.gs-opt[hidden] { display: none; }
.gs-opt:hover { background: rgba(255, 255, 255, 0.85); }
.gs-opt input { width: 16px; height: 16px; margin: 0; accent-color: var(--gs-ink); }
.gs-opt input:checked ~ .gs-opt__name { font-weight: 700; }
.gs-opt__name { min-width: 0; overflow-wrap: anywhere; }
.gs-opt__n { font-size: 12.5px; color: var(--gs-muted); font-variant-numeric: tabular-nums; }
.gs .gs-fg__more {
    align-self: flex-start; margin-top: 2px; padding: 4px 6px; border: 0; background: none; cursor: pointer;
    font-family: inherit; font-size: 13px; font-weight: 600; color: var(--gs-gold-text);
}
.gs-fg__more:hover { text-decoration: underline; text-underline-offset: 3px; }
.gs-fg__find {
    height: 38px; margin: 0 0 6px; padding: 0 12px; border: 1px solid #CDD2DC; border-radius: 8px; background: var(--gs-white);
    font-family: inherit; font-size: 14px; color: var(--gs-ink); outline: none;
}
.gs-fg__find:focus { border-color: var(--gs-gold); box-shadow: 0 0 0 3px rgba(226, 178, 59, 0.3); }
.gs-fg__scroll { display: flex; flex-direction: column; gap: 1px; max-height: 260px; overflow-y: auto; }

/* years: a bar per decade (click = that decade), then from–to */
.gs-hist { display: flex; align-items: flex-end; gap: 2px; height: 46px; padding: 0 2px; }
.gs-hist__bar {
    flex: 1 1 0; min-width: 0; height: max(2px, var(--h)); padding: 0; border: 0; border-radius: 2px 2px 0 0;
    background: #C9D0DC; cursor: pointer; transition: background .15s;
}
.gs-hist__bar:hover { background: var(--gs-ink); }
.gs-hist__bar.is-in { background: var(--gs-gold); }
.gs-hist__bar:focus-visible { outline: 2px solid var(--gs-gold); outline-offset: 1px; }
.gs-hist__axis { display: flex; justify-content: space-between; padding: 4px 2px 8px; font-size: 11.5px; color: var(--gs-muted); font-variant-numeric: tabular-nums; }
.gs-years { display: flex; align-items: flex-end; gap: 8px; }
.gs-years label { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; color: var(--gs-muted); }
.gs-years input {
    width: 100%; height: 38px; padding: 0 10px; border: 1px solid #CDD2DC; border-radius: 8px; background: var(--gs-white);
    font-family: inherit; font-size: 15px; color: var(--gs-ink); outline: none; font-variant-numeric: tabular-nums;
}
.gs-years input:focus { border-color: var(--gs-gold); box-shadow: 0 0 0 3px rgba(226, 178, 59, 0.3); }
.gs-years > span { padding-bottom: 8px; color: var(--gs-muted); }

/* "show" bar: appears after a change and stays in view while the panel is scrolled */
.gs-ff__apply {
    position: sticky; bottom: 12px; z-index: 2; display: flex; align-items: center; gap: 12px;
    margin: 6px -6px 0; padding: 10px; border-radius: 12px; background: var(--gs-white);
    box-shadow: 0 10px 28px rgba(19, 33, 60, 0.18);
}
.gs-ff__apply[hidden] { display: none; }
.gs-ff__apply .gs-btn { flex: 1 1 auto; height: 44px; }
.gs-ff__undo { border: 0; background: none; cursor: pointer; font-family: inherit; font-size: 14px; color: var(--gs-muted); text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 1000px) {
    .gs-ff { border-top: 0; margin-top: 10px; }
    .gs-ff__toggle {
        display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; height: 46px;
        border: 1px solid #CDD3DE; border-radius: 10px; background: var(--gs-white);
        font-family: inherit; font-size: 15px; font-weight: 700; color: var(--gs-ink); cursor: pointer;
    }
    .gs-ff__toggle b { padding: 1px 8px; border-radius: 999px; background: var(--gs-gold); font-size: 12px; }
    .gs-ff:not(.is-open) .gs-ff__body { display: none; }
    .gs-ff.is-open .gs-ff__toggle { border-color: var(--gs-gold); box-shadow: 0 0 0 2px var(--gs-gold); }
}

/* Scientists grid inside the narrower content column */
@media (max-width: 1180px) {
    .gs-ws .gs-people { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1000px) {
    .gs-ws__grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .gs-ws__side { position: relative; top: 0; }
    .gs-ws__nav { flex-direction: row; overflow-x: auto; gap: 4px; scrollbar-width: none; }
    .gs-ws__nav::-webkit-scrollbar { display: none; }
    /* faded edges where more sections are hidden (classes set by the page script) */
    .gs-ws__nav.is-scrolled-end { -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }
    .gs-ws__nav.is-scrolled-start { -webkit-mask-image: linear-gradient(90deg, transparent, #000 15%); mask-image: linear-gradient(90deg, transparent, #000 15%); }
    .gs-ws__nav.is-scrolled-start.is-scrolled-end { -webkit-mask-image: linear-gradient(90deg, transparent, #000 15%, #000 85%, transparent); mask-image: linear-gradient(90deg, transparent, #000 15%, #000 85%, transparent); }
    .gs .gs-ws__link { grid-template-columns: 18px auto auto; white-space: nowrap; }
    .gs-ws__toc { display: none; }
    .gs-ws .gs-people { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .gs-ws { padding-top: 16px; }
    .gs-ws__title { font-size: 28px; }
    .gs-ws__head h2 { font-size: 24px; }
}

/* Back-to-top button */
.gs-totop {
    position: fixed; right: 24px; bottom: 24px; z-index: 40;
    display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; padding: 0;
    border: 0; border-radius: 50%; background: var(--gs-ink); color: var(--gs-gold); cursor: pointer;
    box-shadow: 0 10px 24px rgba(19, 33, 60, 0.28); transition: background .15s, transform .15s;
}
.gs-totop[hidden] { display: none; }
.gs-totop:hover { background: #1B2C4D; transform: translateY(-2px); }
.gs-totop:focus-visible { outline: 3px solid var(--gs-gold); outline-offset: 3px; }
@media (max-width: 760px) {
    .gs-totop { right: 16px; bottom: 16px; }
}
