.overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.30);
    z-index: 5;
    display: none;
  }

.texto {
    color: white;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 25px;
    margin: 0;
    text-align: center;
    flex: 1;
  }

.body {
    background-color: rgb(200,200,200);
  }

  /* Aparece cuando se activa el menú de hamburguesa */
.overlay.active {
    display: block;
  }

.LogoUNAM-img:hover {
    cursor: pointer;
    transform: scale(1.05);
    transition: transform 0.2s ease;
  }

.btn-purple {
    background-color: #6f42c1;
    color: white;
    border-color: #6f42c1;
  }

.btn-purple:hover {
    background-color: #5a3791;
  }

.btn-marin {
    background-color: #4275c1;
    color: white;
    border-color: #2134a0;
  }

.btn-marin:hover {
    background-color: #02006b;
  }

.btn-cyan {
    background-color: #42bdc1;
    color: white;
    border-color: #218da0;
  }

.btn-cyan:hover {
    background-color: #005f6b;
  }

.btn-pink {
    background-color: #dd3999;
    color: white;
    border-color: #c03385;
  }

.btn-pink:hover {
    background-color: #a72a73;
  }

.btn-orange {
    background-color: #ff7300;
    color: white;
    border-color: #d86100;
  }

.btn-orange:hover {
    background-color: #c95a00;
  }

.btn-fresa {
    background-color: #ff006a;
    color: white;
    border-color: #b1004a;
  }

.btn-fresa:hover {
    background-color: #8f003c;
  }

.btn-amar {
    background-color: #ffd900;
    color: white;
    border-color: #b19600;
  }

.btn-amar:hover {
    background-color: #665c00;
  }

.btn-bande {
    background-color: #1eff00;
    color: white;
    border-color: #0fb100;
  }

.btn-bande:hover {
    background-color: #006600;
  }

.btn-rojo {
    background-color: #ff0000;
    color: white;
    border-color: #b10000;
  }

.btn-rojo:hover {
    background-color: #660000;
  }

p {
    color: rgb(0, 0, 0);
  }

.navbar {
    background-color: #08245a;
    padding: 10px 20px;
    display: flex;
    align-items: center;
  }

.hamburger {
    font-size: 30px;
    color: white;
    cursor: pointer;
  }

  .reestablecer{
    box-shadow: 0 6px 6px rgba(0,0,0,.5);
    border: 2px solid rgba(255,255,255,.85);
    background-color: rgb(255,255,255);
    padding: 2px 6px;
    border-radius: 8px;
  }
  .reestablecer:hover{
    box-shadow: 0 6px 6px rgba(0,0,0,.5);
    border: 2px solid rgba(160,160,160,.85);
    background-color: rgb(160, 160, 160);
    color: white;
    padding: 2px 6px;
    border-radius: 8px;
    cursor: pointer;
    transform: scale(1.05);
    transition: transform 0.2s ease;
  }
  
  .cerrar{
    box-shadow: 0 6px 6px rgba(0,0,0,.5);
    border: 2px solid rgba(255,255,255,.85);
    background-color: rgb(255,255,255);
    padding: 2px 6px;
    border-radius: 2px;
  }
  .cerrar:hover{
    box-shadow: 0 6px 6px rgba(0,0,0,.5);
    border: 2px solid rgba(160,160,160,.85);
    background-color: rgb(160, 160, 160);
    color: white;
    padding: 2px 6px;
    border-radius: 2px;
    cursor: pointer;
    transform: scale(1.05);
    transition: transform 0.2s ease;
  }

.nav-links {
    list-style: none;
    margin: 0;
    padding: 0;
    position: fixed;
    top: 0;
    left: 0; 
    width: 220px;
    height: 100vh;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    background-color: #08245a;

    transform: translateX(-100%); 
    transition: transform 0.3s ease-in-out;

    display: flex;
    flex-direction: column;
    padding-top: 60px;

    z-index: 10;
    opacity: 1;
    pointer-events: auto;
    box-shadow: 2px 0 6px rgba(0,0,0,0.4); 
  }

.nav-links.show {
    transform: translateX(0); 
    opacity: 1;
    pointer-events: auto;
  }

.nav-links li a {
    display: block;
    padding: 15px 20px;
    color: white;
    text-decoration: none;
  }

