/* ============================================
   FGS · components.css
   Cards, badges, botóns, citas, táboas, etc.
   ============================================ */

/* ----- BOTÓNS ----- */

.gs-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.875rem 1.75rem;
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-sm);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-decoration: none;
  border-radius: var(--gs-radius);
  border: 1.5px solid transparent;
  transition: all var(--gs-transicion-media);
  cursor: pointer;
  white-space: nowrap;
}

.gs-btn--primario {
  background: var(--gs-verde-nato);
  color: var(--gs-branco);
}

.gs-btn--primario:hover {
  background: var(--gs-negro);
  color: var(--gs-branco);
  text-decoration: none;
}

.gs-btn--secundario {
  background: transparent;
  color: var(--gs-verde-nato);
  border-color: var(--gs-verde-nato);
}

.gs-btn--secundario:hover {
  background: var(--gs-verde-nato);
  color: var(--gs-branco);
  text-decoration: none;
}

.gs-btn--branco {
  background: var(--gs-branco);
  color: var(--gs-verde-nato);
}

.gs-btn--branco:hover {
  background: var(--gs-verde-moi-claro);
  text-decoration: none;
}

.gs-btn--ghost-branco {
  background: transparent;
  color: var(--gs-branco);
  border-color: rgba(255, 255, 255, 0.5);
}

.gs-btn--ghost-branco:hover {
  background: var(--gs-branco);
  color: var(--gs-verde-nato);
  border-color: var(--gs-branco);
  text-decoration: none;
}

.gs-btn__seta {
  width: 16px;
  height: 16px;
  transition: transform var(--gs-transicion-rapida);
}

.gs-btn:hover .gs-btn__seta {
  transform: translateX(3px);
}

/* ----- BADGES / ETIQUETAS ----- */

.gs-badge {
  display: inline-block;
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.3em 0.8em;
  border-radius: var(--gs-radius);
}

.gs-badge--verde   { background: var(--gs-verde-claro);   color: white; }
.gs-badge--terra   { background: var(--gs-terra);          color: white; }
.gs-badge--azul    { background: var(--gs-azul);           color: white; }
.gs-badge--viola   { background: var(--gs-viola);          color: white; }
.gs-badge--oliva   { background: var(--gs-oliva);          color: white; }
.gs-badge--gris    { background: var(--gs-gris-20);        color: var(--gs-gris-80); }
.gs-badge--outline {
  background: transparent;
  border: 1px solid var(--gs-verde-claro);
  color: var(--gs-verde-claro);
}
.gs-badge--branco  { background: rgba(255,255,255,0.15);  color: white; }

/* ----- CARDS ----- */

.gs-card {
  background: var(--gs-branco);
  border-radius: var(--gs-radius-card);
  border: 1px solid var(--gs-gris-20);
  padding: 1.75rem;
  transition: box-shadow var(--gs-transicion-media),
              transform var(--gs-transicion-media);
  height: 100%;
  display: flex;
  flex-direction: column;
}

.gs-card:hover {
  box-shadow: var(--gs-sombra-md);
  transform: translateY(-2px);
}

.gs-card__titulo {
  font-family: var(--gs-font-titulos);
  font-size: var(--gs-texto-xl);
  font-weight: var(--gs-peso-bold);
  color: var(--gs-verde-nato);
  margin: 0.5rem 0 0.75rem;
}

.gs-card__texto {
  font-size: var(--gs-texto-base);
  line-height: 1.65;
  color: var(--gs-gris-80);
  flex: 1;
}

.gs-card__pe {
  margin-top: var(--gs-gap-md);
  padding-top: var(--gs-gap-md);
  border-top: 1px solid var(--gs-gris-20);
  font-size: var(--gs-texto-sm);
  color: var(--gs-gris-50);
}

/* ----- CARD EDITORIAL (con imaxe a sangue) ----- */

.gs-card-editorial {
  display: block;
  text-decoration: none;
  background: var(--gs-branco);
  border-radius: var(--gs-radius-card);
  overflow: hidden;
  transition: transform var(--gs-transicion-media),
              box-shadow var(--gs-transicion-media);
  color: inherit;
  height: 100%;
}

.gs-card-editorial:hover {
  transform: translateY(-3px);
  box-shadow: var(--gs-sombra-lg);
  text-decoration: none;
}

.gs-card-editorial__media {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--gs-gris-20);
}

.gs-card-editorial__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--gs-transicion-lenta);
}

.gs-card-editorial:hover .gs-card-editorial__media img {
  transform: scale(1.05);
}

.gs-card-editorial__corpo {
  padding: 1.5rem 1.75rem 2rem;
}

.gs-card-editorial__categoria {
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--gs-verde-claro);
  margin-bottom: 0.5rem;
  display: block;
}

.gs-card-editorial__titulo {
  font-family: var(--gs-font-display);
  font-size: var(--gs-texto-xl);
  font-weight: var(--gs-peso-medium);
  line-height: 1.25;
  color: var(--gs-negro);
  margin-bottom: 0.75rem;
  font-variation-settings: "SOFT" 30, "opsz" 60;
}

.gs-card-editorial__resumo {
  font-size: var(--gs-texto-base);
  line-height: 1.6;
  color: var(--gs-gris-80);
}

/* ----- CITA / BLOCKQUOTE ----- */

.gs-cita {
  border-left: 3px solid var(--gs-verde-claro);
  padding: 1.5rem 0 1.5rem 2rem;
  margin: 2.5rem 0;
  font-family: var(--gs-font-display);
  font-size: var(--gs-texto-2xl);
  font-weight: var(--gs-peso-light);
  font-style: italic;
  line-height: 1.4;
  color: var(--gs-verde-nato);
  font-variation-settings: "SOFT" 50, "WONK" 1, "opsz" 144;
}

.gs-cita__autor {
  display: block;
  margin-top: 1rem;
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-sm);
  font-style: normal;
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gs-gris-50);
}

/* ----- TÁBOA ----- */

.gs-tabla {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--gs-texto-sm);
}

.gs-tabla th {
  background: var(--gs-verde-nato);
  color: white;
  padding: 0.85rem 1rem;
  text-align: left;
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: var(--gs-texto-xs);
}

.gs-tabla td {
  padding: 0.85rem 1rem;
  border-bottom: 1px solid var(--gs-gris-20);
  color: var(--gs-gris-80);
}

.gs-tabla tr:nth-child(even) td {
  background: var(--gs-gris-10);
}

.gs-tabla tr:hover td {
  background: var(--gs-verde-moi-claro);
}

/* ----- GRIDS ----- */

.gs-grid {
  display: grid;
  gap: var(--gs-gap-md);
}

.gs-grid--2 {
  grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr));
}

.gs-grid--3 {
  grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
}

.gs-grid--4 {
  grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
}

.gs-grid--lg {
  gap: var(--gs-gap-lg);
}

/* ----- CIFRA DESTACADA ----- */

.gs-cifra {
  display: block;
  font-family: var(--gs-font-display);
  font-size: clamp(2.5rem, 5vw, 4rem);
  font-weight: var(--gs-peso-bold);
  line-height: 1;
  color: var(--gs-verde-nato);
  font-variation-settings: "SOFT" 30, "opsz" 144;
}

.gs-cifra__etiqueta {
  display: block;
  margin-top: 0.5rem;
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-sm);
  font-weight: var(--gs-peso-regular);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gs-gris-50);
  line-height: 1.4;
}

.gs-seccion--escuro .gs-cifra {
  color: var(--gs-branco);
}

.gs-seccion--escuro .gs-cifra__etiqueta {
  color: rgba(255, 255, 255, 0.7);
}

/* ----- TARXETAS DE SEDE ----- */

.gs-sede {
  display: flex;
  flex-direction: column;
  padding: var(--gs-gap-md);
  background: var(--gs-branco);
  border: 1px solid var(--gs-gris-20);
  border-radius: var(--gs-radius-card);
  height: 100%;
}

.gs-sede__funcion {
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--gs-verde-claro);
  margin-bottom: var(--gs-gap-sm);
}

.gs-sede__nome {
  font-family: var(--gs-font-display);
  font-size: var(--gs-texto-xl);
  font-weight: var(--gs-peso-medium);
  line-height: 1.2;
  color: var(--gs-negro);
  margin-bottom: 0.5rem;
  font-variation-settings: "SOFT" 30, "opsz" 60;
}

.gs-sede__direccion {
  font-size: var(--gs-texto-sm);
  line-height: 1.6;
  color: var(--gs-gris-80);
  margin-bottom: var(--gs-gap-sm);
}

.gs-sede__descricion {
  font-size: var(--gs-texto-sm);
  line-height: 1.6;
  color: var(--gs-gris-50);
  flex: 1;
}

/* ----- SEDES NO FOOTER (formato compacto) ----- */

.gs-footer-sedes {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--gs-gap-md);
  margin-bottom: var(--gs-gap-md);
}

@media (max-width: 800px) {
  .gs-footer-sedes { grid-template-columns: 1fr; }
}

.gs-footer-sede__funcion {
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gs-verde-claro);
  margin-bottom: 0.25rem;
}

.gs-footer-sede__direccion {
  font-size: var(--gs-texto-sm);
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.65);
}

