@import url(https://db.onlinewebfonts.com/c/ed1df0d539f369028a8437b87f74b004?family=Ranade+Light); 

@font-face {
    font-family: "Ranade Light";
    src: url("https://db.onlinewebfonts.com/t/ed1df0d539f369028a8437b87f74b004.eot");
    src: url("https://db.onlinewebfonts.com/t/ed1df0d539f369028a8437b87f74b004.eot?#iefix") format("embedded-opentype"),
    url("https://db.onlinewebfonts.com/t/ed1df0d539f369028a8437b87f74b004.woff2") format("woff2"),
    url("https://db.onlinewebfonts.com/t/ed1df0d539f369028a8437b87f74b004.woff") format("woff"),
    url("https://db.onlinewebfonts.com/t/ed1df0d539f369028a8437b87f74b004.ttf") format("truetype"),
    url("https://db.onlinewebfonts.com/t/ed1df0d539f369028a8437b87f74b004.svg#Ranade Light") format("svg");
}

html {
    height: 100%;
    scroll-behavior: smooth;
}

body {
    margin: 0;    
    font-family: "Ranade Light", sans-serif;
    background: white;
    
    /* ESTO ES LO QUE SOLUCIONA EL FOOTER */
    display: flex;
    flex-direction: column;
    min-height: 100vh; /* Mantener mínimo de viewport en body */
}

/* 2. Aplica esto al contenedor que envuelve tu galería */
main {
    flex: 1; /* Esto obliga al contenido a estirarse y empujar al footer */
    /* main no necesita min-height cuando body tiene 100vh */
    
}
header {
    /* padding: 20px; */
    /* background-color: #f0f0f0; */
    /* background-image: url("img/header-bg.png"); */
    /* background-color: white; */
    /* background:linear-gradient(to bottom, white,rgb(143, 162, 216));; */
    background-color: white;
    background-size: cover;       /* Ajusta la imagen al tamaño del header */
    background-position: center;  /* Centra la imagen */
    background-repeat: no-repeat;
    height: auto; /* Let content determine header height */
    /* position: relative; */
    position: sticky; 
    top: 0;
    z-index: 1000; /* Asegura que el header esté por encima de otros elementos */
    /* layout handled by .site-header grid */
    /* padding: 2% 5%; */
    transition: filter 0.4s ease, height 0.4s ease; /* duración + suavidad */

    /* Prevent body min-height from forcing header tallness in flex layout */
    min-height: 0;
    flex: 0 0 auto;
    align-self: stretch;
}

/* When JS forces header to fixed position, ensure it's full-width and above content */
header.fixed, .site-header.fixed {
    position: fixed !important;
    top: 0 !important;
    left: 0;
    right: 0;
    z-index: 2000 !important;
    background: white;
}

/* Fallback: force header fixed layout via class and provide a placeholder
   so fixing the header doesn't cause content jump. Applied by JS when
   sticky fails or as a reliable fallback. */
.site-header.is-fixed {
    position: fixed !important;
    top: 0 !important;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 2000 !important;
    background: white;
}




#header-placeholder {
    display: block;
    width: 100%;
    height: 0px; /* JS will set the height to match header */
    transition: height 0.22s ease; /* smoother layout shift when JS toggles */
    pointer-events: none;
    box-sizing: border-box;
}

@media (max-width: 1400px) {
    #header-placeholder {
        /* height: 0px !important; */
        position: fixedt;
        z-index: 1; /* JS will set this to match header height when fixed */
    }
    .site-header.is-fixed{
    padding: 10px 5% !important;
    row-gap: 00px;}
}

/* Prevent clipping of transformed/scaled children (logo, images) */
header,
.site-header,
header.fixed,
.site-header.is-fixed {
    overflow: visible;
}

/* Ensure logo area doesn't clip the image when scaled */
.header-logo {
    overflow: visible;
}

/* Restore original shrink padding to preserve appearance */
.site-header.shrink {
    padding: 0.2vh 5%;
}

