/* ============================================================
   WEAVENTURE · sitio corporativo
   Sistema W: Didot (serif) + Signat (sans) · navy + fluor · sin oro
   ============================================================ */

/* — Didot (titulares + sello W.) — */
@font-face{ font-family:'Didot'; src:url('../fonts/Didot-0.otf') format('opentype'); font-weight:400; font-style:normal; font-display:swap; }
@font-face{ font-family:'Didot'; src:url('../fonts/Didot-2.otf') format('opentype'); font-weight:700; font-style:normal; font-display:swap; }
/* — Signat (texto + rótulos) — */
@font-face{ font-family:'Signat'; src:url('../fonts/signat/Signat-Light.otf')    format('opentype'); font-weight:300; font-style:normal; font-display:swap; }
@font-face{ font-family:'Signat'; src:url('../fonts/signat/Signat-Regular.otf')  format('opentype'); font-weight:400; font-style:normal; font-display:swap; }
@font-face{ font-family:'Signat'; src:url('../fonts/signat/Signat-Medium.otf')   format('opentype'); font-weight:500; font-style:normal; font-display:swap; }
@font-face{ font-family:'Signat'; src:url('../fonts/signat/Signat-SemiBold.otf') format('opentype'); font-weight:600; font-style:normal; font-display:swap; }
@font-face{ font-family:'Signat'; src:url('../fonts/signat/Signat-Bold.otf')     format('opentype'); font-weight:700; font-style:normal; font-display:swap; }

:root{
  --paper:#F4F2EC;          /* crema claro */
  --paper-2:#EAE7DD;
  --ink:#15171B;
  --ink-2:#3A3F47;
  --navy-d:#0B1A30;         /* fondo oscuro */
  --navy-x:#081325;         /* profundo */
  --navy:#102C5A;
  --on-dark:#EEF1F5;
  --on-dark-2:rgba(233,240,250,0.62);
  --on-dark-3:rgba(233,240,250,0.40);
  --fluor:#2E63FF;
  --fluor-soft:#5b86ff;
  --silver:#9AA0A8;
  --gray:#6C727B;
  --hair:#D9D6CC;
  --hair-d:rgba(233,240,250,0.14);
  --serif:'Didot', Georgia, serif;
  --sans:'Signat', system-ui, sans-serif;
  --mx:clamp(24px, 6vw, 132px);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  font-family:var(--sans); font-weight:300; color:var(--ink);
  background:var(--navy-x);
  -webkit-font-smoothing:antialiased; text-rendering:geometricPrecision;
  overflow-x:hidden;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }

/* átomos */
.kicker{ font-size:12px; font-weight:500; letter-spacing:0.36em; text-transform:uppercase; color:var(--fluor); }
.dark .kicker{ color:var(--fluor-soft); }
.serif{ font-family:var(--serif); font-weight:400; letter-spacing:-0.018em; line-height:1; }
.fl{ color:var(--fluor); }
.dark .fl{ color:var(--fluor-soft); }
.wmk-dot{ color:var(--fluor); }
section{ position:relative; }
.wrap{ padding-left:var(--mx); padding-right:var(--mx); }

/* tratamiento de imagen: B/N grado frío */
.treat{ filter:grayscale(1) contrast(1.05); }

/* =========================================================
   NAV
   ========================================================= */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:26px var(--mx);
  transition:background .4s ease, padding .4s ease, border-color .4s ease;
  border-bottom:1px solid transparent;
}
.nav.scrolled{ background:rgba(8,19,37,0.86); backdrop-filter:blur(14px); padding:18px var(--mx); border-bottom:1px solid var(--hair-d); }
.nav .logo{ font-family:var(--sans); font-weight:500; font-size:17px; letter-spacing:0.32em; color:var(--on-dark); }
.nav .logo .wmk-dot{ font-weight:600; }
.nav .links{ display:flex; gap:38px; align-items:center; }
.nav .links a{ font-size:13px; font-weight:400; letter-spacing:0.04em; color:var(--on-dark-2); transition:color .25s ease; position:relative; }
.nav .links a:hover{ color:var(--on-dark); }
.nav .links a.cta{ color:var(--on-dark); }
.nav .menu-btn{ display:none; }
.nav .navright{ display:flex; align-items:center; gap:clamp(20px,3vw,38px); }
.langsel{ display:flex; align-items:center; gap:9px; }
.langsel button{ background:none; border:0; cursor:pointer; color:var(--on-dark-3); font-family:var(--sans); font-size:12px; font-weight:500; letter-spacing:0.08em; padding:2px; transition:color .22s; }
.langsel button:hover{ color:var(--on-dark-2); }
.langsel button.active{ color:var(--fluor-soft); }
.langsel .sep{ color:var(--on-dark-3); opacity:.5; font-size:11px; }
@media (max-width:980px){
  .nav .links{ display:none; }
  .nav .menu-btn{ display:block; background:none; border:0; color:var(--on-dark); font-family:var(--sans); font-size:12px; letter-spacing:0.28em; text-transform:uppercase; cursor:pointer; }
}

