/* ================================================================
   SÓCRATES NOVA V19.17 — Botones unificados, PT/ES/EN.
   Mismo lenguaje visual (Inter, mayúsculas, icono, CTA rectangular),
   colores NOVA por contexto. No cambia los enlaces ni el comportamiento.
   Solo web pública; controles de ventana, buscadores y asistente conservan
   sus proporciones y accesibilidad.
   ================================================================ */
:root{
  --nova-navy:#003865;
  --nova-cyan:#00a9e0;
  --nova-orange:#ed8b00;
  --nova-green:#97d700;
  --nova-yellow:#ffc72c;
  --nova-white:#ffffff;
}

/* CTA con texto. Variables locales permiten cambiar una sección entera. */
body :is(a.btn,button.btn,a.header-cta,a.text-action,a.radar-start,a.radar-direct,
         a.cta-orbit,button.footer-cookie-button,a.mini-action){
  --nova-btn-bg:var(--nova-orange);
  --nova-btn-fg:#062a43;
  --nova-btn-line:var(--nova-btn-bg);
  --nova-btn-shadow:rgba(0,25,51,.17);
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  vertical-align:middle;
  gap:11px;
  min-height:54px;
  padding:14px 22px;
  border:1px solid var(--nova-btn-line) !important;
  border-radius:6px !important;
  background:var(--nova-btn-bg) !important;
  color:var(--nova-btn-fg) !important;
  font-family:'Inter',sans-serif !important;
  font-size:12px;
  font-weight:800;
  line-height:1.25;
  letter-spacing:0 !important;
  text-transform:uppercase;
  text-align:center;
  text-decoration:none !important;
  white-space:normal;
  cursor:pointer;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  box-shadow:0 8px 25px var(--nova-btn-shadow) !important;
  transition:background .25s ease,border-color .25s ease,color .25s ease,
             box-shadow .35s ease,filter .25s ease,translate .28s ease;
}
body :is(a.btn,button.btn,a.header-cta,a.text-action,a.radar-start,a.radar-direct,
         a.cta-orbit,button.footer-cookie-button,a.mini-action) :is(svg,.icon){
  width:18px;
  height:18px;
  flex:none;
  color:inherit;
}
body :is(a.btn,button.btn,a.header-cta,a.text-action,a.radar-start,a.radar-direct,
         a.cta-orbit,button.footer-cookie-button,a.mini-action):hover{
  translate:0 -3px;
  filter:brightness(1.065);
  box-shadow:0 15px 32px rgba(0,25,51,.25) !important;
}
body :is(a.btn,button.btn,a.header-cta,a.text-action,a.radar-start,a.radar-direct,
         a.cta-orbit,button.footer-cookie-button,a.mini-action):active{
  translate:0 0;
  filter:brightness(.98);
}
body :is(a.btn,button.btn,a.header-cta,a.text-action,a.radar-start,a.radar-direct,
         a.cta-orbit,button.footer-cookie-button,a.mini-action):focus-visible{
  outline:3px solid var(--nova-cyan);
  outline-offset:3px;
}

/* Brillo al cruzar el cursor. No interfiere con el texto ni iconos. */
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  body :is(a.btn,button.btn,a.header-cta,a.text-action,a.radar-start,a.radar-direct,
           a.cta-orbit,button.footer-cookie-button)::before{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    z-index:0;
    background:linear-gradient(110deg,transparent 22%,rgba(255,255,255,.32) 48%,transparent 73%);
    transform:translateX(-130%);
    transition:transform .62s cubic-bezier(.2,.8,.2,1);
  }
  body :is(a.btn,button.btn,a.header-cta,a.text-action,a.radar-start,a.radar-direct,
           a.cta-orbit,button.footer-cookie-button):hover::before{transform:translateX(130%)}
}

/* Sistema primario/secundario: sólido + borde, siempre en la misma geometría. */
body :is(.btn-outline,a.text-action,a.radar-direct,button.footer-cookie-button){
  --nova-btn-bg:transparent;
  --nova-btn-fg:#f1faff;
  --nova-btn-line:rgba(0,169,224,.8);
  --nova-btn-shadow:rgba(0,25,51,.09);
}
body :is(.btn-mini){min-height:44px;font-size:11px;padding:10px 16px}

