/* ===================================================================
   ianos.es, hoja compartida de las tres paginas legales.

   Es UNA hoja y no tres bloques <style> a proposito. Las tres paginas
   se leen seguidas, la gente salta de una a otra por el indice de
   abajo, y si la tipografia baila entre ellas parece que una de las
   tres es de otro sitio. Ademas, un cambio de token aqui llega a las
   tres, que es justo lo que no pasaba con las dos paginas viejas de
   Webflow.

   Tokens identicos a /empezar-a-usar y /feria. Si cambian alli,
   cambian aqui.
   =================================================================== */

:root{
  --color-bg:#ffffff;
  --color-primary-text:#0a1953;
  --color-brand:#347be2;
  --color-surface:#eef6fd;
  --hair:#0a1953;
  --font-display:'Instrument Serif', Georgia, serif;
  --font-stack:'Inter Tight','Inter',Arial,sans-serif;
  --safe:32px;
}
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;background:var(--color-bg);color:var(--color-primary-text);
  font-family:var(--font-stack);font-size:17px;line-height:1.62;
  -webkit-font-smoothing:antialiased;
  display:flex;flex-direction:column;min-height:100vh;min-height:100svh;
}
a{color:inherit;text-decoration:none;}

/* ---------- cabecera ---------- */
.top{
  display:flex;align-items:center;justify-content:space-between;
  padding:var(--safe);flex:0 0 auto;gap:20px;
}
.logo{
  display:block;width:112px;height:38px;flex:0 0 auto;
  background-color:var(--color-brand);
  -webkit-mask:url('/img/ianos-wordmark-mask.png') left center / contain no-repeat;
          mask:url('/img/ianos-wordmark-mask.png') left center / contain no-repeat;
  transition:opacity .25s ease;
}
.logo:hover{opacity:.7;}
.top-links{display:flex;align-items:center;gap:26px;}
.top-links a{
  font-size:15px;font-weight:500;letter-spacing:.02em;text-transform:uppercase;
  color:var(--color-brand);transition:opacity .25s ease;white-space:nowrap;
}
.top-links a:hover{opacity:.7;}

/* ---------- portada del documento ---------- */
main{flex:1 0 auto;padding:0 var(--safe) 80px;}
.intro{max-width:820px;margin:24px 0 44px;}
.kicker{
  font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--color-brand);margin:0 0 18px;
}
h1{
  font-family:var(--font-display);font-weight:400;margin:0 0 20px;
  font-size:clamp(38px,6vw,72px);line-height:1.05;letter-spacing:-1px;
}
.lead{margin:0 0 22px;max-width:56ch;font-size:19px;}
.sello{
  display:inline-flex;align-items:center;gap:9px;
  font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--color-brand);
}
.sello::before{
  content:'';width:7px;height:7px;border-radius:50%;background:var(--color-brand);flex:0 0 auto;
}

/* ---------- reticula del documento ----------
   El indice se queda pegado arriba porque estas paginas se leen
   buscando UNA cosa (cuanto guardais, a quien escribo), no de arriba
   abajo. Sin el, encontrar el apartado es hacer scroll a ciegas. */
.doc{
  display:grid;grid-template-columns:minmax(0,230px) minmax(0,1fr);
  gap:56px;align-items:start;border-top:1px solid var(--hair);padding-top:40px;
}
.indice{position:sticky;top:32px;}
.indice p{
  margin:0 0 14px;font-size:12px;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:var(--color-brand);
}
.indice ol{list-style:none;margin:0;padding:0;counter-reset:idx;}
.indice li{counter-increment:idx;margin:0 0 9px;}
.indice a{
  display:flex;gap:10px;font-size:14px;line-height:1.35;
  transition:opacity .25s ease;
}
.indice a::before{
  content:counter(idx,decimal-leading-zero);
  color:var(--color-brand);flex:0 0 auto;font-variant-numeric:tabular-nums;
}
.indice a:hover{opacity:.6;}
.indice a[aria-current="true"]{color:var(--color-brand);}

