/* =========================================================
   OIC CMS HEADER + LAYOUT (LIMPIO)
   - NO toca colores/tipografía
   - Sticky OK
   - Sin scroll horizontal (solo en secciones full-bleed)
========================================================= */

/* ---------- Layout (igual que tu inline) ---------- */
body.oic-skin{
  background-color: var(--oic-bg-soft);
  color: var(--oic-text);
}

body.oic-skin .main-content{
  padding-top: clamp(18px, 3vw, 34px);
  padding-bottom: clamp(18px, 3vw, 34px);
}

/* Footer genérico SOLO si existe .footer */
body.oic-skin .footer{
  padding: 2rem 0;
  background-color: #e9ecef;
  margin-top: 2rem;
  border-top: 1px solid var(--oic-border);
}

/* Guardrails (NO overflow en body/html) */
body.oic-skin img,
body.oic-skin svg,
body.oic-skin iframe,
body.oic-skin video{
  max-width: 100%;
}

/* ---------- Header sticky (NO recortes) ---------- */
.oic-navwrap{
  background: transparent;
  padding: 20px 0;
  z-index: 1030;
  overflow: visible; /* CLAVE para sticky */
}

.oic-navcard{
  background: #fff;
  border-radius: 14px;
  box-shadow:
    0 10px 25px rgba(0,0,0,0.10),
    0 20px 50px rgba(0,0,0,0.08),
    0 40px 80px rgba(0,0,0,0.05);
  padding: 16px 24px;
  max-width: 100%;
  min-width: 0;
}

.oic-logo{ width:auto; display:block; max-width:100%; }
.oic-logo--iem{ height:72px; }
.oic-logo--oic{
  height:78px;
  filter: contrast(1.18) saturate(1.08);
  transform: translateY(1px) scale(1.06);
  transform-origin: left center;
}

.oic-logos{ gap:1.5rem; min-width:0; flex-wrap:nowrap; }

.oic-logo-divider{
  width:2px;
  height:70px;
  background: linear-gradient(to bottom,
    rgba(0,0,0,.05),
    rgba(184,50,128,.45),
    rgba(0,0,0,.05)
  );
  border-radius:2px;
}

.oic-navcard .navbar-nav .nav-link{
  font-weight: 500;
  color: #555;
  padding: 10px 14px;
  white-space: nowrap;
  transition: all .2s ease;
}
.oic-navcard .navbar-nav .nav-link:hover{ color:#b83280; }

#mainNav{ min-width:0; }
#mainNav > ul{
  margin:0;
  padding-left:0;
  list-style:none;
  min-width:0;
}

/* Mobile */
@media (max-width: 991.98px){
  .oic-navwrap{ padding: 12px 0; }
  .oic-navcard{ padding: 12px 14px; border-radius: 12px; }
  .oic-logo--iem{ height:56px; }
  .oic-logo--oic{ height:60px; transform: translateY(1px) scale(1.05); }
  .oic-logo-divider{ height:48px; }

  @media (max-width: 380px){
    .oic-logo-divider{ display:none; }
    .oic-logos{ gap:.75rem; }
  }
}

/* =========================================================
   FIX overflow horizontal SOLO en full-bleed
   (sin tocar body/html)
========================================================= */

/* Preferimos dvw (no cuenta scrollbar) */
@supports (width: 100dvw){
  .oic-wide,
  .oic-conocenos .oic-about-hero,
  .oic-conocenos .oic-about-mvv{
    width: 100dvw;
    margin-left: calc(50% - 50dvw);
    margin-right: calc(50% - 50dvw);
    overflow-x: clip;
  }
}

/* Fallback 100vw */
@supports not (width: 100dvw){
  .oic-wide,
  .oic-conocenos .oic-about-hero,
  .oic-conocenos .oic-about-mvv{
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    overflow-x: hidden;
  }
}

/* Hijos del wide no deben empujar */
.oic-wide-stage,
.oic-wide-inner{
  max-width: 100%;
  overflow: hidden;
}
/* =========================================================
   OIC: STOP HORIZONTAL SCROLL (SIN ROMPER sticky-top)
   - NO tocamos html/body overflow-x
   - Recortamos SOLO el contenido en .oic-shell
   - Arreglamos full-bleed 100vw con dvw cuando exista
========================================================= */