/* Ensure fixed header spans the viewport and isn't clipped by parent boxes */
#include-header {
    overflow: visible;
}

.site-header.is-fixed {
    box-sizing: border-box;
    padding: 5vh 5%; /* match normal header padding */
    max-width: 100vw;
    overflow: visible;
}



/* --- Estilos Generales de la Sección --- */
.about-section {
    position: relative;
    left: 10px;
    /* padding: 80px 0; Más espacio arriba y abajo */
    background-color: #ffffff; /* O el color que prefieras */
    overflow: hidden; /* Evita que la foto se salga si es muy grande */
}

.container {
    max-width: 1200px; /* Ancho máximo razonable para la mayoría de pantallas */
    margin: 0 auto; /* Centra el contenido en pantallas grandes */
    padding: 10vh 20px;
}

/* --- La Grilla (Grid) --- */
.about-grid {
    display: grid;
    /* Divide el espacio en dos columnas iguales (1fr cada una) */
    grid-template-columns: 2fr 1fr; /* La columna de texto es el doble de ancha que la de la foto */
    gap: 50px; /* Espacio de separación entre el texto y la foto */
    align-items: center; /* Alinea verticalmente el texto con la foto */
}

/* --- Columna de Texto --- */
.about-text-content {
    text-align: left; /* TODO EL TEXTO A LA IZQUIERDA */
    display: flex;
    flex-direction: column;
    justify-content: center;
    color: royalblue;
}

/* --- Columna de Imagen --- */
.about-image-content {
    display: flex;
    justify-content: center; /* Centra la foto dentro de su mitad */
    align-items: center;
}

.profile-photo {
    max-width: 100%; /* La foto no será más ancha que su columna */
    height: auto; /* Mantiene la proporción */
    border-radius: 15px; /* Bordes suaves (opcional) */
    box-shadow: 0 10px 30px rgba(0,0,0,0.1); /* Sombra suave (opcional) */
    
    /* Si quieres que la foto cubra todo el alto disponible y se corte un poco:
       object-fit: cover;
       height: 100%;
       width: 100%;
    */
}

/* --- Estilos de Texto (Basados en el ejemplo anterior) --- */
.about-text-content h1 {
    font-size: 2.5rem;
    margin-bottom: 1rem;
    /* color: #2c3e50; */
    color: royalblue;
}

.about-text-content h3 {
    margin-top: 1.5rem;
    /* color: #34495e; */
    color: royalblue;
}

.about-paragraphs p {
    margin-bottom: 1rem;
    line-height: 1.7;
    color: #555;
}

.lead {
    font-size: 1.2rem;
    font-weight: 500;
    color: #444;
    margin-bottom: 1.5rem;
}

.personal-note {
    font-style: italic;
    border-left: 3px solid #ccc;
    padding-left: 15px;
    margin: 1.5rem 0;
    color: #777;
}

.cta-wrapper {
    margin-top: 2rem;
}





/* Header shrink rules removed to keep header stable */
.header-logo {
    text-align: left;
    max-height: 120px; /* Ajusta el tamaño del logo */
    margin-left: 0;
    /* Make logo span both rows and align to bottom-left of the left column */
    grid-column: 1;
    grid-row: 1 / span 2;
    align-self: end;
    --logo-scale: 1;
    transform: scale(var(--logo-scale));
    transition: filter 0.4s  ease-in-out, transform 0.2s ease-in-out, height 0.4s ease-in-out;

    /* Ensure the image element itself can't render larger than intended */
    display: grid;
    width: 20vw;
}

/* Shrink visual state: logo smaller, header thinner, rrss logos hidden */
.site-header.shrink {
    /* reduce vertical padding when shrinked: keep horizontal padding */
    padding: 1vh 5%;
    row-gap: 0; /* reduce gap to prevent pushing navbar down when shrinked */
    /* padding-top: 0px; */
    grid-template-rows: auto;
    grid-template-columns: auto 1fr; /* keep two columns */
}
.site-header.shrink .header-logo {
    --logo-scale: 0.78;
}