.azul {
    background-color: rgba(47, 72, 185, 0.9);
  }
.azul:hover {
    background-color: rgba(30, 41, 136, 0.9);
    cursor: pointer;
    transform: scale(1.05);
    transition: transform 0.2s ease;
  }
  
.cyan {
    background-color: rgba(21, 166, 177, 0.9);
  }
.cyan:hover {
    background-color: rgba(16, 121, 115, 0.9);
    cursor: pointer;
    transform: scale(1.05);
    transition: transform 0.2s ease;
  }
  
.cafe {
    background-color: rgba(255, 136, 39, 0.9);
  }
.cafe:hover {
    background-color: rgba(185, 118, 24, 0.9);
    cursor: pointer;
    transform: scale(1.05);
    transition: transform 0.2s ease;
  }
  
.rosa {
    background-color: rgba(255, 121, 199, 0.9);
  }
.rosa:hover {
    background-color: rgba(172, 79, 156, 0.9);
    cursor: pointer;
    transform: scale(1.05);
    transition: transform 0.2s ease;
  }
  
.verde {
    background-color: rgba(56, 207, 26, 0.9);
  }
.verde:hover {
    background-color: rgba(16, 146, 16, 0.9);
    cursor: pointer;
    transform: scale(1.05);
    transition: transform 0.2s ease;
  }
  
.morado {
    background-color: rgba(204, 75, 255, 0.9);
  }
.morado:hover {
    background-color: rgba(159, 50, 192, 0.9);
    cursor: pointer;
    transform: scale(1.05);
    transition: transform 0.2s ease;
  }
  
.verdecl {
    background-color: rgba(255, 50, 136, 0.9);
  }
.verdecl:hover {
    background-color: rgba(187, 37, 99, 0.9);
    cursor: pointer;
    transform: scale(1.05);
    transition: transform 0.2s ease;
  }
  
.amarillo {
    background-color: rgba(209, 196, 17, 0.9);
  }
.amarillo:hover {
    background-color: rgba(163, 141, 16, 0.9);
    cursor: pointer;
    transform: scale(1.05);
    transition: transform 0.2s ease;
  }
  
.fresita {
    background-color: rgba(255, 0, 0, 0.9);
  }
