
:root{
  --bg:#07080d; --bg2:#0d0f18; --panel:#111421; --panel2:#161a2a;
  --text:#f5f4fb; --muted:#b8b8c9; --line:rgba(255,255,255,.10);
  --purple:#8a4dff; --purple2:#c05cff; --blue:#6aa8ff; --ok:#76e3a4;
  --radius:24px; --shadow:0 24px 70px rgba(0,0,0,.34);
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:
 radial-gradient(circle at 75% 10%,rgba(125,70,255,.13),transparent 28rem),
 linear-gradient(180deg,#080910,#090b13 45%,#07080d);
 color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input,textarea{font:inherit}
.container{width:min(var(--max),calc(100% - 36px));margin:auto}
.site-header{position:sticky;top:0;z-index:50;background:rgba(7,8,13,.80);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.header-inner{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:22px}
.brand{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:.16em}
.brand img{width:48px;height:48px;object-fit:cover;border-radius:13px}
.nav{display:flex;align-items:center;gap:22px}
.nav a{color:#d9d9e5;font-size:.96rem}
.nav a:hover{color:#fff}
.menu-btn{display:none;background:#111522;color:#fff;border:1px solid var(--line);border-radius:13px;padding:9px 12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 20px;border-radius:15px;border:1px solid var(--line);font-weight:750;cursor:pointer}
.btn-primary{background:linear-gradient(135deg,var(--purple),var(--purple2));border-color:transparent;color:#fff;box-shadow:0 12px 32px rgba(138,77,255,.25)}
.btn-secondary{background:rgba(255,255,255,.04)}
.hero{padding:78px 0 72px;min-height:calc(100vh - 78px);display:flex;align-items:center}
.hero-grid{display:grid;grid-template-columns:1.03fr .97fr;gap:58px;align-items:center}
.eyebrow,.kicker{color:#d7bcff;letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;font-weight:800}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(3.1rem,7vw,6.7rem);line-height:.91;letter-spacing:-.065em;margin:18px 0 24px}
h2{font-size:clamp(2.1rem,4.8vw,4.3rem);line-height:.98;letter-spacing:-.045em;margin:12px 0 18px}
h3{font-size:1.25rem}
.lead{font-size:clamp(1.06rem,2vw,1.28rem);line-height:1.7;color:var(--muted);max-width:680px}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.hero-media{position:relative;border:1px solid var(--line);border-radius:32px;overflow:hidden;box-shadow:var(--shadow);background:#0c0f18}
.hero-media img{width:100%;aspect-ratio:1/1;object-fit:cover}
.hero-media:after{content:"";position:absolute;inset:auto 0 0;height:42%;background:linear-gradient(transparent,rgba(6,7,12,.9))}
.hero-caption{position:absolute;left:24px;right:24px;bottom:22px;z-index:2}
.hero-caption strong{font-size:1.08rem}.hero-caption span{display:block;color:#c9c9d8;margin-top:4px}
.section{padding:92px 0}
.section-alt{padding:92px 0;background:rgba(255,255,255,.018);border-top:1px solid rgba(255,255,255,.04);border-bottom:1px solid rgba(255,255,255,.04)}
.section-head{max-width:820px;margin-bottom:38px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{padding:25px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(145deg,rgba(255,255,255,.05),rgba(255,255,255,.018))}
.card p,.muted{color:var(--muted);line-height:1.65}
.card-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;margin-bottom:18px;background:rgba(138,77,255,.14);border:1px solid rgba(174,112,255,.26)}
.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:44px;align-items:center}
.office-photo{position:relative;border-radius:30px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}
.office-photo img{width:100%;aspect-ratio:4/3;object-fit:cover}
.office-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 55%,rgba(7,8,13,.22))}
.chat-shell{border:1px solid var(--line);border-radius:28px;background:rgba(17,20,33,.88);overflow:hidden;box-shadow:var(--shadow)}
.chat-head{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line)}
.chat-avatar{width:46px;height:46px;border-radius:50%;object-fit:cover}
.status{color:var(--ok);font-size:.88rem}
.messages{height:360px;overflow:auto;padding:20px;display:grid;gap:12px;align-content:start;background:linear-gradient(180deg,rgba(255,255,255,.014),transparent)}
.bubble{max-width:84%;padding:13px 15px;border-radius:17px;background:#1b1f2f;line-height:1.5}
.bubble.user{justify-self:end;background:linear-gradient(135deg,#6139db,#8f4de7)}
.chat-form{display:grid;grid-template-columns:1fr auto;gap:10px;padding:14px;border-top:1px solid var(--line)}
.chat-form textarea{resize:none;min-height:50px;max-height:130px;padding:13px 14px;color:#fff;background:#0c0f18;border:1px solid var(--line);border-radius:14px;outline:none}
.chat-form textarea:focus{border-color:rgba(174,112,255,.65)}
.notice{font-size:.9rem;color:var(--muted);margin:12px 18px 18px}
.office-stage{padding:62px 0 86px}
.office-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:26px;align-items:start}
.office-identity{position:sticky;top:104px}
.office-identity img{width:100%;border-radius:28px;border:1px solid var(--line);box-shadow:var(--shadow)}
.office-name{margin:16px 0 0;font-size:clamp(2rem,4vw,3.4rem);letter-spacing:-.04em}
.portal-card{max-width:760px;margin:70px auto;padding:36px;border:1px solid var(--line);border-radius:28px;background:rgba(255,255,255,.035);text-align:center}
.logo-showcase{width:min(580px,100%);margin:0 auto}
.logo-showcase img{border-radius:26px}
footer{border-top:1px solid var(--line);padding:36px 0 48px;color:var(--muted)}
.footer-row{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}
.footer-links{display:flex;gap:18px;flex-wrap:wrap}
.transition{position:fixed;inset:0;z-index:100;background:rgba(5,6,10,.96);display:none;place-items:center;padding:24px;text-align:center}
.transition.open{display:grid}
.transition-card{max-width:520px}
.transition-logo{width:90px;margin:0 auto 24px;border-radius:22px}
.transition h2{font-size:2.4rem}
.reveal{opacity:0;transform:translateY(18px);transition:.7s ease}
.reveal.visible{opacity:1;transform:none}
.small{font-size:.92rem;color:var(--muted)}
@media(max-width:900px){
 .hero{padding-top:48px;min-height:auto}.hero-grid,.split,.office-grid{grid-template-columns:1fr}
 .office-identity{position:static}.grid-3{grid-template-columns:1fr 1fr}
 .nav{position:absolute;top:78px;left:18px;right:18px;display:none;flex-direction:column;align-items:stretch;padding:18px;border:1px solid var(--line);border-radius:18px;background:#0c0f18}
 .nav.open{display:flex}.menu-btn{display:block}
 h1{font-size:clamp(3rem,15vw,5.2rem)}
}
@media(max-width:620px){
 .grid-3{grid-template-columns:1fr}.container{width:min(100% - 24px,var(--max))}
 .hero{padding:38px 0 60px}.section,.section-alt{padding:68px 0}
 .chat-form{grid-template-columns:1fr}.chat-form .btn{width:100%}
 .messages{height:330px}
}

/* ===== NUZHO V11.1 — refinamiento ejecutivo sobre V10 ===== */
:root{--photo-radius:14px;--glass-bg:rgba(20,20,32,.52);--glass-line:rgba(255,255,255,.11)}
body{font-family:Inter,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;letter-spacing:-.01em}
h1,h2,h3,.brand span,.nav a,.btn{font-family:Inter,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
h1{font-size:clamp(2.55rem,5vw,4.65rem);line-height:1.02;letter-spacing:-.045em;font-weight:760}
h2{font-size:clamp(2rem,3.6vw,3.25rem);line-height:1.07;letter-spacing:-.035em;font-weight:730}
h3{font-size:clamp(1.22rem,1.9vw,1.65rem);line-height:1.18;letter-spacing:-.022em;font-weight:690}
.lead{font-size:clamp(1.04rem,1.45vw,1.23rem);line-height:1.68}
.card{border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.02));backdrop-filter:blur(11px);-webkit-backdrop-filter:blur(11px)}
.hero-photo,.solution-photo,.problem-photo,.section-visual{border-radius:var(--photo-radius);overflow:hidden;border:1px solid var(--glass-line);background:var(--glass-bg);box-shadow:0 18px 48px rgba(0,0,0,.28);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.hero-photo img,.solution-photo img,.problem-photo img,.section-visual img{display:block;width:100%;height:100%;object-fit:cover}
.hero-v111 .hero-grid{grid-template-columns:.95fr 1.05fr;align-items:center}
.hero-v111 .hero-photo img{min-height:470px}
.problem-grid-v111{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.problem-v111{padding:0;overflow:hidden}.problem-v111 .problem-photo{border-radius:0}.problem-v111 .problem-photo img{height:220px}.problem-v111 .copy{padding:24px}
.solution-list-v111{display:grid;gap:26px}.solution-v111{display:grid;grid-template-columns:1fr 1fr;padding:0;overflow:hidden;border-radius:22px;border:1px solid var(--line);background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.02))}.solution-v111:nth-child(even) .solution-photo{order:2}.solution-v111 .solution-photo{border-radius:0}.solution-v111 .solution-photo img{min-height:330px}.solution-v111 .copy{padding:32px}.solution-v111 .meta{color:#d7bcff;font-weight:760;letter-spacing:.11em;text-transform:uppercase;font-size:.78rem;margin-bottom:10px}.solution-v111 p{color:var(--muted);line-height:1.72}.solution-v111 strong{color:var(--text)}
.signature-v111{margin-top:16px;color:#d7bcff;letter-spacing:.17em;text-transform:uppercase;font-size:.78rem;font-weight:760}
@media(max-width:900px){.hero-v111 .hero-grid,.solution-v111{grid-template-columns:1fr}.solution-v111:nth-child(even) .solution-photo{order:0}.problem-grid-v111{grid-template-columns:1fr}.hero-v111 .hero-photo img{min-height:320px}.solution-v111 .solution-photo img{min-height:250px}}
@media(max-width:620px){h1{font-size:clamp(2.2rem,10.7vw,3.1rem)}h2{font-size:clamp(1.78rem,8vw,2.42rem)}.solution-v111 .copy{padding:24px}.problem-v111 .problem-photo img{height:190px}}

/* V11.2 visual integration */
.visual-feature .section-visual img{aspect-ratio:16/10;object-fit:cover}.portal-status{display:inline-flex;margin:22px 0 2px;padding:10px 14px;border:1px solid var(--glass-line);border-radius:999px;background:var(--glass-bg);color:#d7bcff;font-size:.88rem}.solution-v111 .solution-photo img{aspect-ratio:16/9;min-height:0;object-fit:cover}.solution-v111{align-items:stretch}.solution-v111 .solution-photo{min-height:100%}@media(max-width:900px){.solution-v111 .solution-photo img{aspect-ratio:16/9;min-height:0}}

/* ===== NUZHO V11.3 — claridad visual + experiencia Sofía ===== */
.problem-v111 .problem-photo img{filter:saturate(.94) contrast(1.03) brightness(1.09);transition:transform .45s ease,filter .45s ease}
.problem-v111:hover .problem-photo img{transform:scale(1.018);filter:saturate(1) contrast(1.04) brightness(1.12)}
.problem-v111:first-child .problem-photo img{filter:saturate(.9) contrast(.98) brightness(1.20)}
.problem-v111:first-child:hover .problem-photo img{filter:saturate(.94) contrast(1) brightness(1.24)}
.section-visual img{filter:brightness(1.055) saturate(.98)}
.chat-shell{background:linear-gradient(180deg,rgba(20,22,36,.94),rgba(12,14,24,.96));border-color:rgba(190,142,255,.18)}
.chat-head{background:rgba(255,255,255,.018)}
.chat-connection{margin-left:auto;display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.78rem;white-space:nowrap}
.chat-connection .dot{width:7px;height:7px;border-radius:50%;background:#777;box-shadow:0 0 0 3px rgba(255,255,255,.04)}
.chat-connection.ready{color:#aef5c7}.chat-connection.ready .dot{background:#4bd37b;box-shadow:0 0 10px rgba(75,211,123,.65)}
.chat-connection.pending{color:#f0d18a}.chat-connection.pending .dot{background:#d9a93d}
.chat-form textarea{font:inherit;line-height:1.45}
@media(max-width:620px){.chat-head{align-items:flex-start}.chat-connection{font-size:.7rem;padding:6px 8px}.problem-v111:first-child .problem-photo img{filter:saturate(.92) contrast(1) brightness(1.16)}}
/* ===== VIDEO BIENVENIDA NUZHO ===== */

.hero-photo {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 24px;
}

.hero-video {
  display: block;
  width: 100%;
  height: auto;
  max-height: 520px;
  object-fit: contain;
  border-radius: 24px;
}

/* Pantallas grandes */
@media (min-width: 1200px) {
  .hero-video {
    max-height: 480px;
  }
}

/* Celulares */
@media (max-width: 768px) {
  .hero-video {
    width: 100%;
    max-height: none;
    border-radius: 18px;
  }
}
/* AJUSTE FINAL VIDEO PORTADA NUZHO */
.hero-photo{
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border-radius:22px;
}

.hero-video{
  width:100%;
  max-width:680px;
  height:auto;
  max-height:430px;
  object-fit:contain;
  border-radius:22px;
  display:block;
}

@media (max-width:900px){
  .hero-video{
    max-width:100%;
    max-height:none;
  }
}
/* REDUCCIÓN REAL DEL VIDEO EN PORTADA */
.hero-v111 .hero-grid{
  grid-template-columns: 1fr 520px;
  gap: 46px;
}

.hero-v111 .hero-photo{
  width: 520px;
  max-width: 100%;
  justify-self: end;
}

.hero-v111 .hero-video{
  width: 520px;
  max-width: 100%;
  height: auto;
  max-height: 330px;
  object-fit: contain;
  border-radius: 18px;
}

@media (max-width:900px){
  .hero-v111 .hero-grid{
    grid-template-columns:1fr;
  }

  .hero-v111 .hero-photo,
  .hero-v111 .hero-video{
    width:100%;
    max-width:100%;
    max-height:none;
  }
}

/* Animación: Sofía está escribiendo */

.typing-bubble{
  width: fit-content;
  min-width: 72px;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 15px 18px;
}

.typing-dot{
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #b487ff;
  display: inline-block;
  animation: sofiaTyping 1.2s infinite ease-in-out;
}

.typing-dot:nth-child(2){
  animation-delay: .15s;
}

.typing-dot:nth-child(3){
  animation-delay: .30s;
}

@keyframes sofiaTyping{
  0%, 60%, 100%{
    transform: translateY(0);
    opacity: .45;
  }

  30%{
    transform: translateY(-5px);
    opacity: 1;
  }
}

/* =========================================================
   NUZHO V11.3.7 — OFICINA DE SOFÍA
   Diseño coordinado con sofia.html + chat.js
========================================================= */

.office-grid-sofia{
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:28px;
}

.office-brand-name{
  color:#a45cff;
  font-size:1rem;
  letter-spacing:.05em;
}

.chat-shell-sofia{
  min-height:620px;
  display:flex;
  flex-direction:column;
  border-color:rgba(190,142,255,.20);
  background:
    radial-gradient(circle at 78% 12%,rgba(119,73,255,.07),transparent 18rem),
    linear-gradient(180deg,rgba(20,22,36,.96),rgba(10,12,22,.98));
}

.chat-head-sofia{
  display:flex;
  align-items:center;
  gap:14px;
  min-height:96px;
  padding:20px 22px;
  border-bottom:1px solid var(--line);
}

.chat-head-sofia .chat-avatar{
  width:54px;
  height:54px;
  flex:0 0 54px;
}

.chat-person strong{
  display:block;
  font-size:1rem;
  line-height:1.25;
}

.chat-head-sofia .status{
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:5px;
  color:#4bd37b;
}

.chat-head-sofia .chat-connection{
  margin-left:auto;
}

.chat-shell-sofia .messages{
  flex:1;
  height:auto;
  min-height:360px;
  padding:28px;
  display:flex;
  flex-direction:column;
  gap:14px;
  align-items:stretch;
  background:
    radial-gradient(circle at 15% 20%,rgba(122,74,255,.045),transparent 14rem),
    transparent;
}

.message-row{
  display:flex;
  align-items:flex-start;
  gap:12px;
  width:100%;
}

.bot-row{
  justify-content:flex-start;
}

.message-brand{
  width:46px;
  height:46px;
  flex:0 0 46px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid rgba(190,142,255,.18);
  background:rgba(255,255,255,.025);
  box-shadow:0 10px 28px rgba(0,0,0,.22);
}

.message-brand img{
  width:30px !important;
  height:30px !important;
  max-width:30px !important;
  max-height:30px !important;
  object-fit:contain;
  border-radius:8px;
}

.chat-shell-sofia .bubble{
  max-width:min(78%,620px);
  padding:14px 17px;
  border-radius:18px;
  background:linear-gradient(180deg,#1b1f2f,#171b29);
  border:1px solid rgba(255,255,255,.025);
  line-height:1.55;
}

.chat-shell-sofia .bubble.user{
  align-self:flex-end;
  margin-left:auto;
  max-width:72%;
  background:linear-gradient(135deg,#6139db,#8f4de7);
  border-color:transparent;
}

.typing-bubble{
  width:76px;
  min-width:76px;
  max-width:76px !important;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:7px;
  padding:15px 16px !important;
}

.chat-form-sofia{
  display:grid;
  grid-template-columns:1fr 72px;
  gap:12px;
  padding:16px 20px 10px;
  border-top:1px solid var(--line);
}

.chat-form-sofia textarea{
  min-height:60px;
  padding:18px 20px;
  border-radius:18px;
  background:rgba(12,15,24,.92);
}

.send-icon-btn{
  width:72px;
  min-width:72px;
  height:60px;
  min-height:60px;
  padding:0;
  border-radius:18px;
  font-size:1.45rem;
  line-height:1;
}

.send-icon-btn span{
  display:block;
  transform:rotate(-18deg);
}

.chat-shell-sofia .notice{
  margin:8px 20px 18px;
  font-size:.82rem;
}

/* El antiguo logo grande del chat ya no se usa */
.chat-brand{
  display:none !important;
}

@media(max-width:900px){
  .office-grid-sofia{
    grid-template-columns:1fr;
  }

  .office-identity{
    position:static;
  }

  .chat-shell-sofia{
    min-height:560px;
  }
}

@media(max-width:620px){
  .chat-head-sofia{
    min-height:84px;
    padding:16px;
    align-items:center;
  }

  .chat-head-sofia .chat-avatar{
    width:46px;
    height:46px;
    flex-basis:46px;
  }

  .chat-head-sofia .chat-connection{
    margin-left:auto;
    font-size:.68rem;
    padding:6px 8px;
  }

  .chat-shell-sofia .messages{
    min-height:330px;
    padding:18px 14px;
  }

  .message-row{
    gap:8px;
  }

  .message-brand{
    width:38px;
    height:38px;
    flex-basis:38px;
  }

  .message-brand img{
    width:25px !important;
    height:25px !important;
    max-width:25px !important;
    max-height:25px !important;
  }

  .chat-shell-sofia .bubble{
    max-width:82%;
    padding:12px 14px;
  }

  .chat-shell-sofia .bubble.user{
    max-width:84%;
  }

  .chat-form-sofia{
    grid-template-columns:1fr 58px;
    gap:8px;
    padding:12px 12px 8px;
  }

  .chat-form-sofia textarea{
    min-height:54px;
    padding:15px 14px;
  }

  .send-icon-btn{
    width:58px;
    min-width:58px;
    height:54px;
    min-height:54px;
    border-radius:16px;
  }
}