.site-header.shrink #navbar {
    transform: translateY(-20px);
}
.site-header .header-logo {
    transform-origin: center;
    transform: scale(var(--logo-scale, 1));
    transition: transform 200ms ease, height 200ms ease;
}
.site-header .header-rrsslogos {
    transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease;
}
.site-header.shrink .header-rrsslogos {
    opacity: 0;
    transform: translateY(-6px);
    visibility: hidden;
    pointer-events: none;
}

/* Make navbar remain aligned: reduce navbar height slightly when shrink */
.site-header.shrink #navbar {
    height: 20px;
}

/* Hover debe aumentar un 10% respecto al valor actual de --logo-scale
   (si está shrinked se escala 1.1 * 0.8 = 0.88). */
@media (min-width: 1400px) {
    .header-logo:hover,
    .header-logo.shrink:hover {
        transform: scale(calc(var(--logo-scale) * 1.1));
        /* filter: brightness(80%); */
    }
}



.site-header {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    /* column-gap: 24px; */
    /* row-gap:50px; */
    align-items: center;
    padding: 5vh 5%;
}

.logo-link {
    /* place logo in the left column, spanning both rows */
    grid-column: 1;
    grid-row: 1 / span 2;
    justify-self: start;
    align-self: center; /* Aligns the logo to the bottom of its grid area */
}

.header-rrsslogos {
    /* place logos in the right column, first row */
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    display: flex;
    gap: 14px;
    align-items: center;
}

/* header layout placements for grid */
/* Ensure logo spans the full left column (both rows) */
.header-logo { grid-column: 1; grid-row: 1 / span 2; justify-self: start; }
#navbar { grid-column: 2; grid-row: 2; justify-self: end; 
    transition: transform 0.2s ease-in-out;
}


.rss-logo {
    /* width: 30px; Ajusta el tamaño de los logos de redes sociales */
    height: 30px;
    transition: transform 0.3s ease;
}
@media (min-width: 1400px) {
    .rss-logo:hover {
        transform: scale(1.2);
    }
}

/* Ensure widths <= 900px use the same hamburger overlay as smaller sizes */
@media (max-width: 900px) {
    .menu-rrss {
        display: flex;
        gap: 12px;
        justify-content: center;
        margin-bottom: 8px;
        width: 100%;
        padding-top: 10vh;
        flex-direction: row;
        align-items: center;
    }
    .nav-menu {
        position: fixed;
        top: 10vh;
        left: 0;
        width: 100%;
        height: calc(90vh);
        background: rgba(255,255,255,0.98);
        flex-direction: column;
        padding: 20px 20px;
        box-shadow: none;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 12px;
        transform: translateY(-100%);
        opacity: 0;
        pointer-events: none;
        transition: transform 0.35s ease, opacity 0.35s ease;
        z-index: 2000;
    }
    #hamburger {
        position: fixed;
        top: 14px;
        right: 18px;
        z-index: 2100;
        background: rgba(255,255,255,0.95);
        border-radius: 6px;
        padding: 8px;
    }
    body.nav-open { overflow: hidden; }
}

@media (max-width: 768px) {
    .site-header {
        grid-template-columns: 1fr;
        row-gap: 8px;
        padding: 10px 14px;
    }
    .header-rrsslogos {
        grid-column: 1;
        grid-row: 1;
        justify-self: start;
        gap: 10px;
    }
    #navbar {
        grid-column: 1;
        grid-row: 2;
        justify-self: stretch;
        width: 100%;
    }
    .header-logo {
        grid-column: 1;
        grid-row: 3;
        justify-self: center;
    }
}


#navbar {
    display: flex;
    background: white;
    justify-content: flex-end; /* align items to the right to prevent overflow */
    gap: 16px; /* reduce gap so items fit */
    padding: 0 0;
    position: relative;
    height: 50px;
    z-index: 1000;
}

.hamburger {
    display: none;
    flex-direction: column;
    background: white;
    border: none;
    cursor: pointer;
    padding: 10px;
}

.hamburger-line {
    width: 25px;
    height: 3px;
    background: black;
    margin: 3px 0;
    transition: 0.3s;
}

