


  /* GENERAL */
  body {
    padding-top: 100px;
    background-color: #181818;
    color: #f1f1f1;
    margin: 0;
    font-family: 'Roboto', sans-serif;
  }


  /* HEADER */
  .main-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 1050;
    background-color: #000000;
    color: #fff;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
  }

  .main-header .container {
    max-width: 100%;
    padding: 0 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
  }

  .logo-container {
    margin-right: auto;
  }

  .logo-img {
    height: 58px;
    width: auto;
  }

  /* BOTONES HEADER EN BLANCO */
  .btn-outline-light {
    color: #ffffff;
    border-color: #ffffff;
  }

  .btn-outline-light:hover,
  .btn-outline-light:focus,
  .btn-outline-light:active {
    background-color: #ffffff;
    color: #121212;
    border-color: #ffffff;
  }

  /* FORMULARIOS */
  .container.bg-white {
    background-color: #121212 !important;
    color: #f1f1f1;
    border: 1px solid #3a3a3a;
  }

  /* Contenedor de filtros */
  .filter-container {
    background-color: #121212 !important;
  }

  body.light-mode .filter-container {
    background-color: #e1e3e7 !important;
  }

  .form-control,
  .form-select {
    background-color: #1e1e1e;
    color: #f1f1f1;
    border: 1px solid #555;
  }

  .form-control:focus,
  .form-select:focus {
    background-color: #1e1e1e;
    color: #fff;
    border-color: #999;
    box-shadow: none;
  }

  /* SCROLL CARDS */
  .scroll-container {
    display: flex;
    justify-content: center;
    gap: 20px;
    overflow-x: auto;
    scroll-behavior: smooth;
    padding: 10px 0;
  }

  .scroll-container::-webkit-scrollbar {
    height: 8px;
  }

  .scroll-container::-webkit-scrollbar-thumb {
    background: #444;
    border-radius: 4px;
  }

  /* CARDS */
  .custom-card {
    min-width: 300px;
    flex-shrink: 0;
    background-color: #121212;
    border: 1px solid #3a3a3a;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.6);
    transition: transform 0.3s;
    color: #f1f1f1;
    text-align: left;
  }

  .custom-card:hover {
    transform: translateY(-5px);
  }

  .custom-card img {
    height: 180px;
    object-fit: cover;
  }

  /* SPONSORS */
  .sponsor-divider {
    border-top: 1px solid #555;
    margin: 10px auto 30px;
    width: 60%;
  }

  .sponsor-img {
    height: 130px;
    max-width: 240px;
    width: auto;
    object-fit: contain;
    display: block;
    margin: 0 auto;
    transition: transform 0.3s ease;
  }

  .sponsor-img:hover {
    transform: scale(1.05);
  }

  .sponsor-left,
  .sponsor-right {
    height: 210px;
    max-width: 330px;
  }

  /* FOOTER */
  .footer-custom {
    background-color: #000000;
  }

  .footer-custom .container {
    position: relative;
    left: -10px;
  }

  .footer-custom h5 {
    font-weight: bold;
  }

  .footer-logo {
    max-height: 60px;
  }

  .social-icon {
    height: 30px;
    width: 30px;
    filter: invert(100%);
    transition: transform 0.2s ease;
  }

  .social-icon:hover {
    transform: scale(1.1);
  }

  /* FOOTER FLAGS */
  .footer-flags img {
    width: 32px;
    height: auto;
  }

  .footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 20px;
  }

  .footer-links a {
    color: #fff;
    text-decoration: none;
  }

  .footer-links a:hover {
    text-decoration: underline;
  }

  .footer-bottom .footer-links {
    padding-right: 15px;
  }

  @media (max-width: 767.98px) {
    .footer-custom .container {
      left: -5px;
    }
  }

  @media (max-width: 767.98px) {
    .footer-bottom {
      flex-direction: column;
      text-align: center;
    }

    .footer-bottom .footer-links {
      margin-top: 10px;
      padding-right: 5px;
    }
  }

  /* IMÁGENES PRINCIPALES */
  .img-uniform {
    height: 500px;
    width: 100%;
    object-fit: contain;
    border-radius: 8px;
  }

  /* ESPACIADOS SECCIONES */
  section.container-fluid.px-0.mb-5 {
    margin-bottom: 150px;
  }

  section.container.mb-5.position-relative.mt-5 {
    padding-top: 150px;
  }

  section.mt-5 {
    margin-bottom: 100px;
  }

  /* DIVISORES Y CENTRADO */

  .vertical-center {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
    padding-top: 30px;
  }

  /* IMÁGENES CAROUSEL */
  .carousel-img-fixed {
    height: 200px;
    width: 100%;
    object-fit: cover;
    border-radius: 0px;
  }

  .main-circuit-img,
  .main-circuit-img img {
    height: 350px;
    width: 100%;
    object-fit: cover;
    border-radius: 8px;
  }

  .extra-circuit-img {
    height: 200px;
    width: 100%;
    object-fit: cover;
    border-radius: 8px;
  }

  /* TEXTO GENERAL */
  p {
    font-size: 18px;
    line-height: 1.8;
  }

  ul li {
    font-size: 18px;
  }

  /* TIPOGRAFÍA Y COLORES */
  .text-primary-yellow {
    color: #E3FC53;
  }

    .text-primary-white {
    color: #ffffff;
  }

  .text-primary-white:hover {
    color: #ebebeb;
  }

  .text-primary-yellow:hover {
    color: #fff176;
  }

  .big-title {
    font-size: 36px;
    font-weight: bold;
    color: #E3FC53;
  }

  /* SIDEBAR */
  .sidebar {
    background-color: #1e1e1e;
    border: 1px solid #333;
  }

  .sidebar-nav {
    min-height: 100vh;
    background-color: #1e1e1e;
    color: #f1f1f1;
    padding-top: 100px;
  }

  .sidebar-nav a {
    display: block;
    padding: 12px 20px;
    color: #f1f1f1;
    text-decoration: none;
  }

  .sidebar-nav a.active,
  .sidebar-nav .nav-link.bg-secondary {
    background-color: #E3FC53;
    color: #121212;
    font-weight: bold;
  }

  .sidebar-nav .nav-link {
    transition: background-color 0.2s ease;
  }

  .sidebar-nav .nav-link:hover {
    background-color: #495057;
  }

  /* PERFIL USUARIO */
  .profile-wrapper {
    position: relative;
  }

  .banner-container {
    position: relative;
    height: 300px;
    overflow: hidden;
    border-radius: 10px;
  }

  .banner-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 10px;
  }

  .profile-picture {
    width: 120px;
    height: 120px;
    object-fit: cover;
    border: 4px solid #fff;
    border-radius: 50%;
    position: absolute;
    bottom: -60px;
    left: 30px;
    z-index: 5;
  }

.tabs-section {
    margin-top: 0 !important;
    padding: 0 !important;
}

.tab-content {
    background-color: #1e1e1e;
    padding: 30px;
    border-radius: 10px;
    color: #f1f1f1;
}

body.light-mode .tabs-section {
    background-color: #e1e3e7 !important;
    padding: 0 !important;
}

