/* ================================================
   UltranetXXI - Estilos compartidos del sitio web
   Version 1.0 - 2026
   ------------------------------------------------
   Este archivo controla el diseno responsivo.
   Los colores y espaciados de cada elemento se
   definen como estilos en linea en cada HTML.

   COLORES PRINCIPALES:
     #1896E4  ->  Azul principal
     #0E2E6E  ->  Azul marino
     #000D27  ->  Negro azulado (footer)
     #f4f6f9  ->  Fondo gris suave

   FUENTES: Manrope (textos) / IBM Plex Mono (tecnico)
   Cargadas desde Google Fonts en el <head> de cada pagina.
   ================================================ */

/* -- Reset -------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: 'Manrope', Helvetica, Arial, sans-serif;
  color: #1a2233;
  background: #fff;
  -webkit-font-smoothing: antialiased;
}
a { cursor: pointer; }
.mono { font-family: 'IBM Plex Mono', ui-monospace, monospace; }

/* -- Navegacion --------------------------------- */
.nav-d { display: flex; align-items: center; gap: 28px; }
.nav-m { display: none; align-items: center; gap: 10px; }

/* -- Dropdown de navegacion --------------------- */
.nav-drop { position: relative; }
.nav-drop-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  padding-top: 8px;
  min-width: 240px;
  z-index: 300;
}
.nav-drop:hover .nav-drop-menu { display: block; }
.nav-drop-menu-inner {
  background: #fff;
  border: 1px solid #eef1f5;
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(20,40,80,.13);
  padding: 6px;
}
.nav-drop-menu-inner a {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: #374151;
  text-decoration: none;
  padding: 10px 14px;
  border-radius: 8px;
  white-space: nowrap;
}
.nav-drop-menu-inner a:hover { background: #f4f6f9; color: #0E2E6E; }

/* -- Paddings de seccion ------------------------ */
.sec-hero  { padding: 88px 40px 96px; }
.sec-stats { padding: 44px 40px; }
.sec-pad   { padding: 100px 40px; }
.sec-cta   { padding: 88px 40px; }
.sec-foot  { padding: 64px 40px 0; }

/* -- Grids (cuadriculas) ------------------------ */
.rg-hero    { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
.rg-about   { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.rg-4       { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.rg-ben     { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.rg-3       { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.rg-stats   { display: grid; grid-template-columns: repeat(4, 1fr); }
.rg-cta     { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.rg-foot    { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 48px; }
.rg-2       { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
.rg-2c      { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.rg-feat    { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.rg-pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }

/* -- Contenedores de imagen --------------------- */
.img-hero  { height: 440px; border-radius: 16px; overflow: hidden; }
.img-about { height: 480px; border-radius: 16px; overflow: hidden; }
.img-h     { height: 420px; border-radius: 16px; overflow: hidden; }
.img-h-sm  { height: 340px; border-radius: 16px; overflow: hidden; }
.img-mid   { height: 380px; border-radius: 16px; overflow: hidden; }

.img-hero img, .img-about img, .img-h img,
.img-h-sm img, .img-mid img {
  width: 100%; height: 100%; object-fit: cover; display: block;
}

/* -- Tipografia de encabezados (responsive) ----- */
.tx-h1 { font-size: 46px; line-height: 1.08; }
.tx-h2 { font-size: 38px; letter-spacing: -.022em; }

/* -- Badges flotantes --------------------------- */
.bd-bl { position: absolute; bottom: 28px; left: -24px; }
.bd-tr { position: absolute; top: 28px;    right: -18px; }
.bd-br { position: absolute; bottom: 28px; right: -18px; }

/* -- Utilidades --------------------------------- */
.stats-divider { border-right: 1px solid rgba(255,255,255,.15); }
.hero-card     { display: block; }
.hero-stats    { display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; }
.strip-4       { display: grid; grid-template-columns: repeat(4,1fr); }
.logo-strip    { gap: 48px; }
.cmp-table     { font-size: 14px; }

/* ================================================
   TABLET (<= 980 px)
   ================================================ */
@media (max-width: 980px) {
  .nav-d a:not(:last-child) { display: none; }
  .nav-drop { display: none; }

  .sec-hero  { padding: 64px 32px 72px; }
  .sec-stats { padding: 36px 32px; }
  .sec-pad   { padding: 72px 32px; }
  .sec-cta   { padding: 64px 32px; }
  .sec-foot  { padding: 48px 32px 0; }

  .rg-hero, .rg-about, .rg-cta,
  .rg-2, .rg-2c { grid-template-columns: 1fr; gap: 36px; }
  .rg-4, .rg-ben { grid-template-columns: 1fr 1fr; }
  .rg-3    { grid-template-columns: 1fr; }
  .rg-stats{ grid-template-columns: 1fr 1fr; }
  .rg-foot { grid-template-columns: 1fr 1fr; gap: 32px; }
  .rg-feat { grid-template-columns: 1fr; }
  .rg-pillars { grid-template-columns: 1fr; gap: 14px; }

  .img-hero  { height: 300px; }
  .img-about { height: 340px; }
  .img-h     { height: 280px; }
  .img-h-sm  { height: 220px; }
  .img-mid   { height: 240px; }

  .bd-bl { left: 0; bottom: 16px; }
  .bd-tr { right: 0; top: 16px; }
  .bd-br { right: 0; bottom: 16px; }

  .tx-h1 { font-size: 36px; line-height: 1.12; }
  .tx-h2 { font-size: 30px; }

  .about-img-wrap { order: 2; }
  .about-txt-wrap { order: 1; }
  .hero-card { display: none; }
}

/* ================================================
   MOVIL (<= 620 px)
   ================================================ */
@media (max-width: 620px) {
  .nav-d { display: none; }
  .nav-m { display: flex; }

  .sec-hero  { padding: 48px 20px 56px; }
  .sec-stats { padding: 28px 20px; }
  .sec-pad   { padding: 52px 20px; }
  .sec-cta   { padding: 52px 20px; }
  .sec-foot  { padding: 40px 20px 0; }

  .rg-4, .rg-ben  { grid-template-columns: 1fr; gap: 16px; }
  .rg-3    { gap: 16px; }
  .rg-foot { grid-template-columns: 1fr; gap: 24px; }
  .rg-stats{ grid-template-columns: 1fr 1fr; }
  .strip-4 { grid-template-columns: 1fr 1fr; }

  .img-hero  { height: 220px; }
  .img-about { height: 240px; }
  .img-h     { height: 200px; }
  .img-h-sm  { height: 180px; }
  .img-mid   { height: 180px; }

  .bd-bl, .bd-tr, .bd-br { display: none; }

  .tx-h1 { font-size: 28px; line-height: 1.18; }
  .tx-h2 { font-size: 23px; }

  .stats-divider { border-right: none !important; border-bottom: 1px solid rgba(255,255,255,.15); padding-bottom: 16px; }
  .hero-stats    { flex-direction: column; }
  .hero-card     { display: none; }
  .logo-strip    { gap: 24px !important; }
  .cmp-table     { font-size: 12px; }
}