.dropdown-toggle {
    display: none;
    background:white;
    border: none;
    cursor: pointer;
    font-size: 18px;
    padding: 5px 10px;
}

#navbar a {
  font-family: "Ranade Light",'sans-serif';
  font-size: 23px;
  color: royalblue;
  text-decoration: none;
  transition: color 0.2s ease, font-size 0.2s ease, filter 0.2s ease;
}

#navbar a:hover,
.nav-item > a:hover,
.dropdown-menu li a:hover {
  color: #0024c4; /* color más brillante */
  background: none; /* fondo claro */
  font-size: 26px; /* ligero aumento de tamaño */
  filter: brightness(1.1);
}


@media (max-width: 1400px) {
    #navbar a:hover,
    .nav-item > a:hover,
    .dropdown-menu li a:hover {
        color: #0024c4; /* color más brillante */
        background: none; /* fondo claro */
        font-size: 20px; /* ligero aumento de tamaño */
        filter: brightness(1.1);
    }
}


#navbar a:hover {
    text-decoration:none;
}


.no-link {
    cursor: default;
    
}

.nav-menu {
  list-style: none;
  margin: 0;
  display: flex;
  text-align: left;
  /* transform: translateY(-30px); */
}

.nav-menu.shrink{
    transform: translateY(0px);
}

.nav-illustration{
    display: flex;
    padding-top: 3rem;
    padding-bottom: 2rem;

}

@media (max-width: 1400px) {
    .nav-illustration{
        height: 0px !important;
    }
    .site-header.shrink #navbar {
        transform: none;
    }
    .container-detailed{
        padding-top: 100px !important;
    }
}

.nav-menu.illustration-categories {
    position: relative;
    padding-left: 5%;
    gap: 20px;
    font-size: 20px;
    color: royalblue;
    cursor: pointer;    
}

.nav-menu .active {
    font-family: "Ranade Medium", sans-serif;
}

.nav-item {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.nav-item > a {
  display: block;
  padding: 12px 18px;
  padding-right: 0px;
  color: black;
  text-decoration: none;
  background: transparent;
  flex: 1;
  text-align: left;
}
/* 
*/

.dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    background: white;
    list-style: none;
    margin: 0;
    padding: 0;
    border-radius: 0 0 10px 10px; /* bordes inferiores redondeados */
    overflow: hidden; /* para que no desborde si hay hover/hover */
    opacity: 0;
    transform: translateY(-20px);
    transition: opacity 0.3s ease, transform 0.3s ease;
    z-index: 1000;
    text-align: left;
    min-width: 220px; /* evita que el submenu sea demasiado estrecho */
    width: auto;
    margin-top: 0px;
}

.nav-item.open > .dropdown-menu,
.nav-item:hover > .dropdown-menu {
  opacity: 1;
  transform: translateY(0);
}
.dropdown-menu li a {
    padding: 12px 18px; /* caja un poco más grande */
    color: black;
    text-align: left;
    white-space: nowrap; /* evitar que 'Royal Bliss' haga wrap */
    display: inline-block; /* permite transform sin romper el flujo */
    transition: transform 0.15s ease, color 0.15s ease;
}

#navbar.dropdown-open .nav-item:not(.open) > a {
  pointer-events: none;
  opacity: 0.5;
}