/* ============================================
   PÁXINA HERO INSTITUCIONAL
   (sen imaxe a sangue, máis sobrio)
   ============================================ */

.gs-pagina-hero {
  background: var(--gs-gris-10);
  padding: var(--gs-gap-2xl) 0 var(--gs-gap-xl);
  border-bottom: 1px solid var(--gs-gris-20);
}

.gs-pagina-hero__titulo {
  font-size: clamp(2.5rem, 6vw, 4rem);
  font-weight: var(--gs-peso-medium);
  line-height: 1.05;
  letter-spacing: -0.015em;
  color: var(--gs-negro);
  max-width: 18ch;
  margin: 0.75rem 0 var(--gs-gap-md);
  font-variation-settings: "SOFT" 30, "opsz" 144;
}

.gs-pagina-hero__lead {
  font-size: var(--gs-texto-lg);
  font-weight: var(--gs-peso-light);
  line-height: 1.55;
  color: var(--gs-gris-80);
  max-width: 56ch;
}

/* ============================================
   TIMELINE EDITORIAL
   ============================================ */

.gs-timeline {
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
  max-width: 820px;
  margin: 0 auto;
}

.gs-timeline::before {
  content: "";
  position: absolute;
  left: 7rem;
  top: 0.6rem;
  bottom: 0.6rem;
  width: 1px;
  background: var(--gs-gris-20);
}

.gs-timeline__item {
  display: grid;
  grid-template-columns: 7rem 1fr;
  gap: var(--gs-gap-md);
  padding: var(--gs-gap-md) 0;
  position: relative;
}

.gs-timeline__item::after {
  content: "";
  position: absolute;
  left: calc(7rem - 5px);
  top: calc(var(--gs-gap-md) + 0.4rem);
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: var(--gs-verde-claro);
  border: 2px solid var(--gs-gris-10);
}

.gs-timeline__ano {
  font-family: var(--gs-font-display);
  font-size: var(--gs-texto-base);
  font-weight: var(--gs-peso-bold);
  letter-spacing: 0.04em;
  color: var(--gs-verde-nato);
  padding-right: 1.5rem;
  text-align: right;
  font-variation-settings: "SOFT" 30, "opsz" 60;
}

.gs-timeline__corpo {
  padding-left: 1.5rem;
}

.gs-timeline__titulo {
  font-family: var(--gs-font-display);
  font-size: var(--gs-texto-xl);
  font-weight: var(--gs-peso-medium);
  line-height: 1.25;
  color: var(--gs-negro);
  margin-bottom: 0.5rem;
  font-variation-settings: "SOFT" 30, "opsz" 60;
}

.gs-timeline__corpo p {
  font-size: var(--gs-texto-base);
  line-height: 1.65;
  color: var(--gs-gris-80);
}

@media (max-width: 640px) {
  .gs-timeline::before { left: 0.5rem; }
  .gs-timeline__item {
    grid-template-columns: 1fr;
    gap: 0.5rem;
    padding-left: 1.5rem;
  }
  .gs-timeline__item::after { left: 0; top: calc(var(--gs-gap-md) + 0.6rem); }
  .gs-timeline__ano { text-align: left; padding-right: 0; }
  .gs-timeline__corpo { padding-left: 0; }
}

/* ============================================
   TARXETA DE SEDE
   ============================================ */

.gs-sede {
  background: var(--gs-branco);
  border: 1px solid var(--gs-gris-20);
  border-radius: var(--gs-radius-card);
  padding: var(--gs-gap-md);
  border-top: 3px solid var(--gs-verde-claro);
  display: flex;
  flex-direction: column;
  height: 100%;
  transition: all var(--gs-transicion-media);
}

.gs-sede:hover {
  border-top-color: var(--gs-verde-nato);
  box-shadow: var(--gs-sombra-md);
  transform: translateY(-2px);
}

.gs-sede__cabeceira {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: var(--gs-gap-sm);
}

.gs-sede__numero {
  font-family: var(--gs-font-display);
  font-size: var(--gs-texto-2xl);
  font-weight: var(--gs-peso-light);
  color: var(--gs-gris-50);
  letter-spacing: 0.02em;
  font-variation-settings: "SOFT" 30, "opsz" 60;
}

.gs-sede__tipo {
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gs-verde-claro);
}

.gs-sede__nome {
  font-family: var(--gs-font-display);
  font-size: var(--gs-texto-xl);
  font-weight: var(--gs-peso-medium);
  line-height: 1.2;
  color: var(--gs-negro);
  margin-bottom: 0.75rem;
  font-variation-settings: "SOFT" 40, "opsz" 60;
}

.gs-sede__funcion {
  font-size: var(--gs-texto-base);
  line-height: 1.6;
  color: var(--gs-gris-80);
  flex: 1;
  margin-bottom: var(--gs-gap-md);
}

.gs-sede__direccion {
  font-style: normal;
  font-size: var(--gs-texto-sm);
  line-height: 1.55;
  color: var(--gs-gris-50);
  border-top: 1px solid var(--gs-gris-20);
  padding-top: var(--gs-gap-sm);
}

/* ============================================
   LISTA DE DATOS INSTITUCIONAIS (DT/DD)
   ============================================ */

.gs-datos {
  display: grid;
  gap: 0;
  background: rgba(255,255,255,0.04);
  border-radius: var(--gs-radius-card);
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.1);
}

.gs-datos__fila {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: var(--gs-gap-md);
  padding: 1rem 1.5rem;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.gs-datos__fila:last-child { border-bottom: none; }

.gs-datos__fila dt {
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gs-verde-moi-claro);
  align-self: center;
}

.gs-datos__fila dd {
  margin: 0;
  font-size: var(--gs-texto-base);
  line-height: 1.55;
  color: rgba(255,255,255,0.92);
}

@media (max-width: 720px) {
  .gs-datos__fila {
    grid-template-columns: 1fr;
    gap: 0.4rem;
    padding: 1rem 1.25rem;
  }
}

/* ============================================
   CTA BLOQUES (final de páxina)
   ============================================ */

.gs-cta-bloque {
  display: flex;
  flex-direction: column;
  padding: var(--gs-gap-md);
  background: var(--gs-verde-moi-claro);
  border-radius: var(--gs-radius-card);
  text-decoration: none;
  color: var(--gs-negro);
  transition: all var(--gs-transicion-media);
  border: 1px solid transparent;
  height: 100%;
}

.gs-cta-bloque:hover {
  background: var(--gs-branco);
  border-color: var(--gs-verde-claro);
  transform: translateY(-3px);
  box-shadow: var(--gs-sombra-md);
  text-decoration: none;
  color: var(--gs-negro);
}

.gs-cta-bloque__eyebrow {
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--gs-verde-claro);
  margin-bottom: 0.5rem;
}

.gs-cta-bloque__titulo {
  font-family: var(--gs-font-display);
  font-size: var(--gs-texto-2xl);
  font-weight: var(--gs-peso-medium);
  line-height: 1.2;
  color: var(--gs-negro);
  margin-bottom: 0.75rem;
  font-variation-settings: "SOFT" 30, "opsz" 96;
}

.gs-cta-bloque__texto {
  font-size: var(--gs-texto-base);
  line-height: 1.6;
  color: var(--gs-gris-80);
  flex: 1;
  margin-bottom: var(--gs-gap-md);
}

.gs-cta-bloque__seta {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gs-verde-nato);
}

.gs-cta-bloque__seta svg {
  width: 14px;
  height: 14px;
  transition: transform var(--gs-transicion-rapida);
}

.gs-cta-bloque:hover .gs-cta-bloque__seta svg {
  transform: translateX(4px);
}

/* ============================================
   MIGAS DE PAN
   ============================================ */

.gs-migas {
  background: var(--gs-gris-05);
  border-bottom: 1px solid var(--gs-gris-20);
  padding: 0.85rem 0;
  font-size: var(--gs-texto-xs);
}

.gs-migas ol {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
}

.gs-migas li {
  display: flex;
  align-items: center;
  color: var(--gs-gris-50);
  font-weight: var(--gs-peso-medium);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.gs-migas li:not(:last-child)::after {
  content: "›";
  margin-left: 0.5rem;
  color: var(--gs-gris-50);
  font-weight: var(--gs-peso-light);
}

.gs-migas a {
  color: var(--gs-gris-50);
  text-decoration: none;
  transition: color var(--gs-transicion-rapida);
}

.gs-migas a:hover {
  color: var(--gs-verde-nato);
}

.gs-migas li[aria-current="page"] {
  color: var(--gs-verde-nato);
}

/* ============================================
   ENSAIO EDITORIAL — APERTURA + CORPO
   ============================================ */

.gs-ensaio-apertura {
  padding: var(--gs-gap-2xl) 0 var(--gs-gap-lg);
  background: var(--gs-branco);
  border-bottom: 1px solid var(--gs-gris-20);
}

.gs-ensaio-apertura__titulo {
  font-family: var(--gs-font-display);
  font-size: clamp(2.5rem, 6.5vw, 4.5rem);
  font-weight: var(--gs-peso-medium);
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--gs-negro);
  margin: 0.75rem 0 var(--gs-gap-md);
  font-variation-settings: "SOFT" 30, "opsz" 144;
}

