/* ============================================================
   NAVIGALIUM — Hoja de estilos (dirección visual v2: editorial-técnico)
   Schibsted Grotesk (display) · Hanken Grotesk (texto) · JetBrains Mono (datos)
   ============================================================ */

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }

:root{
  --paper:#ffffff;
  --mist:#F4F7FB;
  --ink:#1B2230;
  --ink-2:#586072;
  --ink-soft:#646C7B;
  --line:#E7EBF1;
  --line-2:#DCE3EC;
  --blue:#4A72A8;
  --blue-deep:#3A5F90;
  --blue-soft:#6E93C4;
  --blue-lt:#D8E4F5;
  --blue-ghost:#EDF3FB;
  --dark:#161B24;
  --dark-2:#1E2530;
  --disp:'Schibsted Grotesk',system-ui,sans-serif;
  --body:'Hanken Grotesk',system-ui,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --ease:cubic-bezier(.22,.68,.18,1);
  --gap:clamp(92px,11vw,160px);
  --maxw:1240px;
  /* alias de variables de producción (las usan estilos en línea de las páginas) */
  --accent:#4A72A8; --accent-dk:#3A5F90; --accent-lt:#D8E4F5;
  --anthracite:#1B2230; --text:#1B2230; --muted:#646C7B;
  --border:#E7EBF1; --surface:#F4F7FB; --surface2:#EDF1F7;
  --white:#ffffff; --bg:#ffffff; --radius:14px; --radius-lg:18px; --transition:.2s ease;
}

