/* ============================================================
   SOL MEDIA · web design system (prototipo)
   Navy + Marcellus + rejilla + esquinas rectas
   ============================================================ */
:root{
  --royal:#1e40af; --royal-600:#2449aa; --royal-900:#152a6e;
  --ink:#16233a; --bg:#f5f8fd; --grid:rgba(30,64,175,.06);
  --tx:#16233a; --fg:#45536d; --fg-low:#7a8699;
  --surface:#ffffff; --bd:#e2e8f2; --bd-strong:#cfdaec;
  --shadow:0 1px 2px rgba(15,23,42,.05);
  --shadow-lift:0 14px 40px -18px rgba(20,40,90,.35);
  --chip-bg:#eef2fb; --chip-bd:#d6e0f3; --chip-fg:#274690;
  --accent:#1e40af; --maxw:1180px;
}
*{ margin:0; padding:0; box-sizing:border-box; border-radius:0; }
html{ scroll-behavior:smooth; }
body{ font-family:'Montserrat',-apple-system,'Helvetica Neue',Arial,sans-serif; color:var(--fg);
  background:var(--bg); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden; }
.serif{ font-family:'Marcellus',Georgia,serif; font-weight:400; }
a{ color:inherit; text-decoration:none; }
em{ font-style:italic; color:var(--accent); }
::selection{ background:rgba(30,64,175,.16); }
img{ max-width:100%; }

.wrap{ width:100%; max-width:var(--maxw); margin:0 auto; padding:0 32px; }
.kicker{ font-size:11px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--royal); }
.eyebrow{ display:inline-flex; align-items:center; gap:9px; font-size:11px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--chip-fg); background:var(--chip-bg); border:1px solid var(--chip-bd); padding:7px 13px; }
.eyebrow .dot{ width:5px; height:5px; background:var(--royal); }

/* buttons */
.btn{ display:inline-flex; align-items:center; gap:9px; height:46px; padding:0 22px; font-family:inherit;
  font-size:13.5px; font-weight:600; letter-spacing:.01em; cursor:pointer; border:1px solid transparent;
  transition:background .16s ease, border-color .16s ease, color .16s ease; }
