    :root {
      --ink: #101713;
      --muted: #5e6a63;
      --paper: #f5f4ef;
      --paper-2: #ebece6;
      --line: rgba(16,23,19,.14);
      --green: #4b755d;
      --green-dark: #234834;
      --lime: #b9d36c;
      --white: #fff;
      --max: 1240px;
      --radius: 22px;
      --shadow: 0 24px 70px rgba(16,23,19,.13);
    }

    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      background: var(--paper);
      color: var(--ink);
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      line-height: 1.5;
      -webkit-font-smoothing: antialiased;
    }
    a { color: inherit; text-decoration: none; }
    img { display:block; width:100%; height:auto; }
    button, a { -webkit-tap-highlight-color: transparent; }

    .container { width:min(calc(100% - 44px), var(--max)); margin-inline:auto; }
    .eyebrow {
      display:inline-flex; align-items:center; gap:.55rem;
      font-size:.76rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase;
      color:var(--green-dark);
    }
    .eyebrow::before { content:""; width:26px; height:2px; background:var(--lime); }

    .nav {
      position:fixed; inset:0 0 auto 0; z-index:50;
      background:rgba(245,244,239,.84); backdrop-filter: blur(18px);
      border-bottom:1px solid rgba(16,23,19,.08);
    }
    .nav-inner { min-height:78px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
    .brand { display:flex; align-items:center; gap:11px; font-weight:850; letter-spacing:-.03em; font-size:1.22rem; }
    .brand-mark {
      width:34px; height:34px; border-radius:11px 11px 11px 3px; background:var(--green-dark);
      position:relative; transform:rotate(-6deg);
    }
    .brand-mark::before { content:""; position:absolute; width:11px; height:22px; border-radius:100% 0 100% 0; background:var(--lime); left:11px; top:6px; transform:rotate(35deg); }
    .nav-links { display:flex; align-items:center; gap:27px; color:#39453e; font-size:.92rem; font-weight:650; }
    .nav-links a:hover { color:var(--green-dark); }
    .btn { display:inline-flex; align-items:center; justify-content:center; gap:.55rem; min-height:48px; padding:0 20px; border-radius:999px; font-size:.9rem; font-weight:800; border:1px solid transparent; transition:.2s ease; }
    .btn-primary { background:var(--green-dark); color:#fff; }
    .btn-primary:hover { transform:translateY(-2px); background:#163624; }
    .btn-ghost { border-color:var(--line); background:rgba(255,255,255,.55); }
    .btn-ghost:hover { background:#fff; transform:translateY(-2px); }

    .hero { padding:154px 0 70px; overflow:hidden; }
    .hero-grid { display:grid; grid-template-columns:1.02fr .98fr; gap:68px; align-items:center; }
    .hero h1 { margin:16px 0 20px; max-width:760px; font-size:clamp(3.4rem, 6.6vw, 6.9rem); line-height:.9; letter-spacing:-.066em; }
    .hero h1 span { color:var(--green); }
    .hero-copy { max-width:680px; color:#4f5a54; font-size:1.15rem; }
    .hero-actions { display:flex; gap:11px; flex-wrap:wrap; margin-top:31px; }
    .hero-meta { display:flex; gap:28px; flex-wrap:wrap; margin-top:38px; padding-top:22px; border-top:1px solid var(--line); }
    .hero-meta strong { display:block; font-size:.84rem; }
    .hero-meta span { font-size:.83rem; color:var(--muted); }

    .hero-visual { position:relative; min-height:630px; }
    .hero-photo { position:absolute; inset:0 10% 0 0; overflow:hidden; border-radius:30px; box-shadow:var(--shadow); background:#cfd6d0; }
    .hero-photo img { height:100%; object-fit:cover; filter:saturate(.76) contrast(1.05); }
    .hero-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,25,18,.03), rgba(10,25,18,.38)); }
    .data-card { position:absolute; right:0; bottom:35px; width:min(360px,78%); border-radius:20px; background:rgba(15,28,21,.94); color:#fff; box-shadow:var(--shadow); padding:20px; border:1px solid rgba(255,255,255,.12); }
    .data-card-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; }
    .status { display:inline-flex; align-items:center; gap:7px; font-size:.74rem; color:#d9e6dd; }
    .status::before { content:""; width:7px; height:7px; border-radius:99px; background:var(--lime); box-shadow:0 0 0 4px rgba(185,211,108,.11); }
    .mini-label { color:#a8b9af; font-size:.7rem; text-transform:uppercase; letter-spacing:.12em; }
    .metric { display:grid; grid-template-columns:1fr auto; gap:8px; align-items:end; margin:12px 0 5px; }
    .metric b { font-size:2.1rem; letter-spacing:-.05em; }
    .spark { height:52px; display:flex; align-items:flex-end; gap:5px; margin-top:12px; }
    .spark i { display:block; flex:1; min-width:3px; background:linear-gradient(var(--lime),#577f61); border-radius:4px 4px 1px 1px; opacity:.9; }

    .statement { padding:76px 0; }
    .statement-grid { display:grid; grid-template-columns:.72fr 1.28fr; gap:90px; align-items:start; }
    .statement h2 { margin:0; font-size:clamp(2.2rem,4.3vw,4.5rem); line-height:.96; letter-spacing:-.052em; }
    .statement p { margin:22px 0 0; font-size:1.13rem; color:var(--muted); max-width:720px; }

    .solutions { padding:70px 0 112px; }
    .section-head { display:flex; justify-content:space-between; gap:40px; align-items:end; margin-bottom:32px; }
    .section-head h2 { margin:9px 0 0; font-size:clamp(2.5rem,4.3vw,4.35rem); letter-spacing:-.055em; line-height:.97; }
    .section-head p { max-width:500px; color:var(--muted); margin:0 0 5px; }
    .solution-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:17px; }
    .solution-card { min-height:620px; border-radius:var(--radius); overflow:hidden; position:relative; background:#1c2b23; color:#fff; }
    .solution-card img { position:absolute; inset:0; height:100%; object-fit:cover; transition:transform .6s ease; }
    .solution-card:hover img { transform:scale(1.035); }
    .solution-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(6,14,9,.04) 18%, rgba(6,14,9,.82) 78%, rgba(6,14,9,.96)); }
    .solution-card-content { position:absolute; z-index:2; inset:auto 27px 27px 27px; }
    .solution-kicker { display:flex; justify-content:space-between; gap:12px; align-items:center; color:#dfe8e2; font-size:.76rem; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }
    .solution-number { color:var(--lime); }
    .solution-card h3 { margin:12px 0 8px; font-size:2rem; line-height:1; letter-spacing:-.04em; }
    .solution-card p { margin:0; color:#d3ddd7; font-size:.94rem; }
    .chips { display:flex; gap:7px; flex-wrap:wrap; margin-top:18px; }
    .chip { border:1px solid rgba(255,255,255,.2); background:rgba(255,255,255,.08); backdrop-filter:blur(8px); padding:6px 9px; border-radius:999px; font-size:.69rem; color:#edf3ef; }

    .manufacturing { background:#102017; color:#fff; padding:110px 0; }
    .manufacturing .eyebrow { color:#d9e8df; }
    .manufacturing-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:80px; align-items:start; }
    .manufacturing h2 { margin:14px 0 22px; font-size:clamp(2.8rem,5vw,5rem); line-height:.93; letter-spacing:-.057em; }
    .manufacturing .lead { color:#b8c7be; max-width:580px; font-size:1.08rem; }
    .capabilities { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid rgba(255,255,255,.16); }
    .cap { min-height:185px; padding:24px 20px 24px 0; border-bottom:1px solid rgba(255,255,255,.13); }
    .cap:nth-child(odd) { border-right:1px solid rgba(255,255,255,.13); padding-right:28px; }
    .cap:nth-child(even) { padding-left:28px; }
    .cap-index { color:var(--lime); font-size:.72rem; font-weight:800; letter-spacing:.08em; }
    .cap h3 { margin:9px 0 7px; font-size:1.25rem; }
    .cap p { margin:0; color:#aebeb4; font-size:.89rem; }

    .principle { padding:115px 0; }
    .principle h2 { max-width:800px; margin:10px 0 22px; font-size:clamp(2.8rem,5vw,5.1rem); line-height:.94; letter-spacing:-.06em; }
    .principle-intro { max-width:680px; color:var(--muted); font-size:1.06rem; }
    .questions { margin-top:52px; display:grid; grid-template-columns:repeat(6,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
    .question { padding:23px 16px 21px 0; min-height:128px; border-right:1px solid var(--line); }
    .question:last-child { border-right:0; }
    .question strong { display:block; font-size:1.25rem; letter-spacing:-.02em; }
    .question span { display:block; color:var(--muted); font-size:.78rem; margin-top:8px; }

    .product-detail { padding:105px 0; border-top:1px solid var(--line); }
    .detail-grid { display:grid; grid-template-columns:1.03fr .97fr; gap:74px; align-items:center; }
    .detail-grid.reverse .detail-image { order:2; }
    .detail-image { border-radius:26px; overflow:hidden; aspect-ratio: 4 / 3; background:#d2d8d1; box-shadow:var(--shadow); }
    .detail-image img { height:100%; object-fit:cover; filter:saturate(.78) contrast(1.04); }
    .detail-copy h2 { margin:10px 0 18px; font-size:clamp(2.7rem,4.5vw,4.7rem); letter-spacing:-.058em; line-height:.95; }
    .detail-copy .lead { color:var(--muted); font-size:1.07rem; margin-bottom:26px; }
    .feature-list { display:grid; gap:0; border-top:1px solid var(--line); }
    .feature { padding:16px 0; display:grid; grid-template-columns:32px 1fr; gap:10px; border-bottom:1px solid var(--line); }
    .feature-num { color:var(--green); font-size:.72rem; font-weight:800; padding-top:4px; }
    .feature strong { display:block; margin-bottom:3px; }
    .feature span { color:var(--muted); font-size:.88rem; }

    .custom { padding:105px 0; background:#dedfd8; }
    .custom-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:end; }
    .custom h2 { margin:12px 0 0; max-width:760px; font-size:clamp(3rem,5.6vw,5.7rem); line-height:.91; letter-spacing:-.065em; }
    .custom p { font-size:1.06rem; color:#55615a; max-width:590px; }

    .integration { padding:110px 0; }
    .integration-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:90px; align-items:center; }
    .integration h2 { margin:10px 0 18px; font-size:clamp(2.8rem,5vw,5rem); letter-spacing:-.06em; line-height:.94; }
    .integration p { color:var(--muted); }
    .diagram { min-height:560px; border:1px solid var(--line); border-radius:28px; position:relative; background:linear-gradient(145deg, rgba(255,255,255,.72), rgba(225,228,219,.56)); overflow:hidden; }
    .diagram::before { content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(16,23,19,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(16,23,19,.055) 1px, transparent 1px); background-size:34px 34px; }
    .node { position:absolute; z-index:2; min-width:128px; padding:14px 16px; border-radius:13px; background:rgba(255,255,255,.94); border:1px solid var(--line); box-shadow:0 12px 30px rgba(16,23,19,.08); text-align:center; font-size:.78rem; font-weight:800; }
    .node.core { width:190px; height:190px; display:flex; align-items:center; justify-content:center; border-radius:50%; left:50%; top:50%; transform:translate(-50%,-50%); background:var(--green-dark); color:#fff; font-size:1rem; border:7px solid rgba(185,211,108,.2); }
    .node.n1 { left:4%; top:12%; } .node.n2 { right:3%; top:12%; } .node.n3 { left:4%; bottom:12%; } .node.n4 { right:3%; bottom:12%; } .node.n5 { left:50%; top:2%; transform:translateX(-50%); }

    .about { padding:110px 0; background:#fff; }
    .about-grid { display:grid; grid-template-columns:1fr 1fr; gap:86px; align-items:start; }
    .about h2 { margin:10px 0 0; font-size:clamp(3rem,5vw,5.1rem); line-height:.92; letter-spacing:-.06em; }
    .about-copy { color:var(--muted); font-size:1.05rem; }
    .about-copy p:first-child { margin-top:0; color:var(--ink); font-size:1.24rem; }
    .about-facts { margin-top:28px; display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
    .fact { padding:18px; background:var(--paper); border-radius:14px; }
    .fact b { display:block; font-size:1.18rem; }
    .fact span { font-size:.78rem; color:var(--muted); }

    .cta { padding:110px 0; background:var(--green-dark); color:#fff; }
    .cta-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:60px; align-items:end; }
    .cta .eyebrow { color:#d9e8df; }
    .cta h2 { margin:11px 0 0; max-width:850px; font-size:clamp(3.1rem,5.8vw,6rem); line-height:.9; letter-spacing:-.065em; }
    .cta-copy { color:#c0d0c6; }
    .cta .btn-primary { background:var(--lime); color:#14281c; margin-top:18px; }

    footer { padding:35px 0; background:#0c1711; color:#a8b8ae; font-size:.79rem; }
    .footer-grid { display:flex; justify-content:space-between; gap:24px; flex-wrap:wrap; }
    .footer-links { display:flex; gap:20px; flex-wrap:wrap; }

    @media (max-width: 980px) {
      .nav-links { display:none; }
      .hero-grid, .statement-grid, .manufacturing-grid, .detail-grid, .custom-grid, .integration-grid, .about-grid, .cta-grid { grid-template-columns:1fr; gap:45px; }
      .hero-visual { min-height:560px; }
      .solution-grid { grid-template-columns:1fr; }
      .solution-card { min-height:510px; }
      .questions { grid-template-columns:repeat(3,1fr); }
      .question:nth-child(3) { border-right:0; }
      .question:nth-child(-n+3) { border-bottom:1px solid var(--line); }
      .detail-grid.reverse .detail-image { order:0; }
    }
    @media (max-width: 640px) {
      .container { width:min(calc(100% - 28px), var(--max)); }
      .nav-inner { min-height:68px; }
      .nav .btn { min-height:42px; padding:0 14px; }
      .hero { padding-top:118px; }
      .hero h1 { font-size:clamp(3.2rem,16vw,5rem); }
      .hero-visual { min-height:450px; }
      .hero-photo { inset:0 0 48px 0; }
      .data-card { bottom:0; width:88%; }
      .section-head { align-items:start; flex-direction:column; gap:14px; }
      .capabilities { grid-template-columns:1fr; }
      .cap:nth-child(odd) { border-right:0; padding-right:0; }
      .cap:nth-child(even) { padding-left:0; }
      .questions { grid-template-columns:repeat(2,1fr); }
      .question:nth-child(3) { border-right:1px solid var(--line); }
      .question:nth-child(even) { border-right:0; }
      .question:nth-child(-n+4) { border-bottom:1px solid var(--line); }
      .about-facts { grid-template-columns:1fr; }
      .diagram { min-height:420px; }
      .node { min-width:104px; padding:11px; font-size:.68rem; }
      .node.core { width:135px; height:135px; }
    }

/* ---------- Inter autoalojada (fuente variable, v4.1) ----------
   Un solo fichero cubre todos los pesos de 100 a 900.
   Licencia SIL OFL: ver assets/fonts/Inter-LICENSE.txt */
@font-face {
  font-family: "Inter";
  src: url("fonts/InterVariable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

/* ---------- selector de idioma ---------- */
.lang {
  display: flex; align-items: center; gap: 2px;
  font-size: .78rem; font-weight: 750; letter-spacing: .04em;
  text-transform: uppercase; color: #6b7770;
}
.lang a {
  padding: 6px 8px; border-radius: 8px; transition: .18s ease;
}
.lang a:hover { background: rgba(16,23,19,.06); color: var(--green-dark); }
.lang a[aria-current="true"] { color: var(--green-dark); background: rgba(16,23,19,.07); }
.lang span { color: rgba(16,23,19,.22); }

@media (max-width: 1000px) {
  .lang { order: 3; }
}

/* ---------- logo real en la barra ---------- */
.brand img { height: 34px; width: auto; display: block; }
@media (max-width: 720px) { .brand img { height: 26px; } }

/* las tarjetas de solución igualan el tratamiento del hero y de las
   secciones de detalle, que ya llevan saturate/contrast */
.solution-card img { filter: saturate(.78) contrast(1.04); }

/* ---------- páginas legales ---------- */
.legal { padding: 150px 0 90px; }
.legal-inner { max-width: 74ch; }
.legal h1 { font-size: clamp(2.4rem, 5vw, 4rem); letter-spacing: -.05em; line-height: 1; margin: 14px 0 10px; }
.legal .updated { font-size: .84rem; color: var(--muted); margin: 0 0 40px; }
.legal h2 { font-size: 1.6rem; letter-spacing: -.03em; margin: 44px 0 12px; }
.legal h3 { font-size: 1.06rem; margin: 28px 0 8px; }
.legal p { margin: 0 0 16px; color: #3f4a44; }
.legal ul { margin: 0 0 16px; padding-left: 20px; color: #3f4a44; }
.legal li { margin-bottom: 8px; }
.legal a { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
.legal .box {
  background: #fff; border: 1px solid var(--line); border-radius: 16px;
  padding: 22px 24px; margin: 26px 0 30px;
}
.legal .box p:last-child { margin-bottom: 0; }
.legal table { width: 100%; border-collapse: collapse; margin: 0 0 20px; font-size: .93rem; }
.legal th, .legal td { text-align: left; padding: 9px 12px 9px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.legal th { font-weight: 700; color: var(--green-dark); }
.legal .back { display: inline-flex; align-items: center; gap: 8px; margin-top: 40px; font-weight: 700; color: var(--green-dark); }

/* ---------- diagrama de integración ---------- */
.diagram .wires {
  position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1;
}
.diagram .wires line {
  stroke: rgba(35,72,52,.34);
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
}

.node {
  display: flex; flex-direction: column; align-items: center; gap: 9px;
  min-width: 150px; padding: 16px 14px 15px;
  border-radius: 15px;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 14px 34px rgba(16,23,19,.10);
  text-align: center; font-size: .8rem; font-weight: 800; line-height: 1.25;
}
.node-ico { display: block; }
.node-ico svg {
  width: 30px; height: 30px; display: block;
  fill: none; stroke: var(--green-dark); stroke-width: 1.7;
  stroke-linecap: round; stroke-linejoin: round;
}
.node-label { display: block; color: var(--ink); }

.node.core {
  gap: 0; min-width: 0; padding: 0;
  border: 8px solid rgba(185,211,108,.22);
  box-shadow: 0 18px 44px rgba(16,23,19,.22);
}
.node.core span { color: #fff; font-size: 1.02rem; line-height: 1.22; }

@media (max-width: 640px) {
  .node { min-width: 118px; padding: 12px 10px 11px; font-size: .7rem; gap: 7px; }
  .node-ico svg { width: 24px; height: 24px; }
  .node.core { border-width: 6px; }
  .node.core span { font-size: .82rem; }
}

/* etiquetas más estrechas: parten en dos líneas y las tarjetas no se pisan */
.node { min-width: 132px; max-width: 172px; }
.diagram { min-height: 560px; }

/* ---------- "Un solo principio": respiración en las celdas ---------- */

/* el titular ya no ocupa el ancho entero dejando la derecha vacía */
.principle-head {
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: 60px; flex-wrap: wrap;
}
.principle-head h2 { margin: 10px 0 0; }
.principle-head .principle-intro { margin: 0 0 6px; max-width: 430px; }

/* el texto ya no toca los filetes divisorios */
.question { padding: 26px 24px 26px 24px; }
.question:first-child { padding-left: 0; }
.question strong { font-size: 1.18rem; }
.question span { margin-top: 9px; line-height: 1.45; }

@media (max-width: 980px) {
  .principle-head { display: block; }
  .principle-head .principle-intro { max-width: 680px; margin-top: 18px; }
  .question:not(:nth-child(3n+1)) { padding-left: 24px; }
  .question:nth-child(3n+1) { padding-left: 0; }
}

@media (max-width: 640px) {
  .question:nth-child(even) { padding-left: 24px; }
  .question:nth-child(odd) { padding-left: 0; }
}

/* que titular e introducción quepan en la misma fila */
.principle-head > div { max-width: 700px; flex: 0 1 700px; }
.principle-head h2 { max-width: none; }
.principle-head .principle-intro { max-width: 400px; flex: 0 1 400px; }
@media (max-width: 980px) {
  .principle-head > div, .principle-head .principle-intro { max-width: 100%; flex: none; }
}
