/* ============================================================
   PetPulse · Base / Reset / Tipografía / Layout primitives
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;font-family:var(--pp-font);color:var(--pp-ink);
  background:var(--pp-backdrop);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  line-height:1.5;
}
img{max-width:100%;display:block;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
a{color:var(--pp-turquoise-deep);text-decoration:none;}
input,select,textarea{font-family:inherit;font-size:15px;}
[data-lucide]{width:1em;height:1em;stroke-width:2;flex:none;}
::selection{background:var(--pp-mint);color:var(--pp-ink);}

h1,h2,h3,h4{margin:0;line-height:1.18;letter-spacing:-.02em;font-weight:800;}
p{margin:0;}
small{font-size:12px;}

.mono{font-family:var(--pp-mono);letter-spacing:-.01em;}
.muted{color:var(--pp-muted);}
.slate{color:var(--pp-slate);}
.center{text-align:center;}
.price{font-family:var(--pp-mono);font-weight:700;color:var(--pp-ink);}

/* Eyebrow / kicker */
.kicker{font-family:var(--pp-mono);font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--pp-turquoise-deep);font-weight:700;}

/* Layout helpers */
.row{display:flex;align-items:center;}
.row.gap{gap:10px;}
.col{display:flex;flex-direction:column;}
.between{justify-content:space-between;}
.wrap{flex-wrap:wrap;}
.grow{flex:1;}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
.stack>*+*{margin-top:var(--s,14px);}
.hide{display:none!important;}
[hidden]{display:none!important;}

/* Scrollbars suaves (web) */
.softscroll::-webkit-scrollbar{width:10px;height:10px;}
.softscroll::-webkit-scrollbar-thumb{background:#ced5da;border-radius:99px;border:3px solid transparent;background-clip:content-box;}
.noscroll::-webkit-scrollbar{width:0;height:0;}
.noscroll{scrollbar-width:none;}

/* Animaciones */
@keyframes pp-fade{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
@keyframes pp-pop{0%{transform:scale(.96);opacity:0;}100%{transform:scale(1);opacity:1;}}
@keyframes pp-pulse{0%,100%{transform:scale(1);}50%{transform:scale(1.06);}}
@keyframes pp-spin{to{transform:rotate(360deg);}}
@keyframes pp-bob{0%,100%{transform:translateY(0);}50%{transform:translateY(-7px);}}
@keyframes pp-dot{0%,80%,100%{transform:translateY(0);opacity:.4;}40%{transform:translateY(-4px);opacity:1;}}
.fade-in{animation:pp-fade .4s ease both;}
.pop-in{animation:pp-pop .35s cubic-bezier(.2,.8,.2,1) both;}
.bob{animation:pp-bob 3.4s ease-in-out infinite;}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;}
}
