/* ============================================================
   CAPA PREMIUM — refinamiento visual estilo banca privada
   Se carga DESPUÉS de estilos.css. Es aditiva y REVERSIBLE:
   basta con quitar el <link> de premium.css de las páginas.
   No cambia textos ni estructura: solo tipografía, aire y motion.
   ============================================================ */

/* ---- Render de texto más fino y kerning editorial ---- */
body{
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  font-feature-settings:"kern","liga","calt";
}

/* ---- Selección y scrollbar con color de marca ---- */
::selection{ background:rgba(193,39,45,.88); color:#fff; }
html{ scrollbar-width:thin; scrollbar-color:#C1272D #E9E9ED; }
::-webkit-scrollbar{ width:11px; height:11px; }
::-webkit-scrollbar-track{ background:#E9E9ED; }
::-webkit-scrollbar-thumb{ background:#C1272D; border-radius:10px; border:2px solid #E9E9ED; }
::-webkit-scrollbar-thumb:hover{ background:#8E1B1F; }

/* ---- Más aire + tipografía más grande y editorial ---- */
section{ padding:118px 0; }
.sec-cab{ margin-bottom:64px; }
.sec-cab h2{ font-size:clamp(2rem,3.9vw,2.95rem); letter-spacing:-.018em; line-height:1.04; }
.sec-cab p{ font-size:1.08rem; }
.hero h1{ font-size:clamp(2.7rem,5.6vw,4.4rem); letter-spacing:-.02em; line-height:1.02; }
.hero p{ font-size:1.2rem; }

/* ---- Kicker editorial con línea dorada ---- */
.kicker{ display:inline-flex; align-items:center; gap:12px; }
.kicker::before{ content:""; width:30px; height:2px; background:var(--oro); display:inline-block; }
.sec-cab.centro .kicker{ justify-content:center; }

/* ---- Botones premium: easing fino + brillo sutil ---- */
.btn{ transition:transform .35s cubic-bezier(.2,.7,.2,1),background .35s ease,box-shadow .35s ease,border-color .35s ease,filter .35s ease; letter-spacing:.01em; }
.btn.oro{ position:relative; overflow:hidden; box-shadow:0 8px 24px rgba(193,39,45,.26); }
.btn.oro::after{ content:""; position:absolute; top:0; left:-130%; width:55%; height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.38),transparent);
  transform:skewX(-18deg); transition:left .6s ease; }
.btn.oro:hover::after{ left:140%; }
.btn.oro:hover{ transform:translateY(-2px); box-shadow:0 14px 32px rgba(193,39,45,.4); }

/* ---- Cards premium: elevación suave + línea dorada superior ---- */
.prop,.testi,.persona,.aliado,.hl-cel,.pilar,.faq-item{
  transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s ease,background .45s ease,border-color .45s ease; }
.prop,.hl-cel{ position:relative; }
.prop::before,.hl-cel::before{ content:""; position:absolute; top:0; left:0; right:0; height:3px; z-index:6;
  background:linear-gradient(90deg,#D8383E,#8E1B1F); transform:scaleX(0); transform-origin:left;
  transition:transform .45s cubic-bezier(.2,.7,.2,1); }
.prop:hover::before,.hl-cel:hover::before{ transform:scaleX(1); }
.prop:hover,.testi:hover,.persona:hover,.hl-cel:hover{ transform:translateY(-8px); box-shadow:0 28px 60px rgba(19,19,22,.16); }
.aliado:hover,.pilar:hover{ transform:translateY(-6px); }

/* ---- Profundidad sutil en secciones oscuras ---- */
.verde-sec{ position:relative; }
.verde-sec::after{ content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(120% 82% at 12% 0%, rgba(193,39,45,.12), transparent 55%); }
.verde-sec .wrap{ position:relative; z-index:1; }

/* ---- Header que se condensa al hacer scroll ---- */
header{ transition:background .3s ease, box-shadow .3s ease; }
header.scrolled{ background:rgba(248,246,241,.96); box-shadow:0 6px 24px rgba(19,19,22,.10); }
.nav{ transition:height .35s cubic-bezier(.2,.7,.2,1); }
header.scrolled .nav{ height:76px; }
.logo img{ transition:height .35s cubic-bezier(.2,.7,.2,1),transform .25s ease; }
header.scrolled .logo img{ height:64px; }

/* ---- Reveal on scroll más sofisticado (la cascada la aplica premium.js) ---- */
.rv{ transform:translateY(34px);
  transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1); }

/* ---- Entrada elegante del hero (solo CSS, sin depender de JS) ---- */
@keyframes lvHeroUp{ from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:none} }
.hero-int>*{ animation:lvHeroUp 1s cubic-bezier(.2,.7,.2,1) backwards; }
.hero-int>*:nth-child(1){ animation-delay:.15s }
.hero-int>*:nth-child(2){ animation-delay:.30s }
.hero-int>*:nth-child(3){ animation-delay:.45s }
.hero-int>*:nth-child(4){ animation-delay:.60s }

/* ---- Fade-in de página (solo CSS: nunca deja la página oculta) ---- */
@keyframes lvPageIn{ from{opacity:0} to{opacity:1} }
body{ animation:lvPageIn .5s ease; }

/* ---- Micro-detalles ---- */
.met{ transition:background .35s ease; }
.met:hover{ background:rgba(193,39,45,.03); }
.hexa{ transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s ease; }
.hexa:hover{ box-shadow:0 20px 40px rgba(193,39,45,.30); }
.campo input,.campo select{ transition:border-color .25s ease,box-shadow .25s ease,background .25s ease; }
a,.btn,.social a,.wa-flotante{ -webkit-tap-highlight-color:transparent; }

/* ---- Menos padding en móvil (compensa el aire extra) ---- */
@media(max-width:640px){
  section{ padding:76px 0; }
  .sec-cab{ margin-bottom:44px; }
}

/* ---- Accesibilidad: respetar quien prefiere menos movimiento ---- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; scroll-behavior:auto!important; }
  .hero-int>*{ animation:none; }
}

/* ============================================================
   CAPA PREMIUM v2 — cinematográfico
   Hero más dramático · cards de lujo · sección tipo "video"
   ============================================================ */

/* ---- HERO CINEMATOGRÁFICO ---- */
/* Ken Burns más marcado y lento (redefine kb; solo lo usa el hero) */
@keyframes kb{ from{transform:scale(1.05)} to{transform:scale(1.18) translate(-1.4%,-1%)} }
.hero-slides .sl.act{ animation-duration:12s; }
.hero-slides .sl{ transition:opacity 2s ease; }
/* Viñeta cinematográfica + grano de película sobre la imagen (bajo el texto) */
.hero::after{ content:""; position:absolute; inset:0; z-index:2; pointer-events:none;
  background:radial-gradient(125% 95% at 50% 38%, transparent 42%, rgba(19,19,22,.6)); }
.hero::before{ content:""; position:absolute; inset:0; z-index:2; pointer-events:none; opacity:.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.hero .wrap{ z-index:3; }
/* Indicador de scroll (lo inserta premium.js) */
.scroll-cue{ position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:4;
  width:26px; height:42px; border:2px solid rgba(255,255,255,.4); border-radius:20px; transition:opacity .5s ease; }
.scroll-cue span{ position:absolute; top:8px; left:50%; width:4px; height:8px; margin-left:-2px;
  background:var(--oro-claro); border-radius:2px; animation:lvCue 1.9s infinite; }
@keyframes lvCue{ 0%{opacity:0;transform:translateY(0)} 30%{opacity:1} 65%{opacity:1;transform:translateY(15px)} 100%{opacity:0;transform:translateY(15px)} }
.scroll-cue.oculto{ opacity:0; }

/* ---- CARDS DE LUJO ---- */
.prop{ overflow:hidden; }
.prop::after{ content:""; position:absolute; inset:0; z-index:5; pointer-events:none;
  background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.14) 50%,transparent 62%);
  transform:translateX(-110%); transition:transform .85s cubic-bezier(.2,.7,.2,1); }
.prop:hover::after{ transform:translateX(110%); }
.prop:hover{ border-color:rgba(193,39,45,.35);
  box-shadow:0 30px 70px -14px rgba(19,19,22,.30), 0 10px 24px rgba(19,19,22,.10); }
.prop:hover .foto img{ transform:scale(1.08); filter:brightness(1.05) saturate(1.05); }
.testi:hover,.persona:hover{ box-shadow:0 28px 60px -12px rgba(19,19,22,.22); border-color:rgba(193,39,45,.28); }
.persona img{ transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s ease; }
.persona:hover img{ transform:scale(1.05); box-shadow:0 12px 30px rgba(193,39,45,.28); }
.hl-cel:hover{ border-color:rgba(193,39,45,.3); }

/* ---- SECCIÓN CINEMATOGRÁFICA (montaje en loop, tipo video) ---- */
.cine{ position:relative; min-height:80vh; display:flex; align-items:center; justify-content:center;
  text-align:center; color:#fff; overflow:hidden; background:var(--verde-osc); }
.cine-bg{ position:absolute; inset:0; }
.cine-bg .capa{ position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:0; will-change:opacity,transform; animation:lvCine 28s infinite; }
@keyframes lvCine{
  0%{opacity:0; transform:scale(1.06)}
  3.5%{opacity:1}
  21%{opacity:1}
  25%{opacity:0; transform:scale(1.17)}
  100%{opacity:0; transform:scale(1.17)}
}
.cine-bg .capa:nth-child(1){ animation-delay:0s }
.cine-bg .capa:nth-child(2){ animation-delay:7s }
.cine-bg .capa:nth-child(3){ animation-delay:14s }
.cine-bg .capa:nth-child(4){ animation-delay:21s }
.cine-velo{ position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(19,19,22,.72),rgba(19,19,22,.5) 55%,rgba(19,19,22,.78)),
             radial-gradient(120% 100% at 50% 45%, transparent 38%, rgba(19,19,22,.6)); }
.cine-grain{ position:absolute; inset:0; pointer-events:none; opacity:.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.cine .wrap{ position:relative; z-index:2; max-width:820px; }
.cine .kicker{ color:var(--oro-claro); justify-content:center; }
.cine h2{ font-size:clamp(2.2rem,5vw,3.7rem); color:#fff; line-height:1.03; letter-spacing:-.02em; margin-bottom:20px; }
.cine p{ font-size:1.18rem; color:rgba(255,255,255,.82); max-width:620px; margin:0 auto 34px; }

@media(prefers-reduced-motion: reduce){
  .cine-bg .capa{ animation:none; }
  .cine-bg .capa:nth-child(1){ opacity:1; }
  .scroll-cue span{ animation:none; }
}

/* ============================================================
   CAPA PREMIUM v3 — "EL CICLO COMPLETO" rediseñado (journey)
   Panel oscuro · línea que se dibuja · nodos-ícono en secuencia
   ============================================================ */
.ciclo-panel{ background:linear-gradient(155deg,var(--verde-osc),var(--verde) 78%);
  border-radius:28px; padding:64px 54px 60px; margin-top:80px; position:relative; overflow:hidden; }
.ciclo-panel::after{ content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(85% 70% at 88% 0%, rgba(193,39,45,.16), transparent 55%); }
.ciclo-panel>*{ position:relative; z-index:1; }
.ciclo-panel .sec-cab{ margin-bottom:20px; }
.ciclo-panel .sec-cab .kicker{ color:var(--oro-claro); }
.ciclo-panel .sec-cab h2{ color:#fff!important; font-size:clamp(1.7rem,3vw,2.35rem)!important; }
.ciclo-panel .sec-cab p{ color:rgba(255,255,255,.72); }

.ciclo{ margin-top:56px; }
/* pista base + relleno que se dibuja */
.ciclo::before{ content:""; position:absolute; top:28px; left:calc(100%/14); right:calc(100%/14);
  height:2px; background:rgba(255,255,255,.16); opacity:1; }
.ciclo::after{ content:""; position:absolute; top:28px; left:calc(100%/14); right:calc(100%/14);
  height:2px; transform-origin:left; transform:scaleX(0);
  background:linear-gradient(90deg,#D8383E,#EC9296); box-shadow:0 0 12px rgba(193,39,45,.6);
  transition:transform 1.9s cubic-bezier(.4,0,.2,1); }
.ciclo-panel.on .ciclo::after{ transform:scaleX(1); }

.hito{ text-align:center; padding:0 8px; position:relative; }
.hito .nodo{ width:56px; height:56px; border-radius:50%; margin:0 auto 16px; z-index:2; position:relative;
  display:flex; align-items:center; justify-content:center;
  background:var(--verde-osc); border:1.5px solid rgba(255,255,255,.18); opacity:0;
  transition:background .3s ease, border-color .3s ease, box-shadow .3s ease; }
.hito .nodo svg{ width:26px; height:26px; stroke:var(--oro-claro); fill:none; stroke-width:1.6;
  stroke-linecap:round; stroke-linejoin:round; }
.hito:hover .nodo{ background:linear-gradient(150deg,#D8383E,#8E1B1F); border-color:#D8383E;
  box-shadow:0 12px 28px rgba(193,39,45,.5); }
.hito:hover .nodo svg{ stroke:#fff; }
.hito b{ font-size:.72rem; color:var(--oro-claro); text-transform:uppercase; letter-spacing:.12em; font-weight:800; display:block; opacity:0; }
.hito h4{ color:#fff; font-family:'Inter'; font-weight:700; font-size:.95rem; margin:6px 0 8px; opacity:0; }
.hito p{ font-size:.79rem; color:rgba(255,255,255,.64); line-height:1.5; opacity:0; }

/* aparición en secuencia al entrar en viewport */
@keyframes lvNodo{ from{transform:scale(.35);opacity:0} to{transform:scale(1);opacity:1} }
@keyframes lvTexto{ from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:none} }
.ciclo-panel.on .hito .nodo{ animation:lvNodo .6s cubic-bezier(.34,1.56,.64,1) forwards; }
.ciclo-panel.on .hito b,.ciclo-panel.on .hito h4,.ciclo-panel.on .hito p{ animation:lvTexto .55s ease forwards; }
.ciclo-panel.on .hito:nth-child(1) .nodo{animation-delay:.15s}
.ciclo-panel.on .hito:nth-child(2) .nodo{animation-delay:.42s}
.ciclo-panel.on .hito:nth-child(3) .nodo{animation-delay:.69s}
.ciclo-panel.on .hito:nth-child(4) .nodo{animation-delay:.96s}
.ciclo-panel.on .hito:nth-child(5) .nodo{animation-delay:1.23s}
.ciclo-panel.on .hito:nth-child(6) .nodo{animation-delay:1.50s}
.ciclo-panel.on .hito:nth-child(7) .nodo{animation-delay:1.77s}
.ciclo-panel.on .hito:nth-child(1) b,.ciclo-panel.on .hito:nth-child(1) h4,.ciclo-panel.on .hito:nth-child(1) p{animation-delay:.32s}
.ciclo-panel.on .hito:nth-child(2) b,.ciclo-panel.on .hito:nth-child(2) h4,.ciclo-panel.on .hito:nth-child(2) p{animation-delay:.59s}
.ciclo-panel.on .hito:nth-child(3) b,.ciclo-panel.on .hito:nth-child(3) h4,.ciclo-panel.on .hito:nth-child(3) p{animation-delay:.86s}
.ciclo-panel.on .hito:nth-child(4) b,.ciclo-panel.on .hito:nth-child(4) h4,.ciclo-panel.on .hito:nth-child(4) p{animation-delay:1.13s}
.ciclo-panel.on .hito:nth-child(5) b,.ciclo-panel.on .hito:nth-child(5) h4,.ciclo-panel.on .hito:nth-child(5) p{animation-delay:1.40s}
.ciclo-panel.on .hito:nth-child(6) b,.ciclo-panel.on .hito:nth-child(6) h4,.ciclo-panel.on .hito:nth-child(6) p{animation-delay:1.67s}
.ciclo-panel.on .hito:nth-child(7) b,.ciclo-panel.on .hito:nth-child(7) h4,.ciclo-panel.on .hito:nth-child(7) p{animation-delay:1.94s}

/* móvil: 2 columnas, sin línea horizontal */
@media(max-width:960px){
  .ciclo-panel{ padding:44px 24px 40px; }
  .ciclo{ grid-template-columns:repeat(2,1fr); gap:32px 0; }
  .ciclo::before,.ciclo::after{ display:none; }
}
@media(max-width:560px){ .ciclo{ grid-template-columns:1fr; } }

/* accesibilidad: sin movimiento, todo visible */
@media(prefers-reduced-motion: reduce){
  .hito .nodo,.hito b,.hito h4,.hito p{ opacity:1!important; animation:none!important; }
  .ciclo::after{ transform:scaleX(1); transition:none; }
}

/* ============================================================
   CAPA PREMIUM v4 — Valores (Nosotros) + tarjetas de Proyectos
   ============================================================ */

/* ---- NOSOTROS · "Nuestros valores" (hexágonos → tarjetas de firma) ---- */
.valores{ display:flex; flex-wrap:wrap; justify-content:center; gap:18px; max-width:1080px; margin:0 auto; }
.valor{ width:238px; text-align:left; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12);
  border-radius:16px; padding:28px 24px; position:relative; overflow:hidden;
  transition:transform .45s cubic-bezier(.2,.7,.2,1), background .45s ease, border-color .45s ease, box-shadow .45s ease; }
.valor::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:linear-gradient(180deg,#D8383E,#8E1B1F); transform:scaleY(0); transform-origin:top; transition:transform .45s cubic-bezier(.2,.7,.2,1); }
.valor:hover{ transform:translateY(-6px); background:rgba(255,255,255,.08); border-color:rgba(193,39,45,.4); box-shadow:0 26px 54px rgba(0,0,0,.38); }
.valor:hover::before{ transform:scaleY(1); }
.valor-ico{ width:50px; height:50px; border-radius:13px; display:flex; align-items:center; justify-content:center;
  background:rgba(193,39,45,.14); border:1px solid rgba(236,146,150,.3); margin-bottom:16px; transition:background .35s ease, border-color .35s ease; }
.valor-ico svg{ width:26px; height:26px; stroke:var(--oro-claro); fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.valor:hover .valor-ico{ background:linear-gradient(150deg,#D8383E,#8E1B1F); border-color:#D8383E; }
.valor:hover .valor-ico svg{ stroke:#fff; }
.valor h4{ font-family:'Cormorant Garamond',serif; font-weight:600; font-size:1.4rem; color:#fff; margin-bottom:7px; line-height:1.1; }
.valor p{ font-size:.85rem; color:rgba(255,255,255,.64); line-height:1.5; }
@media(max-width:960px){ .valor{ width:calc(50% - 10px); } }
@media(max-width:560px){ .valor{ width:100%; } }

/* ---- PROYECTOS · placeholder de marca unificado (sin fotos reales) ---- */
.prop .sinfoto{ position:relative; height:100%; overflow:hidden;
  background:linear-gradient(150deg,#16161a,#26262d); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; }
/* retícula tipo plano arquitectónico, muy sutil */
.prop .sinfoto::before{ content:""; position:absolute; inset:0; opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:26px 26px;
  -webkit-mask-image:radial-gradient(130% 100% at 50% 0%, #000, transparent 78%);
  mask-image:radial-gradient(130% 100% at 50% 0%, #000, transparent 78%); }
.prop .sinfoto::after{ content:""; position:absolute; inset:0; background:radial-gradient(80% 60% at 50% 25%, rgba(193,39,45,.18), transparent 60%); }
.prop .sinfoto .lv-mark{ position:relative; z-index:1; height:56px; width:auto; opacity:.92; }
.prop .sinfoto span{ position:relative; z-index:1; font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.62); text-align:center; padding:0 22px; }
/* refinamos la barra de progreso de las tarjetas en análisis */
.barra{ height:5px; }
.barra i{ box-shadow:0 0 10px rgba(193,39,45,.5); }

/* ============================================================
   CAPA PREMIUM v5 — croquis arquitectónico en tarjetas de Proyectos
   ============================================================ */
.prop .sinfoto::before{ display:none; }            /* fuera la retícula: el croquis es el motivo */
.prop .sinfoto .croquis{ position:absolute; z-index:1; width:88%; height:auto; top:50%; left:50%;
  transform:translate(-50%,-53%); fill:none; stroke:rgba(255,255,255,.42); stroke-width:1.4;
  stroke-linejoin:round; stroke-linecap:round; transition:stroke .4s ease; }
.prop .sinfoto .croquis .parapeto{ stroke:rgba(236,146,150,.8); }
.prop .sinfoto .croquis .piso{ stroke:rgba(255,255,255,.15); }
.prop:hover .sinfoto .croquis{ stroke:rgba(255,255,255,.62); }
.prop .sinfoto .lv-mark{ position:absolute; z-index:2; top:14px; left:14px; height:26px; width:auto; opacity:.6; }
.prop .sinfoto span{ position:absolute; z-index:2; left:0; right:0; bottom:14px; }

/* ============================================================
   CAPA PREMIUM v6 — croquis sobre fondo claro (tipo plano en papel)
   Trazo oscuro para que resalte + más detalle
   ============================================================ */
.prop .sinfoto{ background:linear-gradient(160deg,#fbfbfc,#e9ebee); }
.prop .sinfoto::after{ display:none; }               /* fuera el halo rojo oscuro */
.prop .sinfoto .croquis{ stroke:rgba(31,31,35,.6); stroke-width:1.5; }
.prop .sinfoto .croquis .parapeto{ stroke:#C1272D; stroke-width:1.7; }
.prop .sinfoto .croquis .piso{ stroke:rgba(31,31,35,.24); stroke-width:1.2; }
.prop .sinfoto .croquis .fino{ stroke:rgba(31,31,35,.42); stroke-width:1; }
.prop .sinfoto .croquis .guia{ stroke:rgba(31,31,35,.13); stroke-width:1; }
.prop:hover .sinfoto .croquis{ stroke:rgba(31,31,35,.78); }
.prop:hover .sinfoto .croquis .parapeto{ stroke:#8E1B1F; }
/* logo (versión oscura) y etiqueta legibles sobre claro */
.prop .sinfoto .lv-mark{ top:14px; right:14px; left:auto; height:24px; opacity:.5; }
.prop .sinfoto span{ color:var(--gris); text-align:center; font-weight:800; }

/* ============================================================
   CAPA PREMIUM v7 — placeholder LIMPIO (sin dibujo)
   logo de marca centrado sobre fondo sobrio con retícula tenue
   ============================================================ */
.prop .sinfoto{ background:linear-gradient(160deg,#f4f5f7,#e3e6ea); }
.prop .sinfoto::before{ display:block; content:""; position:absolute; inset:0; opacity:.6;
  background-image:linear-gradient(rgba(31,31,35,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(31,31,35,.05) 1px,transparent 1px);
  background-size:30px 30px;
  -webkit-mask-image:radial-gradient(120% 100% at 50% 40%, #000, transparent 82%);
  mask-image:radial-gradient(120% 100% at 50% 40%, #000, transparent 82%); }
.prop .sinfoto::after{ display:none; }
.prop .sinfoto .lv-mark{ position:relative; z-index:1; top:auto; right:auto; left:auto; bottom:auto; height:50px; width:auto; opacity:.85; }
.prop .sinfoto span{ position:relative; z-index:1; top:auto; right:auto; left:auto; bottom:auto; color:var(--gris); text-align:center; font-weight:800; }

/* ============================================================
   CAPA PREMIUM v8 — placeholder de PATRÓN abstracto de marca
   (sin dibujos): textura de líneas finas + acento rojo + logo
   ============================================================ */
.prop .sinfoto{ background:linear-gradient(160deg,#f5f6f8,#e6e9ec); }
/* textura: pinstripe diagonal muy sutil */
.prop .sinfoto::before{ display:block; content:""; position:absolute; inset:0; opacity:1;
  background-image:repeating-linear-gradient(45deg, rgba(31,31,35,.05) 0 1px, transparent 1px 12px);
  -webkit-mask-image:none; mask-image:none; }
/* acento: línea diagonal roja de firma + halo claro para el logo */
.prop .sinfoto::after{ display:block; content:""; position:absolute; inset:0; pointer-events:none;
  background:
   linear-gradient(120deg, transparent 69.6%, rgba(193,39,45,.55) 70.2%, rgba(193,39,45,.55) 71.3%, transparent 71.9%),
   radial-gradient(62% 55% at 50% 44%, rgba(246,247,249,.9), transparent 72%); }
.prop .sinfoto .lv-mark{ position:relative; z-index:1; top:auto; right:auto; left:auto; bottom:auto; height:48px; width:auto; opacity:.9; }
.prop .sinfoto span{ position:relative; z-index:1; top:auto; right:auto; left:auto; bottom:auto; color:var(--gris); text-align:center; font-weight:800; }

/* ============================================================
   CAPA PREMIUM v9 — logo protagonista en las tarjetas de Proyectos
   ============================================================ */
.prop .sinfoto .lv-mark{ height:auto; width:62%; max-width:230px; opacity:.95; }
.prop .sinfoto::after{ background:
  linear-gradient(120deg, transparent 69.6%, rgba(193,39,45,.55) 70.2%, rgba(193,39,45,.55) 71.3%, transparent 71.9%),
  radial-gradient(76% 66% at 50% 46%, rgba(246,247,249,.92), transparent 74%); }

/* v10 — logo dominante pero con aire (se controla por alto, no por ancho) */
.prop .sinfoto .lv-mark{ width:auto; max-width:66%; height:auto; max-height:132px; }

/* ============================================================
   CAPA PREMIUM v11 — imágenes representativas con duotono de marca
   (Proyectos: no son inventario → foto representativa, no el inmueble)
   ============================================================ */
.prop .foto .rep-img{ filter:url(#duoLV) blur(1px) contrast(1.05) brightness(1.02); }
/* el hover conserva el duotono (si no, la imagen se iría a color) */
.prop:hover .foto .rep-img{ filter:url(#duoLV) blur(1px) contrast(1.05) brightness(1.1); transform:scale(1.06); }
.prop .rep-tipo{ position:absolute; z-index:3; bottom:12px; left:14px; font-size:.7rem; font-weight:700;
  letter-spacing:.03em; color:#fff; text-shadow:0 1px 8px rgba(0,0,0,.6); max-width:80%; }

/* v12 — filtro CONFIABLE (CSS puro, sin depender de SVG) para imágenes representativas */
.prop .foto .rep-img{ filter:grayscale(1) contrast(1.06) brightness(1.04) blur(1px) !important; }
.prop:hover .foto .rep-img{ filter:grayscale(1) contrast(1.06) brightness(1.12) blur(1px) !important; transform:scale(1.06); }

/* v13 — tinte ROJO de marca sobre el monocromo (CSS puro, renderiza siempre) */
.prop .foto .rep-img{ filter:grayscale(1) sepia(.28) hue-rotate(-48deg) saturate(1.12) contrast(1.05) brightness(1.02) blur(1px) !important; }
.prop:hover .foto .rep-img{ filter:grayscale(1) sepia(.28) hue-rotate(-48deg) saturate(1.12) contrast(1.05) brightness(1.1) blur(1px) !important; transform:scale(1.06); }

/* ============================================================
   CAPA PREMIUM v15 — tarjetas de Proyectos que voltean (flip)
   Frente: imagen + etapa. Reverso: características ilustrativas.
   ============================================================ */
.prop-flip{ background:transparent!important; border:none!important; box-shadow:none!important; overflow:visible!important; cursor:pointer; perspective:1500px; }
.prop-flip::before,.prop-flip::after{ display:none!important; }
.prop-flip .flip-inner{ position:relative; transform-style:preserve-3d; transition:transform .65s cubic-bezier(.2,.7,.2,1); }
.prop-flip.volteada .flip-inner{ transform:rotateY(180deg); }
.prop-flip .cara{ background:#fff; border:1px solid var(--linea); border-radius:var(--radio); overflow:hidden;
  -webkit-backface-visibility:hidden; backface-visibility:hidden; box-shadow:0 6px 18px rgba(19,19,22,.07); }
.prop-flip .cara-frente{ position:relative; }
.prop-flip:hover .cara-frente{ box-shadow:0 22px 46px rgba(19,19,22,.14); }
.prop-flip .toca-ver{ display:inline-block; margin-top:14px; font-size:.78rem; font-weight:700; color:var(--oro); }
/* reverso */
.prop-flip .cara-tras{ position:absolute; inset:0; transform:rotateY(180deg);
  display:flex; flex-direction:column; padding:22px 22px 16px; background:linear-gradient(160deg,#ffffff,#f3f4f6); }
.cara-tras .tras-top{ margin-bottom:8px; }
.cara-tras .tras-top .badge{ position:static; display:inline-block; margin-bottom:8px; }
.cara-tras .tras-top h3{ font-size:1.3rem; color:var(--verde); line-height:1.1; margin:0; }
.cara-tras .ubi-ana{ margin:4px 0 0; }
.specs-tras{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:14px 0; }
.specs-tras .st{ text-align:center; }
.specs-tras .st-ic{ width:46px; height:46px; border-radius:50%; background:linear-gradient(150deg,#D8383E,#8E1B1F);
  display:flex; align-items:center; justify-content:center; margin:0 auto 6px; }
.specs-tras .st-ic svg{ width:23px; height:23px; stroke:#fff; fill:none; stroke-width:1.6; }
.specs-tras .st b{ font-family:'Cormorant Garamond',serif; font-size:1.55rem; color:var(--verde); display:block; line-height:1; }
.specs-tras .st>span:last-child{ font-size:.68rem; color:var(--gris); font-weight:600; }
.m2-tras{ display:flex; align-items:center; gap:7px; font-size:.86rem; color:var(--gris); margin-bottom:12px; }
.m2-tras svg{ width:18px; height:18px; stroke:var(--oro); fill:none; stroke-width:1.6; }
.m2-tras b{ color:var(--verde); font-family:'Cormorant Garamond',serif; font-size:1.15rem; }
.amen-tras{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px; }
.amen-tras span{ font-size:.72rem; font-weight:600; color:var(--verde); background:var(--oro-suave);
  border:1px solid rgba(193,39,45,.28); padding:5px 11px; border-radius:100px; }
.plazo-tras{ margin-top:auto; background:linear-gradient(150deg,var(--verde-osc),var(--verde)); color:#fff;
  border-radius:12px; padding:12px 16px; display:flex; justify-content:space-between; align-items:center; }
.plazo-tras span{ font-size:.74rem; color:rgba(255,255,255,.72); }
.plazo-tras b{ font-family:'Cormorant Garamond',serif; font-size:1.2rem; color:var(--oro-claro); }
.volver-tras{ text-align:center; font-size:.74rem; font-weight:700; color:var(--oro); margin-top:9px; }
@media(prefers-reduced-motion: reduce){ .prop-flip .flip-inner{ transition:none; } }

/* v16 — bloque financiero del reverso (intereses estimados + duración) */
.fin-tras{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:auto; }
.fin-cel{ border-radius:11px; padding:11px 13px; color:#fff; }
.fin-cel span{ display:block; font-size:.64rem; letter-spacing:.02em; opacity:.85; margin-bottom:3px; }
.fin-cel b{ font-family:'Cormorant Garamond',serif; font-size:1.45rem; line-height:1; }
.fin-int{ background:linear-gradient(150deg,#D8383E,#8E1B1F); }
.fin-plazo{ background:var(--verde-osc); }
.fin-plazo b{ color:var(--oro-claro); }
.fin-nota{ font-size:.58rem; color:var(--gris-claro); text-align:center; margin-top:7px; line-height:1.3; font-style:italic; }

/* ============================================================
   CAPA PREMIUM v17 — popup "Regístrate" + Disclaimer (inicio)
   ============================================================ */
.modal-registro{ max-width:460px; }
.reg-caja{ padding:38px 40px 32px; text-align:left; }
.reg-logo{ height:52px; width:auto; display:block; margin:0 auto 16px; }
.reg-caja h2{ font-size:2rem; color:var(--verde); text-align:center; margin-bottom:24px; }
.reg-caja .campo{ margin-bottom:18px; }
.reg-caja label{ font-size:.82rem; font-weight:700; color:var(--verde); display:block; margin-bottom:8px; }
.req{ color:var(--oro); }
.campo.pass{ position:relative; }
.campo.pass .ojo{ position:absolute; right:10px; top:32px; background:none; border:none; cursor:pointer; padding:6px; opacity:.55; transition:.2s; }
.campo.pass .ojo:hover{ opacity:1; }
.campo.pass .ojo svg{ width:20px; height:20px; stroke:var(--gris); fill:none; stroke-width:1.6; display:block; }
.reg-check{ font-size:.85rem; color:var(--gris); margin:2px 0 22px; align-items:center; }
.reg-btns{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.reg-btns .btn{ justify-content:center; padding:13px 10px; }
.reg-msg{ font-size:.82rem; color:var(--verde); background:var(--oro-suave); border:1px solid rgba(193,39,45,.25); border-radius:10px; padding:12px 14px; margin-top:16px; text-align:center; }
.reg-msg a{ color:var(--oro); font-weight:700; text-decoration:underline; }
.reg-link{ display:block; text-align:center; font-size:.85rem; color:var(--gris); margin-top:18px; cursor:pointer; }
.reg-link:hover{ color:var(--verde); }
.reg-discl{ display:block; text-align:center; font-size:.8rem; color:var(--oro); font-weight:700; margin-top:14px; cursor:pointer; text-decoration:underline; }
.modal-discl{ max-width:620px; }
.discl-caja{ padding:38px 44px 32px; max-height:82vh; overflow-y:auto; }
.discl-caja h2{ font-size:1.4rem; color:var(--verde); margin-bottom:20px; line-height:1.2; }
.discl-caja p{ font-size:.9rem; color:var(--gris); margin-bottom:12px; line-height:1.6; }
.discl-btns{ display:flex; gap:12px; justify-content:center; margin-top:24px; }
.discl-btns .btn.linea{ color:var(--verde); border-color:var(--verde); }
@media(max-width:520px){ .reg-caja,.discl-caja{ padding:32px 24px; } .reg-btns{ grid-template-columns:1fr; } .discl-btns{ flex-direction:column; } }

/* ============================================================
   SIMULADOR DE PROYECCIÓN EN HOME (gráfica interactiva)
   Portado del Portal de Venturers. Ejemplo ilustrativo.
   ============================================================ */
#sec-simulador .simu{display:block;background:#fff;border:1px solid var(--linea);border-radius:20px;padding:30px 30px 26px;box-shadow:0 8px 30px rgba(19,19,22,.05)}
.simu-cab{display:flex;justify-content:space-between;align-items:flex-end;gap:22px;flex-wrap:wrap;margin-bottom:20px}
.simu-monto{margin:0}
.simu-monto label{display:block;font-size:.78rem;font-weight:700;color:var(--verde);margin-bottom:8px}
.monto-wrap{display:flex;align-items:center;border:1.5px solid var(--linea);border-radius:12px;padding:2px 14px;background:var(--marfil);max-width:280px;transition:.2s}
.monto-wrap:focus-within{border-color:var(--oro);box-shadow:0 0 0 4px rgba(193,39,45,.12)}
.monto-wrap span{font-size:1.3rem;color:var(--oro);font-weight:700;margin-right:6px}
.monto-wrap input{border:0;background:transparent;font-family:inherit;font-size:1.5rem;font-weight:700;color:var(--verde);width:100%;padding:9px 0}
.monto-wrap input:focus{outline:none}
.simu-monto .pista{font-size:.72rem;color:var(--gris-claro);margin-top:6px}
.simu-ctrls{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.tog{display:inline-flex;align-items:center;gap:9px;font-size:.85rem;font-weight:600;color:var(--verde);cursor:pointer}
.tog input{appearance:none;-webkit-appearance:none;width:42px;height:24px;background:var(--linea);border-radius:100px;position:relative;cursor:pointer;transition:.25s;flex-shrink:0}
.tog input:checked{background:linear-gradient(135deg,#D8383E,#8E1B1F)}
.tog input::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;background:#fff;border-radius:50%;transition:.25s}
.tog input:checked::after{left:21px}
.pill-group{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.pg-lab{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--gris)}
.pill{border:1.5px solid var(--linea);background:#fff;color:var(--gris);font-weight:700;font-size:.8rem;padding:7px 13px;border-radius:100px;transition:.2s;cursor:pointer}
.pill:hover{border-color:var(--oro-claro);color:var(--verde)}
.pill.act{background:var(--verde);color:#fff;border-color:var(--verde)}
.proj-headline{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:16px}
.ph-main{display:flex;flex-direction:column}
.ph-main span{font-size:.82rem;color:var(--gris)}
.ph-main strong{font-family:'Cormorant Garamond',serif;font-size:3.4rem;color:var(--verde);line-height:1}
.ph-delta{font-size:.86rem;color:var(--verde);background:var(--oro-suave);border:1px solid rgba(193,39,45,.25);padding:9px 15px;border-radius:12px}
.ph-delta b{color:var(--oro)}
.cmp-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:2px 0 14px;padding:12px 15px;background:var(--marfil);border:1px solid var(--linea);border-radius:12px}
.cmp-lab{font-size:.8rem;font-weight:700;color:var(--verde)}
.cmp-pills{display:flex;flex-wrap:wrap;gap:7px}
.cmp-pill{border:1.5px solid var(--linea);background:#fff;color:var(--gris);font-weight:700;font-size:.78rem;padding:6px 13px;border-radius:100px;transition:.2s;cursor:pointer}
.cmp-pill:hover{border-color:var(--oro-claro);color:var(--verde)}
.cmp-pill.act{background:var(--verde);color:#fff;border-color:var(--verde)}
.cmp-nota{flex-basis:100%;font-size:.7rem;color:var(--gris-claro);margin:2px 0 0}
.cmp-callout{display:flex;align-items:center;gap:10px;font-size:.86rem;color:var(--verde);background:var(--oro-suave);border:1px solid rgba(193,39,45,.22);border-radius:12px;padding:11px 15px;margin:0 0 14px}
.cmp-callout i{width:12px;height:12px;border-radius:3px;flex-shrink:0}
.cmp-callout b{color:var(--oro)}
.proj-chart{display:flex;gap:12px;height:360px;margin-bottom:16px}
.proj-yaxis{display:flex;flex-direction:column;justify-content:space-between;font-size:.66rem;color:var(--gris-claro);text-align:right;min-width:44px}
.proj-plot{position:relative;flex:1;display:flex;flex-direction:column}
.proj-bars{position:relative;flex:1;display:flex;align-items:flex-end;gap:1.5%;border-left:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.proj-col{flex:1;height:100%;display:flex;align-items:flex-end;justify-content:center}
.col-stack{width:82%;max-width:104px;display:flex;flex-direction:column;border-radius:10px 10px 0 0;overflow:hidden;transform-origin:bottom;animation:projGrow .7s cubic-bezier(.2,.7,.2,1) backwards;box-shadow:0 6px 18px rgba(19,19,22,.16);transition:filter .2s}
.col-stack:hover{filter:brightness(1.07)}
@keyframes projGrow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.seg{width:100%}
.seg.cap{background:linear-gradient(180deg,#2B2B31,#131316)}
.seg.int{background:linear-gradient(180deg,#D8383E,#8E1B1F)}
.seg.plus{background:linear-gradient(180deg,#F0B24A,#E08A2B)}
.proj-xlabels{display:flex;gap:1.5%;padding-top:8px}
.proj-xlabels span{flex:1;text-align:center;font-size:.72rem;color:var(--gris);font-weight:600}
.proj-legend{display:flex;gap:22px;justify-content:center;font-size:.8rem;color:var(--gris);margin:6px 0 10px}
.proj-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:middle}
.lg.cap{background:#1F1F23}.lg.int{background:#C1272D}.lg.plus{background:#E9A23B}
.proj-tip{position:absolute;z-index:8;top:0;left:0;transform:translateX(-50%);pointer-events:none;opacity:0;transition:opacity .14s;background:rgba(19,19,22,.96);color:#fff;border-radius:12px;padding:11px 13px;min-width:186px;box-shadow:0 16px 40px rgba(0,0,0,.35)}
.proj-tip.show{opacity:1}
.proj-tip .tt-h{font-weight:800;font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;color:var(--oro-claro);margin-bottom:8px}
.proj-tip .tt-r{display:flex;align-items:center;font-size:.82rem;color:#e8e8ec;margin:4px 0}
.proj-tip .tt-r i{margin-right:8px}
.proj-tip .tt-r b{margin-left:auto;font-weight:700;color:#fff}
.proj-tip .tt-tot{border-top:1px solid rgba(255,255,255,.16);margin-top:7px;padding-top:7px}
.proj-tip .tt-tot span{font-weight:700}
.proj-tip::after{content:"";position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);border:6px solid transparent;border-top-color:rgba(19,19,22,.96);border-bottom:0}
.cmp-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:6;overflow:visible}
.cmp-mark{position:absolute;transform:translate(-50%,-140%);z-index:7;pointer-events:none;white-space:nowrap}
.cmp-mark span{display:inline-block;font-size:.62rem;font-weight:800;color:#fff;padding:3px 9px;border-radius:100px;box-shadow:0 4px 12px rgba(0,0,0,.22)}
.proj-explica{background:var(--marfil);border:1px solid var(--linea);border-radius:14px;padding:20px 24px;margin:6px 0 14px}
.proj-explica h4{font-family:'Inter';font-weight:800;font-size:.82rem;letter-spacing:.03em;text-transform:uppercase;color:var(--oro);margin-bottom:12px}
.proj-explica ul{list-style:none;display:grid;gap:9px;margin:0;padding:0}
.proj-explica li{font-size:.86rem;color:var(--gris);line-height:1.5;padding-left:20px;position:relative}
.proj-explica li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;border-radius:2px;background:var(--oro)}
.proj-explica li b{color:var(--verde)}
@media(max-width:640px){.proj-chart{height:230px}.ph-main strong{font-size:2.1rem}#sec-simulador .simu{padding:22px 16px}.simu-cab{align-items:flex-start}.proj-xlabels span{font-size:.58rem}.proj-yaxis{min-width:36px}}
