/* Real Data Estudios · hoja de estilos del sitio
   HTML y CSS propios, sin dependencias. */

@font-face{font-family:"Open Sans";font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;
  src:url(../fonts/open-sans-latin-ext.woff2) format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Open Sans";font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;
  src:url(../fonts/open-sans-latin.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --azul:#5297ff;
  --azul-oscuro:#3075dd;
  --borde:#e1e1e1;
  --titulo:#222;
  --texto:#666;
  --gris-menu:#808080;
  --franja:#555;
  --pie:#222;
  --pie-texto:#ddd;
  --pie-titulo:#919191;
  --pie-borde:#444;
  --zocalo:#333;
  --contenedor:1310px;
  --margen:50px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:#444;font:400 13px/1.65 "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block;border:0}
a{color:var(--azul);text-decoration:none;transition:color .15s ease}
a:hover{color:var(--azul-oscuro)}
h1,h2,h3,h4{color:var(--titulo);margin:0 0 8px;font-weight:600}
h3{font-size:20px;line-height:1.1}
p{margin:.85em 0}
strong{color:var(--azul);font-weight:600}
.oculto{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.contenedor{max-width:var(--contenedor);margin:0 auto;padding:0 var(--margen)}

/* ---------- Íconos SVG ---------- */
.ico{width:1em;height:1em;display:inline-block;vertical-align:-.12em;fill:currentColor;flex:none}

/* ---------- Franja superior ---------- */
.franja-sup{background:var(--azul);color:#fff;font-size:11px;font-weight:700;line-height:20px}
.franja-sup .contenedor{display:flex;justify-content:space-between;align-items:center;min-height:30px}
.franja-sup .telefonos{padding:5px 0;color:#fff}
.franja-sup .telefonos a{color:#fff}
.franja-sup nav ul{list-style:none;margin:0;padding:0;display:flex}
.franja-sup nav li+li::before{content:"|";padding:0 10px;color:#fff;opacity:.9;font-weight:400}
.franja-sup nav a{color:#fff;text-transform:uppercase}
.franja-sup nav a:hover{color:#fff;opacity:.8}

/* ---------- Encabezado ---------- */
.encabezado{position:sticky;top:0;z-index:50;background:#fff;border-top:1px solid var(--borde);border-bottom:1px solid var(--borde);transition:box-shadow .2s}
.encabezado .contenedor{display:flex;align-items:stretch;justify-content:space-between;height:100px;transition:height .25s ease}
.logo{display:flex;align-items:center;padding-right:0;border-right:1px solid #f6f6f6}
.logo img{width:300px;height:100px;object-fit:contain;transition:height .25s ease,width .25s ease}
.menu-principal{display:flex}
.menu-principal>ul{list-style:none;margin:0;padding:0;display:flex}
.menu-principal>ul>li{position:relative;display:flex}
.menu-principal>ul>li>a{display:flex;align-items:center;padding:0 13px;border-left:1px solid var(--borde);color:var(--gris-menu);font-weight:600;font-size:13px;position:relative;white-space:nowrap}
.menu-principal>ul>li:last-child>a,.menu-principal>ul>li:last-child>button{border-right:1px solid var(--borde)}
.menu-principal>ul>li>a::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--azul);transform:scaleX(0);transition:transform .2s ease}
.menu-principal>ul>li>a:hover,.menu-principal>ul>li.activo>a{color:#333}
.menu-principal>ul>li.activo>a::after,.menu-principal>ul>li>a:hover::after{transform:scaleX(1)}
.boton-buscar{display:flex;align-items:center;justify-content:center;width:89px;border:0;border-left:1px solid var(--borde);background:none;color:var(--gris-menu);font-size:17px;cursor:pointer}
.boton-buscar:hover{color:#333}

.submenu{list-style:none;margin:0;padding:0;position:absolute;top:100%;left:0;width:208px;background:#fff;border-top:2px solid var(--azul);box-shadow:0 8px 15px rgba(0,0,0,.1);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .2s,transform .2s,visibility .2s;z-index:60}
.menu-principal li:hover>.submenu,.menu-principal li:focus-within>.submenu{opacity:1;visibility:visible;transform:none}
.submenu a{display:block;padding:8px 15px;font-size:12px;line-height:23px;color:var(--gris-menu);border-left:1px solid var(--borde);border-right:1px solid var(--borde);border-bottom:1px solid var(--borde)}
.submenu a:hover,.submenu .activo a{color:#333;background:#fcfcfc}

.encabezado.reducido{box-shadow:0 0 8px rgba(0,0,0,.08)}
.encabezado.reducido .contenedor{height:50px}
.encabezado.reducido .logo img{height:50px;width:150px}

.boton-menu{display:none;align-items:center;justify-content:center;width:60px;border:0;background:none;color:var(--gris-menu);font-size:26px;cursor:pointer}

/* Buscador emergente */
.buscador{position:absolute;right:var(--margen);top:100%;width:300px;background:#fff;border:1px solid var(--borde);border-top:2px solid var(--azul);box-shadow:0 8px 15px rgba(0,0,0,.1);padding:12px;display:none;z-index:70}
.buscador.abierto{display:block}
.encabezado>.contenedor{position:relative}

/* Formulario de búsqueda (pie y emergente) */
.form-busqueda{display:flex}
.form-busqueda input{flex:1;min-width:0;height:40px;padding:0 10px;font:inherit;font-size:13px;border:1px solid var(--borde);border-right:0;background:#fcfcfc;color:#666;border-radius:0}
.form-busqueda button{width:40px;height:40px;border:0;background:#fff;color:#222;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.buscador .form-busqueda button{background:var(--azul);color:#fff}

/* ---------- Carrusel de portada ---------- */
.carrusel{position:relative;overflow:hidden;background:#eee}
.carrusel .pista{position:relative;padding-bottom:28.6667%}
.carrusel figure{margin:0;position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease}
.carrusel figure.activa{opacity:1}
.carrusel img{width:100%;height:100%;object-fit:cover}

/* ---------- Franja de título interior ---------- */
.franja-titulo{background:var(--franja);border-top:1px solid var(--borde);color:#fff}
.franja-titulo .contenedor{display:flex;justify-content:space-between;align-items:center;min-height:57px;gap:20px}
.franja-titulo h1{color:#fff;font-size:16px;font-weight:400;line-height:36.8px;margin:0}
.migas{font-size:11px;line-height:15px;color:#fff;white-space:nowrap}
.migas a{color:#fff}
.migas a:hover{color:#ddd}
.migas .sep{padding:0 4px}

/* ---------- Contenido ---------- */
main{padding:50px 0}
.fila{display:flex;align-items:flex-start;gap:6%}
.fila+.fila{margin-top:30px}
.col-1-2{flex:0 0 47%;max-width:47%}
.col-1-3{flex:0 0 29.333%;max-width:29.333%}
.col-2-3{flex:0 0 64.667%;max-width:64.667%}
.col-2-5{flex:0 0 37.6%;max-width:37.6%}
.col-3-5{flex:0 0 56.4%;max-width:56.4%}
.col-1-4{flex:0 0 20.5%;max-width:20.5%}
.fila-4{gap:6%;margin-top:40px!important}
.fila-centrada{justify-content:center}

.imagen{border-radius:3px;overflow:hidden}
.imagen img{width:100%}

/* Separador corto con punto central */
.separador{position:relative;height:20px;margin:30px auto;width:32%}
.separador::before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px solid var(--borde)}
.separador::after{content:"";position:absolute;left:50%;top:50%;width:7px;height:7px;margin:-4px 0 0 -4px;border:1px solid #ccc;border-radius:50%;background:#fff}

/* Botón grande */
.boton{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:20px;border-radius:3px;background:var(--azul);color:#fff;font-size:19.5px;line-height:1.2;text-align:center;transition:background .2s}
.boton:hover{background:var(--azul-oscuro);color:#fff}
.boton .ico{font-size:.85em}
.boton-mediano{font-size:16px;padding:14px 12px;text-transform:uppercase;border-radius:0 0 3px 3px}

/* Títulos de página de producto */
.titulo-producto{font-size:28px;font-weight:300;line-height:1.1;text-transform:uppercase;letter-spacing:1px;margin:0 0 15px}

/* Tarjetas de productos */
.tarjeta{display:block}
.tarjeta .imagen{border-radius:3px 3px 0 0}
.tarjeta .boton{border-radius:0 0 3px 3px}

/* Equipo */
.persona{text-align:center}
.persona h3{font-size:20px;font-weight:300;line-height:22px;margin:0}
.persona p{margin:18px 0 0}
.persona+.separador{margin:40px auto}

/* Lista de clientes */
.lista{margin:0 0 20px 7px;padding:0}
.lista li{margin-left:13px;padding:3px 0}

/* Contacto */
.datos p{display:flex;gap:6px;align-items:flex-start;margin:0 0 11px}
.datos .ico{margin-top:4px;color:#444}
.datos a{color:inherit}
.datos a:hover{color:var(--azul)}
.mapa{height:400px;border-radius:3px;overflow:hidden;background:#eee}
.mapa iframe{width:100%;height:100%;border:0;display:block}

/* ---------- Formulario Solicite Estudios ---------- */
.formulario h2{font-size:20px;font-weight:600;margin:0 0 8px}
.campos{display:flex;flex-wrap:wrap;column-gap:1%}
.campo{flex:0 0 100%;margin:11px 0}
.campo.medio{flex:0 0 49.5%}
.campo label{display:block;font-size:11.96px;font-weight:700;color:#666;margin:0 0 7px}
.campo label abbr{color:var(--azul);text-decoration:none;border-bottom:1px dotted var(--azul)}
.campo input,.campo textarea{width:100%;height:44px;padding:13px;font:13px/1.2 "Open Sans",Helvetica,Arial,sans-serif;color:#919191;background:#fcfcfc;border:1px solid var(--borde);border-radius:2px;transition:border-color .2s,color .2s}
.campo input:focus,.campo textarea:focus{outline:0;border-color:#bbb;color:#666}
.campo.error input{border-color:#e00;background:#fff7f7}
.campo.valido input{border-color:#9bcf9b}
.trampa{position:absolute;left:-9999px}
.enviar{margin-top:11px;min-width:142px;height:47px;padding:16px 20px;border:0;border-radius:2px;background:var(--azul);color:#fff;font:400 11.96px Arial,sans-serif;cursor:pointer;transition:background .2s}
.enviar:hover{background:var(--azul-oscuro)}
.enviar[disabled]{opacity:.7;cursor:wait}
.respuesta{font-size:20px;font-weight:600;color:var(--titulo);padding:40px 0;text-align:center}
.respuesta.error{color:#c00;font-size:14px;padding:12px 0;text-align:left}

/* ---------- Pie ---------- */
.pie{background:var(--pie);color:var(--pie-texto);border-top:1px solid var(--pie-borde);padding:15px 0 60px}
.pie .contenedor{display:flex;gap:6%}
.pie .bloque{flex:0 0 20.5%;max-width:20.5%;padding-top:42px}
.pie h2{color:var(--pie-titulo);font-size:14.3px;font-weight:600;text-transform:uppercase;letter-spacing:1px;line-height:1.1;margin:0 0 8px}
.pie p{display:flex;gap:6px;margin:11px 0}
.pie p .ico{margin-top:4px;color:#fff}
.pie a{color:#fff}
.pie a:hover{color:var(--pie-texto)}
.pie ul{list-style:none;margin:0;padding:0}
.pie ul a{display:block;padding:4px 0 5px}
.pie .logo-blanco{margin-top:40px;width:244px}
.pie .form-busqueda input{background:#222;border-color:var(--pie-borde);color:#999}

.zocalo{background:var(--zocalo);color:#eee;border-top:1px solid var(--pie-borde);font-size:11px;line-height:21.45px;padding:15px 0}
.zocalo .contenedor{display:flex;justify-content:space-between;gap:20px}
.zocalo ul{list-style:none;margin:2px 0 0;padding:0;display:flex;flex-wrap:wrap}
.zocalo li+li{border-left:1px solid #555;margin-left:10px;padding-left:10px}
.zocalo li{line-height:10px}
.zocalo a{color:#fff}
.zocalo a:hover{color:#ccc}

/* ---------- Responsivo ---------- */
@media (max-width:989px){
  :root{--margen:25px}
  .menu-principal>ul>li>a{padding:0 9px;font-size:12px}
  .boton-buscar{width:50px}
  .logo img{width:240px;height:80px}
}
@media (max-width:767px){
  :root{--margen:15px}
  .franja-sup .telefonos{font-size:10px}
  .encabezado .contenedor{height:80px}
  .logo{border-right:0}
  .logo img{width:210px;height:70px}
  .encabezado.reducido .contenedor{height:80px}
  .encabezado.reducido .logo img{width:210px;height:70px}
  .boton-menu{display:flex}
  .menu-principal{position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--borde);box-shadow:0 8px 15px rgba(0,0,0,.08);display:none}
  .menu-principal.abierto{display:block}
  .menu-principal>ul{flex-direction:column}
  .menu-principal>ul>li{display:block}
  .menu-principal>ul>li>a{border-left:0;border-top:1px solid var(--borde);padding:14px var(--margen);font-size:13px}
  .menu-principal>ul>li>a::after{display:none}
  .menu-principal>ul>li:last-child>a{border-right:0}
  .submenu{position:static;width:auto;opacity:1;visibility:visible;transform:none;box-shadow:none;border-top:0}
  .submenu a{border:0;border-top:1px solid #f1f1f1;padding:10px calc(var(--margen) + 15px)}
  .menu-principal .item-buscar{display:none}
  .buscador{left:var(--margen);right:var(--margen);width:auto}
  .carrusel .pista{padding-bottom:45%}
  .franja-titulo .contenedor{flex-direction:column;align-items:flex-start;gap:0;padding-top:8px;padding-bottom:10px}
  .migas{white-space:normal}
  main{padding:35px 0}
  .fila{flex-direction:column;gap:30px}
  .fila>[class^="col-"]{flex-basis:auto;max-width:100%;width:100%}
  .fila-4{flex-direction:row;flex-wrap:wrap;gap:20px 4%}
  .fila-4>.col-1-4{flex:0 0 48%;max-width:48%}
  .fila-4{margin-top:30px!important}
  .campo.medio{flex:0 0 100%}
  .pie .contenedor{flex-wrap:wrap;gap:0 6%}
  .pie .bloque{flex:0 0 47%;max-width:47%;padding-top:25px}
  .zocalo .contenedor{flex-direction:column;gap:8px}
  .zocalo ul{row-gap:8px}
  .zocalo li{line-height:14px}
}
@media (max-width:479px){
  .franja-sup .contenedor{flex-direction:column-reverse;align-items:flex-start;padding-top:4px;padding-bottom:2px}
  .franja-sup .telefonos{padding:0 0 4px}
  .fila-4>.col-1-4{flex:0 0 100%;max-width:100%}
  .pie .bloque{flex:0 0 100%;max-width:100%}
  .boton{font-size:17px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