body.light-mode .tabs-section .tab-content {
    background-color: #e1e3e7 !important;
    color: #212529 !important;
}

  .nav-tabs .nav-link {
    font-weight: bold;
    color: #ffffff;
    font-family: 'Roboto', sans-serif !important;
  }

  .nav-tabs .nav-link.active {
    background-color: #ffffff;
    color: #121212;
    border: none;
    border-radius: 5px 5px 0 0;
  }

  /* Light mode styling for profile tabs */
  body.light-mode .tabs-section .nav-tabs .nav-link {
    background-color: #e1e3e7;
    color: #000000;
  }

  body.light-mode .tabs-section .nav-tabs .nav-link.active {
    background-color: #000000;
    color: #ffffff;
  }

  /* RESPONSIVE OPTIMIZATIONS */
  @media (max-width: 768px) {
    .main-header .container {
      flex-direction: column;
      align-items: flex-start;
      padding: 10px;
    }

    .logo-container {
      margin-bottom: 10px;
    }

    nav.d-flex.flex-wrap {
      justify-content: flex-start !important;
      width: 100%;
      gap: 8px !important;
    }

    .img-uniform {
      height: auto;
      max-height: 400px;
    }

    .carousel .custom-card {
      margin: 0 auto 20px;
    }

    .custom-card img {
      height: 160px;
    }

    .profile-picture {
      left: 50%;
      transform: translateX(-50%);
    }

    .big-title {
      font-size: 28px;
      text-align: center;
    }
  }

  @media (max-width: 576px) {
    .main-header .container {
      padding: 10px 15px;
    }

    .carousel-control-prev-icon,
    .carousel-control-next-icon {
      background-color: rgba(255, 255, 255, 0.5);
    }

    .text-center h4,
    .text-center h2 {
      font-size: 22px;
    }

    footer .footer-logo {
      max-width: 100px;
      height: auto;
    }

    .custom-card {
      min-width: 100%;
    }
  }


  @media (min-width: 992px) {
    .menu-overlay {
      display: flex !important;
      flex-direction: row;
      align-items: center;
      gap: 10px;
      background: none;
      border: none;
      padding: 0;
    }
  }

  .main-header nav.navbar {
    margin: 0;
  }



  @media (min-width: 992px) {
    .menu-overlay {
      display: flex !important;
      flex-direction: row;
      align-items: center;
      gap: 10px;
      background: none;
      border: none;
      padding: 0;
    }
  }

  @media (min-width: 768px) {
    section.container.mb-5.position-relative.mt-5 .row > div:first-child {
      padding-right: 40px;
    }
  }

  .carousel-inner .carousel-item > .row {
    flex-wrap: nowrap;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
  }

  .carousel-inner .carousel-item > .row > div {
    flex: 0 0 auto;
    scroll-snap-align: start;
    min-width: 280px;
  }

  @media (min-width: 768px) {
    .carousel-inner .carousel-item > .row {
      overflow-x: hidden;
    }

    .carousel-inner .carousel-item > .row > div {
      min-width: auto;
    }
  }

  /* Por defecto (escritorio), mostramos ambas imágenes */
  .img-coche,
  .img-moto {
    display: block;
  }

  /* MODO DESKTOP: Mostrar 4 tarjetas por fila */
  @media (min-width: 1025px) {
    .scroll-container {
      display: grid;
      grid-template-columns: repeat(4, 1fr); /* Solo para desktop */
      gap: 20px;
      overflow: visible;
    }
  }

  /* Quitar bordes redondeados solo a las imágenes de coche y moto */
  .img-coche,
  .img-moto {
    border-radius: 0 !important;
  }

  .btn-reset-custom {
    color: #E3FC53;
    border: 1px solid #E3FC53;
    background-color: transparent;
    transition: all 0.3s ease;
  }

  .btn-reset-custom:hover {
    background-color: #E3FC53;
    color: #121212; /* Texto oscuro cuando pasa el ratón encima */
    border-color: #E3FC53;
  }

  #eventCarousel1 .custom-card {
    height: 400px; /* altura uniforme para todos los cromos del carrusel */
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }

  #eventCarousel1 .custom-card .card-img-top {
    height: 200px; /* altura fija solo en el carrusel */
    object-fit: cover;
  }

  #eventCarousel1 .custom-card .card-body {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }

  /*burger menu*/

  @media (max-width: 991.98px) {
    .menu-overlay {
      position: fixed;
      top: 100px; /* antes era 0 */
      left: 0;
      right: 0;
      bottom: 0;
      width: 100%;
      height: calc(55vh - 100px); /* ajustar altura sin cubrir el header */
      background-color: #121212;
      padding: 30px 20px;
      display: none;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      gap: 15px;
      z-index: 9999;
      box-shadow: 0 4px 8px rgba(0,0,0,0.6);
    }

    .menu-overlay.show {
      display: flex;
      animation: fadeIn 0.3s ease-in-out;
    }
  }





  /* Posición y tamaño de la bandera */

  .flag-container {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 10;
    pointer-events: none; /* Por si hay clics en la esquina */
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .flag-container .favorite-icon {
    margin-top: 4px;
    pointer-events: auto;
  }

  .card-flag {
    width: auto;
    height: auto;
    max-width: 60px;   /* ancho máximo visible */
    max-height: 40px;  /* evita que sea muy alta */
    object-fit: contain;
    display: block;
  }

  .custom-card .btn-outline-primary {
    border-color: #E3FC53;
    color: #E3FC53;
    font-size: 14px;
    padding: 4px 10px;
  }

  .custom-card .btn-outline-primary:hover {
    background-color: #E3FC53;
    color: #121212;
  }

  .btn-detalles {
    padding: 6px 12px;
    font-size: 14px;
    font-weight: bold;
    color: #ffffff;
    border: 1.5px solid #ffffff;
    background-color: transparent;
    border-radius: 5px;
    transition: all 0.3s ease;
  }

  .btn-detalles:hover {
    background-color: #ffffff;
    color: #121212;
  }

  .card-title {
    font-size: 30px;
    color: #ffffff;
    margin-bottom: 4px;
  }

  .card-subtitle {
    font-size: 16px;
    color: #ffffff;
    margin-bottom: 8px;
  }

  .page-circuitos .custom-card {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    height: auto; /* Eliminar altura innecesaria */
  }

  .page-circuitos .custom-card .card-body {
    padding: 16px 12px;
  }

  .page-circuitos .custom-card .card-title {
    font-size: 22px;
    margin-bottom: 4px;
    color: #fff;
  }

  .page-circuitos .custom-card .card-subtitle {
    font-size: 18px;
    margin-bottom: 10px;
    color: #fff;
  }

  .page-circuitos .btn-detalles {
    margin-top: 6px;
  }










  /* Indicadores opcionales (si los usas en el futuro) */
  .carousel-indicators [data-bs-target] {
    background-color: #E3FC53;
  }

  /* TEXTO SOBRE SLIDER PRINCIPAL */
  .slider-text-overlay {
    top: 130px;
    left: 30px;
    max-width: 80%;
    /* Eliminamos el fondo */
    background-color: transparent;
    border-radius: 0;
  }

  .slider-title {
    font-size: 66px; /* Aumentado */
    font-weight: bold;
    color: #ffffff;
    text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.8);
    margin-bottom: 10px;
  }

  .slider-subtitle {
    font-size: 28px; /* Aumentado */
    font-weight: 500;
    color: #ffffff;
    text-shadow: 2px 2px 6px rgba(0, 0, 0, 0.6);
  }

  @media (max-width: 768px) {
    .slider-title {
      font-size: 36px;
    }

    .slider-subtitle {
      font-size: 20px;
    }

    .slider-text-overlay {
      padding: 0;
      top: 20px;
      left: 20px;
    }
  }





  /*bloque encargado de hacer más pequeño y compacto el menu de filtros*/

  @media (max-width: 576px) {
    /* Limitar ancho del contenedor y centrarlo */
    .container.bg-white {
      max-width: 360px;    /* ancho máximo deseado */
      width: 90%;          /* ocupa el 90% de la pantalla como mucho */
      margin: 16px auto;   /* centrado vertical y horizontal */
      padding: 8px !important; /* algo de padding interno */
    }

    /* Tres filtros por fila, más compactos */
    .container.bg-white form .row.g-3 {
      gap: 4px;
    }

    .container.bg-white form .row.g-3 .col-md {
      flex: 0 0 33.3333%;
      max-width: 33.3333%;
      padding: 2px;
    }

    /* Controles aún más apretados */
    .form-control,
    .form-select {
      padding: 4px 6px;
      font-size: 12px;
    }

    /* Botones muy compactos */
    .btn-outline-light,
    .btn-reset-custom {
      padding: 4px 6px;
      font-size: 12px;
    }

    /* Ajuste final: quitar overflow horizontal si lo hubiera */
    .container.bg-white form {
      overflow: hidden;
    }
  }



  /* --- backOffice: menú lateral en desktop, menú horizontal superior en móvil --- */
  @media (max-width: 768px) {
      .col-md-2 {
          min-height: auto !important;
          padding: 0 !important;
      }

      .sidebar-nav {
          display: flex !important;
          flex-direction: row !important;
          flex-wrap: wrap !important;
          justify-content: center !important;
          align-items: center !important;
          width: 100% !important;
          height: auto !important;
          padding: 0 !important;
          margin: 0 !important;
          gap: 0 !important;
          background-color: #212529 !important;
          border: none !important;
      }

      .sidebar-nav a {
          flex: 1 1 auto !important;
          display: flex !important;
          justify-content: center !important;
          align-items: center !important;
          padding: 8px 5px !important;
          margin: 0 !important;
          border: none !important;
          font-size: 0.75rem !important;
          line-height: 1 !important;
          white-space: nowrap !important;
      }
  }

  /* --- Ajuste iconos y efecto hover en títulos tarjetas --- */
  .scroll-container .custom-card .card-text svg {
      color: #E3FC53 !important;
  }

  .scroll-container .custom-card .card-title {
      transition: color 0.3s ease;
  }

  .scroll-container .custom-card:hover .card-title {
      color: #E3FC53 !important;
  }

  /* --- backOffice: tablas como cajas en móvil --- */
  @media (max-width: 768px) {
      .table-responsive table {
          display: block;
          width: 100%;
      }

      .table-responsive thead {
          display: none;
      }

      .table-responsive tbody,
      .table-responsive tr {
          display: block;
          width: 100%;
      }

      .table-responsive tr {
          background-color: #1e1e1e;
          margin-bottom: 10px;
          border: 1px solid #3a3a3a;
          border-radius: 8px;
          padding: 10px;
      }

      .table-responsive td {
          display: flex;
          justify-content: space-between;
          align-items: center;
          padding: 8px 10px;
          border: none;
          border-bottom: 1px solid #333;
      }

      .table-responsive td:last-child {
          border-bottom: none;
      }

      .table-responsive td::before {
          content: attr(data-label);
          font-weight: bold;
          color: #E3FC53;
          flex-basis: 40%;
          text-align: left;
      }

      /* Opcional: mejorar botones dentro de la caja */
      .table-responsive td .btn {
          font-size: 12px;
          padding: 4px 8px;
          margin: 2px;
      }
  }

  /* --- FUENTE Black Ops One para títulos, menús y filtros --- */

  /* Títulos principales */
  h1, h2, h3, h4, h5, h6, 
  .big-title, 
  .card-title {
      font-family: 'Black Ops One', cursive !important;
  }
  h4, .wtd-frase-final {
      font-size: 2.0rem;
  }

  /* Menú lateral y superior */
  .sidebar-nav a,
  .menu-overlay .btn,
  .navbar a,
  .navbar-brand {
      font-family: 'Black Ops One', cursive !important;
  }

  /* Formularios y filtros */
  label,
  input[type="text"],
  input[type="date"],
  input[type="url"],
  input[type="number"],
  input[type="file"],
  select,
  button,
  .btn,
  .btn-outline-light,
  .btn-reset-custom {
      font-family: 'Black Ops One', cursive !important;
  }

  /* sponsors: reducir tamaño imágenes para móviles y evitar scroll */
  @media (max-width: 576px) {
      .sponsor-img {
          max-height: 80px !important;
          max-width: 100px !important;
      }

      .sponsor-left,
      .sponsor-right {
          max-height: 80px !important;
          max-width: 100px !important;
      }

      .sponsors-mobile-scroll {
          overflow-x: hidden !important;
          flex-wrap: nowrap !important;
          justify-content: space-around !important;
      }
  }

  /* Ajustar espacio entre header y contenido SOLO en circuitos */
  .page-circuitos {
      margin-top: 0 !important;
      padding-top: 30px !important;
  }


  /*caja concatenada*/

  @media (max-width: 768px) {
      .user-box {
          background-color: #1e1e1e;
          border: 1px solid #3a3a3a;
          border-radius: 8px;
          margin-bottom: 10px;
          padding: 10px 15px;
          display: flex;
          flex-direction: column;
          gap: 5px;
          font-size: 14px;
      }

      .user-box strong {
          font-size: 16px;
          color: #E3FC53;
      }

      .user-box div {
          color: #f1f1f1;
      }
  }

  @media (max-width: 768px) {
      .user-box .btn {
          font-family: 'Roboto', sans-serif !important;
          font-weight: 500;
      }

      .user-box .btn-outline-primary {
          color: #9ad0ff;
          border-color: #9ad0ff;
      }

      .user-box .btn-outline-primary:hover {
          background-color: #9ad0ff;
          color: #121212;
          border-color: #9ad0ff;
      }

      .user-box .btn-outline-success {
          color: #7de39e;
          border-color: #7de39e;
      }

      .user-box .btn-outline-success:hover {
          background-color: #7de39e;
          color: #121212;
          border-color: #7de39e;
      }

      .user-box .btn-outline-danger {
          color: #ff9999;
          border-color: #ff9999;
      }

      .user-box .btn-outline-danger:hover {
          background-color: #ff9999;
          color: #121212;
          border-color: #ff9999;
      }
  }

  /*cromos tablet*/

  @media (min-width: 768px) {
    .scroll-container {
      display: grid !important;
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
      gap: 20px !important;
      overflow-x: visible !important;
      justify-content: stretch !important;
      padding: 10px 20px !important;
    }

    .scroll-container .custom-card {
      min-width: 0 !important;
      max-width: 100% !important;
      width: 100% !important;
      flex-shrink: 1 !important;
    }
  }



  /* --- Mantener botón hamburguesa visible al abrir el menú --- */
  .navbar-toggler {
    z-index: 10000;
    position: relative;
  }

  body.nav-open .navbar-toggler {
    display: block !important;
  }

  /* --- Mostrar logo dentro del menú burger en móviles --- */
  @media (max-width: 991.98px) {
    .logo-mobile {
      display: none;
    }

    body.nav-open .logo-mobile {
      display: block;
    }

    .logo-mobile .logo-img {
      height: 58px;
      width: auto;
    }
  }


  /*img back office*/

  .gallery-img {
    height: 240px;
    object-fit: cover;
    border-radius: 4px;
  }

  /* Unificar estilo botones en desktop y móvil en backOffice */
  .table-responsive .btn-outline-primary,
  .user-box .btn-outline-primary {
    color: #9ad0ff;
    border-color: #9ad0ff;
  }

  .table-responsive .btn-outline-primary:hover,
  .user-box .btn-outline-primary:hover {
    background-color: #9ad0ff;
    color: #121212;
    border-color: #9ad0ff;
  }

  .table-responsive .btn-outline-success,
  .user-box .btn-outline-success {
    color: #7de39e;
    border-color: #7de39e;
  }

  .table-responsive .btn-outline-success:hover,
  .user-box .btn-outline-success:hover {
    background-color: #7de39e;
    color: #121212;
    border-color: #7de39e;
  }

  .table-responsive .btn-outline-danger,
  .user-box .btn-outline-danger {
    color: #ff9999;
    border-color: #ff9999;
  }

  .table-responsive .btn-outline-danger:hover,
  .user-box .btn-outline-danger:hover {
    background-color: #ff9999;
    color: #121212;
    border-color: #ff9999;
  }

  /* Fuente Roboto en botones de backOffice */
  .table-responsive .btn,
  .user-box .btn {
    font-family: 'Roboto', sans-serif !important;
  }

  .role-icon {
    filter: brightness(0) invert(1);
    height: 24px;
    width: auto;
  }


  @media (max-width: 991.98px) {
    .menu-overlay .btn {
      font-size: 1.25rem;       /* Aumenta el tamaño del texto */
      padding: 14px 20px;       /* Botones más grandes y cómodos */
      font-weight: bold;        /* Hace el texto más visible */
      border-width: 2px;        /* Opcional: bordes más marcados */
    }

    .menu-overlay .btn-outline-light {
      font-family: 'Black Ops One', cursive !important;
      color: #ffffff;
      border-color: #ffffff;
    }

    .menu-overlay .btn-outline-light:hover {
      background-color: #ffffff;
      color: #121212;
    }
  }

  ul.list-unstyled li strong {
    font-size: 20px;
  }

  #sliderInicio .img-uniform {
  border-radius: 0 !important;
}

