/* ===========================
   Header fijo + Navbar
   =========================== */

/* Alturas controladas por variables */
:root{
  --header-height: 160px;
  --header-logo-height: 64px;
  --header-offset: var(--header-height);
}

/* ====== Topbar ====== */
.header-topbar {
  background-color: var(--color-primary);
  height: 40px;
  font-size: 0.9rem;
}

/* ====== Header FIXED (no crece) ====== */
.site-header{
  position: fixed; left: 0; right: 0; top: 0;
  height: var(--header-height);
  z-index: 1080;
  display: flex;
  flex-direction: column;
  overflow: visible;
  background: transparent;
  backdrop-filter: saturate(120%) blur(6px);
  -webkit-backdrop-filter: saturate(120%) blur(6px);
  box-shadow:
    0 14px 28px rgba(0,0,0,.34),
    0 3px 6px rgba(0,0,0,.18),
    0 1px 0 rgba(255,255,255,.06) inset;
}

/* Compensación */
body{ padding-top: var(--header-offset, 160px); }

/* ====== Logo + partículas ====== */
.header-logo{
  position: relative; z-index: 1;
  flex: 0 0 var(--header-logo-height); min-height: 0;
  padding: .5rem 0;
  display: flex; justify-content: center; align-items: center;
  background: var(--color-bg);
  border-bottom: 1px solid rgba(255,255,255,.1);
  overflow: hidden;
}
.header-logo .logo-img{
  width: clamp(160px, 44vw, 520px);
  aspect-ratio: 7 / 1; height: auto;
  background: var(--logo-header-url) no-repeat center / contain;
  display: block;
}
.particles-bg, .particles-bg canvas{ position:absolute; inset:0; z-index:0; pointer-events:none; }
.header-logo .logo-link{ display:inline-block; line-height:0; position:relative; z-index:1; cursor:pointer; }
.header-logo .logo-link:focus-visible{ outline:2px dashed rgba(255,255,255,.7); outline-offset:4px; }