/* 0) Guardrails: medios no empujan */
body.oic-skin img,
body.oic-skin svg,
body.oic-skin video,
body.oic-skin iframe{
  max-width: 100%;
}

/* 1) Recorte SOLO del contenido (no afecta nav sticky) */
body.oic-skin .oic-shell{
  overflow-x: clip; /* moderno */
}
@supports not (overflow: clip){
  body.oic-skin .oic-shell{ overflow-x: hidden; }
}

/* 2) Full-bleed: mantener efecto SIN sumar el ancho del scrollbar
      - 100dvw no “cuenta” scrollbar (a diferencia de 100vw)
*/
@supports (width: 100dvw){
  body.oic-skin .oic-shell .oic-wide,
  body.oic-skin .oic-shell .oic-conocenos .oic-about-hero,
  body.oic-skin .oic-shell .oic-conocenos .oic-about-mvv{
    width: 100dvw;
    margin-left: calc(50% - 50dvw);
    margin-right: calc(50% - 50dvw);
  }
}

/* 3) Por si algún hijo se pasa del stage */
body.oic-skin .oic-shell .oic-wide-stage,
body.oic-skin .oic-shell .oic-wide-inner{
  max-width: 100%;
  overflow: hidden;
}

/* 4) Sticky seguro: no le pongas overflow hidden al navwrap */
.oic-navwrap{
  overflow: visible;
}
/* =========================================================
   OIC NAV: HOVER PRO (pill + underline animado)
   - No cambia HTML/clases
   - Funciona con display_menu() aunque no meta .navbar-nav
========================================================= */

/* Base: aseguramos que links sean "pills" */
.oic-navcard .navbar-nav .nav-link,
.oic-navcard #mainNav > ul > li > a{
  position: relative;
  display: inline-flex;
  align-items: center;

  padding: 10px 14px;
  border-radius: 999px;

  color: #555;
  font-weight: 600;

  text-decoration: none !important; /* mata underline del theme */
  transition:
    color .18s ease,
    background-color .18s ease,
    box-shadow .18s ease,
    transform .18s ease;
}

/* Línea inferior (animada) */
.oic-navcard .navbar-nav .nav-link::after,
.oic-navcard #mainNav > ul > li > a::after{
  content: "";
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: 6px;
  height: 2px;
  border-radius: 999px;

  background: linear-gradient(90deg, var(--oic-magenta), var(--oic-magenta-2));
  opacity: 0;
  transform: scaleX(.35);
  transform-origin: center;
  transition: opacity .18s ease, transform .18s ease;
}

/* Hover: pill suave + elevación mínima + underline visible */
.oic-navcard .navbar-nav .nav-link:hover,
.oic-navcard #mainNav > ul > li > a:hover{
  color: var(--oic-magenta);
  background: rgba(176, 18, 113, .08);
  box-shadow: 0 10px 20px rgba(17,24,39,.08);
  transform: translateY(-1px);
}

.oic-navcard .navbar-nav .nav-link:hover::after,
.oic-navcard #mainNav > ul > li > a:hover::after{
  opacity: 1;
  transform: scaleX(1);
}

/* Active/current (Bootstrap usa .active o aria-current="page") */
.oic-navcard .navbar-nav .nav-link.active,
.oic-navcard .navbar-nav .nav-link[aria-current="page"],
.oic-navcard #mainNav > ul > li > a.active,
.oic-navcard #mainNav > ul > li > a[aria-current="page"]{
  color: var(--oic-magenta);
  background: rgba(176, 18, 113, .10);
  box-shadow: 0 12px 24px rgba(17,24,39,.10);
}

.oic-navcard .navbar-nav .nav-link.active::after,
.oic-navcard .navbar-nav .nav-link[aria-current="page"]::after,
.oic-navcard #mainNav > ul > li > a.active::after,
.oic-navcard #mainNav > ul > li > a[aria-current="page"]::after{
  opacity: 1;
  transform: scaleX(1);
}

/* Focus accesible (teclado) */
.oic-navcard .navbar-nav .nav-link:focus-visible,
.oic-navcard #mainNav > ul > li > a:focus-visible{
  outline: none;
  box-shadow:
    0 12px 24px rgba(17,24,39,.10),
    0 0 0 4px rgba(176, 18, 113, .18);
}