/* 📦 Espaciado más compacto en las tarjetas */
.custom-card .card-body {
  padding: 8px 10px !important;
}

.custom-card .card-title {
  font-size: 18px !important;
  margin-bottom: 4px !important;
}

.custom-card .card-text {
  font-size: 13px !important;
  margin-bottom: 3px !important;
  line-height: 1.4 !important;
}

.custom-card .card-text:last-child {
  margin-bottom: 0 !important;
}

/* 📏 Reducir la separación entre tarjetas */
.scroll-container {
  gap: 12px !important;
}


/* 🔧 Menú de filtros compacto (desktop y móvil) */
.container.bg-white {
  padding: 8px 12px !important;
  margin-bottom: 24px;
  border-radius: 6px;
}

.container.bg-white form .row.g-3 {
  gap: 4px;
  row-gap: 6px;
}

.container.bg-white .form-select,
.container.bg-white .form-control {
  padding: 3px 5px !important;
  font-size: 12px !important;
  height: 30px !important;
  line-height: 1.2 !important;
}

.container.bg-white .btn-outline-light,
.container.bg-white .btn-reset-custom {
  padding: 4px 6px !important;
  font-size: 12px !important;
  line-height: 1 !important;
}

@media (max-width: 576px) {
  .container.bg-white {
    max-width: 380px;
    width: 95%;
    padding: 10px 14px !important;
    margin: 18px auto !important;
  }

  .container.bg-white form .row.g-3 {
    gap: 6px;
    row-gap: 8px;
    justify-content: center; /* Centramos contenido */
  }

  .container.bg-white .col-md {
    flex: 0 0 33.3333%;
    max-width: 33.3333%;
    padding: 4px;
  }

  .container.bg-white .form-select,
  .container.bg-white .form-control {
    padding: 6px 8px !important;
    font-size: 13px !important;
    height: 34px !important;
    line-height: 1.4 !important;
    width: 100%;
  }

  /* 🟡 Botones centrados horizontalmente */
  .container.bg-white .col-md.d-flex {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    justify-content: center !important;
    gap: 10px;
  }

  .container.bg-white .btn-outline-light,
  .container.bg-white .btn-reset-custom {
    padding: 6px 12px !important;
    font-size: 13px !important;
    line-height: 1.4;
    width: auto !important;
  }

  /* Mejora visual campo fecha */
  input[type="date"]:before {
    content: attr(data-placeholder);
    color: #aaa;
    margin-right: 4px;
  }

  input[type="date"]:focus:before,
  input[type="date"]:valid:before {
    content: "";
  }
}

input::placeholder {
  color: #ffffff !important;
  opacity: 1; /* Para que se vea en Firefox */
}

/* Específicos para navegadores */
input::-webkit-input-placeholder {
  color: #ffffff !important;
}

input::-moz-placeholder {
  color: #ffffff !important;
}

input:-ms-input-placeholder {
  color: #ffffff !important;
}

input:-moz-placeholder {
  color: #ffffff !important;
}
body.light-mode input::placeholder {
  color: #000000 !important;
}

body.light-mode input::-webkit-input-placeholder {
  color: #000000 !important;
}

body.light-mode input::-moz-placeholder {
  color: #000000 !important;
}

body.light-mode input:-ms-input-placeholder {
  color: #000000 !important;
}

body.light-mode input:-moz-placeholder {
  color: #000000 !important;
}


/* ✅ Asegurar que las pestañas de perfil empiecen debajo del banner */

.tabs-section {
  margin-top: 0 !important; /*margen que hay entre la foto del banner y el menu*/
  padding: 0 !important;
}

/* 🔧 Eliminar separación entre header y slider */
section.container-fluid.px-0.mb-5.position-relative {
  margin-top: 0 !important;
  padding-top: 0 !important;
}





body.home-page {
  padding-top: 0 !important;
}

@media (min-width: 768px) and (max-width: 1024px) {

  /* GENERAL */
  body {
    padding-top: 0 !important;
    font-size: 16px;
  }

  /* HEADER */
  .main-header .container {
    padding: 10px 15px;
  }

  /* SLIDER */
  #sliderInicio {
    margin-top: 100px !important;
    padding-top: 0 !important;
  }



  .section-intro {
    padding-top: 20px !important;
    margin-top: 0 !important;
  }

  /* BIG TITLES */
  .big-title {
    font-size: 32px;
  }

  .slider-title {
    font-size: 42px;
  }

  .slider-subtitle {
    font-size: 22px;
  }

  /* PROFILE */
  .profile-picture {
    width: 100px;
    height: 100px;
  }

  /* CARDS */
  .scroll-container {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
    gap: 12px !important;
    overflow-x: visible !important;
    justify-content: stretch !important;
    padding: 10px 20px !important;
  }

  .scroll-container .custom-card {
    height: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    flex-shrink: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
  }

  .scroll-container .custom-card .card-img-top {
    height: 160px !important;
    object-fit: cover !important;
  }

  .scroll-container .custom-card .card-body {
    padding: 8px 10px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    flex-grow: 1 !important;
  }

  .scroll-container .custom-card .card-title {
    font-size: 18px !important;
    margin-bottom: 4px !important;
  }

  .scroll-container .custom-card .card-text {
    font-size: 13px !important;
    margin-bottom: 3px !important;
    line-height: 1.4 !important;
  }

  .scroll-container .custom-card .card-text:last-child {
    margin-bottom: 0 !important;
  }

  /* TABLE RESPONSIVE: estilo tipo "tarjetas" para tablets */
  .table-responsive table {
    display: block;
    width: 100%;
  }

  .table-responsive thead {
    display: none;
  }

  .table-responsive tbody,
  .table-responsive tr {
    display: block;
    width: 100%;
  }

  .table-responsive tr {
    background-color: #1e1e1e;
    margin-bottom: 12px;
    border: 1px solid #3a3a3a;
    border-radius: 8px;
    padding: 12px;
  }

  .table-responsive td {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 14px;
    border: none;
    border-bottom: 1px solid #333;
  }

  .table-responsive td:last-child {
    border-bottom: none;
  }

  .table-responsive td::before {
    content: attr(data-label);
    font-weight: bold;
    color: #E3FC53;
    flex-basis: 35%;
    text-align: left;
  }

  .table-responsive td .btn {
    font-size: 13px;
    padding: 5px 10px;
    margin: 2px;
  }

  .table-responsive td img {
    display: inline-block;
    height: 28px;
    width: 28px;
    object-fit: contain;
    margin: 0 4px;
  }

  /* SIDEBAR */
  .sidebar-nav {
    padding-top: 0 !important;
    align-items: flex-start !important;
  }

  .col-md-2.sidebar-nav {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
  }


    .img-uniform {
    height: 380px !important;
    object-fit: contain !important;
  }


}

