/* Nova-Terra — Tema PREMIUM (dark + oro). Se aplica solo en el sitio público
   (body.premium), sobre app.css. El CMS conserva su tema propio. */

body.premium{
  --gold:#E3A94A; --gold-2:#F2C066; --on-gold:#1A1206;
  --pbg:#070C1A; --pbg2:#0B1226; --psurface:#111C34; --psurface-2:#0E1728;
  --pborder:rgba(255,255,255,.09); --pborder-soft:rgba(255,255,255,.06);
  --pfg:#EAF0FB; --pmuted:#9DAECB; --psubtle:#7788A6;
  /* A11y (WCAG 1.4.3): alinear los tokens genéricos con el tema oscuro; si no,
     los estilos que usan var(--fg-muted/subtle) resuelven al valor claro
     (#475569) sobre fondo navy => contraste ~2.6:1, casi invisible. */
  --fg-muted:var(--pmuted);
  --fg-subtle:var(--psubtle);
  /* A11y (WCAG 2.4.7): el anillo de foco navy sería invisible sobre el fondo oscuro. */
  --ring:#F2C066;
  background:var(--pbg);
  color:var(--pfg);
}
/* Foco visible y consistente sobre el tema oscuro (teclado). */
body.premium a:focus-visible,
body.premium button:focus-visible,
body.premium input:focus-visible,
body.premium select:focus-visible,
body.premium textarea:focus-visible,
body.premium [tabindex]:focus-visible{
  outline:3px solid var(--gold-2);
  outline-offset:2px;
  border-radius:8px;
}
/* Robustez móvil: evitar overflow horizontal (texto cortado por la derecha) */
html{overflow-x:hidden}
body.premium{overflow-x:hidden}
@media (max-width:640px){
  /* Hero: chips en una sola fila deslizable (evita que se encimen sobre el video) */
  .hero-collage .badge-float{flex-wrap:nowrap;overflow-x:auto;bottom:12px;left:12px;right:12px;gap:6px;
    scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px}
  .hero-collage .badge-float::-webkit-scrollbar{display:none}
  .hero-collage .chip{flex:0 0 auto;font-size:.72rem;padding:5px 10px}
  body.premium .timeline{flex-direction:column;align-items:stretch;gap:14px}
  body.premium .timeline::before{display:none}
  /* Cada hito: círculo a la izquierda (2 filas) + nombre arriba / descripción abajo */
  body.premium .tl-node{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;
    column-gap:14px;row-gap:1px;align-items:center;text-align:left;min-width:0;width:100%}
  body.premium .tl-node .tl-dot{grid-row:1 / span 2;align-self:center}
  body.premium .tl-node .tl-name{align-self:end}
  body.premium .tl-node .tl-desc{grid-column:2;align-self:start;max-width:none}
  body.premium .stats-band .container{grid-template-columns:1fr 1fr}
  body.premium .metric-tile b{font-size:1.6rem}
}
body.premium .hero-xl .container>*{min-width:0}
body.premium h1,body.premium h2,body.premium h3,body.premium .lead{overflow-wrap:break-word}
body.premium::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(70% 55% at 82% -5%, rgba(60,110,220,.18), transparent 60%),
    radial-gradient(50% 40% at 5% 8%, rgba(227,169,74,.10), transparent 60%),
    linear-gradient(180deg,#070C1A,#0A1123 60%,#070C1A);
}

/* Tipografía / enlaces sobre oscuro */
body.premium h1,body.premium h2,body.premium h3,body.premium h4{color:var(--pfg)}
body.premium a{color:var(--gold-2)}
body.premium a:hover{color:var(--gold)}
body.premium .eyebrow{color:var(--gold)}
body.premium .muted{color:var(--pmuted)}

