/* ============================================================================
   VDN VALUE — CAPA MODERNA (carga después de styles.css)
   Tipografía Google Sans, cabecera de cristal, menú interactivo con
   indicador deslizante, panel "Nuestras empresas" con vistas tipo captura,
   y transiciones más suaves. Solo sobrescribe; no toca el marcado base.
   ========================================================================= */

:root{
  --r-md:16px; --r-lg:24px; --r-xl:32px;
  --shadow-sm:0 1px 2px rgba(14,21,38,.05),0 4px 14px rgba(14,21,38,.06);
  --shadow-md:0 2px 4px rgba(14,21,38,.05),0 12px 32px rgba(14,21,38,.09);
  --shadow-lg:0 4px 8px rgba(14,21,38,.05),0 24px 56px rgba(14,21,38,.14);
  --ease-smooth:cubic-bezier(.22,1,.36,1);
  --nav-h:76px;
}

/* ---------- Tipografía ---------- */
body{font-weight:400;letter-spacing:-.003em;font-optical-sizing:auto;}
h1,h2,h3,h4,h5,h6{font-weight:700;letter-spacing:-.032em;line-height:1.08;}
.home-hero h1{font-weight:600;letter-spacing:-.04em;line-height:1.1;}
.serif{font-weight:500;letter-spacing:-.03em;}
.eyebrow,.ftag{
  text-transform:none;letter-spacing:.01em;
  font-weight:600;font-size:.82rem;
}
.eyebrow::before{width:18px;}
.ftag{font-size:.8rem;}

/* ---------- Cabecera de cristal ---------- */
header.nav{
  background:color-mix(in srgb,var(--bg) 72%,transparent);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  backdrop-filter:saturate(180%) blur(20px);
  border-bottom-color:transparent;
}
header.nav.is-stuck{
  background:color-mix(in srgb,var(--bg) 84%,transparent);
  border-bottom-color:var(--line);
  box-shadow:0 8px 30px rgba(14,21,38,.06);
}
.nav-inner{position:relative;}
/* Logotipo: archivo recortado al trazo (945 × 187). El relleno vertical del
   enlace mantiene un área táctil de 44px sin agrandar la marca. */
.logo-link{padding-block:10px;}
/* Anclado a la izquierda: al compactarse con el scroll no se separa del margen. */
.logo-mark{width:121px;height:24px;transform-origin:left center;}
.foot-logo p{margin-top:var(--space-5);}

/* ---------- Menú de escritorio ---------- */
@media (min-width:961px){
  nav.menu{position:relative;gap:2px;padding:4px;border-radius:var(--r-full);}
  nav.menu > .item > a,
  nav.menu > .item > button{
    position:relative;z-index:1;
    font-size:.95rem;font-weight:500;letter-spacing:-.005em;
    text-transform:none;
    padding:10px 16px;min-height:42px;
    border-radius:var(--r-full);
    background:transparent;
    transition:color .25s var(--ease-smooth);
  }
  nav.menu > .item > a::after,
  nav.menu > .item > button::after{display:none;}
  nav.menu > .item > a:hover,
  nav.menu > .item > button:hover,
  nav.menu > .item.active > a,
  nav.menu > .item.active > button,
  nav.menu > .item.open > button{color:var(--fg);}
  nav.menu > .item.active > a,
  nav.menu > .item.active > button{font-weight:600;}

  /* Indicador deslizante que sigue al cursor/foco */
  .nav-pill{
    position:absolute;z-index:0;top:4px;left:0;
    height:calc(100% - 8px);width:0;
    border-radius:var(--r-full);
    background:var(--accent-soft);
    opacity:0;pointer-events:none;
    transform:translateX(var(--pill-x,0));
    transition:transform .38s var(--ease-smooth),width .38s var(--ease-smooth),opacity .2s ease;
  }
  .nav-pill.on{opacity:1;}
  nav.menu > .item > a.nav-cta{background:var(--accent);}
  nav.menu .nav-cta{
    padding:11px 22px!important;font-size:.95rem;font-weight:600;
    text-transform:none;letter-spacing:-.005em;
    margin-left:6px;
  }
  nav.menu > .item > a.nav-cta:hover{color:var(--fg-on-brand);}
}

/* ---------- Desplegables normales ---------- */
.dropdown{
  min-width:300px;padding:8px;
  border-radius:20px;
  border-color:color-mix(in srgb,var(--line) 70%,transparent);
  box-shadow:var(--shadow-lg);
  transform:translateX(-50%) translateY(12px) scale(.98);
  transform-origin:top center;
  transition:
    opacity .28s var(--ease-smooth),
    transform .38s var(--ease-smooth),
    visibility 0s linear .28s;
}
nav.menu > .item:hover > .dropdown,
nav.menu > .item.open > .dropdown,
nav.menu > .item:focus-within > .dropdown{
  transition:
    opacity .28s var(--ease-smooth),
    transform .38s var(--ease-smooth),
    visibility 0s;
}
.item.force-closed > .dropdown{opacity:0!important;visibility:hidden!important;pointer-events:none!important;}
/* Puente invisible: evita que el panel se cierre al cruzar el hueco */
.dropdown::before{
  content:"";position:absolute;left:0;right:0;top:-28px;height:28px;
}
.dropdown a{
  font-size:.95rem;font-weight:500;border-radius:12px;
  opacity:0;transform:translateY(6px);
  transition:background .2s ease,color .2s ease,padding-left .3s var(--ease-smooth),
             opacity .35s var(--ease-smooth),transform .35s var(--ease-smooth);
}
nav.menu > .item:hover > .dropdown a,
nav.menu > .item.open > .dropdown a,
nav.menu > .item:focus-within > .dropdown a{
  opacity:1;transform:none;
}
.dropdown a:nth-child(1){transition-delay:0s,0s,0s,.02s,.02s;}
.dropdown a:nth-child(2){transition-delay:0s,0s,0s,.06s,.06s;}
.dropdown a:nth-child(3){transition-delay:0s,0s,0s,.10s,.10s;}
.dropdown a:nth-child(4){transition-delay:0s,0s,0s,.14s,.14s;}
.dropdown a:nth-child(5){transition-delay:0s,0s,0s,.18s,.18s;}
.dropdown a:nth-child(6){transition-delay:0s,0s,0s,.22s,.22s;}