@media (max-width: 767.98px) {
  /* HEADER */
  .main-header .container {
    flex-direction: column;
    align-items: flex-start;
    padding: 10px;
  }

  .logo-container {
    margin-bottom: 10px;
  }

  nav.d-flex.flex-wrap {
    justify-content: flex-start !important;
    width: 100%;
    gap: 8px !important;
  }

  /* TEXTO PRINCIPAL */
  .big-title {
    font-size: 24px;
    text-align: center;
    margin-bottom: 1rem;
  }

  /* SLIDER */


  .slider-title {
    font-size: 36px;
  }

  .slider-subtitle {
    font-size: 20px;
  }

  .slider-text-overlay {
    padding: 0;
    top: 20px;
    left: 20px;
  }

  /* IMG PRINCIPAL */
  .img-uniform {
    height: auto;
    max-height: 400px;
  }

  .img-uniform + .img-uniform {
    display: none;
  }

  /* MOSTRAR SOLO IMAGEN DE COCHE */
  .img-moto {
    display: none;
  }

  /* ESPACIADO */
  .section-intro {
    margin-top: 10px !important;
    padding-top: 20px !important;
  }

  section.container.mb-5.position-relative.mt-5 .row > div {
    text-align: center;
  }

  /* FOOTER */
  .footer-custom .col-md-4:first-child {
    text-align: center;
  }

  /* CARDS */
  .scroll-container {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    overflow: visible;
  }

  .custom-card {
    min-width: 100%;
    max-width: 100%;
  }

  .custom-card img {
    height: 140px;
  }

  .custom-card .card-body {
    padding: 10px 14px;
  }

  .custom-card .card-title {
    font-size: 18px;
  }

  .custom-card .card-text {
    font-size: 14px;
  }

  /* ANUNCIO MÓVIL */


  /* SPONSORS MOBILE */
  .sponsors-mobile-scroll {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    gap: 16px;
    padding-bottom: 10px;
  }

  .sponsors-mobile-scroll a {
    flex: 0 0 auto;
  }

  .sponsors-mobile-scroll img.sponsor-img {
    height: 120px;
    max-width: 200px;
  }

  /* SIDEBAR (horizontal en móviles) */
  .col-md-2 {
    min-height: auto !important;
    padding: 0 !important;
  }

  .sidebar-nav {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    height: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    gap: 0 !important;
    background-color: #212529 !important;
    border: none !important;
  }

  .sidebar-nav a {
    flex: 1 1 auto !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    padding: 8px 5px !important;
    margin: 0 !important;
    border: none !important;
    font-size: 0.75rem !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  /* TABLAS COMO CAJAS */
  .table-responsive table {
    display: block;
    width: 100%;
  }

  .table-responsive thead {
    display: none;
  }

  .table-responsive tbody,
  .table-responsive tr {
    display: block;
    width: 100%;
  }

  .table-responsive tr {
    background-color: #1e1e1e;
    margin-bottom: 10px;
    border: 1px solid #3a3a3a;
    border-radius: 8px;
    padding: 10px;
  }

  .table-responsive td {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 10px;
    border: none;
    border-bottom: 1px solid #333;
  }

  .table-responsive td:last-child {
    border-bottom: none;
  }

  .table-responsive td::before {
    content: attr(data-label);
    font-weight: bold;
    color: #E3FC53;
    flex-basis: 40%;
    text-align: left;
  }

  .table-responsive td .btn {
    font-size: 12px;
    padding: 4px 8px;
    margin: 2px;
  }

  .img-uniform {
    height: 380px !important;
    object-fit: contain !important;
  }


}



/* ============================================= */
/* 🧩 Ajustes para header fijo en todas resoluciones */
/* ============================================= */

/* Compensar altura del header fijo en tablets/móviles con espaciador */
@media (max-width: 991.98px) {
  .header-spacer {
    height: 100px;
  }
}

/* En escritorio usamos padding en body */
@media (min-width: 992px) {
  body {
    padding-top: 100px;
  }
}

/* En tablets y móviles eliminamos padding del body */
@media (max-width: 991.98px) {
  body {
    padding-top: 10 !important;
  }
}

.p-5-override {
  padding: 6rem !important;
}

@media (min-width: 768px) and (max-width: 1024px) {
  /* Forzar sección slider a ocupar todo el ancho */
  section.container-fluid.px-0.mb-5.position-relative {
    width: 100vw;
    max-width: 100vw;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  #sliderInicio {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: auto;
    margin-right: auto;
    overflow: hidden;
  }



  .img-uniform {
    height: 380px !important;
    object-fit: contain !important;
  }

  .big-title {
    font-size: 32px;
  }

  .slider-title {
    font-size: 42px;
  }

  .slider-subtitle {
    font-size: 22px;
  }

  .main-header .container {
    padding: 10px 15px;
  }

  .profile-picture {
    width: 100px;
    height: 100px;
  }

  .scroll-container {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
    gap: 12px !important;
    overflow-x: visible !important;
    justify-content: stretch !important;
    padding: 10px 20px !important;
  }

  .scroll-container .custom-card {
    height: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    flex-shrink: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
  }

  .scroll-container .custom-card .card-img-top {
    height: 160px !important;
    object-fit: cover !important;
  }

  .scroll-container .custom-card .card-body {
    padding: 8px 10px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    flex-grow: 1 !important;
  }

  .scroll-container .custom-card .card-title {
    font-size: 18px !important;
    margin-bottom: 4px !important;
  }

  .scroll-container .custom-card .card-text {
    font-size: 13px !important;
    margin-bottom: 3px !important;
    line-height: 1.4 !important;
  }

  .scroll-container .custom-card .card-text:last-child {
    margin-bottom: 0 !important;
  }

  .table-responsive tr {
    background-color: #1e1e1e;
    margin-bottom: 12px;
    border: 1px solid #3a3a3a;
    border-radius: 8px;
    padding: 12px;
  }

  .table-responsive td {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 14px;
    border: none;
    border-bottom: 1px solid #333;
  }

  .table-responsive td:last-child {
    border-bottom: none;
  }

  .table-responsive td::before {
    content: attr(data-label);
    font-weight: bold;
    color: #E3FC53;
    flex-basis: 35%;
    text-align: left;
  }

  .table-responsive td .btn {
    font-size: 13px;
    padding: 5px 10px;
    margin: 2px;
  }

  .table-responsive td img {
    display: inline-block;
    height: 28px;
    width: 28px;
    object-fit: contain;
    margin: 0 4px;
  }

  .sidebar-nav {
    padding-top: 0 !important;
    align-items: flex-start !important;
  }

  .col-md-2.sidebar-nav {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
  }
}

@media (max-width: 767.98px) {
  .slider-title {
    font-size: 24px !important;
    text-align: left !important;
  }

  .slider-subtitle {
    font-size: 16px !important;
    text-align: left !important;
  }

  .slider-text-overlay {
    top: 16px !important;
    left: 16px !important;
    max-width: 90% !important;
    text-align: left !important;
    padding: 0 !important;
  }
}

@media (min-width: 1025px) {
  .container.bg-white {
    max-width: 1100px;                /* Más ancho */
    padding: 32px 40px !important;    /* Más espacioso */
    font-size: 16px;                  /* Texto más grande */
    margin: 32px auto !important;     /* Centrado con más espacio */
  }

  .container.bg-white .form-select,
  .container.bg-white .form-control {
    font-size: 15px !important;
    height: 42px !important;
    padding: 8px 12px !important;
  }

  .container.bg-white .btn-outline-light,
  .container.bg-white .btn-reset-custom {
    font-size: 15px !important;
    padding: 10px 18px !important;
  }

  .container.bg-white form .row.g-3 {
    gap: 14px;
    row-gap: 14px;
  }

  .container.bg-white form .col-md {
    padding: 6px;
  }

  .container.bg-white .col-md-12.d-flex {
    justify-content: center;
    margin-top: 12px;
  }
}

/* Solo visible en escritorio */
@media (min-width: 1025px) {
 .grid-banner-card {
  grid-column: 1 / -1;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 20px;
  background-color: #181818; /* ✅ Igual que el fondo general */
  border: none;              /* ❌ Quitamos el borde de puntos */
  border-radius: 8px;
}

  .grid-banner-card img {
    max-width: 600px;  /* tamaño del banner */
    width: 100%;
    height: auto;
    border-radius: 4px;
  }
}

@media (max-width: 991.98px) {
  .menu-overlay {
    background: linear-gradient(180deg, #121212 0%, #181818 100%);
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.7);
  }

  .menu-overlay .btn {
    width: 100%;
    max-width: 280px;
    padding: 14px 18px;
    font-size: 1rem;
    border-radius: 8px;
    border: 2px solid #ffffff;
    color: #ffffff;
    background-color: transparent;
    transition: all 0.3s ease;
    font-family: 'Black Ops One', cursive;
    font-weight: bold;
  }

  .menu-overlay .btn:hover {
    background-color: #ffffff;
    color: #121212;
  }
}

body.menu-open {
  overflow: hidden;
  height: 100vh;
}


/*estilos paginacion backoffice*/

.pagination .page-item.active .page-link {
  background-color: #E3FC53;
  color: #121212;
  border-color: #E3FC53;
}

.pagination .page-link {
  color: #E3FC53;
  background-color: transparent;
  border: 1px solid #E3FC53;
}

.pagination .page-link:hover {
  background-color: #E3FC53;
  color: #121212;
}

/*oculto el anuncio en la version movil*/
@media (max-width: 767.98px) {
  .grid-banner-card.desktop-only {
    display: none !important;
  }
}


@media (max-width: 991.98px) {
    .header-spacer2 {
        height: 0px; 
    }
}

@media only screen and (min-width: 600px) and (max-width: 768px) and (orientation: portrait) {
.container.bg-white {
    margin-top: 120px !important; /* Ajusta según la altura del header */
  }
}

/* Ocultar en escritorio y tablet */
@media (min-width: 768px) {
  .mobile-only-ad {
    display: none !important;
  }
}

@media (max-width: 767.98px) {
  .mobile-only-ad {
    display: block !important;
    background-color: #181818; /* Fondo igual al resto de la web */
    border: none;              /* Eliminar borde */
    padding: 20px;
    text-align: center;
    border-radius: 10px;
    margin: 16px 0;
  }

  .mobile-only-ad img {
    max-width: 100%;
    height: auto;
    border-radius: 6px;
  }
}

/* Justificar texto en párrafos y listas */
p,
ul li {
  text-align: justify;
}


/* ✅ Estilo unificado para títulos principales */
.big-title {
  font-size: 36px;
  font-weight: bold;
  color: #f1f1f1;
  text-align: center;
  margin-bottom: 1.5rem;
  line-height: 1.2;
  font-family: 'Black Ops One', cursive !important;
}

@media (max-width: 767.98px) {
  .big-title {
    font-size: 24px;
    margin-bottom: 1rem;
  }
}

.custom-card .card-text {
  text-align: left !important;
}


@media (max-width: 576px) {
  .buscador-circuitos .col-6.col-md.d-flex {
    flex-wrap: nowrap;
  }

  .buscador-circuitos .col-6.col-md.d-flex select {
    flex: 1 1 auto;
  }

  .buscador-circuitos .col-6.col-md.d-flex button {
    flex: 0 0 auto;
  }
}

/*estilos login*/


/* Móvil: el anuncio ocupa el espacio de 2 tarjetas */
@media (max-width: 767.98px) {
  .mobile-only-ad {
    grid-column: span 2;
    background-color: #181818;
    border: none;
    padding: 20px;
    text-align: center;
    border-radius: 10px;
    margin: 0 0 16px 0;
    display: block !important;
  }

  .mobile-only-ad img {
    width: 100%;
    height: auto;
    border-radius: 6px;
    object-fit: cover;
  }

  .scroll-container {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}





/*cromos correctamente mostrados en tablet*/

@media (min-width: 768px) and (max-width: 1024px) {
  .scroll-container .custom-card {
    transform: scale(0.9) !important;
    transition: none !important;
  }

  .scroll-container .custom-card .card-img-top {
    height: 140px !important;
    object-fit: cover !important;
  }

  .scroll-container .custom-card .card-body {
    padding: 6px 8px !important;
  }

  .scroll-container .custom-card .card-title {
    font-size: 15px !important;
    margin-bottom: 4px !important;
  }

  .scroll-container .custom-card .card-text {
    font-size: 12px !important;
    margin-bottom: 3px !important;
  }
}

@media (min-width: 1025px) and (max-width: 1399.98px) {
  .scroll-container {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 20px !important;
    overflow-x: visible !important;
    justify-content: stretch !important;
  }

  .scroll-container .custom-card {
    min-width: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    flex-shrink: 1 !important;
  }
}

/*formato correcto para ipadmini*/

@media (width: 1024px) {
  .scroll-container {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 20px !important;
    overflow-x: visible !important;
  }

  .scroll-container .custom-card {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .grid-banner-card.desktop-only {
    grid-column: span 4 !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
  }

  .grid-banner-card.desktop-only img {
    max-width: 100% !important;
    height: auto !important;
  }
}

@media (width: 1024px) {
  .grid-banner-card.desktop-only img {
    max-width: 480px !important; /* 🔧 más pequeño que 600px */
    width: 100% !important;
    height: auto !important;
  }
}

/*ipad air vertical*/
@media (width: 820px) {
  .scroll-container {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important; /* más estrecho, solo 2 por fila */
    gap: 16px !important;
    overflow-x: visible !important;
    justify-content: center !important;
  }

  .scroll-container .custom-card {
    min-width: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    flex-shrink: 1 !important;
  }

  .grid-banner-card.desktop-only {
    grid-column: span 2 !important; /* ocupa 2 columnas en este caso */
    justify-content: center !important;
    align-items: center !important;
    display: flex !important;
  }

  .grid-banner-card.desktop-only img {
    max-width: 380px !important;
    height: auto !important;
  }
}

/*ipad mini vertical*/
@media (width: 768px) {
  .scroll-container {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important; /* más seguro: 2 por fila */
    gap: 16px !important;
    overflow-x: visible !important;
    justify-content: center !important;
  }

  .scroll-container .custom-card {
    min-width: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    flex-shrink: 1 !important;
  }

  .grid-banner-card.desktop-only {
    grid-column: span 2 !important; /* ocupa todo el ancho de las 2 columnas */
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
  }

  .grid-banner-card.desktop-only img {
    max-width: 400px !important;
    height: auto !important;
  }
}

/*surface pro 7 vertical*/

@media (width: 912px) {
  .scroll-container {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important; /* ✅ Fuerza 4 tarjetas por fila */
    gap: 16px !important;
    overflow-x: visible !important;
    justify-content: center !important;
  }

  .scroll-container .custom-card {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    flex-shrink: 1 !important;
  }

  .grid-banner-card.desktop-only {
    grid-column: span 4 !important; /* ✅ Ocupa 4 columnas */
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
  }

  .grid-banner-card.desktop-only img {
    max-width: 520px !important;
    height: auto !important;
  }
}

/**/
@media (width: 1024px) and (height: 768px) {
  body:not(.home-page):not(.menu-open) {
    padding-top: 100px !important;
  }

  .container.bg-white {
    margin-top: 20px !important;
  }
}

/**/
@media (width: 820px) and (height: 1180px) {
  body:not(.home-page):not(.menu-open) {
    padding-top: 100px !important;
  }

  .container.bg-white {
    margin-top: 20px !important;
  }
}

/*ipad pro vertical*/
@media (width: 1024px) and (height: 1366px) {
  body:not(.home-page):not(.menu-open) {
    padding-top: 100px !important;
  }

  .container.bg-white {
    margin-top: 20px !important;
  }
}

/* Ocultar <br> con clase .br-hide-specific solo en resoluciones específicas */
@media (width: 768px) and (height: 1024px),
       (width: 1024px) and (height: 768px),
       (width: 820px) and (height: 1180px),
       (width: 1024px) and (height: 1366px),
       (width: 1366px) and (height: 1024px),
       (width: 912px) and (height: 1368px) {
  .br-hide-specific {
    display: none !important;
  }
}

/* Ajuste vertical del título solo en resoluciones específicas */
@media (width: 768px) and (height: 1024px),
       (width: 1024px) and (height: 768px),
       (width: 820px) and (height: 1180px),
       (width: 1024px) and (height: 1366px),
       (width: 1366px) and (height: 1024px),
       (width: 912px) and (height: 1368px) {
  .slider-title {
    margin-top: -60px !important;
  }
}

@media (width: 1366px) and (height: 1024px) {
  .slider-title {
    margin-top: 25px !important;
  }
}

/*sponsors juntos en algunas tablet*/
@media (width: 768px) and (height: 1024px),
       (width: 820px) and (height: 1180px),
       (width: 912px) and (height: 1368px),
       (width: 853px) and (height: 1280px) {
  .sponsors-mobile-scroll {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: center !important;
    gap: 20px !important;
    overflow-x: auto !important;
    padding-bottom: 10px;
  }

  .sponsors-mobile-scroll a {
    flex: 0 0 auto !important;
  }

  .sponsor-img,
  .sponsor-left,
  .sponsor-right {
    max-height: 120px !important;
    max-width: 200px !important;
    height: auto;
    object-fit: contain;
  }
}

/* 🎯 Ajustes sponsors centrados horizontalmente en resoluciones específicas */
@media (width: 768px) and (height: 1024px),
       (width: 820px) and (height: 1180px),
       (width: 912px) and (height: 1368px),
       (width: 853px) and (height: 1280px) {
  
  .sponsors-mobile-scroll {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    gap: 24px !important;
    justify-content: center !important;
    align-items: center !important;
    padding: 10px 0 !important;
  }

  .sponsors-mobile-scroll a {
    flex: 0 0 auto !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
  }

  .sponsors-mobile-scroll img.sponsor-img {
    max-height: 120px !important;
    max-width: 220px !important;
    width: auto !important;
    height: auto !important;
  }
}

/*menu backOffice tablet vertical*/
@media (width: 768px) and (height: 1024px) {
  /* Estilo fijo y compacto para menú lateral */
  .sidebar-nav {
    position: fixed !important;
    top: 100px !important; /* compensación por header fijo */
    left: 0;
    width: 200px !important;
    height: calc(100vh - 100px) !important;
    overflow-y: auto !important;
    display: flex !important;
    flex-direction: column !important;
    background-color: #1e1e1e !important;
    z-index: 1050;
    padding: 0 !important;
    margin: 0 !important;
    border-right: 1px solid #333 !important;
  }

  /* Elimina padding/margin absurdos del contenedor de menú */
  .col-md-2 {
    padding: 0 !important;
    margin: 0 !important;
    width: 200px !important;
    flex: 0 0 200px !important;
    max-width: 200px !important;
  }

  /* Asegura que el contenido principal esté correctamente alineado */
  .col-md-10 {
    margin-left: 200px !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    width: calc(100% - 200px) !important;
  }

  /* Evita scroll horizontal innecesario */
  body {
    overflow-x: hidden !important;
  }
}


/*centrar footer en movil y tablet*/
@media (max-width: 991.98px) {
  .footer-custom .col-md-4 {
    text-align: center !important;
  }

  .footer-custom .col-md-4 p,
  .footer-custom .col-md-4 div,
  .footer-custom .col-md-4 h5,
  .footer-custom .col-md-4 a {
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .footer-custom .d-flex.justify-content-center {
    justify-content: center !important;
    flex-wrap: wrap;
  }

  .footer-custom .text-md-end {
    text-align: center !important;
  }

  .footer-custom .text-center.mt-4 p {
    text-align: center !important;
  }
}

@media (max-width: 767.98px) {
  .logo-movil {
    display: block;
    max-width: 300px;   /* Aumentado de 220px a 260px */
    width: 95%;
    margin: 0 auto 0.75rem auto; /* Reduce espacio inferior entre imagen y caja */
    height: auto;
  }
}

/* Estilos para vista de escritorio del login */
.login-left {
  width: 50%;
  height: 100vh;
  background-color: #000;
  overflow: hidden;
}

.login-left img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.login-right {
  width: 50%;
  height: 100vh;
  background-color: #121212;
  padding: 0 40px;
}

.login-box {
  max-width: 400px;
  width: 100%;
}

.logo-movil {
  max-width: 290px;
  width: 90%;
  margin: 0 auto;
}

body.login-body {
  background-color: #121212;
}

/* Estilos exclusivos para login */
.login-body {
  background-color: #121212;
  height: 100vh;
  overflow: hidden;
}

/* Columna izquierda (carrusel) */
.login-body .login-desktop-left {
  width: 60%;
  height: 100vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

/* Carrusel completo */
.login-body .login-carousel,
.login-body .login-carousel .carousel-inner,
.login-body .login-carousel .carousel-item {
  height: 100%;
}

/* Imagen de fondo en carrusel */
.login-body .login-carousel img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* Columna derecha (formulario) */
.login-body .login-desktop-right {
  width: 40%;
  height: 100vh;
  background-color: #121212;
  padding: 0 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.login-body .login-box {
  max-width: 400px;
  width: 100%;
}

/* Eliminar márgenes por defecto globales solo en el login */
.login-body, .login-body html {
  margin: 0;
  padding: 0;
  height: 100%;
}

.login-body .container-fluid {
  height: 100vh;
}
/* Estructura general */
.login-body {
  background-color: #121212;
  height: 100vh;
  overflow: hidden;
  margin: 0;
  padding: 0;
}


.login-body .login-desktop-right {
  width: 40%;
  height: 100vh;
  padding: 40px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: #121212;
}

/* Carrusel e imágenes */
.login-body .login-carousel,
.login-body .login-carousel .carousel-inner,
.login-body .login-carousel .carousel-item {
  height: 100%;
}


/* Caja de login */
.login-body .login-box {
  max-width: 400px;
  width: 100%;
}

/* Logo de escritorio */
.login-body .login-logo-desktop {
  max-width: 280px;
  width: 90%;
  height: auto;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.login-body .login-carousel-title {
  position: absolute;
  top: 30px;
  left: 30px;
  font-family: 'Black Ops One', cursive;
  font-size: 64px;
  color: #ffffff;
  z-index: 2;
  text-shadow: 2px 2px 6px rgba(0, 0, 0, 0.7);
}

/* Forzar diseño móvil en resoluciones 1024x1366 y 1366x1024 */
@media (min-width: 1024px) and (max-width: 1366px) {
  .d-lg-flex {
    display: none !important; /* Oculta vista escritorio */
  }

  .d-lg-none {
    display: block !important; /* Muestra vista móvil */
  }

  .d-lg-none.d-flex {
    display: flex !important; /* Asegura flexbox en vista móvil */
  }
}

@media screen and (min-width: 1024px) and (max-width: 1366px) {
  body {
    padding-top: 80px !important; /* Ajusta si tu header mide más o menos */
  }
}

/* Cambiar color del enlace de registro a blanco SOLO en la página de inicio de sesión */
body.login-body .login-box a.btn-link.text-primary-yellow {
    color: #ffffff !important;
}

/* Enlace hover (cuando el usuario pasa el ratón por encima) SOLO en la página de inicio de sesión */
body.login-body .login-box a.btn-link.text-primary-yellow:hover {
    color: #ffffff !important;
}

/* Asegurarse de que el color de texto específico no sobrescriba */
body.login-body .login-box a.btn-link.text-primary-yellow {
    color: #ffffff !important;
}

/* Evitar que el color global .text-primary-yellow afecte al enlace de registro */
body.login-body .login-box a.btn-link.text-primary-yellow.text-primary-yellow {
    color: #ffffff !important;
}

/* Estilos para la versión de escritorio */
.login-body .login-logo-desktop {
    max-width: 80%;  /* Hacer que el logo ocupe el 80% del ancho de su contenedor */
    width: 100%;     /* Asegura que ocupe todo el ancho disponible, respetando el máximo */
    height: auto;    /* Mantiene la proporción del logo */
    display: block;  /* Asegura que sea un bloque */
    margin-left: auto; 
    margin-right: auto; /* Centra el logo */
}


/*estilos info adicionoal circuitos*/

.circuit-info-box {
  background-color: #1e1e1e;
  border: 1px solid #333;
  border-radius: 12px;
  padding: 20px;
  font-family: 'Roboto', sans-serif;
  color: #f1f1f1;
  text-align: left;
}

.circuit-info-box h2 {
  font-size: 1.4em;
  margin-bottom: 15px;
  color: #E3FC53;
  font-family: 'Black Ops One', cursive;
  display: flex;
  align-items: center;
  gap: 10px;
}

.circuit-info-box ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.circuit-info-box li {
  margin: 10px 0;
  font-size: 15px;
  display: flex;
  align-items: center;
  color: #f1f1f1;
}

.circuit-info-box i {
  width: 20px;
  margin-right: 10px;
  color: #E3FC53;
}

.circuit-info-box strong {
  color: #fff;
}

.scroll-container .custom-card .card-title {
  transition: color 0.3s ease;
}

.scroll-container .custom-card:hover .card-title {
  color: #E3FC53 !important;
}

.custom-card .card-title {
  transition: color 0.3s ease;
}

.custom-card:hover .card-title {
  color: #E3FC53 !important;
}

.card-flag {
  width: 40px;
  height: auto;
  object-fit: contain;
  display: inline-block;
  vertical-align: middle;
}

/* Forzar altura uniforme del título en las tarjetas de circuitos */
.scroll-container .custom-card .card-title {
  display: -webkit-box;
  display: box; /* fallback */
  -webkit-box-orient: vertical;
  box-orient: vertical; /* fallback */
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: break-word;
  min-height: 42px; /* asegura espacio uniforme */
  line-height: 1.2;
}


.inicio-link-blanco {
  color: #ffffff !important;
  font-weight: bold;
  text-decoration: underline;
}

.inicio-link-blanco:hover {
  color: #E3FC53 !important; /* opcional: cambia a amarillo al pasar el mouse */
  text-decoration: underline; /* opcional */
}

/* Botón outline amarillo */
.btn-outline-yellow {
  color: #E3FC53 !important;
  border-color: #E3FC53 !important;
}
.btn-outline-yellow:hover,
.btn-outline-yellow:focus,
.btn-outline-yellow:active {
  background-color: #E3FC53 !important;
  color: #121212 !important;
  border-color: #E3FC53 !important;
}

/* — Botón cancelar transparente con texto y borde blancos — */
.btn-outline-white {
  background-color: transparent !important;
  color: #ffffff !important;
  border: 1px solid #ffffff !important;
}

.btn-outline-white:hover,
.btn-outline-white:focus {
  background-color: rgba(255, 255, 255, 0.1) !important;
  color: #ffffff !important;
  border-color: #ffffff !important;
}

/* Ajustes para escritorio en la página de inicio */
@media (min-width: 992px) {
  #sliderInicio .carousel-inner img {
    height: 800px !important;
  }
  .home-img {
    height: 400px;
    object-fit: cover;
  }
  /* Reduce lateral margins for the intro section on desktop */
  .section-intro.container {
    max-width: 85% !important;
  }

  /* Animaciones de entrada para las imágenes de la página de inicio */
  .slide-desktop-right {
    animation: slideInFromRight 0.8s ease-out forwards;
  }

  .slide-desktop-left {
    animation: slideInFromLeft 0.8s ease-out forwards;
  }
}

@keyframes slideInFromRight {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes slideInFromLeft {
  from {
    transform: translateX(-100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

/* === Fondos BackOffice === */
.fondos-card .card-img-top {
  height: 180px;
  object-fit: cover;
}

.fondos-slider img {
  width: 100%;
  object-fit: cover;
}

/* Ajustes para la página de Fondos en tablets */
@media (min-width: 768px) and (max-width: 1024px) {
  .fondos-slider .col-md-4,
  .fondos-apartados .col-sm-6.col-md-3 {
    flex: 0 0 50%;
    max-width: 50%;
  }
}

/* Espaciado adicional en orientación horizontal */
@media (min-width: 768px) and (max-width: 1024px) and (orientation: landscape) {
  .fondos-apartados,
  .fondos-slider {
    gap: 2rem;
  }
  
  /* Forzar espaciado vertical entre elementos de apartados */
  .fondos-apartados .col-sm-6.col-md-3 {
    margin-bottom: 3rem !important;
    padding: 0 1rem !important;
    display: flex !important;
    flex-direction: column !important;
  }
  
  /* Espaciado específico para cada card completa */
  .fondos-apartados .fondos-card {
    margin-bottom: 2rem !important;
    height: auto !important;
    min-height: 300px !important;
  }
  
  /* Control estricto de altura de imágenes */
  .fondos-apartados .card-img-top {
    max-height: 120px !important;
    min-height: 120px !important;
    object-fit: cover !important;
    margin-bottom: 1rem !important;
  }
  
  /* Espaciado del card-body con altura fija */
  .fondos-apartados .card-body {
    padding: 1.5rem 1rem !important;
    flex-grow: 1 !important;
  }
  
  /* Títulos con espaciado fijo */
  .fondos-apartados h5 {
    margin-bottom: 1.5rem !important;
    line-height: 1.3 !important;
    height: auto !important;
  }
  
  /* Contenedor principal con espaciado forzado */
  .fondos-apartados.row {
    row-gap: 3rem !important;
    margin: 0 -1rem !important;
  }
  
  /* Asegurar que no hay overflow */
  .fondos-apartados {
    overflow: visible !important;
  }
  
  /* Espaciado extra para la segunda fila */
  .fondos-apartados .col-sm-6.col-md-3:nth-child(3),
  .fondos-apartados .col-sm-6.col-md-3:nth-child(4) {
    margin-top: 2rem !important;
  }
}

/* ======== Circuito detalle extras ======== */
.extra-img-plus {
  position: relative;
  cursor: pointer;
}

.extra-img-plus .plus-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 3rem;
  color: #ffffff;
  background-color: rgba(0, 0, 0, 0.5);
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
}

.modal-thumb {
  cursor: pointer;
  width: 100%;
  height: 200px;
  object-fit: cover;
}

/* ======== Vista previa de imagen en circuito detalle ======== */
#imagePreviewModal .modal-body {
  padding: 0;
}

#imagePreviewModal .btn-close {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  background-color: #fff;
  border-radius: 50%;
  /* Aumentamos el tamaño del contenedor y del icono */
  width: 2rem;
  height: 2rem;
  padding: 0.5rem;
  opacity: 1;
  color: #000;
  filter: none;
}

#imagePreviewModal .modal-dialog {
  max-width: 95vw;
  margin: 0 auto;
}

#imagePreviewModal img {
  max-width: 95vw;
  max-height: 90vh;
  width: 100%;
  height: auto;
  border-radius: 8px;
  display: block;
  object-fit: cover;
}
/* ===== Favoritos (Circuitos y Campeonatos) ===== */

/* Contenedor de la tarjeta debe tener posición relativa */
.circuito-card,
.champ-card {
  position: relative;
}

/* Icono de favorito: misma posición y estilo para todos */
.favorite-icon {
  color: #E3FC53;
  font-size: 1.5rem;
  display: none;
  cursor: pointer;
  position: absolute;
  top: 10px;
  left: 10px; /* Mover a la izquierda */
  z-index: 10;
}
.favorite-icon.favorited,
.favorite-icon.active {
  color: #E3FC53;
  display: block;
}


/* Mostrar estrella al hacer hover en cualquier tarjeta o si está marcada como favorita */
.circuito-card:hover .favorite-icon,
.champ-card:hover .favorite-icon,
.trackday-card:hover .favorite-icon,
.favorite-icon.favorited {
  display: block;
}

.circuito-card,
.champ-card,
.trackday-card {
  position: relative;
}





/* ===================
   Modo claro global
   =================== */
body.light-mode {
  background-color: #f8f9fa;
  color: #212529;
}

body.light-mode .main-header {
  background-color: #000000;
  color: #ffffff;
}

body.light-mode .btn-outline-light {
  color: #212529;
  border-color: #212529;
}

body.light-mode .btn-outline-light:hover,
body.light-mode .btn-outline-light:focus,
body.light-mode .btn-outline-light:active {
  background-color: #212529;
  color: #ffffff;
  border-color: #212529;
}

body.light-mode .footer-custom {
  background-color: #000000;
  color: #ffffff;
}

body.light-mode .footer-custom a {
  color: #ffffff;
}

/* Ajustes de contraste para el modo claro */
body.light-mode .text-white,
body.light-mode .text-light {
  color: #212529 !important;
}

body.light-mode .bg-dark,
body.light-mode .bg-dark .text-white,
body.light-mode .bg-dark .text-light {
  color: #ffffff !important;
}

body.light-mode .navbar-dark .navbar-nav .nav-link,
body.light-mode .navbar-dark .navbar-brand {
  color: #ffffff !important;
}

/* Mantener colores oscuros en header y footer cuando el modo claro está activo */
body.light-mode .main-header .btn-outline-light {
  color: #ffffff;
  border-color: #ffffff;
}

body.light-mode .main-header .btn-outline-light:hover,
body.light-mode .main-header .btn-outline-light:focus,
body.light-mode .main-header .btn-outline-light:active {
  background-color: #ffffff;
  color: #121212;
  border-color: #ffffff;
}

body.light-mode .main-header .btn-outline-light.active {
  background-color: #ffffff;
  color: #121212;
  border-color: #ffffff;
}

body.light-mode .footer-custom,
body.light-mode .footer-custom a,
body.light-mode .footer-custom .text-white {
  color: #ffffff !important;
}

/* Ajuste de títulos en modo claro */
body.light-mode .big-title {
  color: #000000;
}

body.light-mode .wtd-frase-final {
  color: #000000;
}

/* Borde negro en tarjetas y formularios en modo claro */
body.light-mode .custom-card {
  border-color: #000000;
}

body.light-mode .container.bg-white {
  border-color: #000000 !important;
  background-color: #e1e3e7 !important;
  color: #212529 !important;
}

body.light-mode .form-control,
body.light-mode .form-select {
  background-color: #ffffff;
  color: #212529;
  border: 1px solid #ced4da;
}

body.light-mode .form-control:focus,
body.light-mode .form-select:focus {
  background-color: #ffffff;
  color: #212529;
  border-color: #86b7fe;
  box-shadow: none;
}

/* Borde para resaltar texto amarillo en modo claro */
.highlight-border {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  border: none;
  border-radius: 0.25rem;
}

body.light-mode .highlight-border {
  /*border: 3px solid #000000;*/
  background-color: #E3FC53;
  color: #000000;
}

/* Mostrar los botones de reset iluminados en modo claro */
body.light-mode .btn-reset-custom,
body.light-mode .btn-reset-custom:hover,
body.light-mode .btn-reset-custom:focus,
body.light-mode .btn-reset-custom:active {
  background-color: #E3FC53;
  color: #121212;
  border-color: #E3FC53;
}

/* Botones destacados de la página de inicio en modo claro */
body.home-page.light-mode .btn-hover-static {
  background-color: #E3FC53 !important;
  color: #121212 !important;
  border-color: #E3FC53 !important;
}
/* Sidebar estilo modo claro */
body.light-mode .sidebar-nav {
  background-color: #e1e3e7 !important;
  color: #212529 !important;
}
body.light-mode .sidebar-nav a {
  color: #212529 !important;
}

/* Colores de tablas en modo claro para backOffice */
body.light-mode .table-dark {
  background-color: #ffffff !important;
  color: #000000 !important;
}
body.light-mode .table-dark td,
body.light-mode .table-dark tbody {
  background-color: #ffffff !important;
  color: #000000 !important;
}
body.light-mode .table-dark thead,
body.light-mode .table-dark thead th,
body.light-mode thead.table-light {
  background-color: #e1e3e7 !important;
  color: #000000 !important;
}

/* Evitar fondo negro al pasar el cursor por las tablas en modo claro */
body.light-mode .table-dark.table-hover tbody tr:hover {
  background-color: #e1e3e7 !important;
  color: #000000 !important;
}
body.light-mode .table-dark.table-hover tbody tr:hover > * {
  background-color: #e1e3e7 !important;
  color: #000000 !important;
}

/* Anuncios con fondo claro en modo claro */
body.light-mode .mobile-only-ad,
body.light-mode .ad-card {
  background-color: #f8f9fa !important;
  color: #212529;
}


/* Asegura que el slider se vea bien dentro del 100vh */
#bloque-hero {
  min-height: 90vh;
}

#bloque-hero .carousel-item img {
  object-fit: cover;
  height: 100%;
}

@media (min-width: 768px) {
  #bloque-hero {
    height: auto;
  }

  .frase-hero {
    padding: 0.5rem 0;
  }
}
.object-fit-cover {
  object-fit: cover;
}






/* anuncios en escritorio y tablet */
@media (min-width: 768px) {
  .ad-card {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px;
    background-color: #181818;
    border-radius: 8px;
    grid-column: 1 / -1;
  }

  .ad-card img {
    max-width: 100%;
    height: 240px;
    border-radius: 6px;
  }
}

@media (min-width: 1025px) {
  .ad-card { grid-column: 1 / -1; }
}

@media (max-width: 767.98px) {
  .ad-card {
    display: block !important;
    grid-column: span 2;
    background-color: #181818;
    border: 1px solid red;
    padding: 20px;
    text-align: center;
    border-radius: 10px;
    margin: 0 0 16px 0;
  }

  .ad-card img {
    width: 100%;
    height: auto;
    border-radius: 6px;
    object-fit: cover;
  }
}

@media (max-width: 767px) {
  .ad-card {
    display: none !important;
  }
}

/* BANNER FIJO MOVILES */

#mobile-banner {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  aspect-ratio: 4 / 1;
  background: #000;
  z-index: 9999;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  border-top: 3px solid #E3FC53;
}


#mobile-banner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
#mobile-banner a {
  width: 100%;
  height: 100%;
  display: block;
}
#mobile-banner,
#mobile-banner a,
#mobile-banner img {
  margin: 0;
  padding: 0;
}


