    /* Reset básico */
    * { box-sizing: border-box; margin: 0; padding: 0; }
    body { font-family: 'gliker', sans-serif; color: #111; background: #ffffff; position: relative; overflow-x: hidden; }

    /* --- Degradado animado desde abajo --- */
    body::before {
      content: "";
      position: fixed;
      left: 0;
      bottom: 0;
      width: 100%;
      height: 0;
      background: linear-gradient(180deg, #ffffff 0%, #f5f5f5 30%, #000000 100%);
      z-index: -1;
      transition: height 1.8s ease;
    }
    body.gradient-on::before { height: 60vh; }

    /* Hero principal */
    .hero { width: 100%; min-height: 100vh; display: flex; flex-direction: column; justify-content: flex-start; align-items: center; gap: 2.5em; padding-top: 2em; }

    /* Logo animado */
    .stack { display: flex; justify-content: center; width: 100%; }
    @keyframes floatY { 0% { transform: translateY(-14px); } 50% { transform: translateY(14px); } 100% { transform: translateY(-14px); } }
    .logo { width: 17em; height: auto; display: block; animation: floatY 4s ease-in-out infinite; }

    /* Texto principal */
    .Q { text-align: center; font-size: 4em; margin-top: 1em; opacity: 0; transform: translateY(40px); transition: 0.9s ease; }
    .Qmark { font-family: 'arial'; font-weight: bolder; }

    /* Contenedor de ayudas */
    .helps {
      width: 100%;
      display: grid;
      justify-items: center;
      grid-template-columns: repeat(auto-fit, minmax(18em, 1fr));
      gap: 5em;
      margin-top: 5em;
      padding: 0 1em;
    }

    /* Secciones individuales */
    .help1, .help2, .help3 {
      width: 100%;
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      opacity: 0;
      transform: translateY(40px);
      transition: 0.7s ease;
    }

    .help1 h1, .help2 h1, .help3 h1 { padding: 1em; font-size: 2.5em; }
    .help1 p, .help2 p, .help3 p { font-size: 1.25em; margin-bottom: 2em; width: 80%; }

    /* Botones */
    .hbutton { padding: 1em; border-radius: 1em; background-color: #000; color: #fff; animation: floatB 5s ease-in-out infinite; transition: background-color 0.3s, color 0.3s, box-shadow 0.3s; cursor: pointer; }
    .hbutton:hover { background-color: #fff; color: #000; box-shadow: 0.1em 0.1em 1em #000; }
    @keyframes floatB { 0% { transform: translateY(0); } 50% { transform: translateY(-10px); } 100% { transform: translateY(0); } }

    /* Número de teléfono */
    .NP { position: relative; display: inline-block; }
    .NP h6 { font-weight: bolder; font-size: 1.5em; animation: floatB 5s ease-in-out infinite; }
    .NP h6:hover { color: #ffffff; text-shadow: 1px 1px 5px #000; }

    /* Copiar al portapapeles */
    .copy {
      position: absolute;
      top: 100%;
      left: 50%;
      transform: translateX(-50%) translateY(5px);
      background: #fff;
      color: #000;
      border-radius: 10px;
      padding: 0.4em 0.8em;
      box-shadow: 0px 0px 10px #d6d6d6;
      font-size: 0.9em;
      opacity: 0;
      visibility: hidden;
      transition: opacity 0.4s ease, transform 0.4s ease, visibility 0s linear 0.4s;
      cursor: pointer;
      white-space: nowrap;
      z-index: 10;
    }
    .NP:hover .copy { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); transition: opacity 0.4s ease, transform 0.4s ease, visibility 0s; }

    /* Modales */
    .modal-overlay { position: fixed; inset: 0; width: 100vw; height: 100vh; background-color: rgba(0,0,0,0.6); display: none; justify-content: center; align-items: center; z-index: 999; padding: 2em; overflow: auto; }
    .modal-overlay.active { display: flex; }
    .modal { background-color: #fff; border-radius: 2em; padding: 2.5em; width: 100%; max-width: 40em; display: flex; flex-direction: column; gap: 1.25em; box-shadow: 0 0 3em rgba(0,0,0,0.3); }

    /* Formularios */
    .contact-form { display: flex; flex-direction: column; gap: 1em; width: 100%; }
    .contact-form label { display: flex; flex-direction: column; gap: 0.4em; font-weight: bold; font-size: 1em; }
    .contact-form input, .contact-form textarea {
      width: 100%;
      padding: 1em;
      border-radius: 0.5em;
      font-size: 1em;
      font-family: 'gliker', sans-serif;
      resize: vertical;
      box-shadow: 0 0 0.6em rgba(0,0,0,0.08);
      border: 0.08em solid rgba(0,0,0,0.12);
      background: #fff;
    }
    .contact-form input:focus, .contact-form textarea:focus { box-shadow: 0 0 0.8em rgba(0,0,0,0.12); outline: none; }

    /* Botones del modal */
    .modal-buttons { display: flex; gap: 1em; justify-content: center; }
    .submit-btn, .close-btn { background-color: #000; color: #fff; border: none; border-radius: 0.8em; padding: 1em 2em; cursor: pointer; transition: all 0.3s ease-in-out; font-family: 'gliker', sans-serif; }
    .submit-btn:hover, .close-btn:hover { background-color: #fff; color: #000; box-shadow: 0 0 1em #000; }

    /* Responsive */
    @media (max-width: 1024px) {
      .helps { gap: 4em; }
      .help1 p, .help2 p, .help3 p { width: 90%; font-size: 1.15em; }
      .logo { width: 14em; }
      .Q { font-size: 3em; }
    }
    @media (max-width: 768px) {
      .helps { grid-template-columns: 1fr; gap: 3em; margin-top: 3em; padding: 0 2em; }
      .help1 h1, .help2 h1, .help3 h1 { font-size: 2em; }
      .help1 p, .help2 p, .help3 p { font-size: 1em; width: 100%; }
      .logo { width: 12em; margin-top: 2em; }
      .Q { font-size: 2.5em; }
    }
    @media (max-width: 480px) {
      .help1 h1, .help2 h1, .help3 h1 { font-size: 1.75em; }
      .help1 p, .help2 p, .help3 p { font-size: 0.95em; }
      .logo { width: 10em; }
      .Q { font-size: 2em; }
      .hbutton { padding: 0.8em; font-size: 0.95em; }
    }