/* ===================================================
   LUZARK — Sistema de Diseño compartido
   Línea Medianoche · Manual de Marca v2.0
   =================================================== */

:root{
  --medianoche:#0D1A30;
  --medianoche-2:#13243F;
  --oro:#D6A55B;
  --oro-2:#B0823A;
  --marfil:#F3EFE8;
  --marfil-2:#EAE3D6;
  --tinta:#1C2430;
  --tinta-tenue:#5B6675;
  --linea:#DAD2C2;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--marfil); color:var(--tinta);
  font-family:"IBM Plex Sans",system-ui,sans-serif; font-weight:400;
  line-height:1.7; -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:"Newsreader",Georgia,serif; font-weight:500; line-height:1.15; margin:0;}
.gold-it{font-style:italic; color:var(--oro);}
p{margin:0 0 1.1em;}
a{color:inherit;}
.wrap{max-width:1080px; margin:0 auto; padding:0 28px;}

/* ===== Microtipografía / cejillas ===== */
.eyebrow{
  font-family:"IBM Plex Mono",monospace; font-size:11.5px; font-weight:500;
  letter-spacing:3.5px; text-transform:uppercase; color:var(--oro); margin:0 0 18px;
}
.eyebrow.dark{color:var(--oro-2);}
.thread{height:2px; border:none; width:96px; margin:0;
  background:linear-gradient(90deg,var(--oro),var(--oro-2));}

