:root{
  --ink:#0A0A0A;
  --ink-lo:#5B5850;
  --paper:#FFFFFF;
  --paper-dim:#F2F1EC;
  --paper-2:#E8E6DD;
  --rule:#DAD7CC;
  --dark:#111110;
  --dark-2:#1B1A18;
  --dark-line:#2E2C28;
  --red:#B3261E;
  --red-tint:#FBEAE9;
  --green:#2E6B45;
  --mono:'JetBrains Mono',monospace;
  --sans:'Schibsted Grotesk',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;line-height:1.5}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
img,svg{max-width:100%;display:block}
::selection{background:var(--ink);color:var(--paper)}
:focus-visible{outline:2px solid var(--red);outline-offset:2px}

/* ============ HEADER (chip cristalino, flotante sobre el contenido) ============ */
:root{--header-h:82px}
body{padding-top:0}
.site-header{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--header-h);background:rgba(10,10,9,.34);backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5);border-bottom:1px solid rgba(255,255,255,.10);display:flex;align-items:center;justify-content:space-between;padding:0 36px}
.site-header .brand{display:flex;align-items:center}
.site-header .brand-logo{height:30px;width:auto;display:block}
.header-cta{font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;padding:12px 24px;background:#fff;color:var(--ink);border:1.5px solid #fff;transition:.15s;border-radius:999px}
.header-cta:hover{background:transparent;color:#fff}
@media(max-width:640px){.site-header{padding:0 20px;height:64px}.header-cta{padding:9px 16px;font-size:9px}}

/* ============ MARCO TÉCNICO (esquinas tipo mira) ============ */
.frame{position:relative}
.frame::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:2;
  background:
    linear-gradient(var(--red),var(--red)) top left/22px 1.5px no-repeat,
    linear-gradient(var(--red),var(--red)) top left/1.5px 22px no-repeat,
    linear-gradient(var(--red),var(--red)) top right/22px 1.5px no-repeat,
    linear-gradient(var(--red),var(--red)) top right/1.5px 22px no-repeat,
    linear-gradient(var(--red),var(--red)) bottom left/22px 1.5px no-repeat,
    linear-gradient(var(--red),var(--red)) bottom left/1.5px 22px no-repeat,
    linear-gradient(var(--red),var(--red)) bottom right/22px 1.5px no-repeat,
    linear-gradient(var(--red),var(--red)) bottom right/1.5px 22px no-repeat;
}

/* ============ REVELADO AL HACER SCROLL ============ */
.reveal{transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
html.js-reveal .reveal{opacity:0;transform:translateY(22px)}
html.js-reveal .reveal.in{opacity:1;transform:none}
.reveal-1{transition-delay:.08s}
.reveal-2{transition-delay:.16s}
.reveal-3{transition-delay:.24s}
@media (prefers-reduced-motion:reduce){html.js-reveal .reveal{opacity:1;transform:none;transition:none}}

/* ============ NUMERAL GIGANTE DECORATIVO ============ */
.big-num{position:absolute;top:-.06em;right:0;font-family:var(--sans);font-weight:700;font-size:clamp(120px,15vw,240px);color:var(--ink);opacity:.045;line-height:1;pointer-events:none;user-select:none;z-index:0}
@media(max-width:760px){.big-num{display:none}}

/* ============ HERO ============ */
.hero{background:var(--paper-dim);padding:calc(var(--header-h) + 44px) 32px 0;overflow:hidden}
.hero-grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1.15fr 1fr;gap:64px;align-items:center;padding:56px 0 80px}
.hero-copy{position:relative;z-index:1}
.eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--red);font-weight:500;margin-bottom:22px;display:flex;align-items:center;gap:14px}
.eyebrow .idx{color:var(--ink-lo)}
.eyebrow::after{content:"";flex:1;height:1px;background:var(--rule);max-width:120px}
.hero h1{font-size:clamp(38px,5.6vw,78px);font-weight:700;line-height:.99;letter-spacing:-.035em;color:var(--ink);max-width:760px}
.hero h1 .hl{color:var(--red)}
.hero .lede{font-size:clamp(15px,1.5vw,18.5px);color:var(--ink-lo);max-width:560px;margin-top:26px;line-height:1.65}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:40px}
.btn{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;padding:16px 30px;border:1.5px solid var(--ink);color:var(--ink);transition:.15s;display:inline-block;background:none}
.btn.solid{background:var(--ink);color:#fff}
.btn.solid:hover{background:transparent;color:var(--ink)}
.btn:not(.solid):hover{background:var(--ink);color:#fff}
.btn.on-dark{border-color:#fff;color:#fff}
.btn.on-dark.solid{background:#fff;color:var(--dark)}
.btn.on-dark.solid:hover{background:transparent;color:#fff}
.btn.on-dark:not(.solid):hover{background:#fff;color:var(--dark)}

/* ============ HERO DE PORTADA: video a todo el ancho, en carrusel ============ */
.hero-full{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:0;background:var(--dark)}
.hero-mosaic{position:absolute;inset:0}
.hero-mosaic .deck-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;opacity:0;transform:scale(1.04);transition:opacity 1.6s ease,transform 7s linear;filter:contrast(1.15) saturate(.78) brightness(.87)}
.hero-mosaic .deck-video.is-active{opacity:1;transform:scale(1)}
.hero-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(5,8,12,.62) 0%,rgba(6,9,10,.3) 38%,rgba(5,7,9,.52) 72%,rgba(4,6,8,.88) 100%)}

/* ============ HUD: marco técnico y lecturas en vivo sobre el hero ============ */
.hud-frame{position:absolute;top:calc(var(--header-h) + 26px);left:26px;right:26px;bottom:26px;z-index:2;pointer-events:none}
.hud-frame::before{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(rgba(255,255,255,.4),rgba(255,255,255,.4)) top left/26px 1.5px no-repeat,
    linear-gradient(rgba(255,255,255,.4),rgba(255,255,255,.4)) top left/1.5px 26px no-repeat,
    linear-gradient(rgba(255,255,255,.4),rgba(255,255,255,.4)) top right/26px 1.5px no-repeat,
    linear-gradient(rgba(255,255,255,.4),rgba(255,255,255,.4)) top right/1.5px 26px no-repeat,
    linear-gradient(rgba(255,255,255,.4),rgba(255,255,255,.4)) bottom left/26px 1.5px no-repeat,
    linear-gradient(rgba(255,255,255,.4),rgba(255,255,255,.4)) bottom left/1.5px 26px no-repeat,
    linear-gradient(rgba(255,255,255,.4),rgba(255,255,255,.4)) bottom right/26px 1.5px no-repeat,
    linear-gradient(rgba(255,255,255,.4),rgba(255,255,255,.4)) bottom right/1.5px 26px no-repeat;
}
.hud-tag{position:absolute;font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.62);display:flex;align-items:center;gap:8px;white-space:nowrap}
.hud-tag .dot{width:5px;height:5px;border-radius:50%;background:#5FBF7A;flex:none;box-shadow:0 0 6px #5FBF7A;animation:hud-pulse 1.8s ease-in-out infinite}
@keyframes hud-pulse{0%,100%{opacity:1}50%{opacity:.3}}
.hud-tl{top:14px;left:14px}
.hud-tr{top:14px;right:14px}
.hud-bl{bottom:14px;left:14px}
.hud-br{bottom:14px;right:14px}
@media(max-width:640px){
  .hud-frame{top:calc(var(--header-h) + 14px);left:14px;right:14px;bottom:14px}
  .hud-tr,.hud-tl{font-size:8.5px}
  .hud-tl{max-width:52vw}
}
.hero-overlay{position:relative;z-index:2;max-width:920px;margin:0 auto;padding:calc(var(--header-h) + 40px) 32px 64px;text-align:center;color:#fff}
.hero-overlay .eyebrow{justify-content:center;color:#fff}
.hero-overlay .eyebrow .idx{color:rgba(255,255,255,.6)}
.hero-overlay .eyebrow::after{background:rgba(255,255,255,.25)}
.hero-overlay h1{max-width:none;color:#fff}
.hero-overlay .lede{max-width:640px;margin-left:auto;margin-right:auto;color:rgba(255,255,255,.82)}
.hero-overlay .hero-actions{justify-content:center}
.hero-dots{position:absolute;z-index:2;bottom:28px;left:50%;transform:translateX(-50%);display:flex;gap:8px}
.hero-dots span{width:22px;height:3px;background:rgba(255,255,255,.3);transition:background .3s}
.hero-dots span.is-active{background:#fff}
@media(max-width:640px){.hero-dots{bottom:18px}}

/* ============ MANIFIESTO (declaración de peso tras el hero) ============ */
.manifesto{font-size:clamp(23px,3.3vw,42px);font-weight:700;letter-spacing:-.02em;line-height:1.2;max-width:960px;margin:0 auto;color:var(--ink);text-align:center}
.manifesto .hl{color:var(--red)}

/* ============ PIPELINE: proceso en pasos conectados ============ */
.pipeline{margin-top:52px;position:relative}
.pipeline-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;position:relative}
.pipeline-grid::before{content:"";position:absolute;top:17px;left:0;right:0;height:1px;background:var(--rule)}
.pipeline-step{position:relative;padding-top:48px}
.pipeline-step .num{position:absolute;top:0;left:0;width:34px;height:34px;border-radius:50%;background:var(--paper);border:1.5px solid var(--ink);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:11px;font-weight:600;color:var(--ink);z-index:1}
.pipeline-step h3{font-size:16.5px;font-weight:700;margin-bottom:8px;letter-spacing:-.01em}
.pipeline-step p{font-size:13px;line-height:1.6;color:var(--ink-lo)}
@media(max-width:760px){
  .pipeline-grid{grid-template-columns:1fr;gap:32px}
  .pipeline-grid::before{display:none}
}

/* ============ SECCIONES ============ */
.section{padding:112px 32px;position:relative;overflow:hidden}
.section-inner{max-width:1200px;margin:0 auto;position:relative;z-index:1}
.section.paper{background:var(--paper)}
.section.dim{background:var(--paper-dim)}
.section.deep{background:var(--paper-2)}
.section-eyebrow{font-family:var(--mono);font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--red);margin-bottom:18px;display:flex;align-items:center;gap:12px}
.section-eyebrow .idx{color:var(--ink-lo);font-weight:400}
.section-eyebrow::after{content:"";flex:1;height:1px;background:var(--rule);max-width:160px}
.section h2{font-size:clamp(30px,3.8vw,52px);font-weight:700;letter-spacing:-.025em;line-height:1.06;margin-bottom:24px;max-width:840px;color:var(--ink)}
.section .lede{font-size:16.5px;line-height:1.75;max-width:680px;color:var(--ink-lo)}
.section p.big{font-size:clamp(20px,2.4vw,30px);font-weight:600;letter-spacing:-.015em;line-height:1.3;color:var(--ink);max-width:900px;margin-top:8px}
.section p.big .hl{color:var(--red)}

/* tarjetas en cuadrícula */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:52px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:52px}
.card{background:var(--paper);border:1px solid var(--rule);padding:36px 32px;transition:transform .18s,box-shadow .18s;position:relative;border-radius:4px}
.card:hover{transform:translateY(-3px);box-shadow:0 20px 40px rgba(20,20,20,.08)}
.card .tag{font-family:var(--mono);font-size:8.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-bottom:16px;font-weight:500;display:flex;align-items:center;gap:8px}
.card .tag::before{content:"";width:5px;height:5px;background:var(--red);flex:none}
.card h3{font-size:20px;font-weight:700;margin-bottom:12px;letter-spacing:-.015em}
.card p{font-size:13.5px;line-height:1.65;color:var(--ink-lo)}

/* tarjeta oscura — acento fuerte entre tarjetas claras */
.card.dark{background:linear-gradient(155deg,var(--dark) 0%,#000 130%);border-color:var(--dark-line);color:#fff}
.card.dark .tag{color:#e8a09b}
.card.dark .tag::before{background:#e8a09b}
.card.dark h3{color:#fff}
.card.dark p{color:#a9a69c}

/* lista de capacidades (viñetas) */
.cap-list{margin-top:16px;max-width:760px}
.cap-list li{list-style:none;display:flex;gap:16px;padding:18px 0;border-top:1px solid var(--rule);font-size:15px;line-height:1.5}
.cap-list li:last-child{border-bottom:1px solid var(--rule)}
.cap-list .m{font-family:var(--mono);color:var(--red);flex:none}

/* preguntas grandes */
.question-list{margin-top:20px;max-width:820px}
.question-list .q{font-size:clamp(20px,2.6vw,32px);font-weight:600;letter-spacing:-.015em;padding:22px 0;border-top:1px solid var(--rule);color:var(--ink)}
.question-list .q:last-child{border-bottom:1px solid var(--rule)}
.question-list .q b{color:var(--red);font-weight:600}

/* datos / hechos (fila mono) */
.fact-list{border-top:1px solid var(--ink);margin-top:8px;max-width:680px}
.fact-row{display:grid;grid-template-columns:190px 1fr;padding:16px 0;border-bottom:1px dotted var(--rule);font-family:var(--mono);font-size:13px}
.fact-row .k{font-size:9px;letter-spacing:.2em;color:var(--ink-lo);text-transform:uppercase;padding-top:2px}

/* nota */
.note{border-left:3px solid var(--red);padding:22px 26px;background:var(--paper-2);max-width:680px;margin-top:28px}
.note p{font-size:13.5px;color:var(--ink-lo);line-height:1.6}

/* panel de cierre (oscuro, contenido, no toda la página) */
.cta-panel{background:radial-gradient(120% 140% at 0% 0%,#232220 0%,var(--dark) 50%,#000 120%);border-radius:22px;padding:88px 48px;text-align:center;color:#fff;position:relative;overflow:hidden}
.cta-panel::before{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.045) 0 1px,transparent 1px 42px),repeating-linear-gradient(90deg,rgba(255,255,255,.045) 0 1px,transparent 1px 42px);pointer-events:none}
.cta-panel>*{position:relative;z-index:1}
.cta-panel .section-eyebrow{color:var(--red);justify-content:center}
.cta-panel .section-eyebrow::after{background:var(--dark-line)}
.cta-panel h2{color:#fff;margin-left:auto;margin-right:auto}
.cta-panel .lede{color:#a9a69c;margin:0 auto}

/* ============ FORMULARIO ============ */
.form-wrap{max-width:640px;margin-top:44px}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.field{margin-bottom:22px}
.field label{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-lo);margin-bottom:8px}
.field label em{font-style:normal;color:var(--red)}
.field label .count{float:right;letter-spacing:.08em}
.field input,.field select,.field textarea{width:100%;background:transparent;border:none;border-bottom:1.5px solid var(--ink);font-family:var(--mono);font-size:14px;color:var(--ink);padding:10px 2px;border-radius:0}
.field textarea{resize:vertical;line-height:1.55}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-bottom-color:var(--red)}
.field.err input,.field.err textarea{border-bottom-color:var(--red)}
.form-msg{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:#2E6B45;margin-top:14px;min-height:16px}
.form-note{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-lo);margin-top:20px}

/* ============ FOOTER (oscuro, navegación principal) ============ */
.site-footer{background:var(--dark);color:#8A8A86;padding:64px 32px 26px}
.footer-inner{max-width:1200px;margin:0 auto;display:flex;gap:60px;flex-wrap:wrap;padding-bottom:38px;border-bottom:1px solid var(--dark-line)}
.footer-id{max-width:440px}
.footer-id .brand{margin-bottom:14px}
.footer-id .brand-logo{height:32px;width:auto;display:block}
.footer-id p{font-size:12.5px;line-height:1.65;color:#8A8A86}
.footer-id .mail{margin-top:14px;font-family:var(--mono);font-size:11px}
.footer-id .mail a{color:#C9C9C4}
.footer-id .mail a:hover{color:#fff}
.footer-links{margin-left:auto;display:flex;gap:56px;flex-wrap:wrap}
.footer-links div h6{font-family:var(--mono);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-bottom:14px;font-weight:500}
.footer-links a{display:block;color:#8A8A86;font-size:13px;padding:5px 0}
.footer-links a:hover{color:#fff}
.footer-links a.on{color:#fff}
.footer-bottom{max-width:1200px;margin:0 auto;padding-top:22px;font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:#4a4844;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}

@media(max-width:760px){
  .grid-3,.grid-2{grid-template-columns:1fr}
  .fact-row{grid-template-columns:130px 1fr}
  .f2{grid-template-columns:1fr}
  .section{padding:64px 24px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
}

/* ---------------- PANEL "INICIAR UN PROYECTO" (reemplaza la página /solicitar/) ---------------- */
.req-overlay{position:fixed;inset:0;background:rgba(8,9,11,0.55);backdrop-filter:blur(2px);z-index:998;opacity:0;pointer-events:none;transition:opacity .3s ease}
.req-overlay.is-open{opacity:1;pointer-events:auto}
.req-drawer{position:fixed;top:0;right:0;height:100%;width:min(460px,100%);background:#F3F2EE;color:#14161A;z-index:999;box-shadow:-24px 0 60px rgba(0,0,0,0.25);transform:translateX(100%);transition:transform .4s cubic-bezier(0.16,1,0.3,1);display:flex;flex-direction:column;overflow-y:auto;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif}
.req-drawer.is-open{transform:translateX(0)}
.req-drawer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:32px 32px 20px;border-bottom:1px solid rgba(20,22,26,0.1)}
.req-eyebrow{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#6B6F7C;margin-bottom:10px}
.req-drawer-head h3{font-size:21px;font-weight:600;letter-spacing:-0.01em;line-height:1.25;margin:0;color:#14161A}
.req-close{background:none;border:1px solid rgba(20,22,26,0.16);color:#14161A;width:34px;height:34px;border-radius:50%;cursor:pointer;font-size:15px;flex-shrink:0;transition:.15s}
.req-close:hover{background:rgba(20,22,26,0.06)}
.req-drawer-body{padding:26px 32px 40px;display:flex;flex-direction:column;gap:18px}
.req-lede{font-size:14px;line-height:1.6;color:#5B5850;margin:0 0 4px}
.req-field{display:flex;flex-direction:column;gap:8px}
.req-field label{font-size:12px;font-weight:500;color:#3A3F49;display:flex;justify-content:space-between;gap:8px}
.req-field label em{color:#B3261E;font-style:normal}
.req-field input,.req-field select,.req-field textarea{background:#FFFFFF;border:1px solid rgba(20,22,26,0.16);color:#14161A;border-radius:10px;padding:12px 14px;font-size:14px;font-family:inherit;transition:border-color .15s ease}
.req-field input:focus,.req-field select:focus,.req-field textarea:focus{outline:none;border-color:#2F4BFF}
.req-field.err input,.req-field.err textarea{border-color:#B3261E}
.req-field textarea{resize:vertical;min-height:110px}
.req-count{font-weight:400;color:#8A8A86;font-size:11px}
.req-submit{background:#2F4BFF;color:#fff;border:none;border-radius:999px;padding:14px 22px;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s ease;margin-top:6px}
.req-submit:hover{background:#1B2C99}
.req-submit:disabled{opacity:.7;cursor:default}
.req-msg{font-family:'JetBrains Mono',monospace;font-size:12px;min-height:16px}
.req-note{font-size:11px;color:#8A8A86;line-height:1.5}
.req-success{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;pointer-events:none;overflow:hidden}
.req-success.is-active{pointer-events:auto}
.req-success-circle{position:absolute;inset:0;background:#2E6B45;clip-path:circle(0% at 50% 100%);transition:clip-path .8s cubic-bezier(0.16,1,0.3,1)}
.req-success.is-active .req-success-circle{clip-path:circle(150vmax at 50% 100%)}
.req-success-close{position:absolute;top:24px;right:24px;z-index:2;background:none;border:1px solid rgba(255,255,255,0.4);color:#fff;width:34px;height:34px;border-radius:50%;cursor:pointer;font-size:15px;opacity:0;transition:opacity .3s ease .55s,background .15s ease}
.req-success.is-active .req-success-close{opacity:1}
.req-success-close:hover{background:rgba(255,255,255,0.15)}
.req-success-content{position:relative;z-index:1;text-align:center;opacity:0;transform:translateY(14px);transition:opacity .4s ease .4s,transform .4s ease .4s;padding:0 32px}
.req-success.is-active .req-success-content{opacity:1;transform:translateY(0)}
.req-success-check{width:56px;height:56px;border-radius:50%;border:2px solid #fff;color:#fff;font-size:26px;display:flex;align-items:center;justify-content:center;margin:0 auto 18px}
.req-success-msg{color:#fff;font-size:19px;font-weight:600;margin-bottom:8px}
.req-success-folio{color:rgba(255,255,255,0.85);font-family:'JetBrains Mono',monospace;font-size:12.5px;margin-bottom:14px}
.req-success-hint{color:rgba(255,255,255,0.75);font-size:12.5px;line-height:1.5;max-width:260px;margin:0 auto}
@media (prefers-reduced-motion:reduce){.req-success-circle{transition:none}.req-success-content{transition:none}.req-success-close{transition:none}}
@media (max-width:560px){.req-drawer{width:100%}}