#mobile-banner button#close-banner {
  position: absolute;
  top: 0;
  right: 0;
  background-color: rgba(255, 255, 255, 0.8);
  color: #000;
  border: none;
  font-size: 20px;
  font-weight: bold;
  width: 32px;
  height: 32px;
  border-radius: 0; /* Ya no es circular */
  cursor: pointer;
  transition: background-color 0.2s ease;
  box-shadow: none; /* Opcional, para estilo más limpio */
}


#mobile-banner button#close-banner:hover {
  background-color: rgba(255, 255, 255, 1);
}

@media (max-width: 767px) {
  #mobile-banner {
    display: flex;
  }
}

/* FIN BANNER FIJO MOVILES */

/* SLIDER PRINCIPAL - HOME */
#sliderInicio {
  border-radius: 0;
  overflow: hidden;
  margin-top: 0 !important;
  padding-top: 0 !important;
  height: 90vh; /* 🔧 Altura dinámica de pantalla */
}

#sliderInicio .carousel-inner {
  height: 100%; /* ⚠️ Necesario para que el contenido dentro crezca */
}

#sliderInicio .carousel-item,
#sliderInicio .carousel-item picture,
#sliderInicio .carousel-item img {
  height: 100%;
  width: 100%;
}

#sliderInicio .carousel-item picture {
  display: block;
}

