/* ============================================================
   GPIS — identidade visual alinhada ao GPIS Design System v1
   v4: sóbrio e acadêmico. Títulos em Schibsted Grotesk, superfícies planas,
   um único acento terracota; páginas internas com cabeçalho claro.
============================================================ */

:root {
    /* BRAND — GPIS Design System */
    --gpis-azul-ciencia:    #2C5F8A;
    --gpis-azul-profundo:   #1E456A;
    --gpis-azul-noite:      #142C44;
    --gpis-azul-claro:      #5A8BB5;
    /* Âmbar Sul substitui o terracota: mesmo papel de acento cálido, mais luminoso. */
    --gpis-terracota-sul:   #C98B2E;
    --gpis-ambar-claro:     #F5D49C; /* 4.75:1 sobre Azul Ciência */
    --gpis-verde-pampa:     #5C7A5E;
    --gpis-verde-claro:     #9FC49F;
    /* Accessible small-text accents: Terracota Escuro reaches 5.28:1 on
       Papel and 4.78:1 on Névoa; Verde Escuro reaches 6.00:1 and 5.43:1. */
    --gpis-terracota-escuro: #8F6318;
    --gpis-verde-escuro:     #4A6B4C;
    /* Fundos de hero das linhas de pesquisa (texto branco ≥ 7:1). */
    --gpis-ambar-hero:      #7A5414;
    --gpis-verde-hero:      #3E5A40;
    --gpis-nevoa:           #F0F4F7;
    --gpis-papel:           #FFFFFF;
    --gpis-cinza-25:        #E4EAEF;
    --gpis-cinza-50:        #C8D2DA;
    --gpis-cinza-100:       #94A2AD;
    --gpis-cinza-200:       #5E6B74;
    /* Small metadata: AA on both Papel (5.01:1) and Névoa (4.53:1).
       The proposed #77848E falls below AA on both backgrounds. */
    --gpis-cinza-meta:      #64717B;
    --gpis-grafite:         #23292E;

    /* Texto sobre superfícies azuis: tingido do branco, nunca cinza. */
    --on-dark:        #FFFFFF;
    --on-dark-soft:   rgba(255,255,255,0.84);
    --on-dark-meta:   rgba(255,255,255,0.78);
    --on-dark-line:   rgba(255,255,255,0.22);

    /* ALIASES — usados ao longo do CSS */
    --gpis-primary:    var(--gpis-azul-ciencia);
    --gpis-primary-dk: var(--gpis-azul-profundo);
    --border-subtle:   var(--gpis-cinza-25);
    --border-default:  var(--gpis-cinza-50);

    /* RADII — Design System */
    --radius-sm: 4px;
    --radius-md: 4px;
    --radius-lg: 6px;
    --radius-xl: 8px;

    /* SHADOWS — cool-blue tinted, academic restraint */
    --shadow-1: 0 1px 2px rgba(20,38,56,0.06), 0 1px 1px rgba(20,38,56,0.04);
    --shadow-2: 0 4px 12px rgba(20,38,56,0.08), 0 1px 3px rgba(20,38,56,0.05);
    --shadow-3: 0 18px 40px -12px rgba(20,38,56,0.22), 0 4px 10px rgba(20,38,56,0.06);

    /* SPACING */
    --section-y: clamp(4.5rem, 9vw, 8rem);
    --header-h: 72px;

    /* MOTION */
    --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
    --dur-1: 160ms;
    --dur-2: 280ms;
    --dur-3: 700ms;

    /* FONTS */
    --font-display: 'Schibsted Grotesk', system-ui, sans-serif;
    --font-body:    'Source Sans 3', system-ui, sans-serif;
}

html { scroll-padding-top: calc(var(--header-h) + 8px); }
@media (prefers-reduced-motion: no-preference) {
    html { scroll-behavior: smooth; }
}

body {
    font-family: var(--font-body);
    font-size: 1.125rem;
    color: var(--gpis-grafite);
    background: var(--gpis-nevoa);
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

h1, h2, h3, h4 { text-wrap: balance; }
p { text-wrap: pretty; }

::selection { background: rgba(201,139,46,0.32); color: var(--gpis-grafite); }
a { text-underline-offset: 0.2em; text-decoration-thickness: 1px; }

/* ============================================================
   ACESSIBILIDADE
============================================================ */
.skip-link {
    position: absolute;
    top: -48px;
    left: 0;
    background: var(--gpis-azul-ciencia);
    color: #fff;
    padding: 10px 16px;
    z-index: 9999;
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
    transition: top 0.2s ease;
}
.skip-link:focus { top: 0; }

/* Foco sólido: ≥3:1 sobre Papel e Névoa; branco nas superfícies azuis. */
:focus-visible {
    outline: 2px solid var(--gpis-azul-ciencia);
    outline-offset: 3px;
    border-radius: 2px;
}
:is(.gpis-hero, .gpis-impact-hero, .gpis-impact-teaser, .gpis-impact-cta, .gpis-footer, .gpis-projects__featured) :focus-visible,
.gpis-projects__featured:focus-visible {
    outline-color: var(--on-dark);
}

/* Ícone de seta desenhado (substitui o glifo →). */
.gpis-arrow {
    width: 1.05em;
    height: 1.05em;
    flex: none;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform var(--dur-2) var(--ease-out);
}
/* Links que levam a outra página: sublinhado discreto e seta num círculo
   que se preenche ao passar o mouse. Visíveis como ação, sem virar botão. */
.gpis-textlink {
    display: inline-flex;
    align-items: center;
    gap: 0.6em;
    font-weight: 700;
    font-size: 0.9375rem;
    color: var(--gpis-azul-ciencia);
    text-decoration: underline;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 0.3em;
    text-decoration-color: rgba(44,95,138,0.35);
    padding-block: 0.35rem;
    transition: color var(--dur-2) var(--ease-out), text-decoration-color var(--dur-2) var(--ease-out);
}
.gpis-textlink:is(:hover, :focus-visible) { color: var(--gpis-azul-profundo); text-decoration-color: currentColor; }
.gpis-textlink > .gpis-arrow,
.gpis-projects__featured-link > .gpis-arrow,
.gpis-network__more > .gpis-arrow {
    box-sizing: content-box;
    width: 0.85em;
    height: 0.85em;
    padding: 0.42em;
    border: 1.5px solid currentColor;
    border-radius: 50%;
    transition: transform var(--dur-2) var(--ease-out), background var(--dur-2) var(--ease-out), stroke var(--dur-2) var(--ease-out);
}
.gpis-textlink:is(:hover, :focus-visible) > .gpis-arrow {
    background: var(--gpis-azul-ciencia);
    border-color: var(--gpis-azul-ciencia);
    stroke: #fff;
}
.gpis-projects__featured:is(:hover, :focus-visible) .gpis-projects__featured-link > .gpis-arrow {
    background: #fff;
    stroke: var(--gpis-azul-profundo);
}
:is(.gpis-textlink, a):is(:hover, :focus-visible) > .gpis-arrow { transform: translateX(4px); }

/* ============================================================
   NAVBAR — CLARO
============================================================ */
.gpis-site-header {
    background: var(--gpis-papel);
    transition: box-shadow var(--dur-2) var(--ease-out);
}
.gpis-site-header.is-scrolled { box-shadow: 0 6px 24px -10px rgba(20,38,56,0.22); }
.gpis-navbar {
    /* Sobrescreve variáveis do Bootstrap 5 para o tema claro */
    --bs-navbar-color:              var(--gpis-grafite);
    --bs-navbar-hover-color:        var(--gpis-azul-ciencia);
    --bs-navbar-active-color:       var(--gpis-azul-ciencia);
    --bs-navbar-brand-color:        var(--gpis-grafite);
    --bs-navbar-brand-hover-color:  var(--gpis-grafite);
    --bs-navbar-toggler-border-color: var(--border-default);
    background-color: var(--gpis-papel) !important;
    border-bottom: 1px solid var(--border-subtle);
    min-height: var(--header-h);
}
.navbar-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    font-family: var(--font-display);
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--gpis-grafite);
    text-decoration: none;
}
.navbar-brand:hover { color: var(--gpis-grafite); text-decoration: none; }
.gpis-brand-logo {
    height: 38px;
    width: auto;
    display: block;
    flex-shrink: 0;
}
.navbar-brand small {
    display: block;
    max-width: 15rem;
    padding-left: 12px;
    border-left: 1px solid var(--border-default);
    font-family: var(--font-body);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: var(--gpis-cinza-200);
    line-height: 1.25;
    white-space: normal;
}
.navbar-toggler {
    min-width: 44px;
    min-height: 44px;
    padding: 0.4rem 0.6rem;
    border-radius: var(--radius-md);
}
.navbar-toggler:focus { box-shadow: none; }
@media (max-width: 575px) {
    .gpis-navbar > .container { flex-wrap: nowrap; }
    .gpis-navbar .navbar-collapse { position: absolute; top: 100%; left: 0; right: 0; padding: 0 1rem; background: var(--gpis-papel); border-bottom: 1px solid var(--border-subtle); box-shadow: 0 16px 24px -16px rgba(20,38,56,0.25); }
    .navbar-brand { gap: 10px; min-width: 0; margin-right: 0.5rem; }
    .navbar-brand small { max-width: 9.5rem; padding-left: 10px; font-size: 0.75rem; }
    .gpis-brand-logo { height: 34px; }
}
.nav-link {
    position: relative;
    font-family: var(--font-body);
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.005em;
    transition: color var(--dur-1);
}
.nav-link:hover,
.nav-link.active,
.nav-link.is-current { color: var(--gpis-azul-ciencia) !important; }
@media (min-width: 992px) {
    .navbar-expand-lg .navbar-nav .nav-link { padding-inline: 0.8rem; }
    .nav-link::after {
        content: "";
        position: absolute;
        left: 0.8rem;
        right: 0.8rem;
        bottom: 0.2rem;
        height: 2px;
        background: currentColor;
        transform: scaleX(0);
        transform-origin: left;
        transition: transform var(--dur-2) var(--ease-out);
    }
    .nav-link:hover::after,
    .nav-link.active::after,
    .nav-link.is-current::after { transform: scaleX(1); }
}
@media (max-width: 991px) {
    .navbar-nav { padding: 0.5rem 0 1rem; }
    .navbar-nav .nav-link { padding-block: 0.7rem; border-bottom: 1px solid var(--border-subtle); }
}

/* ============================================================
   BOTÕES
============================================================ */
.gpis-btn,
.gpis-btn--white,
.gpis-btn--outline-light {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5em;
    min-height: 48px;
    font-family: var(--font-body);
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.005em;
    padding: 0.75rem 1.5rem;
    border-radius: var(--radius-sm);
    border: 1px solid transparent;
    text-decoration: none;
    transition: background var(--dur-2) var(--ease-out), border-color var(--dur-2) var(--ease-out),
                color var(--dur-2) var(--ease-out), transform var(--dur-2) var(--ease-out);
}
:is(.gpis-btn, .gpis-btn--white, .gpis-btn--outline-light):active { transform: translateY(1px); }
.gpis-btn--primary {
    background: var(--gpis-azul-ciencia);
    color: #fff;
    border-color: var(--gpis-azul-ciencia);
}
.gpis-btn--primary:hover {
    background: var(--gpis-azul-profundo);
    border-color: var(--gpis-azul-profundo);
    color: #fff;
    text-decoration: none;
}
.gpis-btn--outline {
    background: transparent;
    color: var(--gpis-azul-profundo);
    border-color: var(--border-default);
}
.gpis-btn--outline:is(:hover, :focus-visible) {
    border-color: var(--gpis-azul-profundo);
    background: var(--gpis-papel);
    color: var(--gpis-azul-noite);
    text-decoration: none;
}
.gpis-btn--white {
    background: #fff;
    color: var(--gpis-azul-profundo);
    border-color: #fff;
}
.gpis-btn--white:hover {
    background: var(--gpis-nevoa);
    border-color: var(--gpis-nevoa);
    color: var(--gpis-azul-noite);
    text-decoration: none;
}
.gpis-btn--outline-light {
    background: transparent;
    color: var(--on-dark);
    border-color: rgba(255,255,255,0.55);
}
.gpis-btn--outline-light:hover {
    border-color: #fff;
    background: rgba(255,255,255,0.1);
    color: #fff;
    text-decoration: none;
}

/* ============================================================
   TÍTULOS DE SEÇÃO
============================================================ */
/* Títulos de seção: maiores e com o mesmo traço terracota do hero. */
.gpis-section-title {
    font-family: var(--font-display);
    font-size: clamp(2.125rem, 1.35rem + 2.5vw, 3.5rem);
    font-weight: 600;
    line-height: 1.04;
    color: var(--gpis-azul-noite);
    margin-bottom: 0.85rem;
    letter-spacing: -0.03em;
}
.gpis-section-title::before {
    content: '';
    display: block;
    width: 2.5rem;
    height: 2px;
    margin-bottom: 1.1rem;
    background: var(--gpis-terracota-sul);
}
.gpis-section-lead {
    font-size: 1.1875rem;
    color: var(--gpis-cinza-200);
    line-height: 1.65;
    max-width: 62ch;
    margin-bottom: 3rem;
}

/* Cabeçalho lateral fixo + conteúdo: quebra o molde "título em cima". */
.gpis-split {
    display: grid;
    grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
    gap: clamp(2rem, 5vw, 5rem);
    align-items: start;
}
.gpis-split__head {
    position: sticky;
    top: calc(var(--header-h) + 2rem);
}
.gpis-split__note {
    color: var(--gpis-cinza-200);
    font-size: 1.0625rem;
    line-height: 1.6;
    max-width: 30ch;
    margin: 0;
}
@media (max-width: 991px) {
    .gpis-split { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
    .gpis-split__head { position: static; }
}

/* ============================================================
   HOME — HERO
   Azul profundo plano, marca do GPIS como marca d'água e um único
   fio terracota: o acento quente da identidade, usado uma vez.
============================================================ */
.gpis-home-page .gpis-hero {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: min(calc(100svh - var(--header-h)), 640px);
    padding: clamp(4.5rem, 9vw, 7rem) 0 0;
    background: var(--gpis-azul-profundo);
    color: var(--on-dark);
}
.gpis-home-page .gpis-hero .container { position: relative; z-index: 1; }
.gpis-hero__motif {
    position: absolute;
    z-index: 0;
    top: 50%;
    right: max(-3rem, calc((100vw - 1320px) / 2 - 2rem));
    width: min(42vw, 560px);
    height: auto;
    aspect-ratio: 319 / 312;
    transform: translateY(-50%);
    opacity: 0.08;
    pointer-events: none;
    user-select: none;
}
.gpis-home-page .gpis-hero__layout {
    max-width: 44rem;
    padding-bottom: clamp(3rem, 6vw, 4.5rem);
}
.gpis-home-page .gpis-hero__title {
    font-family: var(--font-display);
    font-size: clamp(2.5rem, 5.2vw, 4.25rem);
    font-weight: 600;
    line-height: 1.06;
    letter-spacing: -0.03em;
    color: var(--on-dark);
    margin: 0 0 1.5rem;
    max-width: 16ch;
}
.gpis-home-page .gpis-hero__title::before {
    content: "";
    display: block;
    width: 3rem;
    height: 2px;
    margin-bottom: 1.75rem;
    background: var(--gpis-terracota-sul);
}
.gpis-home-page .gpis-hero__lead {
    font-size: clamp(1.125rem, 1.6vw, 1.25rem);
    line-height: 1.6;
    color: var(--on-dark-soft);
    max-width: 42ch;
    margin: 0 0 2.25rem;
}
.gpis-hero__ctas {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}
.gpis-home-page .gpis-hero__meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.5rem 2rem;
    padding: 1.25rem 0 1.5rem;
    border-top: 1px solid var(--on-dark-line);
    font-size: 0.9375rem;
    color: var(--on-dark-meta);
}
.gpis-home-page .gpis-hero__meta p { margin: 0; }
.gpis-home-page .gpis-hero__meta p:first-child { font-weight: 600; color: var(--on-dark); }