/* ---------- Panel "Nuestras empresas" ---------- */
@media (min-width:961px){
  nav.menu > .item.has-mega{position:static;}
  .dropdown.mega{
    left:50%;top:calc(100% - 6px);
    width:min(1040px,calc(100vw - 48px));min-width:0;
    padding:22px 22px 24px;
    border-radius:28px;
    background:color-mix(in srgb,var(--bg-elevated) 98%,transparent);
    -webkit-backdrop-filter:blur(24px) saturate(160%);
    backdrop-filter:blur(24px) saturate(160%);
  }
  .dropdown.mega::before{top:-34px;height:34px;}
}
.mega-head{
  display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;
  padding:2px 6px 16px;
}
.mega-kicker{font-weight:700;font-size:1.05rem;letter-spacing:-.02em;color:var(--fg);}
.mega-sub{font-size:.9rem;color:var(--fg-muted);}

.co-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;
}
.dropdown a.co-card{
  display:flex;flex-direction:column;gap:12px;
  padding:10px;border-radius:20px;
  background:var(--bg-panel);
  border:1px solid transparent;
  opacity:0;transform:translateY(14px) scale(.98);
  transition:opacity .45s var(--ease-smooth),transform .5s var(--ease-smooth),
             background .2s ease,box-shadow .3s ease,border-color .3s ease,filter .3s ease;
  transition-delay:0s;
}
.dropdown a.co-card:hover,
.dropdown a.co-card:focus-visible{
  padding:10px;background:var(--bg-elevated);
  border-color:var(--line);
  box-shadow:var(--shadow-md);
  transform:translateY(-4px);
  color:var(--fg);
}
.dropdown a.co-card::before{display:none;}
nav.menu > .item:hover > .dropdown a.co-card,
nav.menu > .item.open > .dropdown a.co-card,
nav.menu > .item:focus-within > .dropdown a.co-card{
  opacity:1;transform:none;
  transition-delay:calc(var(--i)*70ms + 60ms),calc(var(--i)*70ms + 60ms),0s,0s,0s,0s;
}
nav.menu > .item:hover > .dropdown a.co-card:hover,
nav.menu > .item.open > .dropdown a.co-card:hover,
nav.menu > .item:focus-within > .dropdown a.co-card:focus-visible{
  transform:translateY(-4px);transition-delay:0s;
}
/* El resto se atenúa mientras exploras una */
@media (hover:hover) and (min-width:961px){
  nav.menu .co-grid:hover a.co-card:not(:hover){opacity:.6;filter:saturate(.75);transition-delay:0s;}
}

