.elementor-436 .elementor-element.elementor-element-b10f050{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-436 .elementor-element.elementor-element-56ce59a{--display:flex;--position:fixed;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;top:0px;}body:not(.rtl) .elementor-436 .elementor-element.elementor-element-56ce59a{left:0px;}body.rtl .elementor-436 .elementor-element.elementor-element-56ce59a{right:0px;}.elementor-widget-nav-menu .elementor-nav-menu .elementor-item{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item{color:var( --e-global-color-text );fill:var( --e-global-color-text );}.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.highlighted,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus{color:var( --e-global-color-accent );fill:var( --e-global-color-accent );}.elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:before,
					.elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:after{background-color:var( --e-global-color-accent );}.elementor-widget-nav-menu .e--pointer-framed .elementor-item:before,
					.elementor-widget-nav-menu .e--pointer-framed .elementor-item:after{border-color:var( --e-global-color-accent );}.elementor-widget-nav-menu{--e-nav-menu-divider-color:var( --e-global-color-text );}.elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item, .elementor-widget-nav-menu .elementor-nav-menu--dropdown  .elementor-sub-item{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-436 .elementor-element.elementor-element-877ff21 .elementor-menu-toggle{margin-left:auto;background-color:#662828;}.elementor-436 .elementor-element.elementor-element-877ff21 div.elementor-menu-toggle{color:#FFFFFF;}.elementor-436 .elementor-element.elementor-element-877ff21 div.elementor-menu-toggle svg{fill:#FFFFFF;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(max-width:767px){.elementor-436 .elementor-element.elementor-element-56ce59a{--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--z-index:1000;}}/* Start custom CSS for html, class: .elementor-element-82777e4 *//* ------------------- */
    /* VARIABLES Y GLOBALES */
    /* ------------------- */
    :root {
      --rail-red: #B71C1C;   /* rojo ferroviario */
      --rail-blue: #003366;  /* azul confianza */
      --rail-green: #28A745; /* CTA */
      --rail-gray: #F5F5F5;  /* fondos claros */
      --slate-100: #f1f5f9;
      --slate-200: #e2e8f0;
      --slate-500: #64748b;
      --slate-600: #475569;
      --slate-700: #334155;
      --slate-800: #1e293b;
    }

    /* Reseteo básico y configuración de fuentes */
    * {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    html {
      scroll-behavior: smooth;
    }

    body {
      font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
      background-color: #fff;
      color: var(--slate-800);
      line-height: 1.6;
    }
.h1boton{
font-size: 15px !important;
font-family:  Montserrat, Inter, system-ui, sans-serif;
font-weight: 500 !important;
}
.blanco{
    color: #ffffff !important;
}
 
#areas {
	background-image: linear-gradient(to right, rgba(0,0,0,0.6), rgba(0,0,0,0.3), rgba(0,0,0,0.1)), url(https://innobahn.cl/wp-content/uploads/2025/11/Puente-Malleco-01.jpg);
	background-position: center;
	padding: 60px 0px;
	/* color: #ffffff; */
}
    .heading {
      font-family: Montserrat, Inter, system-ui, sans-serif;
    }
    .fondoblanco{
        background-color: #ffffff;
    }
    .section {
      padding-top: 5rem;    /* 80px */
      padding-bottom: 5rem; /* 80px */
      scroll-margin-top: 64px; /* Altura del navbar */
    }

    .container {
      max-width: 1280px;
      margin-left: auto;
      margin-right: auto;
      padding-left: 1rem;
      padding-right: 1rem;
    }
    
    /* Clases de utilidad personalizadas */
    .glass {
      backdrop-filter: saturate(140%) blur(10px);
      background: rgba(255, 255, 255, .08);
    }
    .shadow-soft {
      box-shadow: 0 10px 30px rgba(0, 0, 0, .12);
    }
    
    /* ------------------- */
    /* COMPONENTES GENERALES */
    /* ------------------- */
    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 0.75rem 1.5rem; /* py-3 px-6 */
      border-radius: 0.75rem; /* rounded-xl */
      text-decoration: none;
      font-weight: 500;
      transition: opacity 0.2s;
    }
    .btn:hover {
      opacity: 0.9;
    }
    .btn-green {
      background-color: #9e0e10;
      color: white;
    }
    .btn-green:hover{
        color: #ffffff;
    }
    .btn-red {
      background-color: red;
      color: white;
    }

    /* ------------------- */
    /* NAVBAR */
    /* ------------------- */
    .main-header {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 50;
      background-color: rgba(0, 0, 0, 0.8);
      backdrop-filter: blur(10px);
    }
    
    .navbar {
      height: 64px; /* h-16 */
      display: flex;
      align-items: center;
      justify-content: space-between;
    }
    
    .logo {
      display: flex;
      align-items: center;
      gap: 0.5rem;
      text-decoration: none;
    }
    
    .logo-icon {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 36px;
      height: 36px;
      border-radius: 0.75rem;
      background-color: var(--rail-red);
      color: white;
    }
    
    .logo-text {
      font-size: 1.25rem;
      font-weight: 800;
      letter-spacing: -0.05em;
      color: var(--rail-blue);
    }
    
    .main-nav {
      display: none; /* Oculto por defecto */
      align-items: center;
      gap: 2rem;
      font-size: 0.875rem;
      font-weight: 500;
    }
    
    .main-nav a {
      text-decoration: none;
      color: #ffffff;
    }
    
    .main-nav a:hover {
      color: #ffffff;
    }

    .main-nav .btn {
      margin-left: 0.5rem;
      padding: 0.5rem 1rem; /* py-2 px-4 */
    }
    
    /* ------------------- */
    /* HERO */
    /* ------------------- */
    .hero {
      padding-top: 3rem; /* pt-28 */
      	padding-bottom: 0px;
    }

    .hero-wrapper {
      position: relative;
    }

    .hero-bg {
      position: absolute;
      inset: 0;
      z-index: -1;
    }

    .hero-bg img {
      width: 100%;
      height: 100vh;
      object-fit: cover;
    }

    .hero-bg-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(to right, rgba(0,0,0,0.6), rgba(0,0,0,0.3), rgba(0,0,0,0.1));
    }
    
    .hero-content {
      min-height: 60vh;
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding-top: 20px;
  padding-bottom: 20px;
    }
    
    .hero-content h1 {
      font-size: 2.25rem;
      font-weight: 800;
      color: white;
      line-height: 1.2;
    }
    
    .hero-content h1 span {
      color: #9e0e10;
    }
    
    .hero-content p {
      margin-top: 1.5rem;
      font-size: 1.125rem;
      color: var(--slate-100);
      max-width: 56rem; /* max-w-3xl */
    }
    
    .hero-buttons {
      margin-top: 2rem;
      display: flex;
      align-items: center;
      gap: 1rem;
    }
    
    .btn-secondary {
      background-color: rgba(255, 255, 255, 0.1);
      color: white;
      border: 1px solid rgba(255, 255, 255, 0.3);
    }
    .btn-secondary:hover {
      background-color: rgba(255, 255, 255, 0.2);
    }

    /* ------------------- */
    /* GRID LAYOUTS */
    /* ------------------- */
    .grid {
      display: grid;
      gap: 2.5rem; /* gap-10 */
    }

    .grid-gap-6 {
      gap: 1.5rem;
    }
    .grid-gap-4 {
      gap: 1rem;
    }

    /* ------------------- */
    /* SECTIONS */
    /* ------------------- */
    .bg-light-gray {
      background-color: var(--rail-gray);
    }

    .section-title {
      font-size: 1.875rem;
      font-weight: 800;
      color: var(--rail-blue);
    }
    
 
    .title-wrapper {
        display: flex;
        flex-wrap: wrap;
        align-items: flex-end;
        justify-content: space-between;
        gap: 1.5rem;
    }
    
    /* About Us Section */
    .about-content {
      align-items: center;
    }
    .about-content h2 {
      margin: 0;
    }
    .about-content p {
      margin-top: 1.25rem;
      font-size: 1.125rem;
      color: var(--slate-700);
    }
    .tags-container {
      margin-top: 1.5rem;
      display: flex;
      flex-wrap: wrap;
      gap: 0.75rem;
    }
    .tag {
      padding: 0.25rem 0.75rem;
      border-radius: 9999px;
      background-color: white;
      border: 1px solid var(--slate-200);
      font-size: 0.875rem;
    }
    .image-box {
      position: relative;
    }
    .image-box img {
      width: 100%;
      border-radius: 1rem;
    }
    .image-card {
      position: absolute;
      bottom: -1.5rem;
      left: -1.5rem;
      background-color: white;
      border-radius: 1rem;
      padding: 1.5rem;
      border: 1px solid var(--slate-200);
    }
    .image-card p:first-child {
      font-size: 1.25rem;
      font-weight: 700;
      color: var(--rail-blue);
    }
    .image-card p:last-child {
      font-size: 0.875rem;
      color: var(--slate-600);
    }
    
    /* Services Section */
    .service-card {
      padding: 1.5rem;
      border-radius: 1rem;
      border: 1px solid var(--slate-200);
      transition: transform 0.2s;
    }
    .service-card:hover {
      transform: translateY(-2px);
    }
    .service-card-icon {
      width: 48px;
      height: 48px;
      border-radius: 0.75rem;
      background-color: rgba(0, 51, 102, 0.1);
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 1rem;
      padding: 5px;
    }
    .service-card-icon svg {
      width: 24px;
      height: 24px;
      color: var(--rail-blue);
    }
    .service-card h3 {
      font-size: 1.25rem;
      font-weight: 700;
    }
    .service-card p {
      margin-top: 0.5rem;
      font-size: 0.875rem;
      color: var(--slate-600);
    }
    
    /* Methodology Section */
    .step-card {
      position: relative;
      background-color: white;
      padding: 1.5rem;
      border-radius: 1rem;
      border: 1px solid var(--slate-200);
    }
    .step-card h3 {
      font-size: 1.125rem;
      font-weight: 700;
      color: var(--rail-blue);
    }
    .step-card ul {
      margin-top: 0.75rem;
      font-size: 0.875rem;
      color: var(--slate-600);
      list-style-position: inside;
      padding-left: 0;
      display: flex;
      flex-direction: column;
      gap: 0.5rem;
    }
    .step-card.highlighted {
      box-shadow: 0 0 0 2px rgba(183, 28, 28, 0.4);
    }
    .step-card::before {
      content: "";
      position: absolute;
      left: 1rem;
      top: 0;
      bottom: 0;
      width: 0px;
      background: linear-gradient(180deg, var(--rail-blue), var(--rail-red));
      opacity: .2
    }

    /* Clients Section */
    .client-box {
      padding: 1.25rem;
      border-radius: 1rem;
      border: 1px solid var(--slate-200);
      text-align: center;
      background: #fff;
    }
    
    /* Benefits Section */
    .benefit-card {
      padding: 1.5rem;
      border-radius: 1rem;
      border: 1px solid var(--slate-200);
      background-color: white;
    }
    .benefit-card h3 {
      font-weight: 700;
    }
    .benefit-card p {
      margin-top: 0.5rem;
      font-size: 0.875rem;
      color: var(--slate-600);
    }

    /* Cases Section */
    .cases-grid img {
      border-radius: 1rem;
      width: 100%;
      height: 256px; /* h-64 */
      object-fit: cover;
    }

    /* Contact Section */
    .contact-section {
      background: linear-gradient(to bottom right, var(--rail-blue), var(--rail-red));
      color: white;
    }
    .contact-grid {
      align-items: center;
    }
    .contact-content h2 {
      font-size: 1.875rem;
      font-weight: 800;
    }
    .contact-content p {
      margin-top: 0.75rem;
      color: rgba(255,255,255,0.9);
    }
    .contact-content ul {
      margin-top: 1.5rem;
      list-style-type: none;
      color: rgba(255,255,255,0.85);
      font-size: 0.875rem;
      display: flex;
      flex-direction: column;
      gap: 0.5rem;
    }
    .contact-form {
      border-radius: 1rem;
      padding: 1.5rem;
      border: 1px solid rgba(255,255,255,0.1);
    }
    .contact-form .grid { gap: 1rem; }
    
    .contact-form input, .contact-form textarea {
      width: 100%;
      padding: 0.75rem 1rem;
      border-radius: 0.75rem;
      background-color: rgba(255,255,255,0.9);
      color: var(--slate-800);
      border: none;
      outline: none;
      transition: box-shadow 0.2s;
    }
    .contact-form input::placeholder, .contact-form textarea::placeholder {
      color: var(--slate-500);
    }
    .contact-form input:focus, .contact-form textarea:focus {
      box-shadow: 0 0 0 4px rgba(40, 167, 69, 0.3);
    }
    .contact-form button {
      margin-top: 0.5rem;
      width: 100%;
      border: none;
      cursor: pointer;
    }

    /* ------------------- */
    /* FOOTER */
    /* ------------------- */
    .main-footer {
      padding-top: 2.5rem;
      padding-bottom: 2.5rem;
      background-color: #0b1524;
      color: white;
    }
    .footer-content {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: space-between;
      gap: 1.5rem;
    }
    .footer-logo {
      display: flex;
      align-items: center;
      gap: 0.75rem;
    }
    .footer-logo p { line-height: 1.2; }
    .footer-logo .heading { font-weight: 700; }
    .footer-logo .subtext { font-size: 0.75rem; color: rgba(255,255,255,0.7); }
    .footer-nav {
      display: flex;
      gap: 1.5rem;
      font-size: 0.875rem;
      color: rgba(255,255,255,0.8);
    }
    .footer-nav a { text-decoration: none; color: inherit; }
    .footer-nav a:hover { color: white; }
    .footer-copy {
      font-size: 0.75rem;
      color: rgba(255,255,255,0.6);
    }
    
    /* ------------------- */
    /* RESPONSIVE DESIGN */
    /* ------------------- */
    @media (min-width: 640px) { /* sm */
      .container { padding-left: 1.5rem; padding-right: 1.5rem; }
      .hero-content h1 { font-size: 3rem; }
      .hero-content p { font-size: 1.25rem; }
      .grid-sm-cols-2 { grid-template-columns: repeat(2, 1fr); }
    }
    
    @media (min-width: 768px) { /* md */
      .main-nav { display: flex; }
      .section-title { font-size: 2.25rem; }
      .hero-content h1 { font-size: 3.75rem; }
      .grid-md-cols-2 { grid-template-columns: repeat(2, 1fr); }
      .grid-md-cols-3 { grid-template-columns: repeat(3, 1fr); }
      .grid-md-cols-4 { grid-template-columns: repeat(4, 1fr); }
      .footer-content { flex-direction: row; }
    }

    @media (min-width: 1024px) { /* lg */
      .container { padding-left: 2rem; padding-right: 2rem; }
      .grid-lg-cols-4 { grid-template-columns: repeat(4, 1fr); }
      .grid-lg-cols-5 { grid-template-columns: repeat(5, 1fr); }
    }
/* Contenedor del dropdown */
.dropdown {
  position: relative;
  display: inline-block;
}

/* Estilo del menú oculto */
.dropdown-menu {
  display: none;
  position: absolute;
  background-color: #ffffff; /* Color de fondo */
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.1);
  z-index: 1;
  list-style: none;
  padding: 0;
  margin: 0;
  border-radius: 4px;
  top: 100%; /* Aparece justo debajo */
  left: 0;
}

/* Estilo de los items del submenú */
.dropdown-menu li a {
  color: #333;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
  font-size: 14px;
  transition: background 0.3s ease;
}

/* Cambio de color al pasar el mouse por las subopciones */
.dropdown-menu li a:hover {
  background-color: #f1f1f1;
  color: #e31e24; /* Color rojo de tu marca */
}

/* MOSTRAR el menú al hacer hover en el contenedor */
.dropdown:hover .dropdown-menu {
  display: block;
}

/* Opcional: Flecha indicadora */
.dropdown-toggle::after {
  content: ' ▼';
  font-size: 10px;
  vertical-align: middle;
}/* End custom CSS */