.fresita:hover {
    background-color: rgba(172, 0, 0, 0.9);
    cursor: pointer;
    transform: scale(1.05);
    transition: transform 0.2s ease;
  }
  

  #zoomArea {
    font-size: 14px; /* base */
  }

  .hotspot-btn {
    position: absolute;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    border: none;
    transform: translate(-50%, -50%) scale(var(--hotspot-scale));
    transform-origin: center;
    z-index: 10;
    pointer-events: auto;
    box-shadow: 0 6px 6px rgba(0,0,0,.5);
    border: 2px solid rgba(255,255,255,.85);
  }

  .tooltip-label {
    position: absolute;
    background: black;
    color: white;
    font-size: 10px;
    padding: 2px 6px;
    border-radius: 4px;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    z-index: 9999;
    transition: opacity 0.3s ease;
    transform: translate(-50%, -80%) scale(var(--hotspot-scale));
    transform-origin: center;
  }  
  
    /* Responsividad para orientación vertical */
  @media (orientation: portrait) {
    .LogoUNAM-img {
      width: 40px;
      height: auto;
    }

    .fesc-enlace {
      display: flex;
      align-items: center;
    }

    .croquis-container {
      position: relative;
      width: 100%;
      height: 70vh;
      max-width: 1600px; 
      margin: auto;
      overflow: hidden;
    }

    .croquis-img {
      width: 100%;
      display: block;
    }

    #instrucciones {
      min-height: 6.4em;
      line-height: 1.6;
      transition: opacity 1s ease;
    }

    #btn1 { bottom: 12.5%; left: 35%; }
    #btn2 { bottom: 22.5%; left: 40%; }
    #btn3 { bottom: 33%; left: 39%; }
    #btn4 { bottom: 31%; left: 41%; }
    #btn5 { bottom: 36.5%; left: 40%; }
    #btn6 { bottom: 37.5%; left: 47%; }
    #btn7 { bottom: 40%; left: 46%; }
    #btn8 { bottom: 46.5%; left: 46%; }
    #btn9 { bottom: 51.5%; left: 46.7%; }
    #btn10 { bottom: 59.5%; left: 46.5%; }
    #btn11 { bottom: 56.5%; left: 49%; }
    #btn12 { bottom: 63%; left: 46.5%; }
    #btn13 { bottom: 63.5%; left: 43%; }
    #btn14 { bottom: 70%; left: 59.5%; }
    #btn15 { bottom: 61.5%; left: 38%; }
    #btn16 { bottom: 34.8%; left: 26%; }
    #btn17 { bottom: 59%; left: 72%; }
    #btn18 { bottom: 58.5%; left: 32.5%; }
    #btn19 { bottom: 67.5%; left: 47.7%; }
    #btn20 { bottom: 67.5%; left: 59%; }
    #btn21 { bottom: 61.5%; left: 59%; }
    #btn22 { bottom: 62.5%; left: 72%; }
    #btn23 { bottom: 47.5%; left: 60.5%; }
    #btn24 { bottom: 44.5%; left: 64%; }
    #btn25 { bottom: 45%; left: 68%; }
    #btn26 { bottom: 39.5%; left: 65%; }
    #btn27 { bottom: 47.5%; left: 85%; }
    #btn28 { bottom: 55.5%; left: 71%; }
    #btn29 { bottom: 56%; left: 78%; }
    #btn30 { bottom: 67%; left: 80%; }
    #btn31 { bottom: 74.5%; left: 93%; }
    #btn32 { bottom: 75.5%; left: 81%; }
    #btn33 { bottom: 68.5%; left: 84%; }
    #btn34 { bottom: 48.5%; left: 78%; }
    #btn35 { bottom: 46.5%; left: 84.5%; }
    #btn36 { bottom: 40.5%; left: 85%; }
    #btn37 { bottom: 44.5%; left: 85%; }
    #btn38 { bottom: 45.5%; left: 81%; }
    #btn39 { bottom: 64%; left: 54%; }
    #btn40 { bottom: 64%; left: 51.7%; }
    #btn41 { bottom: 78.5%; left: 88%; }
    #btn42 { bottom: 56.5%; left: 22.5%; }
    #btn43 { bottom: 64.5%; left: 22%; }
    #btn44 { bottom: 52%; left: 21%; }
    #btn45 { bottom: 37.5%; left: 43.5%; }
    #btn46 { bottom: 35%; left: 49%; }
    #btn47 { bottom: 29%; left: 46%; }
    #btn48 { bottom: 40%; left: 51.5%; }
    #btn49 { bottom: 38.5%; left: 25%; }
    #btn50 { bottom: 45.5%; left: 27%; }
    #btn51 { bottom: 54.5%; left: 36%; }
    #btn52 { bottom: 49%; left: 54%; }
    #btn53 { bottom: 52.5%; left: 54.5%; }
    #btn54 { bottom: 50.5%; left: 50%; }
    #btn55 { bottom: 53.5%; left: 40%; }
    #btn56 { bottom: 53.5%; left: 32.3%; }
    #btn57 { bottom: 50%; left: 44%; }
    #btn58 { bottom: 38%; left: 49.8%; }
    #btn59 { bottom: 10%; left: 37%; }

    #btn60 { bottom: 48.5%; left: 51%; }
    #btn61 { bottom: 47%; left: 32.1%; }
    #btn62 { bottom: 32.5%; left: 47%; }
    #btn63 { bottom: 52.7%; left: 42.2%; }
    #btn64 { bottom: 40.4%; left: 73.6%; }
    #btn65 { bottom: 32.5%; left: 23%; }
    #btn66 { bottom: 28%; left: 24.5%; }
    #btn67 { bottom: 27.7%; left: 28.5%; }

  }

  /* Responsividad para orientación horizontal */