#sliderInicio .carousel-item img {
  object-fit: cover;
  display: block;
}

/* SLIDER TRACKDAYS */

#sliderTrackDays {
  width: 100%;
  overflow: hidden;
}

#sliderTrackDays .carousel-inner {
  width: 100%;
}

#sliderTrackDays .carousel-item {
  width: 100%;
}

#sliderTrackDays picture,
#sliderTrackDays img {
  width: 100%;
  display: block;
}

#sliderTrackDays img {
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
  
}

/* SLIDER CAMPEOANTOS */

#sliderCampeonatos {
  width: 100%;
  overflow: hidden;
}

#sliderCampeonatos .carousel-inner {
  width: 100%;
}

#sliderCampeonatos .carousel-item {
  width: 100%;
}

#sliderCampeonatos picture,
#sliderCampeonatos img {
  width: 100%;
  display: block;
}

#sliderCampeonatos img {
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
}

/* SLIDER CIRCUITOS */

#sliderCircuitos {
  width: 100%;
  overflow: hidden;
}

#sliderCircuitos .carousel-inner {
  width: 100%;
}

#sliderCircuitos .carousel-item {
  width: 100%;
}

#sliderCircuitos picture,
#sliderCircuitos img {
  width: 100%;
  display: block;
}

#sliderCircuitos img {
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
}

