:root {
    --blue: #1E90FF; --blue-dark: #1570CC; --dark: #0D1117; --dark2: #141B26;
    --dark3: #1C2637; --gray-light: #F5F7FA; --gray-mid: #E8ECF0;
    --text-white: #FFFFFF; --text-light: #C8D0DC; --text-muted: #7A8899; --text-dark: #1A2332;
  }
  * { margin:0; padding:0; box-sizing:border-box; }
  body { font-family:'Open Sans',sans-serif; color:var(--text-dark); overflow-x:hidden; }

  .accent-gradient {
    background: linear-gradient(90deg, #1E90FF 0%, #38bfff 50%, #0ecfff 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
  }

  /* NAV */
  nav {
    position:fixed; top:0; left:0; right:0; z-index:1000;
    display:flex; align-items:center; justify-content:space-between; padding:16px 60px;
    background:rgba(13,17,23,0.95); backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(255,255,255,0.05);
  }
  .nav-logo { display:flex; align-items:center; gap:10px; cursor:pointer; }
  .nav-links { display:flex; gap:36px; list-style:none; }
  .nav-links a {
    color:var(--text-white); text-decoration:none; font-family:'Montserrat',sans-serif;
    font-size:14px; font-weight:500; cursor:pointer; transition:color 0.2s;
  }
  .nav-links a:hover { color:var(--blue); }

  /* HAMBURGER */
  .nav-hamburger {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    z-index: 1001;
  }
  .nav-hamburger span {
    display: block;
    width: 24px;
    height: 2px;
    background: white;
    border-radius: 2px;
    transition: all 0.3s ease;
    transform-origin: center;
  }
  .nav-hamburger.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .nav-hamburger.active span:nth-child(2) { opacity: 0; }
  .nav-hamburger.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  /* MOBILE MENU - uses visibility/opacity instead of display:none for transitions */
  .nav-mobile-menu {
    position: fixed;
    top: 80px;
    left: 0;
    right: 0;
    background: rgba(13,17,23,0.98);
    backdrop-filter: blur(12px);
    flex-direction: column;
    padding: 8px 0;
    z-index: 999;

    visibility: hidden;
    opacity: 0;
    transform: translateY(-8px);
    transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s;
    display: flex;
  }
  .nav-mobile-menu.open {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
  }
  .nav-mobile-menu a {
    padding: 15px 28px;
    color: var(--text-light);
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    font-weight: 500;
    cursor: pointer;
    transition: color 0.2s, background 0.2s;
  }
  .nav-mobile-menu a:hover { color: white; background: rgba(255,255,255,0.04); }


  /* CAROUSEL ARROWS */
  .carousel-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    background: transparent;
    border: none;
    border-radius: 50%;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.2s;
  }
  .carousel-arrow:hover { background: rgba(255,255,255,0.15); }
  .carousel-arrow svg { width: 20px; height: 20px; }
  .carousel-prev { left: 24px; }
  .carousel-next { right: 24px; }

  /* HERO */
  #inicio {
    min-height:100vh; position:relative;
    display:flex; align-items:center; overflow:hidden;
    background: transparent;
  }
  .carousel-bg { position: absolute; inset: 0; z-index: 0; }
  .carousel-slide {
    position: absolute; inset: 0;
    background-size: cover; background-position: center center;
    opacity: 0; transition: opacity 1s ease;
  }
  .carousel-slide::after {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(to right, rgba(5,10,18,0.62) 35%, rgba(5,10,18,0.30) 100%);
  }

  .carousel-slide.active { opacity: 1; }
  .carousel-dots {
    position: absolute; bottom: 30px; left: 50%; transform: translateX(-50%);
    display: flex; gap: 10px; z-index: 10;
  }
  .dot {
    width: 10px; height: 10px; border-radius: 50%;
    background: rgba(255,255,255,0.4); cursor: pointer; transition: background 0.3s;
  }
  .dot.active { background: var(--blue); }
  #inicio .hero-content { position: relative; z-index: 2; }

  .hero-content { position:relative; z-index:2; padding:120px 60px 80px; max-width:680px; }
  .hero-badge { display:flex; align-items:center; gap:12px; margin-bottom:28px; }
  .hero-badge-line { width:32px; height:2px; background:var(--blue); }
  .hero-badge span { font-family:'Montserrat',sans-serif; font-size:12px; font-weight:700; letter-spacing:2px; color:var(--blue); text-transform:uppercase; }
  .hero-title { font-family:'Montserrat',sans-serif; font-size:clamp(42px,5vw,62px); font-weight:900; line-height:1.1; color:var(--text-white); margin-bottom:24px; }
  .hero-desc { font-size:16px; line-height:1.7; color:var(--text-light); margin-bottom:40px; max-width:500px; }
  .hero-buttons { display:flex; gap:16px; flex-wrap:wrap; }
  .btn-primary {
    display:inline-flex; align-items:center; gap:10px; background:var(--blue); color:white;
    padding:14px 28px; border-radius:6px; font-family:'Montserrat',sans-serif; font-size:14px;
    font-weight:700; cursor:pointer; border:none; transition:background 0.2s,transform 0.2s;
  }
  .btn-primary:hover { background:var(--blue-dark); transform:translateY(-1px); }
  .btn-secondary {
    display:inline-flex; align-items:center; gap:10px; background:transparent; color:white;
    padding:14px 28px; border-radius:6px; font-family:'Montserrat',sans-serif; font-size:14px;
    font-weight:700; cursor:pointer; border:2px solid rgba(255,255,255,0.4);
    transition:border-color 0.2s,transform 0.2s;
  }
  .btn-secondary:hover { border-color:white; transform:translateY(-1px); }
  .hero-stats { display:flex; gap:60px; margin-top:60px; padding-top:40px; }
  .stat-num { font-family:'Montserrat',sans-serif; font-size:36px; font-weight:800; color:#ffffff; text-shadow: 0 0 20px rgba(30,144,255,0.6); }
  .stat-label { font-size:13px; color:rgba(255,255,255,0.92); margin-top:4px; font-weight:500; letter-spacing:0.3px; }

  /* SECTIONS SHARED */
  .section-badge { display:flex; align-items:center; justify-content:center; gap:14px; margin-bottom:20px; }
  .section-badge-line { width:40px; height:2px; background:var(--blue); }
  .section-badge span { font-family:'Montserrat',sans-serif; font-size:11px; font-weight:700; letter-spacing:3px; color:var(--blue); text-transform:uppercase; }
  .section-title { font-family:'Montserrat',sans-serif; font-size:clamp(28px,3.5vw,42px); font-weight:800; text-align:center; line-height:1.2; margin-bottom:20px; }
  .section-desc { text-align:center; font-size:16px; line-height:1.7; color:var(--text-muted); max-width:680px; margin:0 auto; }

  /* NOSOTROS */
  #nosotros { background:var(--gray-light); padding:100px 60px; }
  .cards-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:60px; }
  .card { background:white; border-radius:12px; padding:32px 28px; border:1px solid var(--gray-mid); transition:box-shadow 0.3s,transform 0.3s; }
  .card:hover { box-shadow:0 12px 40px rgba(0,0,0,0.1); transform:translateY(-4px); }
  .card-icon { width:52px; height:52px; background:var(--blue); border-radius:10px; display:flex; align-items:center; justify-content:center; margin-bottom:20px; }
  .card-icon svg { width:26px; height:26px; fill:white; }
  .card-title { font-family:'Montserrat',sans-serif; font-size:16px; font-weight:700; margin-bottom:10px; color:var(--text-dark); }
  .card-text { font-size:14px; line-height:1.6; color:var(--text-muted); }

  /* SERVICIOS */
  #servicios { padding:100px 60px; position:relative; background:var(--dark2); }
  #servicios .section-title { color:white; }
  #servicios .section-desc { color:var(--text-light); }
  .servicios-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:60px; }
  .servicio-card { background:var(--dark3); border-radius:12px; padding:36px 32px; border:1px solid rgba(255,255,255,0.06); transition:border-color 0.3s,transform 0.3s; }
  .servicio-card:hover { border-color:rgba(30,144,255,0.4); transform:translateY(-4px); }
  .servicio-icon { width:52px; height:52px; background:rgba(30,144,255,0.15); border-radius:10px; display:flex; align-items:center; justify-content:center; margin-bottom:20px; }
  .servicio-icon svg { width:26px; height:26px; }
  .servicio-title { font-family:'Montserrat',sans-serif; font-size:17px; font-weight:700; color:white; margin-bottom:16px; }
  .servicio-list { list-style:none; display:flex; flex-direction:column; gap:8px; }
  .servicio-list li { font-size:14px; color:var(--text-light); display:flex; align-items:center; gap:8px; }
  .servicio-list li::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--blue); flex-shrink:0; }

  /* INDUSTRIAS */
  #industrias { background:var(--gray-light); padding:100px 60px; }
  .industrias-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:16px; margin-top:60px; }
  .industria-card { background:white; border-radius:12px; padding:32px 16px; border:1px solid var(--gray-mid); display:flex; flex-direction:column; align-items:center; gap:16px; transition:box-shadow 0.3s,transform 0.3s,border-color 0.3s; }
  .industria-card:hover { box-shadow:0 8px 30px rgba(30,144,255,0.15); transform:translateY(-6px); border-color:var(--blue); }
  .industria-icon { width:56px; height:56px; background:var(--gray-light); border-radius:50%; display:flex; align-items:center; justify-content:center; transition:background 0.3s; }
  .industria-card:hover .industria-icon { background:var(--blue); }
  .industria-icon svg { width:28px; height:28px; fill:#7A8899; transition:fill 0.3s; }
  .industria-card:hover .industria-icon svg { fill:white; }
  .industria-name { font-family:'Montserrat',sans-serif; font-size:13px; font-weight:600; text-align:center; color:var(--text-dark); transition:color 0.3s; }
  .industria-card:hover .industria-name { color:var(--blue); }

  /* CLIENTES */
  #clientes { padding:100px 60px; position:relative; background:var(--dark2); overflow:hidden; }
  .clientes-video-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.35;
    z-index: 0;
  }
  #clientes .section-badge,
  #clientes .section-title,
  #clientes .section-desc,
  #clientes .clientes-tags,
  #clientes .clientes-stats {
    position: relative;
    z-index: 1;
  }
  #clientes .section-title { color:white; }
  #clientes .section-desc { color:var(--text-light); }
  .clientes-tags { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top:50px; }
  .tag { background:transparent; border:1px solid rgba(255,255,255,0.2); color:var(--text-light); padding:10px 20px; border-radius:100px; font-size:14px; font-family:'Montserrat',sans-serif; font-weight:500; transition:border-color 0.2s,color 0.2s; }
  .tag:hover { border-color:var(--blue); color:white; }
  .clientes-stats { display:flex; justify-content:center; gap:120px; margin-top:60px; padding-top:50px; border-top:1px solid rgba(255,255,255,0.08); }
  .clientes-stat-num { font-family:'Montserrat',sans-serif; font-size:42px; font-weight:800; color:#ffffff; text-shadow: 0 0 20px rgba(30,144,255,0.6); margin-bottom:8px; }
  .clientes-stat-text { font-size:14px; color:rgba(255,255,255,0.92); font-weight:500; }

  /* CONTACTO */
  #contacto { background:var(--gray-light); padding:100px 60px; }
  .contacto-grid { display:grid; grid-template-columns:1fr 1fr; gap:50px; margin-top:60px; max-width:1000px; margin-left:auto; margin-right:auto; align-items:start; }
  .contacto-info { display:flex; flex-direction:column; gap:20px; }
  .contact-item { display:flex; align-items:center; gap:16px; }
  .contact-icon { width:44px; height:44px; background:var(--blue); border-radius:8px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .contact-icon svg { width:20px; height:20px; fill:white; }
  .contact-label { font-family:'Montserrat',sans-serif; font-size:14px; font-weight:700; color:var(--text-dark); margin-bottom:2px; }
  .contact-value { font-size:13px; color:var(--text-muted); }
  .oficinas-title { font-family:'Montserrat',sans-serif; font-size:15px; font-weight:700; color:var(--blue); margin-top:8px; margin-bottom:12px; }
  .oficinas-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .oficina-card { background:white; border-radius:8px; padding:16px 20px; border:1px solid var(--gray-mid); }
  .oficina-city { font-family:'Montserrat',sans-serif; font-size:14px; font-weight:600; color:var(--text-dark); margin-bottom:4px; }
  .oficina-phone { font-size:13px; color:var(--text-muted); }
  .form-card { background:white; border-radius:16px; padding:40px; border:1px solid var(--gray-mid); box-shadow:0 4px 24px rgba(0,0,0,0.06); }
  .form-card-title { font-family:'Montserrat',sans-serif; font-size:20px; font-weight:800; color:var(--text-dark); margin-bottom:6px; }
  .form-card-desc { font-size:14px; color:var(--text-muted); margin-bottom:28px; line-height:1.6; }
  .sform-group { margin-bottom:14px; }
  .sform-control { width:100%; padding:13px 18px; border:1.5px solid var(--gray-mid); border-radius:10px; font-family:'Open Sans',sans-serif; font-size:14px; color:var(--text-dark); background:white; outline:none; transition:border-color 0.2s,box-shadow 0.2s; }
  .sform-control:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(30,144,255,0.1); }
  .sform-control::placeholder { color:#b0bec5; }
  textarea.sform-control { resize:none; }
  .submit-btn { width:100%; padding:14px; background:var(--blue); color:white; border:none; border-radius:10px; font-family:'Montserrat',sans-serif; font-size:15px; font-weight:700; cursor:pointer; transition:background 0.2s,transform 0.2s; display:flex; align-items:center; justify-content:center; gap:10px; margin-top:4px; }
  .submit-btn:hover { background:var(--blue-dark); transform:translateY(-1px); }
  .submit-btn:disabled { opacity:0.8; cursor:not-allowed; transform:none; }

  /* FOOTER */
  footer { background:var(--dark); padding:40px 60px; text-align:center; border-top:1px solid rgba(255,255,255,0.06); }
  footer p { font-size:13px; color:var(--text-muted); }

  /* RESPONSIVE */
  @media(max-width:1100px) {
    .industrias-grid { grid-template-columns:repeat(3,1fr); }
    .cards-grid { grid-template-columns:repeat(2,1fr); }
  }
  @media(max-width:768px) {
    nav { padding:16px 24px; }
    .nav-links { display:none; }
    .nav-hamburger { display:flex; }
    .hero-content { padding:100px 24px 60px; }
    #nosotros,#servicios,#industrias,#clientes,#contacto { padding:70px 24px; }
    .cards-grid,.servicios-grid,.industrias-grid,.contacto-grid { grid-template-columns:1fr; }
    .hero-stats { gap:30px; flex-wrap:wrap; }
    .clientes-stats { gap:40px; flex-wrap:wrap; }
  }

  /* SCROLL ANIMATIONS */
  [data-anim] { opacity:0; transition:opacity 0.6s ease, transform 0.6s ease; }
  [data-anim="fade-up"]    { transform:translateY(28px); }
  [data-anim="fade-left"]  { transform:translateX(-30px); }
  [data-anim="fade-right"] { transform:translateX(30px); }
  [data-anim="zoom-in"]    { transform:scale(0.92); }
  [data-anim].animated     { opacity:1 !important; transform:none !important; }
  [data-delay="1"] { transition-delay:0.08s; }
  [data-delay="2"] { transition-delay:0.16s; }
  [data-delay="3"] { transition-delay:0.24s; }
  [data-delay="4"] { transition-delay:0.32s; }
  [data-delay="5"] { transition-delay:0.40s; }
  [data-delay="6"] { transition-delay:0.48s; }