/* =========================================================
   HERO
   ========================================================= */
.hero{ min-height:100vh; display:flex; align-items:flex-end; background:var(--navy-x); overflow:hidden; }
.hero .bg{ position:absolute; inset:0; z-index:0; }
.hero .bg img{ width:100%; height:100%; object-fit:cover; object-position:50% 22%; filter:grayscale(1) contrast(1.04) brightness(.62); }
.hero .bg::after{ content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(8,19,37,0.72) 0%, rgba(8,19,37,0.30) 30%, rgba(8,19,37,0.55) 72%, rgba(8,19,37,0.96) 100%),
    radial-gradient(120% 90% at 12% 100%, rgba(8,19,37,0.85), transparent 60%);
}
.hero .inner{ position:relative; z-index:2; width:100%; padding-bottom:clamp(48px,8vh,96px); }
.hero h1{ font-family:var(--serif); font-weight:400; color:var(--on-dark);
  font-size:clamp(78px, 15.5vw, 248px); line-height:0.84; letter-spacing:-0.025em; }
.hero h1 .l2{ display:block; color:var(--fluor-soft); }
.hero .sub{ margin-top:34px; max-width:42ch; font-size:clamp(15px,1.5vw,18px); font-weight:300; line-height:1.6; color:var(--on-dark-2); }
.hero .sub b{ color:var(--on-dark); font-weight:500; }
.hero .scrollcue{ position:absolute; right:var(--mx); bottom:48px; z-index:2; display:flex; align-items:center; gap:14px; color:var(--on-dark-3); font-size:11px; letter-spacing:0.3em; text-transform:uppercase; }
.hero .scrollcue .ln{ width:54px; height:1px; background:var(--on-dark-3); }
@media (max-width:680px){ .hero .scrollcue{ display:none; } }

/* =========================================================
   THE IDEA  (split dark / light)
   ========================================================= */
.idea{ display:grid; grid-template-columns:1fr 1fr; min-height:78vh; }
.idea .left{ background:var(--navy-x); color:var(--on-dark); display:flex; flex-direction:column; justify-content:center; padding:clamp(56px,8vw,120px) clamp(40px,6vw,96px); }
.idea .left .kicker{ margin-bottom:34px; }
.idea .left h2{ font-family:var(--serif); font-weight:400; color:var(--on-dark);
  font-size:clamp(44px,5.6vw,86px); line-height:1.0; letter-spacing:-0.02em; }
.idea .left h2 .fl{ color:var(--fluor-soft); display:block; }
.idea .right{ background:var(--paper); color:var(--ink); display:flex; flex-direction:column; justify-content:center; padding:clamp(56px,8vw,120px) clamp(40px,6vw,96px); }
.idea .right p{ font-size:clamp(16px,1.55vw,19px); font-weight:300; line-height:1.62; color:var(--ink-2); max-width:40ch; }
.idea .right p + p{ margin-top:24px; }
@media (max-width:860px){ .idea{ grid-template-columns:1fr; } }

/* =========================================================
   THE FIGURE  (light, portrait + bio)
   ========================================================= */
.figure{ background:var(--paper); display:grid; grid-template-columns:0.92fr 1.08fr; min-height:100vh; }
.figure .photo{ position:relative; overflow:hidden; background:var(--paper-2); }
.figure .photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 18%; }
.figure .body{ display:flex; flex-direction:column; justify-content:center; padding:clamp(56px,7vw,120px) var(--mx) clamp(56px,7vw,120px) clamp(48px,6vw,96px); }
.figure .body .kicker{ color:var(--silver); }
.figure h2{ font-family:var(--serif); font-weight:400; font-size:clamp(56px,7vw,108px); line-height:0.92; letter-spacing:-0.022em; margin-top:26px; }
.figure h2 .l2{ display:block; color:var(--fluor); }
.figure .role{ margin-top:24px; font-size:13px; font-weight:500; letter-spacing:0.28em; text-transform:uppercase; color:var(--ink); }
.figure .role .es{ color:var(--gray); }
.figure .bio{ margin-top:30px; max-width:46ch; }
.figure .bio p{ font-size:clamp(15px,1.5vw,17px); font-weight:300; line-height:1.66; color:var(--ink-2); }
.figure .bio p + p{ margin-top:18px; }
@media (max-width:860px){ .figure{ grid-template-columns:1fr; } .figure .photo{ height:60vh; } }

/* =========================================================
   PENINSULA  (dark, image header + stats)
   ========================================================= */