.gs-ensaio-apertura__lead {
  font-family: var(--gs-font-display);
  font-size: clamp(1.25rem, 2.4vw, 1.625rem);
  font-weight: var(--gs-peso-light);
  font-style: italic;
  line-height: 1.5;
  color: var(--gs-gris-80);
  max-width: 56ch;
  margin-bottom: var(--gs-gap-md);
  font-variation-settings: "SOFT" 60, "WONK" 1, "opsz" 96;
}

.gs-ensaio-apertura__meta {
  display: flex;
  gap: 0.75rem;
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gs-gris-50);
  padding-top: var(--gs-gap-md);
  border-top: 1px solid var(--gs-gris-20);
  width: fit-content;
}

/* Corpo do ensaio */

.gs-ensaio {
  padding: var(--gs-gap-xl) 0;
  background: var(--gs-branco);
}

.gs-ensaio p {
  font-family: var(--gs-font-corpo);
  font-size: 1.0625rem;
  line-height: 1.75;
  color: var(--gs-gris-80);
  margin-bottom: 1.5rem;
}

.gs-ensaio__entrada {
  font-size: 1.25rem !important;
  font-weight: var(--gs-peso-light) !important;
  line-height: 1.6 !important;
  color: var(--gs-negro) !important;
  margin-bottom: 2rem !important;
}

.gs-ensaio__entrada::first-letter {
  font-family: var(--gs-font-display);
  font-size: 4em;
  font-weight: var(--gs-peso-bold);
  float: left;
  line-height: 0.85;
  margin: 0.05em 0.12em 0 0;
  color: var(--gs-verde-nato);
  font-variation-settings: "SOFT" 30, "opsz" 144;
}

.gs-ensaio__h2 {
  font-family: var(--gs-font-display);
  font-size: clamp(1.625rem, 3vw, 2rem);
  font-weight: var(--gs-peso-medium);
  line-height: 1.2;
  color: var(--gs-negro);
  margin: var(--gs-gap-lg) 0 var(--gs-gap-md);
  font-variation-settings: "SOFT" 30, "opsz" 96;
  letter-spacing: -0.01em;
}

.gs-ensaio__h2::before {
  content: "";
  display: block;
  width: 40px;
  height: 2px;
  background: var(--gs-verde-claro);
  margin-bottom: var(--gs-gap-sm);
}

/* Pull quote */

.gs-pull-quote {
  font-family: var(--gs-font-display);
  font-size: clamp(1.5rem, 3.2vw, 2rem);
  font-weight: var(--gs-peso-light);
  font-style: italic;
  line-height: 1.35;
  color: var(--gs-verde-nato);
  text-align: left;
  margin: var(--gs-gap-lg) 0;
  padding: var(--gs-gap-md) 0 var(--gs-gap-md) var(--gs-gap-md);
  border-left: 3px solid var(--gs-verde-claro);
  font-variation-settings: "SOFT" 60, "WONK" 1, "opsz" 144;
}

/* Peche */

.gs-ensaio__peche {
  font-family: var(--gs-font-display) !important;
  font-size: 1.5rem !important;
  font-weight: var(--gs-peso-medium) !important;
  font-style: italic !important;
  line-height: 1.4 !important;
  color: var(--gs-negro) !important;
  text-align: center !important;
  margin: var(--gs-gap-lg) 0 var(--gs-gap-md) !important;
  font-variation-settings: "SOFT" 60, "WONK" 1, "opsz" 96;
}

/* Firma */

.gs-ensaio__firma {
  margin-top: var(--gs-gap-lg);
  padding-top: var(--gs-gap-md);
  border-top: 2px solid var(--gs-verde-claro);
  text-align: center;
}

.gs-ensaio__firma-org {
  font-family: var(--gs-font-titulos) !important;
  font-size: var(--gs-texto-sm) !important;
  font-weight: var(--gs-peso-bold) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  color: var(--gs-verde-nato) !important;
  margin-bottom: 0.4rem !important;
  line-height: 1.3 !important;
}

.gs-ensaio__firma-data {
  font-size: var(--gs-texto-xs) !important;
  color: var(--gs-gris-50) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  font-weight: var(--gs-peso-regular) !important;
}

/* ============================================
   ÍNDICE NAVEGABLE DE CAUSAS
   ============================================ */

.gs-indice-causas {
  background: var(--gs-gris-05);
  border-bottom: 1px solid var(--gs-gris-20);
  padding: var(--gs-gap-md) 0;
}

.gs-indice-causas__lista {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

@media (max-width: 980px) {
  .gs-indice-causas__lista {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 600px) {
  .gs-indice-causas__lista {
    grid-template-columns: repeat(2, 1fr);
  }
}

.gs-indice-causas__lista a {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: 0.85rem 0.75rem;
  text-decoration: none;
  border-radius: var(--gs-radius);
  transition: all var(--gs-transicion-rapida);
  height: 100%;
  border: 1px solid transparent;
}

.gs-indice-causas__lista a:hover {
  background: var(--gs-branco);
  border-color: var(--gs-verde-claro);
  text-decoration: none;
}

.gs-indice-causas__num {
  font-family: var(--gs-font-display);
  font-size: var(--gs-texto-sm);
  font-weight: var(--gs-peso-bold);
  color: var(--gs-verde-claro);
  letter-spacing: 0.04em;
  font-variation-settings: "SOFT" 30, "opsz" 60;
}

.gs-indice-causas__lista a span:last-child {
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-medium);
  color: var(--gs-gris-80);
  line-height: 1.3;
}

/* ============================================
   BLOQUES DE CAUSA (seis seccións nesta páxina)
   ============================================ */

.gs-causa-bloque {
  padding: var(--gs-gap-xl) 0;
  border-bottom: 1px solid var(--gs-gris-20);
  scroll-margin-top: 100px;
}

.gs-causa-bloque--alterna {
  background: var(--gs-gris-05);
}

.gs-causa-bloque__cabeceira {
  max-width: 720px;
  margin: 0 auto var(--gs-gap-lg);
  text-align: center;
}

.gs-causa-bloque__numero {
  display: inline-block;
  font-family: var(--gs-font-display);
  font-size: var(--gs-texto-sm);
  font-weight: var(--gs-peso-bold);
  letter-spacing: 0.06em;
  color: var(--gs-verde-claro);
  margin-bottom: var(--gs-gap-sm);
  font-variation-settings: "SOFT" 30, "opsz" 60;
  padding: 0.3rem 0.85rem;
  background: var(--gs-verde-moi-claro);
  border-radius: var(--gs-radius);
}

.gs-causa-bloque__titulo {
  font-family: var(--gs-font-display);
  font-size: clamp(2rem, 4.5vw, 3rem);
  font-weight: var(--gs-peso-medium);
  line-height: 1.1;
  color: var(--gs-negro);
  margin-bottom: var(--gs-gap-md);
  font-variation-settings: "SOFT" 30, "opsz" 144;
  letter-spacing: -0.015em;
  max-width: 22ch;
  margin-left: auto;
  margin-right: auto;
}

.gs-causa-bloque__descricion {
  font-size: var(--gs-texto-lg);
  line-height: 1.65;
  color: var(--gs-gris-80);
  margin-bottom: var(--gs-gap-md);
}

.gs-causa-bloque__cruce {
  font-size: var(--gs-texto-sm);
  color: var(--gs-gris-50);
  font-style: italic;
  line-height: 1.5;
}

.gs-causa-bloque__cruce a {
  color: var(--gs-verde-nato);
  text-decoration: underline;
  text-underline-offset: 0.2em;
  text-decoration-thickness: 1px;
}

.gs-causa-bloque__cruce a:hover {
  color: var(--gs-verde-claro);
}

.gs-causa-bloque__h3 {
  font-family: var(--gs-font-titulos);
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--gs-gris-50);
  margin-bottom: var(--gs-gap-md);
  text-align: center;
  padding-bottom: var(--gs-gap-sm);
  border-bottom: 1px solid var(--gs-gris-20);
}

/* ============================================
   CARDS DE PROXECTO (sen foto, lectura editorial)
   ============================================ */

.gs-proxecto-card {
  display: flex;
  flex-direction: column;
  padding: var(--gs-gap-md);
  background: var(--gs-branco);
  border: 1px solid var(--gs-gris-20);
  border-radius: var(--gs-radius-card);
  text-decoration: none;
  color: inherit;
  height: 100%;
  transition: all var(--gs-transicion-media);
  position: relative;
}

a.gs-proxecto-card:hover {
  border-color: var(--gs-verde-claro);
  box-shadow: var(--gs-sombra-md);
  transform: translateY(-2px);
  text-decoration: none;
  color: inherit;
}

.gs-proxecto-card__cabeceira {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--gs-gap-md);
  padding-bottom: var(--gs-gap-sm);
  border-bottom: 1px solid var(--gs-gris-20);
  gap: 0.5rem;
}

.gs-proxecto-card__causas {
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  color: var(--gs-verde-claro);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.gs-proxecto-card__estado {
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gs-gris-50);
  padding: 0.2rem 0.55rem;
  background: var(--gs-gris-10);
  border-radius: var(--gs-radius-pill);
}

