/* ============================================================
   BASE: reset, tipografía, utilidades, botones, revelado
   KW Services RD — hoja de estilos separada
============================================================ */

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{
  font-family:var(--body);background:var(--fondo);color:var(--tinta);
  line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--cian);outline-offset:3px;border-radius:6px}
::selection{background:rgba(87,182,214,.3)}

.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--pad)}

h1,h2,h3,h4{font-family:var(--display);line-height:1.1;letter-spacing:-.025em;font-weight:700;text-wrap:balance}
h2{font-size:clamp(1.9rem,4.2vw,2.9rem)}
h3{font-size:1.14rem;font-weight:600}

.eyebrow{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--marino);font-weight:500;
}
.eyebrow::before{content:"";width:22px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--verde-suave),var(--cian))}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  padding:.9rem 1.7rem;border-radius:999px;border:2px solid transparent;
  font-weight:700;font-size:.95rem;cursor:pointer;white-space:nowrap;
  transition:transform .16s ease, box-shadow .2s ease, background .2s ease, border-color .2s;
}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn--verde{background:var(--accion);color:#fff;box-shadow:0 10px 24px -10px rgba(46,145,96,.55)}
.btn--verde:hover{background:#27804F;box-shadow:0 16px 30px -10px rgba(46,145,96,.6)}
.btn--linea{border-color:var(--linea-fuerte);background:var(--papel);color:var(--tinta)}
.btn--linea:hover{border-color:var(--marino);color:var(--marino)}
.btn--blanco{background:#fff;color:var(--tinta)}
.btn--fantasma{border-color:rgba(255,255,255,.4);color:#fff}
.btn--fantasma:hover{background:rgba(255,255,255,.1)}

/* ---------- Revelado al hacer scroll ---------- */
.rev{opacity:0;transform:translateY(22px);transition:opacity .6s ease, transform .6s ease}
.rev.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rev{opacity:1;transform:none}}


[hidden]{display:none!important}
/* ============================================================ SECCIONES */
section{padding-block:clamp(3.6rem,7.5vw,6rem)}
.cab{max-width:58ch;margin-bottom:clamp(2rem,4vw,3rem)}
.cab h2{margin:.7rem 0 .6rem}
.cab p{color:var(--gris);font-size:1.03rem}
.cab--centro{margin-inline:auto;text-align:center}
.cab--centro .eyebrow{justify-content:center}
.cab--centro .eyebrow::before{display:none}

