/* ===== GLOBAL STYLES ===== */
/* Transiciones específicas en lugar de aplicar a todos los elementos */
a, button, input, textarea, select,
.btn, .card, .modal, .dropdown-menu,
.form-control, .form-select, .form-check-input,
.badge, .alert, .progress-bar,
.list-group-item, .nav-pills .nav-link,
.accordion-button, .offcanvas {
    transition: all 0.3s ease;
}

/* Excluir explícitamente elementos estructurales */
nav, .navbar, .navbar *, 
header, .header, .header *,
.container, .row, .col, .col-*,
body, html, main, section, article, aside {
    transition: none !important;
}

/* Excluir navbar de transiciones globales para prevenir animaciones durante la carga */
.navbar.menu,
.navbar.menu *,
.navbar.menu .container,
.navbar-brand,
.navbar-nav,
.nav-item,
.nav-link {
    transition: none !important;
}

/* Restaurar solo las transiciones necesarias para hover */
.navbar-nav .nav-link {
    transition: color 0.3s ease !important;
}

/* ===== FIXED HEADER STYLES ===== */
/* Fixed navigation bar that stays at the top during scroll */
.navbar.menu {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100vw !important;
    min-width: 100% !important;
    z-index: 1030 !important; /* Higher than Bootstrap's default z-index values */
    background-color: #ffffff !important;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-sizing: border-box !important;
    margin: 0 !important;
    overflow-x: hidden !important;
}

/* Ensure the navbar maintains its height and doesn't collapse */
.navbar.menu .container {
    max-width: 1000px !important;
    width: 100% !important;
    padding-left: 15px !important;
    padding-right: 15px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}

/* Centrar el título del header */
.navbar-brand {
    text-align: center !important;
    flex: 1 !important;
    display: flex !important;
    justify-content: center !important;
}

/* Adjust body padding to compensate for fixed header */
body {
    padding-top: 80px !important; /* Adjust based on actual navbar height */
}

/* Responsive adjustments for mobile devices */
@media (max-width: 991.98px) {
    body {
        padding-top: 70px !important; /* Slightly less padding on mobile */
    }
    
    .navbar.menu {
        padding: 0.5rem 0 !important;
    }
}

/* Ensure dropdown menus appear above other content */
.navbar .dropdown-menu {
    z-index: 1031 !important;
}



/* Preserve NES.css button styles - only exclude from custom cursor */

/* Global navigation active link styling - clean design for all screen sizes */
.navbar-nav .nav-link.active,
.navbar-nav .nav-link.active:hover,
.navbar-nav .nav-link.active:focus {
    color: #3A7A8C !important;
    background: transparent !important;
    background-color: transparent !important;
    border-radius: 4px;
}

/* Override any Bootstrap active states */
.navbar-light .navbar-nav .nav-link.active,
.navbar-light .navbar-nav .nav-link.active:hover,
.navbar-light .navbar-nav .nav-link.active:focus {
    color: #3A7A8C !important;
    background: transparent !important;
    background-color: transparent !important;
}

/* Page transition effects - ONLY for main content areas */
.main-content .page-transition,
.container .page-transition,
.content-area .page-transition {
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
}

.main-content .page-transition.loaded,
.container .page-transition.loaded,
.content-area .page-transition.loaded {
    opacity: 1;
}

/* Content enter animation - ONLY for specific content elements */
.main-content .content-enter,
.container .content-enter,
.content-area .content-enter,
.card .content-enter,
.section .content-enter {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
    animation: slideInUp 0.8s ease-out forwards;
}

/* Navbar and navigation elements - completely excluded */
.navbar, nav, #main-navbar, .menu,
.navbar *, nav *, #main-navbar *, .menu * {
    opacity: 1 !important;
    transition: none !important;
    animation: none !important;
    transform: none !important;
}

@keyframes slideInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Mejoras para la navegación */
.navbar-nav .nav-link {
    position: relative;
    transition: all 0.3s ease;
}

