/*
 * NORTE · componentes compartidos por todas las páginas: cabecera con navegación mínima (.sh) y pie negro (.sf).
 * Se carga después de norte-ds.css y antes de las hojas específicas.
 * Todo va anidado bajo .sh / .sf para que las hojas heredadas no pisen su tipografía.
 *
 * Lenguaje: cabecera blanca con enlaces en píldora; el violeta solo aparece en el punto de marca y el foco.
 */

/* ═════════════════════════ CABECERA ═════════════════════════ */
.sh{position:sticky;top:0;z-index:80;background:#fff;color:var(--n-text);border-bottom:1px solid var(--n-line);font-family:var(--font);font-size:15px;line-height:1.4;view-transition-name:norte-header}
.sh *,.sh *::before,.sh *::after{box-sizing:border-box}
.sh a{text-decoration:none}
.sh__wrap{width:min(1320px,calc(100% - 48px));margin-inline:auto}

/* Barra principal */
.sh .sh__main{position:relative}
.sh .sh__main-in{display:flex;align-items:center;gap:20px;min-height:76px}
.sh .sh__nav{display:flex;align-items:center;gap:4px;margin-left:auto}
.sh .sh__link{display:inline-flex;align-items:center;padding:10px 18px;border-radius:var(--r-pill);font-family:var(--font-display);font-size:15px;font-weight:500;color:var(--n-text);white-space:nowrap;transition:background var(--t-base),color var(--t-base)}
.sh .sh__link:hover{background:var(--n-mist)}
.sh .sh__link[aria-current=page]{background:var(--n-mist-2)}
.sh .sh__link:focus-visible,.sh .sh__login:focus-visible{outline:2px solid var(--n-accent);outline-offset:2px}
.sh .sh__actions{display:flex;align-items:center;gap:8px;margin-left:8px}
.sh .sh__actions .nds-btn{min-height:44px;padding:9px 22px;font-size:14px}
.sh .sh__login{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:9px 20px;border:1px solid var(--n-line-strong);border-radius:var(--r-pill);background:transparent;font-family:var(--font-display);font-size:14px;font-weight:500;color:var(--n-text);white-space:nowrap;transition:background var(--t-base),border-color var(--t-base)}
.sh .sh__login:hover{background:var(--n-mist);border-color:var(--n-text)}
.sh .sh__login i{font-size:12px;color:var(--n-text-3)}
.sh .sh__burger{display:none;place-items:center;width:44px;height:44px;border:1px solid var(--n-line-strong);border-radius:50%;background:#fff;color:var(--n-text);font-size:20px;cursor:pointer;transition:background var(--t-base)}
.sh .sh__burger:hover{background:var(--n-mist)}
.sh .sh__menu-foot{display:none}

/* Redes sociales: un único componente para cabecera, menú móvil e intranet */
.soc{display:flex;align-items:center;gap:6px;margin:0;padding:0;list-style:none}
.soc__link{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;color:var(--n-text-2);transition:color var(--t-base),background var(--t-base)}
.soc__link:hover{color:var(--n-text);background:var(--n-mist)}
.soc__link:focus-visible{outline:2px solid var(--n-accent);outline-offset:2px}
/* Barra superior de la intranet: redes e indicador de estado en una sola línea */
.intranet-audience .intranet-audience-right{display:inline-flex;align-items:center;gap:12px}

/* Marca */
/* Marca */
.sh-brand{display:flex;align-items:center;gap:10px;flex:none;color:var(--n-text);font-size:20px;font-weight:600;letter-spacing:-.02em;line-height:1}
.sh-brand__mark{width:38px;height:38px;border-radius:50%;overflow:hidden;flex:none}
.sh-brand__mark img{display:block;width:100%;height:100%}
.sh-brand small{display:block;margin-top:3px;font-size:10px;font-weight:500;letter-spacing:.14em;color:var(--n-text-3)}
.sh-brand i{font-style:normal;color:var(--n-accent)}

/* ═════════════════════════ PIE ═════════════════════════ */
.sf{position:relative;isolation:isolate;overflow:hidden;background:var(--n-ink);color:#fff;font-family:var(--font);font-size:15px;line-height:1.55}
.sf::before{content:none}
.sf::after{content:"";position:absolute;z-index:-1;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 70%);mask-image:linear-gradient(180deg,#000,transparent 70%)}
.sf *,.sf *::before,.sf *::after{box-sizing:border-box}
.sf a{color:inherit;text-decoration:none}
.sf__wrap{width:min(1200px,calc(100% - 64px));margin-inline:auto}
.sf .sf__grid{display:grid;grid-template-columns:1.3fr .8fr .8fr 1.2fr;gap:48px;padding:72px 0 40px}
.sf .sf__brand .sh-brand{color:#fff}
.sf .sf__brand .sh-brand small{color:rgba(255,255,255,.55)}
.sf .sf__brand .sh-brand i{color:var(--n-accent-soft,#c79bf0)}
.sf .sf__brand p{margin:18px 0 0;max-width:300px;font-size:14px;color:rgba(255,255,255,.72)}
.sf .sf__tag{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:7px 14px;border-radius:var(--r-pill);background:rgba(255,255,255,.08);font-size:13px;font-weight:500}
.sf .sf__tag i{color:#fff}
.sf .sf__col h2{margin:0 0 18px;font-size:13px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:#fff}
.sf .sf__list{display:flex;flex-direction:column;gap:11px;margin:0;padding:0;list-style:none}
.sf .sf__link{position:relative;display:inline-flex;align-items:center;gap:8px;font-size:15px;color:rgba(255,255,255,.76);transition:color var(--t-base),transform var(--t-base) var(--ease-out)}
.sf .sf__link::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:#fff;transform:scaleX(0);transform-origin:left;transition:transform var(--t-base) var(--ease-out)}
.sf .sf__link:hover,.sf .sf__link:focus-visible{color:#fff;transform:translateX(3px)}
.sf .sf__link:hover::after,.sf .sf__link:focus-visible::after{transform:scaleX(1)}
.sf .sf__link:focus-visible,.sf .sf__bar a:focus-visible,.sf .sf__channel:focus-visible{outline:2px solid #fff;outline-offset:3px;border-radius:4px}
/* Contacto */
.sf .sf__channels{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none}
.sf .sf__channel{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--r-sm);background:rgba(255,255,255,.06);transition:background var(--t-base),border-color var(--t-base)}
.sf .sf__channel:hover,.sf .sf__channel:focus-visible{background:rgba(255,255,255,.12)}
.sf .sf__ico{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:var(--r-sm);background:rgba(255,255,255,.1);color:#fff}
.sf .sf__channel b{display:block;font-size:14px;font-weight:600}
.sf .sf__channel small{display:block;font-size:13px;color:rgba(255,255,255,.65);overflow-wrap:anywhere}
.sf .sf__hours{display:flex;align-items:flex-start;gap:10px;margin:16px 0 0;font-size:14px;color:rgba(255,255,255,.72)}
.sf .sf__hours i{margin-top:3px;color:rgba(255,255,255,.6)}
.sf .sf__hours b{display:block;color:#fff;font-weight:500}
/* Información final y aviso */
.sf .sf__notice{display:flex;align-items:flex-start;gap:14px;margin-bottom:32px;padding:18px 22px;border-radius:var(--r-md);background:rgba(255,255,255,.06)}
.sf .sf__notice i{flex:none;margin-top:2px;font-size:20px;color:#fff}
.sf .sf__notice p{margin:0;font-size:15px;line-height:1.6;color:rgba(255,255,255,.92)}
.sf .sf__bar{border-top:1px solid var(--n-line-dark)}
.sf .sf__bar-in{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;min-height:68px;font-size:14px;color:rgba(255,255,255,.62)}
.sf .sf__bar nav{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.sf .sf__bar a{color:rgba(255,255,255,.82);transition:color var(--t-base)}
.sf .sf__bar a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}

/* ═════════════════════════ RESPONSIVE ═════════════════════════ */
/* Tablet y móvil: el menú pasa a hamburguesa */
@media(max-width:900px){
  .sh .sh__burger{display:grid;margin-left:4px}
  .sh .sh__actions{margin-left:auto}
  .sh .sh__actions .sh__login{display:none}
  .sh .sh__nav{position:absolute;top:100%;left:0;right:0;display:none;flex-direction:column;align-items:stretch;gap:0;margin:0;max-height:calc(100dvh - 90px);overflow:auto;padding:8px 24px 28px;background:#fff;border-top:1px solid var(--n-line)}
  .sh.is-menu-open .sh__nav{display:flex;animation:nds-pop .28s var(--ease-out)}
  .sh .sh__link{justify-content:space-between;padding:16px 4px;border-radius:0;border-bottom:1px solid var(--n-line);font-size:18px}
  .sh .sh__link:hover,.sh .sh__link[aria-current=page]{background:transparent}
  .sh .sh__link[aria-current=page]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
  .sh .sh__menu-foot{display:flex;flex-direction:column;gap:14px;padding-top:20px}
  .sh .sh__menu-foot .nds-btn{width:100%;min-height:48px}
}
@media(max-width:1000px){
  .sf .sf__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;padding-top:56px}
}
@media(max-width:700px){
  .sh__wrap{width:calc(100% - 32px)}
  .sh .sh__main-in{gap:10px;min-height:68px}
  .sh-brand{font-size:18px}.sh-brand__mark{width:34px;height:34px}
  .sh .sh__actions .nds-btn{min-height:44px;padding:9px 18px}
  .sh .sh__nav{padding:4px 16px 24px}
  .sf__wrap{width:calc(100% - 32px)}
  .sf .sf__grid{grid-template-columns:1fr;gap:36px;padding:48px 0 32px}
  .sf .sf__bar-in{flex-direction:column;align-items:flex-start;padding-block:18px}
}
@media(prefers-reduced-motion:reduce){
  .sh.is-menu-open .sh__nav{animation:none}
  .sf .sf__link,.sf .sf__channel{transition:none}
}

/* ═════════════════════════ CONTRASEÑAS Y ENLACES DE ACCESO ═════════════════════════ */
/* ═════════════════════════ REQUISITOS DE CONTRASEÑA ═════════════════════════ */
.pw-rules{display:grid;gap:6px;margin:2px 0 14px;padding:12px 14px;list-style:none;border-radius:var(--r-sm,8px);background:var(--n-mist,#f5f5f6);border:1px solid var(--n-line,rgba(24,24,27,.12));font-size:13px;line-height:1.35}
.pw-rules li{display:flex;align-items:center;gap:8px;color:var(--n-text-2,#55555c);transition:color .2s}
.pw-rules li i{flex:none;font-size:14px}
.pw-rules li.is-ok{color:var(--n-success,#1a7f4b)}
.pw-rules li.is-bad{color:var(--n-danger,#b3261e)}
.pw-match{margin:-6px 0 12px;font-size:13px;line-height:1.35}
.pw-match.is-ok{color:var(--n-success,#1a7f4b)}
.pw-match.is-bad{color:var(--n-danger,#b3261e)}
.auth-aux-link{display:inline-block;margin:-4px 0 14px;font-size:14px;font-weight:500;color:inherit;text-decoration:underline;text-decoration-color:var(--n-line,rgba(24,24,27,.28));text-underline-offset:3px}
.auth-aux-link:hover{color:var(--n-accent,#820ad1);text-decoration-color:currentColor}
