/** * Custom Styles - APUS Theme * * Estilos personalizados según el template del cliente. * Incluye: Navbar sticky, animaciones, y componentes específicos. * * @package Apus_Theme * @since 1.0.0 */ /* ========================================================================== NAVBAR - Colores RDash (Issue #41) ========================================================================== */ /* Navbar background - Azul Navy Oscuro */ .navbar { position: sticky; top: 0; z-index: 1030; background-color: #0E2337 !important; border-bottom: 1px solid rgba(97, 199, 205, 0.1); transition: all 0.3s ease; } /* Sticky navbar - mantiene mismo color */ .navbar.scrolled, .navbar.navbar-sticky { background-color: #0E2337 !important; box-shadow: 0 2px 8px rgba(14, 35, 55, 0.4); } /* Nav links - color blanco */ .navbar-nav .nav-link { position: relative; color: #ffffff !important; transition: all 0.3s ease; padding: 0.5rem 1rem !important; font-weight: 500; } /* Hover y focus - turquesa */ .navbar-nav .nav-link:hover, .navbar-nav .nav-link:focus { color: #61c7cd !important; background-color: rgba(97, 199, 205, 0.1); border-radius: 4px; transform: translateY(-2px); } /* Active state - turquesa */ .navbar-nav .nav-link.active, .navbar-nav .nav-item.current-menu-item > .nav-link { color: #61c7cd !important; font-weight: 600; } /* Underline animation - turquesa */ .navbar-nav .nav-link::after { content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%) scaleX(0); width: 80%; height: 2px; background: linear-gradient(90deg, #61c7cd 0%, #4db8c4 100%); transition: transform 0.3s ease; } .navbar-nav .nav-link:hover::after, .navbar-nav .nav-link.active::after, .navbar-nav .nav-item.current-menu-item > .nav-link::after { transform: translateX(-50%) scaleX(1); } /* Dropdown menus - fondo oscuro */ .dropdown-menu { background-color: #0E2337; border: 1px solid rgba(97, 199, 205, 0.2); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3); border-radius: 8px; animation: slideDown 0.3s ease; margin-top: 0.5rem; } @keyframes slideDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } .dropdown-item { color: #ffffff; padding: 0.75rem 1.5rem; transition: all 0.3s ease; font-weight: 400; } .dropdown-item:hover, .dropdown-item:focus { background-color: rgba(97, 199, 205, 0.1); color: #61c7cd; transform: translateX(5px); } .dropdown-item.active { background-color: rgba(97, 199, 205, 0.15); color: #61c7cd; } /* Navbar Brand - contraste en blanco */ .navbar-brand { font-weight: 700; font-size: 1.5rem; color: #ffffff; transition: all 0.3s ease; } .navbar-brand:hover { color: #61c7cd; transform: scale(1.05); } /* Logo - ajuste de brillo para mejor contraste */ .navbar-brand img { filter: brightness(1.2); transition: filter 0.3s ease; } .navbar-brand:hover img { filter: brightness(1.3); } /* Hamburger icon - visible en blanco */ .navbar-toggler { border-color: rgba(255, 255, 255, 0.5); padding: 0.5rem 0.75rem; transition: all 0.3s ease; } .navbar-toggler:hover { border-color: #61c7cd; background-color: rgba(97, 199, 205, 0.1); } .navbar-toggler:focus { box-shadow: 0 0 0 0.25rem rgba(97, 199, 205, 0.25); } .navbar-toggler-icon { filter: invert(1); /* Convierte el icono a blanco */ } /* Search form en navbar (si existe) */ .navbar .search-form input { background-color: rgba(255, 255, 255, 0.1); border-color: rgba(255, 255, 255, 0.3); color: #ffffff; } .navbar .search-form input::placeholder { color: rgba(255, 255, 255, 0.6); } .navbar .search-form input:focus { background-color: rgba(255, 255, 255, 0.15); border-color: #61c7cd; } /* Mobile menu - fondo oscuro */ @media (max-width: 991px) { .navbar-collapse { background-color: #0E2337; padding: 1rem; margin-top: 0.5rem; border-radius: 8px; border: 1px solid rgba(97, 199, 205, 0.2); } .nav-link { padding: 0.75rem 1rem !important; } .nav-link::after { display: none; } .dropdown-menu { border: none; box-shadow: none; animation: none; background-color: rgba(97, 199, 205, 0.05); margin-left: 1rem; padding: 0.5rem 0; } .dropdown-item { padding: 0.5rem 1rem; } .dropdown-item:hover { transform: none; } } /* ============================================ SKIP LINK (Accesibilidad) ============================================ */ .skip-link.screen-reader-text { position: absolute; left: -9999px; top: 2.5em; z-index: 100000; padding: 1em 1.5em; background-color: #0d6efd; color: #fff; text-decoration: none; font-size: 0.875rem; font-weight: 600; border-radius: 4px; } .skip-link.screen-reader-text:focus { left: 6px; outline: 3px solid rgba(13, 110, 253, 0.5); outline-offset: 2px; } /* ============================================ SITE CONTENT SPACING ============================================ */ .site-content { margin-top: 2rem; margin-bottom: 2rem; } @media (max-width: 767px) { .site-content { margin-top: 1rem; margin-bottom: 1rem; } } /* ============================================ WORDPRESS SPECIFIC CLASSES ============================================ */ /* WordPress Menu Classes */ .menu-item { position: relative; } .menu-item-has-children > .nav-link { padding-right: 1.5rem !important; } /* Submenu Indicator (si se usan íconos) */ .menu-item-has-children > .nav-link::before { content: ''; position: absolute; right: 0.5rem; top: 50%; transform: translateY(-50%); width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 5px solid currentColor; opacity: 0.6; } /* ============================================ UTILITY CLASSES ============================================ */ /* Screen Reader Only Text */ .screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; } .screen-reader-text:focus { background-color: #f1f1f1; border-radius: 3px; box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); clip: auto !important; clip-path: none; color: #21759b; display: block; font-size: 0.875rem; font-weight: 700; height: auto; left: 5px; line-height: normal; padding: 15px 23px 14px; text-decoration: none; top: 5px; width: auto; z-index: 100000; }