/* ================================
   RESET GENERAL
================================= */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: 'Fredoka', sans-serif;
  line-height: 1.6;
  background-color: #fcf9f0;
  color: #1d1d1b;
}

/* ================================
   HEADER Y NAVBAR
================================= */
header {
  background-color: #2f541b;
  color: #fff;
  padding: 10px 20px;
}

.navbar {
  background-color: #234917;
  color: white;
  padding: 0.5rem 1rem;
  position: fixed;
  width: 100%;
  top: 0;
  z-index: 999;
}

.navbar-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.logo {
  font-weight: bold;
  font-size: 1.3rem;
  color: white;
}

.main-nav ul {
  list-style: none;
  display: flex;
  gap: 1.5rem;
}

.main-nav a {
  color: white;
  text-decoration: none;
  transition: 0.3s;
}

.main-nav a:hover {
  text-decoration: underline;
}

.hamburger {
  background-color: #518415;
  color: white;
  font-size: 1.4rem;
  border: none;
  padding: 4px 12px;
  border-radius: 8px;
  cursor: pointer;
}

.dropdown-menu {
  display: none;
  position: absolute;
  top: 100%;
  right: 0;
  background-color: #234917;
  color: white;
  width: 260px;
  padding: 1rem;
  z-index: 998;
}

.dropdown-menu.open {
  display: block;
}

.dropdown-menu ul {
  list-style: none;
}

.dropdown-menu li {
  margin-bottom: 0.5rem;
}

.dropdown-menu ul ul {
  padding-left: 1rem;
}

.dropdown-menu a {
  color: white;
  text-decoration: none;
}

.dropdown-menu a:hover {
  text-decoration: underline;
}

/* ================================
   SECCIÓN PRINCIPAL / LAYOUT
================================= */
main {
  padding: 20px;
}

h1 {
  text-align: center;
  margin: 40px 20px 20px;
  font-size: 1.8em;
}

.boton,
.boton-descarga {
  display: inline-block;
  margin-top: 10px;
  background-color: #2f541b;
  color: #fff;
  padding: 8px 14px;
  text-decoration: none;
  border-radius: 5px;
}

/* ================================
   GALERÍA
================================= */
.galeria {
  padding: 2rem;
  text-align: center;
}

.galeria h1 {
  font-size: 2rem;
  margin-bottom: 0.5rem;
}

.galeria p {
  margin-bottom: 2rem;
  font-size: 1rem;
  max-width: 600px;
  margin-inline: auto;
}

.galeria-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem;
}

.galeria-item {
  background-color: #2c4720;
  border-radius: 10px;
  overflow: hidden;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: transform 0.3s ease;
}

.galeria-item img {
  width: 100%;
  height: 200px; /* Tamaño uniforme */
  object-fit: cover;
  border-radius: 8px;
  margin-bottom: 1rem;
}

.descripcion-img {
  font-size: 0.9rem;
  margin-bottom: 1rem;
  color: white;
}

.botones-galeria {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.botones-galeria .boton {
  background-color: var(--blanco);
  color: white ;
  padding: 0.5rem 1rem;
  font-weight: bold;
  text-decoration: none;
  border-radius: 5px;
  transition: background-color 0.3s, color 0.3s;
  border: none;
}

.botones-galeria .boton:hover {
  background-color: green;
  color: var(--blanco);
}

/* ================
RECORRE =========*/
.linea-titulo {
  padding: 4rem 1rem 2rem;
  text-align: center;
}

.linea-tiempo {
  position: relative;
  width: 90%;
  max-width: 1000px;
  margin: 3rem auto;
  padding: 2rem 0;
}

.linea-tiempo::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 4px;
  height: 100%;
  background-color: #000;
  z-index: 0;
}

.momento {
  position: relative;
  width: 48%;
  padding: 1rem 2rem;
  box-sizing: border-box;
  margin-bottom: 3rem;
  background-color: transparent;
  z-index: 1;
}

.momento:nth-child(odd) {
  left: 0;
  text-align: right;
}

.momento:nth-child(even) {
  left: 52%;
  text-align: left;
}

.momento h3 {
  font-size: 1.2rem;
  margin-bottom: 0.5rem;
}