.navbar-nav .nav-link:hover {
    transform: translateY(-2px);
    color: #3A7A8C !important;
}

.navbar-nav .nav-link.active {
    color: #3A7A8C !important;
    font-weight: bold;
}

@keyframes expandWidth {
    from {
        width: 0;
    }
    to {
        width: 20px;
    }
}

/* ===== GLOBAL NAVBAR TOGGLER STYLES ===== */
/* Consistent hamburger menu button across all screen sizes */
.navbar-toggler {
    margin-left: auto;
    margin-right: 0 !important;
    padding: 4px 8px !important;
    border: 2px solid #6c757d !important;
    background: transparent !important;
    border-radius: 4px;
    transition: all 0.3s ease;
}

.navbar-toggler:hover {
    background: rgba(108, 117, 125, 0.1) !important;
    border-color: #495057 !important;
}

.navbar-toggler:focus {
    box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.25) !important;
    outline: none !important;
}

.navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28108, 117, 125, 1%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
    width: 1.5em;
    height: 1.5em;
}

/* Loading mejorado */
.top-loading-bar {
    background: linear-gradient(90deg, #3A7A8C, #2a5a6b, #3A7A8C);
    background-size: 200% 100%;
    animation: loading-progress 2s ease-in-out, shimmer 1.5s infinite;
}

@keyframes shimmer {
    0% {
        background-position: -200% 0;
    }
    100% {
        background-position: 200% 0;
    }
}

/* Hover effects para botones y enlaces - NES.css handles its own button styles */

/* Animaciones para el portfolio */
.portfolio-item {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.portfolio-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 16px rgba(0,0,0,0.1);
}

/* Floating Language Selector */
.floating-language-selector {
    position: fixed;
    bottom: 60px;
    left: 20px;
    z-index: 1000;
    transform: translateY(0);
}

.floating-language-selector .nes-btn {
    transition: all 0.3s ease;
}



/* Animation for the coin icon */
.floating-language-selector .nes-icon.coin {
    animation: float-coin 2s ease-in-out infinite;
}

/* NES Breadcrumb Styling - Override Bootstrap */
.nes-container .nes-breadcrumb {
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    list-style: none !important;
    border-radius: 0 !important;
}

.nes-container .nes-breadcrumb .breadcrumb-item {
    display: flex !important;
    align-items: center !important;
    margin-bottom: 0 !important;
}

.nes-container .nes-breadcrumb .breadcrumb-item + .breadcrumb-item::before {
    display: none !important;
}

.nes-container .nes-breadcrumb .breadcrumb-item:not(:last-child)::after {
    content: ">" !important;
    margin-left: 10px !important;
    color: #212529 !important;
    font-family: 'Press Start 2P', cursive !important;
    font-size: 8px !important;
    float: none !important;
}

/* .nes-btn in breadcrumbs uses native NES.css styles */

.nes-container .nes-breadcrumb .nes-btn:disabled {
    opacity: 1 !important;
    cursor: default !important;
}

.nes-container .nes-breadcrumb .nes-btn.is-primary {
    background-color: #209cee !important;
    border-color: #209cee !important;
    color: #fff !important;
}

.nes-container .nes-breadcrumb .nes-btn.is-error {
    background-color: #ff3860 !important;
    border-color: #ff3860 !important;
    color: #fff !important;
}

@keyframes float-coin {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-3px); }
}

/* ===== RESPONSIVE DESIGN: ONLY TWO VERSIONS ===== */
/* Desktop First - Default styles for desktop (>768px) */

