/* CCT Consulting · sitio institucional — estilos compartidos */
.cct{--navy:#0F1B33;--navy2:#1C2B4A;--blue:#2D63B6;--accent:var(--brand-accent,#2D63B6);--pale:#9DB8E3;--mist:#DCE3EC;--ink:#1A1F27;--muted:#4A5563;--soft:#6A707B;--line:#E3E7EC;--alt:#F4F6F8;--white:#FFFFFF;--foot:#0A1325;--foottx:#B7C3D2;
  --serif:'Source Serif 4',Georgia,'Times New Roman',serif;--sans:'Libre Franklin','Helvetica Neue',Arial,sans-serif;
  font-family:var(--sans);color:var(--ink);background:var(--white);width:100%;font-size:16px;line-height:1.55}
.cct *{box-sizing:border-box}
.cct img{height:auto}
.cct h1,.cct h2,.cct h3,.cct p,.cct ul,.cct ol,.cct figure{margin:0}
.cct a{color:var(--navy)}
.cct a:hover{color:var(--blue)}
.cct a:focus-visible,.cct button:focus-visible,.cct input:focus-visible,.cct select:focus-visible,.cct textarea:focus-visible,.cct label:focus-within{outline:2px solid var(--blue);outline-offset:2px}
.cct .wrap{max-width:1240px;margin:0 auto;padding-left:24px;padding-right:24px}
.cct .sec{padding-top:96px;padding-bottom:96px}
.cct .alt{background:var(--alt)}
.cct .dark{background:var(--navy);color:var(--white)}
.cct .dark a{color:var(--white)}
.cct .eyebrow{display:block;font-size:13px;letter-spacing:0.14em;text-transform:uppercase;color:var(--blue);font-weight:600}
.cct .dark .eyebrow,.cct .feature .eyebrow{color:var(--pale)}
.cct .h1{font-family:var(--serif);font-weight:400;font-size:clamp(40px,4.4vw,64px);line-height:1.05;text-wrap:balance}
.cct .h2{font-family:var(--serif);font-weight:400;font-size:clamp(32px,3vw,44px);line-height:1.1;color:var(--navy);text-wrap:balance}
.cct .dark .h2{color:var(--white)}
.cct .lead{font-size:18px;line-height:1.6;color:var(--muted);max-width:60ch}
.cct .dark .lead{color:var(--mist)}
.cct .head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:40px}
.cct .head > div{display:flex;flex-direction:column;gap:10px;max-width:720px}
.cct .more{font-weight:600;font-size:15px;text-decoration:none}

/* botones */
.cct .btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;border-radius:4px;background:var(--accent);color:var(--white);font-family:var(--sans);font-weight:600;font-size:15px;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background-color 180ms ease,transform 140ms ease}
.cct .btn:hover{background:var(--navy2);color:var(--white)}
.cct .btn:active{transform:scale(0.98)}
.cct .btn.light{background:var(--white);color:var(--navy)}
.cct .btn.light:hover{background:var(--mist);color:var(--navy)}
.cct .btn.ghost{background:transparent;border-color:var(--white);color:var(--white)}
.cct .btn.ghost:hover{background:rgba(255,255,255,0.1)}
.cct .btns{display:flex;flex-wrap:wrap;gap:12px}

