:root{
    --ink:#F7F5EF;
    --ink-2:#FFFFFF;
    --ink-3:#EFEAE0;
    --paper:#161F2B;
    --steel:#5C6577;
    --steel-2:#8D93A3;
    --accent:#B87A1E;
    --accent-dim:#D8B27C;
    --teal:#157A73;
    --line:rgba(22,31,43,0.10);
    --line-strong:rgba(22,31,43,0.20);
    --radius:2px;
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--ink);
    color:var(--paper);
    font-family:'Inter',sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{font-family:'Space Grotesk',sans-serif;font-weight:600;letter-spacing:-0.01em;}
  .mono{font-family:'IBM Plex Mono',monospace;}
  a{color:inherit;text-decoration:none;}
  img,svg{display:block;max-width:100%;}
  .wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
  ::selection{background:var(--accent);color:var(--ink-2);}

  /* Focus visibility */
  a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

  @media(prefers-reduced-motion:reduce){
    *{animation-duration:0.001ms !important;animation-iteration-count:1 !important;transition-duration:0.001ms !important;}
  }

  /* ---------- Header ---------- */
  header{
    position:sticky;top:0;z-index:100;
    background:rgba(247,245,239,0.86);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav{display:flex;align-items:center;justify-content:space-between;height:76px;}
  .brand{display:flex;align-items:center;gap:12px;font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:17px;letter-spacing:0.01em;}
  .logo-img{height:40px;width:auto;display:block;}
  .navlinks{display:flex;gap:34px;font-size:13.5px;}
  .navlinks a{color:var(--steel);font-family:'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:0.04em;font-size:12px;transition:color .2s;position:relative;}
  .navlinks a:hover{color:var(--paper);}
  .navcta{
    font-family:'IBM Plex Mono',monospace;font-size:12px;text-transform:uppercase;letter-spacing:0.04em;
    border:1px solid var(--line-strong);padding:9px 16px;color:var(--paper);white-space:nowrap;
    transition:border-color .2s, background .2s;
  }
  .navcta:hover{border-color:var(--accent);background:rgba(227,178,60,0.08);}
  .navtoggle{display:none;background:none;border:none;color:var(--paper);font-size:22px;cursor:pointer;}

  /* ---------- Section scaffolding ---------- */
  section{padding:110px 0;position:relative;}
  .eyebrow{
    font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:0.12em;text-transform:uppercase;
    color:var(--accent);display:flex;align-items:center;gap:10px;margin-bottom:18px;
  }
  .eyebrow::before{content:'';width:22px;height:1px;background:var(--accent);}
  .section-title{font-size:clamp(28px,3.4vw,42px);max-width:680px;margin-bottom:20px;}
  .section-lede{color:var(--steel);max-width:560px;font-size:16.5px;}

  /* ---------- Hero ---------- */
  .hero{padding:70px 0 90px;overflow:hidden;}
  .hero-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:60px;align-items:center;}
  .hero-tag{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--teal);letter-spacing:0.1em;text-transform:uppercase;margin-bottom:22px;display:inline-flex;align-items:center;gap:9px;border:1px solid rgba(79,166,160,0.35);padding:6px 12px;}
  .hero-tag .pulse{width:6px;height:6px;border-radius:50%;background:var(--teal);animation:pulse 2s infinite;}
  @keyframes pulse{0%,100%{opacity:1;}50%{opacity:.3;}}
  .hero h1{font-size:clamp(34px,4.6vw,58px);line-height:1.08;margin-bottom:26px;}
  .hero h1 .hl{color:var(--accent);}
  .hero p.lead{color:var(--steel);font-size:18px;max-width:520px;margin-bottom:36px;}
  .hero-ctas{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:52px;}
  .btn-primary{
    background:var(--accent);color:var(--ink);font-family:'Space Grotesk',sans-serif;font-weight:600;
    padding:14px 26px;font-size:14.5px;border:1px solid var(--accent);transition:transform .15s, box-shadow .15s;
  }
  .btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 24px -8px rgba(227,178,60,0.5);}
  .btn-ghost{
    border:1px solid var(--line-strong);color:var(--paper);font-family:'Space Grotesk',sans-serif;font-weight:600;
    padding:14px 26px;font-size:14.5px;transition:border-color .2s, background .2s;
  }
  .btn-ghost:hover{border-color:var(--paper);background:rgba(22,31,43,0.04);}
  .hero-stats{display:flex;gap:0;border-top:1px solid var(--line);padding-top:26px;max-width:520px;}
  .hero-stats div{flex:1;padding-right:20px;}
  .hero-stats .num{font-family:'Space Grotesk',sans-serif;font-size:24px;font-weight:700;color:var(--accent);}
  .hero-stats .lbl{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--steel-2);text-transform:uppercase;letter-spacing:0.05em;margin-top:4px;}
  .hero-art{position:relative;}
  .hero-art svg{width:100%;height:auto;}

  /* ---------- Marquee stack strip ---------- */
  .stackstrip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;background:var(--ink-2);}
  .stackstrip .wrap{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center;}
  .stackstrip span{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--steel);letter-spacing:0.03em;}
  .stackstrip .sep{color:var(--accent-dim);}

  /* ---------- Sobre nosotros ---------- */
  .about-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:70px;align-items:start;}
  .about-points{display:grid;gap:0;margin-top:36px;}
  .about-point{display:flex;gap:16px;padding:20px 0;border-top:1px solid var(--line);}
  .about-point:last-child{border-bottom:1px solid var(--line);}
  .about-point svg{flex-shrink:0;width:22px;height:22px;color:var(--teal);margin-top:2px;}
  .about-point h4{font-size:15.5px;margin-bottom:5px;}
  .about-point p{color:var(--steel);font-size:14.5px;}
  .approach-card{background:var(--ink-2);border:1px solid var(--line);padding:34px;}
  .approach-card .k{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--accent);text-transform:uppercase;letter-spacing:0.08em;}
  .approach-card p{color:var(--steel);margin:12px 0 24px;font-size:15px;}
  .approach-card p:last-child{margin-bottom:0;}

  /* ---------- Servicios grid ---------- */
  .svc-header{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:20px;margin-bottom:56px;}
  .svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
  .svc-card{background:var(--ink);padding:34px 30px;position:relative;transition:background .25s;}
  .svc-card:hover{background:var(--ink-3);}
  .svc-card .icon{width:40px;height:40px;color:var(--accent);margin-bottom:22px;}
  .svc-card h3{font-size:19px;margin-bottom:10px;}
  .svc-card p{color:var(--steel);font-size:14.5px;margin-bottom:16px;}
  .svc-card ul{list-style:none;margin-bottom:6px;}
  .svc-card li{
    font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--steel-2);padding:5px 0 5px 16px;
    position:relative;border-top:1px solid var(--line);
  }
  .svc-card li:first-child{border-top:none;padding-top:0;}
  .svc-card li::before{content:'—';position:absolute;left:0;color:var(--teal);}
  .svc-num{position:absolute;top:30px;right:30px;font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--steel-2);}
  @media(max-width:900px){.svc-grid{grid-template-columns:repeat(2,1fr);}}
  @media(max-width:620px){.svc-grid{grid-template-columns:1fr;}}

  /* ---------- IA feature block ---------- */
  .ia-block{
    background:linear-gradient(135deg, var(--ink-2), var(--ink-3));
    border:1px solid var(--line-strong);padding:60px;display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;
  }
  .ia-block h2{font-size:clamp(24px,2.6vw,32px);margin-bottom:16px;}
  .ia-block p.lead{color:var(--steel);font-size:15.5px;margin-bottom:24px;}
  .ia-steps{display:grid;gap:14px;}
  .ia-step{display:flex;gap:14px;align-items:flex-start;}
  .ia-step .n{font-family:'IBM Plex Mono',monospace;color:var(--accent);font-size:12.5px;border:1px solid var(--accent-dim);width:26px;height:26px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .ia-step h4{font-size:14.5px;margin-bottom:3px;}
  .ia-step p{font-size:13.5px;color:var(--steel);}
  .ia-art svg{width:100%;}
  @media(max-width:860px){.ia-block{grid-template-columns:1fr;padding:36px;}}

  /* ---------- Kit digital / Verifactu split ---------- */
  .split{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);}
  .split-card{background:var(--ink);padding:48px 44px;transition:background .2s;}
  a.split-card:hover{background:var(--ink-3);}
  .split-card .icon{width:34px;height:34px;color:var(--teal);margin-bottom:20px;}
  .split-card h3{font-size:22px;margin-bottom:14px;}
  .split-card p{color:var(--steel);font-size:14.5px;margin-bottom:18px;}
  .taglist{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px;}
  .taglist span{font-family:'IBM Plex Mono',monospace;font-size:11.5px;border:1px solid var(--line-strong);padding:6px 10px;color:var(--steel);}
  .timeline{display:grid;gap:0;margin-top:6px;}
  .tl-row{display:flex;gap:14px;padding:12px 0;border-top:1px solid var(--line);font-size:13.5px;}
  .tl-row:first-child{border-top:none;}
  .tl-date{font-family:'IBM Plex Mono',monospace;color:var(--accent);width:130px;flex-shrink:0;font-size:12px;}
  .tl-desc{color:var(--steel);}
  .link-inline{color:var(--teal);border-bottom:1px solid rgba(79,166,160,0.4);}
  @media(max-width:860px){.split{grid-template-columns:1fr;}.split-card{padding:36px 30px;}}

  /* ---------- Contacto ---------- */
  .contact-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:60px;}
  .contact-info h4{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--accent);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:8px;}
  .contact-info .row{margin-bottom:26px;}
  .contact-info .row p{color:var(--paper);font-size:15px;}
  .contact-info .row a{color:var(--paper);border-bottom:1px solid var(--line-strong);}
  form{display:grid;gap:18px;}
  .form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
  label{font-family:'IBM Plex Mono',monospace;font-size:11px;text-transform:uppercase;letter-spacing:0.06em;color:var(--steel);display:block;margin-bottom:8px;}
  input,textarea{
    width:100%;background:var(--ink-2);border:1px solid var(--line-strong);color:var(--paper);
    padding:13px 14px;font-family:'Inter',sans-serif;font-size:14.5px;
  }
  input:focus,textarea:focus{outline:none;border-color:var(--accent);}
  textarea{resize:vertical;min-height:120px;}
  .submit-btn{justify-self:start;}
  @media(max-width:760px){.contact-grid{grid-template-columns:1fr;}.form-row{grid-template-columns:1fr;}}

  /* ---------- Footer ---------- */
  footer{border-top:1px solid var(--line);padding:44px 0;}
  footer .wrap{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;}
  footer p{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--steel-2);}

  /* ---------- Mobile nav ---------- */
  @media(max-width:880px){
    .navlinks{display:none;}
    .navtoggle{display:block;}
    .navcta{display:none;}
    .hero-grid{grid-template-columns:1fr;}
    .about-grid{grid-template-columns:1fr;}
    section{padding:70px 0;}
    .wrap{padding:0 22px;}
  }