.descripcion {
  background-color: #eee;
  padding: 1rem;
  border-radius: 10px;
  line-height: 1.5;
  font-size: 0.95rem;
  min-height: 140px;
}

.momento:nth-child(even) .descripcion {
  background-color: #1d4c1d;
  color: white;
}

.momento::after {
  content: '';
  position: absolute;
  top: 1.5rem;
  width: 20px;
  height: 20px;
  background-color: #000;
  border-radius: 50%;
  z-index: 2;
}

.momento:nth-child(odd)::after {
  right: -10px;
}

.momento:nth-child(even)::after {
  left: -10px;
}


.mapa {
  margin-top: 4rem;
}

.map-container {
  position: relative;
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
}

.mapa-img {
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid #ccc;
  border-radius: 8px;
}

.map-point {
  position: absolute;
  transform: translate(-50%, -50%);
  background-color: #40916c;
  color: white;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 12px;
  cursor: pointer;
  transition: transform 0.2s ease;
}

.map-point:hover {
  transform: translate(-50%, -50%) scale(1.1);
}

.lineadetiempo {
  padding: 2rem;
  text-align: center;
}

.lineadetiempo h1 {
  font-size: 2rem;
  margin-bottom: 0.5rem;
}

.linea-tiempo p {
  text-align: center;
  max-width: 800px;
  margin: 0 auto 2rem;
  font-size: 1.1rem;
}
 

.mapa p{
  text-align: center;
}
.mapa h2{
  text-align: center;

}

/* ================================
   SECCIÓN COMUNIDADES
================================= */
section.historia {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  padding: 20px;
  border-bottom: 1px solid #ddd;
}

.historia-texto {
  flex: 1;
  padding: 20px;
  min-width: 280px;
}

.historia-imagen {
  flex: 1;
  padding: 20px;
  text-align: center;
}

.historia-imagen img {
  max-width: 100%;
  height: auto;
  max-height: 300px;
  border-radius: 8px;
}


/* ================================ 
    TESTIMONIOS 
================================= */
#relato {
  border-radius: 10px;
  padding: 1.5rem 0;
  margin-block: 5px;
  width: 100%;
  overflow-x: hidden;
  min-height: 100px;
  border-bottom: 3px solid #ddd;
}

.contenido-testimonio {
  background-color: #3d7326;
  color: #ffffff;
  padding: 1.5rem;
  margin-bottom: 1.5rem;
  border-radius: 8px;
  border-right: 4px solid #2c4720;
  border-bottom: 5px solid #ddd;
}

.contenedor-testimonio {
  display: grid;
  grid-template-columns: minmax(125px, 5%) 1fr;
  gap: 0.5rem;
  min-width: auto;
  margin: auto;
  padding: 0 1rem;
  width: 100%;
  align-items: stretch;
}

.contenido-testimonio .responder-btn {
  padding: 8px 8px;
  margin-top: 0.5rem;
  background-color: #2c4720;
  color: #ffffff;
  transition: background-color 0.3s ease;
  border-radius: 50px;
  width: fit-content;
  min-width: auto;
  border: none;
}

.botones-testimonio {
  display: flex;
  justify-content: right;
  flex-wrap: wrap;
  gap: 10px;
  margin: 5px;
  border-top: 1.5px solid #baf5e58f;
}

.contenedor-testimonio p {
  margin: 10px;
  border-top: 1.5px solid #baf5e58f;
}

.responder-btn:hover {
  font-weight: bold;
  font-size: 0.8rem;
  cursor: pointer;
  background-color: green;
}


/* ================================
   LUCHAS HERMANAS
================================= */
#luchas {
  display: grid;
  grid-template-columns: 1fr 1fr; /* Texto | Imagen */
  gap: 2rem;
  align-items: center;
  padding: 2rem 1rem;
  margin: 0 auto;
  border-bottom: 2px solid #ddd;
  max-width: 1200px;
}

section.historia {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  padding: 20px;
  border-bottom: 1px solid #ddd;
}

.historia-texto {
  flex: 1;
  padding: 20px;
  min-width: 280px;
}