/* Botones: por defecto oro en el sitio premium (coherencia con el tema) */
body.premium .btn.gold,
body.premium .btn:not(.secondary):not(.ghost){background:linear-gradient(180deg,var(--gold-2),var(--gold));color:var(--on-gold);box-shadow:0 8px 24px rgba(227,169,74,.28)}
body.premium .btn.gold:hover,
body.premium .btn:not(.secondary):not(.ghost):hover{filter:brightness(1.06);color:var(--on-gold)}
body.premium .btn.ghost{border-color:rgba(255,255,255,.28);color:#fff;background:transparent}
body.premium .btn.secondary{background:var(--psurface);color:var(--pfg);border:1px solid var(--pborder)}
body.premium .btn.secondary:hover{background:var(--psurface-2);color:#fff}

/* Heros de páginas internas (listados): más compactos, menos espacio muerto */
body.premium section.hero{padding:44px 0 36px !important}

/* Marca real: monograma + wordmark en el header */
body.premium .site-header .brand{gap:12px}
body.premium .mark-mono{height:42px;width:auto;display:block}
body.premium .brand-word{display:flex;flex-direction:column;line-height:1;font-family:var(--font-head);font-weight:800;
  font-size:1.15rem;letter-spacing:.04em;
  background:linear-gradient(180deg,#F2DCA9,var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}
body.premium .brand-word small{font-size:.6rem;font-weight:600;letter-spacing:.42em;color:var(--psubtle);
  -webkit-text-fill-color:var(--psubtle);margin-top:3px}
/* Logo completo en el footer */
body.premium .site-footer .logo-full{height:78px;width:auto;display:block}

/* Header premium (dark translúcido) */
body.premium .site-header{background:rgba(7,12,26,.82);backdrop-filter:blur(10px);border-bottom:1px solid var(--pborder-soft)}
body.premium .nav a{color:#C9D5EC}
body.premium .nav a:hover{color:#fff}
body.premium .cta-nav{margin-left:6px;padding:9px 18px;font-size:.9rem}

/* ===== HERO XL ===== */
.hero-xl{position:relative;padding:72px 0 56px}
.hero-xl .container{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center}
.hero-xl h1{font-size:clamp(2.2rem,4.6vw,3.6rem);line-height:1.05;font-weight:700;letter-spacing:-.01em;margin:.35em 0 .3em}
.hero-xl h1 .accent{color:var(--gold);display:block}
.hero-xl .lead{font-size:1.15rem;color:var(--pmuted);max-width:52ch}
.hero-xl .hero-cta{margin-top:26px}
.hero-collage{position:relative;height:360px;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--pborder);
  background:linear-gradient(135deg,#16224a,#0e1730)}
.hero-collage .glow{position:absolute;inset:0;background:
  radial-gradient(40% 60% at 25% 20%,rgba(122,31,162,.55),transparent 60%),
  radial-gradient(45% 55% at 80% 30%,rgba(30,111,224,.5),transparent 60%),
  radial-gradient(50% 50% at 60% 90%,rgba(18,181,201,.4),transparent 60%)}
.hero-collage .badge-float{position:absolute;bottom:16px;left:16px;right:16px;display:flex;gap:7px;flex-wrap:wrap;z-index:2}
.hero-collage .chip{background:rgba(8,14,32,.5);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(6px);
  color:#fff;font-family:var(--font-head);font-size:.78rem;padding:5px 11px;border-radius:999px;white-space:nowrap}

/* Rail de indicadores (derecha del hero en el mockup) */
.stat-rail{display:flex;flex-direction:column;gap:14px}
.stat-rail .sr{display:flex;align-items:center;gap:12px}
.stat-rail .sr b{font-family:var(--font-head);font-size:1.5rem;color:#fff;min-width:2.2ch;text-align:right;font-variant-numeric:tabular-nums}
.stat-rail .sr span{color:var(--pmuted);font-size:.82rem;font-family:var(--font-head);text-transform:uppercase;letter-spacing:.08em;line-height:1.2}
.stat-rail .sr .ic{width:34px;height:34px;color:var(--gold);flex-shrink:0}

/* ===== Secciones dark ===== */
body.premium .section{background:transparent}
body.premium .section.alt{background:var(--pbg2)}
body.premium .section-head p{color:var(--pmuted)}

/* ===== Cards de unidad (premium) ===== */
body.premium .grid{gap:22px}
.unit-card{position:relative;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--psurface),var(--psurface-2));
  border:1px solid var(--pborder);border-radius:18px;overflow:hidden;box-shadow:0 18px 40px rgba(0,0,0,.35);
  transition:transform .22s var(--ease),box-shadow .22s var(--ease),border-color .22s var(--ease)}
.unit-card:hover{transform:translateY(-6px);box-shadow:0 26px 60px rgba(0,0,0,.5);border-color:rgba(227,169,74,.4);text-decoration:none}
.unit-card .u-head{height:118px;position:relative;display:flex;align-items:center;justify-content:center;padding:10px}
.unit-card .u-head .u-logo{position:relative;z-index:1;width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-head);font-weight:800;font-size:1.5rem;color:#fff;background:rgba(0,0,0,.25);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.2)}
.unit-card .u-head .u-logo.has-img{width:auto;max-width:92%;height:auto;background:none;border:none;backdrop-filter:none;border-radius:0;padding:0}
.unit-card .u-head .u-logo img{max-height:104px;max-width:100%;object-fit:contain;display:block;filter:drop-shadow(0 1px 3px rgba(0,0,0,.45))}
.unit-card .u-head::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.22))}
.unit-card .u-body{padding:20px;display:flex;flex-direction:column;flex:1}
.unit-card .u-type{font-family:var(--font-head);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--psubtle);margin-bottom:8px}
.unit-card h3{font-size:1.3rem;margin:0 0 8px;color:#fff}
.unit-card p{color:var(--pmuted);font-size:.94rem;margin:0 0 16px;flex:1}
.unit-card .u-status{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;font-family:var(--font-head);font-weight:600;
  font-size:.74rem;padding:5px 12px;border-radius:999px;margin-bottom:14px;background:rgba(255,255,255,.06);border:1px solid var(--pborder)}
.unit-card .u-status .dot{width:7px;height:7px;border-radius:50%}
.unit-card .u-more{display:inline-flex;align-items:center;gap:6px;color:var(--gold-2);font-family:var(--font-head);font-weight:600;font-size:.9rem}

/* ===== ¿Por qué elegir Nova-Terra? ===== */
.why{display:grid;grid-template-columns:1fr 2.5fr;gap:30px;align-items:start}
.why-tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
@media (max-width:1000px){.why-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
.why-tile{background:var(--psurface-2);border:1px solid var(--pborder);border-radius:14px;padding:22px 18px;text-align:center}
.why-tile .ic{width:44px;height:44px;color:var(--gold);margin:0 auto 12px}
.why-tile h3{font-size:.98rem;margin:0 0 6px;color:#fff;hyphens:auto;overflow-wrap:break-word}
.why-tile p{color:var(--pmuted);font-size:.85rem;margin:0}

/* ===== Timeline de crecimiento ===== */
.timeline{position:relative;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-top:14px}
.timeline::before{content:"";position:absolute;top:33px;left:4%;right:4%;height:2px;background:linear-gradient(90deg,transparent,rgba(227,169,74,.5),transparent)}
.tl-node{position:relative;flex:1;min-width:110px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}
.tl-node .tl-dot{width:38px;height:38px;border-radius:50%;background:var(--psurface);border:2px solid var(--gold);color:var(--gold-2);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-head);font-weight:700;font-size:.85rem;z-index:1}
.tl-node .tl-name{font-family:var(--font-head);font-weight:600;color:#fff;font-size:.9rem}
.tl-node .tl-desc{color:var(--psubtle);font-size:.78rem;max-width:16ch}

/* ===== Participa en el crecimiento ===== */
.participate{background:linear-gradient(135deg,#0e1832,#0a1122);
  border:1px solid var(--pborder);border-radius:var(--radius-lg);padding:36px 34px}
.participate .p-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:18px;margin-top:26px}
.p-item{display:flex;flex-direction:column;gap:8px}
.p-item .ic{width:40px;height:40px;color:var(--gold)}
.p-item h3{font-size:1rem;color:#fff;margin:0}
.p-item p{color:var(--pmuted);font-size:.86rem;margin:0}

/* ===== Banda de stats grande ===== */
.stats-band{background:var(--pbg2);border-top:1px solid var(--pborder-soft);border-bottom:1px solid var(--pborder-soft)}
.stats-band .container{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;padding:44px 22px;text-align:center}
.stats-band .s b{display:block;font-family:var(--font-head);font-size:2.4rem;font-weight:700;color:var(--gold-2);line-height:1;font-variant-numeric:tabular-nums}
.stats-band .s span{color:var(--pmuted);font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;margin-top:8px;display:block}

/* ===== Transparencia y avances (métricas) ===== */
.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:14px}
.metric-tile{background:var(--psurface-2);border:1px solid var(--pborder);border-radius:14px;padding:20px 18px}
.metric-tile b{display:block;font-family:var(--font-head);font-size:1.9rem;font-weight:700;color:var(--gold-2);line-height:1;font-variant-numeric:tabular-nums}
.metric-tile span{display:block;color:var(--pmuted);font-size:.86rem;margin-top:8px}

/* ===== Newsroom sobre oscuro ===== */
body.premium .news-item{background:var(--psurface-2);border-color:var(--pborder)}
body.premium .news-item h3 a{color:#fff}
body.premium .news-item p{color:var(--pmuted)}
body.premium .news-item .meta{color:var(--psubtle)}

/* ===== Footer premium ===== */
body.premium .site-footer{background:#05090f;border-top:1px solid var(--pborder-soft)}

/* Bloques internos genéricos oscuros (empresa/proyecto/alianza/noticia detalle, buscador) */
body.premium .card{background:linear-gradient(180deg,var(--psurface),var(--psurface-2));border-color:var(--pborder)}
body.premium .card h3{color:#fff}
body.premium .card p{color:var(--pmuted)}
body.premium .prose{color:var(--pfg)}
body.premium .side-card,body.premium .form-card,body.premium .value-card,body.premium .gw{background:var(--psurface-2);border-color:var(--pborder)}
body.premium .gw h3,body.premium .value-card h2{color:#fff}
body.premium .gw p,body.premium .value-card p{color:var(--pmuted)}
/* Objetivos estratégicos (Nosotros) */
.obj-list{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.obj-item{display:flex;align-items:flex-start;gap:16px;padding:20px 22px;border-radius:16px;background:var(--psurface-2,rgba(255,255,255,.03));border:1px solid var(--pborder,rgba(255,255,255,.08));box-shadow:0 10px 30px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.04)}
.obj-item .obj-n{flex:none;font-weight:800;font-size:1.15rem;line-height:1;color:var(--gold,#E5B567);min-width:2.2ch;font-variant-numeric:tabular-nums;padding-top:2px}
.obj-item .obj-t{color:var(--pfg,#e8eef8);line-height:1.55;font-size:1.02rem}
body.premium .facts>div{border-color:var(--pborder-soft)}
body.premium .facts dd{color:var(--pfg)}
body.premium .field label{color:var(--pfg)}
body.premium .field input,body.premium .field textarea,body.premium .field select{background:var(--pbg2);border-color:var(--pborder);color:var(--pfg)}
body.premium .trust .stat b{color:#fff}
body.premium .search-box input{background:var(--pbg2);border-color:var(--pborder);color:var(--pfg)}

@media (max-width:900px){
  .hero-xl .container{grid-template-columns:minmax(0,1fr)}
  .hero-xl .lead{max-width:100%}
  .hero-collage{height:240px;max-width:100%}
  .why{grid-template-columns:minmax(0,1fr)}
  .stats-band .container{grid-template-columns:repeat(2,1fr);gap:26px}
}

/* ============================================================
   MOTION PREMIUM — scroll reveal + micro-interacciones (restraint)
   ============================================================ */
.reveal{opacity:0;transform:translateY(20px);
  transition:opacity .72s cubic-bezier(.22,.61,.36,1), transform .72s cubic-bezier(.22,.61,.36,1);
  will-change:opacity,transform}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.09s}
.reveal.d2{transition-delay:.18s}
.reveal.d3{transition-delay:.27s}
.reveal.d4{transition-delay:.36s}

/* Cards: elevación + halo dorado sutil al hover (Linear/Stripe vibe) */
.unit-card:hover{box-shadow:0 30px 66px rgba(0,0,0,.52), 0 0 38px rgba(227,169,74,.16)}
.gw{transition:transform .28s var(--ease), box-shadow .28s var(--ease), border-color .28s var(--ease)}
.gw:hover{box-shadow:0 22px 50px rgba(0,0,0,.4), 0 0 26px rgba(227,169,74,.12)}
.card:hover{box-shadow:0 24px 56px rgba(0,0,0,.45)}

/* Botón oro: brillo que recorre al hover */
body.premium .btn.gold, body.premium .btn:not(.secondary):not(.ghost){position:relative;overflow:hidden}
body.premium .btn.gold::after, body.premium .btn:not(.secondary):not(.ghost)::after{
  content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);
  transform:skewX(-18deg);transition:left .6s var(--ease)}
body.premium .btn.gold:hover::after, body.premium .btn:not(.secondary):not(.ghost):hover::after{left:130%}

/* Rail de indicadores: número con transición al contar */
.stat-rail .sr b{transition:color .3s var(--ease)}

/* Hero collage: profundidad sutil (parallax por scroll, vía --py) */
.hero-collage{transform:translateY(calc(var(--py,0) * -1px));transition:transform .1s linear}

@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1 !important;transform:none !important;transition:none}
  .hero-collage{transform:none !important}
  body.premium .btn::after{display:none}
}

/* Timeline: la línea se dibuja y los nodos aparecen al entrar en viewport */
.timeline::before{transform:scaleX(0);transform-origin:left center;transition:transform 1.05s cubic-bezier(.22,.61,.36,1) .15s}
.timeline.in::before{transform:scaleX(1)}
.timeline .tl-node{opacity:0;transform:translateY(14px);transition:opacity .55s var(--ease), transform .55s var(--ease)}
.timeline.in .tl-node{opacity:1;transform:none}
.timeline.in .tl-node:nth-child(2){transition-delay:.12s}
.timeline.in .tl-node:nth-child(3){transition-delay:.22s}
.timeline.in .tl-node:nth-child(4){transition-delay:.32s}
.timeline.in .tl-node:nth-child(5){transition-delay:.42s}
.timeline.in .tl-node:nth-child(6){transition-delay:.52s}
@media (prefers-reduced-motion: reduce){
  .timeline::before{transform:none !important;transition:none}
  .timeline .tl-node{opacity:1 !important;transform:none !important;transition:none}
}

/* Knowledge Layer — resultados de búsqueda unificados (ordenados por relevancia) */
.kl-results{display:flex;flex-direction:column;gap:10px;max-width:820px}
.kl-hit{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;border-radius:14px;
  background:rgba(255,255,255,.03);border:1px solid rgba(227,169,74,.14);color:inherit;
  text-decoration:none;transition:border-color .2s ease,background .2s ease,transform .2s ease}
.kl-hit:hover{border-color:rgba(227,169,74,.5);background:rgba(227,169,74,.06);transform:translateY(-1px)}
.kl-type{flex:0 0 auto;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--gold,#E3A94A);border:1px solid rgba(227,169,74,.35);border-radius:999px;
  padding:4px 10px;margin-top:2px;white-space:nowrap}
.kl-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.kl-body strong{font-weight:600;line-height:1.3}
.kl-sum{color:var(--nav-fg,#9aa4bf);font-size:.9rem;line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ===== Nova AI — asistente flotante ===== */
.nova-ai{position:fixed;right:20px;bottom:20px;z-index:1000;font-family:inherit}
.nova-fab{display:inline-flex;align-items:center;gap:9px;padding:12px 18px;border:none;cursor:pointer;
  border-radius:999px;font-weight:600;font-size:.95rem;color:#0a0f1e;
  background:linear-gradient(135deg,#F2C066,#E3A94A);
  box-shadow:0 10px 30px rgba(227,169,74,.35),0 2px 8px rgba(0,0,0,.3);
  transition:transform .2s ease,box-shadow .2s ease}
.nova-fab:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(227,169,74,.45)}
.nova-fab svg{flex:0 0 auto}
.nova-ai.open .nova-fab{transform:scale(.96);opacity:.9}

/* El atributo hidden debe ocultar el panel (display:flex de abajo lo pisaba). */
.nova-panel[hidden]{display:none !important}
.nova-panel{position:absolute;right:0;bottom:64px;width:min(380px,calc(100vw - 40px));
  height:min(560px,70vh);display:flex;flex-direction:column;overflow:hidden;
  background:#0b1020;border:1px solid rgba(227,169,74,.22);border-radius:18px;
  box-shadow:0 24px 70px rgba(0,0,0,.55);animation:novaIn .22s cubic-bezier(.22,.61,.36,1)}
@keyframes novaIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
.nova-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;
  border-bottom:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.02)}
.nova-title{font-weight:600;font-size:.9rem;display:flex;align-items:center;gap:8px;color:#f4f6fb}
.nova-dot{width:8px;height:8px;border-radius:50%;background:#5fd08a;box-shadow:0 0 0 3px rgba(95,208,138,.18)}
.nova-x{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:#9aa4bf;font-size:1.5rem;line-height:1;cursor:pointer;padding:0}
.nova-x:hover{color:#fff}

.nova-log{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}
.nova-msg{max-width:86%;padding:10px 13px;border-radius:14px;font-size:.92rem;line-height:1.5;white-space:normal}
.nova-msg.bot{align-self:flex-start;background:rgba(255,255,255,.05);color:#e7ebf5;border-bottom-left-radius:5px}
.nova-msg.user{align-self:flex-end;background:linear-gradient(135deg,#E3A94A,#caa049);color:#0a0f1e;border-bottom-right-radius:5px}
.nova-msg.typing{color:#9aa4bf;letter-spacing:.15em;animation:novaPulse 1.1s ease-in-out infinite}
@keyframes novaPulse{0%,100%{opacity:.4}50%{opacity:1}}
.nova-src{align-self:flex-start;display:flex;flex-direction:column;gap:5px;margin:-2px 0 4px}
.nova-src a{font-size:.8rem;color:var(--gold,#E3A94A);text-decoration:none;padding:5px 10px;
  border:1px solid rgba(227,169,74,.28);border-radius:9px;transition:background .18s ease}
.nova-src a:hover{background:rgba(227,169,74,.1)}

.nova-form{display:flex;gap:8px;padding:12px;border-top:1px solid rgba(255,255,255,.07)}
.nova-form input{flex:1;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
  border-radius:11px;padding:11px 13px;color:#f4f6fb;font-size:.92rem;font-family:inherit}
.nova-form input:focus{outline:none;border-color:rgba(227,169,74,.55);background:rgba(255,255,255,.07)}
.nova-send{flex:0 0 auto;width:44px;border:none;border-radius:11px;cursor:pointer;color:#0a0f1e;
  background:linear-gradient(135deg,#F2C066,#E3A94A);display:grid;place-items:center;transition:transform .15s ease}
.nova-send:hover{transform:scale(1.05)}
.nova-foot{margin:0;padding:0 14px 12px;font-size:.72rem;color:#6c7690;text-align:center}

@media (max-width:480px){
  .nova-ai{right:14px;bottom:14px}
  .nova-fab span{display:none}
  .nova-fab{padding:14px}
}
@media (prefers-reduced-motion: reduce){
  .nova-panel{animation:none}
  .nova-msg.typing{animation:none}
  .nova-fab,.nova-send{transition:none}
}

/* ===== Media Center / Sala de prensa ===== */
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(230px,100%),1fr));gap:18px}
.media-asset{display:flex;flex-direction:column;overflow:hidden;border-radius:16px;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);color:inherit;
  text-decoration:none;transition:border-color .2s ease,transform .2s ease}
a.media-asset:hover{border-color:rgba(227,169,74,.5);transform:translateY(-3px)}
.ma-preview{aspect-ratio:16/10;display:grid;place-items:center;position:relative;overflow:hidden;
  background:linear-gradient(135deg,rgba(255,255,255,.04),rgba(255,255,255,.01))}
.ma-preview img{width:100%;height:100%;object-fit:contain}
.brand-preview{background:radial-gradient(circle at 50% 45%,rgba(227,169,74,.10),transparent 70%),#0a0f1e}
/* El logo entra COMPLETO con margen (max-*), sin heredar width/height:100% que
   con el padding lo hacía desbordar y recortarse. */
.brand-preview img{width:auto;height:auto;max-width:76%;max-height:70%;object-fit:contain;padding:0}
.ma-ph{color:#6c7690;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}
.ma-body{padding:14px 15px;display:flex;flex-direction:column;gap:5px}
.ma-body strong{font-weight:600;line-height:1.3}
.ma-desc{color:#9aa4bf;font-size:.86rem;line-height:1.45}
.btn.ghost.sm{align-self:flex-start;margin-top:8px;padding:7px 14px;font-size:.82rem;
  background:transparent;border:1px solid rgba(227,169,74,.4);color:var(--gold,#E3A94A);border-radius:9px}
.btn.ghost.sm:hover{background:rgba(227,169,74,.1)}

/* Video: póster con botón play */
.video-preview .play{position:absolute;inset:0;margin:auto;width:54px;height:54px;display:grid;place-items:center;
  border-radius:50%;background:rgba(227,169,74,.92);color:#0a0f1e;box-shadow:0 8px 24px rgba(0,0,0,.4);
  transition:transform .2s ease}
.video-preview{background:#0a0f1e}
a.video-asset:hover .play{transform:scale(1.08)}

/* Galería */
.media-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));gap:12px}
.gal-item{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;border-radius:14px;
  border:1px solid rgba(255,255,255,.08);background:#0b1226}
.gal-item img{width:100%;height:100%;object-fit:contain;transition:transform .4s ease}
.gal-item:hover img{transform:scale(1.06)}
.gal-cap{position:absolute;left:0;right:0;bottom:0;padding:22px 12px 10px;font-size:.82rem;color:#fff;
  background:linear-gradient(transparent,rgba(6,10,22,.85));opacity:0;transition:opacity .2s ease}
.gal-item:hover .gal-cap,
.gal-item:focus-visible .gal-cap{opacity:1}

/* Documentos / comunicados */
.doc-list{display:flex;flex-direction:column;gap:10px;max-width:820px}
.doc-row{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:13px;color:inherit;
  text-decoration:none;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);transition:border-color .2s ease}
.doc-row:hover{border-color:rgba(227,169,74,.5)}
.doc-ico{flex:0 0 auto;color:var(--gold,#E3A94A)}
.doc-meta{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.doc-cta{flex:0 0 auto;font-size:.8rem;color:var(--gold,#E3A94A);border:1px solid rgba(227,169,74,.35);
  border-radius:8px;padding:5px 12px}
@media (prefers-reduced-motion: reduce){
  a.media-asset:hover,.gal-item:hover img,a.video-asset:hover .play{transform:none}
}

/* ===== Newsroom avanzado ===== */
.badge.gold{background:linear-gradient(135deg,#F2C066,#E3A94A);color:#0a0f1e}
.badge.sm{font-size:.68rem;padding:2px 8px;margin:0}

/* Noticia destacada (hero) */
.feat-story{display:grid;grid-template-columns:1.15fr 1fr;gap:0;overflow:hidden;border-radius:20px;color:inherit;
  text-decoration:none;background:rgba(255,255,255,.03);border:1px solid rgba(227,169,74,.22);
  transition:border-color .2s ease,transform .2s ease}
.feat-story:hover{border-color:rgba(227,169,74,.55);transform:translateY(-3px)}
.feat-story.no-img{grid-template-columns:1fr}
.fs-img{position:relative;min-height:280px;overflow:hidden;background:#0b1226}
.fs-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.fs-body{padding:30px 32px;display:flex;flex-direction:column;justify-content:center;gap:12px}
.fs-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:#9aa4bf;font-size:.84rem}
.fs-meta .badge{margin:0}
.fs-body h2{font-size:clamp(1.4rem,2.6vw,2rem);line-height:1.2;margin:0}
.fs-body p{color:#c4ccdd;margin:0;max-width:52ch}
.fs-cta{color:var(--gold,#E3A94A);font-weight:600;margin-top:4px}

/* Filtros por categoría */
.news-filters{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:24px}
.news-filters .chip{padding:8px 16px;border-radius:999px;font-size:.86rem;text-decoration:none;color:#c4ccdd;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);transition:all .18s ease}
.news-filters .chip:hover{border-color:rgba(227,169,74,.5);color:#fff}
.news-filters .chip.on{background:linear-gradient(135deg,#F2C066,#E3A94A);color:#0a0f1e;border-color:transparent;font-weight:600}

/* Tarjetas con portada */
.news-card{overflow:hidden}
.nc-img{aspect-ratio:16/9;overflow:hidden;margin:-1px -1px 0;background:#0b1226}
.nc-img img{width:100%;height:100%;object-fit:contain;transition:transform .4s ease}
.news-card:hover .nc-img img{transform:scale(1.05)}

@media (max-width:720px){
  .feat-story{grid-template-columns:1fr}
  .fs-img{min-height:200px}
}
@media (prefers-reduced-motion: reduce){
  .feat-story:hover,.news-card:hover .nc-img img{transform:none}
}

/* ===== Investor Center ===== */
.inv-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr));gap:14px}
.inv-metric{padding:24px 20px;border-radius:16px;text-align:center;
  background:rgba(255,255,255,.03);border:1px solid rgba(227,169,74,.2)}
.inv-metric b{display:block;font-size:2.2rem;line-height:1;color:var(--gold,#E3A94A);font-family:var(--font-head)}
.inv-metric span{display:block;margin-top:8px;color:#c4ccdd;font-size:.9rem}
.inv-metric.alt b{color:#fff}

.inv-thesis{display:grid;grid-template-columns:1.1fr 1fr;gap:38px;align-items:start}
.inv-pillars{display:flex;flex-direction:column;gap:14px}
.inv-pillar{padding:18px 20px;border-radius:14px;background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.08);border-left:3px solid var(--gold,#E3A94A)}
.inv-pillar h3{margin:0 0 4px;font-size:1.05rem}
.inv-pillar p{margin:0;color:#9aa4bf;font-size:.92rem;line-height:1.5}

.inv-cta{text-align:center;padding:40px 20px;border-radius:20px;
  background:radial-gradient(circle at 50% 0%,rgba(227,169,74,.12),transparent 70%),rgba(255,255,255,.02);
  border:1px solid rgba(227,169,74,.22)}
.inv-cta h2{margin:0 0 8px}
.inv-cta .lead{margin:0 auto 20px;max-width:46ch}
.btn.ghost{background:transparent;border:1px solid rgba(227,169,74,.4);color:var(--gold,#E3A94A)}
.btn.ghost:hover{background:rgba(227,169,74,.1)}
@media (max-width:720px){ .inv-thesis{grid-template-columns:1fr;gap:24px} }

/* ===== Sostenibilidad — ODS ===== */
.sdg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(150px,100%),1fr));gap:12px}
.sdg-tile{position:relative;display:flex;flex-direction:column;gap:8px;padding:16px 16px 18px;border-radius:14px;
  min-height:112px;color:#fff;background:var(--sdg,#19486A);overflow:hidden;
  box-shadow:0 8px 24px rgba(0,0,0,.25)}
.sdg-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,transparent,rgba(0,0,0,.22))}
.sdg-num{position:relative;font-family:var(--font-head);font-weight:700;font-size:1.9rem;line-height:1}
.sdg-label{position:relative;font-size:.9rem;font-weight:600;line-height:1.25;margin-top:auto}

/* Nova AI — sugerencias iniciales */
.nova-sugg{display:flex;flex-direction:column;gap:7px;margin-top:4px}
.nova-sugg button{text-align:left;padding:9px 12px;border-radius:11px;cursor:pointer;font:inherit;font-size:.86rem;
  color:#c4ccdd;background:rgba(227,169,74,.06);border:1px solid rgba(227,169,74,.22);transition:all .18s ease}
.nova-sugg button:hover{background:rgba(227,169,74,.13);color:#fff;border-color:rgba(227,169,74,.45)}

/* ===== Investor Center — rediseño premium ===== */
.inv-hero{position:relative;overflow:hidden;padding:76px 0 46px;
  background:radial-gradient(1100px 420px at 78% -10%,rgba(227,169,74,.16),transparent 62%),
             radial-gradient(700px 320px at 8% 8%,rgba(96,165,250,.10),transparent 60%)}
.inv-hero .eyebrow{color:var(--gold-2)}
.inv-hero h1{font-size:clamp(2rem,4.6vw,3.2rem);line-height:1.05;max-width:16ch;margin:.15em 0}
.inv-lead{max-width:60ch;color:#c8d2e6;font-size:1.12rem}
.inv-hero-cta{margin-top:24px;display:flex;gap:12px;flex-wrap:wrap}

/* Portafolio de unidades (con logos) */
.inv-portfolio{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(210px,100%),1fr));gap:16px}
.inv-unit{display:flex;flex-direction:column;overflow:hidden;border-radius:18px;color:inherit;text-decoration:none;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);
  transition:border-color .22s ease,transform .22s ease,box-shadow .22s ease}
.inv-unit:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--uc) 55%,transparent);
  box-shadow:0 18px 44px rgba(0,0,0,.4)}
.inv-unit-media{position:relative;aspect-ratio:16/10;display:grid;place-items:center;overflow:hidden;
  background:radial-gradient(circle at 50% 40%,color-mix(in srgb,var(--uc) 22%,transparent),transparent 70%),#0a1020}
.inv-unit-logo{max-width:66%;max-height:56%;object-fit:contain;filter:drop-shadow(0 6px 14px rgba(0,0,0,.4))}
/* Cover del portafolio: contain para no recortar la imagen (grilla alineada). */
.inv-unit-cover{width:100%;height:100%;object-fit:contain}
.inv-mono{width:64px;height:64px;border-radius:16px;display:grid;place-items:center;font-family:var(--font-head);
  font-weight:700;font-size:1.8rem;color:#0a0f1e;background:linear-gradient(135deg,var(--uc),color-mix(in srgb,var(--uc) 60%,#fff))}
.inv-unit-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:3px}
.inv-unit-body strong{font-weight:600}
.inv-phase{align-self:flex-start;font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;margin:2px 0;
  color:var(--gold-2);border:1px solid rgba(227,169,74,.32);border-radius:999px;padding:3px 9px}
.inv-unit-tag{color:#9aa4bf;font-size:.86rem;line-height:1.4}

/* Oportunidades con imagen */
.inv-opps{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:18px;align-items:start}
.opp-card{display:flex;flex-direction:column;overflow:hidden;border-radius:18px;color:inherit;text-decoration:none;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);
  transition:border-color .22s ease,transform .22s ease,box-shadow .22s ease}
.opp-card:hover{transform:translateY(-4px);border-color:rgba(227,169,74,.5);box-shadow:0 18px 44px rgba(0,0,0,.42)}
/* Panel de proporción fija (tarjetas parejas) con el flyer COMPLETO adentro,
   nunca recortado: object-fit:contain lo centra y el fondo de marca rellena. */
.opp-media{position:relative;overflow:hidden;aspect-ratio:4/5;
  background:linear-gradient(135deg,var(--uc),color-mix(in srgb,var(--uc) 45%,#050914))}
.opp-media img{width:100%;height:100%;object-fit:contain;display:block}
.opp-media.no-img{display:grid;place-items:center}
.opp-ph{font-family:var(--font-head);font-weight:700;letter-spacing:.03em;color:rgba(255,255,255,.92);
  font-size:1.15rem;text-align:center;padding:0 16px;text-shadow:0 2px 10px rgba(0,0,0,.4)}
.opp-stage{position:absolute;top:12px;left:12px;font-size:.68rem;letter-spacing:.05em;text-transform:uppercase;
  color:#0a0f1e;background:linear-gradient(135deg,#F2C066,#E3A94A);border-radius:999px;padding:4px 11px;font-weight:700}
.opp-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:7px}
.opp-body h3{font-size:1.16rem;margin:0;line-height:1.25}
.opp-body p{color:#c4ccdd;margin:0;font-size:.94rem;line-height:1.5}
.opp-cta{color:var(--gold-2);font-weight:600;font-size:.9rem;margin-top:2px}

@media (prefers-reduced-motion: reduce){
  .inv-unit:hover,.opp-card:hover{transform:none}
  .opp-card:hover .opp-media img{transform:none}
}

/* A prueba de desbordamiento en móvil: los items de grilla deben poder encogerse
   por debajo del tamaño de su contenido (min-width:auto por defecto lo impide). */
.inv-metric,.inv-unit,.opp-card{min-width:0}
.inv-unit-body,.opp-body{min-width:0}
@media (max-width:600px){
  .inv-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .inv-portfolio{grid-template-columns:repeat(2,minmax(0,1fr))}
  .inv-opps{grid-template-columns:minmax(0,1fr)}
  .inv-hero{padding:52px 0 34px}
  .inv-hero h1{font-size:clamp(1.7rem,7vw,2.3rem)}
}
@media (max-width:380px){
  .inv-metrics,.inv-portfolio{grid-template-columns:minmax(0,1fr)}
}

/* ===== Alianzas de impacto (Sostenibilidad) — premium con logo/monograma ===== */
.ally-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:18px}
.ally-card{display:flex;gap:16px;align-items:center;padding:18px;border-radius:18px;color:inherit;text-decoration:none;min-width:0;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);
  transition:border-color .22s ease,transform .22s ease,box-shadow .22s ease}
.ally-card:hover{transform:translateY(-4px);border-color:rgba(227,169,74,.5);box-shadow:0 16px 40px rgba(0,0,0,.4)}
.ally-media{flex:0 0 auto;width:76px;height:76px;border-radius:16px;display:grid;place-items:center;overflow:hidden;
  background:radial-gradient(circle at 50% 40%,rgba(96,165,250,.18),transparent 70%),#0b1226;border:1px solid rgba(255,255,255,.08)}
.ally-media img{max-width:80%;max-height:70%;object-fit:contain}
.ally-mono{font-family:var(--font-head);font-weight:700;font-size:1.7rem;color:#0a0f1e;width:52px;height:52px;border-radius:14px;
  display:grid;place-items:center;background:linear-gradient(135deg,#F2C066,#E3A94A)}
.ally-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.ally-body strong{font-weight:600;line-height:1.3}
.ally-partner{color:var(--gold-2);font-size:.86rem;font-weight:600}
.ally-sum{color:#9aa4bf;font-size:.9rem;line-height:1.45}
@media (prefers-reduced-motion: reduce){ .ally-card:hover{transform:none} }

/* ===== HERO 3 columnas (texto | collage | rail vertical) — mockup ===== */
.hero-3 .hero-3-grid{display:grid;grid-template-columns:1.15fr 1.12fr .6fr;gap:30px;align-items:center}
.hero-copy{min-width:0}
/* El titular NO debe partir palabras (hereda break-word del tema): forzar normal. */
body.premium .hero-head{overflow-wrap:normal;word-break:normal;hyphens:none}
.hero-head{font-family:var(--font-head);font-weight:800;line-height:1.04;letter-spacing:.005em;
  text-transform:uppercase;font-size:clamp(1.35rem,2.3vw,1.95rem);color:#fff;margin:.2em 0 .35em}
.hero-head .accent{display:block;font-size:clamp(2.1rem,4vw,3.2rem);line-height:.95;margin:.06em 0;
  background:linear-gradient(180deg,#F6D488,var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-head .hero-l2{display:block;font-size:clamp(1.05rem,1.7vw,1.35rem);color:#E7EDF9;font-weight:700}
.hero-3 .lead{font-size:1.04rem;color:var(--pmuted);max-width:46ch;margin-top:6px}
.hero-3 .hero-cta{margin-top:22px;display:flex;gap:12px;flex-wrap:wrap}
.hero-3 .hero-collage{height:100%;min-height:340px}

/* Rail vertical de indicadores del ecosistema */
.hero-rail{display:flex;flex-direction:column;gap:8px;min-width:0}
.hr-item{display:flex;align-items:center;gap:13px;padding:9px 4px;border-bottom:1px solid rgba(255,255,255,.07)}
.hr-item:last-child{border-bottom:0}
.hr-ic{flex:0 0 auto;width:30px;height:30px;color:var(--gold);display:block}
.hr-ic svg{width:100%;height:100%}
.hr-txt{display:flex;flex-direction:column;gap:1px;min-width:0}
.hr-txt b{font-family:var(--font-head);font-size:1.35rem;line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.hr-txt span{font-family:var(--font-head);font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--pmuted);line-height:1.25}
.hero-3 .btn{text-transform:uppercase;letter-spacing:.03em;font-size:.86rem}

@media (max-width:960px){
  .hero-3 .hero-3-grid{grid-template-columns:1fr;gap:26px}
  .hero-3 .hero-collage{min-height:240px}
  .hero-rail{flex-direction:row;flex-wrap:wrap;gap:10px 22px}
  .hr-item{border-bottom:0;flex:1 1 42%}
}

/* ===== Ecosistema: 6 tarjetas en una fila (mockup) ===== */
@media (min-width:1120px){ #empresas .grid{grid-template-columns:repeat(6,1fr);gap:16px} }
@media (min-width:760px) and (max-width:1119px){ #empresas .grid{grid-template-columns:repeat(3,1fr)} }
#empresas .unit-card .u-head{height:118px}
#empresas .u-body{padding:14px 13px 15px}
#empresas .u-type{font-size:.62rem}
#empresas .unit-card h3{font-size:1.02rem}
/* Evento destacado dentro de la tarjeta */
.u-event{margin:10px 0 4px;padding:10px 11px;border-radius:11px;background:rgba(227,169,74,.07);border:1px solid rgba(227,169,74,.2);display:flex;flex-direction:column;gap:2px}
.u-event-lbl{font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-2)}
.u-event strong{font-size:.86rem;line-height:1.25;color:#fff}
.u-event-meta{font-size:.74rem;color:var(--pmuted)}

/* Alinear el bloque estado+evento+"Conocer más" al fondo de la tarjeta (alturas dispares) */
#empresas .u-status{margin-top:auto}
#empresas .unit-card p{font-size:.86rem;line-height:1.45}

/* Video de fondo del hero (del sitio novaterraholding.com) */
.hero-collage .hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero-collage .hero-video-tint{position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(7,12,26,.10) 0%,rgba(7,12,26,.32) 45%,rgba(5,9,20,.9) 100%)}
.hero-collage .badge-float{z-index:2}

/* Banda de foto de la empresa (separada de la cabecera de color) */
.unit-card .u-photo{height:140px;overflow:hidden;background:#0b1226}
.unit-card .u-photo img{width:100%;height:100%;object-fit:cover;display:block}
#empresas .unit-card .u-photo{height:130px}

/* ===== Página de empresa: feed de eventos a ancho completo (pósters completos) ===== */
.feed-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:18px;align-items:start}
.feed-card{display:flex;flex-direction:column;overflow:hidden;border-radius:16px;color:inherit;text-decoration:none;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);
  transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}
.feed-card:hover{transform:translateY(-4px);border-color:rgba(227,169,74,.5);box-shadow:0 16px 40px rgba(0,0,0,.4)}
.feed-img{overflow:hidden;background:#0b1226}
.feed-img img{display:block;width:100%;height:auto}      /* póster/flyer completo, sin recortar */
.feed-img.no-img{aspect-ratio:4/5}
.feed-body{padding:14px 15px 16px;display:flex;flex-direction:column;gap:6px}
.feed-body .badge.sm{align-self:flex-start;font-size:.66rem;padding:3px 9px;margin:0}
.feed-body strong{font-weight:600;line-height:1.3}
.feed-meta{color:var(--pmuted,#9aa4bf);font-family:var(--font-head);font-size:.8rem}
/* La página de empresa: el sidebar de identidad no se estira de más */
.bu-sticky{position:sticky;top:88px}

/* Nosotros: intro "Quiénes somos" alineado a la izquierda (ancho legible) */
.corp-intro{max-width:820px}

/* ===== Listado de proyectos: tarjetas consistentes ===== */
.proj-card{overflow:hidden}
.proj-cover{aspect-ratio:4/5;background-color:#0b1226;background-size:contain;background-repeat:no-repeat;background-position:center;position:relative}
.proj-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(6,10,22,.5))}
.proj-cover .stage-badge{position:absolute;top:12px;left:12px;z-index:1}
.proj-unit{margin-top:8px;font-size:.8rem;color:var(--pmuted,#9aa4bf);font-family:var(--font-head)}
/* Heros de páginas internas (listados) en el tema oscuro: sin el degradado azul */
body.premium section.hero{background:transparent}
body.premium section.hero .lead,body.premium section.hero p:not(.eyebrow){color:var(--pmuted)}

/* ===== Contacto: 2 columnas (datos + formulario) ===== */
.contact-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:38px;align-items:start}
.contact-info h2{font-size:1.5rem;margin:0 0 8px}
.contact-list{list-style:none;padding:0;margin:20px 0 0;display:flex;flex-direction:column;gap:14px}
.contact-list li{display:flex;align-items:center;gap:12px;min-width:0}
.contact-list a,.contact-list span:not(.ci-ic){color:#e7ebf5;text-decoration:none;word-break:break-word}
.contact-list a:hover{color:var(--gold-2)}
.ci-ic{flex:0 0 auto;width:38px;height:38px;display:grid;place-items:center;border-radius:11px;color:var(--gold);
  background:rgba(227,169,74,.09);border:1px solid rgba(227,169,74,.25)}
@media (max-width:820px){.contact-layout{grid-template-columns:1fr;gap:26px}}

/* ===== Portal del socio ===== */
.portal-head{display:flex;align-items:center;gap:16px;margin-bottom:6px}
.portal-avatar{flex:0 0 auto;width:56px;height:56px;border-radius:16px;display:grid;place-items:center;
  font-weight:700;font-size:1.4rem;color:#0b1020;background:linear-gradient(135deg,var(--gold),var(--gold-2));
  box-shadow:0 6px 20px rgba(227,169,74,.25)}
.account-band{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:22px 0 8px}
.acct-tile{background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.09);border-radius:16px;padding:16px 18px}
.acct-tile .k{display:block;color:var(--fg-subtle,#8b97b4);font-size:.78rem;letter-spacing:.02em;margin-bottom:6px}
.acct-tile .v{display:block;font-size:1.35rem;font-weight:700;line-height:1.15}
.acct-tile .v small{font-size:.8rem;font-weight:600;color:var(--fg-subtle,#8b97b4)}
.acct-tile.accent{border-color:rgba(227,169,74,.4);background:linear-gradient(160deg,rgba(227,169,74,.12),rgba(227,169,74,.03))}
.acct-tile.accent .v{color:var(--gold)}

/* Gráfico de barras de renta por mes (sin librerías) */
.pchart-wrap{border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:20px 22px;
  background:linear-gradient(160deg,rgba(255,255,255,.04),rgba(255,255,255,.01))}
.pchart{display:flex;align-items:flex-end;justify-content:flex-start;gap:16px;height:186px;padding-top:8px;overflow-x:auto}
.pchart-col{display:flex;flex-direction:column;align-items:center;gap:9px;flex:0 1 62px;min-width:44px}
.pchart-track{position:relative;width:100%;max-width:40px;height:150px;display:flex;align-items:flex-end;
  border-radius:8px;background:rgba(255,255,255,.04)}
.pchart-bar{width:100%;border-radius:8px 8px 0 0;min-height:4px;
  background:linear-gradient(180deg,var(--gold),rgba(227,169,74,.55));transition:height .4s ease}
.pchart-bar.pending{background:linear-gradient(180deg,rgba(140,155,190,.55),rgba(140,155,190,.2))}
.pchart-lbl{font-size:.72rem;color:var(--fg-subtle,#8b97b4);white-space:nowrap}
.pchart-val{font-size:.7rem;color:#e7ebf5;font-weight:600}
.pchart-legend{display:flex;gap:18px;margin-top:14px;font-size:.8rem;color:var(--fg-subtle,#8b97b4)}
.pchart-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}

/* Tabla del portal */
.ptable{width:100%;border-collapse:collapse;font-size:.92rem}
.ptable thead th{text-align:left;color:var(--fg-subtle,#8b97b4);font-weight:600;font-size:.8rem;
  letter-spacing:.02em;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.12)}
.ptable tbody td{padding:12px;border-bottom:1px solid rgba(255,255,255,.06);vertical-align:middle}
.ptable tbody tr:hover{background:rgba(255,255,255,.02)}
.ptable .num{text-align:right;font-variant-numeric:tabular-nums}
.ptable .accent{color:var(--gold);font-weight:600}
.pbadge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.74rem;font-weight:600;border:1px solid transparent}
.pbadge.paid{color:#8ff0be;background:rgba(31,107,65,.22);border-color:rgba(31,107,65,.5)}
.pbadge.pending{color:#f4d58d;background:rgba(180,140,40,.15);border-color:rgba(180,140,40,.4)}

/* Documentos por participación */
.pdoc{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid rgba(255,255,255,.09);
  border-radius:14px;text-decoration:none;background:rgba(255,255,255,.02);transition:border-color .2s,background .2s}
.pdoc:hover{border-color:rgba(227,169,74,.4);background:rgba(227,169,74,.05)}
.pdoc .ic{flex:0 0 auto;color:var(--gold)}
.pdoc .t{flex:1;min-width:0}
.pdoc .t strong{display:block;color:#eef1f8;font-size:.98rem}
.pdoc .t span{color:var(--fg-subtle,#8b97b4);font-size:.8rem}
.doc-list{display:grid;gap:12px;max-width:760px}

/* Novedades del portafolio — imagen COMPLETA (sin recortar) */
.nov-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:18px;margin-top:24px;align-items:start}
.nov-card{overflow:hidden}
.nov-imgwrap{background:#0a1020;display:flex;align-items:center;justify-content:center;border-bottom:1px solid rgba(255,255,255,.06)}
.nov-img{width:100%;height:auto;max-height:320px;object-fit:contain;display:block}

/* ===== Portal del socio — layout con barra lateral + profundidad ===== */
body.portal{min-height:100vh;
  background:
    radial-gradient(1100px 560px at 108% -8%, rgba(227,169,74,.10), transparent 58%),
    radial-gradient(820px 460px at -8% 6%, rgba(46,78,150,.20), transparent 55%),
    linear-gradient(180deg,#0a1122,#070c18);
  background-attachment:fixed}
.pshell{display:flex;min-height:100vh}
.pburger{display:none}

/* Barra lateral */
.pside{flex:0 0 258px;width:258px;position:sticky;top:0;align-self:flex-start;height:100vh;
  display:flex;flex-direction:column;padding:22px 16px;gap:8px;
  background:linear-gradient(180deg,rgba(13,20,40,.92),rgba(8,13,26,.96));
  border-right:1px solid rgba(227,169,74,.14);box-shadow:22px 0 60px -30px rgba(0,0,0,.7);backdrop-filter:blur(8px)}
.pbrand{display:flex;align-items:center;gap:11px;padding:6px 8px 16px;text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.07);margin-bottom:10px}
.pbrand .mark-mono{width:36px;height:36px}
.pbrand .brand-word{display:flex;flex-direction:column;line-height:1.05;font-family:var(--font-head);font-weight:800;
  color:#fff;letter-spacing:.02em;font-size:1.02rem}
.pbrand .brand-word small{font-weight:600;font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-top:3px}

.pnav{display:flex;flex-direction:column;gap:3px}
.pn{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:12px;text-decoration:none;
  color:var(--nav-fg,#b9c6e2);font-weight:500;font-size:.95rem;position:relative;transition:background .18s,color .18s}
.pn svg{width:19px;height:19px;flex:0 0 auto;opacity:.85}
.pn:hover{background:rgba(255,255,255,.05);color:#fff}
.pn.active{color:#fff;background:linear-gradient(90deg,rgba(227,169,74,.16),rgba(227,169,74,.04))}
.pn.active svg{color:var(--gold);opacity:1}
.pn.active::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;
  background:linear-gradient(180deg,var(--gold-2),var(--gold))}
.pn-badge{margin-left:auto;background:linear-gradient(135deg,var(--gold-2),var(--gold));color:#1a1206;font-size:.7rem;
  font-weight:800;border-radius:999px;padding:1px 7px;min-width:19px;text-align:center;box-shadow:0 2px 8px rgba(227,169,74,.4)}
/* Lista de notificaciones */
.notif{display:flex;gap:14px;align-items:flex-start;padding:15px 16px;border:1px solid rgba(255,255,255,.09);
  border-radius:14px;background:linear-gradient(158deg,rgba(255,255,255,.045),rgba(255,255,255,.012));text-decoration:none}
.notif:hover{border-color:rgba(227,169,74,.35)}
.notif.unread{border-color:rgba(227,169,74,.4);background:linear-gradient(158deg,rgba(227,169,74,.1),rgba(227,169,74,.02))}
.notif .nic{flex:0 0 auto;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;color:var(--gold);
  background:rgba(227,169,74,.1);border:1px solid rgba(227,169,74,.22)}
.notif .nbody{flex:1;min-width:0}
.notif .nbody strong{display:block;color:#eef1f8}
.notif .nbody p{margin:2px 0 0;color:var(--fg-subtle,#8b97b4);font-size:.88rem}
.notif .ndate{color:var(--fg-subtle,#8b97b4);font-size:.76rem;white-space:nowrap}

.pside-foot{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.07);display:flex;flex-direction:column;gap:6px}
.puser{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:12px;text-decoration:none;
  border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.02);transition:border-color .2s,background .2s}
.puser:hover,.puser.active{border-color:rgba(227,169,74,.42);background:rgba(227,169,74,.06)}
.pu-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:1rem;
  color:#1a1206;background:linear-gradient(135deg,var(--gold-2),var(--gold));flex:0 0 auto;box-shadow:0 4px 14px rgba(227,169,74,.3)}
.pu-meta{display:flex;flex-direction:column;line-height:1.12;min-width:0}
.pu-meta b{color:#fff;font-size:.9rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pu-meta small{color:var(--gold);font-size:.63rem;letter-spacing:.05em;text-transform:uppercase}
.pout{display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:10px;color:var(--nav-fg,#b9c6e2);
  text-decoration:none;font-size:.9rem;font-weight:500}
.pout:hover{color:#ffb4b4;background:rgba(255,180,180,.08)}

/* Área principal */
.pmain{flex:1;min-width:0;display:flex;flex-direction:column}
.pmain > main{flex:1}
.pmain .container{max-width:1200px}
.pfoot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:22px 34px;
  color:var(--fg-subtle,#7788a6);font-size:.82rem;border-top:1px solid rgba(255,255,255,.06)}

/* Profundidad de tarjetas del portal */
body.portal .card,body.portal .pchart-wrap{border-radius:18px}
body.portal .acct-tile{border-radius:16px;position:relative;overflow:hidden;
  background:linear-gradient(158deg,rgba(255,255,255,.07),rgba(255,255,255,.015));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 12px 28px -12px rgba(0,0,0,.6)}
body.portal .acct-tile.accent{border-color:rgba(227,169,74,.4);
  background:linear-gradient(158deg,rgba(227,169,74,.16),rgba(227,169,74,.03));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 14px 30px -12px rgba(227,169,74,.35)}
body.portal .pchart-wrap,body.portal .sc{box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 16px 34px -16px rgba(0,0,0,.6)}
.acct-tile .k,.acct-tile .v{position:relative;z-index:1}
.acct-ic{position:absolute;top:13px;right:13px;width:30px;height:30px;display:grid;place-items:center;border-radius:9px;
  color:var(--gold);background:rgba(227,169,74,.1);border:1px solid rgba(227,169,74,.22);z-index:1}
.acct-ic svg{width:16px;height:16px}

/* Dashboard del socio */
.dash-top{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;flex-wrap:wrap}
.dash-kpis{margin:26px 0 0!important;grid-template-columns:repeat(4,1fr)}
.dash-kpis .acct-tile{padding:18px}
.dash-kpis .acct-tile .v{font-size:1.5rem}
.dash-cols{display:grid;grid-template-columns:1.7fr 1fr;gap:20px;margin-top:22px;align-items:start}
.dash-side{display:grid;gap:16px}
.sc{border:1px solid rgba(255,255,255,.09);border-radius:16px;padding:18px 20px;
  background:linear-gradient(158deg,rgba(255,255,255,.055),rgba(255,255,255,.015))}
.sc-h{display:block;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}
.sc-big{font-size:1.7rem;font-weight:700;color:#fff;line-height:1;font-variant-numeric:tabular-nums}
.sc-sub{color:var(--fg-subtle,#8b97b4);font-size:.86rem;margin-top:6px}
.qa{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:11px;color:#e7ebf5;text-decoration:none;
  font-size:.92rem;font-weight:500;transition:background .2s,color .2s}
.qa+.qa{margin-top:2px}
.qa svg{color:var(--gold);flex:0 0 auto}
.qa:hover{background:rgba(227,169,74,.08);color:#fff}

/* Tarjetas de gráficos (proyección + dona) */
.dash-visual{display:grid;grid-template-columns:1.5fr 1fr;gap:20px;margin-top:22px;align-items:stretch}
.viz-card{border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:18px 20px;
  background:linear-gradient(158deg,rgba(255,255,255,.05),rgba(255,255,255,.012));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 16px 34px -16px rgba(0,0,0,.6)}
.viz-head{margin-bottom:10px}
.viz-head h2{font-size:1.05rem;margin:0}
.viz-head span{color:var(--fg-subtle,#8b97b4);font-size:.82rem}
.viz-card canvas{width:100%;display:block;cursor:crosshair}
.viz-donut{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.viz-donut canvas{flex:0 0 190px;max-width:190px;cursor:default}
.viz-legend{list-style:none;margin:0;padding:0;flex:1;min-width:150px;display:flex;flex-direction:column;gap:9px}
.viz-legend li{display:flex;align-items:center;gap:9px;font-size:.86rem}
.viz-legend .dot{width:11px;height:11px;border-radius:3px;flex:0 0 auto}
.viz-legend .lbl{flex:1;color:#e7ebf5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.viz-legend .val{color:var(--fg-subtle,#8b97b4);font-variant-numeric:tabular-nums;font-size:.82rem}
@media (max-width:900px){.dash-visual{grid-template-columns:1fr}}

/* Barra de progreso de proyecto */
.pbar{height:8px;border-radius:99px;background:rgba(255,255,255,.09);overflow:hidden}
.pbar.lg{height:11px}
.pbar>span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--gold),var(--gold-2));box-shadow:0 0 12px rgba(227,169,74,.5);transition:width .8s ease}

/* Línea de tiempo de avances */
/* Timeline de HITOS del portal (avances de proyecto). Scopeado a body.portal
   para NO colisionar con el timeline del home (.timeline/.tl-dot en premium). */
body.portal .timeline{list-style:none;margin:8px 0 0;padding:0;position:relative;display:block}
body.portal .timeline::before{content:"";position:absolute;left:9px;top:6px;bottom:6px;width:2px;background:linear-gradient(180deg,rgba(227,169,74,.5),rgba(227,169,74,.08))}
body.portal .tl-item{position:relative;padding:0 0 20px 34px}
body.portal .tl-dot{position:absolute;left:2px;top:6px;width:16px;height:16px;border-radius:50%;background:var(--gold);border:3px solid #0c1226;box-shadow:0 0 0 3px rgba(227,169,74,.18)}
body.portal .tl-card{border:1px solid rgba(255,255,255,.09);border-radius:14px;padding:16px 18px;
  background:linear-gradient(158deg,rgba(255,255,255,.05),rgba(255,255,255,.012))}
body.portal .tl-meta{color:var(--fg-subtle,#8b97b4);font-size:.82rem}
body.portal .tl-img{margin:10px 0;border-radius:10px;overflow:hidden}
body.portal .tl-img img{width:100%;display:block;max-height:340px;object-fit:contain;background:#0b1226}

/* Responsivo: barra lateral -> cajón */
@media (max-width:960px){
  .pburger{display:inline-flex;position:fixed;top:14px;left:14px;z-index:60;align-items:center;justify-content:center;
    width:44px;height:44px;border-radius:12px;border:1px solid rgba(227,169,74,.3);
    background:rgba(13,20,40,.9);color:#fff;cursor:pointer;backdrop-filter:blur(6px)}
  .pside{position:fixed;inset:0 auto 0 0;z-index:55;transform:translateX(-100%);transition:transform .25s ease;
    width:262px;flex-basis:262px;box-shadow:26px 0 70px rgba(0,0,0,.6)}
  .pside.open{transform:none}
  .pmain{width:100%}
  .pmain > main{padding-top:52px}
  .dash-kpis{grid-template-columns:repeat(2,1fr)}
  .dash-cols{grid-template-columns:1fr}
  .pfoot{padding:20px}
}
@media (max-width:560px){.dash-kpis{grid-template-columns:1fr}}
