/* =========================================================================
   Whatsoza — Base / reset / typography / utilities
   ========================================================================= */

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;} *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;}}
body{
  margin:0;font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);
  color:var(--c-body);background:var(--c-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img,svg,video{max-width:100%;height:auto;display:block;}
h1,h2,h3,h4,h5,h6{font-family:var(--font-display);color:var(--c-ink);line-height:var(--lh-tight);margin:0 0 .6em;font-weight:700;letter-spacing:-.02em;}
h1{font-size:var(--fs-h1);} h2{font-size:var(--fs-h2);} h3{font-size:var(--fs-h3);} h4{font-size:var(--fs-h4);}
p{margin:0 0 1rem;}
a{color:var(--c-primary-600);text-decoration:none;transition:color var(--t);}
a:hover{color:var(--c-primary-700);}
strong,b{font-weight:600;color:var(--c-ink);}
ul,ol{margin:0 0 1rem;padding-left:1.2rem;}
small{font-size:var(--fs-sm);}
hr{border:0;border-top:1px solid var(--c-border);margin:var(--s-6) 0;}
:focus-visible{outline:none;box-shadow:var(--ring);border-radius:4px;}
::selection{background:var(--c-primary-100);color:var(--c-ink);}

/* Layout primitives */
.container-wz{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:clamp(1rem,4vw,2rem);}
.section{padding-block:var(--section-y);}
.section--tight{padding-block:clamp(2.5rem,5vw,4rem);}
.section--surface{background:var(--c-surface);}
.section--surface-2{background:var(--c-surface-2);}
.section--dark{background:linear-gradient(160deg,var(--c-dark),var(--c-dark-2));color:var(--c-on-dark);}
.section--dark h1,.section--dark h2,.section--dark h3,.section--dark h4{color:#fff;}
.section--dark p{color:var(--c-on-dark-muted);}

/* Typography helpers */
.kicker{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-body);font-weight:600;font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--c-primary-600);}
.section--dark .kicker{color:var(--c-primary-200);}
.lead{font-size:var(--fs-lead);color:var(--c-body);line-height:1.6;}
.section--dark .lead{color:var(--c-on-dark-muted);}
.display{font-size:var(--fs-display);font-weight:800;line-height:1.05;letter-spacing:-.025em;}
.text-muted-wz{color:var(--c-muted);}
.text-balance{text-wrap:balance;}
.measure{max-width:60ch;} .measure-sm{max-width:46ch;} .measure-lg{max-width:72ch;}
.text-grad{background:linear-gradient(120deg,var(--c-primary),#16b3a0);-webkit-background-clip:text;background-clip:text;color:transparent;}

/* Icon sizing */
.wz-icon{width:24px;height:24px;flex:none;}
.wz-icon--sm{width:18px;height:18px;}
.wz-icon--lg{width:28px;height:28px;}

/* Visually hidden / skip link */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
.skip-link{position:absolute;left:1rem;top:-3rem;z-index:2000;background:var(--c-primary);color:#fff;padding:.6rem 1rem;border-radius:var(--r-sm);transition:top var(--t);}
.skip-link:focus{top:1rem;color:#fff;}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s cubic-bezier(.4,0,.2,1);}
.reveal.is-visible{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;}}