/* ===== Hero ===== */
header.hero{
  background:var(--medianoche); color:var(--marfil);
  position:relative; overflow:hidden; padding:88px 0 76px;
}
header.hero::before{
  content:""; position:absolute; inset:0;
  background-image:repeating-linear-gradient(135deg, rgba(214,165,91,.05) 0 1px, transparent 1px 26px);
}
header.hero::after{
  content:""; position:absolute; right:-160px; top:-160px; width:520px; height:520px;
  border-radius:50%; background:radial-gradient(circle at center, rgba(214,165,91,.10), transparent 62%);
}
.hero .wrap{position:relative; z-index:2;}
.brand{display:flex; align-items:center; gap:14px; color:var(--oro);}
.brand .mark{width:64px; height:58px; display:block; flex:none;}
.brand .mark svg{width:100%; height:100%;}
.mark svg { width: 64px !important; height: 58px !important; }
.foot .brand .mark { width:80px; height:72px; }
.foot .mark svg { width: 80px !important; height: 72px !important; }
.brand .word{font-family:"Newsreader",serif; font-size:32px; letter-spacing:3px; font-weight:600; color:var(--oro);}
.hero-nav{display:flex; justify-content:space-between; align-items:center; margin-bottom:64px;}
.hero-nav nav a{
  font-family:"IBM Plex Mono",monospace; font-size:11.5px; letter-spacing:2px;
  text-transform:uppercase; text-decoration:none; color:#B9C6DA; margin-left:26px; transition:color .2s;
}
.hero-nav nav a:hover{color:var(--oro);}
.hero h1{font-size:54px; max-width:18ch; margin:0 0 22px; color:#FBF7F0;}
.hero .lede{font-size:19px; max-width:60ch; color:#C7D2E2; font-weight:300;}
.hero .actions{margin-top:38px; display:flex; gap:16px; flex-wrap:wrap;}

/* ===== Botones ===== */
.btn{
  display:inline-block; font-family:"IBM Plex Sans",sans-serif; font-size:14px;
  font-weight:500; letter-spacing:.3px; padding:14px 26px; border-radius:2px;
  text-decoration:none; transition:all .18s; cursor:pointer; border:1px solid transparent;
}
.btn-gold{background:linear-gradient(90deg,var(--oro),var(--oro-2)); color:var(--medianoche); font-weight:600;}
.btn-gold:hover{filter:brightness(1.08);}
.btn-ghost{border-color:rgba(214,165,91,.5); color:var(--oro);}
.btn-ghost:hover{background:rgba(214,165,91,.10);}

/* ===== Secciones ===== */
section{padding:78px 0;}
section.alt{background:var(--marfil-2);}
.section-head{max-width:64ch; margin-bottom:34px;}
.section-head h2{font-size:36px; margin:14px 0 0;}
.lead{font-size:19px; color:var(--tinta); font-weight:400;}
.frame .lead{max-width:70ch;}

/* ===== Práctica — cuadrícula 3×2 ===== */
.triad{display:grid; grid-template-columns:repeat(3,1fr); gap:38px; margin-top:8px;}
.triad .col{border-top:2px solid var(--oro); padding-top:18px;}
.triad .col .label{
  font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:2.5px;
  text-transform:uppercase; color:var(--oro-2); display:block; margin-bottom:8px;
}
.triad .col h3{font-size:23px; margin-bottom:10px;}
.triad .col p{font-size:15px; color:var(--tinta-tenue); margin:0;}

/* ===== Contratos Verificables — Teaser ===== */
.cpv-teaser{
  display:grid; grid-template-columns:1fr 1fr; gap:64px;
  align-items:center; padding:8px 0;
}
.cpv-mock{
  background:rgba(255,255,255,.04); border:1px solid rgba(214,165,91,.2);
  border-left:3px solid var(--oro); border-radius:4px; padding:32px 36px;
}
.cpv-items{display:flex; flex-direction:column; gap:0;}
.cpv-item{
  display:flex; flex-direction:column; gap:2px;
  padding:10px 0; border-bottom:1px solid rgba(214,165,91,.12);
}
.cpv-item-name{
  font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:1.5px;
  text-transform:uppercase; color:var(--oro);
}
.cpv-item-desc{font-size:13px; color:#8FA0B8; line-height:1.5;}

/* ===== Propósito — El nombre (versión simple) ===== */
.prop-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; margin-top:8px;}
.prop-col{border-top:2px solid var(--oro); padding-top:18px;}
.prop-col h3{font-size:23px; margin:0 0 10px;}
.prop-col p{font-size:15.5px; color:var(--tinta-tenue); margin:0;}
.pullquote{
  font-family:"Newsreader",serif; font-size:28px; font-style:italic;
  color:var(--tinta); border-left:4px solid var(--oro); margin:44px 0 0;
  padding:6px 0 6px 24px; max-width:48ch; line-height:1.4;
}

/* ===== El nombre — narrativa ===== */
.nombre-narrative{display:grid; grid-template-columns:1fr 1fr; gap:56px; margin-top:8px; align-items:start;}
.nombre-lead{font-family:"Newsreader",serif; font-size:18px; color:var(--tinta); line-height:1.75;}
.nombre-story p{font-size:16px; color:var(--tinta-tenue); line-height:1.8;}
.nombre-aside{position:sticky; top:24px;}

/* ===== El Momento — stats ===== */
.stats-row{display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin:38px 0;}
.stat-box{border-top:3px solid var(--oro); padding-top:18px;}
.stat-box .num{
  font-family:"Newsreader",serif; font-size:52px; font-weight:600;
  color:var(--medianoche); line-height:1; margin-bottom:8px;
}
.stat-box .def{font-size:14px; color:var(--tinta-tenue); line-height:1.5;}
.momento-cols{display:grid; grid-template-columns:1fr 1fr 1fr; gap:38px; margin-top:8px;}
.momento-col{border-top:1px solid var(--linea); padding-top:16px;}
.momento-col h4{font-family:"Newsreader",serif; font-size:20px; font-weight:500; margin:0 0 10px;}
.momento-col p{font-size:14.5px; color:var(--tinta-tenue); margin:0;}

/* ===== Plataforma ===== */
.plat-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; margin-top:36px;}
.plat-col h3{font-family:"Newsreader",serif; font-size:22px; font-weight:500; margin:0 0 18px;}
.plat-list{list-style:none; margin:0; padding:0;}
.plat-list li{
  font-size:15px; color:var(--tinta-tenue); padding:11px 0;
  border-bottom:1px solid var(--linea); display:flex; gap:12px; align-items:flex-start;
}
.plat-list li::before{content:"—"; color:var(--oro); flex:none; font-weight:600;}
.plat-hero{
  background:var(--medianoche); color:var(--marfil); border-radius:4px;
  padding:36px 40px; margin-bottom:44px; position:relative; overflow:hidden;
}
.plat-hero::after{
  content:""; position:absolute; right:-80px; bottom:-80px; width:240px; height:240px;
  border-radius:50%; background:radial-gradient(circle, rgba(214,165,91,.13), transparent 65%);
}
.plat-hero p{font-size:20px; font-family:"Newsreader",serif; font-style:italic;
  color:#FBF7F0; max-width:50ch; line-height:1.5; margin:0; position:relative; z-index:2;}

/* ===== Arquetipos ===== */
.arq-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:10px;}
.arq-card{border:1px solid var(--linea); border-radius:3px; padding:22px 22px 20px; background:#fff;}
.arq-num{
  font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:2px;
  text-transform:uppercase; color:var(--oro-2); display:block; margin-bottom:10px;
}
.arq-card h3{font-size:20px; margin:0 0 8px;}
.arq-card .line-tag{
  font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:1.5px;
  text-transform:uppercase; color:var(--tinta-tenue); display:block; margin-bottom:10px;
}
.arq-card p{font-size:14px; color:var(--tinta-tenue); margin:0 0 14px;}
.arq-certs{display:flex; flex-wrap:wrap; gap:5px;}
.arq-certs span{
  font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.5px;
  border:1px solid var(--linea); border-radius:2px; padding:2px 7px;
  color:var(--tinta-tenue); background:var(--marfil);
}
.arq-estratega{
  background:var(--medianoche); color:var(--marfil); border-radius:3px;
  padding:28px 32px; margin-top:24px; display:grid;
  grid-template-columns:auto 1fr; gap:28px; align-items:center;
}
.arq-estratega .num{
  font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:2px;
  text-transform:uppercase; color:var(--oro); display:block; margin-bottom:8px;
}
.arq-estratega h3{font-size:24px; color:#FBF7F0; margin:0 0 6px;}
.arq-estratega .line-tag{
  font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:1.5px;
  text-transform:uppercase; color:var(--oro-2); display:block; margin-bottom:10px;
}
.arq-estratega p{font-size:14.5px; color:#C7D2E2; margin:0 0 14px; font-weight:300;}
.arq-estratega .arq-certs span{background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.18); color:#B9C6DA;}
.arq-mark{
  width:72px; height:72px; flex:none;
  border:1px solid rgba(214,165,91,.3); border-radius:3px;
  display:flex; align-items:center; justify-content:center; color:var(--oro);
}

/* ===== Pipeline (Cómo funciona) ===== */
.pipeline-list{list-style:none; margin:0; padding:0;}
.pipeline-item{
  display:grid; grid-template-columns:32px 1fr; gap:16px;
  padding:18px 0; border-bottom:1px solid var(--linea); align-items:start;
}
.pipeline-item:first-child{border-top:1px solid var(--linea);}
.pipeline-num{
  font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:2px;
  color:var(--oro); font-weight:500; padding-top:4px;
}
.pipeline-item h4{font-family:"Newsreader",serif; font-size:18px; font-weight:500; margin:0 0 5px;}
.pipeline-item p{font-size:14px; color:var(--tinta-tenue); margin:0;}

/* ===== Cultura box ===== */
.cultura-box{background:var(--medianoche); color:var(--marfil); border-radius:4px; padding:30px 32px;}
.cultura-box h3{font-size:20px; color:#FBF7F0; margin:0 0 20px;}
.cultura-vals{list-style:none; margin:0; padding:0;}
.cultura-vals li{
  font-size:14px; color:#C7D2E2; font-weight:300; padding:9px 0;
  border-bottom:1px solid rgba(214,165,91,.15); display:flex; gap:10px;
}
.cultura-vals li:last-child{border-bottom:none;}
.cultura-vals li::before{content:"·"; color:var(--oro); font-weight:700; flex:none;}

/* ===== Marco normativo ===== */
.marcos-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:28px;}
.marco-card{border:1px solid var(--linea); border-radius:3px; padding:18px 20px; background:#fff;}
.marco-line{
  font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:1.5px;
  text-transform:uppercase; color:var(--oro-2); display:block;
  margin-bottom:12px; border-bottom:1px solid var(--linea); padding-bottom:10px;
}
.marco-tags{display:flex; flex-wrap:wrap; gap:6px;}
.marco-tags span{
  font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.5px;
  border:1px solid var(--linea); border-radius:2px; padding:3px 8px;
  color:var(--tinta-tenue); background:var(--marfil);
}

/* ===== Aplicativo destacado ===== */
.app-card{
  background:var(--medianoche); color:var(--marfil); border-radius:6px;
  padding:46px 48px; position:relative; overflow:hidden; margin-top:10px;
}
.app-card::after{
  content:""; position:absolute; left:0; top:0; bottom:0; width:4px;
  background:linear-gradient(180deg,var(--oro),var(--oro-2));
}
.app-card .eyebrow{margin-bottom:14px;}
.app-card h3{font-size:28px; color:#FBF7F0; max-width:24ch;}
.app-card p{color:#C7D2E2; max-width:62ch; font-weight:300;}
.app-card .meta{font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:2px;
  text-transform:uppercase; color:#8FA0B8; margin:18px 0 26px;}
.app-note{
  font-size:13.5px; color:#8FA0B8; font-style:italic;
  margin-top:14px; display:block;
}

/* ===== Pie oscuro ===== */
footer.foot{background:var(--medianoche); color:var(--marfil); padding:64px 0 40px; position:relative; overflow:hidden;}
footer.foot::before{content:""; position:absolute; inset:0;
  background-image:repeating-linear-gradient(135deg, rgba(214,165,91,.04) 0 1px, transparent 1px 26px);}
footer.foot .wrap{position:relative; z-index:2;}
footer .f-top{display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap; align-items:flex-start;}
footer h3{font-size:30px; color:#FBF7F0; max-width:16ch;}
footer .contact{font-size:15px; color:#C7D2E2;}
footer .contact a{color:var(--oro); text-decoration:none;}
footer .rule{height:1px; background:rgba(214,165,91,.22); margin:44px 0 22px;}
footer .legal{font-size:12px; color:#7E8EA6; line-height:1.7;}
footer .legal .brand-sm{font-family:"Newsreader",serif; color:var(--oro); font-size:15px;}

/* ===== contratos.html — Problema ===== */
.prob-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:8px;
}
.prob-card{
  background:#fff; padding:20px 22px; border-radius:3px;
  border:1px solid var(--linea); border-top:2px solid var(--oro);
}
.prob-num{
  font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:2px;
  text-transform:uppercase; color:var(--oro-2); display:block; margin-bottom:10px;
}
.prob-card h3{font-size:18px; margin:0 0 8px;}
.prob-card p{font-size:14px; color:var(--tinta-tenue); margin:0;}

/* ===== contratos.html — Qué es un CPV ===== */
.cpv-concepto{
  display:grid; grid-template-columns:1fr 1fr; gap:64px;
  margin-top:10px; align-items:start;
}
.cpv-capas{display:flex; flex-direction:column;}
.cpv-capa{
  display:flex; gap:20px; align-items:flex-start;
  padding:18px 0 18px 20px; border-bottom:1px solid var(--linea);
  border-left:2px solid var(--oro);
}
.capa-num{
  font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:2px;
  color:var(--oro); font-weight:500; min-width:20px; padding-top:3px;
}
.cpv-capa h4{font-family:"Newsreader",serif; font-size:18px; font-weight:500; margin:0 0 6px;}
.cpv-capa p{font-size:14px; color:var(--tinta-tenue); margin:0; line-height:1.6;}

/* ===== contratos.html — Niveles ===== */
.niveles-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
  margin-top:8px; align-items:start;
}
.nivel-card{
  border:1px solid var(--linea); border-radius:4px; padding:28px 26px;
  background:#fff; display:flex; flex-direction:column;
}
.nivel-card.nivel-featured{
  background:var(--medianoche); border-color:rgba(214,165,91,.3); border-top:2px solid var(--oro);
}
.nivel-eyebrow{
  font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:3px;
  text-transform:uppercase; color:var(--oro-2); display:block; margin-bottom:8px;
}
.nivel-badge{
  font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:1.5px;
  text-transform:uppercase; background:rgba(214,165,91,.15); color:var(--oro);
  padding:3px 8px; border-radius:2px; display:inline-block; margin-bottom:12px;
}
.nivel-badge-subtle{background:rgba(214,165,91,.08); color:var(--oro-2);}
.nivel-card h3{font-size:17px; margin:0 0 18px; line-height:1.4;}
.nivel-list{list-style:none; margin:0; padding:0; flex:1;}
.nivel-list li{
  font-size:14px; color:var(--tinta-tenue); padding:8px 0;
  border-bottom:1px solid var(--linea); display:flex; gap:10px; line-height:1.5;
}
.nivel-list li::before{content:"—"; color:var(--oro); flex:none;}
.nivel-list-dark li{color:#C7D2E2; border-bottom-color:rgba(214,165,91,.12);}
.nivel-list-dark li::before{color:var(--oro);}
.nivel-nota{
  font-size:12.5px; color:var(--tinta-tenue); font-style:italic; line-height:1.6; margin-top:14px;
}

/* ===== contratos.html — Inmobiliario ===== */
.inmob-grid{display:grid; grid-template-columns:1fr 1fr; gap:32px; margin:28px 0 0;}
.inmob-col{
  background:rgba(255,255,255,.04); border:1px solid rgba(214,165,91,.15);
  border-radius:3px; padding:22px 24px;
}

/* ===== contratos.html — FAQ ===== */
.faq-list{max-width:760px; margin-top:10px;}
.faq-item{border-bottom:1px solid var(--linea);}
.faq-q{
  font-family:"Newsreader",serif; font-size:19px; font-weight:500; color:var(--tinta);
  cursor:pointer; padding:20px 0; list-style:none;
  display:flex; justify-content:space-between; align-items:center; gap:16px; line-height:1.3;
}
.faq-q::-webkit-details-marker{display:none;}
.faq-q::after{
  content:"+"; font-family:"IBM Plex Mono",monospace; font-size:18px;
  color:var(--oro); flex:none; transition:transform .2s;
}
details[open] .faq-q::after{content:"−";}
.faq-a{
  font-size:15px; color:var(--tinta-tenue); line-height:1.75;
  padding:0 0 20px; margin:0; max-width:68ch;
}

/* ===== Catálogo de contratos ===== */
.cat-nav{
  display:flex; gap:4px; flex-wrap:wrap; margin-bottom:28px;
  border-bottom:1px solid var(--linea); padding-bottom:0;
}
.cat-tab{
  font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:2px;
  text-transform:uppercase; background:none; border:none; cursor:pointer;
  padding:10px 18px; color:var(--tinta-tenue); border-bottom:2px solid transparent;
  margin-bottom:-1px; transition:color .15s, border-color .15s;
}
.cat-tab:hover{ color:var(--oro-2); }
.cat-tab.active{ color:var(--tinta); border-bottom-color:var(--oro); }
.cat-panels{ min-height:320px; }
.cat-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:4px;
}
.cat-card{
  border:1px solid var(--linea); border-radius:3px; padding:20px 20px 18px;
  background:#fff; border-top:2px solid var(--linea); transition:border-top-color .15s;
}
.cat-card:hover{ border-top-color:var(--oro); }
.cat-card.cat-featured{
  border-top:2px solid var(--oro); background:var(--medianoche); grid-column:span 1;
}
.cat-badge{
  font-family:"IBM Plex Mono",monospace; font-size:9px; letter-spacing:1.5px;
  text-transform:uppercase; background:rgba(214,165,91,.18); color:var(--oro);
  padding:2px 8px; border-radius:2px; display:inline-block; margin-bottom:10px;
}
.cat-area{
  font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:1.5px;
  text-transform:uppercase; color:var(--oro-2); display:block; margin-bottom:8px;
}
.cat-featured .cat-area{ color:var(--oro); }
.cat-card h3{ font-size:17px; margin:0 0 8px; line-height:1.3; }
.cat-featured h3{ color:#FBF7F0; font-size:18px; }
.cat-card p{ font-size:13.5px; color:var(--tinta-tenue); margin:0; line-height:1.6; }
.cat-featured p{ color:#B9C6DA; }

/* ===== Nav activo ===== */
.nav-active { color:var(--tinta) !important; font-weight:500; }

/* ===== servicios.html ===== */
.svc-detail { display:grid; grid-template-columns:1fr 380px; gap:56px; margin-top:10px; align-items:start; }
.svc-main h3 { font-family:'Newsreader',serif; font-size:17px; font-weight:500; color:var(--tinta); margin-bottom:8px; }
.svc-main p { font-size:15px; color:var(--tinta-tenue); line-height:1.75; }
.svc-when { list-style:none; margin:0; padding:0; }
.svc-when li { font-size:14.5px; color:var(--tinta-tenue); line-height:1.65; padding:8px 0 8px 20px; border-bottom:1px solid var(--linea); position:relative; }
.svc-when li::before { content:"—"; color:var(--oro); position:absolute; left:0; }
.svc-when li:last-child { border-bottom:none; }
.svc-aside { display:flex; flex-direction:column; gap:20px; }
.svc-block { background:#fff; border:1px solid var(--linea); border-top:2px solid var(--oro); padding:18px 20px; }
.svc-block-title { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--oro-2); margin-bottom:10px; }
.svc-list { list-style:none; margin:0; padding:0; }
.svc-list li { font-size:13.5px; color:var(--tinta-tenue); padding:6px 0; border-bottom:1px solid var(--linea); line-height:1.5; }
.svc-list li:last-child { border-bottom:none; }
.svc-tags { display:flex; flex-wrap:wrap; gap:6px; }
.svc-tags span { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:1.5px; background:var(--marfil-2); color:var(--oro-2); padding:3px 8px; border-radius:2px; }
.svc-block p { font-size:13.5px; color:var(--tinta-tenue); line-height:1.6; margin:0; }

/* ===== soluciones.html ===== */
.sol-detail { display:grid; grid-template-columns:1fr 360px; gap:48px; margin-top:10px; align-items:start; }
.sol-tagline { font-family:'Newsreader',serif; font-size:20px; font-style:italic; font-weight:400; color:var(--tinta); margin-bottom:16px; line-height:1.4; }
.sol-aside { display:flex; flex-direction:column; gap:16px; }
.sol-block { background:#fff; border:1px solid var(--linea); border-top:2px solid var(--oro); padding:18px 20px; }
.sol-block-title { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--oro-2); margin-bottom:10px; display:block; }

/* ===== formacion.html ===== */
.formation-hero-note { font-size:13px; color:#5B6A7E; margin-top:24px; max-width:60ch; line-height:1.6; }
.philosophy-grid { display:grid; grid-template-columns:1fr 1fr; gap:48px; margin-top:10px; }
.philosophy-stat { background:var(--medianoche); color:var(--marfil); padding:20px 22px; border-left:3px solid var(--oro); }
.philosophy-stat-label { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--oro); display:block; margin-bottom:8px; }
.philosophy-stat p { font-size:14.5px; line-height:1.65; color:#C7D2E2; margin:0; }
.program-intro-note { background:var(--marfil-2); border:1px solid var(--linea); border-left:3px solid var(--oro); padding:16px 20px; margin-bottom:32px; }
.program-intro-note p { font-size:14px; color:var(--tinta-tenue); line-height:1.7; margin:0; }
.program-intro-note p+p { margin-top:8px; }
.program-note { background:var(--marfil-2); border:1px solid var(--linea); padding:20px 24px; margin-top:28px; max-width:660px; }
.program-note-label { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--oro-2); display:block; margin-bottom:8px; }
.program-note p { font-size:14px; color:var(--tinta-tenue); line-height:1.7; margin:0; }
.formation-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:32px; }
.formation-card { background:#fff; border:1px solid var(--linea); border-top:2px solid var(--oro); padding:22px 22px 20px; }
.formation-card-num { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--oro-2); display:block; margin-bottom:10px; }
.formation-card h3 { font-family:'Newsreader',serif; font-size:18px; font-weight:500; color:var(--tinta); margin:0 0 8px; }
.formation-card p { font-size:14px; color:var(--tinta-tenue); line-height:1.65; margin:0; }
.org-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:32px; }
.org-col { padding:0; }
.org-col .label { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--oro-2); display:block; margin-bottom:10px; }
.ecosystem-grid { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; }
.publication-list { background:var(--marfil-2); border:1px solid var(--linea); padding:18px 20px; }
.publication-list-title { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--oro-2); display:block; margin-bottom:10px; }
.publication-list ul { list-style:none; margin:0; padding:0; }
.publication-list li { font-size:13.5px; color:var(--tinta-tenue); padding:7px 0; border-bottom:1px solid var(--linea); line-height:1.5; }
.publication-list li:last-child { border-bottom:none; }
.formation-warning { border:1px solid var(--linea); border-left:3px solid var(--oro); padding:20px 24px; background:#fff; margin-top:40px; }
.formation-warning-label { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--oro-2); display:block; margin-bottom:10px; }
.formation-warning p { font-size:14px; color:var(--tinta-tenue); line-height:1.7; margin:0; }

/* ===== contratos.html — Catálogo completo ===== */
.cat-full-details { border:1px solid var(--linea); border-radius:3px; margin-bottom:12px; }
.cat-full-summary { display:flex; justify-content:space-between; align-items:center; padding:16px 20px; cursor:pointer; list-style:none; font-family:'Newsreader',serif; font-size:18px; font-weight:500; color:var(--tinta); }
.cat-full-summary::-webkit-details-marker { display:none; }
.cat-full-summary::marker { display:none; }
.cat-count { font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:1.5px; color:var(--tinta-tenue); background:var(--marfil-2); padding:3px 10px; border-radius:2px; }
details[open] .cat-full-summary { color:var(--oro-2); border-bottom:1px solid var(--linea); }
.cat-full-list { padding:20px; background:#fff; }
.cat-full-intro { font-size:14px; color:var(--tinta-tenue); line-height:1.65; margin-bottom:16px; max-width:72ch; }
.cat-full-grid { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.cat-full-item { display:flex; gap:10px; align-items:flex-start; padding:6px 8px; border-radius:2px; }
.cat-full-item:hover { background:var(--marfil-2); }
.cat-full-status { font-family:'IBM Plex Mono',monospace; font-size:9px; letter-spacing:1px; text-transform:uppercase; padding:2px 6px; border-radius:2px; white-space:nowrap; flex-none; margin-top:1px; }
.avail { background:rgba(214,165,91,0.15); color:var(--oro-2); }
.analysis { background:rgba(0,0,0,0.05); color:var(--tinta-tenue); }
.soon { background:rgba(0,0,0,0.04); color:#CCC; }
.cat-full-name { font-size:13.5px; color:var(--tinta); line-height:1.5; }

/* ===== Responsive ===== */
@media (max-width:760px){
  .hero h1{font-size:38px;}
  .triad{grid-template-columns:1fr; gap:30px;}
  .prop-grid{grid-template-columns:1fr; gap:30px;}
  .nombre-narrative  { grid-template-columns: 1fr; gap: 32px; }
  .nombre-aside      { position: static; }
  .marcos-grid{grid-template-columns:1fr;}
  .arq-grid{grid-template-columns:1fr;}
  .plat-grid{grid-template-columns:1fr;}
  .stats-row{grid-template-columns:1fr;}
  .momento-cols{grid-template-columns:1fr;}
  .cpv-teaser        { grid-template-columns: 1fr; gap: 32px; }
  .prob-grid         { grid-template-columns: 1fr; }
  .cpv-concepto      { grid-template-columns: 1fr; gap: 36px; }
  .niveles-grid      { grid-template-columns: 1fr; }
  .inmob-grid        { grid-template-columns: 1fr; }
  .cat-grid          { grid-template-columns: 1fr; }
  .cat-nav           { overflow-x: auto; flex-wrap: nowrap; }
  .cat-tab           { white-space: nowrap; }
  .svc-detail        { grid-template-columns: 1fr; gap: 32px; }
  .sol-detail        { grid-template-columns: 1fr; gap: 28px; }
  .philosophy-grid,
  .formation-grid,
  .ecosystem-grid,
  .org-grid          { grid-template-columns: 1fr; }
  .cat-full-grid     { grid-template-columns: 1fr; }
  .hero-nav nav{display:none;}
  section{padding:56px 0;}
  .app-card{padding:34px 26px;}
}

/* ===== diagnostico.html — Evaluador AML/CFT ===== */
.quiz-wrap { max-width:720px; margin:0 auto; }
.quiz-progress-bar { height:3px; background:var(--linea); border-radius:2px; margin-bottom:12px; }
.quiz-progress-fill { height:100%; background:linear-gradient(90deg,var(--oro),var(--oro-2)); border-radius:2px; transition:width .4s ease; }
.quiz-meta { display:flex; justify-content:space-between; margin-bottom:44px; }
.quiz-counter { font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--oro-2); }
.quiz-pct { font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--tinta-tenue); }
.quiz-question-text { font-family:'Newsreader',serif; font-size:26px; font-weight:500; color:var(--tinta); line-height:1.3; margin-bottom:32px; }
.quiz-options { display:flex; flex-direction:column; gap:10px; }
.quiz-opt { border:1px solid var(--linea); border-radius:3px; padding:16px 20px; cursor:pointer; display:flex; gap:14px; align-items:center; transition:border-color .15s, background .15s; background:#fff; }
.quiz-opt:hover { border-color:var(--oro-2); background:var(--marfil); }
.quiz-opt.selected { border-color:var(--oro); background:rgba(214,165,91,.06); }
.quiz-opt-marker { width:18px; height:18px; border-radius:50%; border:1.5px solid var(--linea); flex:none; transition:all .15s; }
.quiz-opt.selected .quiz-opt-marker { background:var(--oro); border-color:var(--oro); box-shadow:0 0 0 3px rgba(214,165,91,.2); }
.quiz-opt-text { font-size:15px; color:var(--tinta); line-height:1.5; }
.quiz-nav { display:flex; gap:12px; margin-top:36px; }
.quiz-btn-back { background:none; border:1px solid var(--linea); color:var(--tinta-tenue); }
.quiz-btn-back:hover { border-color:var(--tinta-tenue); color:var(--tinta); }
.quiz-btn-back:disabled,.quiz-btn-next:disabled { opacity:.38; cursor:not-allowed; filter:none; pointer-events:none; }
.risk-result { animation:rFadeIn .4s ease; }
@keyframes rFadeIn { from{opacity:0;transform:translateY(14px);} to{opacity:1;transform:none;} }
.risk-band { border-radius:4px; padding:36px 40px; margin-bottom:36px; }
.risk-band.risk-alto { background:var(--medianoche); border-left:4px solid #C0392B; }
.risk-band.risk-medio { background:var(--medianoche); border-left:4px solid var(--oro); }
.risk-band.risk-bajo { background:var(--medianoche); border-left:4px solid #27AE60; }
.risk-score { font-family:'Newsreader',serif; font-size:72px; font-weight:600; line-height:1; color:#FBF7F0; margin:0 0 6px; }
.risk-label { font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:3px; text-transform:uppercase; margin:0 0 10px; }
.risk-alto .risk-label { color:#E74C3C; }
.risk-medio .risk-label { color:var(--oro); }
.risk-bajo .risk-label { color:#2ECC71; }
.risk-desc { font-size:16px; color:#C7D2E2; line-height:1.7; max-width:58ch; font-weight:300; margin:0; }
.risk-recs { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.risk-rec { border:1px solid var(--linea); border-top:2px solid var(--oro); padding:20px 20px 18px; background:#fff; }
.risk-rec-label { font-family:'IBM Plex Mono',monospace; font-size:9.5px; letter-spacing:2px; text-transform:uppercase; color:var(--oro-2); display:block; margin-bottom:10px; }
.risk-rec h4 { font-family:'Newsreader',serif; font-size:17px; font-weight:500; color:var(--tinta); margin:0 0 8px; line-height:1.3; }
.risk-rec p { font-size:13.5px; color:var(--tinta-tenue); margin:0 0 14px; line-height:1.6; }
.risk-rec a { font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:1px; text-transform:uppercase; color:var(--oro-2); text-decoration:none; }
.risk-rec a:hover { color:var(--oro); }
.quiz-restart { font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:1px; text-transform:uppercase; color:var(--tinta-tenue); background:none; border:none; cursor:pointer; padding:0; text-decoration:underline; }
@media(max-width:760px){
  .quiz-question-text { font-size:21px; }
  .risk-score { font-size:52px; }
  .risk-recs { grid-template-columns:1fr; }
  .risk-band { padding:24px 22px; }
}

/* ── Scroll reveal ── */
.reveal { opacity: 0; transform: translateY(32px); transition: opacity 0.7s ease, transform 0.7s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-d1 { transition-delay: 0.1s; }
.reveal-d2 { transition-delay: 0.2s; }
.reveal-d3 { transition-delay: 0.3s; }
.reveal-d4 { transition-delay: 0.4s; }
