/* ========================================
   GALERIA - Sección cabecera + listado
   Layout: info a la izquierda, álbumes a la derecha
   ======================================== */
#galeria {
  /*background-color: #f0f0f0;*/
}

.galeria-section {
  max-width: 1440px;
  margin: 0 auto;
}

.galeria-component {
  max-width: 1440px;
  margin: 0 auto;
}

.galeria-inner {
  padding: 3.125rem 4%;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

/* ── Columna izquierda: título, descripción, botón ── */
.galeria-info {
  width: 30%;
  margin-bottom: 1.875rem;
}

.galeria-info-inner {
  position: sticky;
  top: 2rem;
}

.galeria-info-title h2 {
  font-size: 2rem;
  font-weight: 700;
  color: #1a1a2e;
  margin-bottom: 1.5rem;
  line-height: 1.2;
}

.galeria-info-desc {
  font-size: 0.95rem;
  color: #333333;
  line-height: 1.7;
  margin-bottom: 2rem;
}

.galeria-info-desc p {
  margin-bottom: 0.8rem;
}

.btn-galeria-more {
  display: inline-block;
  padding: 0.6rem 2rem;
  border: 2px solid #7a8c3c;
  border-radius: 30px;
  color: #7a8c3c;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s ease;
}

.btn-galeria-more:hover {
  background-color: #7a8c3c;
  color: #fff;
}

/* ── Columna derecha: álbumes ── */
.galeria-items {
  width: 65%;
}

.galeria-listado-columns {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  gap: 1.5rem;
}

.galeria-column {
  width: 48%;
}

.galeria-column:first-child .galeria-article:first-child {
  margin-top: 4rem;
}

/* ── Artículos individuales de galería ── */
.galeria-article {
  margin-bottom: 1.5rem;
}

.galeria-article a {
  text-decoration: none;
  color: inherit;
}

.galeria-image-wrapper {
  overflow: hidden;
  border-radius: 6px;
  margin-bottom: 0.75rem;
}

.galeria-article-img {
  display: block;
  width: 100%;
  height: auto;
  transition: transform 0.4s ease;
}

.galeria-article:hover .galeria-article-img {
  transform: scale(1.05);
}

.galeria-article-text h4 {
  font-size: 0.95rem;
  font-weight: 600;
  color: #333;
  margin: 0;
  line-height: 1.4;
  transition: color 0.3s ease;
}

.galeria-article:hover .galeria-article-text h4 {
  color: #7a8c3c;
}

/* ========================================
   GALERIA ALL - Página completa /galeria
   ======================================== */
.galeria-all-section {
  padding: 3rem 0 4rem;
}

#galeria_all a {
  text-decoration: none;
}

.galeria-all-grid {
  margin-top: 1rem;
}

.galeria-card {
  border: none;
  overflow: hidden;
  border-radius: 10px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  transition: transform 0.4s ease, box-shadow 0.4s ease;
  height: 100%;
  display: flex;
  flex-direction: column;
  background: #fff;
}

.galeria-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
}

.galeria-card-link {
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.galeria-card-link:hover {
  color: inherit;
}

.galeria-card-img-wrapper {
  overflow: hidden;
  height: 220px;
  flex-shrink: 0;
}

.galeria-card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}

.galeria-card:hover .galeria-card-img {
  transform: scale(1.08);
}

.galeria-card-body {
  padding: 1.2rem 1.4rem;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}

.galeria-card-date {
  font-size: 0.8rem;
  color: #0070b4;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 0.5rem;
}

.galeria-card-title {
  font-size: 1.1rem;
  font-weight: 700;
  color: #1a1a2e;
  margin-bottom: 0.5rem;
  transition: color 0.3s ease;
}

.galeria-card:hover .galeria-card-title {
  color: #0070b4;
}

.galeria-card-desc {
  font-size: 0.9rem;
  color: #666;
  line-height: 1.5;
  flex-grow: 1;
}

/* ========================================
   GALERIA NODE - Página individual con lightbox
   ======================================== */
.galeria-node-section {
  padding-bottom: 4rem;
}

.galeria-node-title {
  color: #1a1a2e;
  font-weight: 700;
}

.galeria-node-desc {
  max-width: 720px;
  margin: 0 auto;
  color: #333333;
  font-size: 1.05rem;
  line-height: 1.7;
}

.galeria-node-date {
  display: inline-block;
  font-size: 0.85rem;
  color: #0070b4;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

#nanogallery2 {
  width: 100%;
}

/* ========================================
   RESPONSIVE
   ======================================== */