.btn .arw{ transition:transform .18s ease; } .btn:hover .arw{ transform:translateX(3px); }
.btn-primary{ background:var(--royal); color:#fff; } .btn-primary:hover{ background:var(--royal-600); }
.btn-ghost{ background:transparent; color:var(--tx); border-color:var(--bd-strong); } .btn-ghost:hover{ border-color:var(--royal); color:var(--royal); }
.btn-white{ background:#fff; color:var(--ink); } .btn-white:hover{ background:#eaf0fb; }
.btn-sm{ height:40px; padding:0 17px; font-size:12.5px; }

/* nav */
header.nav{ position:fixed; top:0; left:0; right:0; z-index:60; height:70px; display:flex; align-items:center;
  transition:background .25s ease, border-color .25s ease; border-bottom:1px solid transparent; }
header.nav.solid{ background:rgba(245,248,253,.88); backdrop-filter:blur(10px); border-bottom-color:var(--bd); }
.nav .wrap{ display:flex; align-items:center; justify-content:space-between; }
.nav .brand{ display:inline-flex; align-items:center; gap:11px; }
.brand .lmark{ height:30px; width:auto; display:block; }
.ltype{ font-family:'Montserrat',sans-serif; line-height:1; display:flex; flex-direction:column; }
.ltype b{ font-weight:700; font-size:15px; letter-spacing:.02em; color:var(--ink); }
.ltype small{ font-size:8px; font-weight:600; letter-spacing:.24em; color:var(--fg); margin-top:4px; }
.nav .links{ display:flex; align-items:center; gap:26px; }
.nav .links a.link{ font-size:13.5px; font-weight:500; color:var(--fg); transition:color .15s ease; }
.nav .links a.link:hover, .nav .links a.link.active{ color:var(--royal); }
.nav .right{ display:flex; align-items:center; gap:14px; }
.lang{ display:flex; border:1px solid var(--bd-strong); height:34px; }
.lang button,.lang a{ font-family:inherit; font-size:11.5px; font-weight:600; letter-spacing:.04em; padding:0 10px; background:transparent;
  border:none; color:var(--fg-low); cursor:pointer; transition:background .15s, color .15s; display:flex; align-items:center; text-decoration:none; }
.lang button.on,.lang a.on{ background:var(--ink); color:#fff; }

/* hero (home) */
.hero{ position:relative; padding:150px 0 84px;
  background:radial-gradient(circle, var(--grid) 1px, transparent 1.6px) 0 0 / 26px 26px,
    radial-gradient(ellipse 70% 60% at 80% -8%, rgba(30,64,175,.10) 0%, rgba(245,248,253,0) 60%), var(--bg); }
.hero .wrap{ display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; }
.hero h1{ font-family:'Marcellus',Georgia,serif; color:var(--tx); font-weight:400;
  font-size:clamp(34px,4.2vw,56px); line-height:1.09; letter-spacing:-.012em; margin:22px 0 0; }
.hero .sub{ font-size:16.5px; line-height:1.62; color:var(--fg); max-width:530px; margin:24px 0 0; }
.hero .cta{ display:flex; gap:14px; margin-top:32px; flex-wrap:wrap; }

/* inner page hero */
.phero{ position:relative; padding:140px 0 64px;
  background:radial-gradient(circle, var(--grid) 1px, transparent 1.6px) 0 0 / 26px 26px,
    radial-gradient(ellipse 60% 55% at 88% -10%, rgba(30,64,175,.09) 0%, rgba(245,248,253,0) 60%), var(--bg); }
.phero .crumb{ font-size:12px; color:var(--fg-low); letter-spacing:.03em; margin-bottom:18px; }
.phero .crumb a:hover{ color:var(--royal); }
.phero h1{ font-family:'Marcellus',Georgia,serif; color:var(--tx); font-weight:400;
  font-size:clamp(32px,4vw,52px); line-height:1.08; letter-spacing:-.012em; max-width:900px; margin-top:14px; }
.phero .lead{ font-size:17px; line-height:1.6; color:var(--fg); max-width:620px; margin-top:22px; }
.phero .cta{ margin-top:30px; display:flex; gap:14px; flex-wrap:wrap; }

/* hero system panel */
.panel{ position:relative; background:var(--surface); border:1px solid var(--bd); box-shadow:var(--shadow-lift); padding:30px 28px 28px;
  background-image:radial-gradient(circle, rgba(30,64,175,.05) 1px, transparent 1.5px); background-size:20px 20px; }
.panel .pnote{ margin-top:18px; padding-top:15px; border-top:1px solid var(--bd); font-size:10.5px; color:var(--fg-low); text-align:center; letter-spacing:.03em; }
.panel .phead{ display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; }
.panel .phead .t{ font-family:'Marcellus',Georgia,serif; font-size:15px; color:var(--tx); }
.panel .phead .badge{ font-size:9px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:var(--royal);
  border:1px solid var(--chip-bd); background:var(--chip-bg); padding:5px 9px; }
.sysgrid{ position:relative; }
.sysgrid > svg{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; z-index:0; }
.snode{ position:relative; z-index:1; background:#fff; border:1px solid var(--bd-strong); padding:12px 14px; display:flex; align-items:center; gap:11px; }
.snode .idx{ font-size:9.5px; font-weight:700; color:var(--royal); letter-spacing:.08em; min-width:20px; }
.snode .nm{ font-size:12.5px; font-weight:600; color:var(--tx); }
.snode .nm small{ display:block; font-size:10.5px; font-weight:400; color:var(--fg-low); margin-top:2px; }
.srow3{ display:flex; flex-direction:column; gap:12px; }
.sconv{ height:30px; }
.sfinal{ background:var(--royal); border-color:var(--royal); color:#fff; justify-content:center; padding:15px; }
.sfinal .nm{ color:#fff; text-transform:uppercase; letter-spacing:.09em; font-size:11.5px; }
.sfinal .chk{ width:16px; height:16px; border:1.5px solid rgba(255,255,255,.6); display:inline-flex; align-items:center; justify-content:center; font-size:9px; }
.snode.eng{ gap:12px; padding:15px 16px; transition:border-color .16s ease, background .16s ease, transform .16s ease, box-shadow .16s ease; }
.snode.eng .eic{ width:30px; height:30px; flex-shrink:0; border:1px solid var(--chip-bd); background:var(--chip-bg); color:var(--royal); display:flex; align-items:center; justify-content:center; transition:background .16s, color .16s; }
.snode.eng .nm{ flex:1; }
.snode.eng .etag{ font-size:9px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--fg-low); border:1px solid var(--bd-strong); padding:4px 8px; white-space:nowrap; transition:color .16s, border-color .16s, background .16s; }
.snode.eng:hover{ border-color:var(--royal); background:#fbfcff; transform:translateX(4px); box-shadow:var(--shadow-lift); }
.snode.eng:hover .eic{ background:var(--royal); color:#fff; }
.snode.eng:hover .etag{ color:#fff; background:var(--royal); border-color:var(--royal); }
.edge.hot{ stroke:var(--royal); stroke-width:2.8; }

/* stat bar */
.statbar{ border-top:1px solid var(--bd); background:#fff; }
.statbar .wrap{ display:grid; grid-template-columns:repeat(3,1fr); }
.statbar .st{ padding:34px 0 34px 28px; display:flex; flex-direction:column; gap:8px; border-left:1px solid var(--bd); }
.statbar .st:first-child{ border-left:none; padding-left:0; }
.statbar .n{ font-family:'Marcellus',Georgia,serif; font-size:42px; color:var(--tx); line-height:1; letter-spacing:-.01em; }
.statbar .n em{ font-style:normal; color:var(--royal); }
.statbar .n.ph{ color:var(--bd-strong); }
.statbar .l{ font-size:12.5px; color:var(--fg); letter-spacing:.02em; }
.statbar .l .tag{ font-size:9px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--fg-low); margin-left:7px; }

/* section shell */
section.blk{ padding:92px 0; }
.blk.tight{ padding:64px 0; }
.shead{ max-width:730px; }
.shead.center{ margin:0 auto; text-align:center; }
.shead h2{ font-family:'Marcellus',Georgia,serif; font-weight:400; color:var(--tx);
  font-size:clamp(28px,3.3vw,42px); line-height:1.12; letter-spacing:-.01em; margin:14px 0 0; }
.shead p{ font-size:15.5px; line-height:1.62; color:var(--fg); margin-top:16px; }
.shead .cta{ margin-top:24px; }
.headrow{ display:flex; justify-content:space-between; align-items:flex-end; gap:24px; }

/* logos marquee — estrecho, pausa al hover, arrastrable */
.logos{ border-top:1px solid var(--bd); border-bottom:1px solid var(--bd); background:#fff; padding:34px 0 38px; }
.logos .lbl{ text-align:center; font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--fg-low); margin-bottom:24px; }
.logos .mwrap{ max-width:920px; margin:0 auto; }
.marquee{ position:relative; overflow:hidden; cursor:grab; touch-action:pan-y;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 12%,#000 88%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 12%,#000 88%,transparent 100%); }
.marquee.grab{ cursor:grabbing; }
.mtrack{ display:flex; align-items:center; width:max-content; }
.lgcell{ height:30px; padding:0 22px; display:flex; align-items:center; justify-content:center; flex-shrink:0; user-select:none; }
.lgcell img{ height:20px; width:auto; max-width:108px; object-fit:contain; opacity:.4; filter:grayscale(1) brightness(.55); pointer-events:none; -webkit-user-drag:none; transition:opacity .2s, filter .2s; }
.lgcell:hover img{ opacity:1; filter:none; }

/* sectors matrix */
.matrix{ margin-top:52px; border:1px solid var(--bd); border-bottom:none; background:#fff; display:grid; grid-template-columns:repeat(4,1fr); }
.cell{ border-bottom:1px solid var(--bd); border-right:1px solid var(--bd); padding:26px 24px 28px; position:relative; transition:background .18s ease; min-height:186px; display:flex; flex-direction:column; }
.cell:nth-child(4n){ border-right:none; }
.cell:hover{ background:#fbfcfe; }
.cell .top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.cell .no{ font-family:'Marcellus',Georgia,serif; font-size:13px; color:var(--royal); letter-spacing:.05em; }
.cell .ic{ color:var(--royal); opacity:.9; }
.cell h3{ font-size:14.5px; font-weight:600; color:var(--tx); line-height:1.28; margin-bottom:9px; }
.cell p{ font-size:11.5px; line-height:1.55; color:var(--fg-low); }
.cell.cta{ background:var(--ink); }
.cell.cta h3{ color:#fff; } .cell.cta p{ color:#9fb0cb; }
.cell.cta .arwbig{ margin-top:auto; color:#8fb0ff; font-size:20px; }

/* dark statement band */
.statement{ background:var(--ink); color:#fff; position:relative; overflow:hidden;
  background-image:radial-gradient(circle, rgba(255,255,255,.04) 1px, transparent 1.5px),
    radial-gradient(ellipse 60% 50% at 85% 0%, rgba(96,148,221,.14) 0%, rgba(22,35,58,0) 60%);
  background-size:26px 26px, 100% 100%; }
.statement .wrap{ max-width:900px; text-align:center; }
.statement .kicker{ color:#8fb0ff; }
.statement h2{ font-family:'Marcellus',Georgia,serif; font-weight:400; font-size:clamp(26px,3vw,40px); line-height:1.24; letter-spacing:-.01em; margin-top:18px; }
.statement h2 em{ color:#8fb0ff; }

/* engines (3 motores — service) */
.engines{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:52px; }
.engine{ background:var(--surface); border:1px solid var(--bd); padding:30px 26px 28px; transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease; display:flex; flex-direction:column; }
.engine:hover{ border-color:var(--bd-strong); box-shadow:var(--shadow-lift); transform:translateY(-3px); }
.engine .top{ display:flex; align-items:center; justify-content:space-between; padding-bottom:18px; border-bottom:1px solid var(--bd); }
.engine .no{ font-family:'Marcellus',Georgia,serif; font-size:13px; color:var(--royal); letter-spacing:.06em; }
.engine .ic{ width:38px; height:38px; border:1px solid var(--chip-bd); background:var(--chip-bg); display:flex; align-items:center; justify-content:center; color:var(--royal); }
.engine .tag{ font-size:9px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--fg-low); }
.engine h3{ font-size:18px; font-weight:600; color:var(--tx); letter-spacing:-.01em; margin:20px 0 10px; }
.engine .lead{ font-size:13.5px; line-height:1.6; color:var(--fg); }
.engine ul{ list-style:none; margin-top:16px; display:flex; flex-direction:column; gap:9px; }
.engine ul li{ font-size:12.5px; line-height:1.45; color:var(--fg); display:flex; gap:10px; }
.engine ul li::before{ content:""; flex-shrink:0; width:5px; height:5px; margin-top:6px; background:var(--royal); }
.engine ul li b{ color:var(--tx); font-weight:600; }
.engine .emore{ max-height:0; opacity:0; overflow:hidden; margin-top:0; padding-top:0; border-top:1px solid transparent; transition:max-height .25s ease, opacity .2s ease, margin-top .25s ease, padding-top .25s ease; }
.engine:hover .emore{ max-height:100px; opacity:1; margin-top:16px; padding-top:15px; border-top-color:var(--bd); }
.emore .eml{ display:block; font-size:9px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--fg-low); margin-bottom:5px; }
.emore .emv{ display:block; font-size:14px; line-height:1.5; color:var(--royal); font-weight:600; }

/* capability list (service) */
.caps{ display:grid; grid-template-columns:repeat(2,1fr); gap:0; margin-top:52px; border:1px solid var(--bd); border-bottom:none; background:#fff; }
.cap{ border-bottom:1px solid var(--bd); border-right:1px solid var(--bd); padding:28px 28px 30px; display:flex; gap:18px; }
.cap:nth-child(2n){ border-right:none; }
.cap .cno{ font-family:'Marcellus',Georgia,serif; font-size:15px; color:var(--royal); min-width:26px; }
.cap h4{ font-size:15px; font-weight:600; color:var(--tx); line-height:1.3; margin-bottom:8px; }
.cap p{ font-size:12.5px; line-height:1.55; color:var(--fg-low); }

/* pillars (content pillars) */
.pillars{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:48px; }
.pillar{ background:#fff; border:1px solid var(--bd); border-top:2px solid var(--royal); padding:24px 22px 26px; }
.pillar h4{ font-size:15px; font-weight:600; color:var(--tx); margin-bottom:10px; }
.pillar p{ font-size:12px; line-height:1.55; color:var(--fg-low); }

/* process steps */
.process{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:52px; position:relative; }
.step{ padding:0 22px 0 0; position:relative; }
.step:not(:last-child)::after{ content:""; position:absolute; top:17px; left:34px; right:8px; height:1.5px; background:var(--bd-strong); z-index:0; }
.step .num{ position:relative; z-index:1; width:34px; height:34px; background:var(--royal); color:#fff; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; margin-bottom:22px; }
.step h4{ font-size:14.5px; font-weight:600; color:var(--tx); line-height:1.3; margin-bottom:10px; }
.step p{ font-size:12.5px; line-height:1.55; color:var(--fg-low); }

/* phases (service delivery — 3 phases) */
.phases{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:48px; }
.phase{ background:#fff; border:1px solid var(--bd); padding:28px 26px; }
.phase .pn{ font-family:'Marcellus',Georgia,serif; font-size:14px; color:var(--royal); letter-spacing:.05em; }
.phase h3{ font-size:18px; font-weight:600; color:var(--tx); margin:8px 0 12px; }
.phase p{ font-size:13px; line-height:1.58; color:var(--fg); }
.phase ul{ list-style:none; margin-top:14px; display:flex; flex-direction:column; gap:8px; }
.phase ul li{ font-size:12px; line-height:1.45; color:var(--fg-low); display:flex; gap:9px; }
.phase ul li::before{ content:""; flex-shrink:0; width:4px; height:4px; margin-top:6px; background:var(--royal); }
/* infográfico top-of-mind (flujo de 4 pasos) */
.flow4{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:54px; }
.fstep{ text-align:center; padding:0 20px; position:relative; }
.fstep:not(:last-child)::after{ content:""; position:absolute; top:28px; left:calc(50% + 36px); right:calc(-50% + 36px); height:1.5px; background:var(--bd-strong); z-index:0; }
.fstep .fic{ position:relative; z-index:1; width:56px; height:56px; margin:0 auto 20px; border:1px solid var(--bd); background:#fff; display:flex; align-items:center; justify-content:center; color:var(--royal); box-shadow:var(--shadow); }
.fstep .fn{ font-size:10px; font-weight:700; letter-spacing:.1em; color:var(--royal); }
.fstep h4{ font-size:15px; font-weight:600; color:var(--tx); margin:6px 0 8px; line-height:1.3; }
.fstep p{ font-size:12.5px; color:var(--fg-low); line-height:1.55; }
.fstep .fmore{ max-height:0; opacity:0; overflow:hidden; margin-top:0; transition:max-height .25s ease, opacity .2s ease, margin-top .25s ease; font-size:12px; line-height:1.5; color:var(--royal); font-weight:600; }
.fstep:hover .fmore{ max-height:80px; opacity:1; margin-top:11px; }
/* puntos de problema */
.ppoints{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:44px; }
.ppoint{ border-left:2px solid var(--bd-strong); padding:2px 0 2px 20px; }
.ppoint h4{ font-size:14.5px; font-weight:600; color:var(--tx); margin-bottom:9px; }
.ppoint p{ font-size:13px; line-height:1.55; color:var(--fg-low); }
.ptrust{ max-width:660px; margin:44px auto 0; text-align:center; font-size:15.5px; line-height:1.66; color:var(--fg); }
.ptrust em{ color:var(--royal); font-style:italic; }
/* callout (frase clave) */
.callout{ margin-top:48px; background:#fff; border:1px solid var(--bd); box-shadow:var(--shadow-lift); padding:38px 44px; text-align:center; }
.callout .big{ font-family:'Marcellus',serif; font-size:clamp(22px,2.6vw,31px); line-height:1.32; color:var(--tx); }
.callout .big em{ color:var(--royal); font-style:italic; }
.callout .sub{ font-size:13px; color:var(--fg-low); margin-top:14px; }
@media(max-width:900px){ .flow4{ grid-template-columns:1fr 1fr; gap:40px 0; } .fstep:not(:last-child)::after{ display:none; } .ppoints{ grid-template-columns:1fr; } }
/* flow de 3 (entrega) con chips */
.flow3{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:54px; }
.fchips{ display:flex; flex-wrap:wrap; gap:6px; justify-content:center; margin-top:14px; }
.fchips span{ font-size:10.5px; font-weight:600; color:var(--chip-fg); background:var(--chip-bg); border:1px solid var(--chip-bd); padding:5px 9px; }
@media(max-width:900px){ .flow3{ grid-template-columns:1fr; gap:38px 0; } }
/* diagrama circular (pilares) */
.pcircle{ position:relative; width:760px; height:580px; max-width:100%; margin:56px auto 0; }
.pring{ position:absolute; left:215px; top:125px; width:330px; height:330px; border:1.5px solid var(--bd-strong); border-radius:50%; }
.pcenter{ position:absolute; left:380px; top:290px; transform:translate(-50%,-50%); text-align:center; width:190px; }
.pcenter .pt{ font-family:'Marcellus',serif; font-size:30px; color:var(--tx); line-height:1; }
.pcenter .psub{ font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--royal); margin-top:7px; }
.pdot{ position:absolute; width:40px; height:40px; border:1.5px solid var(--royal); background:#fff; color:var(--royal); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; z-index:2; }
.pdot.d1{ left:360px; top:105px; } .pdot.d2{ left:525px; top:270px; } .pdot.d3{ left:360px; top:435px; } .pdot.d4{ left:195px; top:270px; }
.plabel{ position:absolute; }
.plabel b{ display:block; font-size:16px; font-weight:600; color:var(--tx); }
.plabel span{ display:block; font-size:12px; color:var(--fg-low); margin-top:3px; }
.plabel.l1{ left:260px; top:2px; width:240px; text-align:center; }
.plabel.l2{ left:588px; top:262px; width:172px; text-align:left; }
.plabel.l3{ left:260px; top:486px; width:240px; text-align:center; }
.plabel.l4{ left:0px; top:262px; width:172px; text-align:right; }
/* espectro alcance <-> francotirador */
.spectrum{ display:flex; align-items:center; gap:22px; max-width:720px; margin:44px auto 0; }
.spectrum .sp-end{ flex-shrink:0; width:160px; }
.spectrum .sp-end b{ font-size:13px; color:var(--tx); } .spectrum .sp-end span{ display:block; font-size:11px; color:var(--fg-low); margin-top:3px; line-height:1.4; }
.spectrum .sp-end.r{ text-align:right; }
.spectrum .sp-bar{ flex:1; height:6px; background:linear-gradient(90deg, var(--chip-bd), var(--royal)); }
@media(max-width:640px){ .pcircle{ height:auto; padding-bottom:10px; } .pring,.pcenter,.pdot,.ppop{ display:none; } .plabel{ position:static; width:auto !important; text-align:left !important; margin-bottom:16px; border-left:2px solid var(--bd-strong); padding-left:16px; } .spectrum{ flex-direction:column; } .spectrum .sp-end,.spectrum .sp-end.r{ width:auto; text-align:center; } }
/* ===== case study (formato ColdIQ) ===== */
.aglance{ display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--bd); background:#fff; box-shadow:var(--shadow-lift); }
.aglance .ag{ padding:26px 24px; border-left:1px solid var(--bd); }
.aglance .ag:first-child{ border-left:none; }
.aglance .agv{ font-family:'Marcellus',serif; font-size:clamp(26px,3vw,34px); color:var(--royal); line-height:1; }
.aglance .agv em{ font-style:normal; color:var(--tx); }
.aglance .agk{ font-size:12px; color:var(--fg); margin-top:9px; line-height:1.4; }
.cprose{ max-width:760px; margin:54px auto 0; }
.cprose > p{ font-size:15px; line-height:1.7; color:var(--fg); margin-bottom:14px; }
.cprose .intro{ font-size:17px; color:var(--tx); }
.cprose h2{ font-family:'Marcellus',serif; font-weight:400; font-size:26px; color:var(--tx); margin:40px 0 14px; }
.cprose h2 .hk{ display:block; font-family:'Montserrat',sans-serif; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--royal); margin-bottom:9px; }
.cprose ul{ list-style:none; margin:8px 0 14px; display:flex; flex-direction:column; gap:10px; }
.cprose ul li{ font-size:15px; line-height:1.55; color:var(--fg); display:flex; gap:12px; }
.cprose ul li::before{ content:""; flex-shrink:0; width:6px; height:6px; margin-top:8px; background:var(--royal); }
.cprose ul li b{ color:var(--tx); font-weight:600; }
.cpull{ display:flex; gap:18px; align-items:center; background:#fbfcfe; border:1px solid var(--bd); border-left:2px solid var(--royal); padding:24px 26px; margin:36px 0; }
.cpull img{ width:56px; height:56px; border-radius:50%; object-fit:cover; flex-shrink:0; }
.cpull .cqt{ font-family:'Marcellus',serif; font-size:19px; line-height:1.42; color:var(--tx); }
.cpull .cqa{ font-size:12px; color:var(--fg-low); margin-top:9px; letter-spacing:.02em; }
.coverview{ border:1px solid var(--bd); background:#fff; padding:26px 28px; margin-top:40px; }
.coverview h4{ font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--royal); margin-bottom:18px; }
.coverview .cog{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.coverview .co-i .k{ font-size:10.5px; color:var(--fg-low); text-transform:uppercase; letter-spacing:.06em; }
.coverview .co-i .v{ font-size:14px; font-weight:600; color:var(--tx); margin-top:5px; }
.coverview .cod{ font-size:13px; line-height:1.6; color:var(--fg); margin-top:18px; padding-top:16px; border-top:1px solid var(--bd); }
.cprose .cphase{ margin-top:24px; padding-left:22px; border-left:2px solid var(--bd-strong); }
.cprose .cphase .cpn{ font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--royal); }
.cprose .cphase h3{ font-size:16px; font-weight:600; color:var(--tx); margin:5px 0 9px; }
.cprose .cphase p{ font-size:14.5px; line-height:1.65; color:var(--fg); margin:0; }
/* layout 2 columnas con ficha sticky (ColdIQ) */
.caselayout{ display:grid; grid-template-columns:1fr 300px; gap:52px; align-items:start; margin-top:52px; }
.caselayout .cprose{ max-width:none; margin:0; }
.caseside{ position:sticky; top:96px; }
.ccard{ border:1px solid var(--bd); background:#fff; box-shadow:var(--shadow); padding:24px; }
.ccard .cnm{ font-family:'Marcellus',serif; font-size:21px; color:var(--tx); line-height:1.1; }
.ccard .ctag{ font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--royal); margin-top:7px; }
.ccard .cdesc{ font-size:12.5px; line-height:1.6; color:var(--fg); margin:14px 0; padding:14px 0; border-top:1px solid var(--bd); border-bottom:1px solid var(--bd); }
.ccard .crow{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:8px 0; border-bottom:1px solid var(--bd); font-size:12.5px; }
.ccard .crow:last-of-type{ border-bottom:none; }
.ccard .crow .k{ color:var(--fg-low); } .ccard .crow .v{ color:var(--tx); font-weight:600; text-align:right; }
.ccard .cbtn{ display:flex; justify-content:center; margin-top:18px; }
@media(max-width:900px){ .caselayout{ grid-template-columns:1fr; gap:34px; } .caseside{ position:static; } }
/* diagrama cadena (el trabajo hecho) */
.dchain{ display:flex; align-items:stretch; margin:26px 0 8px; }
.dchain .dc{ flex:1; border:1px solid var(--bd); background:#fff; padding:18px 14px; text-align:center; }
.dchain .dc .dcv{ font-family:'Marcellus',serif; font-size:26px; color:var(--royal); line-height:1; }
.dchain .dc .dck{ font-size:11px; color:var(--fg-low); margin-top:8px; line-height:1.4; }
.dchain .dc.big{ background:var(--royal); border-color:var(--royal); } .dchain .dc.big .dcv{ color:#fff; } .dchain .dc.big .dck{ color:#cadcff; }
.dchain .darr{ display:flex; align-items:center; padding:0 12px; color:var(--bd-strong); font-size:20px; }
@media(max-width:600px){ .dchain{ flex-direction:column; } .dchain .darr{ transform:rotate(90deg); padding:8px 0; align-self:center; } }
/* ===== hover en infográficos (coherente con el panel del hero) ===== */
.engine .ic{ transition:background .18s, color .18s, border-color .18s; }
.engine:hover .ic{ background:var(--royal); border-color:var(--royal); color:#fff; }
.fstep .fic{ transition:background .18s, color .18s, border-color .18s, transform .18s; }
.fstep h4{ transition:color .18s; }
.fstep:hover .fic{ background:var(--royal); border-color:var(--royal); color:#fff; transform:translateY(-3px); }
.fstep:hover h4{ color:var(--royal); }
.fchips span{ transition:background .15s, color .15s, border-color .15s; }
.fchips span:hover{ background:var(--royal); border-color:var(--royal); color:#fff; }
.pdot{ transition:background .18s, color .18s, transform .18s; }
.pdot:hover{ background:var(--royal); color:#fff; transform:translate(-1px,-1px) scale(1.14); }
.plabel b{ transition:color .18s, font-size .18s; }
.plabel:hover b{ color:var(--royal); }
.dchain .dc{ transition:border-color .18s, box-shadow .18s, transform .18s; }
.dchain .dc:not(.big):hover{ border-color:var(--royal); box-shadow:var(--shadow-lift); transform:translateY(-3px); }
.dchain .dc:not(.big):hover .dcv{ color:var(--royal); }
.cell .ic{ transition:transform .18s, color .18s; } .cell .no{ transition:color .18s; }
.cell:hover .ic{ transform:scale(1.14); } .cell:hover .no{ color:var(--royal); }
/* ===== páginas legales ===== */
.legal{ max-width:780px; margin:0 auto; }
.legal h2{ font-family:'Marcellus',Georgia,serif; font-weight:400; font-size:22px; color:var(--tx); margin:34px 0 12px; }
.legal p{ font-size:15px; line-height:1.72; color:#26364d; margin:0 0 14px; }
.legal p b{ color:var(--tx); font-weight:600; }
.legal ul{ list-style:none; margin:0 0 16px; display:flex; flex-direction:column; gap:9px; }
.legal ul li{ font-size:15px; line-height:1.6; color:#26364d; padding-left:16px; position:relative; }
.legal ul li::before{ content:""; position:absolute; left:0; top:9px; width:6px; height:6px; background:var(--royal); }
.legal a{ color:var(--royal); text-decoration:underline; }
/* ===== 4 pilares: selector radial interactivo ===== */
.pcircle .pdot,.pcircle .plabel{ cursor:pointer; }
.plabel .pmore{ display:block; max-height:0; opacity:0; overflow:hidden; margin-top:0; transition:max-height .22s ease, opacity .18s ease, margin-top .22s ease; font-size:11.5px; line-height:1.42; color:var(--fg); }
.plabel .pmore .pma{ display:block; color:var(--royal); font-weight:600; margin-top:5px; }
.plabel.lit b{ color:var(--royal); font-size:19px; }
.plabel.lit span:not(.pmore):not(.pma){ color:var(--royal); }
.plabel.lit .pmore{ max-height:150px; opacity:1; margin-top:9px; }
.pdot.lit{ background:var(--royal); color:#fff; transform:translate(-2px,-2px) scale(1.2); }
/* barra logos de clientes (estática) */
.clientlogos{ border-top:1px solid var(--bd); border-bottom:1px solid var(--bd); background:#fff; padding:34px 0; overflow:hidden; }
.clientlogos .lbl{ text-align:center; font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--fg-low); margin-bottom:28px; }
.clmwrap{ position:relative; overflow:hidden; cursor:grab; -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); }
.clmwrap.grab{ cursor:grabbing; }
.clmarq{ display:flex; width:max-content; align-items:center; }
.clmarq img{ height:30px; width:auto; margin:0 30px; object-fit:contain; opacity:.72; filter:grayscale(1); transition:opacity .2s, filter .2s; flex:none; -webkit-user-drag:none; user-select:none; }
.clmarq img:hover{ opacity:1; filter:none; }
@keyframes clscroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
/* ===== BLOG (estilo ColdIQ) ===== */
.btag{ display:inline-block; font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--royal); }
.bsec{ margin-top:56px; }
.bsec .bsh{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:24px; border-bottom:1px solid var(--bd); padding-bottom:14px; }
.bsec .bsh h2{ font-family:'Marcellus',serif; font-weight:400; font-size:24px; color:var(--tx); }
.bsec .bsh a{ font-size:12.5px; font-weight:600; color:var(--royal); text-decoration:none; white-space:nowrap; }
/* featured (3 grandes) */
.bfeat{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.bfeat.two{ grid-template-columns:1.4fr 1fr; }
.bcard{ display:flex; flex-direction:column; border:1px solid var(--bd); background:#fff; text-decoration:none; box-shadow:var(--shadow); transition:transform .2s, box-shadow .2s; }
.bcard:hover{ transform:translateY(-4px); box-shadow:0 14px 34px rgba(20,35,58,.12); }
.bcard .bimg{ aspect-ratio:16/10; overflow:hidden; background:var(--ink); border-bottom:1px solid var(--bd); }
.bcard .bimg img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s; }
.bcard:hover .bimg img{ transform:scale(1.04); }
.bcard .bimg.noimg{ display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#16233a,#1e40af); }
.bcard .bimg.noimg span{ font-family:'Marcellus',serif; font-style:italic; color:#fff; opacity:.85; font-size:22px; padding:0 20px; text-align:center; }
.bcard .bbody{ padding:20px 22px 24px; display:flex; flex-direction:column; gap:10px; flex:1; }
.bcard .bmeta{ display:flex; align-items:center; gap:10px; font-size:11px; color:var(--fg-low); }
.bcard .bmeta .sep{ width:3px; height:3px; background:var(--bd-strong); border-radius:50%; }
.bcard h3{ font-family:'Marcellus',serif; font-weight:400; font-size:19px; line-height:1.25; color:var(--tx); }
.bfeat .bcard h3{ font-size:22px; }
.bcard p{ font-size:13.5px; line-height:1.6; color:var(--fg); margin:0; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.bcard .brd{ margin-top:auto; font-size:12px; font-weight:600; color:var(--royal); padding-top:4px; }
/* categorías */
.bcats{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.bcatt{ border:1px solid var(--bd); background:#fff; padding:22px 20px; text-decoration:none; display:block; transition:border-color .2s, background .2s; }
.bcatt:hover{ border-color:var(--royal); background:var(--royal); }
.bcatt .bcn{ font-family:'Marcellus',serif; font-size:19px; color:var(--tx); }
.bcatt .bcd{ font-size:12px; color:var(--fg-low); margin-top:6px; line-height:1.4; }
.bcatt:hover .bcn,.bcatt:hover .bcd{ color:#fff; }
/* grid general */
.bgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
/* article */
.article{ max-width:748px; margin:0 auto; }
.article .cover{ width:100%; border:1px solid var(--bd); margin:6px 0 34px; background:var(--ink); }
.article .abody p{ font-size:17.5px; line-height:1.8; color:#2b3a52; margin:0 0 22px; }
.article .abody p:first-of-type{ font-size:20px; line-height:1.62; color:var(--tx); margin-bottom:26px; }
.article .abody p:first-of-type::first-letter{ }
.article .linkpost{ display:inline-flex; align-items:center; gap:8px; margin-top:8px; font-size:13px; font-weight:600; color:var(--royal); }
.article .abody p strong{ color:var(--tx); font-weight:600; }
.article .abody .flag{ font-style:normal; }
.article .ameta{ display:flex; align-items:center; gap:12px; font-size:12.5px; color:var(--fg-low); margin-top:16px; }
.article .ameta .sep{ width:3px; height:3px; background:var(--bd-strong); border-radius:50%; }
.abackrow{ max-width:748px; margin:38px auto 0; }
@media(max-width:900px){ .bfeat,.bgrid{ grid-template-columns:1fr 1fr; } .bcats{ grid-template-columns:1fr 1fr; } .bfeat.two{ grid-template-columns:1fr; } }
@media(max-width:600px){ .bfeat,.bgrid,.bcats{ grid-template-columns:1fr; } .article .abody p{ font-size:16px; } }
@media(max-width:700px){ .aglance{ grid-template-columns:1fr 1fr; } .aglance .ag:nth-child(odd){ border-left:none; } .coverview .cog{ grid-template-columns:1fr; } }

/* cases (by sector) */
.sectorblock{ margin-top:56px; }
.sectorblock .shd{ display:flex; align-items:center; gap:14px; padding-bottom:16px; border-bottom:1px solid var(--bd); margin-bottom:26px; }
.sectorblock .shd .sno{ font-family:'Marcellus',Georgia,serif; font-size:15px; color:var(--royal); }
.sectorblock .shd h2{ font-size:18px; font-weight:600; color:var(--tx); letter-spacing:.01em; }
.casegrid{ display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.case{ background:#fff; border:1px solid var(--bd); padding:0; transition:border-color .18s, box-shadow .18s, transform .18s; overflow:hidden; }
.case:hover{ border-color:var(--bd-strong); box-shadow:var(--shadow-lift); transform:translateY(-3px); }
.case .ch{ background:var(--ink); color:#fff; padding:24px; position:relative; overflow:hidden; min-height:128px; display:flex; flex-direction:column; justify-content:center;
  background-image:radial-gradient(circle, rgba(255,255,255,.055) 1px, transparent 1.5px); background-size:16px 16px; }
.case .ch .co{ font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#8fb0ff; margin-bottom:14px; }
.case .ch .nm{ font-family:'Marcellus',Georgia,serif; font-size:22px; }
.case .ch .clogo{ height:32px; width:auto; max-width:80%; object-fit:contain; object-position:left center; filter:brightness(0) invert(1); opacity:.96; }
.case .cb{ padding:22px 24px 24px; }
.case .metric{ display:flex; gap:22px; margin-bottom:16px; }
.case .metric .m .v{ font-family:'Marcellus',Georgia,serif; font-size:26px; color:var(--royal); line-height:1; }
.case .metric .m .k{ font-size:10.5px; color:var(--fg-low); margin-top:6px; letter-spacing:.02em; }
.case .desc{ font-size:12.5px; line-height:1.58; color:var(--fg); }
.case .rd{ margin-top:16px; font-size:12px; font-weight:600; color:var(--royal); display:inline-flex; gap:7px; }
.case:hover .rd .arw{ transform:translateX(3px); } .case .rd .arw{ transition:transform .18s; }
.case.soon{ pointer-events:none; }
.case.soon .ch{ background:#26344c; }
.case.soon .ch .co{ color:#7f93b3; }
.case.soon .metric .v{ filter:blur(5px); color:var(--fg-low); user-select:none; }
.case.soon .desc,.case.soon .rd{ color:var(--fg-low); }
.case.soon .rd{ font-weight:600; }

/* blog list */
.posts{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:52px; }
.post{ background:#fff; border:1px solid var(--bd); transition:border-color .18s, box-shadow .18s, transform .18s; display:flex; flex-direction:column; }
.post:hover{ border-color:var(--bd-strong); box-shadow:var(--shadow-lift); transform:translateY(-3px); }
.post .cover{ height:150px; background:var(--ink); position:relative; overflow:hidden;
  background-image:radial-gradient(circle, rgba(255,255,255,.06) 1px, transparent 1.5px); background-size:18px 18px; display:flex; align-items:flex-end; padding:16px; }
.post .cover.v2{ background:var(--royal); } .post .cover.v3{ background:#1d3870; } .post .cover.v4{ background:#243d64; }
.post .cover .cat{ font-size:9.5px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:#fff; border:1px solid rgba(255,255,255,.35); padding:5px 9px; position:relative; z-index:1; }
.post .cover .motif{ position:absolute; right:-6px; top:-14px; color:rgba(255,255,255,.13); font-size:92px; }
.post .body{ padding:22px 22px 24px; display:flex; flex-direction:column; flex:1; }
.post .date{ font-size:11px; color:var(--fg-low); letter-spacing:.03em; }
.post h3{ font-size:15.5px; font-weight:600; color:var(--tx); line-height:1.34; margin:10px 0 16px; letter-spacing:-.01em; }
.post .rd{ font-size:12px; font-weight:600; color:var(--royal); display:inline-flex; align-items:center; gap:7px; margin-top:auto; }
.post:hover .rd .arw{ transform:translateX(3px); } .post .rd .arw{ transition:transform .18s; }

/* closing */
.close{ background:radial-gradient(circle, var(--grid) 1px, transparent 1.6px) 0 0 / 26px 26px, var(--bg); }
.close .closecard{ background:#fff; border:1px solid var(--bd); box-shadow:var(--shadow-lift); text-align:center; max-width:840px; margin:0 auto; padding:64px 44px; }
.close .kicker{ color:var(--royal); }
.close h2{ font-family:'Marcellus',Georgia,serif; font-weight:400; color:var(--tx); font-size:clamp(28px,3.4vw,44px); line-height:1.12; letter-spacing:-.01em; margin-top:16px; }
.close h2 em{ color:var(--royal); font-style:italic; }
.close p{ font-size:16px; color:var(--fg); margin:18px auto 0; max-width:540px; line-height:1.62; }
.close .cta{ margin-top:32px; display:flex; justify-content:center; }
.close .wrap{ text-align:center; }
.close .btn-white{ background:var(--royal); color:#fff; border-color:var(--royal); }
.close .btn-white:hover{ background:var(--royal-600); }

/* footer */
footer{ background:var(--ink); color:#9fb0cb; padding:64px 0 32px; }
footer .grid{ display:grid; grid-template-columns:1.5fr 1fr 1.1fr 1fr; gap:40px; }
footer .flogo{ display:inline-flex; align-items:center; gap:11px; margin-bottom:18px; }
footer .flogo .lmark{ height:28px; }
footer .ltype b{ color:#fff; } footer .ltype small{ color:#9fb0cb; }
footer .brand p{ font-size:12.5px; line-height:1.6; color:#8497b5; max-width:250px; margin-bottom:18px; }
footer .brand .mail{ font-size:12.5px; color:#c3d0e6; }
footer .social{ display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; margin-top:16px; border:1px solid rgba(255,255,255,.18); color:#9fb0cb; transition:color .16s, border-color .16s; }
footer .social:hover{ color:#fff; border-color:#fff; }
footer .col h4{ font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:#c3d0e6; margin-bottom:16px; }
footer .col a{ display:block; font-size:12.5px; color:#9fb0cb; padding:5px 0; transition:color .15s; }
footer .col a:hover{ color:#fff; }
footer .base{ border-top:1px solid rgba(255,255,255,.1); margin-top:48px; padding-top:24px; display:flex; justify-content:space-between; align-items:center; font-size:11.5px; color:#7286a5; }

/* reveal */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1); }
.reveal.in{ opacity:1; transform:none; }
.d1{ transition-delay:.06s } .d2{ transition-delay:.12s } .d3{ transition-delay:.18s }
.edge{ fill:none; stroke:var(--royal); stroke-width:1.5; }

/* persistent CTA (fab) */
.fab{ position:fixed; bottom:22px; right:22px; z-index:75; display:inline-flex; align-items:center; gap:9px; height:48px; padding:0 22px;
  background:var(--royal); color:#fff; font-size:13px; font-weight:600; letter-spacing:.01em; box-shadow:0 12px 30px -8px rgba(20,40,90,.55);
  transition:background .16s ease, transform .16s ease; }
.fab:hover{ background:var(--royal-600); transform:translateY(-2px); }
.fab .arw{ transition:transform .18s ease; } .fab:hover .arw{ transform:translateX(3px); }

/* booking page */
.bookgrid{ display:grid; grid-template-columns:.92fr 1.08fr; gap:48px; align-items:start; }
.bookgrid .bookinfo{ position:sticky; top:96px; align-self:start; }
.bookinfo .expect{ list-style:none; margin-top:26px; display:flex; flex-direction:column; gap:15px; }
.bookinfo .expect li{ display:flex; gap:13px; font-size:14px; color:var(--fg); line-height:1.5; }
.bookinfo .expect li .ck{ flex-shrink:0; width:22px; height:22px; background:var(--chip-bg); border:1px solid var(--chip-bd); color:var(--royal); display:flex; align-items:center; justify-content:center; font-size:11px; }
.who{ margin-top:32px; display:flex; align-items:center; gap:14px; padding-top:24px; border-top:1px solid var(--bd); }
.who .av{ width:46px; height:46px; background:var(--ink); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Marcellus',serif; font-size:18px; }
.who .n{ font-size:14px; font-weight:600; color:var(--tx); } .who .r{ font-size:12px; color:var(--fg-low); margin-top:2px; }
.calbox{ background:#fff; border:1px solid var(--bd); box-shadow:var(--shadow-lift); min-height:480px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:40px;
  background-image:radial-gradient(circle, rgba(30,64,175,.05) 1px, transparent 1.5px); background-size:20px 20px; }
.calbox .ph{ font-family:'Marcellus',serif; font-size:20px; color:var(--tx); } .calbox p{ font-size:13px; color:var(--fg-low); margin-top:10px; max-width:300px; line-height:1.6; }
.calbox .mk{ font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--fg-low); border:1px solid var(--bd-strong); padding:7px 13px; margin-top:22px; }
.calembed{ background:#fff; border:1px solid var(--bd); box-shadow:var(--shadow-lift); padding:8px; }
.hlgrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:44px; }
.hl{ background:#fff; border:1px solid var(--bd); padding:26px 24px 24px; transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease; display:block; }
.hl:hover{ border-color:var(--bd-strong); box-shadow:var(--shadow-lift); transform:translateY(-3px); }
.hl .v{ font-family:'Marcellus',serif; font-size:34px; color:var(--royal); line-height:1; }
.hl .k{ font-size:11.5px; color:var(--fg-low); margin-top:8px; line-height:1.4; }
.hl .nm{ font-size:13px; font-weight:600; color:var(--tx); margin-top:18px; padding-top:14px; border-top:1px solid var(--bd); }
.hl .co{ font-size:10.5px; color:var(--fg-low); letter-spacing:.03em; margin-top:3px; }
@media(max-width:940px){ .hlgrid{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .hlgrid{ grid-template-columns:1fr; } }
/* testimonios (masonry, tarjeta con foto estilo Notus) */
.tgrid{ columns:3; column-gap:22px; margin-top:44px; }
.tcard{ break-inside:avoid; -webkit-column-break-inside:avoid; background:#fff; border:1px solid var(--bd); padding:24px 22px 22px; margin:0 0 22px; }
.tcard .thead{ display:flex; align-items:center; gap:12px; margin-bottom:15px; }
.tph{ width:46px; height:46px; border-radius:50%; object-fit:cover; flex-shrink:0; background:var(--chip-bg); }
.tnm{ font-size:14px; font-weight:600; color:var(--tx); letter-spacing:-.01em; }
.thn{ font-size:12px; color:var(--fg-low); margin-top:1px; }
.tcard .q{ font-size:14px; line-height:1.62; color:var(--tx); }
.tro{ margin-top:16px; font-size:12px; font-weight:600; color:var(--royal); letter-spacing:.01em; }
/* cards resultado/testimonio (marquee home + grid agendar) */
.rcard{ background:#fff; border:1px solid var(--bd); padding:22px 22px 20px; display:flex; flex-direction:column; min-height:196px; }
.rcard .rtop{ display:flex; align-items:center; gap:12px; margin-bottom:13px; }
.rcard .rtop .tph{ width:44px; height:44px; border-radius:50%; object-fit:cover; flex-shrink:0; background:var(--chip-bg); }
.rcard .rq{ font-size:13.5px; line-height:1.55; color:var(--tx); flex:1; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.rcard .rrole{ margin-top:15px; font-size:12px; font-weight:600; color:var(--royal); letter-spacing:.01em; }
.rcard.res .rv{ font-family:'Marcellus',serif; font-size:42px; color:var(--royal); line-height:1; }
.rcard.res .rk{ font-size:12.5px; color:var(--fg); margin-top:9px; }
.rcard.res .rrole{ margin-top:auto; padding-top:16px; }
.rcard .rtop .tph.avph{ display:flex; align-items:center; justify-content:center; background:var(--ink); color:#fff; font-family:'Marcellus',serif; font-size:14px; letter-spacing:.02em; }
.rcard .mnum{ flex:1; display:flex; flex-direction:column; justify-content:center; padding:6px 0; }
.rcard .mnum .mv{ font-family:'Marcellus',serif; font-size:38px; color:var(--royal); line-height:1; }
.rcard .mnum .mk{ font-size:12px; color:var(--fg); margin-top:8px; }
.rcard .mfun{ display:flex; gap:26px; flex:1; align-items:center; }
.rcard .mfun .mf .mfv{ font-family:'Marcellus',serif; font-size:24px; color:var(--royal); line-height:1; }
.rcard .mfun .mf .mfk{ font-size:11.5px; color:var(--fg-low); margin-top:5px; }
.tmarquee{ position:relative; overflow:hidden; cursor:grab; margin:44px auto 0; max-width:1300px;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%); }
.tmarquee.grab{ cursor:grabbing; }
.ttrack{ display:flex; width:max-content; align-items:stretch; }
.ttrack .rcard{ width:330px; flex-shrink:0; margin-right:20px; }
.rgrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(288px,1fr)); gap:20px; margin-top:44px; }
@media(max-width:560px){ .rgrid{ grid-template-columns:1fr; } .ttrack .rcard{ width:290px; } }
@media(max-width:940px){ .tgrid{ columns:2; } }
@media(max-width:560px){ .tgrid{ columns:1; } }

/* case detail */
.casehero{ background:var(--ink); color:#fff; position:relative; overflow:hidden; padding:130px 0 56px;
  background-image:radial-gradient(circle, rgba(255,255,255,.045) 1px, transparent 1.5px), radial-gradient(ellipse 60% 55% at 85% -10%, rgba(96,148,221,.16) 0%, rgba(22,35,58,0) 60%);
  background-size:26px 26px,100% 100%; }
.casehero .crumb{ color:#8fb0ff; font-size:12px; margin-bottom:16px; } .casehero .crumb a{ color:#8fb0ff; } .casehero .crumb a:hover{ color:#fff; }
.casehero .co{ font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#8fb0ff; }
.casehero h1{ font-family:'Marcellus',serif; font-weight:400; font-size:clamp(30px,3.6vw,46px); line-height:1.1; margin-top:12px; max-width:820px; }
.casehero .metrics{ display:flex; gap:44px; margin-top:38px; flex-wrap:wrap; }
.casehero .metrics .m .v{ font-family:'Marcellus',serif; font-size:40px; color:#fff; line-height:1; } .casehero .metrics .m .v em{ color:#8fb0ff; font-style:normal; }
.casehero .metrics .m .k{ font-size:12px; color:#9fb0cb; margin-top:8px; }
.caseprose{ max-width:760px; }
.caseprose .blk2{ margin-top:38px; } .caseprose h2{ font-family:'Marcellus',serif; font-weight:400; font-size:24px; color:var(--tx); margin-bottom:14px; }
.caseprose p{ font-size:15px; line-height:1.7; color:var(--fg); margin-bottom:14px; }
.casequote{ border-left:2px solid var(--royal); padding:6px 0 6px 24px; margin:34px 0; font-family:'Marcellus',serif; font-size:22px; line-height:1.42; color:var(--tx); }
.casequote .att{ font-family:'Montserrat',sans-serif; font-size:12px; color:var(--fg-low); margin-top:12px; letter-spacing:.02em; }

@media (max-width:940px){
  .bookgrid{ grid-template-columns:1fr; gap:32px; }
  .bookgrid .bookinfo{ position:static; }
  .hero .wrap{ grid-template-columns:1fr; gap:44px; }
  .matrix{ grid-template-columns:repeat(2,1fr); } .cell:nth-child(4n){ border-right:1px solid var(--bd); } .cell:nth-child(2n){ border-right:none; }
  .engines,.pillars{ grid-template-columns:1fr 1fr; } .process{ grid-template-columns:repeat(2,1fr); gap:36px 0; } .step:not(:last-child)::after{ display:none; }
  .phases,.posts,.casegrid,.caps{ grid-template-columns:1fr; } .cap:nth-child(2n){ border-right:1px solid var(--bd); }
  .nav .links{ display:none; } footer .grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
  .wrap{ padding:0 20px; } .statbar .wrap{ grid-template-columns:1fr; } .statbar .st{ border-left:none; padding-left:0; border-top:1px solid var(--bd); padding-top:24px; }
  .matrix,.engines,.pillars{ grid-template-columns:1fr; } .cell{ border-right:1px solid var(--bd) !important; } footer .grid{ grid-template-columns:1fr; }
}

/* ============================================================
   POSTS FUNDAMENTALES · deck de presentación + infográficos
   ============================================================ */
/* --- deck (guion del vídeo) --- */
.deckwrap{ padding:6px 0 4px; }
.deckhead{ display:flex; align-items:center; justify-content:space-between; margin:0 0 14px; }
.deckhead .eyebrow{ margin:0; }
.deckhead .dcount{ font-size:12px; color:var(--fg-low); letter-spacing:.04em; font-variant-numeric:tabular-nums; }
.pdeck{ position:relative; border:1px solid var(--bd); background:var(--ink); overflow:hidden; }
.ptrack{ display:flex; transition:transform .5s cubic-bezier(.6,.02,.15,1); }
.slide{ flex:0 0 100%; aspect-ratio:16/9; position:relative; padding:clamp(26px,4.4vw,60px);
  display:flex; flex-direction:column; justify-content:center; color:#fff;
  background:radial-gradient(120% 120% at 12% 0%, #1c3a86 0%, #16233a 62%);
  background-image:radial-gradient(circle, rgba(255,255,255,.05) 1px, transparent 1px), radial-gradient(120% 120% at 12% 0%, #1c3a86 0%, #16233a 62%);
  background-size:22px 22px, 100% 100%; }
.slide .snum{ position:absolute; top:clamp(18px,2.4vw,30px); right:clamp(20px,2.6vw,34px);
  font-size:12px; letter-spacing:.16em; color:rgba(255,255,255,.5); font-variant-numeric:tabular-nums; }
.slide .sk{ font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:#8fb0f0; margin-bottom:16px; }
.slide .stt{ font-family:'Marcellus',Georgia,serif; font-weight:400; line-height:1.08;
  font-size:clamp(24px,3.6vw,46px); letter-spacing:.01em; max-width:16ch; }
.slide .stt em{ color:#8fb0f0; font-style:italic; }
.slide .ssub{ font-size:clamp(14px,1.5vw,18px); line-height:1.55; color:rgba(255,255,255,.78); margin-top:18px; max-width:44ch; }
.slide .slist{ margin-top:22px; display:flex; flex-direction:column; gap:11px; max-width:52ch; }
.slide .slist span{ display:flex; gap:12px; align-items:baseline; font-size:clamp(13px,1.4vw,16.5px); color:rgba(255,255,255,.9); }
.slide .slist span b{ color:#8fb0f0; font-weight:700; font-variant-numeric:tabular-nums; flex:none; }
.slide.cover{ background:radial-gradient(130% 130% at 80% 100%, #234aa0 0%, #101b30 60%); }
.slide.cover .stt{ font-size:clamp(28px,4.6vw,58px); max-width:18ch; }
.slide.end{ align-items:flex-start; }
.slide.end .cta-slide{ margin-top:24px; display:inline-flex; align-items:center; gap:9px; font-size:14px; font-weight:600;
  color:#0b1220; background:#8fb0f0; padding:12px 20px; }
.slide .row3{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:26px; }
.slide .row3 .m{ border:1px solid rgba(255,255,255,.16); padding:16px 15px; }
.slide .row3 .m b{ display:block; font-family:'Marcellus',serif; font-size:17px; color:#fff; margin-bottom:5px; }
.slide .row3 .m span{ font-size:12.5px; color:rgba(255,255,255,.66); line-height:1.45; }
.pnav{ position:absolute; bottom:clamp(16px,2.2vw,26px); width:42px; height:42px; border:1px solid rgba(255,255,255,.28);
  background:rgba(255,255,255,.06); color:#fff; font-size:17px; cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:.16s; backdrop-filter:blur(4px); }
.pnav:hover{ background:rgba(255,255,255,.16); border-color:rgba(255,255,255,.5); }
.pnav[disabled]{ opacity:.28; cursor:default; }
.pnav.next{ right:clamp(18px,2.4vw,28px); }
.pnav.prev{ right:calc(clamp(18px,2.4vw,28px) + 50px); }
.pdots{ position:absolute; bottom:clamp(24px,2.9vw,34px); left:clamp(26px,4.4vw,60px); display:flex; gap:7px; }
.pdots i{ width:7px; height:7px; background:rgba(255,255,255,.3); cursor:pointer; transition:.2s; }
.pdots i.on{ background:#8fb0f0; width:22px; }
.deckhint{ text-align:center; font-size:12px; color:var(--fg-low); margin-top:12px; letter-spacing:.02em; }

/* --- artículo largo: jerarquía --- */
.article .abody h2{ font-family:'Marcellus',Georgia,serif; font-weight:400; color:var(--tx);
  font-size:clamp(23px,2.6vw,30px); line-height:1.2; margin:52px 0 6px; }
.article .abody h2 + .lede{ color:var(--fg); font-size:15px; margin:0 0 20px; }
.article .abody h3{ font-size:15px; font-weight:700; letter-spacing:.02em; color:var(--tx); margin:30px 0 10px; }
.article .abody ul{ list-style:none; margin:0 0 24px; padding:0; }
.article .abody ul li{ position:relative; padding-left:26px; font-size:17px; line-height:1.7; color:#2b3a52; margin-bottom:12px; }
.article .abody ul li::before{ content:""; position:absolute; left:2px; top:12px; width:8px; height:8px; background:var(--royal); }
.article .abody ul li b{ color:var(--tx); }
.article .abody blockquote{ margin:30px 0; padding:6px 0 6px 26px; border-left:3px solid var(--royal);
  font-family:'Marcellus',Georgia,serif; font-size:clamp(20px,2.3vw,26px); line-height:1.4; color:var(--tx); }
.article .abody .keyline{ display:block; font-size:19px; color:var(--tx); font-weight:600; margin:26px 0; }
.article .abody a.inl{ color:var(--royal); font-weight:600; border-bottom:1px solid var(--bd-strong); }

/* --- infográficos de artículo --- */
.fig{ margin:34px 0 12px; }
.fig .figcap{ font-size:12.5px; color:var(--fg-low); margin-top:12px; letter-spacing:.02em; }
.fig .figcap b{ color:var(--fg); font-weight:600; }
/* comparación viejo/nuevo */
.cmp{ display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--bd); }
.cmp .c{ padding:26px 24px; }
.cmp .c.old{ background:#fbf7f6; border-right:1px solid var(--bd); }
.cmp .c.new{ background:#f4f8ff; }
.cmp .ct{ font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; margin-bottom:16px; }
.cmp .old .ct{ color:#a8442f; } .cmp .new .ct{ color:var(--royal); }
.cmp .c h4{ font-family:'Marcellus',serif; font-weight:400; font-size:19px; color:var(--tx); margin-bottom:14px; line-height:1.25; }
.cmp .c p{ font-size:14.5px !important; line-height:1.65 !important; color:var(--fg) !important; margin:0 !important; }
.cmp .c ul{ margin:0; }
.cmp .c ul li{ font-size:14px; padding-left:20px; margin-bottom:9px; line-height:1.55; }
.cmp .c ul li::before{ top:9px; width:6px; height:6px; }
.cmp .old ul li::before{ background:#c56b56; }
/* 3 motores */
.eng3{ border:1px solid var(--bd); background:var(--surface); padding:28px 24px 24px; }
.eng3 .e3grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.eng3 .e3{ border:1px solid var(--bd); border-top:3px solid var(--royal); padding:18px 16px; background:#fbfcfe; }
.eng3 .e3 .en{ font-size:10.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--fg-low); }
.eng3 .e3 h4{ font-family:'Marcellus',serif; font-weight:400; font-size:18px; color:var(--tx); margin:6px 0 8px; }
.eng3 .e3 p{ font-size:13px !important; line-height:1.55 !important; color:var(--fg) !important; margin:0 !important; }
.eng3 .e3.base{ border-top-color:var(--ink); }
.eng3 .e3flow{ display:flex; align-items:center; justify-content:center; gap:14px; margin-top:20px; padding-top:20px; border-top:1px dashed var(--bd-strong); flex-wrap:wrap; }
.eng3 .e3flow .a{ font-size:20px; color:var(--bd-strong); }
.eng3 .e3out{ background:var(--ink); color:#fff; padding:12px 22px; font-family:'Marcellus',serif; font-size:17px; }
/* capas */
.layers{ display:flex; flex-direction:column; gap:0; border:1px solid var(--bd); }
.layers .ly{ display:flex; align-items:center; gap:18px; padding:16px 22px; background:var(--surface); border-bottom:1px solid var(--bd); }
.layers .ly:last-child{ border-bottom:none; }
.layers .ly.channel{ background:#16233a; color:#fff; }
.layers .ly .lyn{ font-family:'Marcellus',serif; font-size:22px; color:var(--royal); width:34px; flex:none; }
.layers .ly.channel .lyn{ color:#8fb0f0; }
.layers .ly .lyx b{ display:block; font-size:15px; font-weight:600; color:var(--tx); margin-bottom:2px; }
.layers .ly.channel .lyx b{ color:#fff; }
.layers .ly .lyx span{ font-size:13px; color:var(--fg); line-height:1.5; }
.layers .ly.channel .lyx span{ color:rgba(255,255,255,.7); }
@media(max-width:600px){
  .cmp,.eng3 .e3grid,.slide .row3{ grid-template-columns:1fr; }
  .cmp .c.old{ border-right:none; border-bottom:1px solid var(--bd); }
  .slide{ aspect-ratio:auto; min-height:78vw; }
}

/* --- índice blog: sección Fundamentos --- */
.fundgrid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.fundcard{ display:grid; grid-template-columns:230px 1fr; border:1px solid var(--bd); background:var(--surface); transition:.2s; }
.fundcard:hover{ border-color:var(--bd-strong); box-shadow:var(--shadow-lift); transform:translateY(-2px); }
.fundcard .fthumb{ position:relative; padding:22px 20px; color:#fff; display:flex; flex-direction:column; justify-content:flex-end; min-height:180px;
  background:radial-gradient(120% 120% at 15% 0%, #1c3a86 0%, #16233a 64%);
  background-image:radial-gradient(circle, rgba(255,255,255,.06) 1px, transparent 1px), radial-gradient(120% 120% at 15% 0%, #1c3a86 0%, #16233a 64%);
  background-size:20px 20px, 100% 100%; }
.fundcard .fthumb .fn{ position:absolute; top:18px; left:20px; font-family:'Marcellus',serif; font-size:30px; color:rgba(255,255,255,.9); }
.fundcard .fthumb .fk{ position:absolute; top:24px; right:20px; font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#8fb0f0; }
.fundcard .fthumb b{ font-family:'Marcellus',serif; font-weight:400; font-size:19px; line-height:1.2; letter-spacing:.01em; }
.fundcard .fthumb .fdeck{ font-size:11px; color:rgba(255,255,255,.62); margin-top:10px; letter-spacing:.02em; }
.fundcard .fbody{ padding:22px 22px; display:flex; flex-direction:column; }
.fundcard .bmeta{ display:flex; align-items:center; gap:10px; font-size:11px; color:var(--fg-low); }
.fundcard .bmeta .btag{ font-size:11px; }
.fundcard .bmeta .sep{ width:3px; height:3px; background:var(--bd-strong); border-radius:50%; flex:none; }
.fundcard .fbody p{ font-size:14px; line-height:1.6; color:var(--fg); margin:12px 0 16px; }
.fundcard .fbody .brd{ margin-top:auto; font-size:13px; font-weight:600; color:var(--royal); }
@media(max-width:820px){ .fundgrid{ grid-template-columns:1fr; } }
@media(max-width:520px){ .fundcard{ grid-template-columns:1fr; } .fundcard .fthumb{ min-height:120px; } }
