:root {
  --coral: #ef4d50;
  --coral-suave: rgba(239, 77, 80, 0.07);
  --cyan: #38b6ff;
  --cyan-suave: rgba(56, 182, 255, 0.08);
  --mostaza: #fecf65;
  --mostaza-dark: #e8a417;
  --morado: #9b59b6;
  --blanco: #ffffff;
  --fondo: #fff8f0;
  --texto: #222222;
  --texto-suave: #555555;
  --fuente-titulo: 'Nunito', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --fuente-cuerpo: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --radio: 16px;
  --radio-sm: 12px;
  --sombra-coral: 0 8px 30px rgba(239, 77, 80, 0.18);
  --sombra-cyan: 0 8px 30px rgba(56, 182, 255, 0.18);
  --sombra-suave: 0 4px 18px rgba(34, 34, 34, 0.08);
  --transicion: 0.35s cubic-bezier(0.2, 0.9, 0.3, 1);
}

*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 90px;
}

body {
  font-family: var(--fuente-cuerpo);
  color: var(--texto);
  background: var(--fondo);
  line-height: 1.6;
  overflow-x: hidden;
}

h1, h2, h3, h4 {
  font-family: var(--fuente-titulo);
  line-height: 1.15;
  font-weight: 900;
}

h1 { font-size: clamp(2.1rem, 5.5vw, 3.6rem); }
h2 { font-size: clamp(1.6rem, 3.8vw, 2.5rem); margin-bottom: 0.6em; }
h3 { font-size: clamp(1.05rem, 2vw, 1.3rem); }

em {
  font-style: normal;
}
em.coral { color: var(--coral); }
em.cyan { color: var(--cyan); }

img { max-width: 100%; display: block; }

a { color: inherit; text-decoration: none; }

ul { list-style: none; }

button, input {
  font: inherit;
  border: none;
}

button { cursor: pointer; background: none; }

input {
  background: var(--blanco);
  border: 2px solid rgba(34, 34, 34, 0.12);
  border-radius: var(--radio-sm);
  padding: 0.8em 1em;
  transition: border-color var(--transicion), box-shadow var(--transicion);
}

input:focus {
  outline: none;
  border-color: var(--cyan);
  box-shadow: 0 0 0 4px var(--cyan-suave);
}