.nav-item > a + .dropdown-menu {
  opacity: 0;
  transform: translateY(-18px);
  transition: opacity 0.2s ease, transform 0.2s ease;
  pointer-events: none;
}
.nav-item > a:hover + .dropdown-menu,
.nav-item.open > .dropdown-menu {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

/* keep existing open support */
.nav-item.open > a {
  background: white;
}

/* keep submenu visible while mouse moves between parent and submenu */
.dropdown-menu {
  margin-top: 0px; /* optional, if gap causes flicker, use 0 */
}

@media (max-width: 1400px) {
    /* Ajustes generales para tablets y pantallas medianas */
    header {
        height: auto;
        padding: 12px 20px;
        align-items: center;
    }
    .header-logo {
        margin-left: 20px;
        height: 70px;
    }
    .header-rrsslogos {
        /* Mantener alineación en pantallas medianas */
        gap: 12px;
    }
    #navbar {
        gap: 12px;
        max-width: calc(100% - 140px);
        height: 0px !important;
        display: block; /* JS will set this to match header height when fixed */
    }
    .hamburger {
        display: flex;
    }
    .nav-menu {
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        background: #ffffff;
        flex-direction: column;
        padding: 10px 0;
        box-shadow: 0 2px 8px rgba(0,0,0,0.12);
        opacity: 0;
        transform: translateY(-6px);
        pointer-events: none;
        transition: opacity 0.25s ease, transform 0.25s ease;
    }
    #navbar.open .nav-menu {
        opacity: 1;
        transform: translateY(0);
        pointer-events: auto;
    }
    .nav-menu.illustration-categories {
        padding-left: 20px;
    }
    .nav-item > a {
        padding: 10px 14px;
        font-size: 18px;
    }
    .dropdown-toggle {
        display: block;
    }
    .nav-item > a + .dropdown-menu {
        position: static;
        opacity: 0;
        transform: none;
        max-height: 0;
        overflow: hidden;
    }
    .nav-item.open .dropdown-menu {
        max-height: 480px;
        opacity: 1;
        pointer-events: auto;
    }
    /* Logo and font adjustments for medium screens */
    .header-logo {
        max-height: 56px;
        width: auto;
        top: 6px;
    }
    #navbar a {
        font-size: 16px;
    }

    /* Ajuste vertical para centrar navbar en pantallas medianas */
    #navbar {
        top: 6px;
    }

    /* Ensure nav stays on one line if possible */
    .nav-menu {
        display: flex;
        flex-wrap: nowrap;
        justify-content: flex-end;
        gap: 8px;
        /* padding: 6px 10px; */
        position: relative;
        top: 0;
        width: auto;
    }
    .nav-menu > .nav-item {
        flex: 0 0 auto;
    }
    .nav-menu {
        flex-wrap: nowrap; /* keep items on single line to avoid pushing outside */
        overflow-x: auto;  /* allow scrolling if it overflows viewport */
        -webkit-overflow-scrolling: touch;
        max-width: 100%;
        justify-content: flex-end; /* keep menu items anchored to the right */
        gap: 16px; /* slightly tighter spacing */
    }
}

@media (max-width: 768px) {

 
    .about-grid {
        grid-template-columns: 1fr; /* Una sola columna en móviles */
        text-align: center; /* Centra el texto en móviles */
    }

  .hamburger {
    display: flex;
  }
    .nav-menu {
        position: fixed;
        top: 10vh; /* leave 10% above */
        left: 0;
        width: 100%;
        height: calc(90vh); /* occupy remaining viewport */
        background: rgba(255,255,255,0.98);
        flex-direction: column;
        /* padding: 20px 20px; small padding so items start near top */
        box-shadow: none;
        display: flex;
        align-items: center; /* center horizontally like larger mobile styles */
        justify-content: flex-start; /* start vertically at top */
        gap: 12px;
        transform: translateY(-100%);
        opacity: 0;
        pointer-events: none;
        transition: transform 0.35s ease, opacity 0.35s ease;
        z-index: 2000;
    }
    #navbar.open .nav-menu {
        transform: translateY(0);
        opacity: 1;
        pointer-events: auto;
    }

    /* Make hamburger float above the overlay so it can close it */
    #hamburger {
        position: fixed;
        top: 14px; /* standard position at top */
        right: 18px;
        z-index: 2100;
        background: rgba(255,255,255,0.95);
        border-radius: 6px;
        padding: 8px;
    }

    /* Larger, centered nav links for the full-screen menu */
    .nav-menu a {
        font-size: 22px;
        display: block;
        text-align: center;
    }

    /* Prevent body scrolling while menu is open */
    body.nav-open {
        overflow: hidden;
    }
    .nav-item {
        width: auto; /* keep same layout as larger widths */
        display: block;
    }
  .nav-item > a,
  .nav-item > .dropdown-toggle {
    display: inline-block;
        vertical-align: middle;
  }
    .nav-item > a {
        padding: 10px 20px;
        text-align: center; /* keep text centered like on larger screens */
        width: auto;
    }
  .dropdown-toggle {
    position: absolute;
    right: 10px;
    display:block;
  }

    /* Ensure rrss icons stay in a row on small widths */
    .menu-rrss {
        display: flex;
        flex-direction: row;
        gap: 12px;
        justify-content: center;
        align-items: center;
        width: 100%;
    }
  .dropdown-menu {
    max-height: 0px;
    position: static;
    overflow: hidden;
    background: #f9f9f9;
    width: 100%;
    margin-top: 0px;
    opacity: 0;
    transform: translateY(-10px);
    pointer-events: none;
    transition: max-height 0.3s ease, opacity 0.3s ease, transform 0.3s ease;
  }
  .nav-item.open {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }
  .nav-item.open .dropdown-menu {
    max-height: 500px; /* o un valor suficientemente grande */
    opacity: 1;
    transform: translateY(0);
    transition: max-height 0.3s ease, opacity 0.3s ease, transform 0.3s ease;
    pointer-events: auto;

  }
  .nav-item.nav-item:hover{
    background: transparent;
  }

  /* .nav-item:hover .dropdown-menu {
    opacity: 0;
    transform: translateY(-20px);
  } */
}