.peninsula{ background:var(--navy-x); color:var(--on-dark); padding-bottom:clamp(72px,10vh,140px); }
.peninsula .hd{ position:relative; height:62vh; min-height:440px; display:flex; align-items:flex-end; overflow:hidden; }
.peninsula .hd img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 40%; filter:grayscale(.4) contrast(1.05) brightness(.66) saturate(.7); }
.peninsula .hd::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(8,19,37,0.55) 0%, rgba(8,19,37,0.2) 40%, rgba(8,19,37,0.96) 100%); }
.peninsula .hd .ttl{ position:relative; z-index:2; width:100%; padding:0 var(--mx) clamp(8px,3vh,28px); }
.peninsula .hd .ttl .kicker{ display:inline-block; border:1px solid var(--hair-d); padding:9px 16px; color:var(--on-dark-2); letter-spacing:0.3em; }
.peninsula .hd h2{ font-family:var(--serif); font-weight:400; color:var(--on-dark); font-size:clamp(68px,11vw,184px); line-height:0.86; letter-spacing:-0.02em; margin-top:22px; }
.peninsula .cols{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,7vw,110px); padding:clamp(48px,7vh,90px) var(--mx) 0; }
.peninsula .cols .txt p{ font-size:clamp(15px,1.55vw,18px); font-weight:300; line-height:1.7; color:var(--on-dark-2); max-width:46ch; }
.peninsula .cols .txt p b{ color:var(--on-dark); font-weight:500; }
.peninsula .cols .txt p + p{ margin-top:22px; }
.peninsula .cols .txt .link{ display:inline-flex; align-items:center; gap:14px; margin-top:40px; border:1px solid var(--hair-d); padding:16px 26px; font-size:12px; font-weight:500; letter-spacing:0.24em; text-transform:uppercase; color:var(--on-dark); transition:background .3s, border-color .3s; }
.peninsula .cols .txt .link:hover{ background:var(--fluor); border-color:var(--fluor); }
.peninsula .stats{ display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--hair-d); }
.peninsula .stat{ padding:clamp(28px,3.4vw,44px); border-right:1px solid var(--hair-d); border-bottom:1px solid var(--hair-d); }
.peninsula .stat:nth-child(2n){ border-right:0; }
.peninsula .stat:nth-last-child(-n+2){ border-bottom:0; }
.peninsula .stat .n{ font-family:var(--serif); font-weight:400; font-size:clamp(48px,5.4vw,80px); line-height:0.9; letter-spacing:-0.01em; color:var(--on-dark); }
.peninsula .stat .n .plus{ color:var(--fluor-soft); }
.peninsula .stat .l{ margin-top:14px; font-size:11px; font-weight:500; letter-spacing:0.22em; text-transform:uppercase; color:var(--on-dark-3); }
@media (max-width:860px){ .peninsula .cols{ grid-template-columns:1fr; } }

/* =========================================================
   THE VENTURES  (light, tabs + columns)
   ========================================================= */