.gs-proxecto-card__titulo {
  font-family: var(--gs-font-display);
  font-size: var(--gs-texto-xl);
  font-weight: var(--gs-peso-medium);
  line-height: 1.2;
  color: var(--gs-negro);
  margin-bottom: var(--gs-gap-sm);
  font-variation-settings: "SOFT" 30, "opsz" 60;
}

.gs-proxecto-card__resumo {
  font-size: var(--gs-texto-sm);
  line-height: 1.6;
  color: var(--gs-gris-80);
  flex: 1;
  margin-bottom: var(--gs-gap-md);
}

.gs-proxecto-card__pe {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-medium);
  color: var(--gs-gris-50);
  padding-top: var(--gs-gap-sm);
  border-top: 1px solid var(--gs-gris-20);
  letter-spacing: 0.04em;
}

/* Placeholder (slot baleiro) */

.gs-proxecto-card--placeholder {
  background: var(--gs-gris-05);
  border-style: dashed;
  border-color: var(--gs-gris-20);
}

.gs-proxecto-card--placeholder:hover {
  border-color: var(--gs-verde-claro);
}

.gs-proxecto-card--placeholder .gs-proxecto-card__causas {
  color: var(--gs-gris-50);
}

.gs-proxecto-card--placeholder .gs-proxecto-card__estado {
  background: transparent;
  border: 1px dashed var(--gs-gris-50);
  color: var(--gs-gris-50);
}

.gs-proxecto-card--placeholder .gs-proxecto-card__titulo {
  color: var(--gs-gris-50);
  font-style: italic;
}

.gs-proxecto-card--placeholder .gs-proxecto-card__resumo {
  color: var(--gs-gris-50);
}

/* Cards especiais: chamadas á acción que enchen o grid 3x cando o número
   de proxectos reais non é múltiplo de 3. */

.gs-proxecto-card--especial {
  background: var(--gs-verde-moi-claro);
  border-color: var(--gs-verde-claro);
}

.gs-proxecto-card--especial:hover {
  border-color: var(--gs-verde-nato);
  background: var(--gs-branco);
}

.gs-proxecto-card--especial .gs-proxecto-card__causas {
  color: var(--gs-verde-nato);
  font-weight: var(--gs-peso-bold);
}

.gs-proxecto-card--especial .gs-proxecto-card__estado {
  background: var(--gs-verde-nato);
  color: var(--gs-branco);
}

.gs-proxecto-card--especial .gs-proxecto-card__titulo {
  color: var(--gs-verde-nato);
}

/* Variante --info: card non clickable de información (ex: arquivo histórico) */

.gs-proxecto-card--info {
  background: var(--gs-gris-05);
  border-style: dashed;
  border-color: var(--gs-gris-20);
  cursor: default;
}

.gs-proxecto-card--info:hover {
  background: var(--gs-gris-05);
  border-color: var(--gs-gris-20);
  transform: none;
  box-shadow: none;
}

.gs-proxecto-card--info .gs-proxecto-card__causas {
  color: var(--gs-gris-50);
  font-weight: var(--gs-peso-bold);
}

.gs-proxecto-card--info .gs-proxecto-card__estado {
  background: transparent;
  border: 1px dashed var(--gs-gris-50);
  color: var(--gs-gris-50);
}

.gs-proxecto-card--info .gs-proxecto-card__titulo {
  color: var(--gs-gris-80);
}

.gs-proxecto-card--info .gs-proxecto-card__resumo {
  color: var(--gs-gris-50);
}

/* ============================================
   BLOQUE DE EQUIPO (Padroado, Consellos, Colaboradores)
   ============================================ */

.gs-equipo-bloque {
  padding: var(--gs-gap-xl) 0;
  border-bottom: 1px solid var(--gs-gris-20);
  scroll-margin-top: 100px;
}

.gs-equipo-bloque--alterna {
  background: var(--gs-gris-05);
}

.gs-equipo-bloque__cabeceira {
  max-width: 720px;
  margin: 0 auto var(--gs-gap-lg);
  text-align: center;
}

.gs-equipo-bloque__numero {
  display: inline-block;
  font-family: var(--gs-font-display);
  font-size: var(--gs-texto-sm);
  font-weight: var(--gs-peso-bold);
  letter-spacing: 0.06em;
  color: var(--gs-verde-claro);
  margin-bottom: var(--gs-gap-sm);
  font-variation-settings: "SOFT" 30, "opsz" 60;
  padding: 0.3rem 0.85rem;
  background: var(--gs-verde-moi-claro);
  border-radius: var(--gs-radius);
}

.gs-equipo-bloque__titulo {
  font-family: var(--gs-font-display);
  font-size: clamp(2rem, 4.5vw, 3rem);
  font-weight: var(--gs-peso-medium);
  line-height: 1.1;
  color: var(--gs-negro);
  margin-bottom: var(--gs-gap-md);
  font-variation-settings: "SOFT" 30, "opsz" 144;
  letter-spacing: -0.015em;
}

.gs-equipo-bloque__descricion {
  font-size: var(--gs-texto-lg);
  line-height: 1.65;
  color: var(--gs-gris-80);
}

/* Subseccións dentro de Colaboradores */

.gs-equipo-bloque__subseccion {
  margin-top: var(--gs-gap-xl);
  padding-top: var(--gs-gap-lg);
  border-top: 1px solid var(--gs-gris-20);
}

.gs-equipo-bloque__subseccion:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}

.gs-equipo-bloque__subseccion-titulo {
  font-family: var(--gs-font-display);
  font-size: clamp(1.5rem, 2.8vw, 1.875rem);
  font-weight: var(--gs-peso-medium);
  line-height: 1.2;
  color: var(--gs-negro);
  margin-bottom: 0.5rem;
  font-variation-settings: "SOFT" 30, "opsz" 96;
  text-align: center;
}

.gs-equipo-bloque__subseccion-intro {
  font-size: var(--gs-texto-base);
  line-height: 1.65;
  color: var(--gs-gris-80);
  text-align: center;
  max-width: 56ch;
  margin: 0 auto var(--gs-gap-lg);
}

/* ============================================
   TARXETA DE PERSOA
   ============================================ */

.gs-persoa {
  display: flex;
  flex-direction: column;
  background: var(--gs-branco);
  border: 1px solid var(--gs-gris-20);
  border-radius: var(--gs-radius-card);
  overflow: hidden;
  height: 100%;
  transition: all var(--gs-transicion-media);
}

.gs-persoa:hover {
  border-color: var(--gs-verde-claro);
  box-shadow: var(--gs-sombra-md);
  transform: translateY(-2px);
}

/* Retrato cuadrado */

.gs-persoa__retrato {
  aspect-ratio: 1 / 1;
  width: 100%;
  background: var(--gs-gris-10);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  position: relative;
}

.gs-persoa__retrato img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gs-persoa__retrato--placeholder {
  background: linear-gradient(135deg, var(--gs-verde-moi-claro) 0%, var(--gs-gris-10) 100%);
}

.gs-persoa__retrato--placeholder span {
  font-family: var(--gs-font-display);
  font-size: 5rem;
  font-weight: var(--gs-peso-light);
  color: var(--gs-verde-claro);
  opacity: 0.4;
  font-variation-settings: "SOFT" 30, "opsz" 144;
  line-height: 1;
}

.gs-persoa__corpo {
  padding: var(--gs-gap-md);
  display: flex;
  flex-direction: column;
  flex: 1;
}

.gs-persoa__cargo {
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gs-verde-claro);
  margin-bottom: 0.4rem;
}

.gs-persoa__nome {
  font-family: var(--gs-font-display);
  font-size: var(--gs-texto-xl);
  font-weight: var(--gs-peso-medium);
  line-height: 1.2;
  color: var(--gs-negro);
  margin-bottom: var(--gs-gap-sm);
  font-variation-settings: "SOFT" 30, "opsz" 60;
}

.gs-persoa__bio {
  font-size: var(--gs-texto-sm);
  line-height: 1.6;
  color: var(--gs-gris-80);
  flex: 1;
}

/* ============================================
   LISTA DE COLABORADORES (formato directorio)
   ============================================ */

.gs-colaboradores-lista {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr));
  gap: 0;
  border-top: 1px solid var(--gs-gris-20);
  border-left: 1px solid var(--gs-gris-20);
  background: var(--gs-branco);
  border-radius: var(--gs-radius-card);
  overflow: hidden;
}

.gs-colaborador-item {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  padding: 1.1rem 1.25rem;
  border-bottom: 1px solid var(--gs-gris-20);
  border-right: 1px solid var(--gs-gris-20);
  transition: background var(--gs-transicion-rapida);
}

.gs-colaborador-item:hover {
  background: var(--gs-verde-moi-claro);
}

.gs-colaborador-item__nome {
  font-family: var(--gs-font-titulos);
  font-size: var(--gs-texto-base);
  font-weight: var(--gs-peso-bold);
  color: var(--gs-negro);
  line-height: 1.3;
}

.gs-colaborador-item__rol {
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-medium);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gs-gris-50);
}

/* ============================================
   FILTROS DE PROXECTOS
   ============================================ */

.gs-filtros {
  background: var(--gs-gris-05);
  border-bottom: 1px solid var(--gs-gris-20);
  padding: var(--gs-gap-lg) 0;
  position: sticky;
  top: 64px;
  z-index: 50;
  backdrop-filter: blur(8px);
  background: rgba(248, 247, 244, 0.95);
}