@media (max-width: 600px) {
  .galeria-inner {
    padding: 2rem 2%;
    flex-direction: column;
  }

  .galeria-info {
    width: 100%;
    margin-bottom: 1rem;
    text-align: center;
  }

  .galeria-items {
    width: 100%;
  }

  .galeria-listado-columns {
    flex-direction: column;
    gap: 0;
  }

  .galeria-column {
    width: 100%;
  }

  .galeria-column:first-child .galeria-article:first-child {
    margin-top: 0;
  }

  .galeria-article-img {
    max-width: 90%;
    margin: 0 auto;
  }

  .galeria-img-card {
    height: auto;
  }

  .image-tile {
    margin-bottom: 15px;
  }

  .galeria-all-section {
    padding: 2rem 0;
  }
}

@media (min-width: 601px) and (max-width: 767px) {
  .galeria-inner {
    padding: 2rem 3%;
    flex-direction: column;
  }

  .galeria-info {
    width: 100%;
    margin-bottom: 1.5rem;
  }

  .galeria-items {
    width: 100%;
  }

  .galeria-column {
    width: 48%;
  }

  .galeria-column:first-child .galeria-article:first-child {
    margin-top: 0;
  }
}

@media (min-width: 768px) {
  .galeria-inner {
    padding: 5rem 4% 4.375rem;
  }

  .galeria-info {
    width: 30%;
  }

  .galeria-items {
    width: 65%;
  }
}

@media (min-width: 1024px) {
  .galeria-inner {
    padding-top: 5.625rem;
    padding-bottom: 5rem;
  }
}

@media (min-width: 1440px) {
  .galeria-inner {
    max-width: 1600px;
    padding: 6rem 5%;
  }
}

@media (min-width: 500px) and (max-width: 767px) {
  #galeria h3 {
    font-size: 20px;
  }

  .galeria-image-wrapper {
    margin-left: 0.9375rem;
    width: 65%;
    float: right;
  }
}

/* ========================================
   GALERIA CAROUSEL - Bootstrap 5.3.8
   Carousel de 4 imágenes por slide
   ======================================== */
.galeria-carousel-section {
  background-color: #fff;
}

.galeria-carousel-title {
  font-size: 1.75rem;
  font-weight: 700;
  color: #1a1a2e;
  letter-spacing: -0.01em;
}

/* Wrapper que da espacio a los controles en los laterales */
.galeria-carousel-wrapper {
  padding-left: 4rem;
  padding-right: 4rem;
}

/* Fila flexbox sin gap: los cols toman exactamente 25% cada uno */
.galeria-carousel-row {
  display: flex;
  height: 435px;
  overflow: hidden;
}

/* Cada col toma el ancho disponible de forma proporcional */
.galeria-carousel-col {
  flex: 1;
  overflow: hidden;
  position: relative;
}

/* Separación visual mínima usando outline (no afecta el ancho) */
.galeria-carousel-col + .galeria-carousel-col {
  border-left: 3px solid #fff;
}

/* Imagen posicionada absolutamente para llenar el col sin importar su tamaño intrínseco */
.galeria-carousel-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.45s ease;
}

.galeria-carousel-link {
  display: block;
  position: absolute;
  inset: 0;
  cursor: pointer;
}

.galeria-carousel-col:hover .galeria-carousel-img {
  transform: scale(1.06);
}

/* Controles: chevrons oscuros simples, en la zona de padding lateral */
.galeria-carousel-prev,
.galeria-carousel-next {
  width: 4.5rem;
  top: 50%;
  bottom: auto;
  transform: translateY(-50%);
  opacity: 0.75;
  background: none;
}

.galeria-carousel-prev {
  left: -4.5rem;
}

.galeria-carousel-next {
  right: -4.5rem;
}

.galeria-carousel-prev .carousel-control-prev-icon,
.galeria-carousel-next .carousel-control-next-icon {
  width: 4.5rem;
  height: 4.5rem;
  background-size: 100%;
}

.galeria-carousel-prev:hover,
.galeria-carousel-next:hover {
  opacity: 1;
}

/* ── Responsive ── */
@media (max-width: 991px) {
  .galeria-carousel-row {
    height: 190px;
  }

  .galeria-carousel-wrapper {
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }

  .galeria-carousel-prev {
    left: -2.5rem;
  }

  .galeria-carousel-next {
    right: -2.5rem;
  }
}

@media (max-width: 575px) {
  .galeria-carousel-row {
    height: 130px;
    gap: 2px;
  }

  .galeria-carousel-wrapper {
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .galeria-carousel-prev {
    left: -2rem;
  }

  .galeria-carousel-next {
    right: -2rem;
  }

  .galeria-carousel-title {
    font-size: 1.3rem;
  }
}