/* SLIDER TIEMPOS */

#sliderTiempos {
  width: 100%;
  overflow: hidden;
}

#sliderTiempos .carousel-inner {
  width: 100%;
}

#sliderTiempos .carousel-item {
  width: 100%;
}

#sliderTiempos picture,
#sliderTiempos img {
  width: 100%;
  display: block;
}

#sliderTiempos img {
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
}



/* SLIDER NUEVO */

.wtd-hero-wrapper {
  height: 100vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  position: relative;
}

.wtd-slider-container {
  position: relative;
  flex: 1;
  width: 100%;
  overflow: hidden;
}

.wtd-slider-text {
  position: absolute;
  top: calc(80px + 2rem); /* Ajusta este 80px si tu header es más alto */
  left: 5%;
  z-index: 10;
  color: white;
  text-shadow: 1px 1px 5px rgba(0,0,0,0.7);
}


.wtd-slider-title {
  font-size: 2.5rem;
  font-weight: bold;
}

@media (min-width: 768px) {
  .wtd-slider-title {
    font-size: 4rem;
  }
}

.wtd-slider-carousel {
  height: 100%;
  width: 100%;
  position: relative;
}

.wtd-slider-slide {
  position: absolute;
  top: 0; left: 0;
  height: 100%;
  width: 100%;
  opacity: 0;
  transition: opacity 1s ease-in-out;
  z-index: 1;
}

.wtd-slider-slide.active {
  opacity: 1;
  z-index: 2;
}

.wtd-slider-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.wtd-frase-final {
  color: #ffffff;
  text-align: center;
  padding: 1.5rem;
  z-index: 20;

}

@media (max-width: 767px) {
  .wtd-hero-wrapper {
    height: auto; /* No fuerza el 100vh en móvil */
    display: block; /* Elimina flex para que se adapte al contenido */
    margin-top: 100px; /* Igual que la altura del header */

  }

  .wtd-slider-container {
    height: calc(60vh - 100px); /* menos altura del header */

  }
  .wtd-slider-text {
    top: calc(0px + 2rem); /* Ajusta este 80px si tu header es más alto */
  }

  .wtd-frase-final {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }
  .wtd-slider-title {
    font-size: 1.8rem;
    font-weight: bold;
  }
}

.wtd-slider-indicators {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  z-index: 15;
}

.wtd-indicator {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.4);
  transition: background-color 0.3s ease;
  cursor: pointer;
}

.wtd-indicator.active {
  background-color: #E3FC53; /* tu color verdoso */
}



/* ----- FIN SLIDER NUEVO */


.wtd-clear-pais,
.wtd-clear-circuito,
.wtd-clear-competicion {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  background: transparent;
  border: none;
  color: #999;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  z-index: 10;
}


.wtd-clear-pais:hover,
.wtd-clear-circuito:hover,
.wtd-clear-competicion:hover {
  color: red;
}


.wtd-clear-country {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  border: none;
  background: transparent;
  font-size: 20px;
  color: #888;
  cursor: pointer;
  z-index: 10;
}