/* ====== Navbar ====== */
.nav-bar-custom{
  flex: 0 0 auto;
  position: relative;
  background: linear-gradient(180deg, var(--color-primary-dark), var(--color-primary));
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.navbar-nav .nav-link{
  color: var(--home-white,#fff);
  padding: .65rem 1rem; border-radius: .375rem;
  transition: background-color .18s ease, color .18s ease, text-decoration-color .18s ease;
}
.navbar-nav .nav-link:hover, .navbar-nav .nav-link:focus{ color:#fff; text-decoration:underline; background: rgba(255,255,255,.06); }
.navbar-nav .nav-link:focus, .navbar-nav .nav-link:focus-visible,
.navbar-nav .dropdown-toggle:focus, .navbar-nav .dropdown-toggle:focus-visible{ outline:none !important; box-shadow:none !important; }
.nav-item.dropdown.show > .nav-link, .navbar-nav .nav-link[aria-expanded="true"]{ background: rgba(255,255,255,.10); color:#fff; }
.navbar-nav .nav-link.is-active{ background: rgba(255,255,255,.14); color:#fff; text-decoration:none; }
.dropdown-menu-custom .dropdown-item.is-active{ background: rgba(0,0,0,.55); color:#fff; }

/* Menús translúcidos */
.dropdown-menu-custom{
  background: rgba(0,0,0,.35);
  border: 1px solid rgba(255,255,255,.15);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  padding: .35rem; border-radius: .5rem; min-width: 12rem;
}
.dropdown-menu-custom .dropdown-item{ color:#fff; border-radius:.35rem; transition: background-color .16s ease, color .16s ease; }
.dropdown-menu-custom .dropdown-item:hover, .dropdown-menu-custom .dropdown-item:focus{ background: rgba(0,0,0,.45); color:#fff; }

/* 3er nivel abajo */
.dropdown-menu-custom .dropdown-submenu{ position: relative; }
.dropdown-menu-custom .dropdown-submenu > .dropdown-toggle::after{ margin-left:.35rem; }
.dropdown-menu-custom .dropdown-submenu > .dropdown-menu{
  position: absolute; left: 0; top: 100%; margin-top: .35rem; margin-left: 0;
  min-width: 12rem; border-radius: .5rem; transform: none !important;
}
@media (max-width: 991.98px){
  .dropdown-menu-custom .dropdown-submenu > .dropdown-menu{
    position: static; float: none; display: block; margin: .25rem 0 .5rem; transform: none !important;
  }
}

/* Toggler */
.navbar-toggler{ position:relative; overflow:hidden; border:1px solid rgba(255,255,255,.3); color:#fff; }
.navbar-toggler::before{ content:""; position:absolute; inset:0; transform:scale(0); background: rgba(255,255,255,.15); transition: transform .2s ease; }
.navbar-toggler:hover::before{ transform: scale(1); }
.navbar-toggler i{ font-size:1.5rem; position:relative; z-index:1; transition: transform .2s, font-weight .2s; }
.navbar-toggler:hover i{ transform: scale(1.1); font-weight:700; }
.navbar-toggler:active{ transform: scale(0.95); }
.navbar-toggler:focus{ outline:none; box-shadow:none; }

/* Responsive */
@media (max-width: 576px){ .header-logo{ padding: .5rem 0; } }

/* ===========================
   SOLO: Barra de bienvenida unificada
   =========================== */
:root{
  /* 🔹 AHORA: azul del degradado usa --color-primary */
  --welcome-top-color: var(--color-primary, #1d3b5b);
  --welcome-mid-color: var(--color-secondary-600, #5b6066);
}

.cth-welcome .cth-welcome__bar{
  display:flex; align-items:center; justify-content:center;
  min-height: clamp(72px, 10vw, 140px);
  background: linear-gradient(
    to bottom,
    var(--welcome-top-color) 0 55%,
    var(--welcome-mid-color) 55% 100%
  );
  border-top-left-radius: 12px;
  border-top-right-radius: 12px;
}

.cth-welcome .cth-welcome__center{
  display:flex; align-items:center; justify-content:center;
  gap: clamp(.5rem, 1vw, 1rem); margin:0 auto; text-align:center;
}

.cth-welcome .cth-welcome__title{ margin:0; line-height:1.1; }

/* =========================
   Navbar CTH (solo en header)
   ========================= */

/* Fondo y sombra del bar (respeta tu paleta) */
header .navbar,
#header .navbar,
.site-header .navbar{
  min-height: 54px;
  background: linear-gradient(180deg, var(--color-primary), #14243f);
  box-shadow: 0 6px 14px rgba(0,0,0,.18);
  border: 0;
}

/* Centrar el grupo de enlaces en desktop */
header .navbar .navbar-collapse,
#header .navbar .navbar-collapse,
.site-header .navbar .navbar-collapse{
  justify-content: center !important;
}

/* Enlaces: usar flex + gap para separar los ítems */
header .navbar .navbar-nav,
#header .navbar .navbar-nav,
.site-header .navbar .navbar-nav{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px;                 /* separa los enlaces (evita que se junten) */
  margin: 0;                 /* elimina márgenes heredados */
  padding: 0;
}

/* Estilo de enlace: consistente, sin perder Bootstrap */
header .navbar .nav-link,
#header .navbar .nav-link,
.site-header .navbar .nav-link{
  color: #fff;
  font-weight: 600;
  white-space: nowrap;       /* evita cortes raros */
  padding: .55rem 0 !important; /* altura uniforme */
  line-height: 1;
  text-shadow: 0 1px 0 rgba(0,0,0,.15);
}

header .navbar .nav-link:hover,
header .navbar .nav-link:focus{
  opacity: .92;
}

/* Dropdown: ligera separación visual del bar */
header .navbar .dropdown-menu{
  margin-top: .35rem;
}

/* Responsive: en móvil, dejamos que el colapso apile los ítems sin gap extra */
@media (max-width: 991.98px){
  header .navbar .navbar-nav,
  #header .navbar .navbar-nav,
  .site-header .navbar .navbar-nav{
    gap: 0;
  }
  header .navbar .nav-link{
    padding: .55rem 1rem !important; /* “tap target” cómodo */
  }
}