/* Mobile Only - All mobile styles consolidated here */
@media (max-width: 768px) {
    .floating-language-selector {
        bottom: 100px; /* Moved higher to avoid being hidden by mobile browser UI */
        left: 15px;
        z-index: 9999; /* Higher z-index to ensure it's always visible */
    }
    
    /* Ensure navbar has proper spacing on mobile */
    .navbar {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }
    
    .navbar-brand {
        margin-right: 0 !important;
        padding-right: 10px !important;
    }
    
    /* Fix container spacing on mobile */
    .container {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }
    
    /* Fix mobile collapsed menu styling */
    .navbar-collapse {
        background: #fff;
        border: 2px solid #212529;
        border-radius: 8px;
        margin-top: 10px;
        padding: 15px;
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    }
    
    .navbar-nav .nav-link {
        font-family: 'Press Start 2P', cursive !important;
        font-size: 12px !important;
        color: #212529 !important;
        padding: 10px 0 !important;
        text-align: center;
        border-bottom: 1px solid #eee;
        margin-bottom: 5px;
    }
    
    .navbar-nav .nav-link:hover {
        color: #3A7A8C !important;
        background: #f8f9fa;
        border-radius: 4px;
    }
    
    .navbar-nav .nav-link.active {
         color: #3A7A8C !important;
         background: transparent !important;
         border-radius: 4px;
     }
     
     /* Hide About me and Portfolio buttons on mobile */
     #buttons-content {
         display: none !important;
     }
     
     /* Make breadcrumb/titles lighter on mobile */
     .display-4 {
         font-weight: 400 !important;
         font-size: 2rem !important;
     }
     
     h1.display-4 {
         font-weight: 400 !important;
         font-size: 2rem !important;
     }
     
     /* ===== BOOTSTRAP OVERRIDES FOR CONSISTENT MOBILE ===== */
     /* Force all columns to be full width on mobile */
     .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8,
     .col-md-6, .col-md-4, .col-md-8 {
         flex: 0 0 100% !important;
         max-width: 100% !important;
     }
     
     /* Ensure proper spacing between sections on mobile */
     .row {
         margin-bottom: 20px;
     }
     
     /* Adjust container padding for mobile */
     .container {
         padding-left: 15px !important;
         padding-right: 15px !important;
         max-width: 100% !important;
     }
     
     /* Mobile-specific text sizes */
     .display-4 {
         font-size: 1.8rem !important;
         line-height: 1.3 !important;
     }
     
     /* Ensure images are responsive on mobile */
     .img-fluid, .img-responsive {
         max-width: 100% !important;
         height: auto !important;
     }
 }

/* ===== DESKTOP STYLES (>768px) ===== */
@media (min-width: 769px) {
    /* Ensure desktop layout works properly */
    .container {
        max-width: 1140px;
        margin: 0 auto;
        padding-left: 15px;
        padding-right: 15px;
    }
    
    /* Desktop column layouts - restore Bootstrap behavior for desktop */
    .col-lg-4 {
        flex: 0 0 33.333333% !important;
        max-width: 33.333333% !important;
    }
    
    .col-lg-5 {
        flex: 0 0 41.666667% !important;
        max-width: 41.666667% !important;
    }
    
    .col-lg-6 {
        flex: 0 0 50% !important;
        max-width: 50% !important;
    }
    
    .col-lg-7 {
        flex: 0 0 58.333333% !important;
        max-width: 58.333333% !important;
    }
    
    .col-lg-8 {
        flex: 0 0 66.666667% !important;
        max-width: 66.666667% !important;
    }
    
    /* Ignore md breakpoints on desktop - treat them as lg */
    .col-md-6 {
        flex: 0 0 50% !important;
        max-width: 50% !important;
    }
    
    .col-md-4 {
        flex: 0 0 33.333333% !important;
        max-width: 33.333333% !important;
    }
    
    .col-md-8 {
        flex: 0 0 66.666667% !important;
        max-width: 66.666667% !important;
    }
    
    /* Desktop text sizes */
    .display-4 {
        font-size: 3.5rem !important;
        font-weight: 300 !important;
        line-height: 1.2 !important;
    }
 }

/* Scroll to Top Button */
.scroll-to-top {
    position: fixed;
    bottom: 60px;
    right: 20px;
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
}

.scroll-to-top.show {
    opacity: 1;
    visibility: visible;
}

/* Mobile styles for scroll to top */
@media (max-width: 768px) {
    .scroll-to-top {
        bottom: 100px;
        right: 15px;
    }
}