@media (max-width: 991px) {
    .gpis-hero__motif { top: 1.5rem; right: -12%; width: 62%; transform: none; opacity: 0.06; }
}
@media (max-width: 575px) {
    .gpis-hero__motif { right: -30%; width: 85%; opacity: 0.045; }
    .gpis-home-page .gpis-hero { min-height: 0; padding-top: 5rem; }
    .gpis-home-page .gpis-hero__meta { flex-direction: column; }
}

/* HOME — frase-síntese entre o hero e as linhas de pesquisa.
   Com JS e movimento permitido, a seção fica fixa e as palavras acendem
   conforme o scroll (.is-scrolly). Sem isso, a frase aparece completa. */
.gpis-home-page .gpis-claim {
    background: var(--gpis-papel);
    color: var(--gpis-grafite);
    padding: clamp(3rem, 6vw, 5rem) 0;
}
.gpis-home-page .gpis-claim__text {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: clamp(1.875rem, 4.6vw, 3.75rem);
    line-height: 1.12;
    letter-spacing: -0.025em;
    color: var(--gpis-azul-noite);
    max-width: 20ch;
    margin: 0;
}
.gpis-home-page .gpis-claim__text > span:not(.gpis-claim__w),
.gpis-home-page .gpis-claim__w.is-key { font-weight: 600; color: var(--gpis-azul-ciencia); }
.gpis-home-page .gpis-claim__facts {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.75rem;
    margin: 2.25rem 0 0;
    color: var(--gpis-cinza-200);
    font-size: 1.0625rem;
}
.gpis-home-page .gpis-claim__facts span { display: inline-flex; align-items: baseline; gap: 0.4rem; }
.gpis-home-page .gpis-claim__facts strong {
    font-family: var(--font-display);
    font-size: 1.625rem;
    font-weight: 600;
    color: var(--gpis-azul-profundo);
}

.gpis-home-page .gpis-claim.is-scrolly { height: 260vh; padding: 0; }
.gpis-claim.is-scrolly .gpis-claim__stage {
    position: sticky;
    top: var(--header-h);
    height: calc(100svh - var(--header-h));
    display: flex;
    align-items: center;
}
.gpis-claim.is-scrolly .gpis-claim__stage > .container { width: 100%; }
.gpis-claim.is-scrolly .gpis-claim__w { opacity: 0.14; transition: opacity 120ms linear, color 400ms var(--ease-out); }
.gpis-home-page .gpis-claim.is-scrolly .gpis-claim__w.is-key { color: var(--gpis-azul-noite); }
.gpis-home-page .gpis-claim.is-scrolly .gpis-claim__w.is-key.is-lit { color: var(--gpis-azul-ciencia); }
.gpis-claim.is-scrolly .gpis-claim__facts {
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 500ms var(--ease-out), transform 500ms var(--ease-out);
}
.gpis-claim.is-scrolly .gpis-claim__facts.is-on { opacity: 1; transform: none; }

/* ============================================================
   HOME — LINHAS DE PESQUISA
============================================================ */

.gpis-home-page [data-tone="azul"]     { --tone: var(--gpis-azul-ciencia);    --tone-bright: var(--gpis-azul-ciencia); }
.gpis-home-page [data-tone="ambar"]    { --tone: var(--gpis-terracota-escuro); --tone-bright: var(--gpis-terracota-sul); }
.gpis-home-page [data-tone="verde"]    { --tone: var(--gpis-verde-escuro);    --tone-bright: var(--gpis-verde-pampa); }
.gpis-home-page [data-tone="profundo"] { --tone: var(--gpis-azul-profundo);   --tone-bright: var(--gpis-azul-profundo); }

/* ============================================================
   HOME — PROJETOS
============================================================ */
.gpis-projects {
    padding: var(--section-y) 0;
    background: var(--gpis-papel);
}

.gpis-home-page .gpis-projects .gpis-section-title { margin-bottom: 0.35rem; }

.gpis-projects__more { display: flex; flex-wrap: wrap; gap: 0.25rem 1.75rem; }

.gpis-home-page .gpis-projects__featured {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 18rem);
    gap: 2.5rem 4rem;
    align-items: end;
    padding: clamp(2rem, 4.5vw, 3.75rem);
    margin-bottom: 1.5rem;
    border-radius: var(--radius-xl);
    background: var(--gpis-azul-profundo);
    color: var(--on-dark);
    text-decoration: none;
    transition: background var(--dur-2) var(--ease-out);
}
.gpis-home-page .gpis-projects__featured:is(:hover, :focus-visible) {
    background: var(--gpis-azul-noite);
    color: var(--on-dark);
}
.gpis-projects__featured-tag {
    display: block;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--on-dark-meta);
    margin-bottom: 1rem;
}
.gpis-projects__featured-title {
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 3.6vw, 2.75rem);
    font-weight: 600;
    letter-spacing: -0.02em;
    line-height: 1.05;
    color: var(--on-dark);
    margin: 0 0 1rem;
    max-width: 18ch;
}
.gpis-projects__featured-desc {
    font-size: 1.125rem;
    color: var(--on-dark-soft);
    line-height: 1.6;
    margin-bottom: 2rem;
    max-width: 44ch;
}
.gpis-projects__featured-link {
    display: inline-flex;
    align-items: center;
    gap: 0.6em;
    font-size: 1rem;
    font-weight: 700;
    color: var(--on-dark);
}
.gpis-projects__featured:is(:hover, :focus-visible) .gpis-arrow { transform: translateX(5px); }
.gpis-projects__stats { margin: 0; display: grid; gap: 1.5rem; }
.gpis-projects__stat {
    display: flex;
    flex-direction: column-reverse;
    padding-top: 1.25rem;
    border-top: 1px solid var(--on-dark-line);
}
.gpis-projects__stat-value {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(2.25rem, 4vw, 3.25rem);
    font-weight: 600;
    letter-spacing: -0.02em;
    line-height: 1;
    color: var(--on-dark);
}
.gpis-projects__stat-label {
    font-size: 0.9375rem;
    font-weight: 400;
    color: var(--on-dark-meta);
    line-height: 1.45;
    margin-top: 0.4rem;
}

.gpis-project-item {
    background: var(--gpis-papel);
    border-radius: var(--radius-lg);
    border: 1px solid var(--border-subtle);
    box-shadow: var(--shadow-1);
    padding: 2.25rem;
}
/* Home: um destino e uma parada de teclado por cartão. */
.gpis-home-page .gpis-project-item {
    display: flex;
    flex-direction: column;
    padding: clamp(1.75rem, 3vw, 2.25rem);
    border-color: var(--border-default);
    box-shadow: none;
    color: var(--gpis-grafite);
    text-decoration: none;
    transition: transform var(--dur-2) var(--ease-out), box-shadow var(--dur-2) var(--ease-out),
                border-color var(--dur-2) var(--ease-out);
}
.gpis-home-page .gpis-project-item:is(:hover, :focus-visible) {
    box-shadow: var(--shadow-2);
    border-color: color-mix(in srgb, var(--tone) 55%, var(--border-default));
    color: var(--gpis-grafite);
}
.gpis-home-page .gpis-project-item:focus-visible { outline-offset: 4px; border-radius: var(--radius-lg); }

.gpis-home-page .gpis-project-item__link {
    display: inline-flex;
    align-items: center;
    gap: 0.45em;
    margin-top: auto;
    padding-top: 1.75rem;
    align-self: flex-start;
    color: var(--gpis-azul-ciencia);
}
.gpis-home-page .gpis-project-item:is(:hover, :focus-visible) .gpis-project-item__link { color: var(--tone); text-decoration: none; }
.gpis-home-page .gpis-project-item:is(:hover, :focus-visible) .gpis-arrow { transform: translateX(5px); }

/* Cartões genéricos, reutilizados nas páginas internas. */

@media (max-width: 767px) {
    .gpis-home-page .gpis-projects__featured { grid-template-columns: minmax(0, 1fr); }
    .gpis-projects__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    
}

/* Entrada discreta (só para o que ainda está abaixo da dobra). */
[data-reveal].is-pending {
    opacity: 0;
    transform: translateY(12px);
}
[data-reveal].is-revealed {
    opacity: 1;
    transform: none;
    transition: opacity var(--dur-3) var(--ease-out), transform var(--dur-3) var(--ease-out);
}
[data-reveal]:is(.gpis-proj-theme, .gpis-linha-project, .gpis-proj-numbers__item, .gpis-proj-next__item):nth-child(2) { transition-delay: 80ms; }
[data-reveal]:is(.gpis-proj-theme, .gpis-linha-project, .gpis-proj-numbers__item, .gpis-proj-next__item):nth-child(3) { transition-delay: 160ms; }
[data-reveal]:is(.gpis-proj-theme, .gpis-linha-project, .gpis-proj-next__item):nth-child(4) { transition-delay: 240ms; }

.gpis-project-item[data-reveal]:nth-child(2) { transition-delay: 80ms; }

.gpis-project-item[data-reveal]:nth-child(3) { transition-delay: 160ms; }

.gpis-project-item[data-reveal]:nth-child(4) { transition-delay: 240ms; }
/* Impressão e capturas sem rolagem nunca ficam com conteúdo oculto. */
@media print {
    [data-reveal].is-pending { opacity: 1; transform: none; }
}
/* Depois de revelado, hover responde sem atraso. */
[data-reveal].is-revealed:is(:hover, :focus-visible) { transition-delay: 0ms; }

/* ============================================================
   HOME — REDE INTERNACIONAL (mapa de dados reais)
============================================================ */
.gpis-network {
    background: var(--gpis-nevoa);
    padding: var(--section-y) 0;
}
.gpis-network__layout {
    display: grid;
    grid-template-columns: minmax(0, 40fr) minmax(0, 56fr);
    gap: 4%;
    align-items: center;
}
.gpis-network__text {
    font-size: 1.125rem;
    color: var(--gpis-cinza-200);
    line-height: 1.65;
    margin-bottom: 1.25rem;
    max-width: 44ch;
}
.gpis-network__list {
    list-style: none;
    margin: 2rem 0 0;
    padding: 0;
    border-top: 1px solid var(--border-default);
}
.gpis-network__list li {
    display: grid;
    grid-template-columns: 0.75rem minmax(0, 1fr);
    gap: 0.9rem;
    align-items: baseline;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 1.125rem;
    padding: 0.95rem 0;
    border-bottom: 1px solid var(--border-default);
}
.gpis-network__country { display: block; min-width: 0; }
.gpis-network__list em {
    display: block;
    font-family: var(--font-body);
    font-style: normal;
    font-weight: 400;
    font-size: 1rem;
    color: var(--gpis-cinza-200);
    margin-top: 0.1rem;
}
.gpis-network__dot {
    width: 10px;
    height: 10px;
    background: var(--gpis-azul-profundo);
    transform: translateY(-0.1rem);
}
.gpis-network__dot[data-country="Reino Unido"] { background: var(--gpis-azul-ciencia); }
.gpis-network__dot[data-country="Chile"] { background: #9DBDD9; }
.gpis-network__dot[data-country="Peru"] { background: #5A8BB5; }
.gpis-network__map {
    margin: 0;
}
/* Reserva a proporção do mapa (760×430) para evitar salto de layout. */
.gpis-network__map #gpis-map { aspect-ratio: 760 / 430; }
.gpis-network__map figcaption {
    font-size: 0.875rem;
    color: var(--gpis-cinza-200);
    margin-top: 0.75rem;
}
@media (max-width: 991px) {
    .gpis-network__layout { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
}

/* ============================================================
   HOME — EQUIPE
============================================================ */
.gpis-people-compact {
    padding: var(--section-y) 0;
    background: var(--gpis-papel);
}
.gpis-people-compact .gpis-split__head .gpis-section-title { margin-bottom: 1rem; }
.gpis-people-compact__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 2rem;
}
.gpis-person-card {
    border-top: 1px solid var(--border-default);
    padding: 1.25rem 0 1.5rem;
}
.gpis-person-card__name {
    font-family: var(--font-display);
    font-size: 1.125rem;
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--gpis-grafite);
    margin: 0 0 0.25rem;
    line-height: 1.3;
}
.gpis-person-card__role {
    font-size: 1rem;
    color: var(--gpis-azul-ciencia);
    font-weight: 600;
    line-height: 1.4;
    margin: 0;
}
@media (max-width: 1199px) {
    .gpis-people-compact__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575px) {
    .gpis-people-compact__grid { column-gap: 1.25rem; }
    .gpis-person-card__name { font-size: 1.0625rem; }
    .gpis-person-card__role { font-size: 0.9375rem; }
}
@media (max-width: 359px) {
    .gpis-people-compact__grid { grid-template-columns: minmax(0, 1fr); }
}

/* ============================================================
   CONTATO / COLABORE
============================================================ */
.gpis-contact {
    padding: var(--section-y) 0;
    background: var(--gpis-nevoa);
}
.gpis-contact__inner {
    border-top: 1px solid var(--border-default);
    padding-top: 2.5rem;
    max-width: 640px;
}
.gpis-contact__title {
    font-family: var(--font-display);
    font-size: clamp(2rem, 3.5vw, 2.75rem);
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--gpis-grafite);
    margin-bottom: 1rem;
    line-height: 1.1;
}
.gpis-contact__text {
    font-size: 1.125rem;
    color: var(--gpis-cinza-200);
    line-height: 1.7;
    margin-bottom: 1.75rem;
}
.gpis-contact__detail {
    font-size: 1rem;
    color: var(--gpis-cinza-200);
    margin-bottom: 0.3rem;
}
.gpis-contact__email-link {
    color: var(--gpis-azul-ciencia);
    text-decoration: none;
}
.gpis-contact__email-link:hover { text-decoration: underline; }
.gpis-contact__ctas {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 2rem;
}

/* Home — contato institucional (fecho da página) */
.gpis-contact--institutional { padding: clamp(3.5rem, 7vw, 5.5rem) 0; }
.gpis-contact--institutional .gpis-contact__inner { max-width: none; border-top: 0; padding-top: 0; }
.gpis-contact__grid {
    display: grid;
    grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
    gap: clamp(2rem, 5vw, 5rem);
    align-items: start;
}
.gpis-contact--institutional .gpis-contact__text { margin-bottom: 0; }
.gpis-contact__emails {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem 2rem;
}
.gpis-contact__detail-label {
    display: block;
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--gpis-cinza-200);
    margin-bottom: 0.4rem;
}
.gpis-contact__emails .gpis-contact__detail {
    margin: 0;
    padding-top: 1.25rem;
    border-top: 1px solid var(--border-default);
}
.gpis-contact__emails .gpis-contact__email-link {
    font-family: var(--font-display);
    font-size: clamp(1.125rem, 1.8vw, 1.375rem);
    font-weight: 600;
    letter-spacing: -0.02em;
    overflow-wrap: anywhere;
}
@media (max-width: 991px) {
    .gpis-contact__grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
}
@media (max-width: 575px) {
    .gpis-contact__emails { grid-template-columns: minmax(0, 1fr); }
}

