/* ============================= *//* BASE Y BODY *//* ============================= */body {    font-family: Arial, sans-serif;    margin: 20px;    background-color: #f7f9fc;    color: #333;    text-align: justify;}header {    display: flex;    align-items: center;    gap: 20px;    margin-bottom: 20px;    flex-wrap: wrap; /* permite que elementos no se recorten */}.logo {    width: 400px !important; /* tamaño mayor */    max-width: 100%;    height: auto;    flex-shrink: 0; /* evita que se encoja con el flex */}.titles h1 {    font-size: 3em;    margin: 0;}.titles h3 {    font-size: 1.2em; /* más pequeño para el título largo */    margin-top: 5px;    font-weight: normal;    color: #555;}nav {    margin-bottom: 30px;    font-size: 1.1em;}nav a {    margin-right: 15px;    text-decoration: none;    color: #2c3e50;}nav a:hover {    text-decoration: underline;}section {    margin-bottom: 40px;    background-color: #fff;    padding: 20px;    border-radius: 10px;    box-shadow: 0 0 10px rgba(0,0,0,0.05);}/* ============================= *//* FIGURES GALLERY *//* ============================= */.figures-description {    margin-bottom: 20px;    font-size: 1em;    color: #444;    text-align: justify;}.figures-gallery {    display: grid;    grid-template-columns: repeat(auto-fit, minmax(240px, 260px)); /* ancho fijo máximo */    justify-content: center; /* centra las figuras cuando hay pocas */    gap: 25px;}.figure {    margin-bottom: 30px;    text-align: center;    background: #ffffff;    padding: 12px;    border-radius: 10px;    border: 1px solid #e3e6ea;    transition: transform 0.25s ease, box-shadow 0.25s ease;    position: relative; /* para tooltip */    overflow: visible; /* muy importante para que el tooltip no se corte */    max-width: 380px; /* limita el ancho incluso si hay pocas columnas */    margin: 0 auto;    /* centra la figura cuando no hay muchas */    width: 100%;      /* para que el contenido se ajuste al max-width */}.figure:hover {    transform: translateY(-5px);    box-shadow: 0 10px 22px rgba(0,0,0,0.12);}.figure p {    font-weight: bold;    margin-bottom: 5px;}.figure img {    border: 1px solid #ccc;    max-width: 100%;    height: auto;}/* ============================= *//* TOOLTIP CON ICONO ℹ️ *//* ============================= */.tooltip-icon {    position: relative; /* clave: ahora el tooltip se posiciona respecto al icono */    display: inline-block;    margin-left: 5px;    color: #2c3e50;    font-weight: bold;    cursor: pointer;    border-radius: 50%;    width: 18px;    height: 18px;    text-align: center;    line-height: 18px;    background: #ddd;    font-size: 0.9em;}.tooltip-text {    visibility: hidden;    opacity: 0;    width: 220px;    background-color: #2c3e50;    color: #fff;    text-align: center;    border-radius: 6px;    padding: 8px 10px;    position: absolute; /* ahora relativo al icono */    top: 75%;           /* justo debajo del icono */    left: 50%;    transform: translateX(-50%);    z-index: 999;    transition: opacity 0.3s;    white-space: normal;    max-height: 150px;    /* scroll si es texto largo */    overflow-y: auto;}.tooltip-text::after {    content: "";    position: absolute;    top: -5px; /* la flecha apuntando hacia arriba */    left: 50%;    transform: translateX(-50%);    border-width: 5px;    border-style: solid;    border-color: transparent transparent #2c3e50 transparent;}.tooltip-icon:hover + .tooltip-text,.tooltip-icon:focus + .tooltip-text {    visibility: visible;    opacity: 1;}/* ============================= *//* FIGURE THUMBNAILS *//* ============================= */.thumbnail {    width: 100%;    max-width: 260px;    height: auto;    border-radius: 8px;    border: 1px solid #ccc;    cursor: pointer;    transition: transform 0.3s ease, box-shadow 0.3s ease;}.thumbnail:hover {    transform: scale(1.05);    box-shadow: 0 8px 20px rgba(0,0,0,0.15);}.figures-gallery .figure p {    margin-top: 8px;    font-size: 0.95em;    font-weight: normal;    color: #555;}/* ============================= *//* HEADINGS PARA SECCIONES *//* ============================= */h3 {    margin-top: 35px;    margin-bottom: 15px;    color: #2c3e50;    border-left: 4px solid #2c3e50;    padding-left: 10px;}/* ============================= *//* MODAL PARA IMAGEN AMPLIADA *//* ============================= */#imgModal {    display: none;    position: fixed;    z-index: 1000;    padding-top: 60px;    left: 0;    top: 0;    width: 100%;    height: 100%;    background-color: rgba(0,0,0,0.9);}#imgModal img {    margin: auto;    display: block;    max-width: 90%;    max-height: 85%;    border-radius: 8px;}#modalCaption {    text-align: center;    color: #fff;    margin-top: 15px;    font-size: 1em;}#imgModal .modal-close {    position: absolute;    top: 30px;    right: 45px;    color: #fff;    font-size: 40px;    font-weight: bold;    cursor: pointer;    transition: 0.3s;}#imgModal .modal-close:hover {    color: #ccc;}/* ============================= *//* FOOTER Y OTROS ELEMENTOS *//* ============================= */footer {    margin-top: 50px;    text-align: center;    color: #777;    font-size: 0.9em;}/* Team section hover info */.team-container {    display: flex;    flex-wrap: wrap;    justify-content: center;}.team-member {    width: 220px;    margin: 20px;    text-align: center;}.team-member img.team-photo {    width: 180px;    height: auto;    border-radius: 50%;    border: 2px solid #2c3e50;    cursor: pointer;}.team-member h3, .team-member p {    margin: 5px 0;}/* Partners logos */#partners {    background-color: #ffffff;    padding: 10px 0;    overflow-x: auto;    white-space: nowrap;}.partners-logos {    display: inline-flex;    align-items: center;    gap: 40px;    padding: 0 20px;}.partners-logos img {    height: 60px;    width: auto;    object-fit: contain;    transition: transform 0.3s ease;    display: inline-block;}.partners-logos img:hover {    transform: scale(1.2);    transform-origin: center;}@media (max-width: 768px) {    .partners-logos img {        height: 45px;    }    .partners-logos {        gap: 25px;    }}/* ============================= *//* TEAM MEMBER MODAL (hover) *//* ============================= */.team-member {    position: relative; /* necesario para posicionar el modal relativo a la foto */}.team-member .modal {    display: none; /* oculto por defecto */    position: absolute; /* sobre la imagen */    top: 50%;    left: 110%; /* a la derecha de la imagen */    transform: translateY(-50%);    width: 280px;    max-height: 300px;    overflow-y: auto;    background-color: #2c3e50;    color: #fff;    padding: 12px;    border-radius: 8px;    box-shadow: 0 5px 15px rgba(0,0,0,0.3);    z-index: 1000;    transition: opacity 0.3s ease;}/* Mostrar modal al pasar el ratón sobre la foto */.team-member img.team-photo:hover + .modal,.team-member img.team-photo:focus + .modal {    display: block;}/* Scroll interno si el contenido es largo */.team-member .modal::-webkit-scrollbar {    width: 6px;}.team-member .modal::-webkit-scrollbar-thumb {    background-color: #555;    border-radius: 3px;}/* ============================= *//* FIXED SIDEBAR *//* ============================= */#sidebar {    position: fixed;    top: 100px; /* ajustar según header */    right: 0;    width: 220px;    background-color: #f7f9fc;    border-left: 2px solid #2c3e50;    padding: 20px;    box-shadow: -3px 0 8px rgba(0,0,0,0.1);    z-index: 9999;}#sidebar h3 {    margin-top: 0;    color: #2c3e50;    font-size: 1.2em;    border-bottom: 1px solid #2c3e50;    padding-bottom: 5px;}#sidebar ul { list-style: none; padding-left: 0; margin-top: 10px; }#sidebar ul li { margin: 12px 0; }#sidebar ul li a { text-decoration: none; color: #2c3e50; font-weight: 500; transition: color 0.3s; }#sidebar ul li a:hover { color: #1b2533; text-decoration: underline; }/* Responsive sidebar */@media (max-width: 1024px) {     #sidebar { display: none; } }.center-image {    display: block;    margin: 0 auto;}