:root {
  --kad-gold:    #d4af37;
  --kad-dark:    #030d1e;
  --kad-surface: rgba(4,22,48,0.88);
  --kad-border:  rgba(255,255,255,0.08);
  --kad-radius:  16px;
  --kad-accent:  #004080;
}

.kad-wrap {
  position: relative;
  margin: 2.5rem auto;
  max-width: 900px;
}
.kad-wrap::before {
  content: 'Publicidad';
  position: absolute; top: -18px; right: 0;
  font-size: 0.6rem; color: rgba(255,255,255,0.2);
  text-transform: uppercase; letter-spacing: 1px;
}

.kad {
  background: var(--kad-surface);
  border: 1px solid var(--kad-border);
  border-radius: var(--kad-radius);
  backdrop-filter: blur(16px);
  overflow: hidden;
  position: relative;
  animation: kadFadeIn 0.5s ease both;
}
@keyframes kadFadeIn {
  from { opacity:0; transform:translateY(12px); }
  to   { opacity:1; transform:translateY(0); }
}

.kad-badge {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 0.65rem; font-weight: 800;
  letter-spacing: 1px; text-transform: uppercase;
  padding: 4px 12px; border-radius: 50px;
}
.kad-badge--vacancy     { background: rgba(0,80,180,0.2); color: #60a5fa; border: 1px solid rgba(0,80,180,0.3); }
.kad-badge--celebration { background: rgba(255,105,180,0.15); color: #f472b6; border: 1px solid rgba(255,105,180,0.3); }
.kad-badge--event       { background: rgba(34,197,94,0.15); color: #4ade80; border: 1px solid rgba(34,197,94,0.3); }
.kad-badge--nuevo       { background: rgba(212,175,55,0.12); color: #d4af37; border: 1px solid rgba(212,175,55,0.3); }
.kad-badge--importante  { background: rgba(249,115,22,0.12); color: #fb923c; border: 1px solid rgba(249,115,22,0.3); }
.kad-badge--urgente     { background: rgba(239,68,68,0.12); color: #f87171; border: 1px solid rgba(239,68,68,0.3); }
.kad-badge--promo       { background: rgba(212,175,55,0.15); color: #030d1e; }

.kad-title { font-weight: 800; color: #fff; }
.kad-subtitle { color: rgba(255,255,255,0.55); }
.kad-meta { font-size: 0.72rem; color: rgba(255,255,255,0.35); }

.kad-cta {
  display: inline-flex; align-items: center; gap: 6px;
  background: linear-gradient(135deg, #d4af37, #b8952f);
  color: #030d1e; font-weight: 800; font-size: 0.85rem;
  padding: 0.7rem 1.5rem; border-radius: 10px;
  text-decoration: none; border: none; cursor: pointer;
  transition: transform 0.18s, box-shadow 0.18s;
  margin-top: 1rem;
}
.kad-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(212,175,55,0.3);
  color: #030d1e;
}

.kad-banner { padding: 1.5rem; }
.kad-banner img { max-width: 100%; border-radius: 10px; }
.kad-banner-raw { color: rgba(255,255,255,0.85); }

.kad-vacancy { padding: 2rem; }
.kad-vacancy-header { display:flex; gap:1rem; align-items:flex-start; margin: 0.75rem 0; }
.kad-vacancy-header img { width:52px; height:52px; object-fit:cover; border-radius:10px; border:1px solid var(--kad-border); flex-shrink:0; }
.kad-vacancy .kad-title { font-size:1.3rem; margin:0; }
.kad-vacancy .kad-subtitle { font-size:0.85rem; margin:0.2rem 0; }
.kad-vacancy-pills { display:flex; flex-wrap:wrap; gap:8px; margin:1rem 0; }
.kad-vacancy-pills span { background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.08); color:rgba(255,255,255,0.55); font-size:0.75rem; padding:4px 12px; border-radius:50px; }
.kad-vacancy-reqs { list-style:none; padding:0; margin:0.75rem 0; display:flex; flex-direction:column; gap:4px; }
.kad-vacancy-reqs li { font-size:0.8rem; color:rgba(255,255,255,0.55); }
.kad-vacancy-reqs li::before { content:'✓'; color:#d4af37; margin-right:6px; font-weight:800; }
.kad-label { position:absolute; bottom:1rem; right:1rem; font-size:0.58rem; color:rgba(255,255,255,0.15); text-transform:uppercase; letter-spacing:0.8px; }

.kad-celebration {
  padding: 2.5rem; text-align:center;
  background: linear-gradient(135deg, rgba(0,64,128,0.3), #030d1e);
  min-height: 260px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:0.75rem;
}
@supports (background: color-mix(in srgb, red 50%, blue)) {
  .kad-celebration { background: linear-gradient(135deg, color-mix(in srgb, var(--kad-accent) 30%, #030d1e), #030d1e); }
}
.kad-celebration img { width:80px; height:80px; object-fit:cover; border-radius:50%; border:3px solid #d4af37; margin-bottom:0.5rem; }
.kad-celebration .kad-title { font-size:1.8rem; margin:0; }
.kad-celebration .kad-subtitle { font-size:0.9rem; }
.kad-celebration .kad-firm { color:rgba(255,255,255,0.3); font-size:0.75rem; font-style:italic; margin-top:0.5rem; }
.kad-confetti { position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.kad-confetti span {
  position:absolute; width:6px; height:6px; border-radius:50%;
  animation: confettiFall linear infinite;
}
@keyframes confettiFall {
  0%   { transform: translateY(-20px) rotate(0deg); opacity:1; }
  100% { transform: translateY(120%) rotate(720deg); opacity:0; }
}

.kad-event { min-height:280px; display:flex; position:relative; background-size:cover; background-position:center; }
.kad-event-overlay { position:absolute; inset:0; background:linear-gradient(to right, rgba(3,13,30,0.95) 50%, rgba(3,13,30,0.6)); }
.kad-event-date { position:relative; z-index:1; background:rgba(212,175,55,0.12); border:1px solid rgba(212,175,55,0.3); border-radius:12px; padding:0.75rem 1rem; text-align:center; color:#d4af37; font-weight:900; font-size:2rem; line-height:1; min-width:70px; height:fit-content; margin:1.5rem; }
.kad-event-date span { display:block; font-size:0.7rem; font-weight:700; letter-spacing:2px; margin-top:4px; }
.kad-event-body { position:relative; z-index:1; padding:1.5rem 1.5rem 1.5rem 0; display:flex; flex-direction:column; justify-content:center; gap:0.6rem; flex:1; }
.kad-event .kad-title { font-size:1.4rem; margin:0; }
.kad-event .kad-subtitle { font-size:0.85rem; margin:0; }
.kad-event-pills { display:flex; flex-wrap:wrap; gap:6px; }
.kad-event-pills span { font-size:0.72rem; color:rgba(255,255,255,0.45); background:rgba(255,255,255,0.05); padding:3px 10px; border-radius:50px; border:1px solid rgba(255,255,255,0.07); }
.kad-countdown { font-size:0.75rem; color:#4ade80; font-weight:600; }

.kad-announcement { display:flex; align-items:stretch; padding:1.75rem; gap:1.5rem; }
.kad-ann-accent { width:3px; background:linear-gradient(to bottom, #d4af37, rgba(212,175,55,0.1)); border-radius:3px; flex-shrink:0; }
.kad-ann-body { flex:1; display:flex; flex-direction:column; gap:0.5rem; }
.kad-announcement .kad-title { font-size:1.2rem; margin:0; line-height:1.3; }
.kad-announcement .kad-subtitle { font-size:0.85rem; line-height:1.6; }
.kad-ann-footer { display:flex; align-items:center; justify-content:space-between; margin-top:0.5rem; flex-wrap:wrap; gap:0.5rem; }
.kad-cta-text { color:#d4af37; font-size:0.8rem; font-weight:700; text-decoration:none; }
.kad-cta-text:hover { text-decoration:underline; }
.kad-announcement .kad-ann-img { width:140px; height:auto; object-fit:cover; border-radius:10px; flex-shrink:0; align-self:center; }

.kad-promo { display:flex; overflow:hidden; position:relative; }
.kad-promo-img { width:240px; object-fit:cover; flex-shrink:0; }
.kad-promo-body {
  flex:1; padding:2rem; display:flex; flex-direction:column; gap:0.6rem; justify-content:center;
  background: linear-gradient(135deg, rgba(0,64,128,0.2), transparent);
}
@supports (background: color-mix(in srgb, red 50%, blue)) {
  .kad-promo-body { background: linear-gradient(135deg, color-mix(in srgb, var(--kad-accent) 12%, transparent), transparent); }
}
.kad-promo .kad-title { font-size:1.3rem; margin:0; }
.kad-promo .kad-subtitle { font-size:0.85rem; }
.kad-badge--promo { position:absolute; top:1rem; left:1rem; z-index:1; }

.kad-toast {
  position:fixed; bottom:2rem; right:2rem; z-index:8888;
  max-width:340px; width:calc(100vw - 2rem);
  display:flex; flex-direction:column;
  box-shadow: 0 20px 60px rgba(0,0,0,0.6);
  animation: toastIn 0.4s cubic-bezier(.16,1,.3,1) both;
}
@keyframes toastIn { from{transform:translateX(100px);opacity:0} to{transform:translateX(0);opacity:1} }
.kad-toast-close { position:absolute; top:0.5rem; right:0.5rem; z-index:1; background:rgba(0,0,0,0.4); border:none; color:#fff; width:24px; height:24px; border-radius:50%; cursor:pointer; font-size:1rem; display:flex; align-items:center; justify-content:center; }

.kad-modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.8); backdrop-filter:blur(4px); z-index:9900; display:flex; align-items:center; justify-content:center; padding:1rem; }
.kad-modal-inner { position:relative; max-width:600px; width:100%; animation:cardIn 0.4s cubic-bezier(.16,1,.3,1) both; }
@keyframes cardIn { from{transform:scale(.92);opacity:0} to{transform:scale(1);opacity:1} }
.kad-modal-close { position:absolute; top:-14px; right:-14px; width:32px; height:32px; background:#fff; color:#030d1e; border:none; border-radius:50%; cursor:pointer; font-size:1.1rem; font-weight:700; z-index:1; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 12px rgba(0,0,0,0.3); }

.ki-sidebar-widget .kad-wrap { margin: 0; max-width: 100%; }
.ki-sidebar-widget .kad-wrap::before { display: none; }

@media (max-width: 768px) {
  .kad-promo { flex-direction:column; }
  .kad-promo-img { width:100%; height:180px; }
  .kad-event { flex-direction:column; }
  .kad-event-date { margin:1.5rem 1.5rem 0; align-self:flex-start; }
  .kad-event-body { padding:1rem 1.5rem 1.5rem; }
  .kad-announcement { flex-direction:column; }
  .kad-announcement .kad-ann-img { width:100%; height:140px; }
}