/* ============================================================
   FOOTER
============================================================ */
.gpis-footer {
    background-color: var(--gpis-azul-noite);
    padding: 3rem 0;
}

.gpis-footer__name {
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 600;
    color: #fff;
    margin-bottom: 0.25rem;
}
.gpis-footer__inst {
    font-size: 0.9375rem;
    color: var(--on-dark-meta);
    margin-bottom: 0;
}

.gpis-footer__copy {
    font-size: 0.875rem;
    color: var(--on-dark-meta);
    margin-bottom: 0;
}

/* ============================================================
   PÁGINAS INTERNAS — CABEÇALHO CLARO
   Névoa com fio inferior, texto em azul-noite e a marca do GPIS
   quase imperceptível. A cor de cada linha de pesquisa aparece só
   no rótulo da trilha (--tone).
============================================================ */
.gpis-proj-hero {
    --tone: var(--gpis-cinza-meta);
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background: var(--gpis-nevoa);
    border-bottom: 1px solid var(--border-subtle);
    color: var(--gpis-grafite);
    padding: clamp(2.75rem, 6vw, 4.5rem) 0 clamp(2.75rem, 5.5vw, 4.25rem);
}
.gpis-proj-hero__inner { position: relative; z-index: 1; max-width: 820px; }
.gpis-proj-hero__back {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--gpis-azul-ciencia);
    text-decoration: none;
    margin-bottom: 0.75rem;
    transition: color var(--dur-1);
}
.gpis-proj-hero__back:hover {
    color: var(--gpis-azul-profundo);
    text-decoration: underline;
}
.gpis-proj-hero__eyebrow {
    display: block;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--tone);
    margin-bottom: 1rem;
}
/* Com link de volta, o rótulo vira trilha de navegação na mesma linha. */
.gpis-proj-hero__back + .gpis-proj-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    vertical-align: top;
    min-height: 44px;
    margin: 0 0 0.75rem;
}
.gpis-proj-hero__back + .gpis-proj-hero__eyebrow::before {
    content: "/";
    margin: 0 0.75rem;
    color: var(--gpis-cinza-100);
    font-weight: 400;
}
.gpis-proj-hero__back + .gpis-proj-hero__eyebrow + .gpis-proj-hero__title { margin-top: 0.5rem; }
@media (max-width: 575px) {
    .gpis-proj-hero__back + .gpis-proj-hero__eyebrow { display: block; min-height: 0; margin: 0.25rem 0 1rem; }
    .gpis-proj-hero__back + .gpis-proj-hero__eyebrow::before { content: none; }
    .gpis-proj-hero__back + .gpis-proj-hero__eyebrow + .gpis-proj-hero__title { margin-top: 0; }
}
.gpis-proj-hero__title {
    font-family: var(--font-display);
    font-size: clamp(2rem, 4.2vw, 3.125rem);
    font-weight: 600;
    line-height: 1.1;
    color: var(--gpis-azul-noite);
    margin-bottom: 1.25rem;
    letter-spacing: -0.02em;
    max-width: 22ch;
}
.gpis-proj-hero__lead {
    font-size: clamp(1.0625rem, 1.7vw, 1.1875rem);
    color: var(--gpis-cinza-200);
    line-height: 1.65;
    margin-bottom: 0.75rem;
    max-width: 60ch;
}
.gpis-proj-hero__meta {
    font-size: 0.9375rem;
    letter-spacing: 0.01em;
    color: var(--gpis-cinza-meta);
    margin-bottom: 0;
}
.gpis-proj-hero__ctas {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 2rem;
}
/* Os botões claros do hero escuro viram primário/secundário no fundo claro. */
.gpis-proj-hero .gpis-btn--white {
    background: var(--gpis-azul-profundo);
    border-color: var(--gpis-azul-profundo);
    color: #fff;
}
.gpis-proj-hero .gpis-btn--white:hover {
    background: var(--gpis-azul-noite);
    border-color: var(--gpis-azul-noite);
    color: #fff;
}
.gpis-proj-hero .gpis-btn--outline-light {
    color: var(--gpis-azul-profundo);
    border-color: var(--border-default);
}
.gpis-proj-hero .gpis-btn--outline-light:hover {
    background: var(--gpis-papel);
    border-color: var(--gpis-azul-profundo);
    color: var(--gpis-azul-noite);
}

.gpis-proj-hero:not(.gpis-proj-hero--coorte):not(.has-mark)::before {
    content: "";
    position: absolute;
    z-index: 0;
    top: 50%;
    right: max(-2rem, calc((100vw - 1320px) / 2 + 1rem));
    width: min(30vw, 360px);
    aspect-ratio: 319 / 312;
    transform: translateY(calc(-50% + var(--py, 0px)));
    background: url("../logo-mark-white.png") center / contain no-repeat;
    filter: brightness(0);
    opacity: 0.05;
    pointer-events: none;
}
@media (max-width: 991px) {
    .gpis-proj-hero:not(.gpis-proj-hero--coorte)::before { top: 1rem; right: -10%; width: 48%; transform: none; opacity: 0.04; }
}
@media (max-width: 575px) {
    .gpis-proj-hero:not(.gpis-proj-hero--coorte)::before { content: none; }
}

/* ============================================================
   PROJETO — COORTE: WATERMARK DO LOGO
============================================================ */
.gpis-proj-hero--coorte::after {
    content: "";
    position: absolute;
    top: 50%;
    /* Inteiro e perto do texto: não encosta nem é cortado na borda direita. */
    right: max(1rem, calc((100vw - 1680px) / 2 + 6vw));
    transform: translateY(calc(-50% + var(--py, 0px)));
    width: clamp(440px, 36vw, 600px);
    aspect-ratio: 222 / 199;
    /* Logo vetorizado a partir do PNG da Coorte: nítido em qualquer tamanho. */
    background: url("../images/coorte/logo-coorte-rg2019-marca.svg") center / contain no-repeat;
    opacity: 0.04;
    pointer-events: none;
    z-index: 0;
}
@media (min-width: 992px) and (max-width: 1199px) {
    .gpis-proj-hero--coorte::after { width: 400px; right: 1rem; }
}
@media (max-width: 991px) {
    .gpis-proj-hero--coorte::after { width: 340px; right: -3rem; }
}
@media (max-width: 576px) {
    .gpis-proj-hero--coorte::after { content: none; }
}

/* ============================================================
   PROJETO — NÚMEROS
============================================================ */
.gpis-proj-numbers {
    background: var(--gpis-papel);
    border-bottom: 1px solid var(--border-subtle);
}
.gpis-proj-numbers__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}
.gpis-proj-numbers__item {
    padding: 2.25rem 2rem;
    border-right: 1px solid var(--border-subtle);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.gpis-proj-numbers__item:last-child { border-right: none; }
.gpis-proj-numbers__value {
    display: block;
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 3vw, 2.375rem);
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--gpis-azul-ciencia);
    line-height: 1.1;
    margin-bottom: 0.35rem;
}
.gpis-proj-numbers__label {
    font-size: 0.9375rem;
    color: var(--gpis-cinza-200);
    line-height: 1.5;
}
@media (max-width: 575px) {
    .gpis-proj-numbers__grid { grid-template-columns: 1fr; }
    .gpis-proj-numbers__item {
        border-right: none;
        border-bottom: 1px solid var(--border-subtle);
    }
    .gpis-proj-numbers__item:last-child { border-bottom: none; }
}

/* ============================================================
   PROJETO — SEÇÕES GENÉRICAS
============================================================ */
.gpis-proj-section {
    padding: 7rem 0;
    background: var(--gpis-nevoa);
}
.gpis-proj-section--soft { background: var(--gpis-papel); }
.gpis-proj-section__inner {
    border-top: 1px solid var(--border-default);
    padding-top: 2.5rem;
}
.gpis-proj-section__body {
    font-size: 1.0625rem;
    color: var(--gpis-cinza-200);
    line-height: 1.65;
    max-width: 64ch;
    margin-bottom: 1.25rem;
}
.gpis-proj-section__body:last-child { margin-bottom: 0; }
.gpis-proj-section__two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4.5rem;
}
.gpis-proj-section__quote {
    font-family: var(--font-display);
    font-size: clamp(1rem, 1.8vw, 1.25rem);
    font-weight: 600;
    color: var(--gpis-azul-ciencia);
    line-height: 1.55;
    margin: 0;
}
.gpis-proj-section__quote--spaced {
    margin-bottom: 1.5rem;
}
@media (max-width: 767px) {
    .gpis-proj-section__two-col {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
}

/* Régua de seção: fio fino com um segmento de acento. */
:is(.gpis-proj-section__inner, .gpis-proj-pubs__inner, .gpis-proj-collab__inner, .gpis-impact-block__inner, .gpis-contact__inner) {
    position: relative;
}
:is(.gpis-proj-section__inner, .gpis-proj-pubs__inner, .gpis-proj-collab__inner, .gpis-impact-block__inner, .gpis-contact__inner)::before {
    content: "";
    position: absolute;
    top: -2px;
    left: 0;
    width: 3.5rem;
    height: 3px;
    background: var(--gpis-azul-ciencia);
    border-radius: 0 0 2px 2px;
}
.gpis-contact--institutional .gpis-contact__inner::before { content: none; }

/* ============================================================
   PROJETO — TEMAS (2 COL)
============================================================ */
.gpis-proj-themes__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
    margin-top: 2.5rem;
}
.gpis-proj-theme {
    background: var(--gpis-papel);
    border-radius: var(--radius-lg);
    border: 1px solid var(--border-subtle);
    padding: 2rem;
}
.gpis-proj-section--soft .gpis-proj-theme {
    background: var(--gpis-nevoa);
}
.gpis-proj-theme__title {
    font-family: var(--font-display);
    font-size: 1.375rem;
    font-weight: 600;
    color: var(--gpis-grafite);
    margin: 0 0 0.85rem;
    line-height: 1.25;
}
.gpis-proj-theme__desc {
    font-size: 1rem;
    color: var(--gpis-cinza-200);
    line-height: 1.6;
    margin: 0;
    max-width: 48ch;
}
@media (max-width: 767px) {
    .gpis-proj-themes__grid { grid-template-columns: 1fr; }
}

/* ============================================================
   PROJETO — TIMELINE
============================================================ */
.gpis-proj-timeline {
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--border-default);
    margin-top: 2.5rem;
}
.gpis-proj-tl-entry {
    display: grid;
    grid-template-columns: 5.5rem 1fr;
    gap: 2rem;
    padding: 1.75rem 0;
    border-bottom: 1px solid var(--border-subtle);
}
.gpis-proj-tl-entry:last-child { border-bottom: none; }
.gpis-proj-tl-year {
    font-family: var(--font-body);
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--gpis-cinza-meta);
    padding-top: 0.15rem;
    line-height: 1.3;
}
.gpis-proj-tl-content__title {
    font-family: var(--font-display);
    font-size: 1.1875rem;
    font-weight: 600;
    color: var(--gpis-grafite);
    margin: 0 0 0.6rem;
    line-height: 1.25;
}
.gpis-proj-tl-content__text {
    font-size: 1rem;
    color: var(--gpis-cinza-200);
    line-height: 1.65;
    margin: 0;
    max-width: 64ch;
}
@media (max-width: 575px) {
    .gpis-proj-tl-entry {
        grid-template-columns: 4rem 1fr;
        gap: 1rem;
    }
}

/* ============================================================
   PROJETO — PUBLICAÇÕES
============================================================ */
.gpis-proj-pubs {
    padding: 7rem 0;
    background: var(--gpis-papel);
}
.gpis-proj-pubs .gpis-proj-section__body {
    line-height: 1.8;
    max-width: 680px;
}
.gpis-proj-pubs__inner {
    border-top: 1px solid var(--border-default);
    padding-top: 2.5rem;
}
.gpis-proj-pub__badge {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--gpis-ambar-hero); /* 5.5:1 sobre o fundo âmbar tingido */
    background: rgba(201,139,46,0.12);
    padding: 0.25rem 0.55rem;
    border-radius: var(--radius-md);
    margin-bottom: 0.65rem;
}

.gpis-proj-pub__meta {
    font-size: 0.9rem;
    color: var(--gpis-cinza-200);
    margin-bottom: 0.2rem;
}
.gpis-proj-pub__journal {
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--gpis-azul-ciencia);
    margin-bottom: 0.5rem;
}
.gpis-proj-pub__label {
    display: block;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--gpis-azul-ciencia);
    margin: 1.1rem 0 0.4rem;
}
.gpis-proj-pub__finding,
.gpis-proj-pub__meaning {
    font-size: 0.9375rem;
    color: var(--gpis-grafite);
    line-height: 1.65;
    margin: 0;
}
.gpis-proj-pub__link {
    display: inline-block;
    margin-top: 1.15rem;
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--gpis-azul-ciencia);
    text-decoration: none;
    border-bottom: 1.5px solid rgba(44,95,138,0.3);
    padding-bottom: 1px;
    transition: border-color 200ms, color 200ms;
}
.gpis-proj-pub__link:hover {
    color: var(--gpis-azul-profundo);
    border-bottom-color: var(--gpis-azul-ciencia);
    text-decoration: none;
}

/* PROJETO — PUBLICAÇÕES: títulos editoriais em PT + título científico */
.gpis-proj-pub__public-title {
    font-family: var(--font-display);
    font-size: 1.075rem;
    font-weight: 600;
    color: var(--gpis-grafite);
    line-height: 1.38;
    margin: 0 0 0.3rem;
}
.gpis-proj-pub__scientific-title {
    font-size: 0.9rem;
    color: var(--gpis-cinza-200);
    line-height: 1.55;
    margin: 0 0 0.45rem;
}
.gpis-proj-pubs__reference .gpis-proj-pub__public-title {
    font-size: 1.15rem;
}
.gpis-proj-pubs__reference .gpis-proj-pub__scientific-title {
    font-size: 0.9375rem;
}

/* Artigo de referência: entry point, thin blue top rule */
.gpis-proj-pubs__reference {
    margin: 2.5rem 0 4.5rem;
    padding: clamp(1.5rem, 3vw, 2.25rem);
    background: var(--gpis-nevoa);
    border-radius: var(--radius-lg);
}
.gpis-proj-pubs__reference .gpis-proj-pub {
    max-width: 720px;
}

.gpis-proj-pubs__reference .gpis-proj-pub__finding,
.gpis-proj-pubs__reference .gpis-proj-pub__meaning {
    font-size: 1rem;
}