.gs-filtros__grupos {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: var(--gs-gap-lg);
  align-items: start;
  margin-bottom: var(--gs-gap-md);
}

@media (max-width: 760px) {
  .gs-filtros__grupos {
    grid-template-columns: 1fr;
    gap: var(--gs-gap-md);
  }
}

.gs-filtros__grupo {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.gs-filtros__titulo {
  font-family: var(--gs-font-titulos);
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--gs-gris-50);
  margin: 0;
}

.gs-filtros__opcions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.gs-filtro {
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-medium);
  padding: 0.45rem 0.85rem;
  background: var(--gs-branco);
  color: var(--gs-gris-80);
  border: 1px solid var(--gs-gris-20);
  border-radius: var(--gs-radius-pill);
  cursor: pointer;
  transition: all var(--gs-transicion-rapida);
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.gs-filtro:hover {
  border-color: var(--gs-verde-claro);
  color: var(--gs-verde-nato);
}

.gs-filtro--activo {
  background: var(--gs-verde-nato);
  color: var(--gs-branco);
  border-color: var(--gs-verde-nato);
}

.gs-filtro--activo:hover {
  background: var(--gs-verde-claro);
  border-color: var(--gs-verde-claro);
  color: var(--gs-branco);
}

.gs-filtros__resultado {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  font-size: var(--gs-texto-sm);
  color: var(--gs-gris-50);
  font-weight: var(--gs-peso-medium);
  border-top: 1px solid var(--gs-gris-20);
  padding-top: var(--gs-gap-sm);
}

.gs-filtros__limpar {
  background: none;
  border: none;
  color: var(--gs-verde-nato);
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 0.25em;
  text-decoration-thickness: 1px;
  padding: 0.2rem 0;
  transition: color var(--gs-transicion-rapida);
}

.gs-filtros__limpar:hover {
  color: var(--gs-verde-claro);
}

/* Mensaxe sen resultados */

.gs-filtros__sen-resultados {
  text-align: center;
  padding: var(--gs-gap-xl) var(--gs-gap-md);
  background: var(--gs-gris-05);
  border: 1px dashed var(--gs-gris-20);
  border-radius: var(--gs-radius-card);
  margin-top: var(--gs-gap-md);
}

.gs-filtros__sen-resultados p {
  font-size: var(--gs-texto-base);
  color: var(--gs-gris-50);
  margin-bottom: var(--gs-gap-md);
}

/* ============================================
   FICHA INDIVIDUAL DE PROXECTO
   ============================================ */

/* === Container específico para o corpo do proxecto === */

.gs-container--proxecto {
  max-width: 920px;
  margin: 0 auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

/* === Hero a sangue === */

.gs-proxecto-hero {
  position: relative;
  min-height: 65vh;
  max-height: 720px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--gs-negro);
}

.gs-proxecto-hero__imaxe {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.gs-proxecto-hero__imaxe > div {
  width: 100%;
  height: 100%;
}

.gs-proxecto-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(0,0,0,0.2) 0%,
    rgba(0,0,0,0.5) 60%,
    rgba(0,0,0,0.85) 100%
  );
  z-index: 2;
}

.gs-proxecto-hero__contido {
  position: relative;
  z-index: 3;
  padding-top: var(--gs-gap-xl);
  padding-bottom: var(--gs-gap-xl);
  color: var(--gs-branco);
}

.gs-proxecto-hero__eyebrow {
  display: inline-block;
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--gs-branco);
  margin-bottom: var(--gs-gap-md);
  padding: 0.4rem 0.85rem;
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.25);
  border-radius: var(--gs-radius);
  backdrop-filter: blur(4px);
}

.gs-proxecto-hero__titulo {
  font-family: var(--gs-font-display);
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  font-weight: var(--gs-peso-medium);
  line-height: 1.05;
  color: var(--gs-branco);
  margin: 0 0 var(--gs-gap-md);
  font-variation-settings: "SOFT" 30, "opsz" 144;
  letter-spacing: -0.02em;
  max-width: 18ch;
}

.gs-proxecto-hero__lead {
  font-family: var(--gs-font-display);
  font-size: clamp(1.125rem, 2vw, 1.5rem);
  font-weight: var(--gs-peso-light);
  font-style: italic;
  line-height: 1.5;
  color: rgba(255,255,255,0.92);
  max-width: 56ch;
  margin: 0;
  font-variation-settings: "SOFT" 60, "WONK" 1, "opsz" 96;
}

/* === Barra de metadatos === */

.gs-proxecto-meta {
  background: var(--gs-branco);
  border-bottom: 1px solid var(--gs-gris-20);
  padding: var(--gs-gap-md) 0;
}

.gs-proxecto-meta__lista {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: var(--gs-gap-md);
  margin: 0;
}

.gs-proxecto-meta__item dt {
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--gs-gris-50);
  margin-bottom: 0.3rem;
}

.gs-proxecto-meta__item dd {
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-base);
  font-weight: var(--gs-peso-medium);
  color: var(--gs-negro);
  margin: 0;
  line-height: 1.4;
}

.gs-proxecto-meta__item dd a {
  display: inline-block;
  color: var(--gs-verde-nato);
  font-weight: var(--gs-peso-bold);
  text-decoration: none;
  padding: 0.15rem 0.5rem;
  background: var(--gs-verde-moi-claro);
  border-radius: var(--gs-radius);
  margin-right: 0.25rem;
  transition: all var(--gs-transicion-rapida);
}

.gs-proxecto-meta__item dd a:hover {
  background: var(--gs-verde-claro);
  color: var(--gs-branco);
}

/* === Corpo do proxecto === */

.gs-proxecto-corpo {
  padding: var(--gs-gap-xl) 0;
  background: var(--gs-branco);
}

.gs-proxecto-bloque {
  margin-bottom: var(--gs-gap-xl);
}

.gs-proxecto-bloque:last-child {
  margin-bottom: 0;
}

.gs-proxecto-bloque__h2 {
  font-family: var(--gs-font-display);
  font-size: clamp(1.625rem, 3vw, 2rem);
  font-weight: var(--gs-peso-medium);
  line-height: 1.2;
  color: var(--gs-negro);
  margin-bottom: var(--gs-gap-md);
  font-variation-settings: "SOFT" 30, "opsz" 96;
  letter-spacing: -0.01em;
  position: relative;
  padding-top: var(--gs-gap-sm);
}

.gs-proxecto-bloque__h2::before {
  content: "";
  display: block;
  width: 32px;
  height: 2px;
  background: var(--gs-verde-claro);
  margin-bottom: var(--gs-gap-sm);
}

.gs-proxecto-bloque__corpo p {
  font-family: var(--gs-font-corpo);
  font-size: 1.0625rem;
  line-height: 1.75;
  color: var(--gs-gris-80);
  margin-bottom: 1.25rem;
}

.gs-proxecto-bloque__corpo p:last-child {
  margin-bottom: 0;
}

/* === Listas de puntos (obxectivos) === */

.gs-proxecto-puntos {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--gs-gap-sm);
}

.gs-proxecto-puntos li {
  position: relative;
  padding: 1rem 1.25rem 1rem 3rem;
  background: var(--gs-gris-05);
  border-left: 3px solid var(--gs-verde-claro);
  border-radius: 0 var(--gs-radius) var(--gs-radius) 0;
  font-size: 1.0625rem;
  line-height: 1.65;
  color: var(--gs-gris-80);
  counter-increment: paso;
}

.gs-proxecto-puntos {
  counter-reset: paso;
}

.gs-proxecto-puntos li::before {
  content: counter(paso, decimal-leading-zero);
  position: absolute;
  left: 1rem;
  top: 1rem;
  font-family: var(--gs-font-display);
  font-size: var(--gs-texto-sm);
  font-weight: var(--gs-peso-bold);
  color: var(--gs-verde-claro);
  font-variation-settings: "SOFT" 30, "opsz" 60;
  letter-spacing: 0.04em;
}

.gs-proxecto-puntos strong {
  color: var(--gs-negro);
  font-weight: var(--gs-peso-bold);
}

/* === Resultados (cifras destacadas) === */

.gs-proxecto-resultados {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--gs-gap-md);
}

.gs-proxecto-resultados li {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: var(--gs-gap-md);
  background: var(--gs-verde-moi-claro);
  border-radius: var(--gs-radius-card);
  text-align: center;
}

.gs-proxecto-resultados__cifra {
  font-family: var(--gs-font-display);
  font-size: clamp(2.5rem, 5vw, 3.5rem);
  font-weight: var(--gs-peso-medium);
  line-height: 1;
  color: var(--gs-verde-nato);
  font-variation-settings: "SOFT" 30, "opsz" 144;
  letter-spacing: -0.02em;
}

.gs-proxecto-resultados__texto {
  font-size: var(--gs-texto-sm);
  line-height: 1.5;
  color: var(--gs-gris-80);
}

/* === Cita / Pull quote === */

.gs-proxecto-cita {
  margin: var(--gs-gap-xl) 0;
  padding: var(--gs-gap-md) 0 var(--gs-gap-md) var(--gs-gap-md);
  border-left: 3px solid var(--gs-verde-claro);
}