/* Smaller devices: reduce logo and font sizes further */
@media (max-width: 480px) {
    .header-logo {
        max-height: 48px;
        margin-left: 12px;
    }
    #navbar a {
        font-size: 16px;
    }
    .about-text-content h1 {
        font-size: 1.8rem;
    }
    .lead {
        font-size: 1rem;
    }
    .description .title {
        font-size: 22px;
    }
}

@media (max-width: 360px) {
    .header-logo {
        max-height: 40px;
        margin-left: 8px;
    }
    #navbar a {
        font-size: 15px;
    }
    .about-text-content h1 {
        font-size: 1.6rem;
    }
}

.gallery {
    display: flex;
    flex-wrap: wrap;
    padding: 20px;
    padding-left: 5%;
    padding-right: 5%;
    align-items: flex-start;
}

.container-detailed {
    display: flex;
    /* justify-content: right; */
    /* align-items: center; */
    width:76vw;
    padding-left: 12vw;
    padding-right: 12vw;

}

.gallery.vertical {
    flex-direction: column;
    align-items: center;
    /* min-width: 60%; */
    width: 38vw;
}

.gallery.vertical a img {
    /* width: 100%;
    max-width: 600px; Limita el ancho máximo de las imágenes en la galería vertical */
    max-height: 70vh; /* Ajusta la altura de las imágenes para ocupar el 70% de la altura de la ventana */
    max-width: 38vw;
}

/* --- Mostrar logos dentro del menú hamburguesa y unificar comportamiento móvil/tablet --- */
.menu-rrss {
    display: none; /* oculto por defecto en escritorio */
}
.menu-rrss .rss-logo {
    height: 28px;
}

