@font-face{font-family:Figtree;font-style:normal;font-weight:300 600;font-display:swap;src:url(/fonts/figtree-latin-ext.woff2?v=f153aa07c1) 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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Figtree;font-style:normal;font-weight:300 600;font-display:swap;src:url(/fonts/figtree-latin.woff2?v=8330490a01) format("woff2");unicode-range:U+00??,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}
@font-face{font-family:"Space Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/spacemono-latin-ext.woff2?v=b4f90459ad) 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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Space Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/spacemono-latin.woff2?v=e0c8e616bd) format("woff2");unicode-range:U+00??,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}

/* ══ Alineación con Tixora: tokens, base, escala fluida, cabecera, hero, botones y pie replicados de tixora.es (styles/tokens.css, app/globals.css) ══ */
:root{
  color-scheme:light;
  --bg:#fafbfc; --text:#111111; --text-secondary:#4a5560; --text-muted:#5f6a75;
  --accent:#528cbb; --accent-text:#2d6a9a;
  --rule:color-mix(in srgb,#528cbb 55%,#fafbfc);
  --capsule:#3a74a4; --on-accent:#ffffff;
  --contact-bg:#b1eaf2; --contact-fg:#111111; --contact-line:#5f6b75;
  --cta-bg:#b1eaf2; --cta-bg-hover:#9bdde8; --cta-fg:#111111; --cta-box-bg:#ffffff; --cta-box-line:#111111;
  --cta2-bg:#528cbb; --cta2-bg-hover:#3a74a4; --cta2-fg:#111111;
  --r-3:3px; --ease-out:cubic-bezier(.22,1,.36,1);
  --sans:Figtree,"Figtree Fallback",Arial,system-ui,sans-serif;
  --mono:"Space Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  /* Escala fluida del hero/cabecera (Tixora, feature 131): --W = viewport con tope 1920; --S = escala del lockup; --s/--w = 1 % de S / W.
     El lockup de Tixentia (mazo + wordmark) mide 3,685 : 1, por eso su alto base es 25,9 s (95,4 s de ancho, como el de Tixora). */
  --Wmax:1920px; --W:min(100vw,var(--Wmax));
  --S:min(var(--W),180vh,calc((100vh - 180px) / 0.259),calc((var(--W) - 32px) / 0.97));
  --s:calc(var(--S) / 100); --w:calc(var(--W) / 100);
  --col-x:calc(49.6 * var(--w));
}
*,*::before,*::after{box-sizing:border-box}
html{color-scheme:light;scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;min-height:100vh;min-height:100dvh;background:var(--bg);color:var(--text);font-family:var(--sans);font-weight:400;font-size:1rem;line-height:1.5}
h1,p,ul{margin:0}
ul{padding:0;list-style:none}
img{display:block;max-width:100%;height:auto}
::selection{background:color-mix(in srgb,var(--accent) 30%,transparent);color:var(--text)}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:rgba(17,17,17,.14);border-radius:9999px}
::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}
:focus{outline:none}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.font-label{font-family:var(--mono);font-weight:400}
.skip{position:absolute;left:1rem;top:-4rem;z-index:80;background:var(--text);color:#fff;padding:.6rem 1rem;text-decoration:none}
.skip:focus{top:1rem}
.frame{width:100%;max-width:var(--Wmax);margin-inline:auto}

/* ── Cabecera + lockup (Tixora, features 124/131/137): todo el scrub se expresa con --p (0 = lockup gigante, 1 = barra compacta).
   Tixora lo mueve con JS (useScroll); aquí lo mueve una animación CSS ligada al scroll (scroll-timeline), sin JS. Sin soporte: cabecera
   compacta y fija (estado base, sin dependencias). El lockup gigante es solo mejora progresiva (scroll-timeline y sin reduced-motion). ── */
@property --p{syntax:"<number>";inherits:true;initial-value:0}
.nx{
  --p:1;
  --ox:max(0px,calc((100% - var(--W)) / 2));
  --navh:60px; --lhc:34px; --capw:156px;
  --gx0:max(16px,calc(1.75 * var(--s)));
  --gxc:16px; --gxr:16px;
  --lh0:calc(25.9 * var(--s));
  --t0:calc(var(--navh) + 12px);
  --menu-y0:calc(30.8 * var(--s));
  --fo:calc(var(--ox) + var(--gx0) - 1.75 * var(--s));
  --dist:calc(1.2 * var(--lh0));
  position:fixed;left:0;right:0;top:0;height:var(--navh);z-index:50;
}
@media (min-width:1024px){
  .nx{--navh:72px; --lhc:40px; --gxc:max(16px,calc(3.3 * var(--w))); --gxr:max(16px,calc(3.1 * var(--w))); --t0:calc(2.9 * var(--s)); --dist:calc(var(--menu-y0) - var(--navh) / 2)}
}
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:scroll()){
    .nx{animation:nxp linear both;animation-timeline:scroll(root block);animation-range:0px var(--dist)}
  }
}
@keyframes nxp{from{--p:0}to{--p:1}}
.nx-bg{position:absolute;inset:0;pointer-events:none;opacity:var(--p);background:var(--bg)}
.nx-lockup{
  --lh:calc(var(--lh0) * (1 - var(--p)) + var(--lhc) * var(--p));
  position:absolute;display:flex;align-items:flex-start;height:var(--lh);gap:calc(var(--lh) * .122);
  color:var(--text);text-decoration:none;white-space:nowrap;
  left:calc(var(--ox) + var(--gx0) * (1 - var(--p)) + var(--gxc) * var(--p));
  top:calc(var(--t0) * (1 - var(--p)) + (var(--navh) - var(--lhc)) / 2 * var(--p));
}
.nx-lockup:focus-visible,.ft-logo:focus-visible{outline:2px solid var(--accent-text);outline-offset:4px}
.nx-sym{display:block;flex:none;height:var(--lh);width:calc(var(--lh) * 1.131)}
.nx-sym .mz{display:block;width:100%;height:100%;overflow:visible}
.nx-word{flex:none;height:calc(var(--lh) * .5515);width:auto;margin-top:calc(var(--lh) * .202)}
.nx-menu,.nx-cap{display:none}
.nx-menu-list{display:flex;align-items:center;justify-content:flex-end;gap:14px}
/* Móvil/tablet: el botón «Contactar» aparece en la barra compacta (como la hamburguesa de Tixora); en escritorio vive en la fila de menú. */
.nx-menu{display:block;position:absolute;right:max(16px,var(--gxr));top:calc(var(--navh) / 2);transform:translateY(-50%)}
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:scroll()){
    .nx-menu{animation:nxfade linear both;animation-timeline:scroll(root block);animation-range:0px var(--dist)}
  }
}
@keyframes nxfade{0%,50%{opacity:0;visibility:hidden}51%{visibility:visible}100%{opacity:1;visibility:visible}}
@media (min-width:1024px){
  .nx-menu{animation:none;opacity:1;visibility:visible;
    left:calc(var(--ox) + var(--col-x));right:calc(var(--ox) + var(--gxr) + var(--capw));
    top:calc(var(--menu-y0) * (1 - var(--p)) + var(--navh) / 2 * var(--p))}
  .nx-cap{display:block;position:absolute;right:calc(var(--ox) + var(--gxr));top:calc(var(--navh) / 2);transform:translateY(-50%);opacity:calc(var(--p) * 2)}
}
/* Cápsula de estado (en Tixora, selector ES/EN): fondo --capsule, padding 4, segmento blanco con texto negro, Figtree Medium */
.nx-cap{margin:0;display:none;background:var(--capsule);padding:4px;white-space:nowrap}
.nx-cap span{display:block;background:#fff;color:#111;padding:3px 8px;font-size:15px;font-weight:500;line-height:1;letter-spacing:-.02em}
@media (min-width:1024px){.nx-cap{display:block}}
@media (prefers-reduced-motion:reduce){
  .nx{--p:1!important;animation:none!important}
  .nx-menu{animation:none!important;opacity:1;visibility:visible}
}
.nx-word,.nx-lockup{transition:color .22s ease}

/* Las decoraciones entran tras el golpe del mazo, junto con el wordmark (+2,5 s respecto a Tixora, donde entran al acabar su intro) */
/* Decoraciones del hero (Tixora, feature 129/131): chips y símbolos sobre el wordmark, en % del contenedor (frame 1728×520) y cqw */
.hd{position:absolute;z-index:1;pointer-events:none;user-select:none;left:var(--fo);top:calc(var(--t0) - 2.9 * var(--s));width:var(--S);aspect-ratio:1728 / 520;container-type:inline-size;transform-origin:0 0;
  opacity:max(0,calc(1 - var(--p) * 3));transform:translateY(calc(var(--p) * -3 * var(--s))) scale(calc(1 - var(--p) * .5))}
.hd-item{position:absolute;white-space:pre;animation:hdIn .6s var(--ease-out) backwards}
.hd-sym{line-height:1;color:#528cbb;font-family:var(--sans)}
.hd-chip{font-size:1.504cqw;line-height:.9;letter-spacing:-.04em;text-transform:uppercase;padding:.27em .385em;font-weight:400}
.hd-chip.c1{background:#b1eaf2;color:#000}
.hd-chip.c2{background:#3a74a4;color:#fff}
.hd-chip.c3{background:#fff;color:#000}
.hd-chip.c4{background:#3a74a4;color:#fff}
.hd-chip.c5{background:#b1eaf2;color:#000}
@container (max-width:599px){
  .hd-chip.c1,.hd-chip.c2,.hd-chip.c3{display:none}
  .hd-chip{font-size:max(10px,2.6cqw)}
  .hd-chip.c5{left:62% !important;top:2% !important}
  .hd-chip.c4{left:36% !important;top:80% !important}
}
@container (max-width:519px){.hd-sym.s4,.hd-sym.s5{display:none}}
@keyframes hdIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.hd-chip.c1{left:35.417%;top:37.692%;animation-delay:3.00s}
.hd-chip.c2{left:38.889%;top:46.154%;animation-delay:3.10s}
.hd-chip.c3{left:37.905%;top:57.692%;animation-delay:3.20s}
.hd-chip.c4{left:63.079%;top:63.462%;animation-delay:3.30s}
.hd-chip.c5{left:76.968%;top:39.423%;animation-delay:3.40s}
.hd-sym.s1{left:50.521%;top:14.615%;font-size:4.051cqw;font-weight:300;animation-delay:2.95s}
.hd-sym.s2{left:80.150%;top:62.500%;font-size:4.051cqw;font-weight:300;animation-delay:3.05s}
.hd-sym.s3{left:90.856%;top:57.692%;font-size:4.051cqw;font-weight:300;animation-delay:3.15s}
.hd-sym.s4{left:64.525%;top:32.692%;font-size:2.315cqw;font-weight:300;animation-delay:3.25s}
.hd-sym.s5{left:90.278%;top:30.769%;font-size:1.736cqw;font-weight:400;animation-delay:3.35s}

/* ── Hero (Tixora Hero.tsx + Eyebrow): hueco del lockup en el flujo y columna de texto en --col-x ── */
/* Estado base (sin scroll-timeline o con reduced-motion): barra compacta fija y hero justo debajo. El hueco del lockup gigante solo existe
   cuando la cabecera se anima (mejora progresiva). */
.hero-top{padding-top:120px;padding-bottom:calc(12 * var(--w))}
@media (min-width:1024px){.hero-top{padding-top:168px;padding-bottom:calc(7.08 * var(--w))}}
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:scroll()){
    .hero-top{padding-top:calc(100px + 25.9 * var(--s))}
    @media (min-width:1024px){.hero-top{padding-top:max(calc(33.5 * var(--s)),calc(100px + 25.9 * var(--s)))}}
  }
}
.hero-col{padding-inline:max(16px,5vw)}
@media (min-width:1024px){.hero-col{padding-inline:0;margin-left:var(--col-x);max-width:calc(47 * var(--s))}}
.eyebrow{display:flex;align-items:center;gap:16px;margin-bottom:calc(1.4 * var(--s) + 6px)}
.eyebrow span:first-child{white-space:nowrap;font-size:1rem;font-weight:400;text-transform:uppercase;letter-spacing:-.04em;color:var(--accent-text)}
.eyebrow .rule{height:1px;flex:1;background:var(--rule)}
.hero-p{font-weight:300;line-height:1;letter-spacing:-.04em;color:var(--text);font-size:clamp(1.375rem,calc(2.083 * var(--s)),2.25rem)}
.hero-p strong{font-weight:500}
.hero-p2{margin-top:.4em;text-indent:1.5em}
.hero-p2 strong{font-weight:600;color:var(--accent-text)}
.note{margin-top:calc(2.2 * var(--s) + 8px);font-size:.9375rem;line-height:1.5;color:var(--text-muted)}

/* ── Botones (Tixora ButtonPill «cta»/«ctaSecondary» y ArrowLink): rectángulos de esquina recta, sin radio ── */
.btns{margin-top:32px;display:flex;flex-direction:column;gap:12px}
.btns>div{min-width:0;width:100%;max-width:349px}
@media (min-width:640px){.btns{flex-direction:row;flex-wrap:wrap;gap:calc(2.28 * var(--w))}.btns>div{flex:none;width:calc(50% - 1.14 * var(--w))}}
@media (min-width:1024px){.btns{margin-top:calc(2.8 * var(--w));flex-wrap:nowrap}.btns>div{width:calc(19.38 * var(--w));max-width:none}}
.btn{position:relative;display:inline-flex;align-items:center;width:100%;height:44px;border-radius:0;
  font-size:clamp(.875rem,calc(1.273 * var(--w)),1.375rem);font-weight:400;letter-spacing:-.04em;line-height:1.5;
  user-select:none;text-decoration:none;transition:color .3s cubic-bezier(.4,0,.2,1),background-color .3s cubic-bezier(.4,0,.2,1)}
@media (min-width:1024px){.btn{height:max(40px,calc(2.28 * var(--w)));font-size:clamp(.75rem,calc(1.273 * var(--w)),1.375rem)}}
.btn:focus-visible{outline:2px solid var(--accent-text);outline-offset:4px}
.btn .t{flex:1;white-space:nowrap}
@media (max-width:639px){.btn .t{word-spacing:.12em}}
.btn-cta{background:var(--cta-bg);color:var(--cta-fg)}
.btn-cta:hover{background:var(--cta-bg-hover)}
.btn-cta .t{padding-left:clamp(10px,calc(.95 * var(--w)),16px);text-align:left}
.btn-cta .box{margin-right:clamp(4px,calc(.32 * var(--w)),6px);display:flex;flex:none;align-items:center;justify-content:center;aspect-ratio:1;
  height:calc(100% - clamp(8px,calc(.76 * var(--w)),12px));border:1px solid var(--cta-box-line);background:var(--cta-box-bg);color:var(--cta-box-line)}
.btn-cta .arr{width:48%;height:48%;transition:transform .5s var(--ease-out)}
.btn-cta:hover .arr{transform:translate(2px,-2px)}
.btn-2{background:var(--cta2-bg);color:var(--cta2-fg)}
.btn-2:hover{background:var(--cta2-bg-hover);color:#fff}
.btn-2 .t{padding:0 8px;text-align:center}
.arrow-link{display:inline-flex;align-items:center;gap:.35em;height:1.5em;min-height:24px;white-space:nowrap;background:var(--contact-bg);padding:0 .45em 0 .4em;
  font-size:clamp(.8125rem,calc(1.16 * var(--s)),1.25rem);font-weight:400;line-height:1;letter-spacing:-.03em;color:var(--contact-fg);text-decoration:none}
.arrow-link span{text-decoration:underline;text-decoration-color:var(--contact-line);text-decoration-thickness:2px;text-underline-offset:.15em}
.arrow-link svg{flex:none;width:.95em;height:.9em;transition:transform .5s var(--ease-out)}
.arrow-link:hover svg{transform:translate(1px,-1px)}
.arrow-link:focus-visible{outline:2px solid var(--accent-text);outline-offset:4px}
.chips{margin-top:32px;display:flex;flex-wrap:wrap;gap:8px}
@media (min-width:1024px){.chips{margin-top:calc(2.4 * var(--w))}}
.chips li{background:#b1eaf2;color:#000;padding:.27em .385em;font-size:1rem;line-height:.9;letter-spacing:-.04em;text-transform:uppercase;white-space:pre}
.chips li::before{content:"[ "}.chips li::after{content:" ]"}

/* Entrada escalonada (Tixora motion.ts: fade + translateY 20 px, 0,7 s, easing editorial, stagger 0,1 s) */
.rv{animation:rv .7s var(--ease-out) backwards}
.d1{animation-delay:.1s}.d2{animation-delay:.2s}.d3{animation-delay:.3s}.d4{animation-delay:.4s}.d5{animation-delay:.5s}.d6{animation-delay:.6s}
.rv-brand{animation-delay:2.85s}
@keyframes rv{from{opacity:0;transform:translateY(20px)}}

/* ── Pie (Tixora Footer.tsx, F152): bloque azul con medidas del frame 1728 en --u ── */
.cta-corner{position:absolute;width:19px;height:19px;border:0 solid #b1eaf2;pointer-events:none}
.cta-corner-tl{left:0;top:0;border-left-width:4px;border-top-width:4px}
.ft { --u: calc(var(--W) / 1728); background: var(--bg); }
.ft-band { background: #528cbb; color: #fff; overflow: hidden; }
.ft-in { position: relative; max-width: var(--Wmax); margin-inline: auto; padding: 36px clamp(20px, 5vw, 48px) 24px; }
.ft-logo { display: inline-block; line-height: 0; }
.ft-logo:focus-visible, .ft-chip-link:focus-visible, .ft-col a:focus-visible, .ft-col button:focus-visible, .ft-quote:focus-visible, .ft-ct a:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.ft-logo img { width: 130px; height: auto; display: block; }
.ft-brand { margin: 24px 0 0; max-width: 420px; font-weight: 300; font-size: 20px; line-height: 1.05; letter-spacing: -0.04em; }
.ft-social { margin: 20px 0 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px 10px; }
.ft-chip-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 5px 8px; background: #b1eaf2; color: #111; text-decoration: none; font-weight: 400; font-size: 18px; letter-spacing: -0.02em; }
.ft-chip-link img { width: 17px; height: auto; display: block; transition: transform .4s var(--ease-out); }
.ft-chip-link:hover img { transform: translate(2px, -2px); }
.ft-cols { margin-top: 36px; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 28px 20px; }
.ft-col ul { margin: 0; padding: 0; list-style: none; }
.ft-h { margin: 0; padding: 0 0 8px; font-size: 14px; line-height: 20px; letter-spacing: 0.02em; color: #b1eaf2; border-bottom: 2px solid #8fc3e5; }
.ft-col li { border-bottom: 2px solid #8fc3e5; }
.ft-col a, .ft-col button { display: flex; align-items: center; width: 100%; min-height: 44px; padding: 0; background: none; border: 0; font: inherit; font-weight: 300; font-size: 16px; color: #fff; text-align: left; text-decoration: none; cursor: pointer; }
.ft-col a:hover, .ft-col button:hover { text-decoration: underline; text-underline-offset: 3px; }
.ft-talk { grid-column: 1 / -1; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.7); }
.ft-talk-t { position: relative; margin: 0; padding-left: 14px; font-weight: 300; font-size: 32px; line-height: 0.92; letter-spacing: -0.04em; }
.ft-corner { left: 0; top: -4px; width: 14px; height: 14px; }
.ft-quote { margin-top: 20px; display: inline-flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 44px; padding: 3px 3px 3px 14px; background: #b1eaf2; color: #111; text-decoration: none; font-size: 17px; font-weight: 400; }
.ft-quote-box { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; background: #fff; }
.ft-quote-box img { width: 16px; height: auto; display: block; transition: transform .4s var(--ease-out); }
.ft-quote:hover .ft-quote-box img { transform: translate(2px, -2px); }
.ft-ct { margin: 24px 0 0; font-weight: 300; font-size: 22px; line-height: 1.5; letter-spacing: -0.04em; }
.ft-ct a { color: #fff; text-decoration: none; }
.ft-ct a:hover { text-decoration: underline; text-underline-offset: 3px; }
.ft-big { margin-top: 28px; }
.ft-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.ft-chip { padding: 5px 9px; font-size: 13px; line-height: 0.9; letter-spacing: -0.04em; font-weight: 400; white-space: nowrap; }
.ft-giant { margin: 0; font-weight: 300; text-transform: uppercase; line-height: 0.9; letter-spacing: -0.05em; font-size: calc((100vw - 40px) / 6.9 * var(--ft-k, 1)); overflow-wrap: anywhere; }
.ft-copy { margin: 16px 0 0; font-weight: 300; font-size: 13px; line-height: 1.2; letter-spacing: -0.02em; }
.ft-deco { display: none; }
@keyframes ftIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.ft-chip { animation: ftIn .6s var(--ease-out) backwards; }
@media (prefers-reduced-motion: reduce) { .ft-chip { animation: none; } }

@media (min-width: 700px) {
  .ft-in { padding: 40px clamp(20px, 5vw, 48px) 24px; }
  .ft-cols { grid-template-columns: repeat(3, 1fr); }
  .ft-big { position: relative; height: calc(125 * var(--u)); margin: 40px calc(-1 * clamp(20px, 5vw, 48px)) 0; }
  .ft-chips { display: block; margin: 0; }
  .ft-chip { position: absolute; left: calc(var(--x) * var(--u)); top: calc(var(--y) * var(--u)); padding: calc(5 * var(--u)) calc(10 * var(--u)); font-size: max(10px, calc(18 * var(--u))); line-height: 0.9; z-index: 1; }
  .ft-giant { position: relative; margin-left: calc(56 * var(--u)); font-size: calc(130 * var(--u) * var(--ft-k, 1)); letter-spacing: -0.047em; white-space: nowrap; overflow-wrap: normal; }
}
@media (min-width: 1100px) {
  .ft-in { height: calc(560 * var(--u)); padding: 0; }
  .ft-top, .ft-cols { display: contents; }
  .ft-logo { position: absolute; left: calc(67 * var(--u)); top: calc(45 * var(--u)); }
  .ft-logo img { width: calc(241 * var(--u)); }
  .ft-brand { position: absolute; left: calc(71 * var(--u)); top: calc(160 * var(--u)); margin: 0; width: calc(558 * var(--u)); max-width: none; font-size: calc(24 * var(--u)); letter-spacing: -0.04em; line-height: 1.04; }
  .ft-social { position: absolute; left: calc(71 * var(--u)); top: calc(249 * var(--u)); margin: 0; gap: 0 calc(19 * var(--u)); }
  .ft-chip-link { line-height: 1; min-height: calc(30 * var(--u)); padding: calc(5 * var(--u)) calc(8 * var(--u)); gap: calc(16 * var(--u)); font-size: calc(20 * var(--u)); }
  .ft-chip-link img { width: calc(21 * var(--u)); }
  .ft-col { position: absolute; top: calc(54 * var(--u)); }
  .ft-col-1 { left: calc(736 * var(--u)); width: calc(166 * var(--u)); }
  .ft-col-2 { left: calc(942 * var(--u)); width: calc(167 * var(--u)); }
  .ft-col-3 { left: calc(1150 * var(--u)); width: calc(143 * var(--u)); }
  .ft-h { box-sizing: border-box; height: calc(37 * var(--u)); padding: 0 0 0 calc(1 * var(--u)); display: flex; align-items: center; font-size: calc(14.5 * var(--u)); }
  .ft-col li { height: calc(37 * var(--u)); box-sizing: border-box; }
  .ft-col a, .ft-col button { min-height: 0; height: 100%; padding-left: calc(1 * var(--u)); font-size: calc(15.5 * var(--u)); letter-spacing: -0.02em; white-space: nowrap; }
  .ft-cols::before { content: ""; position: absolute; left: calc(1364 * var(--u)); top: calc(67 * var(--u)); width: 1px; height: calc(246 * var(--u)); background: rgba(255,255,255,.7); }
  .ft-talk { display: contents; }
  .ft-talk-t { position: absolute; right: calc(78 * var(--u)); top: calc(67 * var(--u)); margin: 0; padding: 0; text-align: right; font-size: calc(38 * var(--u)); line-height: calc(35 * var(--u)); }
  .ft-corner { left: calc(-9 * var(--u)); top: calc(-5 * var(--u)); width: calc(14 * var(--u)); height: calc(14 * var(--u)); border-width: 0; border-left-width: calc(3 * var(--u)); border-top-width: calc(3 * var(--u)); }
  .ft-talk-t { display: block; }
  .ft-quote { position: absolute; left: calc(1410 * var(--u)); top: calc(167 * var(--u)); margin: 0; width: calc(242 * var(--u)); min-height: calc(31 * var(--u)); padding: calc(2 * var(--u)) calc(3 * var(--u)) calc(2 * var(--u)) calc(14 * var(--u)); font-size: calc(17 * var(--u)); letter-spacing: -0.02em; white-space: nowrap; box-sizing: border-box; }
  .ft-quote-box { width: calc(28 * var(--u)); height: calc(27 * var(--u)); }
  .ft-quote-box img { width: calc(15 * var(--u)); }
  .ft-ct { position: absolute; right: calc(78 * var(--u)); top: calc(255 * var(--u)); margin: 0; text-align: right; font-size: calc(24 * var(--u)); line-height: calc(36 * var(--u)); }
  .ft-big { position: absolute; left: 0; right: 0; top: calc(397 * var(--u)); margin: 0; height: auto; }
  .ft-copy { position: absolute; left: calc(75 * var(--u)); top: calc(516 * var(--u)); margin: 0; font-size: calc(15 * var(--u)); }
  .ft-deco { display: block; position: absolute; left: calc(var(--x) * var(--u)); top: calc(var(--y) * var(--u)); transform: translate(-50%, -50%); font-size: calc(var(--s) * var(--u)); line-height: 1; color: #b1eaf2; pointer-events: none; }
}


@media (max-width:699px){.ft-copy{padding-right:16px}}
/* Bajo 1100 px el texto del pie es < 24 px: se usa --capsule (blanco 4,98:1, AA); a ≥ 1100 el #528cbb del Figma (texto ≥ 24 px) */
@media (max-width:1099px){.ft-band{background:var(--capsule)}}
/* Lockup del pie: logo completo (mazo + wordmark) en monocromo blanco, proporción 3,685 : 1 */
.ft-logo{display:flex;align-items:flex-start;gap:3.3%;width:150px;line-height:0}
.ft-logo img{filter:brightness(0) invert(1)}
.ft-logo .l-sym{flex:none;width:30.7%;height:auto}
.ft-logo .l-word{flex:none;width:66%;height:auto;margin-top:5.5%}
@media (min-width:1100px){.ft-logo{width:calc(300 * var(--u))}}
.ft-row{display:flex;align-items:center;width:100%;min-height:44px;font-weight:300;font-size:16px;color:#fff}
@media (min-width:1100px){.ft-row{min-height:0;height:100%;padding-left:calc(1 * var(--u));font-size:calc(15.5 * var(--u));letter-spacing:-.02em;white-space:nowrap}}
.ft-chip.k1{background:#fff;color:#111}.ft-chip.k2{background:#000;color:#fff}.ft-chip.k3{background:#b1eaf2;color:#111}
.ft-chip.k4{background:#fff;color:#111}.ft-chip.k5{background:#b1eaf2;color:#111}.ft-chip.k6{background:#000;color:#fff}
.ft-chip.k1{--x:240;--y:68}.ft-chip.k2{--x:372;--y:29}.ft-chip.k3{--x:470;--y:55}.ft-chip.k4{--x:1057;--y:33}.ft-chip.k5{--x:1198;--y:66}.ft-chip.k6{--x:1439;--y:46}
.ft-deco.a{--x:460;--y:342;--s:34}.ft-deco.b{--x:977;--y:441;--s:22}.ft-deco.c{--x:1355;--y:391;--s:18}.ft-deco.d{--x:1678;--y:502;--s:22}
.ft-big{--ft-k:.88}
@media (forced-colors:active){.btn,.arrow-link,.ft-quote,.ft-chip-link{border:1px solid ButtonText}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