/* ---------- Detail pages (aplicaciones sectoriales) ---------- */
.breadcrumb{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--steel-2);display:flex;gap:8px;align-items:center;margin-bottom:28px;}
.breadcrumb a{color:var(--steel);}
.breadcrumb a:hover{color:var(--accent);}
.detail-hero{padding:64px 0 70px;border-bottom:1px solid var(--line);}
.detail-hero .icon-lg{width:56px;height:56px;color:var(--accent);margin-bottom:26px;}
.detail-hero h1{font-size:clamp(30px,4vw,46px);max-width:760px;margin-bottom:20px;}
.detail-hero p.lead{color:var(--steel);font-size:17.5px;max-width:640px;}
.detail-body{padding:70px 0;}
.detail-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:64px;align-items:start;}
.detail-layout h2{font-size:22px;margin:0 0 16px;}
.detail-layout p{color:var(--steel);font-size:15.5px;margin-bottom:18px;}
.feature-list{list-style:none;display:grid;gap:0;margin-top:8px;}
.feature-list li{
  font-size:14.5px;color:var(--paper);padding:14px 0;border-top:1px solid var(--line);
  display:flex;gap:12px;
}
.feature-list li:first-child{border-top:none;}
.feature-list li::before{content:'';flex-shrink:0;width:7px;height:7px;margin-top:7px;background:var(--teal);}
.side-card{background:var(--ink-2);border:1px solid var(--line);padding:30px;}
.side-card .k{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--accent);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:14px;}
.side-card p{color:var(--steel);font-size:14px;margin-bottom:20px;}
.related{padding:70px 0;background:var(--ink-2);}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:36px;}
.related-card{background:var(--ink);padding:26px;transition:background .2s;}
.related-card:hover{background:var(--ink-3);}
.related-card .icon{width:26px;height:26px;color:var(--teal);margin-bottom:14px;}
.related-card h4{font-size:15px;margin-bottom:6px;}
.related-card p{font-size:13px;color:var(--steel-2);}
@media(max-width:860px){.detail-layout{grid-template-columns:1fr;}.related-grid{grid-template-columns:1fr;}}