.gs-proxecto-cita p {
  font-family: var(--gs-font-display);
  font-size: clamp(1.5rem, 3vw, 1.875rem);
  font-weight: var(--gs-peso-light);
  font-style: italic;
  line-height: 1.4;
  color: var(--gs-verde-nato);
  margin: 0 0 var(--gs-gap-sm);
  font-variation-settings: "SOFT" 60, "WONK" 1, "opsz" 144;
}

.gs-proxecto-cita footer cite {
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--gs-gris-50);
  font-style: normal;
}

/* === Equipo do proxecto e aliados (listas estruturadas) === */

.gs-proxecto-equipo-lista,
.gs-proxecto-aliados-lista {
  list-style: none;
  margin: var(--gs-gap-md) 0 0;
  padding: 0;
  border: 1px solid var(--gs-gris-20);
  border-radius: var(--gs-radius-card);
  overflow: hidden;
}

.gs-proxecto-equipo-lista li,
.gs-proxecto-aliados-lista li {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 1rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--gs-gris-20);
  background: var(--gs-branco);
}

.gs-proxecto-equipo-lista li:last-child,
.gs-proxecto-aliados-lista li:last-child {
  border-bottom: none;
}

@media (max-width: 600px) {
  .gs-proxecto-equipo-lista li,
  .gs-proxecto-aliados-lista li {
    grid-template-columns: 1fr;
    gap: 0.3rem;
  }
}

.gs-proxecto-equipo-lista__rol {
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gs-gris-50);
}

.gs-proxecto-equipo-lista__nome {
  font-family: var(--gs-font-display);
  font-size: var(--gs-texto-base);
  font-weight: var(--gs-peso-medium);
  color: var(--gs-negro);
  font-variation-settings: "SOFT" 30, "opsz" 60;
}

.gs-proxecto-aliados-lista strong {
  font-family: var(--gs-font-display);
  font-size: var(--gs-texto-base);
  font-weight: var(--gs-peso-medium);
  color: var(--gs-negro);
  font-variation-settings: "SOFT" 30, "opsz" 60;
}

.gs-proxecto-aliados-lista span {
  font-size: var(--gs-texto-sm);
  color: var(--gs-gris-80);
  line-height: 1.5;
}

/* === Materiais (tarxetas de descarga) === */

.gs-proxecto-materiais {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--gs-gap-sm);
}

.gs-material {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: var(--gs-gap-md);
  background: var(--gs-gris-05);
  border: 1px solid var(--gs-gris-20);
  border-radius: var(--gs-radius-card);
  text-decoration: none;
  color: inherit;
  transition: all var(--gs-transicion-media);
}

.gs-material:hover {
  background: var(--gs-branco);
  border-color: var(--gs-verde-claro);
  transform: translateY(-2px);
  box-shadow: var(--gs-sombra-md);
  text-decoration: none;
}

.gs-material__icona {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--gs-verde-moi-claro);
  border-radius: var(--gs-radius);
  color: var(--gs-verde-nato);
}

.gs-material__icona svg {
  width: 22px;
  height: 22px;
}

.gs-material__corpo {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.gs-material__tipo {
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gs-verde-claro);
}

.gs-material__titulo {
  font-family: var(--gs-font-display);
  font-size: var(--gs-texto-base);
  font-weight: var(--gs-peso-medium);
  color: var(--gs-negro);
  line-height: 1.3;
  margin: 0;
  font-variation-settings: "SOFT" 30, "opsz" 60;
}

.gs-material__detalle {
  font-size: var(--gs-texto-xs);
  color: var(--gs-gris-50);
}

/* ============================================
   PÁXINA CONTACTO
   ============================================ */

/* === Canles directas (3 cards de email) === */

.gs-canle {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  padding: var(--gs-gap-md);
  background: var(--gs-branco);
  border: 1px solid var(--gs-gris-20);
  border-radius: var(--gs-radius-card);
  text-decoration: none;
  color: inherit;
  transition: all var(--gs-transicion-media);
  height: 100%;
}

.gs-canle:hover {
  border-color: var(--gs-verde-claro);
  box-shadow: var(--gs-sombra-md);
  transform: translateY(-2px);
  text-decoration: none;
  color: inherit;
}

.gs-canle__icona {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--gs-verde-moi-claro);
  border-radius: var(--gs-radius);
  color: var(--gs-verde-nato);
  margin-bottom: 0.4rem;
}

.gs-canle__icona svg {
  width: 22px;
  height: 22px;
}

.gs-canle__titulo {
  font-family: var(--gs-font-display);
  font-size: var(--gs-texto-xl);
  font-weight: var(--gs-peso-medium);
  color: var(--gs-negro);
  margin: 0;
  font-variation-settings: "SOFT" 30, "opsz" 60;
}

.gs-canle__detalle {
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-sm);
  color: var(--gs-verde-nato);
  font-weight: var(--gs-peso-bold);
  word-break: break-all;
  margin: 0;
}

.gs-canle__pe {
  font-size: var(--gs-texto-xs);
  color: var(--gs-gris-50);
  margin: 0;
  margin-top: auto;
  padding-top: 0.5rem;
}

.gs-canle__pe a {
  color: var(--gs-verde-claro);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

/* === Formulario de contacto === */

.gs-form {
  background: var(--gs-branco);
  padding: var(--gs-gap-lg);
  border-radius: var(--gs-radius-card);
  border: 1px solid var(--gs-gris-20);
}

.gs-form__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--gs-gap-md);
}

@media (max-width: 600px) {
  .gs-form__grid {
    grid-template-columns: 1fr;
  }
}

.gs-form__campo {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.gs-form__campo--completo {
  grid-column: 1 / -1;
}

.gs-form__campo label {
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gs-gris-80);
}

.gs-form__opcional {
  text-transform: none;
  letter-spacing: normal;
  font-weight: var(--gs-peso-regular);
  color: var(--gs-gris-50);
  font-size: var(--gs-texto-xs);
}

.gs-form__campo input,
.gs-form__campo select,
.gs-form__campo textarea {
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-base);
  color: var(--gs-negro);
  padding: 0.75rem 0.9rem;
  background: var(--gs-branco);
  border: 1px solid var(--gs-gris-20);
  border-radius: var(--gs-radius);
  transition: border-color var(--gs-transicion-rapida), box-shadow var(--gs-transicion-rapida);
  width: 100%;
}

.gs-form__campo input:focus,
.gs-form__campo select:focus,
.gs-form__campo textarea:focus {
  outline: none;
  border-color: var(--gs-verde-claro);
  box-shadow: 0 0 0 3px rgba(74, 88, 70, 0.1);
}

.gs-form__campo textarea {
  font-family: var(--gs-font-corpo);
  resize: vertical;
  min-height: 130px;
}

.gs-form__campo select {
  appearance: none;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%234a5846' stroke-width='2'%3e%3cpath d='M3 4.5L6 7.5L9 4.5'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  padding-right: 2.5rem;
  cursor: pointer;
}

.gs-form__checkbox {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  cursor: pointer;
  font-size: var(--gs-texto-sm);
  font-weight: var(--gs-peso-regular);
  text-transform: none;
  letter-spacing: normal;
  color: var(--gs-gris-80);
  line-height: 1.5;
}

.gs-form__checkbox input[type="checkbox"] {
  width: auto;
  margin-top: 0.15rem;
  flex-shrink: 0;
  accent-color: var(--gs-verde-nato);
}

.gs-form__checkbox a {
  color: var(--gs-verde-nato);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.gs-form__envio {
  margin-top: var(--gs-gap-md);
  padding-top: var(--gs-gap-md);
  border-top: 1px solid var(--gs-gris-20);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.gs-form__nota {
  font-size: var(--gs-texto-xs);
  color: var(--gs-gris-50);
  margin: 0;
}

/* === Sede card (con mapa) === */

.gs-sede-card {
  display: flex;
  flex-direction: column;
  background: var(--gs-branco);
  border: 1px solid var(--gs-gris-20);
  border-radius: var(--gs-radius-card);
  overflow: hidden;
  height: 100%;
}

.gs-sede-card__mapa {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 11;
  background: var(--gs-gris-10);
  overflow: hidden;
}

.gs-sede-card__mapa iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.gs-sede-card__corpo {
  padding: var(--gs-gap-md);
  display: flex;
  flex-direction: column;
  flex: 1;
}

.gs-sede-card__funcion {
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--gs-verde-claro);
  margin-bottom: 0.4rem;
}

.gs-sede-card__titulo {
  font-family: var(--gs-font-display);
  font-size: var(--gs-texto-xl);
  font-weight: var(--gs-peso-medium);
  color: var(--gs-negro);
  margin: 0 0 0.6rem;
  font-variation-settings: "SOFT" 30, "opsz" 60;
}

.gs-sede-card__direccion {
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-sm);
  font-weight: var(--gs-peso-medium);
  color: var(--gs-gris-80);
  line-height: 1.5;
  margin: 0 0 0.75rem;
}

.gs-sede-card__descricion {
  font-size: var(--gs-texto-sm);
  line-height: 1.6;
  color: var(--gs-gris-50);
  flex: 1;
  margin: 0 0 0.75rem;
}

.gs-sede-card__enlace {
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gs-verde-nato);
  text-decoration: none;
  padding-top: 0.5rem;
  border-top: 1px solid var(--gs-gris-20);
  transition: color var(--gs-transicion-rapida);
}

