/** * 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 STICKY CON ANIMACIONES ============================================ */ .navbar { position: sticky; top: 0; z-index: 1030; transition: all 0.3s ease; box-shadow: 0 2px 4px rgba(0,0,0,0.08); } .navbar.scrolled { box-shadow: 0 4px 12px rgba(0,0,0,0.15); background-color: #fff !important; } /* Gradient underline animation en hover */ .nav-link { position: relative; transition: all 0.3s ease; padding: 0.5rem 1rem !important; font-weight: 500; } .nav-link::after { content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%) scaleX(0); width: 80%; height: 2px; background: linear-gradient(90deg, #0d6efd, #0dcaf0); transition: transform 0.3s ease; } .nav-link:hover { color: #0d6efd !important; background-color: rgba(13, 110, 253, 0.05); border-radius: 4px; transform: translateY(-2px); } .nav-link:hover::after { transform: translateX(-50%) scaleX(1); } /* Active nav link */ .nav-link.active, .nav-item.current-menu-item > .nav-link { color: #0d6efd !important; font-weight: 600; } .nav-link.active::after, .nav-item.current-menu-item > .nav-link::after { transform: translateX(-50%) scaleX(1); } /* Dropdown animations */ .dropdown-menu { border: none; box-shadow: 0 8px 24px rgba(0,0,0,0.12); 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 { padding: 0.75rem 1.5rem; transition: all 0.2s ease; font-weight: 400; } .dropdown-item:hover, .dropdown-item:focus { background: linear-gradient(90deg, rgba(13, 110, 253, 0.1), rgba(13, 202, 240, 0.1)); color: #0d6efd; transform: translateX(5px); } .dropdown-item.active { background-color: rgba(13, 110, 253, 0.1); color: #0d6efd; } /* Navbar Brand */ .navbar-brand { font-weight: 700; font-size: 1.5rem; color: #1a1a1a; transition: all 0.3s ease; } .navbar-brand:hover { color: #0d6efd; transform: scale(1.05); } /* Navbar Toggler (Hamburger) */ .navbar-toggler { border: 2px solid rgba(0, 0, 0, 0.1); padding: 0.5rem 0.75rem; transition: all 0.3s ease; } .navbar-toggler:hover { border-color: #0d6efd; background-color: rgba(13, 110, 253, 0.05); } .navbar-toggler:focus { box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } /* Mobile Menu Styles */ @media (max-width: 991px) { .navbar-collapse { margin-top: 1rem; padding: 1rem 0; border-top: 1px solid rgba(0, 0, 0, 0.1); } .nav-link { padding: 0.75rem 1rem !important; } .nav-link::after { display: none; } .dropdown-menu { border: none; box-shadow: none; animation: none; background-color: rgba(0, 0, 0, 0.02); 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; }