/* Mobile: en el collapse que se vea como menú limpio, sin “brincos” */
@media (max-width: 991.98px){
  .oic-navcard .navbar-nav .nav-link,
  .oic-navcard #mainNav > ul > li > a{
    width: 100%;
    justify-content: center;
    padding: 12px 14px;
  }

  .oic-navcard .navbar-nav .nav-link::after,
  .oic-navcard #mainNav > ul > li > a::after{
    left: 22px;
    right: 22px;
    bottom: 7px;
  }
}

/* Respeta reduce motion */
@media (prefers-reduced-motion: reduce){
  .oic-navcard .navbar-nav .nav-link,
  .oic-navcard #mainNav > ul > li > a,
  .oic-navcard .navbar-nav .nav-link::after,
  .oic-navcard #mainNav > ul > li > a::after{
    transition: none !important;
  }
}
/* =========================================================
   OIC HEADER — NAV FIT AL MARKUP (sin cortes)
   - Desktop: permite wrap elegante (2 líneas) si no cabe
   - XL+: una sola línea
   - Si .oic-nav-right está vacío, no empuja
========================================================= */

/* Navcard: flex estable */
.oic-navcard{
  display:flex;
  align-items:center;
  gap: 16px;
  min-width: 0;
}

/* Logos nunca deben empujar al menú */
.oic-logos{
  flex: 0 0 auto;
  min-width: 0;
}

/* Centro elástico */
#mainNav{
  flex: 1 1 auto;
  min-width: 0;
}

/* Si el lado derecho está vacío, no reserves espacio */
.oic-nav-right:empty{ display:none !important; }

/* Desktop: el collapse se comporta como fila centrada */
@media (min-width: 992px){
  #mainNav.navbar-collapse{
    display:flex !important;
    justify-content:center;
    min-width: 0;
    overflow: visible; /* CLAVE: no recortar texto */
  }

  /* UL del menú (funcione con display_menu o bootstrap) */
  #mainNav > ul{
    display:flex;
    flex-wrap: wrap;            /* CLAVE: permite 2 líneas */
    justify-content: center;
    align-items: center;
    gap: 10px 12px;             /* row-gap / col-gap */
    margin: 0;
    padding: 0;
    list-style: none;
    max-width: 100%;
    min-width: 0;
  }

  /* En desktop normal dejamos que rompa línea si es necesario */
  #mainNav > ul > li > a{
    white-space: normal;        /* CLAVE: no cortar */
    line-height: 1.15;
    text-align: center;
    padding: 10px 12px;         /* un pelín más compacto */
  }

  /* En pantallas grandes ya cabe todo: 1 línea */
  @media (min-width: 1200px){
    #mainNav > ul{ flex-wrap: nowrap; }
    #mainNav > ul > li > a{
      white-space: nowrap;
      padding: 10px 14px;
    }
  }
}

/* Mobile: vertical como ya lo tenías */
@media (max-width: 991.98px){
  #mainNav > ul{
    display:flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    margin:0;
    padding:0;
    list-style:none;
  }

  #mainNav > ul > li > a{
    width: 100%;
    justify-content: center;
    white-space: normal;
  }
}
/* =========================================================
   OIC HEADER — MOBILE: menú SIEMPRE debajo (colapsable real)
========================================================= */
@media (max-width: 991.98px){

  /* La tarjeta puede envolver: fila arriba + menú abajo */
  .oic-navcard{
    flex-wrap: wrap;      /* CLAVE: permite 2 filas */
    gap: 12px;
  }

  /* Logos a la izquierda */
  .oic-logos{
    order: 1;
  }

  /* Botón hamburguesa a la derecha */
  .oic-navcard .navbar-toggler{
    order: 2;
    margin-left: auto;
    flex: 0 0 auto;
  }

  /* El contenedor del menú SIEMPRE abajo y a todo lo ancho */
  #mainNav{
    order: 3;
    width: 100%;
    flex: 0 0 100%;
  }

  /* Respetar Bootstrap collapse (por si algún CSS lo pisa) */
  #mainNav.collapse:not(.show){
    display: none !important;
  }
  #mainNav.collapse.show{
    display: block !important;
  }

  /* UL vertical centrado bonito */
  #mainNav > ul{
    width: 100%;
    margin-top: 6px;
  }

  #mainNav > ul > li > a{
    width: 100%;
    justify-content: center;
  }
}