/* =====================================================================
   AI Consulting Core Plugin — Frontend Styles
   ===================================================================== */

/* ── Variables ──────────────────────────────────────────────────────── */
:root {
  --aic-primary: #7C3AED;
  --aic-secondary: #2563EB;
  --aic-accent: #06b6d4;
  --aic-dark: #0f172a;
  --aic-gray: #64748b;
  --aic-light: #f8fafc;
  --aic-radius: .75rem;
  --aic-shadow: 0 10px 40px rgba(0,0,0,.12);
}

/* ── Botón flotante WhatsApp ────────────────────────────────────────── */
.aic-float-wrap { position:fixed; bottom:1.5rem; right:1.5rem; z-index:9990; display:flex; flex-direction:column; align-items:flex-end; gap:.5rem; }
.aic-float-btn--toggle { width:56px; height:56px; border-radius:50%; background:linear-gradient(135deg,var(--aic-primary),var(--aic-secondary)); color:#fff; border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 20px rgba(124,58,237,.4); position:relative; transition:transform .2s,box-shadow .2s; }
.aic-float-btn--toggle:hover { transform:scale(1.08); box-shadow:0 6px 28px rgba(124,58,237,.5); }
.aic-float-icon--close { display:none; }
.aic-float-btn--toggle[aria-expanded="true"] .aic-float-icon--open { display:none; }
.aic-float-btn--toggle[aria-expanded="true"] .aic-float-icon--close { display:block; }
.aic-float-pulse { position:absolute; top:0; right:0; width:14px; height:14px; border-radius:50%; background:#10b981; border:2px solid #fff; animation:aic-pulse 2s infinite; }
@keyframes aic-pulse { 0%,100%{transform:scale(1);opacity:1} 50%{transform:scale(1.3);opacity:.7} }
.aic-float-panel { background:#fff; border-radius:var(--aic-radius); box-shadow:var(--aic-shadow); padding:1.25rem; min-width:220px; border:1px solid rgba(0,0,0,.08); }
.aic-float-panel__heading { margin:0 0 .15rem; font-weight:700; font-size:.95rem; color:var(--aic-dark); }
.aic-float-panel__sub { margin:0 0 .9rem; font-size:.8rem; color:var(--aic-gray); }
.aic-float-option { display:flex; align-items:center; gap:.55rem; padding:.6rem .75rem; border-radius:.5rem; text-decoration:none; font-size:.85rem; font-weight:600; margin-bottom:.4rem; transition:background .15s; }
.aic-float-option--wa { background:#dcfce7; color:#166534; }
.aic-float-option--wa:hover { background:#bbf7d0; color:#166534; }
.aic-float-option--form { background:#eff6ff; color:#1d4ed8; }
.aic-float-option--form:hover { background:#dbeafe; color:#1d4ed8; }
.aic-float-option--agent { background:linear-gradient(135deg,#ede9fe,#dbeafe); color:#5b21b6; border:none; cursor:pointer; width:100%; text-align:left; }
.aic-float-option--agent:hover { background:linear-gradient(135deg,#ddd6fe,#bfdbfe); color:#4c1d95; }

/* ── Agente IA ──────────────────────────────────────────────────────── */
.aic-agent-wrap { position:fixed; bottom:0; right:0; z-index:9988; pointer-events:none; }
.aic-agent-toggle { display:flex; align-items:center; gap:.45rem; padding:.6rem 1rem .6rem .75rem; border-radius:2rem; background:linear-gradient(135deg,var(--aic-primary),var(--aic-secondary)); color:#fff; border:none; cursor:pointer; box-shadow:0 4px 20px rgba(124,58,237,.35); font-size:.82rem; font-weight:600; position:relative; transition:transform .2s,box-shadow .2s; }
.aic-agent-toggle:hover { transform:translateY(-2px); box-shadow:0 6px 28px rgba(124,58,237,.45); }
.aic-agent-toggle__icon { flex-shrink:0; }
.aic-agent-toggle__icon--close { display:none; }
.aic-agent-toggle[aria-expanded="true"] .aic-agent-toggle__icon--open { display:none; }
.aic-agent-toggle[aria-expanded="true"] .aic-agent-toggle__icon--close { display:block; }
.aic-agent-pulse { position:absolute; top:4px; right:4px; width:10px; height:10px; border-radius:50%; background:#10b981; border:2px solid #fff; animation:aic-pulse 2s infinite; }
.aic-agent-panel { position:fixed; bottom:5.5rem; right:1.5rem; width:360px; max-height:520px; background:#fff; border-radius:var(--aic-radius); box-shadow:var(--aic-shadow); border:1px solid rgba(0,0,0,.08); display:flex; flex-direction:column; opacity:0; transform:translateY(8px) scale(.98); transition:opacity .25s,transform .25s; pointer-events:none; }
.aic-agent-panel--open { opacity:1; transform:translateY(0) scale(1); pointer-events:auto !important; }
.aic-agent-header { display:flex; align-items:center; justify-content:space-between; padding:.85rem 1rem; background:linear-gradient(135deg,var(--aic-primary),var(--aic-secondary)); border-radius:var(--aic-radius) var(--aic-radius) 0 0; color:#fff; }
.aic-agent-header__info { display:flex; align-items:center; gap:.65rem; }
.aic-agent-avatar { width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.aic-agent-header strong { display:block; font-size:.87rem; }
.aic-agent-header__status { font-size:.73rem; opacity:.85; }
.aic-agent-close { background:none; border:none; color:#fff; cursor:pointer; padding:.25rem; opacity:.8; }
.aic-agent-close:hover { opacity:1; }
.aic-agent-messages { flex:1; overflow-y:auto; padding:1rem; display:flex; flex-direction:column; gap:.65rem; scroll-behavior:smooth; }
.aic-agent-msg { display:flex; }
.aic-agent-msg--user { justify-content:flex-end; }
.aic-agent-bubble { max-width:85%; padding:.55rem .8rem; border-radius:1rem; font-size:.84rem; line-height:1.5; }
.aic-agent-msg--user .aic-agent-bubble { background:linear-gradient(135deg,var(--aic-primary),var(--aic-secondary)); color:#fff; border-radius:1rem 1rem 0 1rem; }
.aic-agent-msg--assistant .aic-agent-bubble { background:#f1f5f9; color:var(--aic-dark); border-radius:1rem 1rem 1rem 0; }
.aic-agent-msg--assistant .aic-agent-bubble a { color:var(--aic-secondary); }
.aic-agent-typing .aic-agent-bubble { display:flex; gap:.3rem; align-items:center; padding:.7rem .9rem; }
.aic-agent-typing span { width:7px; height:7px; border-radius:50%; background:var(--aic-gray); animation:aic-bounce .8s infinite; }
.aic-agent-typing span:nth-child(2){animation-delay:.15s}
.aic-agent-typing span:nth-child(3){animation-delay:.3s}
@keyframes aic-bounce { 0%,80%,100%{transform:translateY(0)} 40%{transform:translateY(-5px)} }
.aic-agent-input-wrap { display:flex; gap:.5rem; padding:.65rem .75rem; border-top:1px solid #e2e8f0; }
#aic-agent-input { flex:1; resize:none; border:1.5px solid #e2e8f0; border-radius:.5rem; padding:.45rem .65rem; font-size:.84rem; font-family:inherit; line-height:1.4; outline:none; transition:border-color .15s; max-height:100px; overflow-y:auto; }
#aic-agent-input:focus { border-color:var(--aic-primary); }
#aic-agent-send { width:36px; height:36px; border-radius:.5rem; background:var(--aic-primary,#7C3AED); background:linear-gradient(135deg,var(--aic-primary,#7C3AED),var(--aic-secondary,#2563EB)); color:#fff; border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:opacity .15s; }
#aic-agent-send:disabled { opacity:.5; cursor:not-allowed; }
.aic-agent-footer { margin:0; padding:.35rem .75rem .5rem; font-size:.72rem; color:var(--aic-gray); text-align:center; }
.aic-agent-footer a { color:var(--aic-gray); }
.aic-agent-lead-form p { font-size:.84rem; color:var(--aic-dark); }

/* ── Buscador semántico ─────────────────────────────────────────────── */
.aic-search-widget { width:100%; max-width:680px; margin:0 auto; }
.aic-search-widget__inner { position:relative; }
.aic-search-box { display:flex; align-items:center; background:#fff; border:2px solid #e2e8f0; border-radius:3rem; padding:.6rem 1rem; gap:.5rem; transition:border-color .2s,box-shadow .2s; }
.aic-search-box:focus-within { border-color:var(--aic-primary); box-shadow:0 0 0 3px rgba(124,58,237,.12); }
.aic-search-box__icon { color:var(--aic-gray); flex-shrink:0; }
#aic-search-input { flex:1; border:none; outline:none; font-size:.95rem; color:var(--aic-dark); background:transparent; font-family:inherit; }
#aic-search-input::placeholder { color:#94a3b8; }
.aic-search-box__clear { background:none; border:none; cursor:pointer; color:var(--aic-gray); display:flex; align-items:center; padding:.2rem; border-radius:50%; }
.aic-search-box__clear:hover { background:#f1f5f9; color:var(--aic-dark); }
.aic-search-chips { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.65rem; align-items:center; }
.aic-search-chip-label { font-size:.78rem; color:var(--aic-gray); white-space:nowrap; }
.aic-search-chip { padding:.3rem .75rem; border-radius:2rem; border:1.5px solid #e2e8f0; background:#fff; color:var(--aic-dark); font-size:.78rem; cursor:pointer; transition:all .15s; white-space:nowrap; }
.aic-search-chip:hover { border-color:var(--aic-primary); color:var(--aic-primary); background:#faf5ff; }
.aic-search-results { position:absolute; top:calc(100% + .5rem); left:0; right:0; background:#fff; border:1px solid #e2e8f0; border-radius:var(--aic-radius); box-shadow:var(--aic-shadow); z-index:9900; overflow:hidden; }
.aic-search-list { list-style:none; margin:0; padding:0; }
.aic-search-item { display:flex; align-items:center; gap:.75rem; padding:.7rem .9rem; transition:background .12s; cursor:pointer; }
.aic-search-item:hover { background:#f8fafc; }
.aic-search-item__img { width:52px; height:38px; border-radius:.4rem; overflow:hidden; flex-shrink:0; background:#e2e8f0; }
.aic-search-item__img img { width:100%; height:100%; object-fit:cover; }
.aic-search-item__img--fallback { background:linear-gradient(135deg,var(--aic-primary),var(--aic-secondary)); }
.aic-search-item__body { flex:1; min-width:0; }
.aic-search-item__badge { display:block; font-size:.68rem; color:var(--aic-gray); text-transform:uppercase; letter-spacing:.05em; }
.aic-search-item__type-badge { display:inline-block; margin-left:.3rem; font-size:.65rem; background:#eff6ff; color:#1d4ed8; border-radius:2px; padding:0 .3rem; }
.aic-search-item__title { display:block; font-size:.88rem; font-weight:600; color:var(--aic-dark); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.aic-search-item__tagline { display:block; font-size:.78rem; color:var(--aic-gray); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.aic-search-item__price { display:block; font-size:.75rem; color:var(--aic-primary); font-weight:600; margin-top:.1rem; }
.aic-search-item__cta { flex-shrink:0; font-size:.8rem; font-weight:600; color:var(--aic-primary); text-decoration:none; white-space:nowrap; }
.aic-search-item__cta:hover { text-decoration:underline; }
.aic-search-footer { padding:.6rem .9rem; border-top:1px solid #e2e8f0; text-align:right; }
.aic-search-footer a { font-size:.8rem; color:var(--aic-secondary); font-weight:600; text-decoration:none; }
.aic-search-empty { padding:1.5rem; text-align:center; color:var(--aic-gray); font-size:.85rem; }
.aic-search-empty p { margin:.4rem 0 0; }
.aic-search-widget--dark .aic-search-box { background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.2); color:#fff; }
.aic-search-widget--dark #aic-search-input { color:#fff; }
.aic-search-widget--dark #aic-search-input::placeholder { color:rgba(255,255,255,.5); }
.aic-search-widget--dark .aic-search-chip { background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.2); color:#fff; }

/* ── Shortcodes ─────────────────────────────────────────────────────── */
.aic-btn { display:inline-flex; align-items:center; padding:.65rem 1.5rem; border-radius:.5rem; font-weight:600; font-size:.9rem; text-decoration:none; transition:all .15s; }
.aic-btn--primary { background:linear-gradient(135deg,var(--aic-primary),var(--aic-secondary)); color:#fff; }
.aic-btn--primary:hover { opacity:.9; transform:translateY(-1px); }
.aic-btn--secondary { background:#fff; color:var(--aic-primary); border:2px solid var(--aic-primary); }
.aic-btn--secondary:hover { background:var(--aic-primary); color:#fff; }
.aic-metric { text-align:center; }
.aic-metric__value { font-size:2.5rem; font-weight:800; color:var(--aic-primary); line-height:1; }
.aic-metric__label { font-size:.85rem; color:var(--aic-gray); margin-top:.25rem; }
.aic-badge { display:inline-block; padding:.2rem .65rem; border-radius:2rem; background:#eff6ff; color:#1d4ed8; font-size:.75rem; font-weight:600; }

/* ── Services grid ──────────────────────────────────────────────────── */
.aic-services-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1.5rem; }
.aic-service-card { text-decoration:none; border-radius:var(--aic-radius); overflow:hidden; border:1px solid #e2e8f0; background:#fff; transition:transform .2s,box-shadow .2s; display:flex; flex-direction:column; }
.aic-service-card:hover { transform:translateY(-4px); box-shadow:0 16px 40px rgba(0,0,0,.1); }
.aic-service-card__img { height:180px; background-size:cover; background-position:center; background-color:#e2e8f0; }
.aic-service-card__body { padding:1.25rem; flex:1; display:flex; flex-direction:column; gap:.4rem; }
.aic-service-card__title { font-size:1rem; font-weight:700; color:var(--aic-dark); margin:0; }
.aic-service-card__tagline { font-size:.85rem; color:var(--aic-gray); margin:0; flex:1; }
.aic-service-card__price { font-size:.82rem; font-weight:600; color:var(--aic-primary); margin:0; }

/* ── Testimonials grid ──────────────────────────────────────────────── */
.aic-testimonials-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1.5rem; }
.aic-testimonial-card { background:#fff; border:1px solid #e2e8f0; border-radius:var(--aic-radius); padding:1.5rem; display:flex; flex-direction:column; gap:.75rem; }
.aic-testimonial-card__stars { color:#f59e0b; font-size:1rem; letter-spacing:.05em; }
.aic-testimonial-card__text { font-size:.9rem; color:var(--aic-dark); line-height:1.6; margin:0; flex:1; font-style:italic; }
.aic-testimonial-card__text::before { content:'"'; }
.aic-testimonial-card__text::after { content:'"'; }
.aic-testimonial-card__author { display:flex; align-items:center; gap:.65rem; }
.aic-testimonial-card__photo { width:40px; height:40px; border-radius:50%; object-fit:cover; flex-shrink:0; }
.aic-testimonial-card__author strong { display:block; font-size:.85rem; color:var(--aic-dark); }
.aic-testimonial-card__author span { font-size:.78rem; color:var(--aic-gray); }

/* ── Responsive ─────────────────────────────────────────────────────── */
@media (max-width:768px) {
  .aic-agent-panel { width:calc(100vw - 1.5rem); right:.75rem; bottom:5rem; }
  .aic-float-wrap { bottom:.75rem; right:.75rem; }
  .aic-search-chips { display:none; }
}