/* cabecera */
.cct .topbar{background:var(--navy);color:var(--mist);font-size:13px}
.cct .topbar .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:8px;padding-bottom:8px}
.cct .lang{display:flex;gap:16px}
.cct .lang a{color:var(--mist);text-decoration:none}
.cct .lang a.on{color:var(--white);font-weight:600}
.cct .hd{background:var(--white);border-bottom:1px solid var(--line);position:relative}
.cct .hd .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:16px;padding-bottom:16px}
.cct .brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy)}
.cct .brand img{width:42px;height:45px;object-fit:contain}
.cct .brand span{font-weight:700;font-size:18px;letter-spacing:0.02em}
.cct .nav{display:flex;flex-wrap:wrap;gap:28px;font-size:15px;font-weight:500}
.cct .nav a{text-decoration:none;color:var(--navy);padding:6px 0;border-bottom:2px solid transparent}
.cct .nav a:hover{color:var(--blue)}
.cct [data-active="nosotros"] a[data-k="nosotros"],.cct [data-active="servicios"] a[data-k="servicios"],.cct [data-active="equipo"] a[data-k="equipo"],.cct [data-active="publicaciones"] a[data-k="publicaciones"],.cct [data-active="contacto"] a[data-k="contacto"]{border-bottom-color:var(--accent);color:var(--blue)}
.cct .menu-cb{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.cct .menu-btn{display:none;width:44px;height:44px;border:1px solid #D5DBE3;border-radius:4px;align-items:center;justify-content:center;cursor:pointer;color:var(--navy)}
.cct .mnav{display:none;flex-direction:column;border-top:1px solid var(--line);background:var(--white)}
.cct .mnav a{display:block;padding:16px 24px;border-bottom:1px solid var(--line);text-decoration:none;font-size:16px;font-weight:500}
.cct .mnav .btn{margin:16px 24px;display:flex}
.cct .menu-cb:checked ~ .mnav{display:flex}

/* hero de inicio */
.cct .hero .wrap{display:flex;flex-wrap:wrap;gap:48px;align-items:stretch;min-height:620px}
.cct .hero-tx{flex:1 1 520px;min-width:0;padding:96px 0 80px;display:flex;flex-direction:column;justify-content:center;gap:24px}
.cct .hero-img{flex:1 1 420px;min-width:0;min-height:420px;width:100%;object-fit:cover;display:block}

/* hero de páginas internas */
.cct .phero{background:var(--navy);color:var(--white)}
.cct .phero .wrap{padding-top:72px;padding-bottom:72px;display:flex;flex-direction:column;gap:20px}
.cct .crumbs{font-size:14px;color:var(--pale)}
.cct .crumbs a{color:var(--pale);text-decoration:none}
.cct .crumbs a:hover{color:var(--white)}
.cct .phero .lead{color:var(--mist)}

/* cifras */
.cct .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;padding-top:48px;padding-bottom:48px}
.cct .stat{display:flex;flex-direction:column;gap:6px;border-left:3px solid var(--accent);padding-left:20px}
.cct .stat b{font-family:var(--serif);font-weight:400;font-size:44px;color:var(--navy);line-height:1.1}
.cct .stat span{font-size:15px;color:var(--muted)}

/* servicio destacado y tarjetas */
.cct .feature{display:flex;flex-wrap:wrap;gap:24px 48px;background:var(--navy);color:var(--white);padding:40px;text-decoration:none;margin-bottom:24px}
.cct a.feature:hover{color:var(--white);background:#13244A}
.cct .feature .tx{flex:1 1 320px;min-width:0;display:flex;flex-direction:column;gap:12px}
.cct .feature .tt{font-family:var(--serif);font-size:36px;line-height:1.1}
.cct .feature p{color:var(--mist);max-width:46ch}
.cct .feature ul{flex:1 1 280px;min-width:0;padding-left:20px;display:flex;flex-direction:column;gap:10px;color:var(--mist);line-height:1.45}
.cct .feature .go{margin-top:8px;font-weight:600}
.cct .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.cct .card{background:var(--white);padding:32px;display:flex;flex-direction:column;gap:12px;text-decoration:none;color:var(--ink);min-height:200px}
.cct a.card:hover{background:#FAFBFC;color:var(--ink)}
.cct .card .tt{font-size:22px;font-weight:600;color:var(--navy);line-height:1.25}
.cct .card p{font-size:15px;color:var(--muted)}
.cct .card .go{margin-top:auto;font-weight:600;color:var(--blue)}

/* socios */
.cct .partners{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:32px}
.cct .partner{display:flex;flex-direction:column;gap:14px;border-top:3px solid var(--accent);padding-top:28px}
.cct .partner img{width:100%;max-width:100%;aspect-ratio:4/5;object-fit:cover;object-position:top;display:block;background:var(--navy2)}
.cct .partner .role{font-size:13px;letter-spacing:0.14em;text-transform:uppercase;color:var(--blue);font-weight:600}
.cct .partner h3{font-size:26px;font-weight:700;color:var(--navy)}
.cct .partner ul{padding-left:18px;display:flex;flex-direction:column;gap:8px;font-size:15px;line-height:1.55;color:var(--muted)}
.cct .partner .mat{font-size:14px;color:var(--soft)}
.cct .partner .links{display:flex;flex-wrap:wrap;gap:20px;font-size:15px;font-weight:600}
.cct .partner .links a{text-decoration:none}

/* bloques de texto */
.cct .split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:start}
.cct .split img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.cct .prose{max-width:72ch;display:flex;flex-direction:column;gap:18px;font-size:17px;line-height:1.65;color:var(--ink)}
.cct .prose h2{font-family:var(--serif);font-weight:400;font-size:28px;line-height:1.2;color:var(--navy);margin-top:24px}
.cct .prose h3{font-size:18px;font-weight:600;color:var(--navy);margin-top:8px}
.cct .prose ul,.cct .prose ol{padding-left:22px;display:flex;flex-direction:column;gap:8px}
.cct .note{font-size:14px;color:var(--soft)}
.cct .steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}
.cct .steps li{display:flex;flex-direction:column;gap:8px;border-top:3px solid var(--accent);padding-top:20px}
.cct .steps b{font-size:18px;color:var(--navy)}
.cct .steps span{font-size:15px;color:var(--muted)}
.cct .list2{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.cct .list2 li{background:var(--white);padding:24px 28px;display:flex;flex-direction:column;gap:6px}
.cct .list2 b{font-size:18px;color:var(--navy)}
.cct .list2 span{font-size:15px;color:var(--muted)}
.cct .table{width:100%;border-collapse:collapse;font-size:15px}
.cct .table th{text-align:left;font-weight:600;color:var(--navy);padding:14px 16px;border-bottom:2px solid var(--navy)}
.cct .table td{padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:top}
.cct .tbl-wrap{overflow-x:auto}
.cct .lead-by{display:flex;flex-wrap:wrap;gap:24px}
.cct .lead-by a{display:flex;align-items:center;gap:16px;text-decoration:none;flex:1 1 320px;background:var(--white);padding:20px;border:1px solid var(--line)}
.cct .lead-by img{width:72px;height:72px;border-radius:50%;object-fit:cover;object-position:top}
.cct .lead-by b{display:block;font-size:18px;color:var(--navy)}
.cct .lead-by span{font-size:14px;color:var(--muted)}

/* publicaciones */
.cct .pub-cb{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.cct .chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px}
.cct .chips label{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border:1px solid #D5DBE3;border-radius:999px;font-size:15px;font-weight:500;cursor:pointer;background:var(--white);transition:background-color 180ms ease,color 180ms ease}
.cct #pub-t1:checked ~ .chips label[for="pub-t1"],.cct #pub-t2:checked ~ .chips label[for="pub-t2"],.cct #pub-t3:checked ~ .chips label[for="pub-t3"],.cct #pub-t4:checked ~ .chips label[for="pub-t4"],.cct #pub-t5:checked ~ .chips label[for="pub-t5"]{background:var(--navy);color:var(--white);border-color:var(--navy)}
.cct #pub-t2:checked ~ .pubs .pub:not(.k-pla),.cct #pub-t3:checked ~ .pubs .pub:not(.k-comp),.cct #pub-t4:checked ~ .pubs .pub:not(.k-trib),.cct #pub-t5:checked ~ .pubs .pub:not(.k-penal){display:none}
.cct .pubs{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:24px}
.cct .pub{display:flex;flex-direction:column;background:var(--white);text-decoration:none;color:var(--ink);border:1px solid var(--line)}
.cct a.pub:hover{border-color:var(--blue);color:var(--ink)}
.cct .pub img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.cct .pub .bd{padding:24px;display:flex;flex-direction:column;gap:10px}
.cct .pub .meta{font-size:13px;color:var(--blue);font-weight:600}
.cct .pub .tt{font-family:var(--serif);font-size:24px;line-height:1.2;color:var(--navy)}
.cct .pub p{font-size:15px;color:var(--muted)}

/* contacto */
.cct .contact .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:start}
.cct .contact-tx{display:flex;flex-direction:column;gap:18px}
.cct .contact-tx .mail{font-family:var(--serif);font-size:28px;color:var(--white);word-break:break-all}
.cct .contact-tx dl{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:8px 0 0;font-size:15px;color:var(--mist)}
.cct .contact-tx dt{color:var(--pale)}
.cct .contact-tx dd{margin:0}
.cct .form{background:var(--white);color:var(--ink);padding:32px;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cct .field{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600;color:var(--navy)}
.cct .field.full{grid-column:1 / -1}
.cct .field input,.cct .field select,.cct .field textarea{font-family:var(--sans);font-size:16px;font-weight:400;color:var(--ink);border:1px solid #C5CDD7;border-radius:4px;padding:0 12px;min-height:48px;background:var(--white);width:100%}
.cct .field textarea{padding:12px;min-height:132px;resize:vertical}
.cct .check{grid-column:1 / -1;display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--muted);font-weight:400}
.cct .check input{width:20px;height:20px;margin-top:2px;flex:0 0 auto}
.cct .form .send{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:16px;justify-content:space-between}
.cct .form .send span{font-size:14px;color:var(--soft)}

/* pie */
.cct .ft{background:var(--foot);color:var(--foottx);font-size:14px}
.cct .ft-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:32px;padding-top:64px;padding-bottom:40px}
.cct .ft-col{display:flex;flex-direction:column;gap:10px}
.cct .ft-col b{color:var(--white);font-weight:600}
.cct .ft-col b.big{font-size:17px;font-weight:700}
.cct .ft a{color:var(--foottx);text-decoration:none}
.cct .ft a:hover{color:var(--white)}
.cct .ft-legal{border-top:1px solid rgba(255,255,255,0.12);padding-top:20px;padding-bottom:32px;display:flex;flex-direction:column;gap:8px;line-height:1.55}
.cct .ft-legal p{max-width:110ch}

@media (max-width: 760px){
  .cct .wrap{padding-left:16px;padding-right:16px}
  .cct .sec{padding-top:64px;padding-bottom:64px}
  .cct .nav,.cct .hd-cta{display:none}
  .cct .menu-btn{display:flex}
  .cct .hero .wrap{min-height:0}
  .cct .hero-tx{padding:56px 0 48px}
  .cct .hero-img{min-height:260px}
  .cct .feature{padding:28px 20px}
  .cct .feature .tt{font-size:30px}
  .cct .split,.cct .contact .wrap{grid-template-columns:1fr;gap:32px}
  .cct .form{grid-template-columns:1fr;padding:20px}
  .cct .pubs{grid-template-columns:1fr}
  .cct .phero .wrap{padding-top:48px;padding-bottom:48px}
}
@media (prefers-reduced-motion: reduce){.cct *{transition:none !important}}