/* La "captura": ventana de navegador con la web dentro */
.co-shot{
  position:relative;display:block;
  border-radius:12px;overflow:hidden;
  background:var(--bg-elevated);
  box-shadow:0 0 0 1px rgba(14,21,38,.08),0 8px 20px rgba(14,21,38,.10);
}
.co-chrome{
  display:flex;align-items:center;gap:5px;
  height:24px;padding:0 9px;
  background:linear-gradient(#f4f5f8,#eceef3);
  border-bottom:1px solid rgba(14,21,38,.07);
}
.co-chrome i{width:7px;height:7px;border-radius:50%;background:#d3d6de;flex:0 0 auto;}
.co-chrome i:nth-child(1){background:#ff6058;}
.co-chrome i:nth-child(2){background:#ffbd2e;}
.co-chrome i:nth-child(3){background:#27c93f;}
.co-chrome b{
  flex:1;min-width:0;margin-left:6px;height:15px;line-height:15px;
  padding:0 8px;border-radius:8px;background:#fff;
  font-size:.62rem;font-weight:500;color:#6b6e76;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.co-screen{
  position:relative;display:block;aspect-ratio:16/10;overflow:hidden;
  background:#e9ecf3;
}
.co-screen img{
  position:absolute;left:0;top:0;width:100%;height:auto;min-height:100%;
  object-fit:cover;object-position:top center;
  opacity:0;transition:opacity .5s ease,transform 4.5s var(--ease-smooth);
  transform:translateY(0);
}
.co-shot.loaded .co-screen img{opacity:1;}
/* Al pasar el cursor la página "se desplaza" como en una captura larga */
.co-card:hover .co-shot.loaded .co-screen img,
.co-card:focus-visible .co-shot.loaded .co-screen img{
  transform:translateY(calc(-1 * var(--scroll-by,22%)));
}
.co-fallback{
  position:absolute;inset:0;display:grid;place-items:center;text-align:center;
  padding:12px;
  background:
    radial-gradient(120% 90% at 0% 0%,var(--c1,#7a9bd6) 0,transparent 60%),
    radial-gradient(100% 90% at 100% 100%,var(--c2,#1f3358) 0,transparent 65%),
    var(--c3,#2e4a80);
  color:#fff;transition:opacity .4s ease;
}
.co-fallback em{
  font-style:normal;font-weight:700;font-size:1.02rem;letter-spacing:-.025em;line-height:1.1;
  text-shadow:0 2px 14px rgba(0,0,0,.25);
}
.co-shot.loaded .co-fallback{opacity:0;}
.co-card[data-co="vdnvalley"]{--c1:#5ea58a;--c2:#17412f;--c3:#24624a;}
.co-card[data-co="vdnbrands"]{--c1:#7a9bd6;--c2:#131f36;--c3:#2e4a80;}
.co-card[data-co="vision"]{--c1:#d1a15b;--c2:#3a2a14;--c3:#7b5a2c;}
.co-card[data-co="wegotit"]{--c1:#e07a6a;--c2:#3b1a2a;--c3:#8a3a4a;}

.co-meta{display:flex;flex-direction:column;gap:3px;padding:2px 6px 6px;}
.co-name{font-weight:650;font-size:.98rem;letter-spacing:-.02em;color:var(--fg);line-height:1.2;}
.co-desc{font-size:.82rem;color:var(--fg-muted);line-height:1.35;}
.co-visit{
  display:inline-flex;align-items:center;gap:5px;margin-top:6px;
  font-size:.8rem;font-weight:600;color:var(--accent);
}
.co-visit svg{
  width:13px;height:13px;
  transition:transform .3s var(--ease-smooth);
}
.co-card:hover .co-visit svg,.co-card:focus-visible .co-visit svg{transform:translate(2px,-2px);}

/* ---------- Página y tarjetas: transiciones más fluidas ---------- */
.page.active{animation:page-in-modern .7s var(--ease-smooth) both;}
@keyframes page-in-modern{
  from{opacity:0;transform:translate3d(0,18px,0) scale(.995);filter:blur(6px);}
  to{opacity:1;transform:none;filter:none;}
}
.fcard{border-radius:28px;transition:transform .5s var(--ease-smooth),box-shadow .5s var(--ease-smooth);}
a.fcard:hover,a.fcard:focus-visible{transform:translateY(-6px) scale(1.004);}
.fcard h3{font-weight:700;letter-spacing:-.03em;}
.btn,.nav-cta{font-weight:600;letter-spacing:-.005em;text-transform:none;}
.btn{border-radius:var(--r-full);}
html.no-motion .page.active{animation:none;}
@media (prefers-reduced-motion:reduce){
  .page.active{animation:none;}
  .dropdown,.dropdown a,.co-screen img,.nav-pill{transition:none!important;}
  .dropdown a{opacity:1;transform:none;}
}

/* ---------- Menú móvil ---------- */
@media (max-width:960px){
  /* backdrop-filter en la cabecera crearía un bloque contenedor para el menú
     fijo (se encogería al alto de la cabecera): en móvil va sólido. */
  header.nav,header.nav.is-stuck{
    background:var(--bg);
    -webkit-backdrop-filter:none;backdrop-filter:none;
  }
  nav.menu{background:var(--bg);}
  nav.menu > .item > a,
  nav.menu > .item > button{
    font-size:1.15rem;font-weight:600;letter-spacing:-.02em;text-transform:none;
  }
  .nav-pill{display:none;}
  .dropdown,
  nav.menu > .item:hover > .dropdown,
  nav.menu > .item:focus-within > .dropdown{
    box-shadow:none;border:none;border-radius:0;transition:none;
  }
  .dropdown a{opacity:1;transform:none;font-size:1rem;}
  .dropdown a.co-card{align-items:stretch;justify-content:flex-start;}
  .dropdown::before{display:none;}
  .dropdown.mega{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;}
  .mega-head{display:none;}
  .co-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px 0 18px;}
  .dropdown a.co-card{opacity:1;transform:none;min-height:0;padding:8px;}
  .co-name{font-size:.9rem;}
  .co-desc{display:none;}
  .co-chrome b{display:none;}
}
@media (max-width:340px){
  .co-grid{grid-template-columns:1fr;}
}

/* ============================================================================
   LEGAL — fecha, ficha de datos y tablas responsivas
   ========================================================================= */
.legal-copy .legal-updated{
  display:inline-flex;align-items:center;
  margin:0 0 var(--space-2);padding:6px 14px;
  border-radius:var(--r-full);
  background:var(--accent-soft);color:var(--accent);
  font-size:.8rem;font-weight:600;line-height:1.4;
}
.legal-copy code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:.86em;padding:2px 6px;border-radius:6px;
  background:var(--bg-panel);color:var(--fg);white-space:nowrap;
}
.legal-copy .legal-action{margin-top:var(--space-2);}

.legal-data{
  margin:var(--space-2) 0 var(--space-5);
  border:1px solid var(--line);border-radius:var(--r-md);
  background:var(--bg-panel);overflow:hidden;
}
.legal-data > div{
  display:grid;grid-template-columns:minmax(150px,220px) 1fr;gap:2px 20px;
  padding:13px 18px;
}
.legal-data > div + div{border-top:1px solid var(--line);}
.legal-data dt{font-size:.84rem;font-weight:700;color:var(--fg);line-height:1.55;}
.legal-data dd{color:var(--fg-muted);font-size:.96rem;line-height:1.55;overflow-wrap:anywhere;}
@media (max-width:560px){ .legal-data > div{grid-template-columns:1fr;} }

.legal-table-wrap{
  margin:var(--space-2) 0 var(--space-5);
  border:1px solid var(--line);border-radius:var(--r-md);
  overflow:hidden;
}
.legal-table{width:100%;border-collapse:collapse;font-size:.92rem;line-height:1.55;}
.legal-table th{
  text-align:left;vertical-align:bottom;
  padding:12px 16px;
  background:var(--bg-panel);border-bottom:1px solid var(--line);
  font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:var(--fg);
}
.legal-table td{
  padding:14px 16px;vertical-align:top;
  border-bottom:1px solid var(--line);
  color:var(--fg-muted);
}
.legal-table tbody tr:last-child td{border-bottom:none;}
.legal-table td:first-child{color:var(--fg);font-weight:600;}
@media (max-width:720px){
  .legal-table thead{
    position:absolute;width:1px;height:1px;overflow:hidden;
    clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;
  }
  .legal-table,.legal-table tbody,.legal-table tr,.legal-table td{display:block;width:100%;}
  .legal-table tr{padding:12px 16px;border-bottom:1px solid var(--line);}
  .legal-table tbody tr:last-child{border-bottom:none;}
  .legal-table td{padding:5px 0;border:none;}
  .legal-table td::before{
    content:attr(data-label);display:block;margin-bottom:1px;
    font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
    color:var(--fg-subtle);
  }
}

/* ---------- Pie: enlace a la configuración de cookies ---------- */
.foot-cookie-btn{
  display:inline-flex;align-items:center;min-height:34px;padding:0;
  border-bottom:1px solid transparent;
  color:#767F94;font-size:.76rem;
  transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);
}
.foot-cookie-btn:hover,.foot-cookie-btn:focus-visible{color:#fff;border-bottom-color:#fff;}

/* ---------- Aviso de cookies: configuración por categorías ---------- */
.cookie-inner{max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;}
.cookie-prefs{flex:1 1 100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.cookie-prefs[hidden]{display:none;}
.cookie-opt{
  display:flex;align-items:flex-start;justify-content:space-between;gap:14px;
  padding:12px 14px;
  border:1px solid var(--line);border-radius:14px;
  background:var(--bg-panel);cursor:pointer;
  transition:border-color .2s ease,background .2s ease;
}
.cookie-opt:hover{border-color:var(--line-strong);}
.cookie-opt.is-locked{cursor:default;}
.cookie-opt:has(input:checked:not(:disabled)){
  border-color:color-mix(in srgb,var(--accent) 40%,var(--line));
  background:var(--accent-soft);
}
.cookie-opt-text{font-size:.82rem;line-height:1.45;color:var(--fg-muted);}
.cookie-opt-text b{display:block;margin-bottom:2px;font-size:.9rem;color:var(--fg);}
.cookie-opt input{
  -webkit-appearance:none;appearance:none;
  position:relative;flex:0 0 auto;
  width:40px;height:24px;margin-top:2px;
  border-radius:var(--r-full);
  background:var(--line-strong);cursor:pointer;
  transition:background .2s ease;
}
.cookie-opt input::after{
  content:"";position:absolute;top:3px;left:3px;
  width:18px;height:18px;border-radius:50%;
  background:#fff;box-shadow:0 1px 3px rgba(10,10,12,.25);
  transition:transform .25s var(--ease-out);
}
.cookie-opt input:checked{background:var(--accent);}
.cookie-opt input:checked::after{transform:translateX(16px);}
.cookie-opt input:disabled{opacity:.6;cursor:default;}
.cookie-opt input:focus-visible{outline:2px solid var(--focus);outline-offset:2px;}
.btn-cookie-config{
  min-height:44px;padding:11px 14px;
  border-radius:var(--r-full);
  font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:var(--fg-muted);
  text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;
  transition:color var(--dur-base) var(--ease-out),background var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-spring);
}
.btn-cookie-config:hover{color:var(--fg);}
#cookieBanner.is-config .btn-cookie-config{
  padding:11px 22px;text-decoration:none;
  background:var(--accent);color:var(--fg-on-brand);
}
#cookieBanner.is-config .btn-cookie-config:hover{background:var(--accent-hover);transform:translateY(-2px);}
#cookieBanner.is-config .cookie-actions{margin-left:auto;}
@media (max-width:900px){ .cookie-prefs{grid-template-columns:1fr;} }
@media (max-width:640px){
  .cookie-actions{flex-wrap:wrap;}
  .cookie-actions .btn-cookie-config{flex:1 1 100%;order:3;}
}
html.no-motion .cookie-opt input::after{transition:none;}
@media (prefers-reduced-motion:reduce){ .cookie-opt input::after{transition:none;} }
.legal-copy a[href^="tel:"]{white-space:nowrap;}

/* ============================================================================
   CONTACTO — mapa de sedes (SVG propio: sin servicios externos ni cookies)
   ========================================================================= */
.ci.ci-map{padding:var(--space-5) var(--space-5) var(--space-4);}
.ci.ci-map:hover{transform:none;}
.geo-map{position:relative;margin:var(--space-3) -6px 0;}
.geo-svg{width:100%;height:auto;overflow:visible;}
.geo-land,.geo-hl{
  fill:none;stroke-linecap:round;stroke-width:5.4;
  stroke-dasharray:.01 9.99;  /* cada tramo se pinta como una fila de puntos */
}
.geo-land{stroke:#AFBACF;}
.geo-hl{stroke:var(--brand-500);}
.geo-arc{fill:none;stroke:var(--accent);stroke-opacity:.22;stroke-width:3;}
.geo-arc-flow{
  fill:none;stroke:var(--accent);stroke-width:3.2;stroke-linecap:round;
  stroke-dasharray:2 11;
  animation:geo-flow 1.8s linear infinite;
}
@keyframes geo-flow{to{stroke-dashoffset:-26;}}
.geo-core{
  fill:var(--accent);stroke:#fff;stroke-width:4;
  transform-box:fill-box;transform-origin:center;
  transition:transform .35s var(--ease-spring);
}
.geo-pulse{
  fill:var(--accent);opacity:0;
  transform-box:fill-box;transform-origin:center;
  animation:geo-pulse 2.6s var(--ease-out) infinite;
}
.geo-pin--es .geo-pulse{animation-delay:1.3s;}
@keyframes geo-pulse{
  0%{transform:scale(.6);opacity:.45;}
  70%,100%{transform:scale(2.7);opacity:0;}
}
.ci .geo-tag{
  position:absolute;
  display:inline-flex;flex-direction:column;align-items:flex-start;
  padding:5px 10px 6px;
  background:var(--bg-elevated);
  border:1px solid var(--line);border-radius:10px;
  box-shadow:0 6px 16px rgba(14,21,38,.10);
  font-size:.78rem;font-weight:700;line-height:1.15;letter-spacing:-.01em;
  color:var(--fg);white-space:nowrap;pointer-events:none;
  transform:translate(calc(-100% - 12px),-50%);
  transition:background .25s ease,color .25s ease,border-color .25s ease;
}
.ci .geo-tag small{margin-top:1px;font-size:.66rem;font-weight:500;letter-spacing:.01em;color:var(--fg-muted);transition:color .25s ease;}

.geo-offices{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px 18px;
  margin-top:var(--space-4);padding-top:var(--space-4);
  border-top:1px solid var(--line);
}
.geo-office{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:0;}
.ci .geo-office-head{
  display:inline-flex;align-items:center;gap:8px;margin-bottom:4px;
  font-size:.8rem;font-weight:700;line-height:1.3;color:var(--fg);
}
.geo-office-head i{
  flex:0 0 auto;width:8px;height:8px;border-radius:50%;
  background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);
}
.ci .geo-office a{font-size:.93rem;line-height:1.55;overflow-wrap:anywhere;}

/* Pasar por una sede de la lista resalta su punto en el mapa */
.ci-map:has(.geo-office--es:is(:hover,:focus-within)) .geo-pin--es .geo-core,
.ci-map:has(.geo-office--co:is(:hover,:focus-within)) .geo-pin--co .geo-core{transform:scale(1.35);}
.ci-map:has(.geo-office--es:is(:hover,:focus-within)) .geo-tag--es,
.ci-map:has(.geo-office--co:is(:hover,:focus-within)) .geo-tag--co{
  background:var(--accent);border-color:var(--accent);color:var(--fg-on-brand);
}
.ci-map:has(.geo-office--es:is(:hover,:focus-within)) .geo-tag--es small,
.ci-map:has(.geo-office--co:is(:hover,:focus-within)) .geo-tag--co small{color:rgba(255,255,255,.82);}

@media (max-width:420px){
  .ci .geo-tag{padding:4px 8px 5px;font-size:.72rem;}
  .ci .geo-tag small{font-size:.62rem;}
}
html.no-motion .geo-arc-flow,html.no-motion .geo-pulse{animation:none;}
@media (prefers-reduced-motion:reduce){ .geo-arc-flow,.geo-pulse{animation:none;} }

/* ============================================================================
   NUESTRAS EMPRESAS — cinco tarjetas (se suma Mafia: Cartels of War)
   ========================================================================= */
@media (min-width:961px){
  .dropdown.mega{width:min(1140px,calc(100vw - 48px));}
  .co-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;}
}
@media (max-width:960px){
  /* La tarjeta impar que queda sola se centra */
  .co-grid > .co-card:last-child:nth-child(odd){grid-column:1 / -1;justify-self:center;width:calc(50% - 5px);}
}
@media (max-width:340px){
  .co-grid > .co-card:last-child:nth-child(odd){grid-column:auto;justify-self:stretch;width:auto;}
}
.co-card[data-co="mafia"]{--c1:#c8913a;--c2:#0b0806;--c3:#1c140b;}
.co-card[data-co="mafia"] .co-fallback{
  background:
    radial-gradient(70% 60% at 50% 28%,rgba(242,205,124,.30) 0,transparent 70%),
    linear-gradient(180deg,#1c140b,#0b0806);
}
.co-card[data-co="mafia"] .co-fallback em{
  display:flex;flex-direction:column;align-items:center;gap:5px;
  font-size:1.45rem;font-weight:800;letter-spacing:.16em;line-height:1;
  color:#f2cd7c;text-shadow:0 2px 18px rgba(200,145,58,.45);
}
.co-card[data-co="mafia"] .co-fallback em small{
  font-size:.56rem;font-weight:600;letter-spacing:.3em;text-transform:uppercase;
  color:rgba(242,205,124,.82);text-shadow:none;
}

/* ============================================================================
   NOSOTROS — Propósito, misión y visión, Horizonte 2036 y equipo
   ========================================================================= */
/* ---------- Propósito ---------- */
.purpose-band{
  position:relative;overflow:hidden;isolation:isolate;
  padding:var(--space-9) 0;
  background:var(--bg-inverse);color:var(--fg-inverse);
}
.purpose-band::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(720px 420px at 8% 0%,rgba(122,155,214,.24),transparent 62%),
    radial-gradient(560px 360px at 100% 100%,rgba(63,99,168,.22),transparent 60%);
}
.purpose{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--space-8);align-items:start;}
.purpose-band .eyebrow{color:var(--accent-decor);}
.purpose-title{
  margin-top:var(--space-4);
  font-size:clamp(1.9rem,3.8vw,3rem);line-height:1.08;letter-spacing:-.035em;
  color:#fff;max-width:17ch;
}
.purpose-body{padding-top:var(--space-2);}
.purpose-body p{color:rgba(255,255,255,.74);font-size:clamp(1rem,1.4vw,1.1rem);line-height:1.75;}
.purpose-body p + p{margin-top:var(--space-4);}
.purpose-body .purpose-close{
  margin-top:var(--space-5);padding-left:var(--space-5);
  border-left:3px solid var(--accent-decor);
  color:#fff;font-weight:600;font-size:clamp(1.05rem,1.6vw,1.2rem);line-height:1.6;
}
.purpose-cta{margin-top:var(--space-6);}
.btn-light{background:#fff;color:var(--navy);box-shadow:var(--shadow-sm);}
.btn-light::before{background:var(--accent-decor);}
.btn.is-soon{cursor:default;gap:10px;}
.btn.is-soon:hover,.btn.is-soon:focus-visible{transform:none;}
.btn.is-soon::before,.btn.is-soon::after{display:none;}
.btn.is-soon small{
  padding:3px 9px;border-radius:var(--r-full);
  background:var(--accent-soft);color:var(--accent);
  font-size:.62rem;font-weight:800;letter-spacing:.08em;
}
@media (max-width:880px){
  .purpose-band{padding:var(--space-8) 0;}
  .purpose{grid-template-columns:1fr;gap:var(--space-5);}
}

/* ---------- Misión y visión ---------- */
.mv-row{
  display:grid;grid-template-columns:minmax(180px,280px) 1fr;gap:var(--space-7);
  padding:var(--space-7) 0;
  border-top:1px solid var(--line);
}
.mv-row:first-child{padding-top:0;border-top:none;}
.mv-row:last-child{padding-bottom:0;}
.mv-label{
  display:flex;flex-direction:column;gap:var(--space-3);
  font-size:clamp(1.7rem,3vw,2.4rem);letter-spacing:-.035em;
}
.mv-index{font-size:.8rem;font-weight:700;letter-spacing:.12em;color:var(--accent);}
.mv-text{max-width:720px;}
.mv-text p{color:var(--fg-muted);font-size:1.02rem;line-height:1.75;}
.mv-text p + p{margin-top:var(--space-4);}
.mv-text .mv-lead{
  color:var(--fg);font-weight:500;
  font-size:clamp(1.15rem,2vw,1.42rem);line-height:1.5;letter-spacing:-.015em;
}
@media (max-width:760px){
  .mv-row{grid-template-columns:1fr;gap:var(--space-4);padding:var(--space-6) 0;}
  .mv-label{flex-direction:row;align-items:baseline;gap:var(--space-3);}
}

/* ---------- Horizonte 2036 ---------- */
.horizon-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-6);
  margin-bottom:var(--space-6);
}
.horizon-head h2{margin-top:var(--space-3);font-size:clamp(1.6rem,3.4vw,2.5rem);}
.horizon-head .lead{margin-top:var(--space-3);}
.horizon-year{
  flex:0 0 auto;
  font-size:clamp(4rem,10vw,8rem);font-weight:800;line-height:.8;letter-spacing:-.06em;
  color:transparent;
  -webkit-text-stroke:1.5px color-mix(in srgb,var(--accent) 45%,transparent);
  -webkit-user-select:none;user-select:none;
}
.horizon-grid .card{display:flex;align-items:flex-start;gap:var(--space-4);}
.horizon-grid .card .num{flex:0 0 auto;margin-bottom:0;}
.horizon-grid .card p{padding-top:8px;color:var(--fg);font-size:1.04rem;line-height:1.6;}
@media (max-width:640px){
  .horizon-head{flex-direction:column;align-items:flex-start;}
  .horizon-year{display:none;}
}

/* ---------- Equipo ---------- */
.team .section-head{margin-bottom:var(--space-6);}
.team-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-6) var(--space-5);}
.tm{flex:0 1 calc((100% - 4 * var(--space-5)) / 5);min-width:0;}
@media (max-width:1024px){ .tm{flex-basis:calc((100% - 2 * var(--space-5)) / 3);} }
@media (max-width:640px){
  .team-grid{gap:var(--space-5) var(--space-3);}
  .tm{flex-basis:calc((100% - var(--space-3)) / 2);}
}
.tm-photo{
  position:relative;overflow:hidden;isolation:isolate;
  display:grid;place-items:center;aspect-ratio:4/5;
  border-radius:var(--r-lg);
  background:
    radial-gradient(120% 80% at 15% 0%,rgba(122,155,214,.35),transparent 60%),
    linear-gradient(160deg,#1F3358,#0E1526);
  box-shadow:var(--shadow-sm);
}
.tm-initials{font-size:clamp(1.6rem,3.2vw,2.4rem);font-weight:700;letter-spacing:.02em;color:rgba(255,255,255,.9);}
.tm-photo img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:50% 25%;
  filter:grayscale(1) contrast(1.04);
  transition:opacity .5s ease,transform .8s var(--ease-smooth),filter .6s ease;
}
html.js .tm-photo img{opacity:0;}
html.js .tm-photo img.is-loaded{opacity:1;}
.tm:hover .tm-photo img{transform:scale(1.04);filter:grayscale(0) contrast(1);}
.tm-name{margin-top:var(--space-4);font-size:1.08rem;letter-spacing:-.02em;line-height:1.25;}
.tm-role{margin-top:4px;font-size:.9rem;font-weight:600;line-height:1.4;color:var(--accent);}
html.no-motion .tm:hover .tm-photo img{transform:none;}
@media (prefers-reduced-motion:reduce){ .tm:hover .tm-photo img{transform:none;} }
.tm-nowrap{white-space:nowrap;}

/* ============================================================================
   NUESTROS PROYECTOS — página nueva con las cinco empresas
   ========================================================================= */
.dropdown a.mega-all{
  display:flex;align-items:center;justify-content:center;gap:8px;
  margin-top:14px;padding:12px 16px;border-radius:14px;
  background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:.92rem;
}
.dropdown a.mega-all::before{display:none;}
.dropdown a.mega-all svg{width:16px;height:16px;transition:transform .3s var(--ease-smooth);}
.dropdown a.mega-all:hover,.dropdown a.mega-all:focus-visible{background:var(--accent);color:#fff;padding-left:16px;}
.dropdown a.mega-all:hover svg,.dropdown a.mega-all:focus-visible svg{transform:translateX(3px);}
@media (max-width:960px){ .dropdown a.mega-all{margin:0 0 18px;min-height:48px;} }

.proj-hero .proj-stats{margin-top:var(--space-6);max-width:780px;}
.proj-index{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--space-5);}
.proj-index a{
  display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:var(--r-full);
  border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.84);font-size:.86rem;font-weight:600;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.proj-index a span{font-size:.7rem;font-weight:800;color:var(--accent-decor);}
.proj-index a:hover,.proj-index a:focus-visible{background:#fff;color:var(--navy);border-color:#fff;}

.proj-list .wrap{display:grid;gap:clamp(64px,9vw,120px);}
.proj-row{
  display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,64px);align-items:center;
  scroll-margin-top:calc(var(--nav-h) + 24px);
}
.proj-row.is-flip .proj-shot{order:2;}
.proj-shot{
  position:relative;display:block;border-radius:18px;overflow:hidden;background:var(--bg-elevated);
  box-shadow:0 0 0 1px rgba(14,21,38,.08),0 24px 60px rgba(14,21,38,.14);
  opacity:0;transform:translateY(28px) scale(.98);
  transition:transform 1s var(--vz-ease),opacity .8s ease,box-shadow .4s ease;
}
.proj-row.vz-in .proj-shot{opacity:1;transform:none;}
.proj-row.vz-in .proj-shot:hover{box-shadow:0 0 0 1px rgba(14,21,38,.1),0 30px 70px rgba(14,21,38,.2);}
.proj-shot .co-chrome{height:30px;}
.proj-screen{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:#e9ecf3;}
.proj-screen img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform 1.2s var(--vz-ease);}
.proj-shot:hover .proj-screen img,.proj-shot:focus-visible .proj-screen img{transform:scale(1.045);}
.proj-body{min-width:0;}
.proj-row .proj-body > *{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .8s var(--vz-ease);}
.proj-row.vz-in .proj-body > *{opacity:1;transform:none;}
.proj-row.vz-in .proj-body > *:nth-child(2){transition-delay:.06s;}
.proj-row.vz-in .proj-body > *:nth-child(3){transition-delay:.12s;}
.proj-row.vz-in .proj-body > *:nth-child(4){transition-delay:.18s;}
.proj-row.vz-in .proj-body > *:nth-child(5){transition-delay:.24s;}
.proj-row.vz-in .proj-body > *:nth-child(6){transition-delay:.3s;}
.proj-row.vz-in .proj-body > *:nth-child(7){transition-delay:.36s;}
.proj-row.vz-in .proj-body > *:nth-child(8){transition-delay:.42s;}
.proj-kicker{display:flex;align-items:center;gap:10px;font-size:.8rem;font-weight:700;letter-spacing:.02em;color:var(--fg-muted);}
.proj-kicker span{
  display:grid;place-items:center;width:30px;height:30px;border-radius:50%;
  background:var(--accent-soft);color:var(--accent);font-size:.72rem;font-weight:800;
}
.proj-body h2{margin-top:14px;font-size:clamp(1.7rem,3.4vw,2.4rem);letter-spacing:-.035em;}
.proj-claim{margin-top:10px;font-size:clamp(1.05rem,1.6vw,1.2rem);font-weight:500;line-height:1.45;color:var(--accent);}
.proj-body > p:not(.proj-claim){margin-top:14px;color:var(--fg-muted);line-height:1.7;}
.proj-points{display:grid;gap:8px;margin-top:18px;}
.proj-points li{position:relative;padding-left:22px;font-size:.95rem;line-height:1.55;color:var(--fg);}
.proj-points li::before{
  content:"";position:absolute;left:2px;top:.55em;width:8px;height:8px;border-radius:50%;
  background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);
}
.proj-mini{margin-top:20px;}
.proj-mini .vz-stat{padding:14px 14px 12px;}
.proj-mini .vz-stat-num{font-size:1.7rem;}
.proj-flow{margin-top:22px;}
.proj-flow .vz-flow-dot{width:40px;height:40px;font-size:.8rem;}
.proj-flow::before,.proj-flow::after{top:19px;}
.proj-ctas{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;margin-top:26px;}
.proj-link{font-weight:700;color:var(--accent);border-bottom:1.5px solid transparent;transition:border-color .2s ease;}
.proj-link:hover,.proj-link:focus-visible{border-bottom-color:currentColor;}

/* Mafia: bloque oscuro con el dorado del juego */
.proj-row.is-dark{
  padding:clamp(24px,4vw,48px);border-radius:28px;
  background:radial-gradient(80% 90% at 85% 0%,rgba(242,205,124,.18),transparent 60%),linear-gradient(180deg,#1c140b,#0b0806);
  color:#f5ead6;
}
.proj-row.is-dark .proj-kicker{color:rgba(245,234,214,.72);}
.proj-row.is-dark .proj-kicker span{background:rgba(242,205,124,.16);color:#f2cd7c;}
.proj-row.is-dark h2{color:#fff;}
.proj-row.is-dark .proj-claim{color:#f2cd7c;}
.proj-row.is-dark .proj-body > p:not(.proj-claim){color:rgba(245,234,214,.74);}
.proj-row.is-dark .vz-stat{background:rgba(255,255,255,.05);border-color:rgba(242,205,124,.2);}
.proj-row.is-dark .vz-stat-num{color:#fff;}
.proj-row.is-dark .vz-stat-label{color:rgba(245,234,214,.72);}
.proj-row.is-dark .vz-stat::before{background:#f2cd7c;}
.proj-row.is-dark .proj-link{color:#f2cd7c;}
.proj-row.is-dark .btn-light{background:#f2cd7c;color:#1c140b;}
.proj-row.is-dark .btn-light::before{background:#fff;}
.proj-row.is-dark .proj-shot{box-shadow:0 0 0 1px rgba(242,205,124,.22),0 24px 60px rgba(0,0,0,.45);}

/* Recorrido Málaga–Estepona */
.route{margin-top:20px;padding:16px 18px 10px;border-radius:var(--r-md);background:var(--bg-panel);border:1px solid var(--line);}
.pv-path.route-svg{display:block;width:100%;height:auto;}
.route-svg text{font-size:11px;}
.route-svg .track{stroke-width:3;stroke-linecap:round;}
.route-svg .run{stroke-width:3;transition-duration:2.2s;}

@media (max-width:880px){
  .proj-row{grid-template-columns:1fr;}
  .proj-row.is-flip .proj-shot{order:0;}
}
.proj-body .proj-flow{margin:28px 0 8px;}
.proj-body .proj-mini{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));}
.proj-body .route + .proj-points,.proj-body .proj-flow + .proj-points{margin-top:22px;}

/* ============================================================================
   NOSOTROS — nueva visual: matriz en el héroe, cifras, datos que se ordenan,
   cita destacada y cuatro pilares con mini gráficas
   ========================================================================= */
.about-hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:var(--space-8);align-items:center;}
.about-matrix{margin:0;justify-self:end;width:100%;max-width:400px;}
.about-matrix .vz-matrix-cell{background:var(--bg-elevated);}
.about-matrix .vz-matrix-cell.is-hi{background:var(--accent-soft);}
.about-stats{margin-top:var(--space-7);}
.about-stats .vz-stat{background:var(--bg-elevated);}
@media (max-width:960px){
  .about-hero-grid{grid-template-columns:1fr;gap:var(--space-6);}
  .about-matrix{justify-self:start;max-width:340px;}
}

.about-who-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:var(--space-8);align-items:center;}
.about-who-grid h2{margin-top:var(--space-3);margin-bottom:var(--space-4);}
.about-scatter{margin:0;}
@media (max-width:960px){ .about-who-grid{grid-template-columns:1fr;gap:var(--space-6);} }

.about-quote{
  position:relative;margin:var(--space-8) 0 0;
  padding:var(--space-6) 0 var(--space-6) clamp(48px,7vw,84px);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.about-quote::before{
  content:"“";position:absolute;left:0;top:calc(var(--space-6) - 10px);
  font-size:clamp(4rem,8vw,5.5rem);line-height:1;font-weight:700;color:var(--accent);
}
.about-quote p{max-width:30ch;font-size:clamp(1.35rem,2.8vw,2rem);line-height:1.35;letter-spacing:-.025em;font-weight:500;color:var(--fg);}
.about-quote mark{
  background-color:transparent;color:inherit;
  background-image:linear-gradient(transparent 60%,var(--accent-soft) 60%);
  background-repeat:no-repeat;background-size:0% 100%;
  transition:background-size 1.3s var(--ease-smooth) .3s;
}
.about-quote.is-in mark{background-size:100% 100%;}

.about-who .pillars{margin-top:var(--space-7);}
.pillars .pillar{grid-template-columns:minmax(0,1fr) 236px;}
@media (max-width:1100px){ .pillars{grid-template-columns:1fr;} }
@media (max-width:540px){ .pillars .pillar{grid-template-columns:1fr;} .pillar-viz{max-width:260px;} }

.pv-merge{display:grid;grid-template-columns:auto 30px 52px;align-items:center;justify-content:start;}
.pv-chips{display:flex;flex-direction:column;justify-content:space-between;height:120px;}
.pv-chips li{
  justify-self:start;padding:3px 9px;border-radius:var(--r-full);
  background:var(--bg-panel);border:1px solid var(--line);
  font-size:.66rem;font-weight:700;color:var(--fg-muted);white-space:nowrap;
  opacity:0;transform:translateX(-8px);transition:opacity .5s ease,transform .6s var(--ease-smooth);
}
.pillar.vz-in .pv-chips li{opacity:1;transform:none;}
.pv-chips li:nth-child(2){transition-delay:.1s;} .pv-chips li:nth-child(3){transition-delay:.2s;} .pv-chips li:nth-child(4){transition-delay:.3s;}
.pv-lines{width:34px;height:120px;overflow:visible;}
.pv-lines path{fill:none;stroke:var(--accent-decor);stroke-width:1.5;stroke-dasharray:60;stroke-dashoffset:60;transition:stroke-dashoffset .8s var(--ease-smooth) .5s;}
.pillar.vz-in .pv-lines path{stroke-dashoffset:0;}
.pv-merge .pv-check{position:relative;right:auto;top:auto;margin:0;}

.pv-dots-wrap{display:flex;flex-direction:column;justify-content:center;gap:10px;}
.pv-dots-wrap .pv-dots{grid-template-columns:repeat(17,1fr);gap:3px;height:auto;}
.pv-dots-wrap .pv-dots span{background:var(--accent);}
.pv-dots-cap{font-size:.74rem;color:var(--fg-muted);}
.pv-dots-cap b{color:var(--fg);font-weight:700;}

.horizon-track .horizon-pin{transform:none;}
.horizon-track .horizon-pin.is-end{left:auto;right:0;}

/* ---------- Subpáginas de Nosotros: piezas gráficas ---------- */
.tstat{margin-top:12px;max-width:260px;}
.tstat .vz-stat{padding:12px 14px 10px;background:var(--bg-elevated);}
.tstat .vz-stat-num{font-size:1.6rem;}
.culture-viz .vz{margin:0;}
.culture-viz .vz-grid2{margin-bottom:var(--space-5);}
.evidence-meter{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;margin-top:22px;font-size:.8rem;font-weight:700;color:var(--fg-muted);}
.evidence-meter .vz-meter-bar i{width:100%;transition-duration:1.6s;transition-delay:.2s;}
.evidence .evidence-chip i{position:relative;}
.evidence.vz-in .evidence-chip i::after{content:"";position:absolute;left:3px;top:0;width:4px;height:8px;border:solid currentColor;border-width:0 2px 2px 0;transform:rotate(45deg);}
.quality-viz{margin-top:var(--space-6);}
.quality-viz .vz{margin:0;}
.converge-row{grid-template-columns:110px 1fr;}
.persp i{background:var(--vz-1);}
.persp-ev{gap:8px;}
.impact-viz{margin-top:var(--space-6);}
.impact-viz .vz{margin:0;}
.gap-funnel{display:grid;gap:14px;}
.gap-row{display:grid;gap:6px;}
.gap-row span{font-size:.86rem;color:var(--fg);}
.gap-row i{display:block;height:20px;width:var(--w);border-radius:0 4px 4px 0;background:var(--vz-muted);transform-origin:left;transform:scaleX(0);transition:transform 1.2s var(--ease-smooth);}
.gap-row.is-key i{background:var(--accent);transition-delay:.45s;}
.vz-in .gap-row i{transform:scaleX(1);}
.gap-brace{position:relative;margin-left:38%;padding:6px 0 0 14px;border-left:2px solid var(--accent-decor);font-size:.8rem;color:var(--fg-muted);opacity:0;transition:opacity .6s ease 1.4s;}
.vz-in .gap-brace{opacity:1;}

/* ============================================================================
   SERVICIOS — gráficas de cada página
   ========================================================================= */
.svc-route{padding-top:var(--space-7);}
.svc-route .vz{margin:0;}
.svc-flow li > a{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;}
.svc-flow li > a span:not(.vz-flow-dot){font-size:.8rem;color:var(--fg-muted);}
@media (max-width:760px){
  .svc-flow li > a{flex-direction:row;align-items:center;text-align:left;gap:14px;}
}

.report-demo{margin-top:var(--space-6);}
.report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5);}
.report-cell{display:flex;flex-direction:column;gap:12px;padding:18px;border-radius:var(--r-md);background:var(--bg-panel);min-width:0;}
.report-label{font-size:.74rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-muted);}
.report-cell .vz-gauge{width:100%;}
.report-meters{margin-top:6px;}
.report-cell .vz-radar{width:100%;}
.report-cell .vz-db-track::before{background:var(--line-strong);}
.report-cell .vz-db-a{box-shadow:0 0 0 2px var(--bg-panel);}
.report-cell .vz-db-b{box-shadow:0 0 0 2px var(--bg-panel);}
.report-prio{
  display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;
  background:var(--accent);color:#fff;font-style:normal;font-size:.66rem;font-weight:700;vertical-align:1px;
}
@media (max-width:1024px){ .report-grid{grid-template-columns:1fr 1fr;} .report-grid .report-cell:last-child{grid-column:1 / -1;} }
@media (max-width:680px){ .report-grid{grid-template-columns:1fr;} }

.method-stats{margin-bottom:var(--space-5);}
.method-stats .vz-stat,.pain-stats .vz-stat{background:var(--bg-elevated);}
.pain-stats{margin-top:var(--space-6);}
.factor-demo{margin-top:var(--space-5);max-width:760px;}

.phase-flow{margin-bottom:var(--space-6);}
.phase-flow b{max-width:18ch;}

.decisions{margin-top:var(--space-6);}
.decisions-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--space-6);align-items:center;}
.decisions .vz-dots{gap:7px;}
.decisions-num b{display:block;font-size:clamp(3rem,7vw,4.6rem);font-weight:700;letter-spacing:-.05em;line-height:1;color:var(--fg);}
.decisions-num span{display:block;margin-top:8px;max-width:28ch;font-size:.98rem;line-height:1.5;color:var(--fg-muted);}
@media (max-width:760px){ .decisions-grid{grid-template-columns:1fr;} }

.brand-cash{margin-top:var(--space-6);}
.pv-rise.bc-svg{height:auto;}
.bc-svg .line.cash{stroke:var(--vz-2);}
.bc-svg .end.cash{fill:var(--vz-2);}
.bc-svg .line{stroke-width:2.5;}
.bc-svg .bc-lab{font-size:13px;font-weight:700;fill:var(--fg);font-family:var(--font-body);}
.bc-axis{display:flex;justify-content:space-between;margin-top:6px;font-size:.78rem;color:var(--fg-subtle);}
@media (max-width:560px){ .bc-svg .bc-lab{display:none;} }

.invest-demo .vz-radar{max-width:320px;}
.plan-tl{margin-top:4px;}
.plan-tl .vz-tl-text{font-size:.9rem;}
.brand-cash{max-width:860px;}

/* ============================================================================
   INICIO, ARTÍCULOS, LEYENDAS E HISTORIAS — piezas gráficas
   ========================================================================= */
.home-band{max-width:var(--wrap-wide);margin:var(--space-6) auto 0;padding:0 var(--space-6);}
@media (max-width:640px){ .home-band{padding:0 var(--space-5);} }
.home-matrix-grid{
  display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:var(--space-8);align-items:center;
  padding:clamp(28px,4vw,48px);border-radius:var(--r-xl);background:var(--bg-elevated);border:1px solid var(--line-alt);
}
.home-matrix-grid h2{margin:var(--space-3) 0 var(--space-4);font-size:clamp(1.7rem,3.4vw,2.5rem);}
.home-stats{margin-top:var(--space-6);}
.home-matrix-fig{margin:0;justify-self:center;width:100%;max-width:400px;}
@media (max-width:960px){ .home-matrix-grid{grid-template-columns:1fr;gap:var(--space-6);} .home-matrix-fig{justify-self:start;max-width:340px;} }

.home-eco{margin-top:var(--space-7);}
.home-eco-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 24px;margin-bottom:var(--space-5);}
.home-eco-head h2{margin-top:var(--space-3);font-size:clamp(1.5rem,3vw,2.2rem);}
.home-eco-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;}
@media (max-width:1100px){ .home-eco-grid{grid-template-columns:repeat(3,minmax(0,1fr));} }
@media (max-width:640px){ .home-eco-grid{grid-template-columns:repeat(2,minmax(0,1fr));} .home-eco-grid .eco-card:last-child{grid-column:1 / -1;} }
.eco-card{
  display:flex;flex-direction:column;gap:4px;padding:10px 10px 14px;border-radius:18px;
  background:var(--bg-elevated);border:1px solid var(--line-alt);
  transition:transform .4s var(--ease-smooth),box-shadow .4s var(--ease-smooth);
}
.eco-card:hover,.eco-card:focus-visible{transform:translateY(-4px);box-shadow:var(--shadow-md);}
.eco-shot{display:block;aspect-ratio:16/10;border-radius:12px;overflow:hidden;background:#e9ecf3;margin-bottom:8px;}
.eco-shot img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .8s var(--ease-smooth);}
.eco-card:hover .eco-shot img{transform:scale(1.05);}
.eco-card b{padding:0 4px;font-size:.95rem;letter-spacing:-.015em;color:var(--fg);}
.eco-card > span:last-child{padding:0 4px;font-size:.8rem;color:var(--fg-muted);}

.case-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-6);align-items:center;}
.case-grid .vz-meters{margin-top:14px;}
@media (max-width:640px){ .case-grid{grid-template-columns:1fr;} }
.vz-gap{margin-top:22px;margin-bottom:12px;}
.story-body .vz .vz-stats{margin-top:0;}
.story-body .vz-stats{margin:var(--space-5) 0 var(--space-6);}
.story-body .vz .vz-stats + .vz-gap{margin-top:22px;}
.story-body .vz-tl a{color:var(--accent);}

.legends-moments{padding-top:var(--space-7);}
.moments{max-width:820px;}
.hitos{max-width:100%;}
.hitos .vz-head{margin-bottom:14px;}

.board-band{padding:var(--space-7) 0 var(--space-6);background:var(--bg-alt);}
.board{padding-bottom:30px;}
@media (max-width:640px){ .seat .fn{display:none;} }
.home-stats{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));}