.gs-sede-card__enlace:hover {
  color: var(--gs-verde-claro);
}

/* === Datos institucionais (DL/DT/DD) === */

.gs-datos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 0;
  margin: 0;
  background: var(--gs-branco);
  color: var(--gs-negro);
  border: 1px solid var(--gs-gris-20);
  border-radius: var(--gs-radius-card);
  overflow: hidden;
}

.gs-datos__item {
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--gs-gris-20);
  border-right: 1px solid var(--gs-gris-20);
  background: var(--gs-branco);
}

.gs-datos__item:last-child,
.gs-datos__item:nth-last-child(2) {
  border-bottom: none;
}

.gs-datos__item dt {
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gs-gris-50);
  margin-bottom: 0.3rem;
}

.gs-datos__item dd {
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-base);
  font-weight: var(--gs-peso-medium);
  color: var(--gs-negro);
  margin: 0;
  line-height: 1.4;
}

/* ============================================
   PÁXINA PRENSA
   ============================================ */

.gs-prensa-contacto {
  background: var(--gs-verde-nato);
  color: var(--gs-branco);
  padding: var(--gs-gap-lg);
  border-radius: var(--gs-radius-card);
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: var(--gs-gap-lg);
  align-items: center;
}

@media (max-width: 760px) {
  .gs-prensa-contacto {
    grid-template-columns: 1fr;
    gap: var(--gs-gap-md);
  }
}

/* Forzar cor branca para todos os elementos dentro do bloque verde,
   evitando conflitos con estilos inline ou herdanzas. */
.gs-prensa-contacto h2,
.gs-prensa-contacto p,
.gs-prensa-contacto span {
  color: var(--gs-branco);
}

.gs-prensa-contacto__info .gs-eyebrow {
  color: rgba(255, 255, 255, 0.7);
}

.gs-prensa-contacto__info h2 {
  color: var(--gs-branco);
}

.gs-prensa-contacto__info p {
  color: rgba(255, 255, 255, 0.92);
}

.gs-prensa-contacto__canles {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.gs-prensa-contacto__canle {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: var(--gs-gap-sm) var(--gs-gap-md);
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: var(--gs-radius);
  text-decoration: none;
  color: var(--gs-branco);
  transition: all var(--gs-transicion-rapida);
}

.gs-prensa-contacto__canle:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.35);
  text-decoration: none;
  color: var(--gs-branco);
}

.gs-prensa-contacto__etiqueta {
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.7);
}

.gs-prensa-contacto__valor {
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-base);
  font-weight: var(--gs-peso-medium);
  color: var(--gs-branco);
  word-break: break-all;
}

/* === Cita oficial para citar === */

.gs-prensa-cita {
  background: var(--gs-branco);
  border: 1px solid var(--gs-gris-20);
  border-radius: var(--gs-radius-card);
  padding: var(--gs-gap-lg);
  max-width: 920px;
  margin: 0 auto;
  position: relative;
}

.gs-prensa-cita p {
  font-family: var(--gs-font-display);
  font-size: clamp(1.0625rem, 1.7vw, 1.25rem);
  font-weight: var(--gs-peso-light);
  line-height: 1.65;
  color: var(--gs-gris-80);
  margin: 0 0 var(--gs-gap-md);
  font-variation-settings: "SOFT" 60, "opsz" 96;
}

.gs-prensa-cita strong {
  font-weight: var(--gs-peso-medium);
  color: var(--gs-negro);
}

/* === Datos clave (4 cifras) === */

.gs-prensa-datos {
  list-style: none;
  margin: var(--gs-gap-lg) 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--gs-gap-sm);
}

.gs-prensa-datos li {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: var(--gs-gap-md);
  background: var(--gs-verde-moi-claro);
  border-radius: var(--gs-radius-card);
  text-align: center;
}

.gs-prensa-datos__cifra {
  font-family: var(--gs-font-display);
  font-size: clamp(2.5rem, 5vw, 3.25rem);
  font-weight: var(--gs-peso-medium);
  line-height: 1;
  color: var(--gs-verde-nato);
  font-variation-settings: "SOFT" 30, "opsz" 144;
  letter-spacing: -0.02em;
}

.gs-prensa-datos__texto {
  font-size: var(--gs-texto-sm);
  font-weight: var(--gs-peso-medium);
  line-height: 1.4;
  color: var(--gs-gris-80);
}

/* === Comunicados === */

.gs-prensa-comunicados {
  display: grid;
  gap: var(--gs-gap-md);
}

.gs-prensa-comunicado {
  background: var(--gs-branco);
  padding: var(--gs-gap-md);
  border-radius: var(--gs-radius-card);
  border: 1px solid var(--gs-gris-20);
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.gs-prensa-comunicado__data {
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--gs-gris-50);
  padding: 0.25rem 0.6rem;
  background: var(--gs-gris-10);
  border-radius: var(--gs-radius-pill);
  width: fit-content;
}

.gs-prensa-comunicado__titulo {
  font-family: var(--gs-font-display);
  font-size: var(--gs-texto-xl);
  font-weight: var(--gs-peso-medium);
  line-height: 1.25;
  color: var(--gs-negro);
  margin: 0;
  font-variation-settings: "SOFT" 30, "opsz" 60;
}

.gs-prensa-comunicado__resumo {
  font-size: var(--gs-texto-base);
  line-height: 1.65;
  color: var(--gs-gris-80);
  margin: 0;
}

.gs-prensa-comunicado__enlace {
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gs-verde-nato);
  text-decoration: none;
  margin-top: 0.4rem;
  transition: color var(--gs-transicion-rapida);
}

.gs-prensa-comunicado__enlace:hover {
  color: var(--gs-verde-claro);
}

/* ============================================
   PÁXINA DOAR
   ============================================ */

.gs-doar-hero {
  background: linear-gradient(135deg, var(--gs-verde-nato) 0%, #3a4738 100%);
  padding: clamp(4rem, 9vw, 7rem) 0 clamp(3.5rem, 7vw, 5.5rem);
  color: var(--gs-branco);
  position: relative;
  overflow: hidden;
}

.gs-doar-hero::before {
  content: "";
  position: absolute;
  top: -20%;
  right: -10%;
  width: 60%;
  height: 140%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.05) 0%, transparent 70%);
  pointer-events: none;
}

.gs-doar-hero__titulo {
  font-family: var(--gs-font-display);
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  font-weight: var(--gs-peso-medium);
  line-height: 1.05;
  color: var(--gs-branco);
  margin: var(--gs-gap-md) 0;
  font-variation-settings: "SOFT" 30, "opsz" 144;
  letter-spacing: -0.02em;
  max-width: 22ch;
}

.gs-doar-hero__lead {
  font-family: var(--gs-font-display);
  font-size: clamp(1.125rem, 1.75vw, 1.4rem);
  font-weight: var(--gs-peso-light);
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.92);
  max-width: 56ch;
  margin: 0;
  font-variation-settings: "SOFT" 60, "WONK" 1, "opsz" 96;
  font-style: italic;
}

.gs-nav__doar--activo {
  background: var(--gs-branco) !important;
  color: var(--gs-verde-nato) !important;
  border: 1px solid var(--gs-verde-nato) !important;
}

.gs-modo-doar {
  background: var(--gs-branco);
  border: 1px solid var(--gs-gris-20);
  border-radius: var(--gs-radius-card);
  padding: var(--gs-gap-md);
  display: flex;
  flex-direction: column;
  gap: var(--gs-gap-sm);
  position: relative;
  height: 100%;
  transition: all var(--gs-transicion-media);
}

.gs-modo-doar:hover {
  box-shadow: var(--gs-sombra-md);
  transform: translateY(-2px);
}

.gs-modo-doar--destacado {
  background: var(--gs-verde-moi-claro);
  border-color: var(--gs-verde-claro);
}

.gs-modo-doar__badge {
  position: absolute;
  top: -10px;
  right: var(--gs-gap-md);
  background: var(--gs-verde-nato);
  color: var(--gs-branco);
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 0.3rem 0.7rem;
  border-radius: var(--gs-radius-pill);
}

.gs-modo-doar__cabeceira {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  padding-bottom: var(--gs-gap-sm);
  border-bottom: 1px solid var(--gs-gris-20);
}

.gs-modo-doar--destacado .gs-modo-doar__cabeceira {
  border-bottom-color: rgba(74, 88, 70, 0.2);
}

.gs-modo-doar__numero {
  font-family: var(--gs-font-display);
  font-size: var(--gs-texto-xl);
  font-weight: var(--gs-peso-medium);
  color: var(--gs-verde-claro);
  font-variation-settings: "SOFT" 30, "opsz" 60;
  letter-spacing: 0.02em;
}

.gs-modo-doar__titulo {
  font-family: var(--gs-font-display);
  font-size: clamp(1.5rem, 2.2vw, 1.75rem);
  font-weight: var(--gs-peso-medium);
  line-height: 1.2;
  color: var(--gs-negro);
  margin: 0;
  font-variation-settings: "SOFT" 30, "opsz" 96;
}

.gs-modo-doar__descricion {
  font-size: var(--gs-texto-base);
  line-height: 1.65;
  color: var(--gs-gris-80);
  margin: 0;
  flex: 1;
}