.cuerpo{max-width:72ch;}
.cuerpo > section{
  border-top:1px solid rgba(10,25,83,.16);
  padding:34px 0 6px;scroll-margin-top:24px;
}
.cuerpo > section:first-child{border-top:0;padding-top:0;}
.cuerpo h2{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(26px,3.2vw,36px);line-height:1.12;letter-spacing:-.5px;
  margin:0 0 16px;
}
.cuerpo h3{
  font-size:15px;font-weight:600;letter-spacing:.02em;
  margin:26px 0 8px;
}
.cuerpo p{margin:0 0 16px;}
.cuerpo a:not(.pill){
  color:var(--color-brand);
  border-bottom:1px solid rgba(52,123,226,.35);
  transition:border-color .25s ease;
}
.cuerpo a:not(.pill):hover{border-color:var(--color-brand);}
.cuerpo ul{margin:0 0 16px;padding:0;list-style:none;}
.cuerpo ul li{position:relative;padding-left:20px;margin:0 0 9px;}
.cuerpo ul li::before{
  content:'';position:absolute;left:0;top:.72em;
  width:8px;height:1px;background:var(--color-brand);
}
.cuerpo strong{font-weight:600;}
.cuerpo small{display:block;font-size:14px;line-height:1.5;opacity:.75;margin:0 0 16px;}

/* Lista de lo que NO se hace. Se marca distinto porque es la parte que
   la gente da por hecha al reves, y en gris se lee como relleno.
   El `.cuerpo` de delante no sobra: sin el, `.cuerpo ul li::before` pesa mas
   y estas listas salen con la rayita de siempre. */
.cuerpo .no li::before{
  width:11px;height:11px;top:.5em;background:none;
  border:1px solid var(--color-brand);border-radius:50%;
}
.cuerpo .no li{padding-left:22px;}

/* Caja de aviso. La de marca es para lo que obliga la ley a destacar
   (el articulo 50), la clara para contexto. */
.caja{
  background:var(--color-surface);border-left:2px solid var(--color-brand);
  padding:22px 24px 8px;margin:0 0 22px;
}
.caja p:last-child{margin-bottom:14px;}
.caja h3{margin-top:0;}

/* Tabla de datos. En movil se convierte en fichas: una tabla de tres
   columnas a 390px se lee con lupa o se sale de la pantalla. */
.tabla{width:100%;border-collapse:collapse;margin:0 0 22px;font-size:15px;}
.tabla th,.tabla td{
  text-align:left;vertical-align:top;padding:12px 16px 12px 0;
  border-bottom:1px solid rgba(10,25,83,.16);
}
.tabla th{
  font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--color-brand);border-bottom-color:var(--hair);
}
.tabla td:first-child{font-weight:500;width:30%;}

/* Ficha del responsable. */
.ficha{
  border:1px solid var(--hair);padding:24px;margin:0 0 22px;
  font-size:15px;line-height:1.7;
}
.ficha dt{
  font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--color-brand);margin:0 0 2px;
}
.ficha dd{margin:0 0 14px;}
.ficha dd:last-child{margin-bottom:0;}

/* Saltos entre las tres paginas legales, al final del cuerpo. */
.hermanas{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:1px solid var(--hair);margin-top:48px;
}
.hermanas a{
  padding:26px 24px;border-bottom:1px solid var(--hair);
  border-right:1px solid var(--hair);display:flex;flex-direction:column;gap:6px;
  transition:background .25s ease;
}
.hermanas a:first-child{border-left:1px solid var(--hair);}
.hermanas a:hover{background:var(--color-surface);}
.hermanas span{
  font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--color-brand);
}
.hermanas strong{
  font-family:var(--font-display);font-weight:400;font-size:24px;
  line-height:1.1;letter-spacing:-.4px;
}

/* ---------- pie ---------- */
.pie{
  flex:0 0 auto;border-top:1px solid var(--hair);
  padding:24px var(--safe);display:flex;flex-wrap:wrap;gap:10px 28px;font-size:14px;
}
.pie a{color:var(--color-brand);}
.pie a:hover{opacity:.7;}