.ventures{ background:var(--paper); color:var(--ink); padding:clamp(80px,12vh,150px) var(--mx) clamp(80px,12vh,150px); }
.ventures .head{ display:grid; grid-template-columns:1.25fr 1fr; gap:clamp(40px,6vw,90px); align-items:end; }
.ventures .head h2{ font-family:var(--serif); font-weight:400; font-size:clamp(64px,9.5vw,170px); line-height:0.84; letter-spacing:-0.025em; }
.ventures .head .intro{ font-size:clamp(15px,1.55vw,18px); font-weight:300; line-height:1.66; color:var(--ink-2); max-width:42ch; padding-bottom:10px; }
.ventures .tabs{ display:flex; gap:clamp(28px,4vw,56px); margin-top:clamp(48px,7vh,84px); border-bottom:1px solid var(--hair); }
.ventures .tab{ background:none; border:0; cursor:pointer; font-family:var(--sans); font-size:12.5px; font-weight:500; letter-spacing:0.22em; text-transform:uppercase; color:var(--silver); padding:0 0 20px; position:relative; transition:color .25s; white-space:nowrap; }
.ventures .tab:hover{ color:var(--ink-2); }
.ventures .tab.active{ color:var(--ink); }
.ventures .tab.active::after{ content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:var(--ink); }
.ventures .panel{ display:none; padding-top:clamp(44px,6vh,72px); }
.ventures .panel.active{ display:block; animation:fade .5s ease; }
@keyframes fade{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
.ventures .pname{ display:flex; align-items:baseline; gap:20px; flex-wrap:wrap; }
.ventures .pname h3{ font-family:var(--serif); font-weight:400; font-size:clamp(34px,4.4vw,58px); line-height:0.95; letter-spacing:-0.018em; }
.ventures .pname .tag{ font-size:11.5px; font-weight:500; letter-spacing:0.24em; text-transform:uppercase; color:var(--gray); }
.ventures .pdesc{ margin-top:18px; max-width:56ch; font-size:15px; font-weight:300; line-height:1.6; color:var(--ink-2); }
.ventures .grid{ margin-top:clamp(32px,4vh,52px); display:grid; grid-template-columns:repeat(5,1fr); gap:0; border-top:1px solid var(--hair); }
.ventures .vcol{ padding:30px 26px 30px 0; border-right:1px solid var(--hair); }
.ventures .vcol:last-child{ border-right:0; padding-right:0; }
.ventures .vcol .cl{ font-size:10.5px; font-weight:500; letter-spacing:0.2em; text-transform:uppercase; color:var(--fluor); margin-bottom:22px; }
.ventures .vcol ul{ list-style:none; display:flex; flex-direction:column; gap:13px; }
.ventures .vcol li{ font-size:clamp(15px,1.5vw,18px); font-weight:400; line-height:1.25; color:var(--ink); }
.ventures .grid.g3{ grid-template-columns:repeat(3,1fr); }
.ventures .grid.g2{ grid-template-columns:repeat(2,1fr); }
.ventures .foot{ margin-top:clamp(36px,5vh,60px); padding-top:20px; border-top:1px solid var(--hair); font-size:12.5px; font-weight:300; line-height:1.5; color:var(--gray); max-width:80ch; }
.ventures .foot .es{ color:var(--silver); }
@media (max-width:980px){
  .ventures .head{ grid-template-columns:1fr; }
  .ventures .tabs{ overflow-x:auto; }
  .ventures .grid, .ventures .grid.g3, .ventures .grid.g2{ grid-template-columns:1fr 1fr; }
  .ventures .vcol{ border-right:0; border-bottom:1px solid var(--hair); padding:24px 0; }
}
@media (max-width:560px){ .ventures .grid, .ventures .grid.g3, .ventures .grid.g2{ grid-template-columns:1fr; } }

/* =========================================================
   THE FOUNDATION
   ========================================================= */
.foundation{ position:relative; background:var(--navy-d); color:var(--on-dark); display:grid; grid-template-columns:1.05fr 0.95fr; min-height:88vh; overflow:hidden; }
.foundation .copy{ display:flex; flex-direction:column; justify-content:center; padding:clamp(64px,9vh,130px) clamp(44px,5vw,96px) clamp(64px,9vh,130px) var(--mx); position:relative; z-index:2; }
.foundation .copy h2{ font-family:var(--serif); font-weight:400; font-size:clamp(52px,6.6vw,104px); line-height:0.9; letter-spacing:-0.022em; margin-top:26px; color:var(--on-dark); }
.foundation .copy .lead{ margin-top:30px; font-family:var(--serif); font-weight:400; font-size:clamp(22px,2.4vw,32px); line-height:1.18; color:var(--fluor-soft); max-width:22ch; letter-spacing:-0.01em; }
.foundation .copy .lead .es{ display:block; color:var(--on-dark-3); font-size:0.62em; letter-spacing:0; margin-top:8px; }
.foundation .copy p{ margin-top:30px; max-width:44ch; font-size:clamp(15px,1.5vw,17px); font-weight:300; line-height:1.66; color:var(--on-dark-2); }
.foundation .img{ position:relative; overflow:hidden; }
.foundation .img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.05) brightness(.78); }
.foundation .img::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, var(--navy-d) 0%, rgba(11,26,48,0.25) 40%, rgba(11,26,48,0.55) 100%); mix-blend-mode:multiply; }
@media (max-width:860px){ .foundation{ grid-template-columns:1fr; } .foundation .img{ height:48vh; order:-1; } }

/* =========================================================
   WEAVE · STRATEGIC DNA  (dark, giant W watermark)
   ========================================================= */
.weave{ background:var(--navy-x); color:var(--on-dark); padding:clamp(96px,16vh,200px) var(--mx); position:relative; overflow:hidden; }
.weave .watermark{ position:absolute; right:-4%; top:50%; transform:translateY(-50%); font-family:var(--serif); font-weight:700; font-size:min(74vh,920px); line-height:0.7; color:rgba(233,240,250,0.035); z-index:0; pointer-events:none; user-select:none; }
.weave .inner{ position:relative; z-index:2; max-width:62%; }
.weave .kicker{ margin-bottom:30px; }
.weave h2{ font-family:var(--serif); font-weight:400; font-size:clamp(56px,9vw,150px); line-height:0.92; letter-spacing:-0.01em; color:var(--on-dark); }
.weave h2 .wmk-dot{ color:var(--fluor-soft); }
.weave p{ margin-top:34px; max-width:48ch; font-size:clamp(15px,1.6vw,19px); font-weight:300; line-height:1.66; color:var(--on-dark-2); }
.weave .claim{ margin-top:48px; font-family:var(--serif); font-weight:400; font-size:clamp(34px,4.4vw,64px); line-height:1; letter-spacing:-0.018em; color:var(--fluor-soft); }
.weave .claim .es{ display:block; margin-top:10px; font-size:0.42em; letter-spacing:0; color:var(--on-dark-3); font-family:var(--sans); font-weight:300; }
@media (max-width:860px){ .weave .inner{ max-width:100%; } }