.gs-modo-doar__cta {
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gs-verde-nato);
  text-decoration: none;
  padding-top: 0.5rem;
  border-top: 1px solid var(--gs-gris-20);
  transition: color var(--gs-transicion-rapida);
}

.gs-modo-doar--destacado .gs-modo-doar__cta {
  border-top-color: rgba(74, 88, 70, 0.2);
}

.gs-modo-doar__cta:hover {
  color: var(--gs-verde-claro);
}

/* === Tarxetas de pago === */

.gs-pago-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--gs-gap-md);
}

.gs-pago-card {
  background: var(--gs-branco);
  border: 1px solid var(--gs-gris-20);
  border-radius: var(--gs-radius-card);
  padding: var(--gs-gap-md);
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.gs-pago-card__icona {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--gs-verde-moi-claro);
  border-radius: var(--gs-radius);
  color: var(--gs-verde-nato);
}

.gs-pago-card__icona svg {
  width: 24px;
  height: 24px;
}

.gs-pago-card__titulo {
  font-family: var(--gs-font-display);
  font-size: var(--gs-texto-xl);
  font-weight: var(--gs-peso-medium);
  color: var(--gs-negro);
  margin: 0;
  font-variation-settings: "SOFT" 30, "opsz" 60;
}

.gs-pago-card__detalle {
  font-size: var(--gs-texto-sm);
  line-height: 1.6;
  color: var(--gs-gris-80);
  margin: 0;
}

.gs-pago-card__cta {
  margin-top: 0.5rem;
  width: fit-content;
}

.gs-pago-card__nota {
  font-size: var(--gs-texto-xs);
  color: var(--gs-gris-50);
  line-height: 1.55;
  margin: 0;
  margin-top: auto;
}

.gs-pago-card__nota strong {
  color: var(--gs-negro);
  font-weight: var(--gs-peso-medium);
}

.gs-pago-card__iban {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  padding: 0.85rem;
  background: var(--gs-gris-05);
  border-radius: var(--gs-radius);
  border: 1px dashed var(--gs-gris-20);
}

.gs-pago-card__iban-etiqueta {
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gs-gris-50);
}

.gs-pago-card__iban-numero {
  font-family: 'SFMono-Regular', 'Consolas', 'Menlo', monospace;
  font-size: var(--gs-texto-base);
  font-weight: var(--gs-peso-bold);
  color: var(--gs-verde-nato);
  letter-spacing: 0.05em;
  word-break: break-all;
}

.gs-pago-card__iban-banco {
  font-size: var(--gs-texto-xs);
  color: var(--gs-gris-50);
  font-style: italic;
}

.gs-pago-axuda {
  margin-top: var(--gs-gap-md);
  padding: var(--gs-gap-md);
  background: var(--gs-verde-moi-claro);
  border-radius: var(--gs-radius-card);
  border-left: 4px solid var(--gs-verde-claro);
}

.gs-pago-axuda p {
  font-size: var(--gs-texto-sm);
  line-height: 1.65;
  color: var(--gs-gris-80);
  margin: 0;
}

.gs-pago-axuda strong {
  color: var(--gs-verde-nato);
  font-weight: var(--gs-peso-bold);
}

.gs-pago-axuda a {
  color: var(--gs-verde-nato);
  text-decoration: underline;
  text-underline-offset: 0.2em;
  font-weight: var(--gs-peso-medium);
}

/* === Dedución fiscal === */

.gs-deducao-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: var(--gs-gap-md);
}

.gs-deducao-card {
  background: var(--gs-branco);
  border: 1px solid var(--gs-gris-20);
  border-radius: var(--gs-radius-card);
  padding: var(--gs-gap-md);
  display: flex;
  flex-direction: column;
  gap: var(--gs-gap-sm);
}

.gs-deducao-card__etiqueta {
  font-family: var(--gs-font-corpo);
  font-size: var(--gs-texto-xs);
  font-weight: var(--gs-peso-bold);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--gs-verde-nato);
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--gs-verde-claro);
  width: fit-content;
}

.gs-deducao-card__tramos {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.gs-deducao-card__tramos li {
  display: flex;
  align-items: baseline;
  gap: 0.85rem;
  padding: 0.6rem 0;
  border-bottom: 1px solid var(--gs-gris-20);
}

.gs-deducao-card__tramos li:last-child {
  border-bottom: none;
}

.gs-deducao-card__bonus {
  background: var(--gs-verde-moi-claro);
  border-radius: var(--gs-radius);
  padding: 0.6rem 0.75rem !important;
  border-bottom: none !important;
  margin-top: 0.4rem;
}

.gs-deducao-card__porcentaxe {
  font-family: var(--gs-font-display);
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  font-weight: var(--gs-peso-medium);
  line-height: 1;
  color: var(--gs-verde-nato);
  font-variation-settings: "SOFT" 30, "opsz" 144;
  letter-spacing: -0.02em;
  flex-shrink: 0;
  min-width: 4ch;
}

.gs-deducao-card__bonus .gs-deducao-card__porcentaxe {
  color: var(--gs-verde-claro);
}

.gs-deducao-card__texto {
  font-size: var(--gs-texto-sm);
  line-height: 1.55;
  color: var(--gs-gris-80);
}

.gs-deducao-card__texto strong {
  color: var(--gs-negro);
  font-weight: var(--gs-peso-bold);
}

/* === Destino dos fondos === */

.gs-destino-fondos {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--gs-gap-md);
}

.gs-destino-fondos li {
  display: flex;
  gap: var(--gs-gap-sm);
  padding: var(--gs-gap-md);
  background: var(--gs-branco);
  border-radius: var(--gs-radius-card);
  border: 1px solid var(--gs-gris-20);
}

.gs-destino-fondos__numero {
  font-family: var(--gs-font-display);
  font-size: clamp(2rem, 3.5vw, 2.75rem);
  font-weight: var(--gs-peso-medium);
  line-height: 0.9;
  color: var(--gs-verde-claro);
  font-variation-settings: "SOFT" 30, "opsz" 144;
  letter-spacing: -0.02em;
  flex-shrink: 0;
}

.gs-destino-fondos__corpo h3 {
  font-family: var(--gs-font-display);
  font-size: var(--gs-texto-xl);
  font-weight: var(--gs-peso-medium);
  line-height: 1.25;
  color: var(--gs-negro);
  margin: 0 0 0.5rem;
  font-variation-settings: "SOFT" 30, "opsz" 60;
}

.gs-destino-fondos__corpo p {
  font-size: var(--gs-texto-sm);
  line-height: 1.6;
  color: var(--gs-gris-80);
  margin: 0;
}

/* ============================================
   PÁXINAS LEGAIS (aviso, privacidade, cookies)
   ============================================ */

.gs-legal {
  padding: var(--gs-gap-xl) 0;
  background: var(--gs-branco);
}

.gs-legal__bloque {
  margin-bottom: var(--gs-gap-lg);
}

.gs-legal__bloque h2 {
  font-family: var(--gs-font-display);
  font-size: clamp(1.375rem, 2.5vw, 1.75rem);
  font-weight: var(--gs-peso-medium);
  line-height: 1.2;
  color: var(--gs-negro);
  margin: 0 0 var(--gs-gap-sm);
  font-variation-settings: "SOFT" 30, "opsz" 96;
  letter-spacing: -0.01em;
  position: relative;
  padding-top: var(--gs-gap-sm);
  border-top: 2px solid var(--gs-verde-claro);
  display: inline-block;
}

.gs-legal__bloque h3 {
  font-family: var(--gs-font-display);
  font-size: var(--gs-texto-xl);
  font-weight: var(--gs-peso-medium);
  line-height: 1.3;
  color: var(--gs-negro);
  margin: var(--gs-gap-md) 0 0.5rem;
  font-variation-settings: "SOFT" 30, "opsz" 60;
}

.gs-legal__bloque p {
  font-family: var(--gs-font-corpo);
  font-size: 1rem;
  line-height: 1.7;
  color: var(--gs-gris-80);
  margin: 0 0 1rem;
}

.gs-legal__bloque ul {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
}

.gs-legal__bloque ul li {
  position: relative;
  padding: 0.4rem 0 0.4rem 1.5rem;
  font-size: 1rem;
  line-height: 1.65;
  color: var(--gs-gris-80);
}

.gs-legal__bloque ul li::before {
  content: "—";
  position: absolute;
  left: 0;
  top: 0.4rem;
  color: var(--gs-verde-claro);
  font-weight: var(--gs-peso-bold);
}

.gs-legal__bloque a {
  color: var(--gs-verde-nato);
  text-decoration: underline;
  text-underline-offset: 0.2em;
  font-weight: var(--gs-peso-medium);
}

.gs-legal__bloque a:hover {
  color: var(--gs-verde-claro);
}

.gs-legal__bloque strong {
  color: var(--gs-negro);
  font-weight: var(--gs-peso-bold);
}

.gs-legal__data {
  margin-top: var(--gs-gap-lg);
  padding-top: var(--gs-gap-md);
  border-top: 1px solid var(--gs-gris-20);
  font-size: var(--gs-texto-sm);
  color: var(--gs-gris-50);
  font-style: italic;
}
