/* =========================================================
   Sinpiloto AI — Product Polish System
   Microinteracciones, consistencia visual y performance UI
   ========================================================= */
:root{
  --motion-fast:160ms;
  --motion-base:260ms;
  --motion-slow:420ms;
  --motion-ease:cubic-bezier(.22,1,.36,1);
  --motion-ease-out:cubic-bezier(.16,1,.3,1);
  --lift-sm:-2px;
  --lift-md:-4px;
  --focus-ring:0 0 0 3px rgba(147,92,255,.28);
  --premium-border:rgba(255,255,255,.12);
  --premium-border-hover:rgba(166,123,255,.45);
  --premium-glow:0 18px 50px rgba(124,58,237,.18);
  --premium-glow-soft:0 10px 32px rgba(124,58,237,.12);
}

html{scroll-behavior:smooth;}
body{overflow-x:clip;}

/* Rendering hygiene */
img,svg,canvas,video{max-width:100%;}
img{height:auto;}
:is(.hero-panel,.service-card,.case-card,.use-card,.step-card,.benefit-card,.metric-card,.contact-card,.faq-item,.footer-inner){backface-visibility:hidden;}

/* Consistent focus */
:where(a,button,input,textarea,select,[tabindex]):focus-visible{
  outline:none!important;
  box-shadow:var(--focus-ring)!important;
  border-color:var(--premium-border-hover)!important;
}
.skip-link:focus-visible{transform:translateY(0);opacity:1;z-index:9999;}

/* Unified buttons */
:where(.btn-p,.btn-s,.nav-cta,.footer-cta,.faq-bottom-btn,.contact-submit,.service-cta,.case-cta,.hero-ctas a){
  position:relative;
  overflow:hidden;
  transform:translateZ(0);
  transition:transform var(--motion-base) var(--motion-ease), box-shadow var(--motion-base) var(--motion-ease), border-color var(--motion-base) var(--motion-ease), background var(--motion-base) var(--motion-ease), opacity var(--motion-base) var(--motion-ease);
}
:where(.btn-p,.nav-cta,.footer-cta,.faq-bottom-btn,.contact-submit,.service-cta):hover{
  transform:translateY(var(--lift-sm));
  box-shadow:var(--premium-glow);
}
:where(.btn-s,.case-cta,.hero-ctas a:not(.btn-p)):hover{
  transform:translateY(var(--lift-sm));
  border-color:var(--premium-border-hover);
  box-shadow:var(--premium-glow-soft);
}
:where(.btn-p,.btn-s,.nav-cta,.footer-cta,.faq-bottom-btn,.contact-submit,.service-cta,.case-cta)::after{
  content:"";
  position:absolute;
  inset:0;
  opacity:0;
  pointer-events:none;
  background:radial-gradient(circle at var(--mx,50%) var(--my,50%), rgba(255,255,255,.22), transparent 32%);
  transition:opacity var(--motion-fast) ease;
}
:where(.btn-p,.btn-s,.nav-cta,.footer-cta,.faq-bottom-btn,.contact-submit,.service-cta,.case-cta):hover::after{opacity:1;}

/* Unified cards */
:where(.service-card,.case-card,.use-card,.step-card,.benefit-card,.metric-card,.contact-card,.faq-item,.related-card,.process-card,.solution-card,.hero-panel){
  transition:transform var(--motion-base) var(--motion-ease), border-color var(--motion-base) var(--motion-ease), box-shadow var(--motion-base) var(--motion-ease), background var(--motion-base) var(--motion-ease);
  transform:translateZ(0);
}
:where(.service-card,.case-card,.use-card,.step-card,.benefit-card,.metric-card,.contact-card,.related-card,.process-card,.solution-card):hover{
  transform:translateY(var(--lift-md));
  border-color:var(--premium-border-hover)!important;
  box-shadow:var(--premium-glow-soft);
}

/* Links and arrows */
:where(.nav-link,.footer-link,.service-link,.case-link,.breadcrumb a){
  text-underline-offset:4px;
  transition:color var(--motion-fast) ease, opacity var(--motion-fast) ease;
}
:where(.service-link,.case-link,.faq-bottom-btn,.btn-p,.btn-s) svg,
:where(.service-link,.case-link,.faq-bottom-btn,.btn-p,.btn-s) .arrow{
  transition:transform var(--motion-base) var(--motion-ease);
}
:where(.service-link,.case-link,.faq-bottom-btn,.btn-p,.btn-s):hover svg,
:where(.service-link,.case-link,.faq-bottom-btn,.btn-p,.btn-s):hover .arrow{transform:translateX(3px);}

/* Logos / visual modules */
:where(.logo-card,.integration-logo,.tool-logo,.partner-logo,.brand-pill){
  transition:transform var(--motion-base) var(--motion-ease), opacity var(--motion-base) ease, filter var(--motion-base) ease, border-color var(--motion-base) ease;
}
:where(.logo-card,.integration-logo,.tool-logo,.partner-logo,.brand-pill):hover{
  transform:translateY(-2px) scale(1.015);
  opacity:1;
  filter:saturate(1.08) brightness(1.08);
}

/* Reveal refinement */
[data-reveal],.reveal{
  will-change:transform,opacity;
}
.reveal.is-visible,[data-reveal].is-visible{will-change:auto;}

/* Better rhythm on narrow screens */
@media (max-width:430px){
  :where(.hero-ctas,.cta-row,.button-row){gap:10px;}
  :where(.service-card,.case-card,.use-card,.step-card,.benefit-card,.metric-card,.contact-card){transform:none!important;}
  :where(.btn-p,.btn-s,.nav-cta,.footer-cta,.faq-bottom-btn,.contact-submit,.service-cta,.case-cta):hover{transform:none;}
}

/* Motion safety */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important;}
  [data-reveal],.reveal{opacity:1!important;transform:none!important;}
}