/* =========================================================
   WEAVE AGENT  (new — conversational AI · particle field)
   ========================================================= */
.agent{ position:relative; background:radial-gradient(120% 100% at 50% 28%, #0d2546 0%, #0B1A30 34%, #081325 64%, #050d1c 100%); color:var(--on-dark); padding:clamp(80px,12vh,150px) var(--mx) clamp(72px,11vh,140px); border-top:1px solid var(--hair-d); overflow:hidden; }
.agent .plexus{ position:absolute; inset:0; z-index:0; width:100%; height:100%; pointer-events:none; }
.agent .inner{ position:relative; z-index:2; max-width:720px; margin:0 auto; text-align:center; }
.agent .kicker{ display:block; margin-bottom:6px; }

/* orb */
.agent .stage{ position:relative; width:min(480px,76vw); aspect-ratio:1; margin:clamp(8px,2vh,20px) auto clamp(10px,2.5vh,26px); }
.agent .stage canvas{ position:absolute; inset:0; width:100%; height:100%; }
.agent .stage .wmark{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-weight:400; font-size:clamp(86px,14vw,156px); line-height:1; letter-spacing:-0.02em;
  color:rgba(214,222,235,0.30);
  text-shadow:0 0 50px rgba(46,99,255,0.18);
  mix-blend-mode:screen; }
.agent .stage .wmark .wmk-dot{ color:rgba(91,134,255,0.62); text-shadow:0 0 26px rgba(46,99,255,0.85), 0 0 56px rgba(46,99,255,0.4); }

.agent h2{ font-family:var(--serif); font-weight:400; font-size:clamp(34px,4.6vw,66px); line-height:0.98; letter-spacing:-0.02em; color:var(--on-dark); }
.agent h2 .es{ display:block; color:var(--fluor-soft); }
.agent .lede{ margin:24px auto 0; max-width:50ch; font-size:clamp(14.5px,1.45vw,17px); font-weight:300; line-height:1.62; color:var(--on-dark-2); }
.agent .lede .es{ display:block; color:var(--on-dark-3); margin-top:10px; }

/* console */
.agent .console{ margin:clamp(36px,5vh,56px) auto 0; max-width:680px; text-align:left;
  border:1px solid var(--hair-d); border-radius:4px;
  background:linear-gradient(180deg, rgba(46,99,255,0.06), rgba(8,19,37,0.34));
  backdrop-filter:blur(10px); box-shadow:0 40px 100px -50px rgba(0,0,0,0.7); overflow:hidden; }
.agent .console .head{ display:flex; align-items:center; gap:11px; padding:18px 22px; border-bottom:1px solid var(--hair-d); font-size:11px; font-weight:500; letter-spacing:0.26em; text-transform:uppercase; color:var(--on-dark-2); }
.agent .console .head .dot{ width:7px; height:7px; border-radius:50%; background:var(--fluor); box-shadow:0 0 0 4px rgba(46,99,255,0.18); animation:pulse 2.4s ease-in-out infinite; }
@keyframes pulse{ 0%,100%{ box-shadow:0 0 0 3px rgba(46,99,255,0.20); } 50%{ box-shadow:0 0 0 6px rgba(46,99,255,0.05); } }
.agent .console .head .sp{ flex:1; }
.agent .console .head .lang{ font-size:10px; letter-spacing:0.2em; color:var(--on-dark-3); }
.agent .messages{ display:flex; flex-direction:column; gap:16px; padding:24px 22px; min-height:150px; max-height:380px; overflow-y:auto; scroll-behavior:smooth; }
.agent .msg{ max-width:84%; font-size:14.5px; line-height:1.58; }
.agent .msg.user{ align-self:flex-end; background:rgba(46,99,255,0.16); border:1px solid rgba(91,134,255,0.32); color:var(--on-dark); padding:12px 16px; border-radius:3px; font-weight:400; }
.agent .msg.bot{ align-self:flex-start; color:var(--on-dark-2); font-weight:300; }
.agent .msg.bot b{ color:var(--on-dark); font-weight:500; }
.agent .msg.bot .av{ display:block; font-family:var(--serif); font-size:13px; letter-spacing:0.1em; color:var(--fluor-soft); margin-bottom:6px; }
.agent .typing{ display:inline-flex; gap:5px; align-items:center; }
.agent .typing span{ width:6px; height:6px; border-radius:50%; background:var(--fluor-soft); opacity:.4; animation:blink 1.2s infinite; }
.agent .typing span:nth-child(2){ animation-delay:.2s; }
.agent .typing span:nth-child(3){ animation-delay:.4s; }
@keyframes blink{ 0%,60%,100%{ opacity:.25; transform:translateY(0); } 30%{ opacity:1; transform:translateY(-3px); } }
.agent .chips{ display:flex; flex-wrap:wrap; gap:8px; padding:0 22px 16px; }
.agent .chip{ background:rgba(233,240,250,0.05); border:1px solid var(--hair-d); color:var(--on-dark-2); font-family:var(--sans); font-size:12px; font-weight:400; padding:8px 14px; border-radius:30px; cursor:pointer; transition:all .22s; }
.agent .chip:hover{ background:rgba(46,99,255,0.16); border-color:rgba(91,134,255,0.4); color:var(--on-dark); }
.agent .inputbar{ display:flex; align-items:center; gap:12px; padding:16px 18px; border-top:1px solid var(--hair-d); background:rgba(8,19,37,0.4); }
.agent .inputbar input{ flex:1; background:none; border:0; outline:none; color:var(--on-dark); font-family:var(--sans); font-size:15px; font-weight:300; }
.agent .inputbar input::placeholder{ color:rgba(233,240,250,0.30); }
.agent .inputbar .send{ flex:0 0 auto; width:42px; height:42px; border:0; border-radius:50%; background:var(--fluor); color:#fff; font-family:var(--serif); font-size:20px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .22s, transform .22s; }
.agent .inputbar .send:hover{ background:var(--fluor-soft); transform:scale(1.06); }
.agent .inputbar .send:disabled{ opacity:.4; cursor:default; transform:none; }

/* =========================================================
   NEWS
   ========================================================= */
.news{ background:var(--paper); color:var(--ink); padding:clamp(80px,12vh,150px) var(--mx); }
.news .kicker{ color:var(--silver); }
.news h2{ font-family:var(--serif); font-weight:400; font-size:clamp(72px,11vw,180px); line-height:0.84; letter-spacing:-0.025em; margin-top:18px; }
.news .cards{ margin-top:clamp(48px,7vh,84px); display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(28px,3vw,46px); }
.news .card .ph{ position:relative; aspect-ratio:16/10.4; overflow:hidden; background:var(--paper-2); }
.news .card .ph img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.7,.2,1); filter:grayscale(.15) contrast(1.04); }
.news .card:hover .ph img{ transform:scale(1.05); }
.news .card .date{ margin-top:26px; font-size:11px; font-weight:500; letter-spacing:0.24em; text-transform:uppercase; color:var(--gray); }
.news .card h3{ font-family:var(--serif); font-weight:400; font-size:clamp(22px,2vw,28px); line-height:1.12; letter-spacing:-0.012em; margin-top:14px; }
.news .card p{ margin-top:14px; font-size:14.5px; font-weight:300; line-height:1.58; color:var(--ink-2); }
.news .card .src{ margin-top:18px; font-size:12px; font-weight:400; letter-spacing:0.06em; color:var(--fluor); }
@media (max-width:860px){ .news .cards{ grid-template-columns:1fr; max-width:520px; } }

/* =========================================================
   CONTACT
   ========================================================= */
.contact{ background:var(--navy-x); color:var(--on-dark); padding:clamp(88px,14vh,180px) var(--mx) clamp(64px,9vh,110px); }
.contact .grid{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:clamp(48px,8vw,130px); }
.contact .l .kicker{ margin-bottom:30px; }
.contact .l h2{ font-family:var(--serif); font-weight:400; font-size:clamp(48px,6.2vw,96px); line-height:0.92; letter-spacing:-0.022em; color:var(--on-dark); }
.contact .l h2 .fl{ display:block; color:var(--fluor-soft); }
.contact .l p{ margin-top:28px; max-width:36ch; font-size:clamp(15px,1.5vw,17px); font-weight:300; line-height:1.62; color:var(--on-dark-2); }
.contact .l .meta{ margin-top:clamp(40px,6vh,72px); border-top:1px solid var(--hair-d); padding-top:30px; display:flex; flex-direction:column; gap:18px; }
.contact .l .meta .row{ display:flex; gap:30px; align-items:baseline; }
.contact .l .meta .k{ width:64px; font-size:11px; font-weight:500; letter-spacing:0.24em; text-transform:uppercase; color:var(--on-dark-3); }
.contact .l .meta .v{ font-size:16px; font-weight:400; color:var(--on-dark); }
.contact .l .meta a.v{ color:var(--fluor-soft); border-bottom:1px solid rgba(91,134,255,0.4); padding-bottom:2px; }
.contact form{ display:grid; grid-template-columns:1fr 1fr; gap:0; align-self:start; border-top:1px solid var(--hair-d); }
.contact .fld{ border-bottom:1px solid var(--hair-d); padding:24px 0 14px; }
.contact .fld:nth-child(odd){ padding-right:26px; }
.contact .fld:nth-child(even){ padding-left:26px; border-left:1px solid var(--hair-d); }
.contact .fld.full{ grid-column:1 / -1; padding-left:0; padding-right:0; border-left:0; }
.contact .fld label{ display:block; font-size:10.5px; font-weight:500; letter-spacing:0.24em; text-transform:uppercase; color:var(--on-dark-3); margin-bottom:12px; }
.contact .fld input, .contact .fld textarea{ width:100%; background:none; border:0; outline:none; color:var(--on-dark); font-family:var(--sans); font-size:16px; font-weight:300; }
.contact .fld textarea{ resize:vertical; min-height:90px; }
.contact .fld input::placeholder, .contact .fld textarea::placeholder{ color:rgba(233,240,250,0.22); }
.contact .submit{ grid-column:1 / -1; display:flex; align-items:center; justify-content:space-between; gap:30px; margin-top:34px; }
.contact .submit .priv{ font-size:12px; font-weight:300; line-height:1.5; color:var(--on-dark-3); max-width:42ch; }
.contact .submit button{ background:var(--fluor); border:0; color:#fff; font-family:var(--sans); font-size:12px; font-weight:600; letter-spacing:0.24em; text-transform:uppercase; padding:20px 40px; cursor:pointer; transition:background .25s; white-space:nowrap; }
.contact .submit button:hover{ background:var(--fluor-soft); }
@media (max-width:860px){ .contact .grid{ grid-template-columns:1fr; } .contact .submit{ flex-direction:column; align-items:flex-start; } }

/* =========================================================
   FOOTER
   ========================================================= */
.footer{ background:var(--navy-x); color:var(--on-dark); padding:clamp(72px,10vh,130px) var(--mx) clamp(40px,6vh,64px); border-top:1px solid var(--hair-d); text-align:center; }
.footer .mark{ font-family:var(--sans); font-weight:500; font-size:clamp(18px,2.4vw,26px); letter-spacing:0.4em; color:var(--on-dark-3); }
.footer .mark .wmk-dot{ color:var(--fluor); }
.footer .tag{ margin-top:30px; font-family:var(--serif); font-weight:400; font-size:clamp(20px,2.4vw,30px); line-height:1.1; color:var(--on-dark); letter-spacing:-0.012em; }
.footer .tag .es{ display:block; color:var(--fluor-soft); font-size:0.9em; margin-top:6px; }
.footer .base{ margin-top:clamp(40px,6vh,68px); display:flex; justify-content:center; gap:40px; flex-wrap:wrap; font-size:11px; font-weight:500; letter-spacing:0.26em; text-transform:uppercase; color:var(--on-dark-3); }

/* ============================================================
   WEAVENTURE · ENHANCEMENTS
   preloader · custom scroll · reveal · parallax · scroll-spy
   (capa añadida sobre el sistema W original — no modifica lo previo)
   ============================================================ */

/* ---- Scrollbar corporativo (navy + fluor) ---- */
html{ scrollbar-width:thin; scrollbar-color:var(--fluor) var(--navy-x); }
::-webkit-scrollbar{ width:11px; height:11px; }
::-webkit-scrollbar-track{ background:var(--navy-x); }
::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg, var(--fluor-soft), var(--fluor) 45%, var(--navy));
  border-radius:20px; border:2px solid var(--navy-x);
}
::-webkit-scrollbar-thumb:hover{ background:linear-gradient(180deg, var(--fluor-soft), var(--fluor)); }
::-webkit-scrollbar-corner{ background:var(--navy-x); }
::selection{ background:rgba(46,99,255,0.30); color:var(--on-dark); }