html{ scroll-behavior:smooth; }
body{ font-family:var(--body); color:var(--ink); background:var(--paper); line-height:1.62; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
a{ color:inherit; text-decoration:none; }
img{ display:block; max-width:100%; }
::selection{ background:var(--blue); color:#fff; }
::-webkit-scrollbar{ width:10px; }
::-webkit-scrollbar-track{ background:#eef1f6; }
::-webkit-scrollbar-thumb{ background:#c4cedd; border-radius:6px; }

.container,.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 40px; }
@media(max-width:680px){ .container,.wrap{ padding:0 22px; } }

h1,h2,h3{ font-family:var(--disp); font-weight:600; letter-spacing:-.03em; line-height:1.04; }
.accent{ color:var(--blue); }

/* Kicker / etiqueta de sección en mono */
.kicker{ display:inline-flex; align-items:center; gap:11px; font-family:var(--mono); font-size:16px; font-weight:500; letter-spacing:.13em; text-transform:uppercase; color:var(--blue-deep); margin-bottom:22px; }
.kicker::before{ content:""; width:24px; height:2px; background:var(--blue); border-radius:2px; flex:0 0 auto; }
.kicker .ix{ color:var(--blue); font-weight:600; }

/* ===================== NAV + MEGA MENÚ ===================== */
nav{ position:sticky; top:0; z-index:200; background:rgba(255,255,255,.86); backdrop-filter:saturate(1.4) blur(14px); -webkit-backdrop-filter:saturate(1.4) blur(14px); border-bottom:1px solid var(--line); }
.nav-inner{ display:flex; align-items:center; justify-content:space-between; height:90px; gap:18px; }
.logo-img-link{ display:flex; align-items:center; flex-shrink:0; }
.logo-img{ height:58px; width:auto; }
.nav-links{ display:flex; gap:1px; list-style:none; align-items:center; }
.nav-links>li{ position:relative; }
.nav-links>li>a,.nav-links>li>button{ font-family:var(--disp); color:var(--ink); font-size:16px; font-weight:600; letter-spacing:-.01em; padding:9px 15px; border-radius:9px; display:flex; align-items:center; gap:6px; background:none; border:none; cursor:pointer; white-space:nowrap; transition:color .2s,background .2s; }
.nav-links>li>a:hover,.nav-links>li>button:hover,.nav-links>li:hover>button{ color:var(--blue); background:var(--blue-ghost); }
.nav-links>li>a.active{ color:var(--blue); }
.nav-chevron{ width:6px; height:6px; border-right:1.6px solid currentColor; border-bottom:1.6px solid currentColor; transform:rotate(45deg); margin-top:-3px; opacity:.65; transition:transform .2s; display:inline-block; }
.nav-links>li:hover .nav-chevron{ transform:rotate(225deg); margin-top:2px; }
.dropdown{ position:absolute; top:100%; left:0; padding-top:12px; opacity:0; pointer-events:none; transform:translateY(-6px); transition:.18s var(--ease); z-index:210; min-width:250px; }
.nav-links>li:hover .dropdown,.nav-links>li:focus-within .dropdown{ opacity:1; pointer-events:all; transform:none; }
.dropdown-inner{ background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:0 24px 60px -22px rgba(27,34,48,.26); padding:9px; }
.dropdown a{ display:block; padding:9px 14px; font-size:16px; font-weight:600; color:var(--ink); border-radius:9px; white-space:nowrap; transition:.18s; }
.dropdown a:hover{ background:var(--blue-ghost); color:var(--blue); }
/* mega */
.dropdown--mega{ min-width:640px; }
.mega-inner{ padding:14px; }
.mega-inner .mega-feature{ display:flex; flex-direction:column; gap:3px; padding:15px 18px; border-radius:13px; background:var(--blue-ghost); border:1px solid #cfe0f5; margin-bottom:12px; transition:background .18s; }
.mega-inner .mega-feature:hover{ background:#cfe0f5; }
.mega-inner .mega-feature strong{ font-family:var(--disp); font-size:17px; font-weight:700; color:var(--blue-deep); letter-spacing:-.015em; }
.mega-inner .mega-feature span{ font-size:16px; font-weight:500; color:var(--ink-soft); }
.mega-cols{ display:grid; grid-template-columns:repeat(3,1fr); gap:0 14px; }
.mega-title{ font-family:var(--mono); font-size:16px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--blue-deep); padding:12px 12px 7px; margin:0 6px 4px; border-bottom:1px solid var(--blue-ghost); }
.mega-inner .mega-col a{ display:block; padding:9px 12px; font-size:16px; font-weight:600; color:var(--ink); border-radius:8px; white-space:nowrap; transition:.18s; }
.mega-inner .mega-col a:hover{ background:var(--blue-ghost); color:var(--blue); }
.nav-cta{ display:flex; align-items:center; gap:14px; flex-shrink:0; }
.nav-cta-btn{ display:inline-flex; align-items:center; gap:8px; background:var(--ink); color:#fff; font-family:var(--disp); font-weight:600; font-size:16px; padding:12px 20px; border-radius:11px; transition:transform .25s var(--ease),background .25s; }
.nav-cta-btn:hover{ background:var(--blue); transform:translateY(-2px); }
.language-switcher{ display:inline-flex; gap:2px; padding:4px; border:1px solid var(--line); border-radius:999px; background:#fbfcfe; }
.language-switcher a{ font-family:var(--mono); min-width:30px; height:25px; display:inline-flex; align-items:center; justify-content:center; border-radius:999px; font-size:16px; font-weight:500; color:var(--ink-soft); }
.language-switcher a.active{ color:var(--blue-deep); background:#fff; box-shadow:0 1px 4px rgba(27,34,48,.1); }
.mobile-menu-btn{ display:none; background:none; border:none; cursor:pointer; padding:8px; color:var(--ink); font-size:22px; }
.mobile-nav{ display:none; }
@media(max-width:1080px){
  .nav-links,.language-switcher,.nav-cta-btn{ display:none; }
  .mobile-menu-btn{ display:block; }
  .logo-img{ height:50px; }
  .nav-inner{ height:78px; }
  .mobile-nav.open{ display:block; position:fixed; top:78px; left:0; right:0; bottom:0; background:#fff; border-top:1px solid var(--line); overflow-y:auto; padding:18px; z-index:199; }
  .mobile-nav a{ display:block; padding:13px 16px; font-family:var(--disp); font-size:16px; font-weight:600; color:var(--ink); border-radius:10px; }
  .mobile-nav a:hover{ background:var(--mist); }
  .mobile-section{ font-family:var(--mono); font-size:16px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); padding:16px 16px 6px; }
  .mobile-cta{ margin-top:16px; }
  .mobile-cta a{ background:var(--blue); color:#fff; text-align:center; }
}

/* ===================== HERO ===================== */
.hero{ position:relative; padding:74px 0 84px; overflow:hidden; }
.hero::before{ content:""; position:absolute; width:760px; height:760px; top:-340px; right:-220px; border-radius:50%; background:radial-gradient(circle,rgba(110,147,196,.30),rgba(110,147,196,0) 66%); z-index:0; pointer-events:none; }
.hero::after{ content:""; position:absolute; inset:0; z-index:0; pointer-events:none; background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px); background-size:64px 64px; -webkit-mask-image:radial-gradient(120% 92% at 82% -12%,#000 0%,transparent 58%); mask-image:radial-gradient(120% 92% at 82% -12%,#000 0%,transparent 58%); opacity:.55; }
.hero>.container{ position:relative; z-index:2; }
.hero-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:60px; align-items:start; }
.hero-eyebrow{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px; font-family:var(--mono); font-size:15px; letter-spacing:.03em; text-transform:uppercase; color:var(--blue-deep); margin-bottom:28px; max-width:100%; }
.hero-pip{ width:7px; height:7px; border-radius:50%; background:var(--blue); box-shadow:0 0 0 0 rgba(74,114,168,.5); animation:pip 2.4s infinite; flex:0 0 auto; }
@keyframes pip{ 0%{box-shadow:0 0 0 0 rgba(74,114,168,.45)} 70%{box-shadow:0 0 0 12px rgba(74,114,168,0)} 100%{box-shadow:0 0 0 0 rgba(74,114,168,0)} }
.hero h1{ font-size:clamp(42px,5.6vw,76px); font-weight:600; line-height:1.0; letter-spacing:-.035em; max-width:14ch; color:var(--ink); }
.hero h1 .u{ position:relative; color:var(--blue); white-space:nowrap; }
.hero h1 .u::after{ content:""; position:absolute; left:0; right:0; bottom:-.04em; height:.11em; border-radius:99px; background:var(--blue); transform:scaleX(0); transform-origin:left; animation:draw 1s var(--ease) .8s forwards; }
@keyframes draw{ to{ transform:scaleX(1); } }
.hero-lede{ font-size:18.5px; color:var(--ink-2); max-width:46ch; margin:28px 0 30px; line-height:1.6; }
.hero-ticks{ display:flex; flex-direction:column; gap:12px; margin:0 0 30px; list-style:none; }
.hero-ticks li{ display:flex; align-items:flex-start; gap:12px; font-size:16px; color:var(--ink-2); }
.hero-ticks .ck{ flex:0 0 auto; width:22px; height:22px; border-radius:7px; background:var(--blue-ghost); color:var(--blue); display:flex; align-items:center; justify-content:center; font-size:16px; font-weight:700; margin-top:1px; }
.hero-meta{ display:flex; align-items:center; gap:14px; font-family:var(--mono); font-size:16px; color:var(--ink-soft); letter-spacing:.04em; flex-wrap:wrap; }
.hero-meta b{ color:var(--blue-deep); font-weight:600; }
.hero-meta .sep{ width:1px; height:14px; background:var(--line-2); display:inline-block; }

/* tarjeta de formulario */
.formcard{ position:relative; background:#fff; border:1px solid var(--line); border-radius:20px; padding:8px; box-shadow:0 40px 90px -50px rgba(27,34,48,.4); }
.formcard-in{ border:1px solid var(--line); border-left:3px solid var(--blue); border-radius:15px; padding:26px 26px 22px; background:linear-gradient(180deg,#fbfcfe,#fff); }
.fc-tag{ font-family:var(--mono); font-size:16px; letter-spacing:.14em; text-transform:uppercase; color:var(--blue); margin-bottom:12px; }
.fc-title{ font-family:var(--disp); font-weight:700; font-size:21px; letter-spacing:-.02em; line-height:1.1; color:var(--ink); }
.fc-sub{ font-size:16px; color:var(--ink-soft); margin:7px 0 18px; line-height:1.5; }
.fc-micro{ font-family:var(--mono); font-size:16px; color:var(--ink-soft); text-align:center; margin-top:12px; letter-spacing:.02em; }
@media(max-width:980px){ .hero-grid{ grid-template-columns:1fr; gap:44px; } .formcard{ max-width:520px; } .hero h1{ max-width:18ch; } }

/* hero de páginas internas (clases de producción) → look concepto */
.hero-copy{ align-self:start; }
.hero-eyebrow{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px; font-family:var(--mono); font-size:15px; letter-spacing:.03em; text-transform:uppercase; color:var(--blue-deep); margin-bottom:26px; max-width:100%; }
.hero-eyebrow .dot{ width:7px; height:7px; border-radius:50%; background:var(--blue); flex:0 0 auto; box-shadow:0 0 0 0 rgba(74,114,168,.5); animation:pip 2.4s infinite; }
.hero-eyebrow span{ font-family:var(--mono); color:var(--blue-deep); letter-spacing:.06em; }
.hero-sub{ font-size:18px; color:var(--ink-2); max-width:50ch; margin:24px 0 26px; line-height:1.6; }
.hero-sub2{ font-size:16px; color:var(--ink-soft); max-width:50ch; margin-bottom:28px; line-height:1.6; }
.hero-actions{ display:flex; gap:14px; flex-wrap:wrap; }
.hero-trust{ display:flex; flex-direction:column; gap:11px; margin:0 0 28px; }
.trust-item{ display:flex; align-items:flex-start; gap:12px; font-size:16px; color:var(--ink-2); }
.trust-check{ flex:0 0 auto; width:22px; height:22px; border-radius:7px; background:var(--blue-ghost); color:var(--blue); display:flex; align-items:center; justify-content:center; font-size:16px; font-weight:700; margin-top:1px; }
.hero-proof,.hero-proof-row{ display:flex; flex-wrap:wrap; gap:14px 22px; padding-top:24px; border-top:1px solid var(--line); margin-top:8px; }
.proof-item{ display:flex; align-items:center; gap:9px; font-size:16px; color:var(--ink-2); }
.proof-icon{ width:34px; height:34px; border-radius:9px; background:var(--blue-ghost); display:flex; align-items:center; justify-content:center; font-size:16px; }
.proof-divider{ width:1px; height:26px; background:var(--line); }
.hero-form-wrap{ align-self:start; }
.hero-form-card{ background:#fff; border:1px solid var(--line); border-left:3px solid var(--blue); border-radius:18px; padding:28px; box-shadow:0 40px 90px -50px rgba(27,34,48,.4); }
.hfc-header{ margin-bottom:20px; padding-bottom:16px; border-bottom:1px solid var(--line); }

/* formulario real (.ngl-form lo inyecta contact-form.js) */
.ngl-form{ display:flex; flex-direction:column; gap:14px; }
.ngl-form form{ display:flex; flex-direction:column; gap:14px; }
.ngl-form label{ font-family:var(--mono); font-size:16px; font-weight:500; letter-spacing:.08em; text-transform:uppercase; color:#5f6775; margin-bottom:3px; display:block; }
.ngl-form input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.ngl-form select,.ngl-form textarea{ width:100%; min-height:42px; border:0; border-bottom:1.5px solid #cdd6e3; background:transparent; padding:8px 0 9px; font:inherit; font-size:16px; color:var(--ink); outline:none; border-radius:0; transition:border-color .2s; }
.ngl-form textarea{ min-height:80px; resize:vertical; }
.ngl-form input:focus,.ngl-form select:focus,.ngl-form textarea:focus{ border-bottom-color:var(--blue); }
.ngl-form input::placeholder,.ngl-form textarea::placeholder{ color:#b3bcc9; }
.ngl-form button,.ngl-form input[type=submit]{ margin-top:6px; width:100%; border:0; background:var(--ink); color:#fff; font-family:var(--disp); font-weight:600; font-size:16px; padding:15px; border-radius:12px; cursor:pointer; transition:background .25s,transform .25s var(--ease); }
.ngl-form button:hover,.ngl-form input[type=submit]:hover{ background:var(--blue); transform:translateY(-2px); }

/* entrada escalonada */
.rise{ opacity:0; transform:translateY(26px); animation:rise .85s var(--ease) forwards; }
.d1{animation-delay:.08s}.d2{animation-delay:.18s}.d3{animation-delay:.30s}.d4{animation-delay:.42s}
@keyframes rise{ to{ opacity:1; transform:none; } }

/* ===================== MARCAS ===================== */
.brands{ padding:54px 0 60px; border-top:1px solid var(--line); }
.brands-h{ font-family:var(--mono); font-size:16px; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); text-align:center; margin-bottom:34px; }
.marq{ overflow:hidden; position:relative; -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent); mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent); }
.marq-track{ display:flex; align-items:center; gap:76px; animation:scroll 36s linear infinite; width:max-content; }
.marq:hover .marq-track{ animation-play-state:paused; }
.marq-track img{ height:36px; width:auto; object-fit:contain; filter:grayscale(1); opacity:.55; transition:filter .3s,opacity .3s; }
.marq-track img:hover{ filter:none; opacity:1; }
@keyframes scroll{ to{ transform:translateX(-50%); } }
@media(max-width:640px){ .brands{ display:none; } }

/* ===================== SECCIONES ===================== */
.sec{ padding:var(--gap) 0; }
.sec-tight{ padding-top:0; }
.sec-head{ max-width:760px; }
h2.title{ font-size:clamp(32px,4.4vw,56px); font-weight:600; letter-spacing:-.03em; }
h2.title .b{ color:var(--blue); }
.sec-lead{ font-size:18px; color:var(--ink-2); margin-top:22px; max-width:58ch; line-height:1.6; }
.reveal{ opacity:0; transform:translateY(34px); transition:opacity .8s var(--ease),transform .8s var(--ease); }
.reveal.in{ opacity:1; transform:none; }

/* universo */
.uni-top{ display:grid; grid-template-columns:1fr auto; gap:30px; align-items:end; }
.price{ font-family:var(--disp); font-size:18px; font-weight:500; color:var(--ink-2); white-space:nowrap; display:inline-flex; align-items:baseline; gap:8px; }
.price b{ font-size:40px; color:var(--blue); letter-spacing:-.03em; }
.feats{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:50px; }
.feat{ background:#fff; border:1px solid var(--line); border-radius:18px; padding:26px 24px 24px; transition:transform .35s var(--ease),border-color .35s,box-shadow .35s; }
.feat:hover{ transform:translateY(-6px); border-color:var(--line-2); box-shadow:0 28px 54px -34px rgba(27,34,48,.3); }
.feat .ic{ display:flex; width:44px; height:44px; border-radius:12px; background:var(--blue-ghost); align-items:center; justify-content:center; font-size:20px; margin-bottom:18px; }
.feat .fi{ font-family:var(--mono); font-size:16px; color:var(--blue); letter-spacing:.1em; float:right; }
.feat h3{ font-size:17px; font-weight:700; margin-bottom:7px; letter-spacing:-.01em; }
.feat p{ font-size:16px; color:var(--ink-soft); line-height:1.6; }
@media(max-width:900px){ .feats{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .feats{ grid-template-columns:1fr; } .uni-top{ grid-template-columns:1fr; } }

/* ledger resultados */
.ledger{ display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); border-radius:20px; overflow:hidden; margin-top:50px; }
.cell{ padding:48px 36px 40px; border-right:1px solid var(--line); background:#fff; transition:background .3s; }
.cell:last-child{ border-right:none; }
.cell:hover{ background:var(--mist); }
.cell .lab{ font-family:var(--mono); font-size:16px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:22px; }
.cell .num{ font-family:var(--disp); font-weight:600; font-size:clamp(44px,5vw,66px); line-height:.92; letter-spacing:-.04em; color:var(--ink); }
.cell .num .b{ color:var(--blue); }
.cell .num .unit{ font-size:.34em; color:var(--ink-soft); letter-spacing:0; margin-left:4px; font-weight:500; }
.cell .who{ display:flex; align-items:center; gap:12px; margin-top:26px; }
.cell .who img{ height:22px; width:auto; filter:grayscale(1); opacity:.6; transition:.35s; }
.cell:hover .who img{ filter:none; opacity:1; }
.cell .who span{ font-size:16px; font-weight:600; color:var(--ink-2); }
.cell .desc{ font-size:16px; color:var(--ink-soft); margin-top:14px; line-height:1.6; }
@media(max-width:760px){ .ledger{ grid-template-columns:1fr; } .cell{ border-right:none; border-bottom:1px solid var(--line); } .cell:last-child{ border-bottom:none; } }

/* diferenciadores */
.why{ background:var(--mist); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.why-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:18px; overflow:hidden; margin-top:50px; }
.why-c{ background:var(--mist); padding:30px 26px; }
.why-c .n{ font-family:var(--mono); font-size:16px; color:var(--blue); letter-spacing:.06em; }
.why-c h3{ font-size:16px; font-weight:700; margin:16px 0 8px; letter-spacing:-.01em; }
.why-c p{ font-size:16px; color:var(--ink-2); line-height:1.6; }
@media(max-width:880px){ .why-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .why-grid{ grid-template-columns:1fr; } }

/* servicios */
.svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:50px; }
.svc{ display:block; background:#fff; border:1px solid var(--line); border-radius:18px; padding:26px 24px; transition:transform .35s var(--ease),border-color .35s,box-shadow .35s; }
.svc:hover{ transform:translateY(-6px); border-color:var(--line-2); box-shadow:0 28px 54px -34px rgba(27,34,48,.3); }
.svc .ic{ display:flex; width:44px; height:44px; border-radius:12px; background:var(--blue-ghost); align-items:center; justify-content:center; font-size:20px; margin-bottom:16px; }
.svc h3{ font-size:17px; font-weight:700; margin-bottom:7px; letter-spacing:-.01em; }
.svc p{ font-size:16px; color:var(--ink-soft); line-height:1.6; }
.svc .more{ font-family:var(--mono); font-size:16px; color:var(--blue); letter-spacing:.05em; margin-top:14px; display:inline-block; }
@media(max-width:900px){ .svc-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .svc-grid{ grid-template-columns:1fr; } }

/* equipo */
.team{ background:var(--dark); color:#fff; border-radius:26px; padding:64px 56px; position:relative; overflow:hidden; }
.team::before{ content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px); background-size:60px 60px; -webkit-mask-image:radial-gradient(120% 100% at 12% 0%,#000,transparent 60%); mask-image:radial-gradient(120% 100% at 12% 0%,#000,transparent 60%); pointer-events:none; }
.team>*{ position:relative; z-index:2; }
.team .kicker{ color:var(--blue-soft); }
.team .kicker::before{ background:var(--blue-soft); }
.team-grid{ display:grid; grid-template-columns:1fr auto; gap:56px; align-items:center; }
.team h2{ color:#fff; max-width:15ch; font-size:clamp(30px,4vw,52px); }
.team h2 .b{ color:var(--blue-soft); }
.team p{ color:#aab3c2; font-size:16.5px; margin:20px 0 28px; max-width:42ch; line-height:1.65; }
.team-link{ display:inline-flex; align-items:center; gap:9px; font-family:var(--disp); font-weight:600; font-size:16px; color:#fff; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); padding:13px 22px; border-radius:12px; transition:.25s var(--ease); }
.team-link:hover{ background:#fff; color:var(--dark); transform:translateY(-2px); }
.team-photo{ width:clamp(300px,40vw,470px); }
.team-photo img{ width:100%; height:auto; }
@media(max-width:860px){ .team-grid{ grid-template-columns:1fr; gap:40px; justify-items:start; } .team{ padding:48px 30px; } .team-photo{ width:100%; max-width:420px; } }

/* FAQ */
.faq{ display:flex; flex-direction:column; gap:10px; margin-top:46px; max-width:860px; }
.faq-item{ border:1px solid var(--line); border-radius:14px; overflow:hidden; transition:box-shadow .2s,border-color .2s; }
.faq-item.open{ border-color:var(--line-2); box-shadow:0 10px 30px -18px rgba(27,34,48,.25); }
.faq-q{ width:100%; background:none; border:none; text-align:left; padding:22px 26px; font-family:var(--disp); font-size:17px; font-weight:600; color:var(--ink); cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:16px; }
.faq-q:hover{ color:var(--blue); }
.faq-chevron{ flex:0 0 auto; width:22px; height:22px; border-radius:50%; border:1px solid var(--line-2); display:flex; align-items:center; justify-content:center; font-size:16px; color:var(--ink-soft); transition:.2s; }
.faq-item.open .faq-chevron{ transform:rotate(180deg); border-color:var(--blue); background:var(--blue); color:#fff; }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .35s var(--ease),padding .35s var(--ease); padding:0 26px; }
.faq-item.open .faq-a{ max-height:260px; padding:0 26px 22px; }
.faq-a p{ font-size:16px; color:var(--ink-2); line-height:1.7; }

/* cierre / contacto CTA */
.close{ text-align:center; padding:var(--gap) 0; }
.close h2{ font-size:clamp(38px,6vw,84px); font-weight:600; letter-spacing:-.035em; margin:18px auto 16px; max-width:17ch; line-height:1.0; }
.close h2 .b{ color:var(--blue); }
.close .sub{ color:var(--ink-2); font-size:19px; margin-bottom:36px; }
.btn-pri{ display:inline-flex; align-items:center; gap:10px; background:var(--blue); color:#fff; font-family:var(--disp); font-weight:600; font-size:17px; padding:19px 36px; border-radius:14px; box-shadow:0 18px 38px -16px rgba(74,114,168,.8); transition:transform .3s var(--ease),background .3s; }
.btn-pri:hover{ transform:translateY(-3px); background:var(--blue-deep); }
.btn-pri .arr{ transition:transform .3s var(--ease); }
.btn-pri:hover .arr{ transform:translateX(5px); }
.scar{ font-family:var(--mono); font-size:16px; color:var(--ink-soft); margin-top:24px; letter-spacing:.04em; }
.scar b{ color:var(--blue-deep); }

/* partners */
.partners{ padding:60px 0; border-top:1px solid var(--line); }
.partners-h{ font-family:var(--mono); font-size:16px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:30px; }
.partners-row{ display:flex; flex-wrap:wrap; align-items:center; gap:38px 48px; }
.partners-row img{ height:30px; width:auto; filter:grayscale(1); opacity:.6; transition:.3s; }
.partners-row img:hover{ filter:none; opacity:1; }

/* footer */
footer{ background:var(--dark); color:#fff; padding:64px 0 30px; }
.footer-main{ display:grid; grid-template-columns:minmax(280px,1fr) minmax(380px,1.3fr) minmax(200px,.7fr); gap:48px; align-items:start; }
.footer-brand img{ height:54px; width:auto; filter:brightness(0) invert(1); opacity:.95; margin-bottom:16px; }
.footer-brand p{ color:#9aa3b2; font-size:16px; line-height:1.65; max-width:380px; }
.footer-contact{ margin-top:16px; font-size:16px; color:#aab3c2; line-height:1.7; }
.footer-contact a{ color:#cdd6e3; }
.footer-title{ font-family:var(--mono); font-size:16px; letter-spacing:.12em; text-transform:uppercase; color:#7e8aa0; margin-bottom:16px; }
.footer-links{ display:grid; grid-template-columns:repeat(2,1fr); gap:9px 24px; }
.footer-links a{ font-size:16px; color:#cdd6e3; transition:.2s; }
.footer-links a:hover{ color:#fff; }
.footer-act p{ color:#9aa3b2; font-size:16px; line-height:1.6; margin-bottom:14px; }
.footer-phone{ display:block; font-family:var(--disp); color:#fff; font-size:26px; font-weight:700; letter-spacing:-.02em; margin-bottom:14px; }
.footer-bottom{ margin-top:48px; padding-top:24px; border-top:1px solid rgba(255,255,255,.12); display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-family:var(--mono); font-size:16px; letter-spacing:.03em; color:#7e8aa0; }
.footer-bottom a{ color:#9aa3b2; }
@media(max-width:980px){ .footer-main{ grid-template-columns:1fr 1fr; } .footer-act{ grid-column:1/-1; } }
@media(max-width:560px){ .footer-main{ grid-template-columns:1fr; gap:32px; } .footer-bottom{ flex-direction:column; } }

/* =========================================================
   COMPONENTES DE PÁGINAS INTERNAS (mismo lenguaje del concepto)
   Cubre las clases que usan servicios, clientes, precios, blog…
   ========================================================= */

/* botones */
.btn{ display:inline-flex; align-items:center; gap:8px; padding:14px 26px; font-family:var(--disp); font-size:16px; font-weight:600; border-radius:12px; border:none; cursor:pointer; text-decoration:none; white-space:nowrap; transition:transform .25s var(--ease),background .25s,border-color .25s,color .25s; }
.btn-primary{ background:var(--blue); color:#fff; box-shadow:0 16px 34px -18px rgba(74,114,168,.8); }
.btn-primary:hover{ background:var(--blue-deep); transform:translateY(-2px); }
.btn-ghost{ background:transparent; border:1px solid var(--line-2); color:var(--ink); }
.btn-ghost:hover{ border-color:var(--blue); color:var(--blue); background:var(--blue-ghost); }
.btn-lg{ padding:18px 34px; font-size:17px; border-radius:14px; }

/* secciones genéricas */
.section{ padding:var(--gap) 0; }
.section-sm{ padding:clamp(56px,8vw,100px) 0; }
.bg-surface{ background:var(--mist); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.section-header{ max-width:760px; margin-bottom:clamp(40px,5vw,56px); }
.section-title{ font-family:var(--disp); font-size:clamp(30px,4vw,50px); font-weight:600; letter-spacing:-.03em; line-height:1.06; color:var(--ink); margin:0; }
.section-sub{ font-size:18px; color:var(--ink-2); line-height:1.6; max-width:60ch; margin-top:20px; }
/* etiqueta .tag = kicker editorial */
.tag{ display:inline-flex; align-items:center; gap:11px; font-family:var(--mono); font-size:16px; font-weight:500; letter-spacing:.13em; text-transform:uppercase; color:var(--blue-deep); margin-bottom:20px; background:none; border:none; padding:0; border-radius:0; }
.tag::before{ content:""; width:24px; height:2px; background:var(--blue); border-radius:2px; flex:0 0 auto; }

/* grids de tarjetas */
.cards-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:16px; }
.services-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.card{ background:#fff; border:1px solid var(--line); border-radius:18px; padding:28px 26px; text-decoration:none; color:inherit; transition:transform .35s var(--ease),border-color .35s,box-shadow .35s; }
.card:hover{ transform:translateY(-6px); border-color:var(--line-2); box-shadow:0 28px 54px -34px rgba(27,34,48,.3); }
.card-icon{ display:inline-flex; width:46px; height:46px; border-radius:12px; background:var(--blue-ghost); align-items:center; justify-content:center; font-size:21px; margin-bottom:16px; }
.card h3{ font-size:17.5px; font-weight:700; letter-spacing:-.01em; margin-bottom:8px; color:var(--ink); }
.card p{ font-size:16px; color:var(--ink-soft); line-height:1.6; }
@media(max-width:1024px){ .services-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:640px){ .services-grid{ grid-template-columns:1fr; } }

/* universo (home interno) en claro */
.home-universe{ background:#fff !important; color:var(--ink) !important; border:1px solid var(--line); border-radius:24px; padding:clamp(32px,4vw,52px); }
.home-universe h2{ color:var(--ink) !important; }
.home-universe p{ color:var(--ink-2) !important; }
.home-universe-panel{ background:var(--mist) !important; border:1px solid var(--line) !important; border-radius:16px; }
.home-universe-panel strong{ color:var(--ink) !important; }
.home-universe-panel small{ color:var(--ink-2) !important; }
.home-universe-list span{ color:var(--ink-2) !important; }

/* pasos */
.steps-wrapper{ border:1px solid var(--line); border-radius:18px; overflow:hidden; }
.steps{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.step{ padding:34px 28px; background:#fff; position:relative; }
.step:not(:last-child)::after{ content:""; position:absolute; right:0; top:30px; bottom:30px; width:1px; background:var(--line); }
.step-num{ font-family:var(--mono); font-size:16px; font-weight:600; letter-spacing:.08em; color:var(--blue); margin-bottom:14px; }
.step h3{ font-size:17px; font-weight:700; margin-bottom:9px; color:var(--ink); }
.step p{ font-size:16px; color:var(--ink-soft); line-height:1.6; }
@media(max-width:768px){ .step::after{ display:none; } .step:not(:last-child){ border-bottom:1px solid var(--line); } }

/* caja CTA oscura */
.highlight-box{ background:var(--dark); border:1px solid var(--dark-2); border-radius:22px; padding:clamp(32px,4vw,46px); display:grid; grid-template-columns:1fr auto; gap:32px; align-items:center; }
.highlight-box h3{ font-family:var(--disp); font-size:clamp(22px,2.4vw,28px); font-weight:600; letter-spacing:-.02em; color:#fff; margin-bottom:10px; }
.highlight-box p{ font-size:16px; color:#aab3c2; line-height:1.6; }
.highlight-box .btn{ background:#fff; color:var(--blue); }
.highlight-box .btn:hover{ background:var(--blue-ghost); color:var(--blue-deep); transform:translateY(-2px); }
/* texto del highlight-box SIEMPRE claro sobre el fondo oscuro (incl. dentro de .prose) */
.highlight-box h2,.highlight-box h3,.highlight-box h4,.highlight-box strong,
.prose .highlight-box h2,.prose .highlight-box h3,.prose .highlight-box h4,.prose .highlight-box strong{ color:#fff; }
.highlight-box p,.highlight-box li,.highlight-box span:not(.btn),
.prose .highlight-box p,.prose .highlight-box li{ color:#e6ebf3; }
.highlight-box .btn{ color:var(--blue); }
@media(max-width:640px){ .highlight-box{ grid-template-columns:1fr; } .highlight-box .btn{ width:100%; justify-content:center; } }

/* diff cards */
.diff-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.diff-card{ background:#fff; border:1px solid var(--line); border-radius:18px; padding:28px 26px; }
.diff-card.highlight{ background:var(--blue-ghost); border-color:#cfe0f5; }
.diff-card h3{ font-size:17px; font-weight:700; letter-spacing:-.01em; margin-bottom:10px; color:var(--ink); }
.diff-card p{ font-size:16px; color:var(--ink-2); line-height:1.6; }
@media(max-width:640px){ .diff-grid{ grid-template-columns:1fr; } }

/* listas */
.includes-list,.checklist{ list-style:none; display:flex; flex-direction:column; gap:11px; margin-top:16px; }
.includes-list li,.checklist li{ display:flex; align-items:flex-start; gap:11px; font-size:16px; color:var(--ink-2); line-height:1.5; }
.includes-list li::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--blue); flex:0 0 auto; margin-top:9px; }
.checklist .check{ flex:0 0 auto; width:22px; height:22px; border-radius:7px; background:var(--blue-ghost); color:var(--blue); display:flex; align-items:center; justify-content:center; font-size:16px; font-weight:700; margin-top:1px; }

/* CTA section */
.cta-section{ background:var(--mist); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.cta-box{ text-align:center; max-width:680px; margin:0 auto; padding:var(--gap) 0; }
.cta-box h2{ font-family:var(--disp); font-size:clamp(32px,5vw,56px); font-weight:600; letter-spacing:-.03em; line-height:1.05; margin-bottom:18px; color:var(--ink); }
.cta-box p{ font-size:18px; color:var(--ink-2); line-height:1.6; margin-bottom:34px; }
.cta-meta{ font-family:var(--mono); font-size:16px; color:var(--ink-soft); margin-top:20px; letter-spacing:.03em; }

/* contacto */
.contact-section{ padding:var(--gap) 0; }
.contact-grid{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:56px; align-items:start; }
.contact-title{ font-family:var(--disp); font-size:clamp(34px,5vw,60px); font-weight:600; letter-spacing:-.035em; line-height:1.05; color:var(--ink); margin-bottom:26px; }
.contact-actions{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:30px; }
.contact-details{ display:grid; gap:7px; color:var(--ink-2); font-size:16px; line-height:1.6; }
.contact-details strong{ color:var(--ink); }
.contact-details a{ color:var(--blue); font-weight:600; }
.contact-card{ background:var(--dark); border-radius:20px; padding:34px; color:#fff; margin-bottom:20px; }
.contact-card h3{ font-family:var(--disp); font-size:clamp(22px,3vw,30px); font-weight:600; letter-spacing:-.02em; margin-bottom:12px; color:#fff; }
.contact-card p{ color:#aab3c2; font-size:16px; line-height:1.6; margin-bottom:22px; }
.contact-card .btn{ background:#fff; color:var(--blue); width:100%; justify-content:center; }
.contact-map{ overflow:hidden; border-radius:14px; border:1px solid var(--line); aspect-ratio:16/8; }
.contact-map iframe{ width:100%; height:100%; border:0; display:block; filter:grayscale(.15); }
@media(max-width:1024px){ .contact-grid{ grid-template-columns:1fr; gap:38px; } }

/* FAQ producción (.faq-list) */
.faq-list{ display:flex; flex-direction:column; gap:10px; max-width:860px; }
.faq-list .faq-item{ border:1px solid var(--line); border-radius:14px; overflow:hidden; }
.faq-list .faq-item.open{ border-color:var(--line-2); box-shadow:0 10px 30px -18px rgba(27,34,48,.25); }

/* marquee producción */
.logo-marquee{ overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#fbfcfe; }
.logo-marquee-inner{ padding:30px 0; }
.logo-marquee-head{ text-align:center; margin-bottom:24px; }
.logo-marquee-head h2{ font-family:var(--mono); font-size:16px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); }
.logo-marquee-window{ overflow:hidden; position:relative; }
.logo-track{ display:flex; align-items:center; gap:64px; width:max-content; animation:scroll 36s linear infinite; }
.logo-marquee:hover .logo-track{ animation-play-state:paused; }
.logo-pill{ display:flex; align-items:center; justify-content:center; height:60px; }
.logo-pill img{ max-height:42px; width:auto; filter:grayscale(1); opacity:.55; transition:.3s; }
.logo-pill img:hover{ filter:none; opacity:1; }
@media(max-width:640px){ .logo-marquee{ display:none; } }

/* partner strip producción */
.partner-strip{ padding:60px 0; border-top:1px solid var(--line); background:#fff; }
.partner-strip-head{ margin-bottom:30px; }
.partner-strip .footer-title,.partner-strip-copy{ color:var(--ink-soft); }
.partner-grid{ display:flex; flex-wrap:wrap; align-items:center; gap:32px 44px; }
.partner-card img{ height:30px; width:auto; max-width:150px; object-fit:contain; filter:grayscale(1); opacity:.6; transition:.3s; }
.partner-card:hover img{ filter:none; opacity:1; }

/* footer producción (.footer-main…) en oscuro */
.footer-action{ display:grid; gap:12px; align-content:start; }
.footer-action .btn{ background:var(--blue); color:#fff; }
.footer-brand p{ color:#9aa3b2; }

/* formulario producción (.hfc-* / acumbamail) → look concepto */
.hfc-form{ background:transparent; }
.hfc-title{ font-family:var(--disp); font-weight:700; font-size:20px; letter-spacing:-.02em; text-transform:none; color:var(--ink); }
.hfc-sub{ font-size:16px; color:var(--ink-soft); }
.yourFormCustomContainer input:not([type="submit"]):not([type="hidden"]),
.yourFormCustomContainer select,.hfc-input{ border:0; border-bottom:1.5px solid #cdd6e3; background:transparent; border-radius:0; }
.yourFormCustomContainer input:focus,.yourFormCustomContainer select:focus,.hfc-input:focus{ border-bottom-color:var(--blue); }
.yourButtonCustomStyle,.hfc-submit{ background:var(--ink); border-radius:12px; font-family:var(--disp); font-weight:600; }
.yourButtonCustomStyle:hover,.hfc-submit:hover{ background:var(--blue); }

/* =========================================================
   COMPONENTES ESPECÍFICOS (precios, clientes, blog, universo,
   hosting, equipo, artículo) — mismo lenguaje del concepto
   ========================================================= */
.b{ color:var(--blue); }

/* mobile lang */
.mobile-lang{ display:flex; gap:8px; padding:8px 16px 4px; }
.mobile-lang a{ display:inline-flex; align-items:center; justify-content:center; min-width:48px; padding:9px 14px; border:1px solid var(--line-2); border-radius:999px; font-family:var(--mono); font-size:16px; font-weight:500; color:var(--ink-soft); }
.mobile-lang a.active{ color:var(--blue); border-color:#cfe0f5; background:var(--blue-ghost); }

/* form success */
.hfc-success{ text-align:center; padding:20px 0; }
.hfc-success-icon{ width:60px; height:60px; border-radius:16px; background:var(--blue-ghost); border:1px solid #cfe0f5; display:flex; align-items:center; justify-content:center; font-size:26px; color:var(--blue); margin:0 auto 18px; }
.hfc-success-title{ font-family:var(--disp); font-size:21px; font-weight:700; color:var(--ink); margin-bottom:8px; }
.hfc-success-sub{ font-size:16px; color:var(--ink-soft); line-height:1.6; }

/* módulos / pilares genéricos */
.module-grid,.pillar-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:16px; margin-top:40px; }
.module,.pillar{ background:#fff; border:1px solid var(--line); border-radius:18px; padding:28px 26px; }
.module h3,.pillar h3{ font-size:17px; font-weight:700; letter-spacing:-.01em; margin-bottom:9px; color:var(--ink); }
.module p,.pillar p{ font-size:16px; color:var(--ink-soft); line-height:1.6; }
/* línea de tiempo horizontal (Primeros 30 días) */
.mini-steps{ display:grid; grid-template-columns:repeat(5,1fr); gap:26px; margin-top:54px; counter-reset:ms; }
.mini-step{ position:relative; background:none; border:none; border-radius:0; padding:50px 10px 0 0; counter-increment:ms; }
.mini-step::before{ content:counter(ms,decimal-leading-zero); position:absolute; top:0; left:0; width:38px; height:38px; border-radius:50%; background:var(--blue); color:#fff; font-family:var(--mono); font-size:16px; font-weight:600; display:flex; align-items:center; justify-content:center; z-index:2; box-shadow:0 8px 18px -8px rgba(74,114,168,.7); }
.mini-step::after{ content:""; position:absolute; top:18px; left:44px; right:-26px; height:2px; background:linear-gradient(90deg,var(--blue-lt),var(--line)); z-index:1; }
.mini-step:last-child::after{ display:none; }
.mini-step strong{ display:block; font-family:var(--mono); font-size:16px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--blue-deep); margin-bottom:7px; }
.mini-step h3{ font-size:16px; font-weight:700; letter-spacing:-.01em; color:var(--ink); margin-bottom:8px; line-height:1.2; }
.mini-step p{ font-size:16px; color:var(--ink-soft); line-height:1.6; }
.mini-step .n,.mini-step b{ font-family:var(--mono); font-size:16px; color:var(--blue); letter-spacing:.06em; }
@media(max-width:980px){ .mini-steps{ grid-template-columns:repeat(2,1fr); gap:30px 24px; } .mini-step::after{ display:none; } }
@media(max-width:540px){ .mini-steps{ grid-template-columns:1fr; } }
/* universo: Dirección horizontal arriba, los demás en 3 columnas (solo este bloque) */
.pillar-grid--dir{ grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; }
.pillar-grid--dir .pillar{ background:none; border:none; padding:0; }
.pillar-grid--dir .pillar > h3{ font-family:var(--disp); font-size:18px; font-weight:700; letter-spacing:-.01em; color:var(--ink); margin:0; }
.pillar-grid--dir .pillar .module-grid{ margin-top:14px; }
.pillar-grid--dir .pillar-wide{ grid-column:1/-1; }
.pillar-grid--dir .pillar-wide .module-grid{ grid-template-columns:1fr 1fr; }
@media(max-width:900px){ .pillar-grid--dir{ grid-template-columns:1fr; } .pillar-grid--dir .pillar-wide .module-grid{ grid-template-columns:1fr; } }

/* clientes */
.client-logo-card{ background:#fff; border:1px solid var(--line); border-radius:16px; min-height:120px; display:flex; align-items:center; justify-content:center; padding:24px; transition:border-color .3s,box-shadow .3s; }
.client-logo-card:hover{ border-color:var(--line-2); box-shadow:0 16px 40px -26px rgba(27,34,48,.3); }
.client-logo-card img{ max-height:60px; max-width:160px; width:auto; object-fit:contain; filter:grayscale(1); opacity:.7; transition:.3s; }
.client-logo-card:hover img{ filter:none; opacity:1; }
.logo-row{ display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:28px 32px; align-items:center; justify-items:center; margin-top:48px; }
.logo-row img{ max-height:46px; max-width:140px; width:auto; height:auto; object-fit:contain; filter:grayscale(1); opacity:.6; transition:filter .3s,opacity .3s; }
.logo-row img:hover{ filter:none; opacity:1; }

/* precios */
.pricing-card{ background:#fff; border:1px solid var(--line); border-radius:20px; padding:34px 30px; display:flex; flex-direction:column; transition:transform .35s var(--ease),border-color .35s,box-shadow .35s; }
.pricing-card:hover{ transform:translateY(-6px); border-color:var(--line-2); box-shadow:0 30px 60px -36px rgba(27,34,48,.3); }
.pricing-card.featured{ border-color:var(--blue); box-shadow:0 30px 70px -34px rgba(74,114,168,.5); }
.pricing-kicker,.hosting-plan-kicker{ font-family:var(--mono); font-size:16px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--blue-deep); margin-bottom:14px; }
.pricing-price,.hosting-price{ font-family:var(--disp); font-size:clamp(36px,4vw,52px); font-weight:600; letter-spacing:-.03em; color:var(--ink); line-height:1; margin-bottom:6px; }
.pricing-price small,.hosting-price small{ font-family:var(--body); font-size:16px; font-weight:400; color:var(--ink-soft); letter-spacing:0; }
.hosting-plan{ background:#fff; border:1px solid var(--line); border-radius:20px; padding:32px 28px; }
.hosting-plan.featured{ border-color:var(--blue); }

/* blog */
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:start; }
@media(max-width:900px){ .blog-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px){ .blog-grid{ grid-template-columns:1fr; } }
.blog-card{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:18px; overflow:hidden; text-decoration:none; color:inherit; transition:transform .35s var(--ease),border-color .35s,box-shadow .35s; }
.blog-card:hover{ transform:translateY(-6px); border-color:var(--line-2); box-shadow:0 28px 54px -34px rgba(27,34,48,.3); }
.blog-card .cover{ aspect-ratio:1/1; width:100%; height:auto; object-fit:cover; display:block; background:var(--blue-ghost); overflow:hidden; }
.blog-card .cover img{ width:100%; height:100%; object-fit:cover; }
.blog-card .body{ padding:22px 24px 26px; }
.blog-card .meta{ font-family:var(--mono); font-size:13px; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-soft); margin-top:14px; }
.blog-card h3{ font-size:18px; font-weight:700; letter-spacing:-.01em; color:var(--ink); line-height:1.25; margin-bottom:8px; }
.blog-card p{ font-size:16px; color:var(--ink-soft); line-height:1.6; }
.blog-card.soon,.badge-soon{ position:relative; }
.badge-soon{ display:inline-block; font-family:var(--mono); font-size:16px; letter-spacing:.1em; text-transform:uppercase; color:var(--blue); background:var(--blue-ghost); border:1px solid #cfe0f5; padding:4px 10px; border-radius:999px; }

/* caso destacado */
.case-box{ background:var(--dark); color:#fff; border-radius:22px; padding:clamp(32px,4vw,46px); }
.case-box .tag{ color:var(--blue-soft); }
.case-box .tag::before{ background:var(--blue-soft); }
.case-box h3{ color:#fff; font-family:var(--disp); font-size:clamp(20px,2.4vw,26px); font-weight:600; letter-spacing:-.02em; margin-bottom:10px; }
.case-box p{ color:#aab3c2; font-size:16px; line-height:1.65; }
.case-stat{ display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; margin-top:22px; }
.case-stat strong{ font-family:var(--disp); font-size:clamp(40px,5vw,62px); font-weight:600; letter-spacing:-.03em; color:var(--blue-soft); line-height:1; }
.case-stat span{ font-family:var(--body); font-size:16px; font-weight:400; color:#aab3c2; letter-spacing:0; line-height:1.5; max-width:34ch; }

/* artículo / prosa */
.prose{ max-width:760px; font-size:17px; color:var(--ink-2); line-height:1.75; }
.prose h2{ font-size:clamp(26px,3vw,38px); color:var(--ink); margin:48px 0 16px; }
.prose h3{ font-size:21px; color:var(--ink); margin:34px 0 12px; }
.prose p{ margin-bottom:18px; }
.prose ul,.prose ol{ margin:0 0 18px 22px; }
.prose li{ margin-bottom:8px; }
.prose a{ color:var(--blue); text-decoration:underline; text-underline-offset:3px; }
.prose img{ border-radius:14px; margin:24px 0; border:1px solid var(--line); }

/* equipo (página) */
.team-card{ background:#fff; border:1px solid var(--line); border-radius:18px; padding:26px; text-align:center; }
.team-card img{ width:120px; height:120px; border-radius:20px; object-fit:cover; object-position:center 20%; margin:0 auto 16px; border:1px solid var(--line); }
.team-name{ font-family:var(--disp); font-size:18px; font-weight:700; color:var(--ink); margin-bottom:4px; }
.team-role{ font-family:var(--mono); font-size:16px; letter-spacing:.06em; text-transform:uppercase; color:var(--blue); }
.team-tags{ display:flex; flex-wrap:wrap; gap:6px; justify-content:center; margin-top:14px; }
.team-tag{ font-size:16px; color:var(--ink-2); background:var(--mist); border:1px solid var(--line); border-radius:999px; padding:4px 11px; }

/* universo (página) */
.universe-header{ max-width:760px; }
.universe-copy{ font-size:18px; color:var(--ink-2); line-height:1.6; }
.universe-point{ display:flex; align-items:flex-start; gap:12px; font-size:16px; color:var(--ink-2); margin-bottom:12px; }
.universe-point::before{ content:""; width:8px; height:8px; border-radius:50%; background:var(--blue); flex:0 0 auto; margin-top:8px; }

/* contenedores-grid de páginas específicas */
.pricing-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px; align-items:start; }
.hosting-pricing{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:18px; align-items:start; }
.client-logo-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:16px; }
.client-brands-section{ }
.universe-points{ display:grid; gap:0; margin-top:18px; }
.pricing-feature{ display:flex; align-items:flex-start; gap:10px; font-size:16px; color:var(--ink-2); margin-bottom:9px; }
.pricing-feature::before{ content:"✓"; color:var(--blue); font-weight:700; flex:0 0 auto; }
.pricing-meta,.pricing-note{ font-size:16px; color:var(--ink-soft); line-height:1.55; }
.price-pair{ display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.full-width,.wide{ grid-column:1/-1; }

/* partner groups */
.partner-strip-inner{ display:block; }
.partner-group{ margin-bottom:30px; }
.partner-group-label{ font-family:var(--mono); font-size:16px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); border-left:3px solid var(--blue); padding-left:12px; margin-bottom:18px; }

/* ajustes de contraste (WCAG AA / reglas Google) */
.hero-ticks .ck,.ck,.trust-check,.checklist .check{ color:var(--blue-deep); }
.team .kicker .ix{ color:var(--blue-soft); }

@media(prefers-reduced-motion:reduce){
  .marq-track,.logo-track{ animation:none; }
  .rise,.reveal{ opacity:1; transform:none; animation:none; }
  .hero h1 .u::after{ animation:none; transform:scaleX(1); }
}