/* ---------- entrada ----------
   Referencia [global-cta-footer]: opacity 0 -> 1, translateY(20px),
   .75s cubic-bezier(.16,1,.3,1). Aqui solo entra la portada del
   documento; el cuerpo legal no se anima, tiene que poder leerse
   aunque el JS no llegue nunca. */
.rev{opacity:0;transform:translateY(20px);}
.is-in .rev{
  opacity:1;transform:none;
  transition:opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1);
}
.is-in .rev:nth-child(1){transition-delay:0s;}
.is-in .rev:nth-child(2){transition-delay:.08s;}
.is-in .rev:nth-child(3){transition-delay:.16s;}
.is-in .rev:nth-child(4){transition-delay:.24s;}

@media (max-width:1023px){
  .doc{grid-template-columns:minmax(0,1fr);gap:32px;}
  .indice{
    position:static;border:1px solid var(--hair);padding:20px 22px;
  }
  .indice ol{columns:2;column-gap:28px;}
  .indice li{break-inside:avoid;}
}
@media (max-width:768px){
  :root{--safe:16px;}
  body{font-size:16px;}
  .top-links a{min-height:44px;display:flex;align-items:center;font-size:13px;}
  .top-links a[href="/"]{display:none;}   /* el logo ya lleva a la portada */
  .lead{font-size:17px;}
  .indice ol{columns:1;}
  .hermanas{grid-template-columns:minmax(0,1fr);}
  .hermanas a{border-left:1px solid var(--hair);}
  .cuerpo > section{padding-top:28px;}

  /* La tabla pasa a fichas apiladas. Cada celda lleva su rotulo en
     data-th, si no, en vertical las tres columnas quedan sin cabecera
     y no se sabe que es cada cosa. */
  .tabla,.tabla tbody,.tabla tr,.tabla td{display:block;width:100%;}
  .tabla thead{display:none;}
  .tabla tr{border-bottom:1px solid var(--hair);padding:14px 0 4px;}
  .tabla td{border:0;padding:0 0 10px;}
  .tabla td:first-child{width:auto;}
  .tabla td::before{
    content:attr(data-th);display:block;
    font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
    color:var(--color-brand);margin-bottom:2px;
  }
}

/* ---------------------------------------------------------------------------
   Componentes de /contacto y /instrucciones. Viven en la misma hoja porque son
   el mismo documento largo con indice, no otra plantilla.
   --------------------------------------------------------------------------- */

/* Vias de contacto: bloques grandes, cada uno con su para-que. */
.vias{display:grid;gap:0;border-top:1px solid var(--hair);margin:8px 0 4px;}
/* El hijo directo es la fila. Sin ">" este selector alcanza tambien al div
   que envuelve el texto DENTRO del enlace, y entonces el titulo y su
   explicacion se reparten en dos columnas y se pisan. */
.vias > a,.vias > div{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;
  gap:20px;padding:26px 0;border-bottom:1px solid rgba(10,25,83,.16);
  text-decoration:none;color:inherit;transition:padding .25s cubic-bezier(.16,1,.3,1);
}
.vias > a:hover{padding-left:12px;}
/* Gana a `.cuerpo a:not(.pill)`, que tine de azul y subraya cualquier enlace
   del cuerpo. Aqui la fila entera es el enlace: en azul se lee como un parrafo
   lleno de enlaces y no como una lista de opciones. El azul se queda solo en
   la accion de la derecha, que es donde tiene que tirar el ojo. */
.cuerpo .vias > a{color:var(--color-primary-text);border-bottom:1px solid rgba(10,25,83,.16);}
.cuerpo .vias > a:hover{border-bottom-color:rgba(10,25,83,.16);}
.vias .via-que{font-size:22px;line-height:1.2;margin:0 0 6px;font-weight:500;}
.vias .via-para{font-size:16px;line-height:1.4;opacity:.7;margin:0;}
.vias .via-ir{
  font-size:13px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--color-brand);white-space:nowrap;
}
.vias a:hover .via-ir{text-decoration:underline;text-underline-offset:3px;}

/* Preguntas de ejemplo: se pulsan y abren WhatsApp con la pregunta escrita.
   Mismo motivo que en `.no` para el `.cuerpo` de delante. */