/* ---- Barra de progreso de scroll ---- */
.scroll-progress{
  position:fixed; top:0; left:0; height:2px; width:0; z-index:60;
  background:linear-gradient(90deg, var(--fluor), var(--fluor-soft));
  box-shadow:0 0 12px rgba(46,99,255,0.7); transition:width .12s linear;
}

/* ---- Preloader (logo sobre --navy-x) ---- */
.preloader{
  position:fixed; inset:0; z-index:9999; background:var(--navy-x);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:30px;
  transition:opacity .7s ease, visibility .7s ease;
  animation:plFailsafe 0s linear 7s forwards; /* failsafe: se oculta aunque el JS no corra */
}
.preloader.done{ opacity:0; visibility:hidden; pointer-events:none; }
@keyframes plFailsafe{ to{ opacity:0; visibility:hidden; pointer-events:none; } }
.preloader .pl-mark{
  font-family:var(--serif); font-weight:400; font-size:clamp(96px,18vw,184px); line-height:1;
  letter-spacing:-0.02em; color:var(--on-dark); text-shadow:0 0 60px rgba(46,99,255,0.18);
  animation:plMark 1.1s cubic-bezier(.2,.7,.2,1) both;
}
.preloader .pl-mark .wmk-dot{
  color:var(--fluor-soft);
  text-shadow:0 0 24px rgba(46,99,255,0.9), 0 0 60px rgba(46,99,255,0.5);
  animation:plDot 1.8s ease-in-out .4s infinite;
}
.preloader .pl-word{
  font-family:var(--sans); font-weight:500; font-size:clamp(12px,2.4vw,15px);
  letter-spacing:0.52em; text-indent:0.52em; color:var(--on-dark-3);
  animation:plFade 1s ease .35s both;
}
.preloader .pl-word .wmk-dot{ color:var(--fluor); }
.preloader .pl-bar{
  position:relative; width:min(220px,46vw); height:2px; overflow:hidden;
  background:rgba(233,240,250,0.10); animation:plFade 1s ease .5s both;
}
.preloader .pl-bar i{
  position:absolute; top:0; left:-40%; height:100%; width:40%;
  background:linear-gradient(90deg, transparent, var(--fluor), transparent);
  animation:plBar 1.25s ease-in-out infinite;
}
@keyframes plMark{ 0%{ opacity:0; transform:translateY(14px) scale(.94); filter:blur(6px); } 100%{ opacity:1; transform:none; filter:none; } }
@keyframes plDot{ 0%,100%{ opacity:.55; } 50%{ opacity:1; } }
@keyframes plFade{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }
@keyframes plBar{ 0%{ left:-40%; } 100%{ left:100%; } }