/* Temas */
.gpis-proj-pubs__theme + .gpis-proj-pubs__theme {
    margin-top: 5rem;
}
.gpis-proj-pubs__theme-header {
    padding: 0 0 1.25rem;
    margin: 0.4rem 0 2.25rem;
    border-bottom: 1px solid var(--border-default);
}
.gpis-proj-pubs__theme-title {
    font-family: var(--font-display);
    font-size: 1.375rem;
    font-weight: 600;
    color: var(--gpis-grafite);
    margin: 0 0 0.5rem;
}
.gpis-proj-pubs__theme-intro {
    font-size: 1rem;
    color: var(--gpis-cinza-200);
    line-height: 1.7;
    max-width: 620px;
    margin: 0;
}
.gpis-proj-pubs__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2.5rem 3.5rem;
}
.gpis-proj-pubs__grid .gpis-proj-pub {
    padding-top: 1.75rem;
    border-top: 1px solid var(--border-subtle);
}
@media (max-width: 991px) {
    .gpis-proj-pubs__grid {
        grid-template-columns: 1fr;
        gap: 2.5rem 0;
    }
}

/* ============================================================
   PROJETO — COLABORAÇÃO
============================================================ */
.gpis-proj-collab {
    padding: 7rem 0;
    background: var(--gpis-nevoa);
}
.gpis-proj-collab__inner {
    border-top: 1px solid var(--border-default);
    padding-top: 2.5rem;
    max-width: 660px;
}
.gpis-proj-collab__text {
    font-size: 1.0625rem;
    color: var(--gpis-cinza-200);
    line-height: 1.8;
    margin-bottom: 1rem;
}
.gpis-proj-collab__contacts {
    margin-top: 2rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.gpis-proj-collab__contact-label {
    display: block;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--gpis-cinza-200);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 0.15rem;
}
.gpis-proj-collab__contact-email {
    font-size: 1rem;
    font-weight: 700;
    color: var(--gpis-azul-ciencia);
    text-decoration: none;
}
.gpis-proj-collab__contact-email:hover {
    text-decoration: underline;
    color: var(--gpis-azul-profundo);
}
.gpis-proj-collab__cta {
    display: inline-block;
    margin-top: 2rem;
    padding: 0.8rem 1.85rem;
    background: var(--gpis-azul-ciencia);
    color: #fff;
    font-family: var(--font-body);
    font-size: 0.9375rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    text-decoration: none;
    border-radius: var(--radius-sm);
    transition: background var(--dur-2) var(--ease-out);
}
.gpis-proj-collab__cta:hover {
    background: var(--gpis-azul-profundo);
    color: #fff;
    text-decoration: none;
}

/* ============================================================
   PROJETOS — LINK NO CARD DA LISTA
============================================================ */
.gpis-project-item__link {
    display: inline-block;
    margin-top: 0.75rem;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--gpis-azul-ciencia);
    text-decoration: none;
    transition: color 150ms;
}
.gpis-project-item__link:hover {
    color: var(--gpis-azul-profundo);
    text-decoration: underline;
}

/* ============================================================
   VISÕES DO CUIDADO — REDE DE PARCEIROS
============================================================ */
.gpis-proj-network {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem 4rem;
    margin-top: 2rem;
}
.gpis-proj-network__item {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--border-subtle);
}
.gpis-proj-network__country {
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--gpis-azul-ciencia);
}

.gpis-proj-network__role {
    font-size: 0.9rem;
    color: var(--gpis-cinza-200);
}
@media (max-width: 767px) {
    .gpis-proj-network { grid-template-columns: 1fr; }
}

/* ============================================================
   VISÕES DO CUIDADO — DUAS ESCALAS (abordagem 2 colunas)
============================================================ */
.gpis-proj-approach__cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem 5rem;
    margin-top: 2rem;
}
.gpis-proj-approach__title {
    font-family: var(--font-display);
    font-size: 1.375rem;
    font-weight: 600;
    color: var(--gpis-grafite);
    margin: 0 0 0.85rem;
    line-height: 1.25;
}
.gpis-proj-approach__body {
    font-size: 1.0625rem;
    color: var(--gpis-cinza-200);
    line-height: 1.65;
    margin-bottom: 0.75rem;
    max-width: 64ch;
}
@media (max-width: 767px) {
    .gpis-proj-approach__cols { grid-template-columns: 1fr; gap: 2rem; }
}

/* ============================================================
   VISÕES DO CUIDADO — O QUE A REDE BUSCA CONSTRUIR
============================================================ */
.gpis-proj-next__items {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    margin-top: 2rem;
}
.gpis-proj-next__item {
    padding: 1.5rem 0;
    border-top: 2px solid var(--gpis-azul-ciencia);
}
.gpis-proj-next__title {
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--gpis-grafite);
    margin: 0 0 0.85rem;
    line-height: 1.25;
}
.gpis-proj-next__body {
    font-size: 1rem;
    color: var(--gpis-cinza-200);
    line-height: 1.6;
    margin: 0;
    max-width: 48ch;
}
@media (max-width: 991px) {
    .gpis-proj-next__items { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 575px) {
    .gpis-proj-next__items { grid-template-columns: 1fr; }
}

/* ============================================================
   PÁGINA IMPACTO — HERO (banner fotográfico full-bleed)
============================================================ */
.gpis-impact-hero {
    position: relative;
    overflow: hidden;
    min-height: 540px;
    padding: 5rem 0;
    background: rgb(16, 32, 50);
}
.gpis-impact-hero__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 20%;
    display: block;
    z-index: 0;
    transform: translateY(var(--py, 0px)) scale(1.08);
    transform-origin: center top;
}
.gpis-impact-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        100deg,
        rgba(20, 38, 56, 0.80) 0%,
        rgba(20, 38, 56, 0.80) 42%,
        rgba(20, 38, 56, 0.50) 100%
    );
    z-index: 1;
}
.gpis-impact-hero__content {
    position: relative;
    z-index: 2;
}
.gpis-impact-hero__text { max-width: 580px; }
.gpis-impact-hero__eyebrow {
    display: block;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--on-dark-meta);
    margin-bottom: 1rem;
}
.gpis-impact-hero__title {
    font-family: var(--font-display);
    font-size: clamp(1.7rem, 4vw, 2.8rem);
    font-weight: 600;
    line-height: 1.12;
    color: #fff;
    margin-bottom: 1.25rem;
    letter-spacing: -0.02em;
}
.gpis-impact-hero__lead {
    font-size: clamp(1rem, 1.8vw, 1.125rem);
    color: rgba(255,255,255,0.82);
    line-height: 1.7;
    margin: 0;
}
@media (max-width: 767px) {
    .gpis-impact-hero { min-height: 420px; }
    .gpis-impact-hero__overlay { background: rgba(20, 38, 56, 0.74); }
}

/* ============================================================
   PÁGINA IMPACTO — BLOCOS NARRATIVOS
============================================================ */
.gpis-impact-block {
    padding: 7rem 0;
    background: var(--gpis-nevoa);
}

.gpis-impact-block__inner {
    border-top: 1px solid var(--border-default);
    padding-top: 2.5rem;
    display: grid;
    grid-template-columns: 4rem 1fr;
    gap: 0 2.5rem;
    max-width: 780px;
}

@media (max-width: 575px) {
    .gpis-impact-block__inner {
        grid-template-columns: 1fr;
        gap: 0.75rem 0;
    }
    
}

/* ============================================================
   PÁGINA IMPACTO — CTA FINAL
============================================================ */
.gpis-impact-cta {
    padding: 7rem 0;
    background: var(--gpis-azul-ciencia);
    color: #fff;
}
.gpis-impact-cta__inner { max-width: 520px; }
.gpis-impact-cta__title {
    font-family: var(--font-display);
    font-size: clamp(1.4rem, 2.5vw, 1.9rem);
    font-weight: 600;
    color: #fff;
    margin-bottom: 0.85rem;
    line-height: 1.2;
}
.gpis-impact-cta__text {
    font-size: 1.0625rem;
    color: rgba(255,255,255,0.75);
    line-height: 1.7;
    margin-bottom: 1.75rem;
}
.gpis-impact-cta__ctas {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}
.gpis-impact-cta__email {
    margin: 0.9rem 0 0;
}
.gpis-impact-cta__email a {
    font-size: 0.9rem;
    color: rgba(255,255,255,0.85);
    text-decoration: underline;
}
.gpis-impact-cta__email a:hover { color: #fff; }

/* ============================================================
   PROJETO — MEDIA LAYOUT (imagem + texto)
============================================================ */
.gpis-proj-media {
    display: grid;
    grid-template-columns: 55fr 45fr;
    gap: 4rem;
    align-items: start;
}
.gpis-proj-media__figure {
    margin: 0;
}
.gpis-proj-media__image {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--radius-lg);
    object-fit: cover;
}
.gpis-proj-media__caption {
    margin-top: 0.6rem;
    font-size: 0.8125rem;
    color: var(--gpis-cinza-200);
    line-height: 1.5;
}
.gpis-proj-media-pair {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
    margin-top: 2rem;
}
.gpis-proj-media-pair__item {
    margin: 0;
}
.gpis-proj-media-pair__label {
    display: block;
    margin-top: 0.5rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--gpis-cinza-200);
}
.gpis-proj-next__items--four {
    grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 575px) {
    .gpis-proj-next__items--four {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 991px) {
    .gpis-proj-media {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
}
@media (max-width: 767px) {
    .gpis-proj-media-pair {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   PESSOAS — PÁGINA
============================================================ */

/* One editorial component for every active team member, regardless of role. */
.gpis-people-team { background: var(--gpis-papel); }
.gpis-people-team__intro { padding-top: 6rem; }
.gpis-people-band {
    padding: 7rem 0 6rem;
    background: var(--gpis-papel);
}
.gpis-people-band--mist { background: var(--gpis-nevoa); }
.gpis-people-subgroup {
    margin: 0 0 4rem;
    padding-top: 1.5rem;
    border-top: 2px solid var(--gpis-azul-ciencia);
    font-family: var(--font-display);
    font-size: 1.75rem;
    line-height: 1.25;
    font-weight: 600;
    color: var(--gpis-azul-profundo);
}
.gpis-profiles {
    margin-top: 0;
    border-top: 1px solid var(--border-subtle);
}
.gpis-people-subgroup + .gpis-profiles {
    border-top: 0;
}
.gpis-profile {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    align-items: start;
    gap: 1.5rem 4rem;
    padding: 2.5rem 0;
    border-bottom: 1px solid var(--border-subtle);
}
/* Future portraits: add real img.gpis-profile__portrait between identity and bio,
   by complete personnel band. Use the same 4:5 head-and-shoulders crop, size
   and top alignment for everyone. No placeholders or empty photo slots.
   Desktop columns are identity | bio | portrait; mobile follows DOM order.
   Home keeps its compact text roster, without individual portraits. */
.gpis-profile:has(> .gpis-profile__portrait) {
    grid-template-columns: 260px minmax(0, 1fr) 200px;
}
.gpis-profile:has(> .gpis-profile__portrait) > .gpis-profile__identity {
    grid-column: 1;
    grid-row: 1;
}
.gpis-profile:has(> .gpis-profile__portrait) > .gpis-profile__bio {
    grid-column: 2;
    grid-row: 1;
}
.gpis-profile__identity { min-width: 0; }

.gpis-profile__name {
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--gpis-grafite);
    margin: 0 0 0.2rem;
    line-height: 1.3;
}
.gpis-profile__role {
    font-size: 0.9375rem;
    color: var(--gpis-azul-ciencia);
    font-weight: 600;
    margin: 0 0 0.2rem;
    line-height: 1.4;
}
.gpis-profile__institution {
    font-size: 0.875rem;
    color: var(--gpis-cinza-meta);
    margin: 0 0 1.25rem;
    line-height: 1.5;
}
.gpis-profile__links {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
}
.gpis-profile__link-item {
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--gpis-azul-ciencia);
    text-decoration: none;
    border-bottom: 1px solid rgba(44,95,138,0.28);
    padding-bottom: 1px;
    transition: border-color 150ms, color 150ms;
}
.gpis-profile__link-item:hover {
    color: var(--gpis-azul-profundo);
    border-bottom-color: var(--gpis-azul-ciencia);
    text-decoration: none;
}
.gpis-profile__bio {
    font-size: 1.0625rem;
    color: var(--gpis-grafite);
    line-height: 1.65;
    max-width: 64ch;
    margin: 0;
    align-self: start;
}

/* International network: editorial list with separators */
.gpis-people-network {
    list-style: none;
    padding: 0;
    margin: 3rem 0 0;
    border-top: 1px solid var(--border-subtle);
}
.gpis-people-network__item {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 1.5rem 4rem;
    padding: 2.25rem 0;
    border-bottom: 1px solid var(--border-subtle);
}

/* Responsive */
@media (max-width: 991px) {
    .gpis-profile:has(> .gpis-profile__portrait) {
        grid-template-columns: 220px minmax(0, 1fr) 176px;
        column-gap: 1.5rem;
    }
    
    .gpis-profile,
    .gpis-people-network__item {
        grid-template-columns: 220px 1fr;
        gap: 1.25rem 3rem;
    }
}
@media (max-width: 767px) {
    .gpis-people-team__intro { padding-top: 4rem; }
    .gpis-people-band { padding: 5rem 0 4rem; }
    .gpis-people-subgroup { font-size: 1.625rem; }
    .gpis-profile,
    .gpis-profile:has(> .gpis-profile__portrait) {
        grid-template-columns: minmax(0, 1fr);
    }
    
    .gpis-profile:has(> .gpis-profile__portrait) > .gpis-profile__bio {
        grid-column: 1;
        grid-row: 3;
    }
    
    .gpis-profile,
    .gpis-people-network__item {
        grid-template-columns: 1fr;
        gap: 1rem;
        padding: 2rem 0;
    }
    .gpis-profile__bio { align-self: auto; }
    .gpis-profile__institution { margin-bottom: 1rem; }
}

/* ============================================================
   PÁGINA REDE
============================================================ */
.gpis-network__list li:has(> a) { display: block; }
.gpis-network__list li > a {
    display: grid;
    grid-template-columns: 0.75rem minmax(0, 1fr);
    gap: 0.9rem;
    align-items: baseline;
    color: inherit;
    text-decoration: none;
}
.gpis-network__more { margin-top: 1.5rem; }
.gpis-network__list a:hover .gpis-network__country { color: var(--gpis-azul-ciencia); }
/* --- Rede: faixa do ciclo de vida (mesma família da faixa da Coorte) --- */
.gpis-lifeband { background: #3679B0; color: #fff; }
.gpis-lifeband__head {
    display: grid;
    grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
    column-gap: clamp(2rem, 5vw, 5rem);
    align-items: end;
    padding-block: clamp(3.5rem, 6vw, 5.5rem) clamp(2.5rem, 4vw, 3.5rem);
}
.gpis-lifeband__title {
    margin: 0;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: clamp(1.75rem, 1.2rem + 1.8vw, 2.75rem);
    line-height: 1.08;
    letter-spacing: -0.025em;
}
.gpis-lifeband__note { margin: 0; color: rgba(255,255,255,0.88); font-size: 1.0625rem; line-height: 1.6; max-width: 52ch; }
.gpis-lifeband__track {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 6px solid #fff;
}
.gpis-lifeband__phase {
    display: flex; flex-direction: column; gap: 0.9rem;
    padding: clamp(2rem, 3vw, 2.75rem) clamp(24px, 3.4vw, 56px) clamp(2.5rem, 4vw, 3.5rem);
    border-left: 1px solid rgba(255,255,255,0.2);
}
.gpis-lifeband__phase:first-child { border-left: 0; }
.gpis-lifeband__phase:nth-child(2) { background: var(--gpis-azul-ciencia); }
.gpis-lifeband__phase:nth-child(3) { background: var(--gpis-azul-profundo); }
.gpis-lifeband__n { font-family: var(--font-display); font-weight: 700; font-size: 0.9375rem; color: rgba(255,255,255,0.8); font-variant-numeric: tabular-nums; }
.gpis-lifeband__label {
    margin: 0; font-family: var(--font-display); font-weight: 700;
    font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.5rem); line-height: 1; letter-spacing: -0.03em; color: #fff;
}
.gpis-lifeband__study { margin: 0; font-weight: 700; font-size: 1.0625rem; letter-spacing: 0.01em; }
.gpis-lifeband__desc { margin: 0; font-size: 1.0625rem; line-height: 1.65; color: rgba(255,255,255,0.92); max-width: 40ch; }
.gpis-lifeband__leader { margin: auto 0 0; padding-top: 1.5rem; font-size: 0.875rem; line-height: 1.6; color: rgba(255,255,255,0.82); }
.gpis-lifeband__ref { margin: 0; padding-block: 1.4rem; font-size: 0.875rem; color: rgba(255,255,255,0.82); }
.gpis-lifeband__ref cite { font-style: normal; }

@media (max-width: 991px) {
    .gpis-lifeband__head { grid-template-columns: minmax(0, 1fr); row-gap: 0.75rem; }
    .gpis-lifeband__track { grid-template-columns: minmax(0, 1fr); }
    .gpis-lifeband__phase { border-left: 0; border-top: 1px solid rgba(255,255,255,0.2); }
}

/* --- Rede: listas numeradas e definições, sem caixas --- */
 .gpis-defrows { list-style: none; margin: 0; padding: 0; }

 .gpis-defrows > div + div { border-top: 1px solid var(--border-subtle); }

.gpis-defrows > div {
    display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 0.5rem clamp(1rem, 3vw, 2.5rem);
    padding: 1.4rem 0;
}
.gpis-defrows dt { font-family: var(--font-display); font-weight: 600; font-size: 1.25rem; line-height: 1.25; letter-spacing: -0.02em; color: var(--gpis-azul-noite); }
.gpis-defrows dd { margin: 0; color: var(--gpis-cinza-200); font-size: 1.0625rem; line-height: 1.6; }
.gpis-defrows dd p { margin: 0; }
.gpis-defrows dd p + p { margin-top: 0.75rem; }

/* --- Rede: parceiros em linhas (logo · o que fazemos) --- */
.gpis-partners > .gpis-partner + .gpis-partner { border-top: 1px solid var(--border-default); }
.gpis-partner {
    display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 8fr); gap: 1.25rem clamp(1.5rem, 4vw, 3.5rem);
    padding: 2rem 0;
    scroll-margin-top: calc(var(--header-h) + 1.5rem);
}
.gpis-partner:first-child { padding-top: 0; }
.gpis-partner__logo { display: block; width: 100%; max-width: 180px; height: auto; }

.gpis-partner__country { margin: 0.75rem 0 0; font-size: 0.875rem; font-weight: 600; color: var(--gpis-cinza-meta); }
.gpis-partner__pi { margin: 0; font-family: var(--font-display); font-weight: 600; font-size: clamp(1.25rem, 1rem + 0.7vw, 1.625rem); line-height: 1.2; letter-spacing: -0.02em; color: var(--gpis-azul-noite); }
.gpis-partner__pi span { font-weight: 500; color: var(--gpis-cinza-200); }
.gpis-partner__list {
    margin: 0; padding: 0; list-style: none;
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.85rem 2rem;
}
.gpis-partner__list li { position: relative; padding-left: 1rem; color: var(--gpis-grafite); font-size: 1rem; line-height: 1.55; }
.gpis-partner__list li::before { content: ''; position: absolute; left: 0; top: 0.62em; width: 6px; height: 6px; background: var(--gpis-azul-claro); }
.gpis-partner__links { display: flex; flex-wrap: wrap; gap: 0.25rem 1.5rem; margin: 1.1rem 0 0; }
@media (max-width: 767px) {
    .gpis-partner, .gpis-defrows > div { grid-template-columns: minmax(0, 1fr); }
    .gpis-partner__list { grid-template-columns: minmax(0, 1fr); }
    .gpis-partner__logo { max-width: 150px; }
}

/* --- Rede: logos das instituições --- */
.gpis-logos { padding: clamp(2.5rem, 5vw, 4rem) 0; background: var(--gpis-papel); }
.gpis-logos__row {
    list-style: none; margin: 0; padding: 0;
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2rem 3rem;
}
.gpis-logos__row a { display: block; color: var(--gpis-azul-noite); text-decoration: none; opacity: 0.85; transition: opacity var(--dur-2) var(--ease-out); }
.gpis-logos__row a:is(:hover, :focus-visible) { opacity: 1; }
.gpis-logos__row img { display: block; height: 56px; width: auto; }

/* ============================================================
   ACESSIBILIDADE — MOVIMENTO REDUZIDO
============================================================ */
/* Sem deslocamentos nem animações; hover e foco seguem visíveis
   por cor e sombra, aplicados de imediato. */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
    :is(.gpis-project-item, .gpis-projects__featured, .gpis-linha-project):is(:hover, :focus-visible),
    :is(a, .gpis-research__item, .gpis-project-item, .gpis-projects__featured):is(:hover, :focus-visible) .gpis-arrow {
        transform: none !important;
    }
}