@media (orientation: landscape) {
    .LogoUNAM-img {
      width: 40px;
      height: auto;
    }

    .fesc-enlace {
      display: flex;
      align-items: center;
    }

    .croquis-container {
      position: relative;
      width: 100%;
      height: 80vh;
      max-width: 1400px; 
      margin: auto;
      overflow: hidden;
    }

    .croquis-img {
      width: 100%;
      display: block;
    }

    #instrucciones {
      min-height: 3.2em;
      line-height: 1.6;
      transition: opacity 1s ease;
    }
    #btn1 { bottom: 17%; left: 35%; }
    #btn2 { bottom: 27%; left: 40%; }
    #btn3 { bottom: 37.5%; left: 39%; }
    #btn4 { bottom: 35.5%; left: 41%; }
    #btn5 { bottom: 41%; left: 40%; }
    #btn6 { bottom: 42%; left: 47%; }
    #btn7 { bottom: 44.5%; left: 46%; }
    #btn8 { bottom: 51%; left: 46%; }
    #btn9 { bottom: 55.2%; left: 46.7%; }
    #btn10 { bottom: 64%; left: 46.5%; }
    #btn11 { bottom: 61%; left: 49%; }
    #btn12 { bottom: 67.5%; left: 46.5%; }
    #btn13 { bottom: 68%; left: 43%; }
    #btn14 { bottom: 75%; left: 60%; }
    #btn15 { bottom: 66%; left: 38%; }
    #btn16 { bottom: 39.8%; left: 26%; }
    #btn17 { bottom: 64%; left: 72%; }
    #btn18 { bottom: 63%; left: 32.5%; }
    #btn19 { bottom: 72%; left: 47.7%; }
    #btn20 { bottom: 72%; left: 59%; }
    #btn21 { bottom: 66%; left: 59%; }
    #btn22 { bottom: 67.5%; left: 72%; }
    #btn23 { bottom: 52%; left: 60.5%; }
    #btn24 { bottom: 49%; left: 64%; }
    #btn25 { bottom: 50.5%; left: 68%; }
    #btn26 { bottom: 44%; left: 65%; }
    #btn27 { bottom: 51.5%; left: 85%; }
    #btn28 { bottom: 60%; left: 71%; }
    #btn29 { bottom: 60.5%; left: 78%; }
    #btn30 { bottom: 71.5%; left: 80%; }
    #btn31 { bottom: 77%; left: 93%; }
    #btn32 { bottom: 80%; left: 81%; }
    #btn33 { bottom: 73%; left: 84%; }
    #btn34 { bottom: 53%; left: 78%; }
    #btn35 { bottom: 51%; left: 84.5%; }
    #btn36 { bottom: 45%; left: 85%; }
    #btn37 { bottom: 49%; left: 85%; }
    #btn38 { bottom: 52%; left: 81%; }
    #btn39 { bottom: 69%; left: 54%; }
    #btn40 { bottom: 69%; left: 51.7%; }
    #btn41 { bottom: 83%; left: 88%; }
    #btn42 { bottom: 61.4%; left: 22%; }
    #btn43 { bottom: 69%; left: 22%; }
    #btn44 { bottom: 58%; left: 20.5%; }
    #btn45 { bottom: 42%; left: 43.5%; }
    #btn46 { bottom: 39.5%; left: 49%; }
    #btn47 { bottom: 33.5%; left: 46%; }
    #btn48 { bottom: 45.2%; left: 51.8%; }
    #btn49 { bottom: 41.5%; left: 24.8%; }
    #btn50 { bottom: 50%; left: 27%; }
    #btn51 { bottom: 59%; left: 36%; }
    #btn52 { bottom: 53.5%; left: 54%; }
    #btn53 { bottom: 59%; left: 54.5%; }
    #btn54 { bottom: 57%; left: 50%; }
    #btn55 { bottom: 58%; left: 40%; }
    #btn56 { bottom: 58%; left: 32.3%; }
    #btn57 { bottom: 54.5%; left: 44%; }
    #btn58 { bottom: 43%; left: 50%; }
    #btn59 { bottom: 14.5%; left: 36.5%; }

    #btn60 { bottom: 53%; left: 51%; }
    #btn61 { bottom: 51.5%; left: 32.1%; }
    #btn62 { bottom: 37%; left: 47%; }
    #btn63 { bottom: 57%; left: 42.2%; }
    #btn64 { bottom: 45%; left: 73.5%; }
    #btn65 { bottom: 37%; left: 23%; }
    #btn66 { bottom: 32.2%; left: 24.5%; }
    #btn67 { bottom: 32.6%; left: 28.3%; }
  }