/* ---- Entrada del hero (al retirarse el preloader) ---- */
body.anim-ready .hero h1,
body.anim-ready .hero .sub,
body.anim-ready .hero .scrollcue{ opacity:0; }
body.loaded .hero h1{ animation:heroUp 1.1s cubic-bezier(.2,.7,.2,1) .05s both; }
body.loaded .hero .sub{ animation:heroUp 1.1s cubic-bezier(.2,.7,.2,1) .28s both; }
body.loaded .hero .scrollcue{ animation:heroFade 1s ease .6s both; }
@keyframes heroUp{ from{ opacity:0; transform:translateY(40px); } to{ opacity:1; transform:none; } }
@keyframes heroFade{ from{ opacity:0; } to{ opacity:1; } }
.hero .bg img{ will-change:transform; transform:scale(1.06); }
.hero .scrollcue .ln{ position:relative; overflow:hidden; }
.hero .scrollcue .ln::after{ content:""; position:absolute; inset:0; background:var(--fluor); transform:translateX(-100%); animation:cueLine 2.4s ease-in-out infinite; }
@keyframes cueLine{ 0%{ transform:translateX(-100%);} 50%{ transform:translateX(0);} 100%{ transform:translateX(100%);} }

/* ---- Reveal al hacer scroll ---- */
body.anim-ready .reveal{
  opacity:0; transform:translateY(28px);
  transition:opacity .85s cubic-bezier(.22,.61,.36,1), transform .85s cubic-bezier(.22,.61,.36,1);
  will-change:opacity, transform;
}
body.anim-ready .reveal.in{ opacity:1; transform:none; }

/* ---- Scroll-spy: subrayado animado en el nav ---- */
.nav .links a::after{
  content:""; position:absolute; left:0; right:100%; bottom:-7px; height:1px;
  background:var(--fluor-soft); transition:right .35s cubic-bezier(.22,.61,.36,1);
}
.nav .links a:hover::after,
.nav .links a.active::after{ right:0; }
.nav .links a.active{ color:var(--on-dark); }

/* ---- Accesibilidad: respeta prefers-reduced-motion ---- */
@media (prefers-reduced-motion:reduce){
  body.anim-ready .reveal{ opacity:1 !important; transform:none !important; transition:none; }
  body.anim-ready .hero h1,
  body.anim-ready .hero .sub,
  body.anim-ready .hero .scrollcue{ opacity:1 !important; animation:none; }
  .preloader .pl-mark,
  .preloader .pl-word,
  .preloader .pl-bar,
  .preloader .pl-bar i,
  .preloader .pl-mark .wmk-dot{ animation:none; }
  .hero .scrollcue .ln::after{ animation:none; display:none; }
  .hero .bg img{ transform:none; }
}

/* ---- AVATAR -------- */
.avatar {
    background: #0a182c!important;
}