/* ============================================================
   PÁGINA DE LINHA DE PESQUISA
============================================================ */
.gpis-linha-hero--azul     { --tone: var(--gpis-azul-ciencia); }
.gpis-linha-hero--ambar    { --tone: var(--gpis-terracota-escuro); }
.gpis-linha-hero--verde    { --tone: var(--gpis-verde-escuro); }
.gpis-linha-hero--profundo { --tone: var(--gpis-azul-profundo); }
.gpis-linha-body {
    background: var(--gpis-papel);
    padding: 5.5rem 0;
}
.gpis-linha-body__layout {
    display: grid;
    grid-template-columns: minmax(0, 60fr) minmax(0, 34fr);
    gap: 6%;
    align-items: start;
}
.gpis-linha-body__text {
    font-size: 1.0625rem;
    line-height: 1.75;
    color: var(--gpis-cinza-200);
    max-width: 64ch;
    margin-bottom: 1.25rem;
}
.gpis-linha-body__aside {
    background: var(--gpis-nevoa);
    border-radius: var(--radius-lg);
    padding: 2rem;
}
.gpis-linha-body__aside-title {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 1.0625rem;
    color: var(--gpis-azul-profundo);
    margin: 0 0 1.25rem;
}
.gpis-linha-questions {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 1rem;
}
.gpis-linha-questions li {
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--gpis-grafite);
    padding-top: 1rem;
    border-top: 1px solid var(--border-default);
}
.gpis-linha-projects {
    background: var(--gpis-nevoa);
    padding: 5rem 0;
    border-top: 1px solid var(--border-subtle);
}
.gpis-linha-projects__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1.5rem;
    margin-top: 2rem;
}
.gpis-linha-project {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    justify-content: space-between;
    background: var(--gpis-papel);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-1);
    padding: 1.75rem;
    color: var(--gpis-grafite);
    text-decoration: none;
    transition: box-shadow var(--dur-2) var(--ease-out), transform var(--dur-2) var(--ease-out);
}
.gpis-linha-project:is(:hover, :focus-visible) {
    box-shadow: var(--shadow-2);
    border-color: var(--border-default);
    color: var(--gpis-grafite);
    text-decoration: none;
}
.gpis-linha-project:focus-visible {
    outline: 3px solid var(--gpis-azul-ciencia);
    outline-offset: 3px;
}
.gpis-linha-project__title {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 1.1875rem;
    line-height: 1.3;
    margin: 0;
}
.gpis-linha-project__link {
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--gpis-azul-ciencia);
}
@media (max-width: 991px) {
    .gpis-linha-body__layout { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
    .gpis-linha-body { padding: 4rem 0; }
    .gpis-linha-projects { padding: 3.5rem 0; }
}

/* ============================================================
   LARGURA ÚTIL — menos branco nas laterais (prova)
============================================================ */
@media (min-width: 1200px) {
    .container { max-width: 1680px; padding-inline: clamp(24px, 3.4vw, 56px); }
}

/* ============================================================
   HOME — FAIXA DA COORTE (linha do tempo a toda largura)
============================================================ */
/* Azul mais claro que o hero (#1E456A) para separar a faixa; branco a 4.65:1. */
.gpis-band { background: #3679B0; color: #fff; border-top: 4px solid var(--gpis-papel); }
.gpis-band__scroll { overflow-x: auto; scrollbar-width: none; }
.gpis-band__scroll::-webkit-scrollbar { display: none; }
.gpis-band__track {
    position: relative;
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    min-width: 820px;
}
.gpis-band__year {
    display: grid;
    grid-template-rows: auto 6px auto;
    border-left: 1px solid rgba(255,255,255,0.18);
}
.gpis-band__year:first-of-type { border-left: 0; }
.gpis-band__year.is-crisis { background: var(--gpis-azul-ciencia); }
.gpis-band__y {
    padding: 0.85rem clamp(0.75rem, 1.2vw, 1.1rem) 0.55rem;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(1.5rem, 1rem + 1.6vw, 2.5rem);
    line-height: 1;
    letter-spacing: -0.03em;
    font-variant-numeric: tabular-nums;
}
.gpis-band__e {
    grid-row: 3;
    padding: 0.7rem clamp(0.75rem, 1.2vw, 1.1rem) 0.85rem;
    font-weight: 600;
    font-size: 0.9375rem;
    line-height: 1.3;
    white-space: nowrap;
}
.gpis-band__line, .gpis-band__fill {
    position: absolute;
    left: 0;
    height: 6px;
    top: var(--band-line-top, 4.1rem);
    pointer-events: none;
}
.gpis-band__line { right: 0; background: rgba(255,255,255,0.22); }
.gpis-band__fill { width: calc(100% / 16 + var(--p, 1) * (100% - 100% / 8)); background: #fff; }
.gpis-band__fill::after {
    content: '';
    position: absolute;
    right: -7px;
    top: -4px;
    width: 14px;
    height: 14px;
    background: var(--gpis-azul-noite);
    border: 2px solid #fff;
}
.gpis-band__legend {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 1.5rem;
    padding-block: 1rem 1.15rem;
    border-top: 1px solid rgba(255,255,255,0.18);
    font-weight: 600;
}
.gpis-band__legend a { color: #fff; text-underline-offset: 3px; }
.gpis-band__legend a:hover { color: var(--on-dark-soft); }

/* ============================================================
   HOME — FRASE + LINHAS DE PESQUISA (lado a lado)
   As linhas entram uma a uma enquanto as palavras acendem.
============================================================ */
.gpis-claim__grid {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: clamp(2rem, 5vw, 6rem);
    align-items: center;
}
.gpis-lines__title {
    margin: 0 0 0.5rem;
    font-family: var(--font-body);
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--gpis-azul-ciencia);
}
.gpis-lines__list { list-style: none; margin: 0; padding: 0; }
.gpis-lines__item + .gpis-lines__item { border-top: 1px solid var(--gpis-cinza-25); }
.gpis-lines__item a {
    display: grid;
    grid-template-columns: 2.25rem minmax(0, 1fr) 1.25rem;
    gap: 0.75rem;
    align-items: start;
    padding: 1.1rem 0;
    color: inherit;
    text-decoration: none;
}
.gpis-lines__n {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 1.0625rem;
    line-height: 1.6;
    color: var(--gpis-azul-ciencia);
    font-variant-numeric: tabular-nums;
}
.gpis-lines__body { display: flex; flex-direction: column; gap: 0.3rem; }
.gpis-lines__t {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: clamp(1.1875rem, 0.9rem + 0.7vw, 1.5rem);
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: var(--gpis-azul-noite);
    transition: color var(--dur-2) var(--ease-out);
}
.gpis-lines__k { font-size: 0.9375rem; color: var(--gpis-cinza-meta); line-height: 1.45; }
.gpis-lines__item .gpis-arrow {
    width: 1.25rem; height: 1.25rem; margin-top: 0.3rem;
    stroke: var(--gpis-azul-ciencia);
    transition: transform var(--dur-2) var(--ease-out);
}
.gpis-lines__item a:is(:hover, :focus-visible) .gpis-lines__t { color: var(--gpis-azul-ciencia); }
.gpis-lines__item a:is(:hover, :focus-visible) .gpis-arrow { transform: translateX(4px); }
.gpis-claim.is-scrolly .gpis-lines__title { opacity: 0; transition: opacity 400ms var(--ease-out); }
.gpis-claim.is-scrolly .gpis-lines__title.is-on { opacity: 1; }
.gpis-claim.is-scrolly .gpis-lines__item {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 500ms var(--ease-out), transform 600ms var(--ease-out);
}
.gpis-claim.is-scrolly .gpis-lines__item.is-on { opacity: 1; transform: none; }
@media (max-width: 991px) {
    .gpis-claim__grid { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
}

/* ============================================================
   HOME — PROJETOS: título fixo à esquerda, lista que corre à direita
============================================================ */
.gpis-projects .gpis-split__note { margin-bottom: 1.5rem; }
.gpis-projects .gpis-projects__more { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; }
.gpis-projects__body > .gpis-projects__featured { margin-bottom: 1.5rem; }
.gpis-rows { list-style: none; margin: 0; padding: 0; }
.gpis-rows > li + li { border-top: 1px solid var(--border-subtle); }
.gpis-row {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr) 1.5rem;
    gap: 1rem clamp(1rem, 3vw, 2.5rem);
    align-items: start;
    padding: 1.6rem 0;
    color: inherit;
    text-decoration: none;
}
.gpis-row__title {
    margin: 0;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: clamp(1.25rem, 1rem + 0.8vw, 1.625rem);
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: var(--gpis-azul-noite);
    transition: color var(--dur-2) var(--ease-out);
}
.gpis-row__desc { color: var(--gpis-grafite); font-size: 1.0625rem; line-height: 1.55; }
.gpis-row__meta { display: block; margin-top: 0.45rem; font-size: 0.875rem; font-weight: 600; color: var(--gpis-cinza-meta); }
.gpis-row .gpis-arrow {
    width: 1.5rem; height: 1.5rem; margin-top: 0.15rem;
    stroke: var(--gpis-azul-noite);
    transition: transform var(--dur-2) var(--ease-out), stroke var(--dur-2) var(--ease-out);
}
.gpis-row:is(:hover, :focus-visible) .gpis-row__title { color: var(--gpis-azul-ciencia); }
.gpis-row:is(:hover, :focus-visible) .gpis-arrow { transform: translateX(4px); stroke: var(--gpis-azul-ciencia); }
.gpis-rows > li[data-reveal]:nth-child(2) { transition-delay: 80ms; }
.gpis-rows > li[data-reveal]:nth-child(3) { transition-delay: 160ms; }
.gpis-rows > li[data-reveal]:nth-child(4) { transition-delay: 240ms; }
@media (max-width: 767px) {
    .gpis-row { grid-template-columns: minmax(0, 1fr) 1.5rem; }
    .gpis-row__desc { grid-column: 1; }
    .gpis-row .gpis-arrow { grid-row: 1; grid-column: 2; }
}

/* ============================================================
   HOME — IMPACTO: foto à esquerda, azul-noite à direita
============================================================ */
.gpis-impact-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    background: var(--gpis-azul-noite);
    color: var(--on-dark);
}
.gpis-impact-split__photo { position: relative; background: var(--gpis-azul-profundo); overflow: hidden; min-height: 22rem; }
/* Foto monocromática tingida de azul: dialoga com o bloco sem competir. */
.gpis-impact-split__photo img {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; object-position: 50% 35%;
    filter: grayscale(1) contrast(1.05);
    mix-blend-mode: luminosity;
    opacity: 0.92;
}
.gpis-impact-split__body {
    display: flex; flex-direction: column; align-items: flex-start;
    padding: clamp(3rem, 7vw, 6.5rem) clamp(24px, 4vw, 64px);
    max-width: 52rem;
}
.gpis-impact-split__quote { margin: 0; padding-bottom: 2rem; border-bottom: 1px solid var(--on-dark-line); width: 100%; }
.gpis-impact-split__mark { width: 1.6rem; height: auto; fill: #9DBDD9; margin-bottom: 1.25rem; }
.gpis-impact-split__quote blockquote {
    margin: 0;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: clamp(1.75rem, 1.1rem + 2vw, 2.75rem);
    line-height: 1.12;
    letter-spacing: -0.025em;
    max-width: 20ch;
}
.gpis-impact-split__title {
    margin: 2rem 0 0.75rem;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: clamp(1.25rem, 1rem + 0.7vw, 1.625rem);
    letter-spacing: -0.02em;
    color: #fff;
}
.gpis-impact-split__text { margin: 0; color: var(--on-dark-soft); font-size: 1.0625rem; line-height: 1.6; max-width: 48ch; }
.gpis-impact-split__dims {
    list-style: none; margin: 2.5rem 0 2.25rem; padding: 0; width: 100%;
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem;
}
.gpis-impact-split__dims li { padding-top: 1rem; border-top: 3px solid #5A8BB5; }
.gpis-impact-split__dims h3 { margin: 0 0 0.4rem; font-family: var(--font-display); font-size: 1.125rem; font-weight: 600; color: #fff; letter-spacing: -0.01em; }
.gpis-impact-split__dims p { margin: 0; font-size: 0.9375rem; line-height: 1.5; color: var(--on-dark-meta); }
.gpis-impact-split__dims li[data-reveal]:nth-child(2) { transition-delay: 80ms; }
.gpis-impact-split__dims li[data-reveal]:nth-child(3) { transition-delay: 160ms; }
@media (max-width: 991px) {
    .gpis-impact-split { grid-template-columns: minmax(0, 1fr); }
    .gpis-impact-split__photo { min-height: 0; height: clamp(16rem, 62vw, 28rem); }
}
@media (max-width: 575px) {
    .gpis-impact-split__dims { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
}

/* ============================================================
   PÁGINAS INTERNAS — título fixo à esquerda, conteúdo que corre à direita
   (mesmo gesto dos blocos da home). Substitui a régua horizontal no topo.
============================================================ */
@media (min-width: 992px) {
    .gpis-proj-section__inner {
        display: grid;
        grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
        column-gap: clamp(2rem, 5vw, 5rem);
        align-items: start;
        border-top: 0;
        padding-top: 0;
    }
    .gpis-proj-section__inner > * { grid-column: 2; min-width: 0; }
    .gpis-proj-section__inner > .gpis-section-title {
        grid-column: 1;
        grid-row: 1 / span 30;
        align-self: start;
        position: sticky;
        top: calc(var(--header-h) + 2rem);
        margin: 0;
    }
    .gpis-proj-section__inner > .gpis-section-title + * { margin-top: 0; }
    .gpis-proj-section__inner .gpis-proj-timeline { border-top: 0; margin-top: 0; }
}
@media (min-width: 992px) {
    .gpis-linha-body__aside { position: sticky; top: calc(var(--header-h) + 2rem); }
}

/* ============================================================
   HOME — vínculo institucional (FURG · PPGSP), antes do rodapé
============================================================ */
.gpis-inst { background: var(--gpis-papel); padding-block: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--border-subtle); }
.gpis-inst__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.25rem 3rem; }
.gpis-inst__text { margin: 0; max-width: 62ch; color: var(--gpis-cinza-200); font-size: 1.0625rem; line-height: 1.6; }
.gpis-inst__text a { color: var(--gpis-azul-noite); font-weight: 600; text-decoration: underline; text-decoration-color: rgba(30,69,106,0.3); text-underline-offset: 0.25em; }
.gpis-inst__text a:is(:hover, :focus-visible) { text-decoration-color: currentColor; }
.gpis-inst__logos { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 2.5rem; }
.gpis-inst__logos a { font-family: var(--font-display); font-weight: 700; font-size: 1.5rem; letter-spacing: -0.02em; color: var(--gpis-azul-noite); text-decoration: none; opacity: 0.85; }
.gpis-inst__logos a:is(:hover, :focus-visible) { opacity: 1; }
.gpis-inst__logos img { display: block; height: 52px; width: auto; }

/* --- Rede: mecanismos de colaboração a toda a largura --- */
.gpis-mech { padding: var(--section-y) 0; background: var(--gpis-papel); }
.gpis-mech__head {
    display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
    column-gap: clamp(2rem, 5vw, 5rem); align-items: end;
    margin-bottom: clamp(2.5rem, 4vw, 3.5rem);
}
.gpis-mech__head .gpis-section-title { margin: 0; }
.gpis-mech__note { margin: 0; color: var(--gpis-cinza-200); font-size: 1.125rem; line-height: 1.6; max-width: 48ch; }
.gpis-mech__grid {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 3rem);
}
.gpis-mech__grid > li { padding-top: 1.25rem; border-top: 3px solid var(--gpis-azul-claro); }
.gpis-mech__n {
    display: block; margin-bottom: 1.25rem;
    font-family: var(--font-display); font-weight: 600;
    font-size: clamp(2.5rem, 1.8rem + 2vw, 3.75rem); line-height: 1; letter-spacing: -0.04em;
    color: var(--gpis-azul-ciencia); font-variant-numeric: tabular-nums;
}
.gpis-mech__t { margin: 0 0 0.6rem; font-family: var(--font-display); font-weight: 600; font-size: 1.25rem; line-height: 1.2; letter-spacing: -0.02em; color: var(--gpis-azul-noite); }
.gpis-mech__d { margin: 0; color: var(--gpis-cinza-200); font-size: 1rem; line-height: 1.6; }
.gpis-mech__grid > li[data-reveal]:nth-child(2) { transition-delay: 80ms; }
.gpis-mech__grid > li[data-reveal]:nth-child(3) { transition-delay: 160ms; }
.gpis-mech__grid > li[data-reveal]:nth-child(4) { transition-delay: 240ms; }
@media (max-width: 991px) {
    .gpis-mech__head { grid-template-columns: minmax(0, 1fr); row-gap: 1rem; }
    .gpis-mech__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575px) { .gpis-mech__grid { grid-template-columns: minmax(0, 1fr); } }

/* --- Rede: nomes e logos com link --- */
.gpis-partner__pi a { color: inherit; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 0.2em; text-decoration-color: rgba(30,69,106,0.25); }
.gpis-partner__pi a:is(:hover, :focus-visible) { color: var(--gpis-azul-ciencia); text-decoration-color: currentColor; }
.gpis-partner__pi { margin-bottom: 1rem; }
.gpis-partner__text { margin: 0; color: var(--gpis-cinza-200); font-size: 1.0625rem; line-height: 1.65; max-width: 62ch; }
.gpis-partner__logo-link { display: inline-block; text-decoration: none; transition: opacity var(--dur-2) var(--ease-out); }
.gpis-partner__logo-link:is(:hover, :focus-visible) { opacity: 0.75; }

/* ============================================================
   IMPACTO — pesquisa com as famílias (mosaico + palavras)
============================================================ */
.gpis-fam { padding: var(--section-y) 0; background: var(--gpis-papel); }
.gpis-fam__head {
    display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    column-gap: clamp(2rem, 5vw, 5rem); align-items: end;
    margin-bottom: clamp(2.5rem, 4vw, 3.5rem);
}
.gpis-fam__head .gpis-section-title { margin: 0; }
.gpis-fam__intro p { margin: 0; color: var(--gpis-grafite); font-size: 1.125rem; line-height: 1.65; max-width: 60ch; }
.gpis-fam__intro p + p { margin-top: 0.85rem; color: var(--gpis-cinza-200); }
.gpis-fam__mosaic {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-auto-rows: minmax(0, auto);
    gap: clamp(0.75rem, 1.2vw, 1.25rem);
}
.gpis-fam__photo { margin: 0; overflow: hidden; background: var(--gpis-nevoa); }
.gpis-fam__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gpis-fam__photo--mat { grid-column: span 7; aspect-ratio: 4 / 3; }
.gpis-words { grid-column: span 5; margin: 0; padding: clamp(1.5rem, 2.5vw, 2.5rem); background: var(--gpis-nevoa); display: flex; flex-direction: column; justify-content: space-between; gap: 1.5rem; }
.gpis-words__cap { font-size: 0.875rem; font-weight: 700; color: var(--gpis-azul-ciencia); }
.gpis-words__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.35rem 1.1rem; }
.gpis-words__w { font-family: var(--font-display); font-weight: 600; letter-spacing: -0.02em; line-height: 1.1; color: var(--gpis-azul-noite); }
.gpis-words__w--xl { font-size: clamp(2.5rem, 1.6rem + 2.6vw, 4rem); color: var(--gpis-azul-ciencia); }
.gpis-words__w--l { font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.75rem); }
.gpis-words__w--m { font-size: clamp(1.25rem, 1rem + 0.8vw, 1.75rem); color: var(--gpis-azul-profundo); }
.gpis-words__w--s { font-size: clamp(1rem, 0.9rem + 0.4vw, 1.25rem); font-weight: 500; color: var(--gpis-cinza-200); }
.gpis-fam__photo--part { grid-column: span 4; aspect-ratio: 4 / 5; }
.gpis-fam__photo--part img { object-position: 50% 30%; }
.gpis-fam__quote {
    grid-column: span 4; margin: 0;
    display: flex; align-items: flex-end;
    padding: clamp(1.5rem, 2.5vw, 2.5rem);
    background: var(--gpis-azul-noite); color: #fff;
    font-family: var(--font-display); font-weight: 600;
    font-size: clamp(1.375rem, 1rem + 1.2vw, 2rem); line-height: 1.15; letter-spacing: -0.02em;
}
.gpis-fam__photo--resp { grid-column: span 4; aspect-ratio: 4 / 5; }
.gpis-fam__mosaic > [data-reveal]:nth-child(2) { transition-delay: 80ms; }
.gpis-fam__mosaic > [data-reveal]:nth-child(4) { transition-delay: 80ms; }
.gpis-fam__mosaic > [data-reveal]:nth-child(5) { transition-delay: 160ms; }
@media (max-width: 991px) {
    .gpis-fam__head { grid-template-columns: minmax(0, 1fr); row-gap: 1.25rem; }
    .gpis-fam__photo--mat, .gpis-words { grid-column: span 12; }
    .gpis-fam__photo--part, .gpis-fam__photo--resp { grid-column: span 6; }
    .gpis-fam__quote { grid-column: span 12; order: 5; }
}
@media (max-width: 575px) {
    .gpis-fam__photo--part, .gpis-fam__photo--resp { grid-column: span 12; aspect-ratio: 4 / 3; }
}

/* --- Impacto: achados em linguagem simples --- */
.gpis-findings { list-style: none; margin: 0; padding: 0; }
.gpis-findings > li { padding: 1.75rem 0; }
.gpis-findings > li:first-child { padding-top: 0; }
.gpis-findings > li + li { border-top: 1px solid var(--border-subtle); }
.gpis-finding__meta { margin: 0 0 0.5rem; font-size: 0.875rem; font-weight: 600; color: var(--gpis-cinza-meta); }
.gpis-finding__t { margin: 0 0 0.6rem; font-family: var(--font-display); font-weight: 600; font-size: clamp(1.25rem, 1rem + 0.7vw, 1.625rem); line-height: 1.2; letter-spacing: -0.02em; color: var(--gpis-azul-noite); }
.gpis-finding__d { margin: 0 0 0.75rem; color: var(--gpis-grafite); font-size: 1.0625rem; line-height: 1.65; max-width: 64ch; }
.gpis-findings__ref { margin: 1rem 0 0; padding-top: 1.5rem; border-top: 1px solid var(--border-default); color: var(--gpis-cinza-200); font-size: 1rem; line-height: 1.6; max-width: 64ch; }
.gpis-findings__ref .gpis-textlink { display: inline-flex; margin-top: 0.5rem; }

/* --- Impacto: texto de abertura, números e fechamento --- */
.gpis-impact-lead { margin: 0 0 2rem; color: var(--gpis-grafite); font-size: clamp(1.125rem, 1rem + 0.4vw, 1.3125rem); line-height: 1.6; max-width: 58ch; }
.gpis-facts { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.gpis-facts > div { padding-top: 1rem; border-top: 3px solid var(--gpis-azul-claro); }
.gpis-facts dt { font-family: var(--font-display); font-weight: 600; font-size: clamp(2.5rem, 1.8rem + 2vw, 3.75rem); line-height: 1; letter-spacing: -0.04em; color: var(--gpis-azul-ciencia); }
.gpis-facts dd { margin: 0.5rem 0 0; color: var(--gpis-grafite); font-size: 1rem; line-height: 1.45; }
.gpis-facts__note { margin: 1rem 0 0; font-size: 0.875rem; color: var(--gpis-cinza-meta); }
@media (max-width: 575px) { .gpis-facts { grid-template-columns: minmax(0, 1fr); } }
.gpis-logos__row--start { justify-content: flex-start; gap: 2rem 3.5rem; }
.gpis-next { background: var(--gpis-azul-noite); color: #fff; padding: clamp(4.5rem, 9vw, 8rem) 0; }
.gpis-next__inner { display: grid; gap: 1.75rem; }
.gpis-next__label { margin: 0; font-family: var(--font-body); font-size: 1rem; font-weight: 700; color: #9DBDD9; }
.gpis-next__label::before { content: ''; display: block; width: 2.5rem; height: 2px; margin-bottom: 1.1rem; background: var(--gpis-terracota-sul); }
.gpis-next__msg {
    margin: 0; max-width: 22ch;
    font-family: var(--font-display); font-weight: 600;
    font-size: clamp(2.25rem, 1.2rem + 3.6vw, 4.5rem); line-height: 1.04; letter-spacing: -0.035em;
    color: #fff; text-wrap: balance;
}
.gpis-next__body { margin: 0.5rem 0 0; max-width: 60ch; color: var(--on-dark-soft); font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.25rem); line-height: 1.65; }
/* Efeito de digitação: as letras já ocupam seu lugar; só aparecem em sequência. */
.gpis-type__w { white-space: nowrap; }
.gpis-type__c { position: relative; }
.gpis-type.is-typing .gpis-type__c { visibility: hidden; }
.gpis-type.is-typing .gpis-type__c.is-on { visibility: visible; }
.gpis-type__c.is-caret::after {
    content: ''; position: absolute; right: -0.12em; top: 0.08em; bottom: 0.04em; width: 0.07em;
    background: var(--gpis-terracota-sul); animation: gpis-caret 900ms steps(1) infinite;
}
@keyframes gpis-caret { 50% { opacity: 0; } }
.gpis-next.is-typing-pending .gpis-next__body { opacity: 0; transform: translateY(10px); }
.gpis-next .gpis-next__body { transition: opacity 600ms var(--ease-out), transform 600ms var(--ease-out); }

/* --- Logos institucionais (FURG, PPGSP, UDD) --- */
.gpis-inst__logos img { height: 64px; width: auto; }
.gpis-inst__logos .gpis-inst__logo--small { height: 44px; }
.gpis-partner__logo-pair { display: flex; align-items: center; gap: 1.25rem; }
.gpis-partner__logo-pair img { height: 72px; width: auto; }
.gpis-partner__logo-pair .gpis-partner__logo--small { height: 44px; }
.gpis-logos__row img { height: 48px; }
.gpis-logos__row img.gpis-logos__tall { height: 72px; }
.gpis-logos__row img.gpis-logos__small { height: 44px; }
.gpis-defrows dt a { color: inherit; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 0.2em; text-decoration-color: rgba(30,69,106,0.3); }
.gpis-defrows dt a:is(:hover, :focus-visible) { color: var(--gpis-azul-ciencia); text-decoration-color: currentColor; }

/* ============================================================
   SÍMBOLO DO GPIS NAS CABECEIRAS (vetorial, com gesto por página)
============================================================ */
.gpis-mark {
    --mark-ink: var(--gpis-azul-profundo);
    --mark-hole: var(--gpis-nevoa);
    --mark-warm: var(--gpis-terracota-sul);
    --mark-cool: var(--gpis-azul-claro);
    position: absolute;
    z-index: 0;
    top: 50%;
    right: max(-2rem, calc((100vw - 1680px) / 2 + 2rem));
    width: min(30vw, 360px);
    height: auto;
    overflow: visible;
    transform: translateY(calc(-50% + var(--py, 0px)));
    pointer-events: none;
}
.gpis-mark__grp { opacity: 0.12; }
.gpis-mark__edge { stroke: var(--mark-ink); stroke-width: 7; stroke-linecap: round; fill: none; }
.gpis-mark__node { fill: var(--mark-ink); transform-box: fill-box; transform-origin: center; }
.gpis-mark__person { transform-box: fill-box; transform-origin: center; }
.gpis-mark__hole { fill: var(--mark-hole); }
.gpis-mark__ring { fill: none; stroke: var(--mark-cool); stroke-width: 2; opacity: 0; transform-box: fill-box; transform-origin: center; }
/* Sobre a foto do Impacto: símbolo claro, do lado onde a foto aparece. */
.gpis-impact-hero .gpis-mark { --mark-ink: #fff; --mark-hole: #1E3550; --mark-cool: #9DBDD9; z-index: 1; }
.gpis-impact-hero .gpis-mark__grp { opacity: 0.16; }
/* Pantalhas largas: o símbolo cresce, se aproxima do texto e é cortado em
   cima e embaixo, ocupando o espaço livre da cabeceira (opção A, out/2026). */
@media (min-width: 1200px) {
    .gpis-proj-hero .gpis-mark {
        width: clamp(440px, 38vw, 660px);
        right: max(-4rem, calc((100vw - 1680px) / 2 - 1rem));
    }
    .gpis-proj-hero .gpis-mark__grp { opacity: 0.1; }
}
@media (max-width: 991px) {
    .gpis-mark { top: 1rem; right: -10%; width: 48%; transform: none; }
    .gpis-mark__grp { opacity: 0.09; }
}
@media (max-width: 575px) {
    .gpis-mark { display: none; }
}

/* ============================================================
   COORTE (e páginas de projeto) — mesma linha do resto do site
============================================================ */
/* Números */
.gpis-proj-numbers__item { padding: clamp(2rem, 4vw, 3rem) 2rem; }
.gpis-proj-numbers__value { font-size: clamp(2.25rem, 1.5rem + 2.4vw, 3.5rem); letter-spacing: -0.035em; font-variant-numeric: tabular-nums; margin-bottom: 0.5rem; }
.gpis-proj-numbers__label { font-size: 1rem; }

/* Temas: sem caixas, com o traço azul das outras listas */
.gpis-proj-themes__grid { gap: 2.5rem clamp(1.5rem, 3vw, 3rem); margin-top: 0; }
.gpis-proj-theme,
.gpis-proj-section--soft .gpis-proj-theme { background: none; border: 0; border-radius: 0; padding: 1.25rem 0 0; border-top: 3px solid var(--gpis-azul-claro); }
.gpis-proj-theme__title { font-size: clamp(1.25rem, 1rem + 0.7vw, 1.625rem); color: var(--gpis-azul-noite); letter-spacing: -0.02em; margin-bottom: 0.6rem; }
.gpis-proj-theme__desc { font-size: 1.0625rem; max-width: 52ch; }

/* Trajetória: anos grandes e uma linha que avança com o scroll */
.gpis-proj-timeline { position: relative; border-top: 0; margin-top: 0; padding-left: 2.25rem; }
.gpis-proj-timeline::before,
.gpis-proj-timeline__fill { content: ''; position: absolute; left: 5px; top: 2.6rem; width: 2px; }
.gpis-proj-timeline::before { bottom: 2.6rem; background: var(--gpis-cinza-50); }
.gpis-proj-timeline__fill { height: calc((100% - 5.2rem) * var(--tl, 1)); background: var(--gpis-azul-ciencia); }
.gpis-proj-tl-entry { position: relative; grid-template-columns: minmax(5.5rem, 9rem) minmax(0, 1fr); gap: 0.75rem clamp(1.5rem, 3vw, 2.5rem); padding: 2rem 0; border-bottom: 0; }
.gpis-proj-tl-entry::before {
    content: ''; position: absolute; left: -2.25rem; top: 2.25rem;
    width: 12px; height: 12px; border-radius: 50%;
    background: var(--gpis-nevoa); border: 2px solid var(--gpis-cinza-50);
    transition: background 300ms var(--ease-out), border-color 300ms var(--ease-out);
}
.gpis-proj-tl-entry.is-past::before { background: var(--gpis-azul-ciencia); border-color: var(--gpis-azul-ciencia); }
.gpis-proj-tl-year { font-family: var(--font-display); font-size: clamp(1.5rem, 1.1rem + 1.3vw, 2.375rem); font-weight: 600; color: var(--gpis-azul-ciencia); letter-spacing: -0.03em; line-height: 1; padding-top: 0; font-variant-numeric: tabular-nums; }
.gpis-proj-tl-content__title { font-size: clamp(1.25rem, 1rem + 0.7vw, 1.625rem); color: var(--gpis-azul-noite); letter-spacing: -0.02em; }
.gpis-proj-tl-content__text { font-size: 1.0625rem; }
.gpis-proj-timeline.is-live .gpis-proj-tl-entry > * { transition: opacity 400ms var(--ease-out); }
.gpis-proj-timeline.is-live .gpis-proj-tl-entry:not(.is-past) > * { opacity: 0.4; }
@media (max-width: 575px) {
    .gpis-proj-timeline { padding-left: 1.75rem; }
    .gpis-proj-tl-entry { grid-template-columns: minmax(0, 1fr); gap: 0.5rem; }
    .gpis-proj-tl-entry::before { left: -1.75rem; top: 2.15rem; }
}

/* Publicações: título fixo à esquerda, artigos em linhas à direita */
@media (min-width: 992px) {
    .gpis-proj-pubs__inner {
        display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
        column-gap: clamp(2rem, 5vw, 5rem); align-items: start;
        border-top: 0; padding-top: 0;
    }
    .gpis-proj-pubs__inner > * { grid-column: 2; min-width: 0; }
    .gpis-proj-pubs__inner > .gpis-proj-pubs__head {
        grid-column: 1; grid-row: 1 / span 30; align-self: start;
        position: sticky; top: calc(var(--header-h) + 2rem);
    }
}
.gpis-proj-pubs__head .gpis-section-title { margin-bottom: 1rem; }
.gpis-proj-pubs__head .gpis-proj-section__body { font-size: 1.0625rem; line-height: 1.65; max-width: 40ch; color: var(--gpis-cinza-200); }
.gpis-proj-pubs__reference { margin: 0 0 4rem; }
.gpis-proj-pubs__theme + .gpis-proj-pubs__theme { margin-top: 4rem; }
.gpis-proj-pubs__theme-header { margin: 0 0 0.5rem; padding: 1.25rem 0 0; border-bottom: 0; border-top: 3px solid var(--gpis-azul-claro); }
.gpis-proj-pubs__theme-title { font-size: clamp(1.5rem, 1.1rem + 1.2vw, 2.125rem); color: var(--gpis-azul-noite); letter-spacing: -0.025em; line-height: 1.1; }
.gpis-proj-pubs__theme-intro { font-size: 1.0625rem; }
.gpis-proj-pubs__grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
.gpis-proj-pubs__grid .gpis-proj-pub { padding: 2rem 0; border-top: 1px solid var(--border-subtle); }
.gpis-proj-pubs__grid .gpis-proj-pub:first-child { border-top: 0; }
.gpis-proj-pub__public-title,
.gpis-proj-pubs__reference .gpis-proj-pub__public-title { font-size: clamp(1.25rem, 1rem + 0.7vw, 1.625rem); color: var(--gpis-azul-noite); letter-spacing: -0.02em; line-height: 1.2; margin-bottom: 0.4rem; }
.gpis-proj-pub__scientific-title { font-size: 0.9375rem; font-style: italic; max-width: 70ch; }
.gpis-proj-pub__finding,
.gpis-proj-pub__meaning,
.gpis-proj-pubs__reference .gpis-proj-pub__finding,
.gpis-proj-pubs__reference .gpis-proj-pub__meaning { font-size: 1.0625rem; max-width: 68ch; }
.gpis-proj-pubs__reference .gpis-proj-pub { max-width: none; }

/* Colaboração: faixa azul de fechamento, texto à esquerda e contatos à direita */
.gpis-proj-collab { background: var(--gpis-azul-profundo); color: #fff; padding: clamp(4rem, 8vw, 6.5rem) 0; }
.gpis-proj-collab__inner {
    display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    column-gap: clamp(2rem, 5vw, 5rem); row-gap: 2.5rem; align-items: center;
    max-width: none; border-top: 0; padding-top: 0;
}
.gpis-proj-collab .gpis-section-title { color: #fff; }
.gpis-proj-collab__text { color: var(--on-dark-soft); max-width: 48ch; }
.gpis-proj-collab__cta { background: #fff; color: var(--gpis-azul-profundo); margin-top: 1rem; }
.gpis-proj-collab__cta:hover { background: var(--gpis-nevoa); color: var(--gpis-azul-noite); }
.gpis-proj-collab__contacts { margin-top: 0; gap: 0; }
.gpis-proj-collab__contacts > div { padding: 1.4rem 0; border-top: 1px solid var(--on-dark-line); }
.gpis-proj-collab__contacts > div:last-child { border-bottom: 1px solid var(--on-dark-line); }
.gpis-proj-collab__contact-label { color: var(--on-dark-meta); margin-bottom: 0.4rem; }
.gpis-proj-collab__contact-email { color: #fff; font-family: var(--font-display); font-weight: 600; font-size: clamp(1.25rem, 0.9rem + 1.2vw, 1.875rem); letter-spacing: -0.02em; overflow-wrap: anywhere; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 0.2em; text-decoration-color: rgba(255,255,255,0.35); }
.gpis-proj-collab__contact-email:hover { color: #fff; text-decoration-color: #fff; }
.gpis-proj-collab :focus-visible { outline-color: #fff; }
@media (max-width: 991px) { .gpis-proj-collab__inner { grid-template-columns: minmax(0, 1fr); } }

/* Marca d'água da Coorte entra de lado, uma vez, ao abrir a página */
@media (prefers-reduced-motion: no-preference) {
    .gpis-proj-hero--coorte::after { animation: gpis-wm-in 1600ms cubic-bezier(.2,.7,.2,1) 200ms both; }
}
@keyframes gpis-wm-in { from { opacity: 0; translate: 6rem 0; } }
.gpis-proj-tl-entry { grid-template-columns: minmax(8.5rem, 11rem) minmax(0, 1fr); }
.gpis-proj-tl-year { white-space: nowrap; }
.gpis-proj-numbers__value { font-size: clamp(2rem, 1.4rem + 2vw, 3rem); white-space: nowrap; }
@media (max-width: 767px) { .gpis-proj-numbers__value { white-space: normal; } }
@media (max-width: 575px) { .gpis-proj-tl-entry { grid-template-columns: minmax(0, 1fr); } }

/* ============================================================
   EQUIPE — colegas da rede (resumo com logos; detalhes na Rede)
============================================================ */
.gpis-colleagues { padding: var(--section-y) 0; background: var(--gpis-nevoa); }
.gpis-colleagues__head {
    display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    column-gap: clamp(2rem, 5vw, 5rem); row-gap: 0.75rem; align-items: end;
    margin-bottom: clamp(2.5rem, 4vw, 3.5rem);
}
.gpis-colleagues__head .gpis-section-title { margin: 0; grid-row: span 2; }
.gpis-colleagues__note { margin: 0; color: var(--gpis-cinza-200); font-size: 1.125rem; line-height: 1.6; max-width: 48ch; }
.gpis-colleagues__head .gpis-textlink { justify-self: start; }
.gpis-colleagues__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 3rem); }
.gpis-colleagues__list > li { display: flex; flex-direction: column; gap: 0.4rem; padding-top: 1.5rem; border-top: 3px solid var(--gpis-azul-claro); }
.gpis-colleagues__list img { height: 44px; width: auto; max-width: 100%; object-fit: contain; object-position: left center; margin-bottom: 1rem; }
.gpis-colleagues__name { font-family: var(--font-display); font-weight: 600; font-size: clamp(1.25rem, 1rem + 0.7vw, 1.625rem); letter-spacing: -0.02em; line-height: 1.2; color: var(--gpis-azul-noite); text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 0.2em; text-decoration-color: rgba(30,69,106,0.25); }
.gpis-colleagues__name:is(:hover, :focus-visible) { color: var(--gpis-azul-ciencia); text-decoration-color: currentColor; }
.gpis-colleagues__inst { color: var(--gpis-cinza-200); font-size: 1rem; }
.gpis-colleagues__list > li[data-reveal]:nth-child(2) { transition-delay: 80ms; }
.gpis-colleagues__list > li[data-reveal]:nth-child(3) { transition-delay: 160ms; }
@media (max-width: 991px) {
    .gpis-colleagues__head { grid-template-columns: minmax(0, 1fr); }
    .gpis-colleagues__head .gpis-section-title { grid-row: auto; }
    .gpis-colleagues__list { grid-template-columns: minmax(0, 1fr); }
}

/* --- Rede: faixa do ciclo de vida com um azul por fase, que aparece em ordem --- */
.gpis-lifeband { background: var(--gpis-azul-noite); }
.gpis-lifeband__phase:nth-child(1) { background: #3679B0; }
.gpis-lifeband__phase:nth-child(2) { background: var(--gpis-azul-ciencia); }
.gpis-lifeband__phase:nth-child(3) { background: var(--gpis-azul-profundo); }
.gpis-lifeband__track { position: relative; border-top: 0; }
.gpis-lifeband__track::before {
    content: ''; position: absolute; left: 0; top: 0; height: 6px; width: 100%; z-index: 1;
    background: #fff; transform-origin: left center; transform: scaleX(var(--lb, 1));
}
.gpis-lifeband.is-live .gpis-lifeband__phase { transition: opacity 600ms var(--ease-out), transform 700ms var(--ease-out); }
.gpis-lifeband.is-live .gpis-lifeband__phase:not(.is-on) { opacity: 0; transform: translateY(28px); }
.gpis-partner__logo--tall { max-width: 96px; }

/* ============================================================
   PARA AS FAMÍLIAS
============================================================ */
.gpis-findings--fam .gpis-finding__t { margin: 0 0 0.6rem; font-family: var(--font-display); font-weight: 600; font-size: clamp(1.25rem, 1rem + 0.8vw, 1.75rem); line-height: 1.22; letter-spacing: -0.02em; color: var(--gpis-azul-noite); max-width: 36ch; }
.gpis-findings--fam .gpis-finding__d strong { color: var(--gpis-azul-noite); }
.gpis-findings--fam .gpis-finding__meta { margin: 0; }
.gpis-findings--fam .gpis-finding__meta a { color: var(--gpis-azul-ciencia); font-weight: 700; text-decoration: underline; text-underline-offset: 0.2em; text-decoration-color: rgba(44,95,138,0.35); }
.gpis-fam__photo--wide { aspect-ratio: 16 / 10; max-width: 100%; }
.gpis-care { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 3rem); }
.gpis-care > li { padding-top: 1.25rem; border-top: 3px solid var(--gpis-azul-claro); }
.gpis-care h3 { margin: 0 0 0.6rem; font-family: var(--font-display); font-weight: 600; font-size: clamp(1.25rem, 1rem + 0.7vw, 1.625rem); letter-spacing: -0.02em; color: var(--gpis-azul-noite); }
.gpis-care p { margin: 0; color: var(--gpis-grafite); font-size: 1.0625rem; line-height: 1.65; }
@media (max-width: 767px) { .gpis-care { grid-template-columns: minmax(0, 1fr); } }
.gpis-proj-hero__family { margin: 1.25rem 0 0; }

/* Aviso de autorização: sempre junto das fotos em que aparecem mães e crianças */
.gpis-consent { display: flex; align-items: baseline; gap: 0.55rem; margin: 0.9rem 0 0; font-size: 0.875rem; line-height: 1.45; color: var(--gpis-cinza-200); }
.gpis-consent::before { content: ""; flex: none; width: 0.5rem; height: 0.5rem; background: var(--gpis-terracota-sul); transform: translateY(-0.05rem); }
.gpis-consent--photo { position: absolute; left: 0; bottom: 0; z-index: 2; margin: 0; padding: 0.45rem 0.8rem; background: rgba(20, 44, 68, 0.82); color: #fff; font-size: 0.8125rem; }
.gpis-consent--hero { margin-top: 1.5rem; color: rgba(255, 255, 255, 0.88); }

/* ============================================================
   HOME — NOVIDADES
============================================================ */
.gpis-news { padding: var(--section-y) 0; background: var(--gpis-papel); }
.gpis-news__list { list-style: none; margin: 0; padding: 0; }
.gpis-news__list > li { padding: 1.75rem 0; }
.gpis-news__list > li:first-child { padding-top: 0; }
.gpis-news__list > li + li { border-top: 1px solid var(--border-subtle); }
.gpis-news__date { display: block; margin-bottom: 0.6rem; font-size: 0.9375rem; font-weight: 700; color: var(--gpis-terracota-escuro); }
.gpis-news__t { margin: 0 0 0.6rem; font-family: var(--font-display); font-weight: 600; font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.375rem); line-height: 1.1; letter-spacing: -0.03em; color: var(--gpis-azul-noite); max-width: 28ch; text-wrap: balance; }
.gpis-news__d { margin: 0; color: var(--gpis-grafite); font-size: 1.125rem; line-height: 1.6; max-width: 60ch; }
.gpis-news .gpis-split__head .gpis-textlink { margin-top: 1.5rem; }
.gpis-news__t a { color: inherit; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1.5px no-repeat; transition: background-size var(--dur-2, 250ms) ease, color var(--dur-1); }
.gpis-news__t a:is(:hover, :focus-visible) { color: var(--gpis-azul-ciencia); background-size: 100% 1.5px; }

/* Página Novidades: cada notícia em duas colunas (data fixa à esquerda, texto à direita). */
.gpis-newsitem + .gpis-newsitem { margin-top: var(--section-y); padding-top: var(--section-y); border-top: 1px solid var(--border-subtle); }
.gpis-newsitem { scroll-margin-top: calc(var(--header-h, 72px) + 1.5rem); }
.gpis-newsitem__date { display: block; font-family: var(--font-display); font-weight: 600; font-size: clamp(1.5rem, 1.1rem + 1.2vw, 2.25rem); line-height: 1.1; letter-spacing: -0.02em; color: var(--gpis-azul-noite); }
.gpis-newsitem__date::before { content: ""; display: block; width: 3rem; height: 2px; margin-bottom: 1.25rem; background: var(--gpis-terracota-sul); }
.gpis-newsitem__kind { display: block; margin-top: 0.75rem; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gpis-cinza-meta); }
.gpis-newsitem__t { margin: 0 0 1rem; font-family: var(--font-display); font-weight: 600; font-size: clamp(1.75rem, 1.2rem + 1.8vw, 2.75rem); line-height: 1.1; letter-spacing: -0.03em; color: var(--gpis-azul-noite); max-width: 26ch; text-wrap: balance; }
.gpis-newsitem__lead { margin: 0 0 2rem; font-size: clamp(1.125rem, 1rem + 0.4vw, 1.25rem); line-height: 1.6; color: var(--gpis-grafite); max-width: 62ch; }
.gpis-newsitem__facts { max-width: 62ch; }
/* Foto dentro de uma notícia. */
.gpis-newsitem__photo { margin: 0 0 2.5rem; max-width: 62ch; }
.gpis-newsitem__photo img { display: block; width: 100%; height: auto; }
/* Dado que ainda falta: visível, discreto e fácil de achar no HTML (comentário PENDENTE ao lado). */
.gpis-pendente { color: var(--gpis-cinza-meta); font-style: italic; border-bottom: 1px dashed var(--border-default); }
.gpis-facts--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 991px) { .gpis-facts--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575px) { .gpis-facts--4 { grid-template-columns: minmax(0, 1fr); } }
.gpis-diss__title { margin: 3rem 0 0.5rem; font-family: var(--font-display); font-weight: 600; font-size: clamp(1.375rem, 1.1rem + 0.9vw, 1.875rem); letter-spacing: -0.025em; color: var(--gpis-azul-noite); }
.gpis-diss { list-style: none; margin: 0; padding: 0; }
.gpis-diss > li { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: 1rem; padding: 1.1rem 0; border-top: 1px solid var(--border-subtle); }
.gpis-diss__y { font-family: var(--font-display); font-weight: 600; font-size: 1.25rem; color: var(--gpis-azul-ciencia); font-variant-numeric: tabular-nums; line-height: 1.35; }
.gpis-diss__t { margin: 0 0 0.25rem; color: var(--gpis-grafite); font-size: 1.0625rem; line-height: 1.5; max-width: 70ch; }
.gpis-diss__n { margin: 0; color: var(--gpis-cinza-meta); font-size: 0.9375rem; font-weight: 600; }

/* ============================================================
   RODAPÉ COMPLETO
============================================================ */
.gpis-footer { padding: clamp(3rem, 6vw, 4.5rem) 0 0; }
.gpis-footer__grid { display: grid; grid-template-columns: minmax(0, 5fr) repeat(3, minmax(0, 3fr)); gap: 2.5rem clamp(1.5rem, 3vw, 3rem); }
.gpis-footer__logos { display: flex; align-items: center; gap: 1.5rem; margin-top: 1.5rem; }
.gpis-footer__logos img { height: 64px; width: auto; display: block; }
.gpis-footer__logos .gpis-footer__logo--small { height: 40px; }
.gpis-footer__logos a { opacity: 0.9; transition: opacity var(--dur-2) var(--ease-out); }
.gpis-footer__logos a:is(:hover, :focus-visible) { opacity: 1; }
.gpis-footer__h { margin: 0 0 0.9rem; font-size: 0.875rem; font-weight: 700; color: #9DBDD9; }
.gpis-footer__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.55rem; }
.gpis-footer__col a { color: var(--on-dark-soft); text-decoration: none; font-size: 0.9375rem; overflow-wrap: anywhere; }
.gpis-footer__col a:is(:hover, :focus-visible) { color: #fff; text-decoration: underline; text-underline-offset: 0.2em; }
.gpis-footer__bottom { margin-top: clamp(2.5rem, 5vw, 3.5rem); padding-block: 1.25rem; border-top: 1px solid var(--on-dark-line); }
.gpis-footer__bottom .gpis-footer__copy { margin: 0; }
@media (max-width: 991px) { .gpis-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .gpis-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 575px) { .gpis-footer__grid { grid-template-columns: minmax(0, 1fr); } }
/* Contraste AA sobre o azul mais claro da Infância (branco pleno = 4.65:1). */
.gpis-lifeband__desc, .gpis-lifeband__leader { color: #fff; }

/* ============================================================
   SELETOR DE IDIOMA (PT / EN)
============================================================ */
.gpis-lang { display: flex; align-items: center; gap: 0.35rem; margin-left: 0.75rem; padding-left: 0.75rem; border-left: 1px solid var(--border-subtle); font-size: 0.875rem; font-weight: 700; }
.gpis-lang span { color: var(--gpis-cinza-100); }
.gpis-lang__a { color: var(--gpis-cinza-meta); text-decoration: none; padding: 0.35rem 0.2rem; letter-spacing: 0.04em; }
.gpis-lang__a:is(:hover, :focus-visible) { color: var(--gpis-azul-ciencia); }
.gpis-lang__a[aria-current="true"] { color: var(--gpis-azul-noite); text-decoration: underline; text-decoration-color: var(--gpis-terracota-sul); text-decoration-thickness: 2px; text-underline-offset: 0.35em; }
@media (max-width: 991px) { .gpis-lang { margin: 0.5rem 0 0; padding: 0.5rem 0 0; border-left: 0; } }
.gpis-fam__pair { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: clamp(0.75rem, 1.2vw, 1.25rem); align-items: stretch; }
.gpis-fam__pair .gpis-fam__photo--wide { aspect-ratio: auto; height: 100%; }
.gpis-fam__photo--tall { aspect-ratio: 3 / 4; max-width: 100%; }
.gpis-fam__photo--tall img { object-position: 50% 40%; }
@media (max-width: 575px) { .gpis-fam__pair { grid-template-columns: minmax(0, 1fr); } .gpis-fam__pair .gpis-fam__photo--wide { aspect-ratio: 4 / 3; height: auto; } }
/* Os títulos já levam o traço terracota; a barra azul antiga ficaria duplicada. */
:is(.gpis-proj-section__inner, .gpis-proj-pubs__inner, .gpis-proj-collab__inner, .gpis-impact-block__inner, .gpis-contact__inner)::before { content: none; }

/* ============================================================
   FAMÍLIAS DA COORTE — canais e entrada visível
============================================================ */
.nav-link.gpis-nav-fam { color: var(--gpis-azul-ciencia); }
.gpis-ico { width: 1.25em; height: 1.25em; fill: currentColor; flex: none; }
.gpis-part { background: #3679B0; color: #fff; padding: clamp(3.5rem, 7vw, 5.5rem) 0; }
.gpis-part__inner { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 2.5rem clamp(2rem, 5vw, 5rem); align-items: center; }
.gpis-part .gpis-section-title { color: #fff; }
.gpis-part__text { margin: 0 0 1.25rem; color: #fff; font-size: 1.125rem; line-height: 1.6; max-width: 46ch; }
.gpis-part .gpis-textlink { color: #fff; text-decoration-color: rgba(255,255,255,0.5); }
.gpis-part .gpis-textlink > .gpis-arrow { border-color: #fff; }
.gpis-part .gpis-textlink:is(:hover, :focus-visible) > .gpis-arrow { background: #fff; stroke: #3679B0; }
.gpis-channels { list-style: none; margin: 0; padding: 0; }
.gpis-channels > li + li { border-top: 1px solid rgba(255,255,255,0.28); }
.gpis-channels a {
    display: grid; grid-template-columns: 3rem minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 1rem; align-items: center;
    padding: 1.1rem 0; color: #fff; text-decoration: none;
}
.gpis-channels .gpis-ico { grid-row: span 2; padding: 0.6rem; box-sizing: content-box; border: 1.5px solid rgba(255,255,255,0.7); border-radius: 50%; width: 1.25rem; height: 1.25rem; transition: background var(--dur-2) var(--ease-out), color var(--dur-2) var(--ease-out); }
.gpis-channels__t { font-family: var(--font-display); font-weight: 600; font-size: clamp(1.25rem, 1rem + 0.7vw, 1.625rem); letter-spacing: -0.02em; line-height: 1.2; }
.gpis-channels__s { color: #fff; font-size: 1rem; }
.gpis-channels a:is(:hover, :focus-visible) .gpis-ico { background: #fff; color: #3679B0; }
.gpis-channels a:is(:hover, :focus-visible) .gpis-channels__t { text-decoration: underline; text-underline-offset: 0.2em; }
.gpis-part :focus-visible, .gpis-channels--dark :focus-visible { outline-color: #fff; }
@media (max-width: 991px) { .gpis-part__inner { grid-template-columns: minmax(0, 1fr); } }
/* Na faixa de contato da página das famílias (azul profundo) */
.gpis-fam__contact { min-width: 0; }
.gpis-fam__email { margin: 1.25rem 0 0; color: var(--on-dark-soft); font-size: 1rem; }
.gpis-fam__email a { color: #fff; font-weight: 600; overflow-wrap: anywhere; }
/* Atalho no topo da página das famílias */
.gpis-fam__hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.75rem; margin: 1.75rem 0 0; }
.gpis-fam__wa { display: inline-flex; align-items: center; gap: 0.6rem; padding: 0.8rem 1.25rem; border-radius: var(--radius-sm); background: var(--gpis-azul-profundo); color: #fff; font-weight: 700; text-decoration: none; transition: background var(--dur-2) var(--ease-out); }
.gpis-fam__wa:is(:hover, :focus-visible) { background: var(--gpis-azul-noite); color: #fff; }
/* Redes no rodapé */
.gpis-footer__social { display: flex; gap: 0.9rem; margin-top: 0.35rem; }
.gpis-footer__social a { display: inline-flex; }
.gpis-footer__social .gpis-ico { width: 1.375rem; height: 1.375rem; }
/* Com oito itens no menu, o subtítulo da marca só aparece quando há espaço. */
@media (min-width: 992px) and (max-width: 1279px) { .navbar-brand small { display: none; } }
/* Elementos auxiliares dos gestos do símbolo (fora do grupo de opacidade baixa). */
.gpis-mark__scan { stroke: var(--mark-cool); stroke-width: 2.5; opacity: 0; }
.gpis-mark__view { fill: none; stroke: var(--mark-cool); stroke-width: 3; stroke-linecap: round; opacity: 0; }
.gpis-mark__view path { vector-effect: non-scaling-stroke; }
.gpis-mark__dot { fill: var(--mark-warm); opacity: 0; }