/* Encabezado oscuro: destacado amarillo; secundario del HERO con contorno. */
body .site-header a.header-cta{
  --nova-btn-bg:var(--nova-yellow);
  --nova-btn-fg:var(--nova-navy);
  --nova-btn-line:var(--nova-yellow);
  min-height:43px;
  padding:10px 14px;
  gap:8px;
  font-size:11px;
  white-space:nowrap;
}
body .home-hero .btn-primary{
  --nova-btn-bg:var(--nova-orange);
  --nova-btn-fg:var(--nova-navy);
  --nova-btn-line:var(--nova-orange);
}
body .home-hero .btn-outline{--nova-btn-line:var(--nova-cyan);--nova-btn-fg:#e5f7ff}

/* Fondo claro: azules oscuros sobre borde o superficies corporativas. */
body .home-essence .btn-primary{--nova-btn-bg:var(--nova-orange);--nova-btn-fg:var(--nova-navy)}
body .home-essence .btn-outline{
  --nova-btn-bg:transparent;
  --nova-btn-fg:var(--nova-navy);
  --nova-btn-line:#7194ac;
}
body .services-section .services-cta,
body .support-hero .btn-primary{
  --nova-btn-bg:var(--nova-green);
  --nova-btn-fg:var(--nova-navy);
  --nova-btn-line:var(--nova-green);
}
body .form-surface .btn-primary{
  --nova-btn-bg:var(--nova-orange);
  --nova-btn-fg:var(--nova-navy);
}
body .contact-hero .btn-primary,
body .about-hero .btn-primary{--nova-btn-bg:var(--nova-yellow);--nova-btn-fg:var(--nova-navy)}

/* Secciones azules: cian y verde dan ritmo sin perder contraste. */
body .human-tech a.text-action{
  --nova-btn-bg:var(--nova-cyan);
  --nova-btn-fg:var(--nova-navy);
  --nova-btn-line:var(--nova-cyan);
}
body .home-promise a.btn-outline{
  --nova-btn-bg:var(--nova-green);
  --nova-btn-fg:var(--nova-navy);
  --nova-btn-line:var(--nova-green);
}
body .footer-prelude a.cta-orbit{
  --nova-btn-bg:var(--nova-cyan);
  --nova-btn-fg:var(--nova-navy);
  --nova-btn-line:var(--nova-cyan);
  width:auto !important;
  height:auto !important;
  min-width:0 !important;
  max-width:100%;
  flex-direction:row !important;
  justify-self:start;
  transform:none !important;
  padding:17px 23px;
  text-align:center;
}
body .footer-prelude a.cta-orbit:hover{transform:none !important}
body .footer-prelude a.cta-orbit strong{
  max-width:none;
  font:800 12px/1.25 'Inter',sans-serif;
  text-transform:uppercase;
}

/* Proyectos: cada case study recibe un color de la marca. */
body .featured-project a.btn-outline{
  --nova-btn-bg:transparent;
  --nova-btn-fg:#fff;
  --nova-btn-line:rgba(255,255,255,.72);
}
body .featured-project.pioneira a.btn-outline{
  --nova-btn-bg:var(--nova-yellow);
  --nova-btn-fg:var(--nova-navy);
  --nova-btn-line:var(--nova-yellow);
}
body .featured-project.innovalley a.btn-outline{
  --nova-btn-bg:#e8f8ff;
  --nova-btn-fg:var(--nova-navy);
  --nova-btn-line:#e8f8ff;
}
body .featured-project.nusadua a.btn-outline{
  --nova-btn-bg:var(--nova-green);
  --nova-btn-fg:var(--nova-navy);
  --nova-btn-line:var(--nova-green);
}

/* Blog en fondo claro: botones realmente visibles. */
body .blog-section a.btn-outline{
  --nova-btn-bg:var(--nova-navy);
  --nova-btn-fg:white;
  --nova-btn-line:var(--nova-navy);
}
body .blog-section a.text-action{
  --nova-btn-bg:transparent;
  --nova-btn-fg:var(--nova-navy);
  --nova-btn-line:#80a1b6;
}

/* RADAR IA posee estilos inline con ID: conservar diseño global con más prioridad. */
body #radar-ia a.radar-start{
  --nova-btn-bg:var(--nova-yellow);
  --nova-btn-fg:var(--nova-navy);
  --nova-btn-line:var(--nova-yellow);
  min-height:56px;
  background:var(--nova-btn-bg) !important;
  color:var(--nova-btn-fg) !important;
  border:1px solid var(--nova-btn-line) !important;
  border-radius:6px !important;
  font:800 12px/1.25 'Inter',sans-serif !important;
}
body #radar-ia a.radar-direct{
  --nova-btn-bg:transparent;
  --nova-btn-fg:var(--nova-navy);
  --nova-btn-line:#7499b0;
  background:var(--nova-btn-bg) !important;
  color:var(--nova-btn-fg) !important;
  border:1px solid var(--nova-btn-line) !important;
  border-radius:6px !important;
  font:800 11px/1.25 'Inter',sans-serif !important;
  text-decoration:none !important;
}

/* Footer: el acceso a preferencias de cookies también se ve como botón. */
body .footer button.footer-cookie-button{
  --nova-btn-bg:transparent;
  --nova-btn-fg:#cdeeff;
  --nova-btn-line:#4388ac;
  min-height:43px;
  padding:10px 14px;
  font-size:11px;
}
body .cookie-banner .btn-primary{
  --nova-btn-bg:var(--nova-green);
  --nova-btn-fg:var(--nova-navy);
  --nova-btn-line:var(--nova-green);
}
body .locale-offer a.mini-action{
  --nova-btn-bg:var(--nova-orange);
  --nova-btn-fg:var(--nova-navy);
  --nova-btn-line:var(--nova-orange);
  min-height:39px;
  padding:8px 13px;
  font-size:11px;
}

