/* =====================================================================
   Kapital Nova: tema para las páginas internas (index.php?page=...)
   Se carga después de bootstrap.min.css y style.css en view/header.html
   ===================================================================== */
:root{
  --kn-bg:#030812; --kn-bg2:#06101f; --kn-panel:#0b1830; --kn-panel2:#0e1f3c;
  --kn-line:rgba(120,170,255,.16); --kn-line2:rgba(120,170,255,.32);
  --kn-text:#f3f7ff; --kn-muted:#a9b8d3; --kn-dim:#71839f;
  --kn-blue:#318aff; --kn-sky:#84baff; --kn-cyan:#79e6ff; --kn-green:#3ee0a1;
  --kn-grad:linear-gradient(100deg,#84baff,#318aff 55%,#79e6ff);
  --kn-sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --kn-display:"Sora","Inter",system-ui,Arial,sans-serif;
  --primary:#318aff; --light:#0e1f3c; --dark:#030812;
  --bs-primary:#318aff; --bs-light:#0e1f3c; --bs-dark:#030812; --bs-body-color:#f3f7ff; --bs-body-bg:#030812;
}
html{background:var(--kn-bg)}
body{background:radial-gradient(1000px 600px at 80% -5%,rgba(49,138,255,.18),transparent 60%),var(--kn-bg) !important;color:var(--kn-text) !important;font-family:var(--kn-sans) !important;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,.display-1,.display-2,.display-3,.display-4,.display-5,.display-6{font-family:var(--kn-display) !important;color:var(--kn-text) !important;letter-spacing:-.02em;font-weight:600}
p,li,label,small,td,th,dt,dd,span{color:inherit}
.text-dark,.text-body,.text-black,.text-secondary{color:var(--kn-text) !important}
.text-muted{color:var(--kn-muted) !important}
.text-primary{color:var(--kn-sky) !important}
a{color:var(--kn-sky)} a:hover{color:var(--kn-cyan)}
hr{border-color:var(--kn-line);opacity:1}

/* fondos claros -> paneles oscuros */
.bg-white,.bg-light,.bg-body,.bg-transparent.border{background:var(--kn-panel) !important;color:var(--kn-text) !important}
.bg-dark{background:var(--kn-bg2) !important}
.border,.border-top,.border-bottom,.border-start,.border-end,.border-light{border-color:var(--kn-line) !important}
.shadow,.shadow-sm,.shadow-lg{box-shadow:0 20px 50px -25px rgba(0,0,0,.8) !important}

/* spinner de carga */
#spinner{background:var(--kn-bg) !important}
#spinner .spinner-border{color:var(--kn-blue) !important}

/* ---------- cabecera Nova ---------- */
.kn-nav{position:fixed;inset:0 0 auto;z-index:1030;background:rgba(3,8,18,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--kn-line)}
.kn-nav .kn-wrap{max-width:1240px;margin:0 auto;padding:0 24px;height:72px;display:flex;align-items:center;gap:18px}
.kn-brand img{height:30px;width:auto;display:block}
.kn-links{display:flex;align-items:center;gap:24px;margin-left:auto;font-size:14.5px}
.kn-links>a,.kn-links .kn-dd>button{color:var(--kn-muted);text-decoration:none;background:none;border:0;font:inherit;cursor:pointer;padding:6px 0}
.kn-links>a:hover,.kn-links .kn-dd>button:hover,.kn-links>a.on{color:var(--kn-text)}
.kn-dd{position:relative}
.kn-dd>button.on{color:var(--kn-text);padding:6px 12px;border:1px solid var(--kn-line2);border-radius:999px}
.kn-menu{position:absolute;right:0;top:calc(100% + 12px);min-width:240px;padding:8px;border-radius:16px;background:#0a1628;border:1px solid var(--kn-line2);box-shadow:0 30px 60px -20px #000;display:none}
.kn-dd.open .kn-menu{display:block}
.kn-menu a{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:10px;color:var(--kn-text);text-decoration:none;font-size:14.5px}
.kn-menu a:hover,.kn-menu a.on{background:rgba(49,138,255,.18)}
.kn-cta{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;font-weight:600;font-size:14px;color:#fff !important;text-decoration:none;background:linear-gradient(100deg,#318aff,#4f9dff);box-shadow:0 10px 30px -10px rgba(49,138,255,.85)}
.kn-burger{display:none;margin-left:auto;width:42px;height:42px;border-radius:12px;border:1px solid var(--kn-line2);background:none}
.kn-burger span{display:block;width:18px;height:2px;background:#fff;margin:4px auto;border-radius:2px}
@media (max-width:1080px){
  .kn-links{display:none;position:absolute;top:72px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:8px 20px 20px;background:rgba(3,8,18,.98);border-bottom:1px solid var(--kn-line)}
  .kn-nav.open .kn-links{display:flex}
  .kn-links>a,.kn-links .kn-dd>button{padding:13px 0;border-bottom:1px solid var(--kn-line);text-align:left;width:100%}
  .kn-dd>button.on{border:0;border-bottom:1px solid var(--kn-line);border-radius:0;padding:13px 0}
  .kn-menu{position:static;display:block;border:0;background:none;box-shadow:none;padding:0 0 6px 10px}
  .kn-cta{margin-top:12px;justify-content:center}
  .kn-burger{display:block}
}

/* ---------- encabezado de cada página ---------- */
.page-header{background:radial-gradient(700px 300px at 85% 30%,rgba(49,138,255,.32),transparent 70%),radial-gradient(500px 260px at 10% 90%,rgba(121,230,255,.10),transparent 70%),linear-gradient(180deg,#071228,#030812) !important;padding-top:8.5rem !important;padding-bottom:3.5rem !important;border-bottom:1px solid var(--kn-line);margin-bottom:3rem !important}
.page-header h1{max-width:900px !important;font-size:clamp(32px,4.6vw,58px) !important;line-height:1.08 !important;background:linear-gradient(100deg,#f3f7ff 30%,#84baff 70%,#79e6ff);-webkit-background-clip:text;background-clip:text;color:transparent !important}
.page-header .breadcrumb-item,.page-header .breadcrumb-item a{color:var(--kn-muted) !important}

/* ---------- tarjetas, paneles ---------- */
.card,.service-item,.product-item,.team-item,.testimonial-item,.feature-item,.modal-content,.accordion-item,.list-group-item,.dropdown-menu,.nav-tabs .nav-link.active,.tab-content{background:var(--kn-panel) !important;color:var(--kn-text) !important;border-color:var(--kn-line) !important}
.card{border-radius:18px !important;overflow:hidden}
.card-header,.card-footer{background:var(--kn-panel2) !important;border-color:var(--kn-line) !important;color:var(--kn-text) !important}
.modal-header,.modal-footer{border-color:var(--kn-line) !important}
.btn-close,.close{filter:invert(1);opacity:.8}
.dropdown-item{color:var(--kn-text) !important}.dropdown-item:hover{background:rgba(49,138,255,.18) !important}

/* pestañas */
.nav-tabs,.nav-pills{border-color:var(--kn-line) !important;gap:6px}
.nav-tabs .nav-link,.nav-pills .nav-link{color:var(--kn-muted) !important;border-radius:999px !important;border:1px solid var(--kn-line) !important;background:transparent !important;padding:8px 16px}
.nav-tabs .nav-link.active,.nav-pills .nav-link.active,.nav-tabs .nav-link:hover{color:#fff !important;background:linear-gradient(100deg,rgba(49,138,255,.45),rgba(121,230,255,.18)) !important;border-color:rgba(132,186,255,.6) !important}

/* ---------- formularios ---------- */
.form-control,.form-select,select,textarea,input[type=text],input[type=email],input[type=number],input[type=date],input[type=time],input[type=tel],input[type=password],input[type=search]{background-color:rgba(3,8,18,.7) !important;color:var(--kn-text) !important;border:1px solid var(--kn-line2) !important;border-radius:12px !important}
.form-control::placeholder{color:var(--kn-dim) !important}
.form-control:focus,.form-select:focus{border-color:var(--kn-blue) !important;box-shadow:0 0 0 3px rgba(49,138,255,.22) !important}
.form-control:disabled,.form-control[readonly]{background:rgba(255,255,255,.04) !important;color:var(--kn-muted) !important}
.form-select,select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a9b8d3' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;background-repeat:no-repeat !important;background-position:right 12px center !important;background-size:16px !important}
option{background:#0a1628;color:#f3f7ff}
.input-group-text{background:var(--kn-panel2) !important;color:var(--kn-muted) !important;border-color:var(--kn-line2) !important}
.form-check-input{background-color:rgba(3,8,18,.7);border-color:var(--kn-line2)}
.form-check-input:checked{background-color:var(--kn-blue);border-color:var(--kn-blue)}
.form-floating>label{color:var(--kn-dim) !important}
.select2-container--default .select2-selection--single,.select2-container--default .select2-selection--multiple{background:rgba(3,8,18,.7) !important;border:1px solid var(--kn-line2) !important;border-radius:12px !important;min-height:38px}
.select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--kn-text) !important;line-height:38px !important}
.select2-dropdown{background:#0a1628 !important;border-color:var(--kn-line2) !important;color:var(--kn-text)}
.select2-results__option--highlighted{background:var(--kn-blue) !important}

/* ---------- botones ---------- */
.btn{border-radius:999px !important;font-weight:600}
.btn-primary,.btn-success,.btn-info{background:linear-gradient(100deg,#318aff,#4f9dff) !important;border:0 !important;color:#fff !important;box-shadow:0 10px 26px -12px rgba(49,138,255,.9)}
.btn-primary:hover,.btn-success:hover,.btn-info:hover{filter:brightness(1.1)}
.btn-secondary,.btn-light,.btn-outline-primary,.btn-outline-secondary,.btn-outline-light,.btn-outline-dark,.btn-default{background:rgba(255,255,255,.05) !important;border:1px solid var(--kn-line2) !important;color:var(--kn-text) !important}
.btn-link{color:var(--kn-sky) !important}
.btn-danger{border-radius:999px !important}

/* ---------- tablas ---------- */
.table{color:var(--kn-text) !important;--bs-table-bg:transparent;--bs-table-striped-bg:rgba(255,255,255,.03);--bs-table-hover-bg:rgba(49,138,255,.10);--bs-table-striped-color:var(--kn-text);--bs-table-hover-color:var(--kn-text);border-color:var(--kn-line) !important}
.table>:not(caption)>*>*{background-color:transparent;color:var(--kn-text);border-color:var(--kn-line) !important}
.table thead th,.table-light th,.thead-light th,.table-dark th{background:var(--kn-panel2) !important;color:var(--kn-sky) !important;border-color:var(--kn-line) !important}
.table-responsive{border-radius:14px}
.dataTables_wrapper,.dataTables_wrapper label,.dataTables_info,.dataTables_paginate{color:var(--kn-muted) !important}
.page-link{background:var(--kn-panel) !important;border-color:var(--kn-line) !important;color:var(--kn-sky) !important}
.page-item.active .page-link{background:var(--kn-blue) !important;color:#fff !important}

/* alertas */
.alert{border-radius:14px !important;border:1px solid var(--kn-line2) !important;background:rgba(49,138,255,.10) !important;color:var(--kn-text) !important}
.alert-danger{background:rgba(255,107,107,.12) !important;border-color:rgba(255,107,107,.45) !important}
.alert-success{background:rgba(62,224,161,.12) !important;border-color:rgba(62,224,161,.45) !important}
.alert-warning{background:rgba(255,195,92,.12) !important;border-color:rgba(255,195,92,.45) !important}

/* calendarios (fullcalendar / datepicker) */
.fc,.fc table,.fc th,.fc td{color:var(--kn-text);border-color:var(--kn-line) !important}
.fc .fc-daygrid-day.fc-day-today{background:rgba(49,138,255,.15) !important}
.ui-datepicker{background:#0a1628 !important;color:var(--kn-text);border-color:var(--kn-line2) !important}

/* ---------- pie de página Nova ---------- */
.kn-foot{border-top:1px solid var(--kn-line);margin-top:70px;padding:52px 0 30px;color:var(--kn-muted);font-size:14px;background:transparent}
.kn-foot .kn-wrap{max-width:1240px;margin:0 auto;padding:0 24px}
.kn-foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:30px}
.kn-foot h4{font-size:14px !important;margin-bottom:12px}
.kn-foot ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.kn-foot a{color:var(--kn-muted);text-decoration:none}.kn-foot a:hover{color:var(--kn-text)}
.kn-social{display:flex;gap:10px;margin-top:16px}
.kn-social a{width:40px;height:40px;border-radius:12px;border:1px solid var(--kn-line2);display:grid;place-items:center;color:var(--kn-muted)}
.kn-news{position:relative;margin-top:8px}
.kn-news input{width:100%;padding:12px 120px 12px 14px !important}
.kn-news button{position:absolute;right:5px;top:5px;padding:8px 16px;border:0;border-radius:999px;background:linear-gradient(100deg,#318aff,#4f9dff);color:#fff;font-weight:600}
.kn-copy{margin-top:34px;padding-top:20px;border-top:1px solid var(--kn-line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;color:var(--kn-dim);font-size:13px}
@media (max-width:900px){.kn-foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.kn-foot-grid{grid-template-columns:1fr}}

/* botones flotantes */
.whatsapp-float{bottom:22px !important;right:22px !important;width:58px !important;height:58px !important;line-height:58px !important;background:#13a35c !important;box-shadow:0 14px 34px -10px rgba(19,163,92,.9)}
.back-to-top{right:28px !important;bottom:94px !important;width:46px !important;height:46px !important;border-radius:50% !important;background:rgba(10,22,40,.9) !important;border:1px solid var(--kn-line2) !important;color:#fff !important;display:grid !important;place-items:center;box-shadow:0 12px 30px -12px #000}
.translate-button{background:rgba(10,22,40,.9) !important;border:1px solid var(--kn-line2);border-radius:999px !important;padding:8px 14px !important;font-size:13px}
.copyright{display:none !important}

/* ---------- Empresas (páginas públicas) ---------- */
.kn-emp-intro{max-width:1240px;margin:0 auto 40px;padding:0 24px;display:grid;grid-template-columns:1.2fr 1fr;gap:30px;align-items:center}
.kn-emp-intro p.lead{color:var(--kn-muted);font-size:18px;line-height:1.6}
.kn-feats{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.kn-feat{padding:18px;border-radius:16px;border:1px solid var(--kn-line);background:var(--kn-panel)}
.kn-feat i{font-style:normal;font-size:24px}
.kn-feat b{display:block;font-family:var(--kn-display);font-size:15.5px;margin:6px 0 4px;color:var(--kn-text)}
.kn-feat span{font-size:13.5px;color:var(--kn-muted);line-height:1.45}
.kn-emp-tools{max-width:1240px;margin:0 auto 24px;padding:0 24px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.kn-emp-tools form{display:flex;gap:10px;flex:1;min-width:280px;max-width:620px}
.kn-emp-tools input{flex:1}
.kn-emp-grid{max-width:1240px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}
.kn-emp{display:flex;flex-direction:column;border-radius:18px;border:1px solid var(--kn-line);background:var(--kn-panel);overflow:hidden;text-decoration:none;color:var(--kn-text);transition:transform .25s,border-color .25s}
.kn-emp:hover{transform:translateY(-4px);border-color:rgba(121,230,255,.6);color:var(--kn-text)}
.kn-emp-logo{position:relative;height:130px;background:#fff;display:grid;place-items:center;padding:14px;overflow:hidden}
.kn-emp-logo img{position:absolute;inset:14px;width:calc(100% - 28px) !important;height:calc(100% - 28px) !important;max-width:none !important;object-fit:contain !important}
.kn-emp-logo .ini{position:relative}
.kn-emp-logo .ini{width:72px;height:72px;border-radius:20px;display:grid;place-items:center;font-family:var(--kn-display);font-size:26px;font-weight:700;color:#fff;background:linear-gradient(135deg,#318aff,#79e6ff)}
.kn-emp-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px}
.kn-emp-body b{font-family:var(--kn-display);font-size:15.5px;line-height:1.3}
.kn-emp-tag{align-self:flex-start;font-size:12px;padding:4px 10px;border-radius:999px;border:1px solid rgba(62,224,161,.45);background:rgba(62,224,161,.10);color:#c9f5e2}
.kn-emp-cta{margin:46px auto 0;max-width:1240px;padding:0 24px}
.kn-emp-cta>div{display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:28px 32px;border-radius:24px;border:1px solid var(--kn-line2);background:radial-gradient(500px 240px at 15% 50%,rgba(49,138,255,.28),transparent 70%),linear-gradient(120deg,#0e1e3a,#14103a)}
.kn-emp-cta h3{font-size:clamp(20px,2.4vw,28px) !important;margin:0 0 6px}
.kn-emp-cta p{color:var(--kn-muted);margin:0}
.kn-empty{grid-column:1/-1;text-align:center;padding:40px;color:var(--kn-muted)}
@media (max-width:900px){.kn-emp-intro{grid-template-columns:1fr}}
@media (max-width:520px){.kn-feats{grid-template-columns:1fr}.kn-emp-tools form{min-width:0;max-width:none;width:100%}}

/* el cargador nunca debe quedarse más de 2,5 s aunque tarde algún script externo */
#spinner.show{animation:knSpinHide .3s 2.5s forwards}
@keyframes knSpinHide{to{opacity:0;visibility:hidden}}
