/* ==========================================================================
   CONNBX — institutional site
   Dark, sober, premium. Monochrome base + single cold accent.
   ========================================================================== */

:root{
  --bg:        #070809;
  --bg-alt:    #0C0E10;
  --surface:   #111417;
  --line:      rgba(255,255,255,.08);
  --line-soft: rgba(255,255,255,.05);
  --text:      #E8EAED;
  --text-dim:  #9AA0A8;
  --text-mute: #6B7280;
  --accent:    #5B8DEF;
  --accent-soft: rgba(91,141,239,.12);
  --font-head: "Space Grotesk", system-ui, sans-serif;
  --font-body: "Inter", system-ui, sans-serif;
  --max: 1160px;
  --radius: 14px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--font-head);font-weight:600;line-height:1.12;letter-spacing:-.01em}
h2{font-size:clamp(1.9rem,3.6vw,2.9rem)}
h3{font-size:1.25rem}
.container{max-width:var(--max);margin:0 auto;padding:0 clamp(20px,4vw,40px)}

/* ---------- reveal animation ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.22,.8,.35,1)}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:.85rem 1.7rem;border-radius:999px;
  font-family:var(--font-head);font-weight:500;font-size:.95rem;
  letter-spacing:.01em;transition:all .25s ease;white-space:nowrap;
}
.btn--solid{background:#fff;color:#0A0A0A}
.btn--solid:hover{background:var(--accent);color:#fff;transform:translateY(-1px)}
.btn--ghost{border:1px solid var(--line);color:var(--text)}
.btn--ghost:hover{border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.04)}
.btn--outline{border:1px solid var(--line);color:var(--text);padding:.6rem 1.3rem;font-size:.88rem}
.btn--outline:hover{border-color:var(--accent);color:#fff}

.link-arrow{
  display:inline-flex;align-items:center;gap:.45rem;margin-top:auto;
  font-family:var(--font-head);font-size:.92rem;font-weight:500;color:var(--text-dim);
  transition:color .25s ease;
}
.link-arrow::after{content:"→";transition:transform .25s ease}
.link-arrow:hover{color:#fff}
.link-arrow:hover::after{transform:translateX(4px)}

/* ---------- header ---------- */
.header{
  position:fixed;inset:0 0 auto 0;z-index:50;
  background:rgba(7,8,9,.72);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line-soft);
}
.header__inner{display:flex;align-items:center;gap:2.4rem;height:72px}
.header__logo{height:17px;width:auto}
.header__nav{display:flex;gap:2rem;margin-left:auto}
.header__nav a{
  font-size:.9rem;color:var(--text-dim);transition:color .2s ease;
  font-family:var(--font-head);font-weight:500;
}
.header__nav a:hover{color:#fff}
.header__menu{display:none}

/* ---------- hero ---------- */
.hero{
  position:relative;overflow:hidden;
  min-height:100svh;
  display:flex;flex-direction:column;justify-content:center;
  padding:calc(72px + clamp(40px,6vh,70px)) 0 clamp(44px,6vh,72px);
}
.hero__canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero__glow{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 52% 42% at 50% 34%,rgba(91,141,239,.13),transparent 70%),
    radial-gradient(ellipse 90% 60% at 50% 115%,rgba(7,8,9,.94) 30%,transparent 75%);
}
.hero__inner{
  position:relative;max-width:900px;margin:0 auto;
  display:flex;flex-direction:column;align-items:center;text-align:center;
}
.hero__kicker{
  font-family:var(--font-head);font-size:.82rem;font-weight:500;
  letter-spacing:.22em;text-transform:uppercase;color:var(--accent);
  margin-bottom:1.7rem;
}
.hero__title{
  font-size:clamp(2.5rem,6vw,4.5rem);font-weight:700;letter-spacing:-.02em;
}
.hero__title em{
  font-style:normal;
  background:linear-gradient(100deg,#E8EAED 10%,#5B8DEF 55%,#8FB4FF 90%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero__lead{
  margin:1.8rem auto 2.5rem;max-width:640px;
  font-size:clamp(1.02rem,1.5vw,1.16rem);color:var(--text-dim);
}
.hero__actions{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}
.hero__stats{
  position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  margin-top:clamp(64px,10vh,110px);
  background:var(--line-soft);border:1px solid var(--line-soft);border-radius:var(--radius);
  overflow:hidden;
}
.stat{background:var(--bg);padding:1.7rem 1.6rem;display:flex;flex-direction:column}
.stat__num{font-family:var(--font-head);font-size:2.3rem;font-weight:700;line-height:1;display:inline}
.stat__plus{font-family:var(--font-head);font-size:1.5rem;font-weight:700;color:var(--accent);line-height:1;margin-left:.15rem;align-self:flex-start;display:inline}
.stat{flex-direction:row;flex-wrap:wrap;align-items:baseline}
.stat .stat__label{width:100%}
.stat__label{margin-top:.55rem;font-size:.84rem;color:var(--text-mute)}

/* ---------- sections ---------- */
.section{padding:clamp(80px,12vh,130px) 0}
.section--alt{background:var(--bg-alt);border-block:1px solid var(--line-soft)}
.section__head{max-width:680px;margin-bottom:clamp(48px,7vh,72px)}
.section__kicker{
  font-family:var(--font-head);font-size:.8rem;font-weight:500;
  letter-spacing:.22em;text-transform:uppercase;color:var(--accent);
  margin-bottom:1.1rem;
}
.section__lead{margin-top:1.2rem;color:var(--text-dim);font-size:1.06rem}

/* ---------- duo (holding) ---------- */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.duo__card{
  display:flex;flex-direction:column;gap:1rem;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:2.4rem;transition:border-color .3s ease,transform .3s ease;
}
.duo__card:hover{border-color:rgba(255,255,255,.18);transform:translateY(-3px)}
.duo__index{
  font-family:var(--font-head);font-size:.85rem;font-weight:600;color:var(--accent);
  letter-spacing:.12em;
}
.duo__card h3{font-size:1.5rem}
.duo__card p{color:var(--text-dim);font-size:.98rem;margin-bottom:.6rem}

/* ---------- pillars (consultoria) ---------- */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.pillar{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:2.1rem;transition:border-color .3s ease;
}
.pillar:hover{border-color:rgba(91,141,239,.35)}
.pillar__step{
  display:inline-block;font-family:var(--font-head);font-size:.75rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--accent);
  background:var(--accent-soft);border-radius:999px;padding:.3rem .8rem;margin-bottom:1.1rem;
}
.pillar__head p{color:var(--text-mute);font-size:.92rem;margin-top:.35rem}
.pillar__list{list-style:none;margin-top:1.6rem;display:flex;flex-direction:column}
.pillar__list li{
  padding:1.05rem 0;border-top:1px solid var(--line-soft);
  display:flex;flex-direction:column;gap:.25rem;
}
.pillar__list strong{font-family:var(--font-head);font-weight:600;font-size:.97rem}
.pillar__list span{font-size:.88rem;color:var(--text-mute);line-height:1.55}

