 body {
     font-family: 'Raleway', sans-serif;
     background-color: #050505;
     color: #ffffff;
     margin: 0;
     padding: 0;
     overflow-x: hidden;
 }

 /* --- ESTILOS COMPARTIDOS --- */
 .mobile-link-hover {
     position: relative;
     display: inline-block;
 }

 .mobile-link-hover::after {
     content: '';
     position: absolute;
     width: 0;
     height: 2px;
     bottom: -2px;
     left: 0;
     background-color: #FF0000;
     transition: width 0.3s ease;
 }

 .mobile-link-hover:hover::after {
     width: 100%;
 }

 /* --- ESTILOS ESPECÍFICOS DETALLE --- */
 .spec-item {
     border-bottom: 1px solid rgba(255, 255, 255, 0.1);
     padding-bottom: 1rem;
     margin-bottom: 1rem;
 }

 .gallery-img {
     transition: transform 0.7s cubic-bezier(0.25, 1, 0.5, 1), filter 0.5s ease;
     width: 100%;
     height: 100%;
     object-fit: cover;
     filter: grayscale(20%);
 }

 .gallery-item:hover .gallery-img {
     transform: scale(1.05);
     filter: grayscale(0%);
 }

 .gallery-item {
     overflow: hidden;
     position: relative;
 }

 /* --- ESTILOS HOTSPOTS MEJORADOS --- */
 .hotspot-container {
     position: relative;
     width: 100%;
     height: 100%;
     overflow: hidden;
 }

 .hotspot-point {
     position: absolute;
     width: 24px;
     /* Un poco más grandes para móvil */
     height: 24px;
     background-color: #FF0000;
     border-radius: 50%;
     cursor: pointer;
     z-index: 20;
     box-shadow: 0 0 0 0 rgba(255, 0, 0, 0.7);
     animation: pulse-red 2s infinite;
     transition: transform 0.3s ease;
     /* Centrar el punto exacto */
     transform: translate(-50%, -50%);
 }

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

 .hotspot-point::after {
     content: '+';
     position: absolute;
     top: 50%;
     left: 50%;
     transform: translate(-50%, -50%);
     color: white;
     font-size: 16px;
     font-weight: bold;
 }

 @keyframes pulse-red {
     0% {
         box-shadow: 0 0 0 0 rgba(255, 0, 0, 0.7);
     }

     70% {
         box-shadow: 0 0 0 15px rgba(255, 0, 0, 0);
     }

     100% {
         box-shadow: 0 0 0 0 rgba(255, 0, 0, 0);
     }
 }

 /* Estilo mejorado para la caja de info */
 .hotspot-info {
     position: absolute;
     width: 280px;
     max-width: 90vw;
     /* Responsive: no más ancho que la pantalla */
     background-color: rgba(10, 10, 10, 0.95);
     border: 1px solid rgba(255, 255, 255, 0.2);
     border-left: 3px solid #FF0000;
     padding: 1.5rem;
     z-index: 30;
     opacity: 0;
     visibility: hidden;
     transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
     backdrop-filter: blur(10px);
     pointer-events: none;
     /* Click through when hidden */
 }

 /* Posicionamiento por defecto para Desktop (se sobrescribe inline o por clases) */
 .hotspot-info.active {
     opacity: 1;
     visibility: visible;
     pointer-events: auto;
     transform: translateY(0);
 }

 /* Tabs de navegación Passivhaus */
 .ph-tab {
     cursor: pointer;
     transition: all 0.3s ease;
     opacity: 0.6;
     border-bottom: 2px solid transparent;
 }

 .ph-tab:hover {
     opacity: 1;
 }

 .ph-tab.active {
     opacity: 1;
     border-bottom: 2px solid #FF0000;
     color: #ffffff;
 }

 /* --- ESTILOS ACORDEÓN EVOLUCIÓN --- */
 .evo-card {
     position: relative;
     flex: 1;
     overflow: hidden;
     cursor: pointer;
     transition: flex 0.7s cubic-bezier(0.25, 1, 0.5, 1);
     border: 1px solid rgba(255, 255, 255, 0.1);
 }

 .evo-card.active {
     flex: 5;
 }

 @media (max-width: 1024px) {
     .evo-card {
         min-height: 80px;
     }

     .evo-card.active {
         flex: 6;
     }
 }

 .evo-content {
     opacity: 0;
     transform: translateY(20px);
     transition: all 0.5s ease 0.2s;
 }

 .evo-card.active .evo-content {
     opacity: 1;
     transform: translateY(0);
 }

 .evo-overlay {
     background: linear-gradient(to top, rgba(0, 0, 0, 0.95) 0%, rgba(0, 0, 0, 0.2) 60%, rgba(0, 0, 0, 0.4) 100%);
     transition: background 0.5s ease;
 }

 .evo-card:not(.active):hover .evo-overlay {
     background: rgba(0, 0, 0, 0.3);
 }