
    :root{
      --ink:#0B0B0B;
      --muted:#555;
      --muted2:#777;
      --line:#E6E6E6;
      --soft:#F7F7F7;
      --paper:#FFFFFF;

      --serif:"Libre Baskerville", Georgia, "Times New Roman", serif;
      --sans: "Libre Baskerville", Georgia, "Times New Roman", serif;

      --max:1120px;
      --pad:22px;
      --radius:18px;

      --shadow:0 12px 30px rgba(0,0,0,.06);
      --shadow2:0 8px 22px rgba(0,0,0,.07);
    }

    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      padding-top: 160px;
      background:var(--paper);
      color:var(--ink);
      font-family:var(--serif);
      line-height:1.55;
      -webkit-font-smoothing:antialiased;
      -moz-osx-font-smoothing:grayscale;
    }
    a{color:inherit;text-decoration:none}
    .container{max-width:var(--max); margin:0 auto; padding:0 var(--pad);}
    .hairline{border-top:1px solid var(--line);}
    .section{padding:64px 0;}
    .section-tight{padding:46px 0;}

    /* "i" de Noi (bold + italic) */
    .noi-i{font-style:italic;font-weight:700;}

    /* Header */
    header{
      position:fixed;
      top:0;
      left:0;
      right:0;
      z-index:50;
      background:rgba(255,255,255,.92);
      backdrop-filter:saturate(160%) blur(10px);
      border-bottom:1px solid var(--line);
    }
    .nav{
      height:160px;
      display:grid;
      grid-template-columns: 1fr auto 1fr;
      align-items:center;
      gap:18px;
    }
    .nav-left{
      display:flex; align-items:center; gap:14px;
    }
    .menu{
      display:flex; gap:10px; align-items:center;
      font-size:12.5px; letter-spacing:.08em; text-transform:uppercase;
      color:var(--muted);
    }
    .menu a{
      padding:10px 10px;
      border-radius:999px;
      transition:background .18s ease, color .18s ease, transform .18s ease;
    }
    .menu a:hover{
      background:var(--soft);
      color:var(--ink);
      transform:translateY(-1px);
    }

    .brand-center{
      display:flex; justify-content:center; align-items:center;
    }
    .brand-center img{height:110px;width:auto;display:block}

    .nav-right{
      display:flex; justify-content:flex-end; align-items:center; gap:10px;
    }

    .search{
      display:flex; align-items:center; gap:8px;
      padding:8px 10px;
      border:1px solid var(--line);
      border-radius:999px;
      background:#fff;
      box-shadow:var(--shadow);
      min-width:140px;
      max-width:220px;
    }
    .search svg{flex:0 0 auto;color:var(--muted2)}
    .search input{
      border:none; outline:none; width:100%;
      font-family:var(--serif);
      font-size:12px;
      color:var(--ink);
      background:transparent;
    }
    .btn{
      display:inline-flex; align-items:center; justify-content:center;
      padding:8px 10px;
      border-radius:999px;
      border:1px solid var(--line);
      background:#fff;
      font-size:12px;
      color:var(--ink);
      box-shadow:var(--shadow);
      cursor:pointer;
      transition:transform .16s ease, box-shadow .16s ease, background .16s ease;
      white-space:nowrap;
    }
    .btn:hover{
      transform:translateY(-1px);
      box-shadow:var(--shadow2);
      background:#FAFAFA;
    }
    .btn.primary{
      background:var(--ink);
      color:var(--paper);
      border-color:var(--ink);
    }
    .btn.primary:hover{background:#111}

    
    
    .brand-link{display:inline-flex; align-items:center; justify-content:center; border-radius:999px; padding:6px; transition:transform .16s ease, background .16s ease;}
    .brand-link:hover{background:rgba(0,0,0,.03); transform:translateY(-1px);}

    /* Dot divider (línea + punto) */
    .dot-divider{
      display:flex; align-items:center; gap:14px;
      margin:0;
      padding:0;
    }
    .dot-divider::before,
    .dot-divider::after{
      content:"";
      height:1px;
      background:var(--line);
      flex:1;
    }
    .dot-divider .dot{
      width:10px;height:10px;border-radius:999px;background:var(--ink);
    }

    /* Hero */
    .hero{
      padding:78px 0 56px;
    }
    .hero-inner{
      display:flex;
      flex-direction:column;
      align-items:center;
      text-align:center;
      gap:14px;
    }
    h1{
      font-family:var(--serif);
      font-weight:700;
      letter-spacing:-.03em;
      line-height:1.08;
      margin:0;
      font-size:46px;
      max-width:22ch;
    }
    .lead{
      margin:0;
      color:var(--muted);
      font-size:16px;
      max-width:76ch;
    }

    /* Cards */
    .grid-3{
      display:grid;
      grid-template-columns: repeat(3, 1fr);
      gap:14px;
    }
    .grid-2{
      display:grid;
      grid-template-columns: repeat(2, 1fr);
      gap:14px;
    }
    .card{
      border:1px solid var(--line);
      border-radius:var(--radius);
      background:#fff;
      box-shadow:var(--shadow);
      padding:18px;
    }
    .card h3{
      font-family:var(--serif);
      font-size:18px;
      margin:0 0 10px;
      letter-spacing:-.01em;
    }
    .card p, .card li{
      color:var(--muted);
      font-size:14px;
    }
    .card ul{margin:0;padding-left:18px}
    .card ul li{margin:6px 0}

    
    /* Simple section header */
    .head{
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      gap:10px;
      margin-bottom:22px;
      text-align:center;
    }
    .head h2{
      font-family:var(--serif);
      font-size:30px;
      letter-spacing:-.02em;
      margin:0;
      text-align:center;
    }
    .head p{
      margin:0;
      color:var(--muted);
      font-size:14px;
      max-width:78ch;
      text-align:center;
    }
    .subhead{
      margin:0;
      font-family:var(--serif);
      font-weight:400;
      font-size:16px;
      color:var(--muted);
      max-width:78ch;
      text-align:center;
      letter-spacing:-.01em;
    }

    /* Centered cards */
    .card{ text-align:center; }
    .card p{ margin:0; }
    .card ul{
      display:inline-block;
      text-align:left;
      margin:0 auto;
    }
    .chips{justify-content:center;}
    .grid-3, .grid-2{justify-items:center;}
    .grid-3 .card, .grid-2 .card{width:100%;}

    
    
    
    
    
    
    
    
    /* Timeline */
    .timeline{
      border:1px solid var(--line);
      border-radius:var(--radius);
      background:#fff;
      box-shadow:0 10px 24px rgba(0,0,0,.05);
      padding:22px 22px;
      width:100%;
      overflow:hidden;
      text-align:left;
    }
    .event{
      display:grid;
      grid-template-columns: 170px 26px 1fr;
      gap:18px;
      padding:26px 0;
      position:relative;
      align-items:start;
      text-align:left;
    }
    .year{
      display:flex;
      flex-direction:column;
      gap:6px;
      align-items:flex-start;

      font-weight:700;
      color:var(--ink);
      font-size:14px;
      letter-spacing:.03em;
      text-transform:none;
      text-align:left;
      padding:0 10px 0 0;
      white-space:nowrap;
    }
    
    .country{
      font-weight:500;
      color:rgba(120,120,120,.95);
      font-size:12px;
      letter-spacing:.02em;
      text-transform:none;
    }

    .tl{
      position:relative;
      height:100%;
      display:flex;
      align-items:flex-start;
      justify-content:center;
      padding-top:2px;
    }
    .tl::before{
      content:"";
      position:absolute;
      top:-26px;
      bottom:-26px;
      left:50%;
      width:1px;
      background:rgba(230,230,230,.9);
      transform:translateX(-.5px);
    }
    .tl .dot{
      width:11px;
      height:11px;
      border-radius:999px;
      background:var(--ink);
      margin-top:7px;
      position:relative;
      z-index:2;
    }
    .event p{
      margin:0;
      color:var(--muted);
      font-weight:400;
      font-size:16px;
      line-height:1.7;
      padding:0;
      max-width:none;
    }
    @media (max-width: 760px){
      .timeline{padding:18px 16px;}
      .event{grid-template-columns: 1fr; gap:10px; padding:18px 0;}
      .tl{display:none;}
      .year{
      display:flex;
      flex-direction:column;
      gap:6px;
      align-items:flex-start;
white-space:normal;}
      .event p{font-size:15px;}
    }

    /* Clients chips */
    .chips{display:flex;flex-wrap:wrap;gap:10px;}
    .chip{
      border:1px solid var(--line);
      border-radius:999px;
      padding:9px 12px;
      font-size:13px;
      color:var(--muted);
      background:#fff;
      box-shadow:var(--shadow);
    }

    
    /* Client carousel (marquee) */
    .client-marquee{
      border:1px solid var(--line);
      border-radius:var(--radius);
      background:transparent;
      overflow:hidden;
      padding:14px 0;
      box-shadow:var(--shadow);
    }
    .marquee-track{
      display:flex;
      gap:34px;
      align-items:center;
      width:max-content;
      padding:0 18px;
      animation: marquee 18s linear infinite;
    }
    .client-name{
      font-family:var(--serif);
      font-size:16px;
      color:var(--muted2);
      letter-spacing:-.01em;
      white-space:nowrap;
      opacity:.9;
    }
    @keyframes marquee{
      0%{transform:translateX(0);}
      100%{transform:translateX(-50%);}
    }
    @media (prefers-reduced-motion: reduce){
      .marquee-track{animation:none;}
    }

    /* Services accordion */
    details{
      border-top:1px solid var(--line);
      padding:14px 0;
    }
    details:last-child{border-bottom:1px solid var(--line);}
    summary{
      list-style:none;
      cursor:pointer;
      display:flex;
      align-items:baseline;
      justify-content:space-between;
      gap:12px;
    }
    summary::-webkit-details-marker{display:none;}
    .svc-title{
      font-family:var(--serif);
      font-size:18px;
      margin:0;
    }
    .svc-meta{
      font-size:12px;
      letter-spacing:.08em;
      text-transform:uppercase;
      color:var(--muted2);
    }
    details[open] .svc-meta{color:var(--ink);}
    
    .svc-bajada{
      margin-top:8px;
      margin-bottom:10px;
      font-family:var(--serif);
      font-size:16px;
      color:var(--muted);
      letter-spacing:-.01em;
    }

    .svc-body{
      margin-top:10px;
      color:var(--muted);
      font-size:14px;
      max-width:85ch;
    }
    .svc-body ul{margin:10px 0 0;padding-left:18px}
    .svc-body li{margin:6px 0}

    /* Contact */
    form{display:grid;gap:10px;}
    .field{display:grid;gap:6px;}
    label{
      font-size:12px;
      color:var(--muted2);
      letter-spacing:.08em;
      text-transform:uppercase;
    }
    input, textarea{
      border:1px solid var(--line);
      border-radius:14px;
      padding:12px 12px;
      font-family:var(--serif);
      font-size:14px;
      outline:none;
      background:#fff;
      box-shadow:var(--shadow);
    }
    textarea{min-height:140px;resize:vertical;}
    input:focus, textarea:focus{border-color:var(--ink);}
    .fineprint{font-size:12px;color:var(--muted);margin-top:8px;}

    /* Footer */
    footer{
      border-top:1px solid var(--line);
      padding:34px 0 44px;
      background:#fff;
    }
    .footer-grid{
      display:grid;
      grid-template-columns: 1.2fr .8fr;
      gap:18px;
      align-items:start;
    }
    .footer-col h4{
      font-size:12px;
      letter-spacing:.08em;
      text-transform:uppercase;
      color:var(--muted2);
      margin:0 0 10px;
    }
    .footer-links{display:grid; gap:8px; font-size:14px; color:var(--muted);}
    .footer-links a:hover{color:var(--ink)}
    .social{
      display:flex; gap:10px; align-items:center; flex-wrap:wrap;
    }
    .icon{
      width:42px;height:42px;
      border:1px solid var(--line);
      border-radius:999px;
      display:inline-flex;align-items:center;justify-content:center;
      background:#fff;
      box-shadow:var(--shadow);
      transition:transform .16s ease, box-shadow .16s ease, background .16s ease;
    }
    .icon:hover{transform:translateY(-1px);box-shadow:var(--shadow2);background:#FAFAFA;}
    .copyright{
      margin-top:14px;
      font-size:12px;
      color:var(--muted);
    }
    .legal{font-size:12px;color:var(--muted);display:flex;gap:10px;flex-wrap:wrap;margin-top:10px;}
    .legal a{color:var(--muted);}
    .legal a:hover{color:var(--ink);}

    /* Responsive */
    @media (max-width: 1020px){
      .grid-3{grid-template-columns:1fr}
      .grid-2{grid-template-columns:1fr}
      .nav{grid-template-columns: 1fr auto 1fr}
      .search{min-width:180px}
      h1{font-size:40px}
    }
    @media (max-width: 760px){
      .menu{display:none}
      .search{display:none}
      .nav{grid-template-columns: 1fr auto 1fr}
      h1{font-size:34px}
      .footer-grid{grid-template-columns:1fr}
    }
  
    /* Responsive (stable) */
    @media (max-width: 1020px){
      .grid-3{grid-template-columns: 1fr;}
      .grid-2{grid-template-columns: 1fr;}
      .card{padding:16px;}
      h1{font-size:40px;}
    }
    @media (max-width: 820px){
      .menu{display:none;}
      .search{display:none;}
      .nav{height:auto; padding:12px 0;}
      .brand-center img{height:72px; max-width:78vw;}
      .btn{font-size:12px; padding:8px 10px;}
    }
    @media (max-width: 520px){
      .container{padding:0 16px;}
      h1{font-size:34px;}
      .section{padding:52px 0;}
      .section-tight{padding:40px 0;}
      .timeline{padding:18px 16px;}
    }


    /* Mobile hamburger menu */
    .burger{
      display:none;
      border:1px solid var(--line);
      border-radius:999px;
      padding:10px 12px;
      background:#fff;
      box-shadow:var(--shadow);
      cursor:pointer;
      transition:transform .16s ease, box-shadow .16s ease, background .16s ease;
    }
    .burger:hover{transform:translateY(-1px); box-shadow:var(--shadow2); background:#FAFAFA;}
    .burger span{
      display:block;
      width:18px;
      height:2px;
      background:var(--ink);
      margin:4px 0;
      border-radius:2px;
    }
    .mobile-menu{
      border-bottom:1px solid var(--line);
      padding:10px 0 14px;
      background:rgba(255,255,255,.92);
      backdrop-filter:saturate(160%) blur(10px);
    }
    .mobile-menu a{
      display:block;
      padding:12px 22px;
      color:var(--muted);
      font-size:14px;
      letter-spacing:.06em;
      text-transform:uppercase;
    }
    .mobile-menu a:hover{color:var(--ink); background:var(--soft);}

    @media (max-width: 820px){
      .menu{display:none;}
      .search{display:none;}
      .burger{display:inline-flex;}
    }


/* Correcciones de navegación, accesibilidad y disposición; identidad v40 conservada. */
[hidden]{display:none!important} body{padding-top:0} header{position:sticky} section[id],main[id],article[id]{scroll-margin-top:180px} .nav{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)} .menu{font-size:12px;gap:0;letter-spacing:.02em}.menu a{padding:10px 7px}.nav-right{flex-wrap:wrap}.btn{font:inherit;font-size:14px;min-height:44px;padding:10px 16px;white-space:normal;text-align:center}.actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:18px}.card p,.card li,.head p{font-size:16px}.card{padding:24px}.card .actions{margin-top:24px}.clients{display:flex;flex-wrap:wrap;justify-content:center;gap:20px 34px}.client-name{white-space:normal;color:var(--muted)}.editorial{text-align:center;background:var(--soft);padding:42px 26px}.editorial h2{font-size:32px;line-height:1.3;margin:16px auto;max-width:25ch}.editorial .lead{margin:auto}.eyebrow{font-size:14px;letter-spacing:.12em}.iso{height:52px;width:auto}.burger{flex-direction:column;gap:4px;min-height:44px;justify-content:center}.burger span{margin:0}.mobile-menu{max-height:65vh;overflow:auto}.social a{font-size:14px}.social{gap:18px}.skip{position:fixed;left:16px;top:-100px;z-index:100;background:white;padding:12px;border:1px solid}.skip:focus{top:12px}:focus-visible{outline:2px solid var(--ink);outline-offset:5px}.search{min-width:0;width:145px}.search input{font-size:14px;box-shadow:none;padding:0}.search-result{margin:0;text-align:center;font-size:14px} .svc-title{font-size:22px} .service-card{display:flex;flex-direction:column}.service-card .actions{margin-top:auto;padding-top:24px}.service-card ul{padding-top:14px;padding-bottom:14px}.footer-links a,.legal a{padding:4px 0}.contact-note a{overflow-wrap:anywhere}
@media(max-width:1100px){.menu,.search{display:none}.burger{display:flex}.nav{height:116px}.brand-center img{height:84px}section[id],main[id],article[id]{scroll-margin-top:136px}}
@media(max-width:520px){.nav{gap:8px;height:100px;padding:8px 0}.brand-center img{height:66px}.nav-right .btn{padding:8px;font-size:12px}.hero{padding:48px 0 36px}h1{font-size:34px;line-height:1.18}.editorial{padding:28px 18px}.editorial h2{font-size:27px}.head h2{font-size:27px}.card{padding:20px}.actions .btn{max-width:100%}section[id],main[id],article[id]{scroll-margin-top:120px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media(max-width:820px){.container.nav{padding-left:16px;padding-right:16px}}

/* Carrusel continuo de clientes: dos grupos idénticos, sin salto al reiniciar. */
.clients{display:block;overflow:hidden;padding:24px 0}
.clients-track{display:flex;width:max-content;animation:clients-scroll 32s linear infinite}
.clients-group{display:flex;align-items:center;gap:40px;padding-right:40px;flex-shrink:0}
.clients .client-name{white-space:nowrap;flex-shrink:0}
@keyframes clients-scroll{to{transform:translateX(-50%)}}
.social .icon{width:44px;height:44px;flex-shrink:0}
@media(prefers-reduced-motion:reduce){.clients-track{animation:none;width:auto}.clients-group{flex-wrap:wrap;justify-content:center;padding:0 20px;gap:20px 30px}.clients-group[aria-hidden="true"]{display:none}.clients .client-name{white-space:normal}}

.contact-invitation{font-size:22px!important;color:var(--ink)!important;margin-top:24px!important}.contact-note a{text-decoration:underline;text-underline-offset:5px}.search-result{padding:0 22px 12px;overflow-wrap:anywhere}
