.navbar {
  position: relative;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 1rem 1rem;
}

.navbar > .container,
.navbar > .container-fluid {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
}



.navbar-brand:hover, .navbar-brand:focus {
  text-decoration: none;
}

.navbar-nav {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  padding-left: 0;
  margin-bottom: 0;
  list-style: none;
}

.navbar-nav .nav-link {
  padding-right: 0;
  padding-left: 0;
}

.navbar-nav .dropdown-menu {
  position: static;
  float: none;
}

.navbar-text {
  display: inline-block;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.navbar-collapse {
  -webkit-flex-basis: 100%;
      -ms-flex-preferred-size: 100%;
          flex-basis: 100%;
  -webkit-box-flex: 1;
  -webkit-flex-grow: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}

.navbar-toggler:hover, .navbar-toggler:focus {
  text-decoration: none;
}

.navbar-toggler-icon {
  display: inline-block;
  width: 1.5em;
  height: 1.5em;
  vertical-align: middle;
  content: "";
  background: no-repeat center center;
  background-size: 100% 100%;
}

@media (max-width: 575.98px) {
  .navbar-expand-sm > .container,
  .navbar-expand-sm > .container-fluid {
    padding-right: 0;
    padding-left: 0;
  }
}

@media (min-width: 576px) {
  .navbar-expand-sm {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row nowrap;
        -ms-flex-flow: row nowrap;
            flex-flow: row nowrap;
    -webkit-box-pack: start;
    -webkit-justify-content: flex-start;
        -ms-flex-pack: start;
            justify-content: flex-start;
  }
  .navbar-expand-sm .navbar-nav {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .navbar-expand-sm .navbar-nav .dropdown-menu {
    position: absolute;
  }
  .navbar-expand-sm .navbar-nav .nav-link {
    padding-right: 0.7rem;
    padding-left: 0.7rem;
  }
  .navbar-expand-sm > .container,
  .navbar-expand-sm > .container-fluid {
    -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
  }
  .navbar-expand-sm .navbar-collapse {
    display: -webkit-box !important;
    display: -webkit-flex !important;
    display: -ms-flexbox !important;
    display: flex !important;
    -webkit-flex-basis: auto;
        -ms-flex-preferred-size: auto;
            flex-basis: auto;
  }
  .navbar-expand-sm .navbar-toggler {
    display: none;
  }
}

@media (max-width: 767.98px) {
  .navbar-expand-md > .container,
  .navbar-expand-md > .container-fluid {
    padding-right: 0;
    padding-left: 0;
  }
}

@media (min-width: 768px) {
  .navbar-expand-md {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row nowrap;
        -ms-flex-flow: row nowrap;
            flex-flow: row nowrap;
    -webkit-box-pack: start;
    -webkit-justify-content: flex-start;
        -ms-flex-pack: start;
            justify-content: flex-start;
  }
  .navbar-expand-md .navbar-nav {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .navbar-expand-md .navbar-nav .dropdown-menu {
    position: absolute;
  }
  .navbar-expand-md .navbar-nav .nav-link {
    padding-right: 0.7rem;
    padding-left: 0.7rem;
  }
  .navbar-expand-md > .container,
  .navbar-expand-md > .container-fluid {
    -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
  }
  .navbar-expand-md .navbar-collapse {
    display: -webkit-box !important;
    display: -webkit-flex !important;
    display: -ms-flexbox !important;
    display: flex !important;
    -webkit-flex-basis: auto;
        -ms-flex-preferred-size: auto;
            flex-basis: auto;
  }
  .navbar-expand-md .navbar-toggler {
    display: none;
  }
}

@media (max-width: 991.98px) {
  .navbar-expand-lg > .container,
  .navbar-expand-lg > .container-fluid {
    padding-right: 0;
    padding-left: 0;
  }
}

@media (min-width: 992px) {
  .navbar-expand-lg {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row nowrap;
        -ms-flex-flow: row nowrap;
            flex-flow: row nowrap;
    -webkit-box-pack: start;
    -webkit-justify-content: flex-start;
        -ms-flex-pack: start;
            justify-content: flex-start;
  }
  .navbar-expand-lg .navbar-nav {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .navbar-expand-lg .navbar-nav .dropdown-menu {
    position: absolute;
  }
  .navbar-expand-lg .navbar-nav .nav-link {
    padding-right: 0.7rem;
    padding-left: 0.7rem;
  }
  .navbar-expand-lg > .container,
  .navbar-expand-lg > .container-fluid {
    -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
  }
  .navbar-expand-lg .navbar-collapse {
    display: -webkit-box !important;
    display: -webkit-flex !important;
    display: -ms-flexbox !important;
    display: flex !important;
    -webkit-flex-basis: auto;
        -ms-flex-preferred-size: auto;
            flex-basis: auto;
  }
  .navbar-expand-lg .navbar-toggler {
    display: none;
  }
}

@media (max-width: 1199.98px) {
  .navbar-expand-xl > .container,
  .navbar-expand-xl > .container-fluid {
    padding-right: 0;
    padding-left: 0;
  }
}

@media (min-width: 1200px) {
  .navbar-expand-xl {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row nowrap;
        -ms-flex-flow: row nowrap;
            flex-flow: row nowrap;
    -webkit-box-pack: start;
    -webkit-justify-content: flex-start;
        -ms-flex-pack: start;
            justify-content: flex-start;
  }
  .navbar-expand-xl .navbar-nav {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row;
  }
  .navbar-expand-xl .navbar-nav .dropdown-menu {
    position: absolute;
  }
  .navbar-expand-xl .navbar-nav .nav-link {
    padding-right: 0.7rem;
    padding-left: 0.7rem;
  }
  .navbar-expand-xl > .container,
  .navbar-expand-xl > .container-fluid {
    -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
  }
  .navbar-expand-xl .navbar-collapse {
    display: -webkit-box !important;
    display: -webkit-flex !important;
    display: -ms-flexbox !important;
    display: flex !important;
    -webkit-flex-basis: auto;
        -ms-flex-preferred-size: auto;
            flex-basis: auto;
  }
  .navbar-expand-xl .navbar-toggler {
    display: none;
  }
}

.navbar-expand {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-flow: row nowrap;
      -ms-flex-flow: row nowrap;
          flex-flow: row nowrap;
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}

.navbar-expand > .container,
.navbar-expand > .container-fluid {
  padding-right: 0;
  padding-left: 0;
}

.navbar-expand .navbar-nav {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-direction: row;
      -ms-flex-direction: row;
          flex-direction: row;
}

.navbar-expand .navbar-nav .dropdown-menu {
  position: absolute;
}

.navbar-expand .navbar-nav .nav-link {
  padding-right: 0.7rem;
  padding-left: 0.7rem;
}

.navbar-expand > .container,
.navbar-expand > .container-fluid {
  -webkit-flex-wrap: nowrap;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
}

.navbar-expand .navbar-collapse {
  display: -webkit-box !important;
  display: -webkit-flex !important;
  display: -ms-flexbox !important;
  display: flex !important;
  -webkit-flex-basis: auto;
      -ms-flex-preferred-size: auto;
          flex-basis: auto;
}

.navbar-expand .navbar-toggler {
  display: none;
}

.navbar-light .navbar-brand {
  color: #ff214f;
}

.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {
  color: #ff214f;
}

.navbar-light .navbar-nav .nav-link {
  color: #000000;
}

.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {
  color: rgba(0, 0, 0, 0.7);
}

.navbar-light .navbar-nav .nav-link.disabled {
  color: rgba(0, 0, 0, 0.3);
}

.navbar-light .navbar-nav .show > .nav-link,
.navbar-light .navbar-nav .active > .nav-link,
.navbar-light .navbar-nav .nav-link.show,
.navbar-light .navbar-nav .nav-link.active {
  color: #ff214f;
}

.navbar-light .navbar-toggler {
  color: #000000;
  border-color: rgba(0, 0, 0, 0.1);
}

.navbar-light .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='%23343a40' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.navbar-light .navbar-text {
  color: #000000;
}

.navbar-light .navbar-text a {
  color: #ff214f;
}

.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {
  color: #ff214f;
}

.navbar-dark .navbar-brand {
  color: #ff214f;
}

.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {
  color: #ff214f;
}

.navbar-dark .navbar-nav .nav-link {
  color: #fff;
}

.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {
  color: rgba(255, 255, 255, 0.75);
}

.navbar-dark .navbar-nav .nav-link.disabled {
  color: rgba(255, 255, 255, 0.25);
}

.navbar-dark .navbar-nav .show > .nav-link,
.navbar-dark .navbar-nav .active > .nav-link,
.navbar-dark .navbar-nav .nav-link.show,
.navbar-dark .navbar-nav .nav-link.active {
  color: #ff214f;
}


.navbar-dark .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.navbar-dark .navbar-text {
  color: #fff;
}

.navbar-dark .navbar-text a {
  color: #ff214f;
}

.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {
  color: #ff214f;
}
 
.bg-primary .navbar-brand,
.bg-secondary .navbar-brand,
.bg-success .navbar-brand,
.bg-info .navbar-brand,
.bg-warning .navbar-brand,
.bg-danger .navbar-brand,
.bg-dark .navbar-brand {
  color: #fff;
}

.bg-primary .navbar-brand:hover,
.bg-secondary .navbar-brand:hover,
.bg-success .navbar-brand:hover,
.bg-info .navbar-brand:hover,
.bg-warning .navbar-brand:hover,
.bg-danger .navbar-brand:hover,
.bg-dark .navbar-brand:hover {
  color: #e6e6e6;
}

.bg-light .navbar-brand {
  color: #000000;
}

.bg-light .navbar-brand:hover {
  color: #1d2124;
}

.navbar {
  -webkit-transition: all 0.3s linear 0s;
  transition: all 0.3s linear 0s;
}

.navbar .nav-link {
  font-weight: 700;
}

.navbar .nav-link.active {
  color: #ff214f;
}

@media (max-width: 1199.98px) {
  .custom-navbar {
    min-height: auto !important;
    padding: 2.5rem;
    background-color: #000000;
  }
  .custom-navbar .navbar-brand {
    display: block !important;
    text-align: left !important;
    margin-left: 10px;
  }
}

.custom-navbar .collapse {
  -webkit-flex-basis: 0 !important;
      -ms-flex-preferred-size: 0 !important;
          flex-basis: 0 !important;
}

.custom-navbar .collapse .navbar-nav,
.custom-navbar .collapse .navbar-brand {
  width: 100%;
}

.custom-navbar .collapse .navbar-nav:last-child {
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
/* Corrige el desplazamiento al hacer clic en el menú */
section[id] {
  scroll-margin-top: 90px;
}

@media (max-width: 1199.98px) {
  section[id] {
    scroll-margin-top: 70px;
  }
}

@media (max-width: 768px) {
  section[id] {
    scroll-margin-top: 60px;
  }
}

/* Normal visible al iniciar */
.normal-logo {
    opacity: 1 !important;
    visibility: visible !important;
}

/* Blanco oculto al iniciar */
.white-logo {
    opacity: 0 !important;
    visibility: hidden !important;
}
/* Al hacer scroll */
.custom-navbar.scrolled .normal-logo {
    opacity: 0 !important;
    visibility: hidden !important;
}

.custom-navbar.scrolled .white-logo {
    opacity: 1 !important;
    visibility: visible !important;
}

.custom-navbar.scrolled .brand-img {
    opacity: 0;
    visibility: hidden;
    transform: translateY(-20px);
}

.custom-navbar.scrolled .brand-txt {
    opacity: 1;
    visibility: visible;

    position: static;
    transform: none;

    display: flex;
    align-items: center;
    justify-content: center;

    width: auto;
    height: auto;
    margin: 0;
    padding: 0;
}
/* El logo blanco NUNCA puede ser más alto que la barra */
.custom-navbar.scrolled .logo-scroll {
    max-height: 70px !important;
    width: auto !important;
}

/* Ocultar logo normal al hacer scroll */
.custom-navbar.scrolled .logo-normal {
    opacity: 0;
    visibility: hidden;
}

/* Mostrar logo blanco */
.custom-navbar.scrolled .logo-scroll {
    opacity: 1;
    visibility: visible;
}
/* Ocultar SOLO el logo principal (imagen hija directa de .navbar-brand) */
.custom-navbar.scrolled .navbar-brand > .brand-img {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s;
}
/* MOSTRAR LOGO BLANCO CUANDO HAY SCROLL */
.custom-navbar.scrolled .brand-img {
  opacity: 0;
  visibility: hidden;
}

.custom-navbar.scrolled .brand-txt {
  opacity: 1;
  visibility: visible;
  position: absolute; 
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}




/* ================================
   LOGO EN NAVBAR (DESKTOP + SCROLL)
   ================================ */

/* Contenedor general del brand */
.navbar-brand {
  display: inline-block;
  padding-top: 0.3125rem;
  padding-bottom: 0.3125rem;
  margin-right: 1rem;
  font-size: 1.25rem;
  line-height: inherit;
  white-space: nowrap;
  text-align: center;
  position: relative; /* necesario para centrar el logo blanco */
}

/* Logo normal (inicio de página) */
.navbar-brand .brand-img {
  width: 110px;
  display: inline-block;
  margin: auto;
  opacity: 1;
  visibility: visible;
  transition: all 0.2s linear;
}
.custom-navbar .navbar-brand .brand-img {
    max-width: 110px !important; /* Ajusta si necesitas */
    width: auto !important;
    height: auto !important;
}


/* Reglas antiguas de .affix (dejamos solo lo necesario) */
.affix {
  min-height: 80px;
  background: #000000;
  border-bottom: 1px solid #495057;
}

.affix .navbar-brand .brand-img {
  opacity: 0;
  visibility: hidden;
}

.affix .navbar-brand .brand-txt {
  opacity: 1;
  visibility: visible;
  position: absolute; 
  left: 50%;
  transform: translate(-50%, -50%);
}

/* ===========================
   DESKTOP (>= 992px)
=========================== */
@media (min-width: 992px) {
  /* Tamaños uniformes */
  .logo-normal {
      opacity: 1;
      visibility: visible;
      width: 100%;
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
  }
  .logo-scroll {
      opacity: 0;
      visibility: hidden;
      width: 70%;
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
  }
  /* Al hacer scroll (navbar con clase .scrolled o .affix) */
  .custom-navbar.scrolled .logo-normal,
  .affix .logo-normal {
    opacity: 0;
    visibility: hidden;
    transform: translateX(-50%) translateY(-20px);
  }

  .custom-navbar.scrolled .logo-scroll,
  .affix .logo-scroll {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(10);
  }
}
.navbar-toggler {
  padding: 0.25rem 0.75rem;
  font-size: 1.25rem;
  
}
/* ===========================
   MÓVIL (< 992px)
=========================== */
@media (max-width: 991px) {
  :root {
    --logo-mobile-size: 70px;
  }

  /* Ocultar SIEMPRE el logo blanco dentro del brand en móvil */
  .custom-navbar .navbar-collapse .navbar-brand .logo-scroll,
  .custom-navbar .navbar-collapse .navbar-brand .brand-txt {
    display: none !important;
  }

  /* Ocultar logo normal */
  .logo-normal {
    display: none !important;
  }

  /* No colapsar el brand: simplemente ocultarlo */
  .navbar-collapse .navbar-brand {
    display: none !important;
  }

  /* Empujar el menú hacia abajo según tamaño del logo */
  .navbar-collapse,
  .navbar-collapse.show {
    padding-top: calc(var(--logo-mobile-size) + 10px) !important;
  }

  /* Neutralizar transforms del affix */
  .affix .logo-scroll,
  .affix .logo-normal {
    transform: none !important;
  }

  /* Logo dentro del botón hamburguesa */
  .toggler-logo {
    height: var(--logo-mobile-size) !important;
    width: auto !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
  }

  /* Botón hamburguesa CENTRADO, con elementos en fila */
  .navbar-toggler {
    position: absolute !important;
    top: 10px !important;
    left: 50% !important;
    transform: translateX(-50%) !important; /* Centra TODO el botón */

    z-index: 6000 !important;

    display: flex !important;
    flex-direction: row !important; /* ← LOS PONE LADO A LADO */
    justify-content: center !important;
    align-items: center !important;
    gap: 4px !important;

    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: none !important;
  }

  /* Quitar borde blanco al enfocar */
  .navbar-toggler:focus {
    outline: none !important;
    box-shadow: none !important;
  }

  /* Ajustar tamaño del icono hamburguesa sin afectar al logo */
  .navbar-toggler .navbar-toggler-icon {
    width: 30px !important;
    height: 30px !important;
  }
}

/* ===========================
   REGLAS BASE
=========================== */

.custom-navbar {
  min-height: 150px;
  display: flex;
  align-items: center;
  position: relative;
  height: auto;
}
