header { position:fixed; top:0; left:0; width:100%; z-index:400; background:rgba(0,105,204,1); transition:all .2s linear; padding:1.8rem 0; }
header.cabecera-reducida { padding:.9rem 0; box-shadow:0 2px 16px rgba(0,0,0,.5); }
#cabecera { display:flex; align-items:center; justify-content:space-between; width:92%; max-width:1300px; margin:0 auto; height:3.4rem; }

#cabecera .logo-link { display:flex; align-items:center; flex-shrink:0; text-decoration:none; }
#cabecera .logo-link img { height:44px; width:auto; display:block; transition:height .2s; }
header.cabecera-reducida #cabecera .logo-link img { height:36px; }

#cabecera .nav-desktop { display:flex; align-items:center; gap:.2rem; }
#cabecera .nav-desktop a { color:rgba(255,255,255,.9); font-size:.9rem; font-weight:500; padding:.5rem 1rem; border-radius:8px; text-decoration:none; white-space:nowrap; transition:background .2s; }
#cabecera .nav-desktop a:hover { background:rgba(255,255,255,.12); color:white; }
#cabecera .nav-desktop .btn-contacto { background:#C9A84C; color:#fff !important; font-weight:700; border-radius:50px; padding:.5rem 1.3rem; }
#cabecera .nav-desktop .btn-contacto:hover { background:#E8C96D; }
#cabecera .nav-desktop .btn-login { background:rgba(255,255,255,.15); color:white !important; border:1px solid rgba(255,255,255,.4); border-radius:50px; padding:.45rem 1.1rem; font-size:.85rem; }
#cabecera .nav-desktop .btn-login:hover { background:rgba(255,255,255,.25); }
#cabecera .nav-desktop .btn-registro { background:white; color:var(--navy) !important; border-radius:50px; padding:.45rem 1.1rem; font-size:.85rem; font-weight:700; }
#cabecera .nav-desktop .btn-registro:hover { background:#f0f6ff; }
.nav-dropdown-wrapper { position:relative; }
.nav-dropdown-btn { display:flex; align-items:center; gap:.3rem; color:rgba(255,255,255,.9); font-size:.9rem; font-weight:500; padding:.5rem 1rem; border-radius:8px; text-decoration:none; cursor:pointer; background:none; border:none; white-space:nowrap; transition:background .2s; }
.nav-dropdown-btn:hover { background:rgba(255,255,255,.12); color:white; }
.nav-dropdown-btn svg { transition:transform .2s; }
.nav-dropdown-wrapper.open .nav-dropdown-btn svg { transform:rotate(180deg); }
.nav-dropdown-menu { position:absolute; top:calc(100% + .5rem); left:0; background:white; border-radius:12px; box-shadow:0 8px 32px rgba(0,0,0,.15); min-width:190px; padding:.4rem 0; display:none; z-index:500; }
.nav-dropdown-menu a { display:flex; align-items:center; gap:.6rem; padding:.65rem 1.1rem; color:#333 !important; font-size:.88rem; text-decoration:none; transition:background .15s; background:transparent !important; }
.nav-dropdown-menu a:hover { background:#f5f5f5 !important; }
.nav-dropdown-menu .dd-icon { font-size:1rem; flex-shrink:0; }
.nav-dropdown-wrapper.open .nav-dropdown-menu { display:block; }
.user-menu-wrapper { position:relative; }
.user-menu-btn { display:flex; align-items:center; gap:.5rem; background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.3); border-radius:50px; padding:.4rem 1rem; cursor:pointer; color:white; font-size:.88rem; font-weight:600; }
.user-menu-btn:hover { background:rgba(255,255,255,.25); }
.user-avatar-sm { width:28px; height:28px; border-radius:50%; background:rgba(255,255,255,.3); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.8rem; flex-shrink:0; }
.user-dropdown { position:absolute; top:calc(100% + .5rem); right:0; background:white; border-radius:12px; box-shadow:0 8px 32px rgba(0,0,0,.15); min-width:180px; padding:.4rem 0; display:none; z-index:500; }
.user-dropdown a { display:block; padding:.6rem 1.1rem; color:#333 !important; font-size:.88rem; text-decoration:none; transition:background .15s; background:transparent !important; }
.user-dropdown a:hover { background:#f5f5f5 !important; }
.user-dropdown .dropdown-divider { border-top:1px solid #eee; margin:.3rem 0; }
.user-dropdown .dropdown-logout { color:#c0392b !important; font-weight:600; }
.user-menu-wrapper.open .user-dropdown { display:block; }

#hamburger-btn {
    display: none;
    align-items: center;
    justify-content: center;
    width: 42px; height: 42px;
    background: rgba(255,255,255,.18);
    border: 1.5px solid rgba(255,255,255,.35);
    border-radius: 12px;
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
    transition: background .2s, transform .15s;
}
#hamburger-btn:hover  { background: rgba(255,255,255,.28); }
#hamburger-btn:active { transform: scale(.93); }
#hamburger-btn svg    { display: block; transition: opacity .2s; }

#nav-mobile { flex-direction:column; position:fixed; top:0; left:0; right:0; background:rgba(0,60,130,.98); z-index:399; padding:80px 1.5rem 2rem; gap:.3rem; box-shadow:0 8px 24px rgba(0,0,0,.4); }
#nav-mobile a { display:block; color:rgba(255,255,255,.9) !important; font-size:1.05rem; font-weight:500; padding:.85rem 1rem; border-bottom:1px solid rgba(255,255,255,.1); border-radius:6px; text-decoration:none; }
#nav-mobile a:last-child { border-bottom:none; }
#nav-mobile a:hover { background:rgba(255,255,255,.1); }
#nav-mobile .btn-contacto-m { background:#C9A84C; color:#fff !important; text-align:center; font-weight:700; border-radius:50px; margin-top:.5rem; border-bottom:none !important; }

@media(max-width:900px){
    #cabecera .nav-desktop { display:none; }
    #hamburger-btn { display:flex; }
}
@media(max-width:768px){
    #cabecera { height:58px; padding:0 1rem; }
    #cabecera .logo-link img { height:36px; }
    #nav-mobile { padding:100px 1.2rem 2rem; overflow-y:auto; max-height:100dvh; gap:.4rem; }
    #nav-mobile a { padding:.9rem 1rem; font-size:1rem; }
}
@media(max-width:480px){
    header { padding:.85rem 0; }
    #cabecera { height:52px; padding:0 1rem; }
    #cabecera .logo-link img { height:34px; }
    #hamburger-btn { width:40px; height:40px; }
    #nav-mobile { padding:90px 1rem 2rem; gap:.35rem; }
    #nav-mobile a { padding:.85rem .9rem; font-size:.95rem; }
    .user-dropdown { right:0; min-width:160px; }
}