.ejemplos{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 6px;padding:0;list-style:none;}
.cuerpo .ejemplos li{margin:0;padding:0;}
.cuerpo .ejemplos li::before{content:none;}
.ejemplos a{
  display:inline-block;padding:10px 16px;border:1px solid rgba(10,25,83,.28);
  border-radius:999px;font-size:15px;line-height:1.25;text-decoration:none;
  color:var(--color-primary-text);background:var(--color-bg);
  transition:background .2s ease,border-color .2s ease,color .2s ease;
}
.ejemplos a:hover{background:var(--color-brand);border-color:var(--color-brand);color:#fff;}

/* Pasos numerados de verdad, para lo que hay que hacer en orden. */
.pasos{counter-reset:paso;list-style:none;padding:0;margin:18px 0 6px;}
.pasos li{
  counter-increment:paso;position:relative;padding-left:52px;margin-bottom:18px;
  font-size:18px;line-height:1.45;
}
.pasos li::before{
  content:counter(paso,decimal-leading-zero);position:absolute;left:0;top:.1em;
  font-family:var(--font-display);font-size:22px;color:var(--color-brand);
  background:none;width:auto;height:auto;border:0;border-radius:0;
}

@media (max-width:768px){
  .vias > a,.vias > div{grid-template-columns:minmax(0,1fr);gap:8px;padding:22px 0;}
  .vias > a:hover{padding-left:0;}
  .vias .via-que{font-size:20px;}
  .ejemplos a{font-size:14px;padding:9px 14px;}
  .pasos li{padding-left:44px;font-size:17px;}
}

/* ---------- movil estrecho ---------- */
@media (max-width:520px){
  /* Con tres enlaces arriba, la barra empuja la pagina de lado en un iPhone
     SE: 74px de desbordamiento medidos a 320px. Se queda solo el ultimo, que
     es la llamada a la accion, y el resto siguen en el pie, que en movil es
     donde se buscan de verdad. */
  .top-links{gap:16px;}
  .top-links a:not(:last-child){display:none;}
}

/* ---------- formulario de contacto ----------
   Abre el correo del visitante con el mensaje escrito, no manda nada por su
   cuenta. Se pinta como el resto del documento y no como una tarjeta aparte:
   aqui no hay nada que "enviar a un sistema", solo un texto que se redacta. */
.formulario{margin:28px 0 8px;padding:26px 26px 22px;background:var(--color-surface);}
.formulario h3{margin:0 0 10px;}
.form-nota{font-size:15px;line-height:1.55;margin:0 0 18px;opacity:.85;}
.formulario .campo{margin:0 0 16px;}
.formulario label{
  display:block;font-size:13px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--color-brand);margin:0 0 7px;
}
.formulario input,.formulario textarea{
  width:100%;font:inherit;font-size:17px;line-height:1.5;color:var(--color-primary-text);
  background:var(--color-bg);border:1px solid rgba(10,25,83,.22);border-radius:2px;
  padding:12px 14px;transition:border-color .2s ease;
}
.formulario textarea{resize:vertical;min-height:140px;}
.formulario input:focus,.formulario textarea:focus{outline:none;border-color:var(--color-brand);}
.formulario button{
  font:inherit;font-size:16px;font-weight:500;cursor:pointer;
  background:var(--color-brand);color:#fff;border:1px solid var(--color-brand);
  border-radius:999px;padding:13px 26px;transition:background .2s ease,color .2s ease;
}
.formulario button:hover{background:transparent;color:var(--color-brand);}
/* Sale despues de pulsar, cuando el correo ya se ha abierto. Es lo unico que
   le dice al visitante que el balon esta en su tejado y falta darle a enviar. */
.form-aviso{
  font-size:15px;line-height:1.55;margin:16px 0 0;
  padding-left:14px;border-left:2px solid var(--color-brand);
}
.formulario .form-nota:last-child{margin:16px 0 0;}

@media (max-width:768px){
  .formulario{padding:22px 18px 20px;}
  .formulario button{width:100%;}
}
