:root{
  --cp-black:#0a0d10;
  --cp-black-2:#11161c;
  --cp-red:#ef164f;
  --cp-mango:#ffb400;
  --cp-blue:#159be8;
  --cp-green:#25c66f;
  --cp-purple:#7d38e8;
  --cp-white:#fff;
  --cp-line:rgba(255,255,255,.12);
  --cp-radius:18px;
  --cp-shadow:0 18px 50px rgba(0,0,0,.22);
}

html{scroll-behavior:smooth;scroll-padding-top:84px}
body{min-width:0;overflow-x:hidden}
img{max-width:100%;height:auto}
button,a,input,select,textarea{touch-action:manipulation}

.cp-skip-link{
  position:fixed;left:14px;top:14px;z-index:10000;
  transform:translateY(-180%);transition:transform .2s ease;
  background:var(--cp-mango);color:#111;padding:.7rem 1rem;
  border-radius:999px;font-weight:800;text-decoration:none;
}
.cp-skip-link:focus{transform:none}

.cp-mobile-only{display:none!important}
.cp-desktop-only{display:block}

.cp-floating-actions{
  position:fixed;right:16px;bottom:max(16px,env(safe-area-inset-bottom));
  z-index:900;display:flex;flex-direction:column;gap:9px;align-items:flex-end;
  pointer-events:none;
}
.cp-floating-actions a,.cp-floating-actions button{
  pointer-events:auto;border:0;text-decoration:none;cursor:pointer;
  display:inline-flex;align-items:center;gap:.55rem;min-height:46px;
  padding:.72rem .95rem;border-radius:999px;font:inherit;font-weight:800;
  box-shadow:var(--cp-shadow);transition:transform .2s ease,filter .2s ease;
}
.cp-floating-actions a:hover,.cp-floating-actions a:focus-visible,
.cp-floating-actions button:hover,.cp-floating-actions button:focus-visible{
  transform:translateY(-2px);filter:brightness(1.05)
}
.cp-float-wa{background:var(--cp-green);color:#06170d}
.cp-float-quote{background:var(--cp-red);color:#fff}

.cp-mobile-sensor-target{transition:transform .22s ease-out}

@media (max-width:820px){
  .cp-mobile-only{display:block!important}
  .cp-desktop-only{display:none!important}
  .cp-floating-actions{right:12px}
  .cp-floating-actions a,.cp-floating-actions button{min-height:44px;padding:.68rem .9rem}
}

@media (max-width:560px){
  .cp-floating-actions{bottom:max(12px,env(safe-area-inset-bottom));gap:7px}
  .cp-floating-actions a,.cp-floating-actions button{font-size:12px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
}


/* ==========================================================
   FASE 03 · MOTOR DE INTERACCIÓN Y MOVIMIENTO
   ========================================================== */

html{
  scroll-behavior:smooth;
  scroll-padding-top:var(--cp-scroll-offset,84px);
}

body{
  overscroll-behavior-x:none;
}

.cp-motion-ready .cp-scroll-reveal{
  opacity:0;
  translate:0 30px;
  transition:
    opacity .62s cubic-bezier(.22,1,.36,1),
    translate .62s cubic-bezier(.22,1,.36,1);
  transition-delay:var(--cp-reveal-delay,0ms);
  will-change:opacity,translate;
}

.cp-motion-ready .cp-scroll-reveal.is-visible{
  opacity:1;
  translate:0 0;
}

.cp-motion-ready .cp-section-reveal{
  content-visibility:auto;
  contain-intrinsic-size:1px 720px;
}

.cp-motion-ready [data-cp-cascade] > .cp-scroll-reveal,
.cp-motion-ready [data-cp-cascade] > .category-card,
.cp-motion-ready [data-cp-cascade] > .shop-card,
.cp-motion-ready [data-cp-cascade] > .service-card,
.cp-motion-ready [data-cp-cascade] > .promo-card,
.cp-motion-ready [data-cp-cascade] > .step,
.cp-motion-ready [data-cp-cascade] > .portfolio-item{
  transition-delay:calc(var(--cp-cascade-index,0) * 75ms);
}

.cp-motion-ready [data-cp-scroll-parallax]{
  will-change:transform;
  transition:transform .18s ease-out;
}

.cp-motion-ready [data-cp-parallax]{
  will-change:transform;
  transition:transform .18s ease-out;
}

.cp-motion-ready .cp-motion-scene{
  transform-style:preserve-3d;
  perspective:900px;
}

.cp-motion-ready .cp-motion-scene [data-cp-parallax]{
  transform:translate3d(0,var(--cp-parallax-y,0px),0);
}

.cp-motion-ready .cp-motion-pressed{
  transform:scale(.985);
}

.cp-motion-ready [data-cp-tilt]{
  transform-style:preserve-3d;
  will-change:transform;
  transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s ease;
}

.cp-motion-ready [data-cp-tilt]:hover{
  box-shadow:0 18px 46px rgba(9,11,15,.16);
}

.cp-motion-ready .cp-mobile-gravity{
  --cp-gravity-x:0px;
  --cp-gravity-y:0px;
}

.cp-motion-ready .cp-mobile-gravity.is-motion-enabled{
  transition:transform .28s cubic-bezier(.22,1,.36,1);
  transform:translate3d(
    var(--cp-gravity-x),
    var(--cp-gravity-y),
    0
  );
}

.cp-motion-ready .cp-touch-feedback{
  transition:transform .16s ease,filter .16s ease;
}

.cp-motion-ready .cp-touch-feedback.is-pressed{
  transform:translateY(1px) scale(.985);
  filter:brightness(.97);
}

@media (hover:hover) and (pointer:fine){
  .cp-motion-ready [data-cp-tilt]{
    transform:perspective(900px) rotateX(var(--cp-tilt-x,0deg)) rotateY(var(--cp-tilt-y,0deg));
  }
}

@media (max-width:820px){
  .cp-motion-ready [data-cp-mobile-only-motion]{
    display:block;
  }
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;scroll-padding-top:0}
  .cp-motion-ready [data-cp-scroll-parallax],
  .cp-motion-ready .cp-scroll-reveal,
  .cp-motion-ready .cp-motion-scene [data-cp-parallax],
  .cp-motion-ready .cp-mobile-gravity,
  .cp-motion-ready [data-cp-tilt]{
    opacity:1;
    translate:0 0;
    transform:none!important;
    transition:none!important;
    will-change:auto;
  }
}