.wtd-clear-country:hover {
  color: #000;
}


.wtd-clear-field {
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  background: none;
  border: none;
  font-size: 1.5rem;
  color: #aaa;
  cursor: pointer;
  z-index: 10;
}
.wtd-clear-field:hover {
  color: red;
}




/* MENU MOVIL NUEVO */

/* MENÚ BURGER MÓVIL */
.wtd-mobile-menu {
  display: none;
  position: fixed;
  top: 90px;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: black;
  z-index: 9999;
  padding: 2rem 1rem;
  flex-direction: column;
  align-items: flex-start;
  overflow-y: auto;
  z-index: 9999999999;

}


.wtd-mobile-menu.active {
  display: flex;
}

.wtd-close-btn {
  font-size: 2rem;
  color: white;
  background: none;
  border: none;
  align-self: flex-end;
  margin-bottom: 1rem;
}

.wtd-mobile-link {
  display: block;
  width: 100%;
  background-color: #222;
  color: white;
  padding: 1rem;
  text-align: left;
  border: none;
  margin-bottom: 0.5rem;
  font-size: 1.2rem;
  text-decoration: none;
}

.wtd-mobile-link:hover {
  background-color: #444;
}

.wtd-dropdown-mobile {
  width: 100%;
}

.wtd-dropdown-toggle {
  width: 100%;
  background-color: #222;
  color: white;
  padding: 1rem;
  text-align: left;
  font-size: 1.2rem;
  border: none;
}

.wtd-dropdown-menu {
  display: none;
  flex-direction: column;
  width: 100%;
}

.wtd-dropdown-menu.show {
  display: flex;
}

.wtd-dropdown-item {
  padding: 0.75rem 1rem;
  background-color: #333;
  color: white;
  text-decoration: none;
}

.wtd-dropdown-item:hover {
  background-color: #555;
}

/* Visibilidad por tamaño de pantalla */
@media (min-width: 992px) {
  .wtd-mobile-menu,
  .wtd-menu-toggle {
    display: none !important;
  }
}


/* Icono burger personalizado blanco */
.wtd-burger-icon {
  width: 30px;
  height: 22px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.wtd-burger-icon span {
  display: block;
  height: 3px;
  background-color: white;
  border-radius: 2px;
  transition: all 0.3s ease;
}

.wtd-menu-toggle.open .wtd-burger-icon span:nth-child(1) {
  transform: rotate(45deg) translate(5px, 5px);
}
.wtd-menu-toggle.open .wtd-burger-icon span:nth-child(2) {
  opacity: 0;
}
.wtd-menu-toggle.open .wtd-burger-icon span:nth-child(3) {
  transform: rotate(-45deg) translate(5px, -5px);
}

/* 📱 MÓVIL */
@media (max-width: 991px) {
  .wtd-mobile-link.active {
    border-bottom: 2px solid #e3fc53;
    color: #e3fc53 !important;
  }
}

/* 💻 ESCRITORIO */
@media (min-width: 992px) {
  .menu-overlay .btn-outline-light.active {
    background-color: #000 !important;
    border: 2px solid #e3fc53 !important;
    color: #e3fc53 !important;
  }
}





/*  FIN MENU MOVIL NUEVO */

.filtro-btn {
  color: #ffffff;
  border: 1px solid #ffffff;
  background-color: transparent;
  transition: all 0.3s ease;
  font-family: 'Roboto', sans-serif !important;

}

.filtro-btn:hover {
  background-color: rgba(255, 255, 255, 0.1);
}

.filtro-btn.active {
  color: #000;
  background-color: #e3fc53;
  border-color: #e3fc53;
}

.filtro-btn.active[data-filter="coche"] {
  background-color: #e3fc53;
  color: #000;
  border-color: #e3fc53;
}

.filtro-btn.active[data-filter="moto"] {
  background-color: #e3fc53;
  color: #000;
  border-color: #e3fc53;
}

.modal input.form-control,
.modal textarea.form-control,
.modal select.form-select {
  font-family: 'Roboto', sans-serif !important;

}

input.form-control,
textarea.form-control,
select.form-select {
  font-family: 'Roboto', sans-serif;
}


.btn-map {
  background-color: #e3fc53;
  color: #000;
  font-weight: 600;
  border: none;
  border-radius: 8px;
  transition: all 0.3s ease;
  font-family: 'Roboto', sans-serif !important;

}
.btn-map:hover {
  background-color: #000000;
  border: 1px solid #e3fc53;
  transform: scale(1.05);
  color:#e3fc53;
  text-decoration: none;
}


/*  MAPA  */

  #map {
    height: 90vh;
    width: 94%;
    max-width: 1200px;
    margin: 30px auto;
    border-radius: 20px;
    box-shadow: 0 0 15px #e3fc53;
  }

  .leaflet-popup-content-wrapper {
    background: #111;
    color: #fff;
    border: 1px solid #e3fc53;
    border-radius: 10px;
    font-family: 'Roboto', sans-serif;
  }

  .leaflet-popup-tip {
    background: #e3fc53;
  }

  .leaflet-marker-icon.custom-marker {
    object-fit: contain;
    border-radius: 50%;
  }

  .popup-content h5 {
    margin: 0 0 5px 0;
    color: #e3fc53;
    font-size: 1rem;
  }

  .popup-content img {
    height: 150px;
    vertical-align: middle;
    margin-right: 6px;
  }

  .popup-content a {
    color: #e3fc53;
    text-decoration: underline;
    font-size: 0.9rem;
  }
/*  FIN MAPA */

.tooltip-inner {
  max-width: 300px;
  font-size: 1rem;
  text-align: left;
  padding: 0.75em 1em;
  background-color: #444 !important;
  color: #fff !important;
}
.tooltip.show {
  opacity: 1;
}



.btn-registro-tiempos {
  font-family: 'Roboto', sans-serif !important;
  background-color: #e3fc53;
  color:#000;
  border-color: #e3fc53;
}

.btn-registro-tiempos:hover {
  background-color: #000; 
  border-color: #e3fc53;
  color: #e3fc53;
}


.autocomplete-container {
  position: relative;
}
.autocomplete-suggestions {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: #343a40;
  border: 1px solid #495057;
  border-radius: 0.375rem;
  max-height: 200px;
  overflow-y: auto;
  z-index: 9999;
  display: none;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  -webkit-overflow-scrolling: touch;
  touch-action: manipulation;
}
.autocomplete-suggestions.show {
  display: block;
}
.autocomplete-item {
  padding: 8px 12px;
  color: #fff;
  cursor: pointer;
  border-bottom: 1px solid #495057;
}
.autocomplete-item:hover {
  background-color: #495057;
}

.wtd-mobile-logo {
  text-align: center;
}

@media (max-width: 767px) {
  .filter-container {
    overflow: visible !important;
  }
}

#filterForm {
  overflow: visible !important;
}

@media (max-width: 767.98px) {
  /* Solo móvil */
  .logo-tablet, .tablet-only {
    display: none !important;
  }
}

@media (min-width: 768px) and (max-width: 991.98px) {
  /* Solo tablet */
  .login-desktop-left,
  .login-desktop-right,
  .logo-movil,
  .desktop-only {
    display: none !important;
  }
}

@media (min-width: 992px) {
  /* Solo escritorio */
  .logo-tablet, .logo-movil,
  .tablet-only, .mobile-only {
    display: none !important;
  }

  .login-desktop-left,
  .login-desktop-right {
    display: flex !important;
  }
}


/* Tablet: ajustar ancho carrusel y formulario */
@media (min-width: 768px) and (max-width: 991.98px) {
  .login-desktop-left {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .login-desktop-right {
    flex: 0 0 50%;
    max-width: 50%;
    padding: 1rem;
  }

  .login-carousel-title {
    font-size: 1.2rem;
    padding: 10px;
  }

  .login-box {
    padding: 1.5rem;
  }
}

/* Mostrar versión escritorio solo si horizontal o escritorio */
@media (min-width: 768px) and (max-width: 991.98px) and (orientation: portrait) {
  .login-desktop-wrapper {
    display: none !important;
  }
}

@media (min-width: 768px) and (max-width: 991.98px) and (orientation: portrait) {
  .mobile-only {
    display: block !important;
  }
}



@media screen and (min-width: 768px) and (max-width: 1366px) and (orientation: landscape) {
  body {
    padding-top: 0px !important;
  }
}




.mobile-bottom-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background: #111;
  display: flex;
  justify-content: space-around;
  border-top: 1px solid #333;
  z-index: 999;
  padding: 0.3rem 0;
}

.mobile-bottom-nav .nav-btn {
  flex: 1;
  text-align: center;
  color: #bbb;
  font-size: 0.9rem;
  background: none;
  border: none;
  outline: none;
}

.mobile-bottom-nav .nav-btn i {
  font-size: 1.2rem;
  display: block;
  margin-bottom: 2px;
}

.mobile-bottom-nav .nav-btn.active {
  color: #e3fc53;
}



/* PONER BOTONES DEL INDEX DEBAJO DE LAS FOTOS en moviles*/
@media (max-width: 767px) {
  .home-centrado .row.align-items-center.mb-5 {
    flex-direction: column; /* Stack vertically on mobile */
  }

  .btn-container {
    display: none; /* Hide desktop button on mobile */
  }

  .btn-container-mobile {
    order: 3; /* Move mobile button below text and image */
    width: 100%;
    text-align: center;
    margin-top: 1rem; /* Spacing above button */
  }

  .btn-container-mobile .btn {
    margin-bottom: 1rem; /* Spacing below button */
  }
}

/* Adjust padding for smaller screens */
.home-centrado {
  padding-left: 90px;
  padding-right: 90px;
}

@media (max-width: 576px) {
  .home-centrado {
    padding-left: 20px;
    padding-right: 20px;
  }
}

/* --- Highlight fila abierta (rellena celdas) --- */

/* quita cualquier pseudo-elemento que pudiera romper columnas */
#tabla-campeonatos tr.is-open::before { content: none !important; }

/* pinta TODAS las celdas de la fila abierta */
#tabla-campeonatos.table tbody tr.is-open > *,
#tabla-campeonatos.table.table-hover tbody tr.is-open:hover > * {
  background-color: rgb(88, 90, 94) !important; 
  transition: background-color .2s ease;
}

/* banda azul en el borde izquierdo (sólo primera celda) */
#tabla-campeonatos.table tbody tr.is-open > *:first-child {
  box-shadow:
    inset 4px 0 0 0 #e3fc53,}

/* el <tr> no necesita fondo propio ni posicionamiento */
#tabla-campeonatos tr.is-open {
  position: static !important;
  background: none !important;
}