/* Botones conversacionales, compactos para el panel del asistente. */
body .chat-actions :is(button,a){
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:38px;
  padding:7px 10px;
  font:800 10px/1.2 'Inter',sans-serif;
  text-transform:uppercase;
  background:#e5f5fd;
  color:var(--nova-navy);
  border:1px solid #9dcbe5;
  border-radius:5px;
  cursor:pointer;
  transition:background .2s,border-color .2s,translate .2s;
}
body .chat-actions :is(button,a):hover{background:#d0edfc;border-color:var(--nova-cyan);translate:0 -1px}
body .chat-form button[type=submit]{
  display:grid;
  place-items:center;
  width:44px;
  min-width:44px;
  height:42px;
  background:var(--nova-orange);
  color:var(--nova-navy);
  border:0;
  border-radius:6px;
  cursor:pointer;
}
body .chat-form button[type=submit]:hover{background:var(--nova-yellow)}

/* Controles utilitarios no se transforman en CTA (su función requiere otro tamaño). */
body .mobile-toggle{border-color:var(--nova-cyan);color:var(--nova-cyan)}
body .mobile-toggle:focus-visible,
body .chat-actions button:focus-visible,
body .chat-form button:focus-visible,
body #chat-close:focus-visible{outline:3px solid var(--nova-cyan);outline-offset:2px}

@media(max-width:620px){
  body .site-header a.header-cta{display:none !important}
  body .hero-ctas .btn,body .essence-actions .btn{min-height:49px;padding:12px 15px;font-size:11px}
  body .footer-prelude a.cta-orbit{width:auto;min-width:0;max-width:100%;padding:14px 20px}
  body #radar-ia a.radar-start{width:100%}
  body .cookie-banner .btn-mini{min-height:44px}
}
@media(prefers-reduced-motion:reduce){
  body :is(a.btn,button.btn,a.header-cta,a.text-action,a.radar-start,a.radar-direct,a.cta-orbit,button.footer-cookie-button):hover{translate:none;filter:none}
  body :is(a.btn,button.btn,a.header-cta,a.text-action,a.radar-start,a.radar-direct,a.cta-orbit,button.footer-cookie-button){transition:none!important}
}


/* ================================================================
   NOVA V19.19 — Hovers corporativos con cambio REAL de color.
   Se cambian las variables utilizadas por el sistema !important,
   en vez de alterar sólo el brillo del botón.
   ================================================================ */
@media (hover:hover) and (pointer:fine){
  body :is(a.btn,button.btn,a.header-cta,a.text-action,a.radar-start,a.radar-direct,
           a.cta-orbit,button.footer-cookie-button,a.mini-action):hover{
    --nova-btn-bg:var(--nova-yellow);
    --nova-btn-fg:var(--nova-navy);
    --nova-btn-line:var(--nova-yellow);
  }
  /* Secundarios en superficies claras: de contorno a azul sólido. */
  body :is(.home-essence,.blog-section,.form-surface,.contact-hero) a.btn-outline:hover,
  body #radar-ia a.radar-direct:hover{
    --nova-btn-bg:var(--nova-navy);
    --nova-btn-fg:#ffffff;
    --nova-btn-line:var(--nova-navy);
  }
  /* Secundarios en superficies oscuras: pasar a celeste sólido. */
  body :is(.home-hero,.home-promise,.featured-project,.support-hero) a.btn-outline:hover{
    --nova-btn-bg:var(--nova-cyan);
    --nova-btn-fg:var(--nova-navy);
    --nova-btn-line:var(--nova-cyan);
  }
  body .site-header a.header-cta:hover,
  body #radar-ia a.radar-start:hover{
    --nova-btn-bg:var(--nova-cyan);
    --nova-btn-fg:var(--nova-navy);
    --nova-btn-line:var(--nova-cyan);
  }
  /* Al hover de componentes, usar cambio de color en vez de brillo. */
  body :is(a.btn,button.btn,a.header-cta,a.text-action,a.radar-start,a.radar-direct,
           a.cta-orbit,button.footer-cookie-button,a.mini-action):hover{
    filter:none;
  }
}

/* Eliminar por completo la franja de sombra defectuosa bajo los dos CTA
   de NUESTRA ESSÊNCIA, incluyendo estados hover/focus/active. */
body .home-essence .essence-actions :is(a.btn,button.btn),
body .home-essence .essence-actions :is(a.btn,button.btn):is(:hover,:focus,:active){
  box-shadow:none!important;
  filter:none!important;
}

/* Asegurar cambio de color en ambos CTA también con teclado/touch. */
body .home-essence .essence-actions .essence-primary:is(:hover,:focus-visible){
  --nova-btn-bg:var(--nova-yellow);
  --nova-btn-fg:var(--nova-navy);
  --nova-btn-line:var(--nova-yellow);
}
body .home-essence .essence-actions .essence-secondary:is(:hover,:focus-visible){
  --nova-btn-bg:var(--nova-navy);
  --nova-btn-fg:#ffffff;
  --nova-btn-line:var(--nova-navy);
}

@media(prefers-reduced-motion:reduce){
  body .home-essence .essence-actions .btn{box-shadow:none!important}
}