/* Forzar comportamiento de menú tipo overlay hasta 1024px (incluye 834px) */
@media (max-width: 1400px) {
    /* esconder los logos del header superior y usar los del menú */
    .header-rrsslogos {
        display: none;
    }
    .menu-rrss {
        display: flex;
        gap: 12px;
        justify-content: center;
        margin-bottom: 8px;
        width: 100%;
        padding-top: 10vh;
        flex-direction: row; /* ensure row for all sizes <=1024px */
        align-items: center;
    }
    .menu-rrss .rss-logo { height: 28px; }

    /* aplicar el overlay de menú (igual que en móviles) para tablets y pantallas menores */
    .nav-menu {
        position: fixed;
        top: 10vh; /* leave 10% above */
        left: 0;
        width: 100%;
        height: calc(90vh); /* occupy remaining viewport */
        background: rgba(255,255,255,0.98);
        flex-direction: column;
        /* padding: 20px 20px; small padding so items start near top */
        box-shadow: none;
        display: flex;
        align-items: center; /* center horizontally like mobile */
        justify-content: flex-start; /* start at top vertically */
        gap: 12px;
        transform: translateY(-100%);
        opacity: 0;
        pointer-events: none;
        transition: transform 0.35s ease, opacity 0.35s ease;
        z-index: 2000;
    }
    #navbar.open .nav-menu {
        transform: translateY(0);
        opacity: 1;
        pointer-events: auto;
    }
    /* mantener el botón hamburguesa encima del overlay */
    #hamburger {
        position: fixed;
        top: 14px;
        right: 18px;
        z-index: 2100;
        background: rgba(255,255,255,0.95);
        border-radius: 6px;
        padding: 8px;
    }
    /* evitar scroll de fondo cuando el menú está abierto */
    body.nav-open { overflow: hidden; }
}

.gallery > a,
.gallery-item {
    /* flex: 0 0 calc(25% - 15px); */
    /* width: calc(50% - 15px); */
    width: auto;
    box-sizing: border-box;
    margin-right:7.5px;
    margin-left:7.5px;
    margin-bottom: 15px;
}

.gallery a img,
.gallery-item img {
    /* width: 100%; */
    height: auto;
    display: block;
    border-radius: 5px;
}

.gallery-item {
    flex: 0 0 calc(25% - 15px);
    width: calc(25% - 15px);
    transition: opacity 0.35s ease, transform 0.35s ease;
    opacity: 1;
    transform: scale(1);
    overflow: hidden;
}

.gallery.vertical video{
    flex-direction: column;
    max-height: 70vh; /* Ajusta la altura de los videos para ocupar el 70% de la altura de la ventana */
    max-width: 38vw;
    border-radius: 5px;
}


@media (max-width: 1200px) {
    .container-detailed {
        /* width: 100%; */
        flex-direction: column;
        align-items: center;
        gap: 20px;
    }
    .container-detailed .description{
        order: -1;
        position: relative;
        align-self: center;
        left: auto;
        /* margin-left: 5%; */
        /* margin-right: 5%; */
        max-width: 100% !important;
        background-color: white;
        border-radius: 10px;
        padding: 20px;
        box-shadow: 0 4px 15px rgba(0,0,0,0.1);
        /* width: 1000px */
    }
    .gallery.vertical a img{
     max-width: 100%;
    }
    
    .gallery.vertical video{
        max-width: 100%;
    }
    
    .gallery.vertical {
        width: 100%;
    }
}
/* 
@media (max-width: 900px) {
    .gallery > a,
    .gallery-item {
        flex: 0 0 calc(50% - 15px);
        width: calc(50% - 15px);
    }
    
} */

/* Fade/scale out while keeping layout space, then collapse */
.gallery-item.hidden {
    opacity: 0;
    transform: scale(0.95);
    pointer-events: none;
}

/* Collapsed removes layout space (applied after the fade finishes) */
.gallery-item.collapsed {
    flex-basis: 0 !important;
    width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    transition: flex-basis 0.35s ease, width 0.35s ease, margin 0.35s ease, padding 0.35s ease;
}

.gallery-item img {
    width: 100%; /* La imagen siempre llena su contenedor (el div) */
    height: auto;
    display: block;
    border-radius: 5px;
}
.gallery-item:hover {
    transform: scale(1.02);
}

@media( min-width: 1200px){
.description{
    position: fixed;
    top: 50%;
    left:60%;
    width :26vw; 
    max-width: 28rem;
    transform:translate3d(0, -50%, 0) !important;
    padding: 20px;
    background-color: white;
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    text-align: left;  
    align-self: self-start;
}
}

/* @media (max-width: 1400px) {
    .description {
        position: relative;
        top: auto;
        max-width: 90%;
        margin: 0 auto;
        padding: 15px;
    }
} */




.description .title {
    font-family: "Ranade Medium", sans-serif;
    margin-bottom: 15px;
    font-size: 28px;
    color: royalblue;
    text-align: left;
}