.historia-imagen {
  flex: 1;
  padding: 20px;
  text-align: center;
}

.historia-imagen img {
  max-width: 100%;
  height: auto;
  max-height: 300px;
  border-radius: 8px;
}
.contenido-luchas {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  padding: 5px;
  min-width: 150px;
}

.imagen-relato img {
  object-fit: cover;
  width: 100%;
  height: 250px;
  border-radius: 8px;
}

.imagen-relato {
  max-width: 100%;
  max-height: 250px;
  border-radius: 8px;
}

/*BOTON MOSTRAR-OCULTAR*/
.extra {
  display: none;
}

input[type="checkbox"] {
  height: 1em;
  display: block;
  appearance: none;
}

label {
  position: relative;
  padding: 0.5em;
  background-color: #3d7326;
  color: #eee;
  cursor: pointer;
  border-radius: 6%;
  text-align: center;
} 

label::before {
  content: 'Leer más';
}

input[type="checkbox"]:checked ~ label::before {
  content: 'Leer menos';
}

.extra:has(~ input[type="checkbox"]:checked) {
  display: block;
}

/* ================================
   ECO-EDUCA
================================= */
 .educa-archivos {
  padding: 2rem;
  text-align: center;
}

.educa-archivos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem;
}

.archivo {
  background-color: #f6eed3;
}

.archivo img {
  width: 100%;
  height: 200px;
  object-fit: contain;
  background-color: #ffffff; /* o var(--blanco) si estás usando variables */
  border-radius: 8px;
  margin-bottom: 1rem;
}

.educativo p {
  text-align: center;
  max-width: 800px;
  margin: 0 auto 2rem auto; /* centrado horizontal + espacio inferior */
  font-size: 1.1rem; /* opcional: mejora lectura */
  line-height: 1.6;  /* opcional: mejora legibilidad */
}

/* ================================
   FORO
================================= */

.bannercontenedor {
  text-align: center;
}

.bannercontenido > h2 {
  font-size: 2rem;
  text-align: center;
  max-width: 800px;
  margin: 2rem auto;
  padding: 0 1rem;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
}

.bannercontenido > p {
  font-size: 1rem;
  text-align: center;
  max-width: 800px;
  margin: 1rem auto;
  padding: 0 1rem;
}

#foro {
  border: 1px solid #2e4224;
  border-radius: 10px;
  padding: 1.5rem 0;
  margin-block: 5px;
  background-color: #faf8f11c;
  width: 100%;
  overflow-x: hidden;
  min-height: 100px;
}

.contenedor-foro {
  display: grid;
  grid-template-columns: minmax(125px, 5%) 1fr;
  gap: 0.5rem;
  min-width: auto;
  margin: auto;
  padding: 0 1rem;
  width: 100%;
  align-items: stretch;
}

.contenido-foro {
  display: grid;
  grid-template-rows: auto auto 1fr;
  gap: 0.5rem;
  background-color: #e0f0dc;
  padding: 0.5rem;
  align-content: start;
  height: 100%;
}

.contenido-foro .responder-btn {
  padding: 8px 8px;
  margin-top: 0.5rem;
  background-color: #2c4720;
  color: #ffffff;
  transition: background-color 0.3s ease;
  border-radius: 50px;
  width: fit-content;
  min-width: auto;
  border: none;
}

.botones-foro {
  display: flex;
  justify-content: right;
  flex-wrap: wrap;
  gap: 10px;
  border-top: 1px solid #004331;
}

.responder-btn:hover {
  font-weight: bold;
  font-size: 0.8rem;
  cursor: pointer;
  background-color: green;
}

.responder-btn a {
  text-decoration: none;
  color: white;
}

.sumarvoz {
  display: flex;
  justify-content: center;
  font-size: 1.5rem;
  gap: 2rem;
  padding: 20px;
  margin-top: 15px;
}

.form-tuvoz{
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  width: 500px;
}

/* ================================
   SECCIÓN SOBRE NOSOTROS
================================= */
.intro {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
  padding: 20px;
}

.intro,
.conocenos {
  background-color: #faf8f1;
  padding: 2rem;
  width: 100%; /* antes decía 100vw */
}


.intro .text {
  flex: 1 1 300px;
}