.sector{
  margin-top:1.4rem;display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap;
  background:linear-gradient(120deg,var(--accent-soft),transparent 55%),var(--surface);
  border:1px solid var(--line);border-radius:var(--radius);padding:1.8rem 2.1rem;
}
.sector__tag{
  font-family:var(--font-head);font-size:.75rem;font-weight:600;white-space:nowrap;
  letter-spacing:.16em;text-transform:uppercase;color:var(--accent);
}
.sector p{color:var(--text-dim);font-size:.98rem;max-width:760px}
.sector strong{color:var(--text)}

/* ---------- products ---------- */
.products{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.product{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:2.3rem;display:flex;flex-direction:column;gap:.9rem;
  transition:border-color .3s ease,transform .3s ease;
}
.product:hover{border-color:rgba(255,255,255,.18);transform:translateY(-3px)}
.product__mark{
  width:56px;height:56px;border-radius:14px;
  background:#0A0A0A;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.product__mark img{width:100%;height:100%;object-fit:contain}
.product__mark--kukoo{background:#FF8A00;padding:10px}
.product__mark--mila{background:transparent;border:0}
.product__mark--gestavi{
  background:#03070F url("../brand/products/gestavi.svg") center/cover no-repeat;
}
.product__tag{
  font-family:var(--font-head);font-weight:600;font-size:.95rem;color:var(--text);
}
.product p{color:var(--text-dim);font-size:.94rem}
.product__tag + p{margin-top:-.3rem}
.product__link{
  margin-top:auto;font-family:var(--font-head);font-size:.85rem;font-weight:500;
  letter-spacing:.04em;color:var(--accent);display:inline-flex;align-items:center;gap:.4rem;
  transition:color .25s ease;
}
.product__link::after{content:"↗";font-size:.8rem}
.product__link:hover{color:#8FB4FF}

/* ---------- steps (método) ---------- */
.steps{
  list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;
  counter-reset:step;
}
.step{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:2rem;transition:border-color .3s ease;
}
.step:hover{border-color:rgba(255,255,255,.18)}
.step__num{
  font-family:var(--font-head);font-size:.85rem;font-weight:600;color:var(--accent);
  display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;
  border:1px solid rgba(91,141,239,.35);border-radius:50%;margin-bottom:1.2rem;
}
.step h3{font-size:1.08rem;margin-bottom:.5rem}
.step p{font-size:.9rem;color:var(--text-mute)}

.values{
  margin-top:clamp(48px,6vh,64px);display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center;
}
.values span{
  font-family:var(--font-head);font-size:.82rem;font-weight:500;color:var(--text-dim);
  border:1px solid var(--line);border-radius:999px;padding:.45rem 1.1rem;
}

/* ---------- CTA ---------- */
.section--cta{
  background:
    radial-gradient(ellipse 60% 90% at 50% 110%,rgba(91,141,239,.14),transparent 70%),
    var(--bg);
  text-align:center;border-top:1px solid var(--line-soft);
}
.cta__inner{max-width:760px}
.cta__mark{height:44px;margin:0 auto 2.2rem;opacity:.9}
.section--cta h2{font-size:clamp(1.9rem,4vw,3rem)}
.section--cta p{margin:1.4rem 0 2.4rem;color:var(--text-dim)}
.cta__actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}

/* ---------- footer ---------- */
.footer{border-top:1px solid var(--line-soft);background:#050607;padding:3.2rem 0 2rem}
.footer__inner{
  display:flex;align-items:flex-start;gap:2.5rem;flex-wrap:wrap;
  padding-bottom:2.2rem;border-bottom:1px solid var(--line-soft);
}
.footer__logo{height:15px;opacity:.9}
.footer__info{margin-left:auto;text-align:right}
.footer__info p{font-size:.85rem;color:var(--text-mute)}
.footer__nav{display:flex;gap:1.6rem;width:100%;margin-top:.4rem}
.footer__nav a{font-size:.85rem;color:var(--text-mute);transition:color .2s}
.footer__nav a:hover{color:#fff}
.footer__legal{padding-top:1.6rem}
.footer__legal p{font-size:.8rem;color:#4B5563}

/* ---------- responsive ---------- */
@media (max-width: 960px){
  .pillars,.products{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr}
  .hero__stats{grid-template-columns:1fr 1fr}
}
@media (max-width: 720px){
  .header__nav,.header__cta{display:none}
  .header__menu{
    display:flex;flex-direction:column;gap:6px;margin-left:auto;
    background:none;border:0;cursor:pointer;padding:6px;
  }
  .header__menu span{width:22px;height:2px;background:#fff;transition:transform .3s,opacity .3s}
  .header.is-open .header__menu span:first-child{transform:translateY(4px) rotate(45deg)}
  .header.is-open .header__menu span:last-child{transform:translateY(-4px) rotate(-45deg)}
  .header.is-open .header__nav{
    display:flex;flex-direction:column;gap:0;position:absolute;top:72px;left:0;right:0;
    background:rgba(7,8,9,.97);border-bottom:1px solid var(--line);padding:.6rem 0 1rem;
  }
  .header.is-open .header__nav a{padding:.85rem clamp(20px,4vw,40px);font-size:1rem}
  .duo,.pillars,.products,.steps{grid-template-columns:1fr}
  .hero__stats{grid-template-columns:1fr 1fr}
  .footer__info{margin-left:0;text-align:left}
}