.back-button {
    margin-top: 20px;
    font-family: "Ranade medium", sans-serif;
    text-decoration: none;
    color: black;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}


footer{
    
    padding: 10px;
    background-color: white;
}

.footer p {
    margin: 4px 0;
    font-size: 14px;
    color: #555;
    text-align: center;
    line-height: 1.2;
    
}


@media (max-width: 900px) {
    .nav-menu {
        position: fixed;
        top:0px; /* leave 10% above */
        left: 0;
        width: 100%;
        height: calc(100vh);
        background: rgba(255,255,255,0.98);
        flex-direction: column;
        /* padding: 20px 20px; top padding small so items start near the top */
        box-shadow: none;
        display: flex;
        align-items: center; /* center horizontally */
        justify-content: flex-start;
        gap: 12px;
        transform: translateY(-100%);
        opacity: 0;
        pointer-events: none;
        transition: transform 0.35s ease, opacity 0.35s ease;
        z-index: 2000;
    }
}
@media (max-width: 400px) {
    .gallery {
        padding-left: 12px;
        padding-right: 12px;
        gap: 12px;
    }
    .gallery-item {
        flex: 0 0 100%;
        width: 100%;
    }
    header {
        padding: 8px 12px;
        height: auto;
    }
    #navbar a {
        font-size: 18px;
    }
}

/* Lightbox default handled by included library; custom lightbox styles removed */

#close {
    position: absolute;
    top: 20px; right: 40px;
    color: white;
    font-size: 40px;
    cursor: pointer;
}


.fade-in {
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.8s ease-out;
}

.fade-in.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Ensure gallery sections using the fade-in helper remain visible by default
   (some pages don't toggle the .visible class). This makes the gallery
   images visible unless explicitly hidden by the filtering JS). */
.gallery.fade-in {
    opacity: 1 !important;
    transform: none !important;
}


.container-carrousel {
    position: relative;
    width: 90%;
    overflow: hidden;
    padding-left: 5%;
    padding-right: 5%;
}

.swiper {
        margin-top: 5%;
        width: 100%;
        /* min-height: 60vh; Permite que la sección tenga al menos 60vh pero pueda crecer */
        height: 60vh; /* Deja que la altura se ajuste al contenido (las imágenes) */
        margin-bottom: 5%;
        
}

.swiper-slide {
  display: flex;
  justify-content: center;
  align-items: center;
}

.swiper-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain; /* Clave: La imagen llena el espacio sin deformarse */
}

.swipper-fade {
    mask-image: linear-gradient(to right, 
        rgba(0, 0, 0, 0) 0%, 
        rgba(0, 0, 0, 1) 5%, 
        rgba(0, 0, 0, 1) 95%, 
        rgba(0, 0, 0, 0) 100%);
}

.centered-rrss{
    padding-top: 2vh;
    display: flex;
    justify-content: center;
}


/* Personaliza el color de Julia para los controles */
:root {
  --swiper-navigation-color: royalblue;
  --swiper-pagination-color: royalblue;
  --swiper-navigation-sides-offset: 2%; /* Ajusta la distancia de los botones del borde */
}

.julia-btn{
    background-color: royalblue !important;
    border-color: royalblue !important;
}

.contact-title {

    font-family: "Ranade Medium", sans-serif;
    text-align: left; /* TODO EL TEXTO A LA IZQUIERDA */
    display: flex;
    flex-direction: column;
    justify-content: center;
    /* color: #b32821; */
    /* color:#a2231d; */
    color: royalblue;
}



/* Margen de seguridad para que las fotos no toquen los bordes de la pantalla */
.fancybox-with-margin .fancybox__slide {
  padding: 24px !important; /* Puedes cambiar los 24px por el espacio que prefieras */
}

/* Opcional: Evita que el contenedor tenga fondo blanco si la foto tiene transparencias */
.fancybox-with-margin .fancybox__content {
  background: transparent !important;
}


.video-poster{
    display: none !important;

}