.intro .logo-block {
  flex: 1 1 200px;
  text-align: right;
}

.intro .logo-block img {
  max-width: 100%;
  height: auto;
  max-height: 150px;
}

.video-container {
  max-width: 960px;
  margin: 0 auto;
  padding: 1rem;
  text-align: center;
}

.video-container video {
  width: 100%;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* ================================
   SECCIÓN CONTACTO
================================= */
.contacto {
  background-color: #f6eed3;
  width: 100%;
  overflow-x: hidden;
}

.contacto-wrapper {
  display: flex;
  flex-wrap: wrap; /* se adapta en mobile */
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0;
}

.formulario {
  flex: 1 1 50%;
  padding: 3rem 2rem;
  min-width: 300px;
}

.formulario h2 {
  font-size: 2rem;
  margin-bottom: 1rem;
}

.formulario p {
  margin-bottom: 1rem;
  font-size: 1rem;
  line-height: 1.5;
}

.formulario form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.formulario input,
.formulario textarea {
  padding: 0.8rem;
  border: none;
  border-radius: 4px;
  font-size: 1rem;
  width: 100%;
  background-color: white;
}

.formulario textarea {
  height: 150px;
  resize: none;
}

.formulario button {
  background-color: #1d4c1d;
  color: white;
  font-weight: bold;
  padding: 0.6rem 1.5rem;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  width: fit-content;
}

.contacto-imagen {
  flex: 1 1 50%;
  overflow: hidden;
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

.contacto-imagen img {
  width: 100%;
  max-height: 400px;
  object-fit: cover;
  display: block;
}



/* ================================
   FOOTER
================================= */
.footer {
  background-color: #111;
  color: #fff;
  padding: 40px 20px;
  font-family: 'Arial', sans-serif;
}

.footer-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  max-width: 1200px;
  margin: 0 auto;
}

.footer-column {
  flex: 1 1 300px;
  margin: 10px;
}

.footer-column h5 {
  font-size: 16px;
  margin-bottom: 10px;
}

.footer-column ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-column ul li {
  margin-bottom: 1px;
  font-size: 13px;
}

.footer-column ul li a {
  color: #ddd;
  text-decoration: none;
  transition: color 0.3s;
}

.footer-column ul li a:hover {
  color: #3d7326;
}

.logo-footer,
.redes-footer {
  max-width: 150px;
  height: auto;
  display: block;
  margin-bottom: 10px;
}

.newsletter-form {
  display: flex;
  flex-direction: column;
}

.newsletter-form input {
  padding: 8px;
  margin-bottom: 10px;
  border: none;
  border-radius: 4px;
}

.newsletter-form button {
  padding: 8px;
  background-color: #3d7326;
  color: #fff;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}

.newsletter-form button:hover {
  background-color: #3d7326;
}

.copyright {
  font-size: 12px;
  margin-top: 15px;
  color: #888;
}

/* ================================
   RESPONSIVE (MOBILE)
================================= */
@media (max-width: 768px) {
  .navbar {
    flex-direction: column;
    align-items: flex-start;
  }

  .nav-links {
    flex-direction: column;
    gap: 10px;
    width: 100%;
  }

  .main-nav {
    display: none;
  }


  .contacto-wrapper,
  .intro {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .main-nav {
    display: none;
  }

  .galeria-grid,
  .educa-archivos {
    grid-template-columns: 1fr;
  }

  #luchas {
    grid-template-columns: 1fr;
  }

  .contenedor-testimonio,
  .contenedor-foro {
    grid-template-columns: 1fr;
  }

  .formulario,
  .contacto-imagen {
    flex: 1 1 100%;
    padding: 1rem;
  }

  .formulario button {
    margin-inline: auto;
  }

  .mapa-img,
  .video-container video {
    max-width: 100%;
  }

  section.historia {
  flex-direction: column;
  align-items: center;
  text-align: center;
  }

.linea-tiempo::before {
    left: 20px;
  }

  .momento {
    width: 100%;
    left: 0 !important;
    text-align: left !important;
    padding-left: 50px;
  }

  .momento::after {
    left: 20px !important;
    right: auto !important;
  }
}