Faits : Faits : A. X._ est propriétaire d'une parcelle à ..., comprenant une villa et une annexe. En 2001, elle a chargé un architecte de dresser des plans de transformation des bâtiments et d'entreprendre les démarches nécessaires à l'obtention d'un permis de construire. A l'époque, la propriétaire voulait surélever la villa et créer trois logements, soit deux dans le bâtiment principal et un dans l'annexe. L'autorisation de construire a été délivrée le 9 juillet 2001. X._ s'est alors adressée à l'entreprise A._ SA en vue de la réalisation des travaux de maçonnerie nécessaires à la création des trois logements. A._ SA a confié à Y._ le soin d'établir un devis pour ces travaux. Y._ exploite, sous la raison individuelle Z._, une entreprise spécialisée dans l'ingénierie et les conseils techniques du bâtiment, ainsi que dans l'organisation et la surveillance de travaux de construction. Selon devis du 1er octobre 2001, les travaux de béton armé et de maçonnerie devaient coûter environ 81'000 fr. B._, directeur de A._ SA, a soumis ce devis à X._. Il lui a également indiqué que le concours d'un ingénieur était nécessaire pour les calculs statiques concernant les dalles et les pylônes et, à cette fin, lui a présenté Y._. X._ a confié les travaux devisés à A._ SA. En date du 1er octobre 2001, elle a également conclu avec Y._ un contrat, qui se réfère au règlement SIA 102 concernant les prestations et honoraires des architectes, édition 1984; de la phase du projet à la phase finale, les prestations promises correspondaient à 89,5% des prestations ordinaires selon l'art. 3.6 du règlement SIA 102; les honoraires étaient fixés, de manière forfaitaire, à 20'000 fr., hors taxes. Alors que les travaux du gros oeuvre avaient déjà commencé, X._ a changé son projet, voulant désormais réaliser un studio et un duplex. Elle en a informé Y._ en décembre 2001. L'ingénieur a dressé de nouveaux plans d'exécution et de coordination des installations techniques. Le 8 février 2002, il a établi un devis général pour le nouveau projet, comportant des travaux pour 418'000 fr., dont 18'000 fr. d'honoraires d'architecte et de direction des travaux et 2'000 fr. d'honoraires d'ingénieur civil. Trois jours plus tard, à la demande de A._ SA, Y._ a devisé les travaux de béton armé et de maçonnerie, sur la base des nouveaux plans, à 145'000 fr. Peu de temps après, X._ a changé d'avis une nouvelle fois et opté pour un seul espace. Y._ a dressé les plans correspondants, qui comportaient notamment un rehaussement des combles et une modification de la toiture de l'annexe. Le 28 mars 2002, il a fait parvenir à X._ un nouveau devis général portant sur des travaux pour 490'000 fr., comprenant 28'000 fr. d'honoraires d'architecte et de direction des travaux, 2'000 fr. d'honoraires d'ingénieur civil ainsi qu'un poste de 10'000 fr. pour les «aménagements extérieurs». Une nouvelle demande d'autorisation de construire a été déposée. Elle a été refusée le 23 avril 2002. Y._ a alors modifié la pente de la toiture et le projet de rehausser les combles a été abandonné. L'autorisation de construire a été accordée en septembre 2002. Le 29 juillet 2002, Y._ a adressé à X._ une facture de 9'520 fr. en rapport avec l'exécution du contrat du 1er octobre 2001; ce montant représente le prix forfaitaire de 20'000 fr., plus la TVA par 1'520 fr., moins un acompte de 12'000 fr. X._ a payé la somme réclamée. Parallèlement aux travaux dans la villa et l'annexe, X._ a fait construire une piscine extérieure, dont Y._ avait dressé les plans et pour laquelle il avait établi, en date du 28 mars 2002, un devis comprenant des honoraires de 6'500 fr., sans TVA. Le 15 octobre 2002, l'ingénieur a fait parvenir à X._ une facture de 6'994 fr., TVA comprise, correspondant au devis du 28 mars 2002. Cette facture est restée impayée. Y._ a rencontré des difficultés avec X._. Le 20 mai 2003, il a mis fin à ses relations contractuelles avec la propriétaire et lui a adressé une facture, libellée comme suit: «A. Honoraires selon norme SIA 102 soit: Travaux selon devis général Fr. 445'500,00 Honoraires totaux = 20,00% de Fr. 445'500,00 Fr. 89'100,00 A.1 Phase du projet: - Projet définitif + estimation du coût de construction = 12,5% - Procédure demande d'autorisation de construire en complément = 1,5% - Etudes de détail = 5,0% - Devis général = 7,0% A.2 Phase de l'exécution: - Dessins définitifs d'exécution = 9,0% Total = 35,0% Soit honoraires = 35,00% de Fr. 89'100.- = Fr. 31'185,00 - Rabais 30% Fr. 9'355,50 Fr. 21'829,50 B. Autorisations complémentaires soit: - Surélévation de la toiture. Autorisation non aboutie 18 hr. à 120.- Fr. 2'160,00 - Changement des pentes de la toiture. Autorisation obtenue 18 hr. à 120.- Fr. 2'160,00 Total HT Fr. 26'149,50 T.V.A. 7,6% Fr. 1'987,35 Total TTC Fr. 28'136,85 Amende infligée par le DAEL à Z._ Fr. 1'000,00 Total Fr. 29'136,85» X._ n'a pas réglé cette facture. Le 6 octobre 2004, Y._ a introduit une poursuite contre X._. Celle-ci a formé opposition. Le 6 octobre 2004, Y._ a introduit une poursuite contre X._. Celle-ci a formé opposition. B. Le 29 décembre 2004, Y._ a assigné X._ en paiement de 6'994 fr. plus intérêts à 5% dès le 11 novembre 2002 et de 29'136 fr.85 plus intérêts à 5% dès le 20 juin 2003. Il a également conclu à la mainlevée de l'opposition. Par jugement du 4 mai 2006, le Tribunal de première instance du canton de Genève a débouté Y._ de toutes ses conclusions. Statuant le 20 avril 2007 sur appel du demandeur, la Chambre civile de la Cour de justice du canton de Genève a annulé le jugement de première instance, puis condamné X._ à payer à Y._ 6'994 fr. plus intérêts à 5% dès le 11 novembre 2002 et 25'976 fr.85 plus intérêts à 5% dès le 20 juin 2003; elle a également prononcé, à due concurrence, la mainlevée de l'opposition. En substance, la cour cantonale a jugé que, d'après la volonté réelle et concordante des parties lors de la conclusion du contrat du 1er octobre 2001, le demandeur devait uniquement assurer les calculs techniques et la surveillance des travaux de béton armé et de maçonnerie confiés à A._ SA selon devis du 1er octobre 2001; le montant forfaitaire de 20'000 fr., déjà payé, correspondait donc à ces prestations-là, qui avaient été exécutées. Les juges genevois ont ensuite admis que la facture litigieuse du 20 mai 2003 concernait les prestations du demandeur «dans le cadre de la modification du projet de construction (...) concernant l'aménagement intérieur, d'une part, et la conception de la toiture, d'autre part»; ces prestations s'ajoutaient à celles prévues dans le contrat du 1er octobre 2001 et devaient être rémunérées conformément à la facture litigieuse, la défenderesse n'ayant jamais contesté le mode de calcul des honoraires appliqué par l'ingénieur. Du montant réclamé par le demandeur, la cour cantonale a toutefois déduit 2'160 fr. correspondant aux honoraires pour la première demande - non aboutie - de surélévation de la toiture ainsi que 1'000 fr. représentant l'amende administrative infligée au demandeur. Enfin, la Chambre civile a admis que les prestations de l'ingénieur en rapport avec la piscine n'étaient pas comprises dans le contrat du 1er octobre 2001 et que les honoraires réclamés dans la facture du 15 octobre 2002 n'avaient pas été englobés dans la facture du 20 mai 2003, de sorte que la demanderesse était débitrice du montant de 6'994 fr., correspondant au devis séparé qui lui avait été présenté. Statuant le 20 avril 2007 sur appel du demandeur, la Chambre civile de la Cour de justice du canton de Genève a annulé le jugement de première instance, puis condamné X._ à payer à Y._ 6'994 fr. plus intérêts à 5% dès le 11 novembre 2002 et 25'976 fr.85 plus intérêts à 5% dès le 20 juin 2003; elle a également prononcé, à due concurrence, la mainlevée de l'opposition. En substance, la cour cantonale a jugé que, d'après la volonté réelle et concordante des parties lors de la conclusion du contrat du 1er octobre 2001, le demandeur devait uniquement assurer les calculs techniques et la surveillance des travaux de béton armé et de maçonnerie confiés à A._ SA selon devis du 1er octobre 2001; le montant forfaitaire de 20'000 fr., déjà payé, correspondait donc à ces prestations-là, qui avaient été exécutées. Les juges genevois ont ensuite admis que la facture litigieuse du 20 mai 2003 concernait les prestations du demandeur «dans le cadre de la modification du projet de construction (...) concernant l'aménagement intérieur, d'une part, et la conception de la toiture, d'autre part»; ces prestations s'ajoutaient à celles prévues dans le contrat du 1er octobre 2001 et devaient être rémunérées conformément à la facture litigieuse, la défenderesse n'ayant jamais contesté le mode de calcul des honoraires appliqué par l'ingénieur. Du montant réclamé par le demandeur, la cour cantonale a toutefois déduit 2'160 fr. correspondant aux honoraires pour la première demande - non aboutie - de surélévation de la toiture ainsi que 1'000 fr. représentant l'amende administrative infligée au demandeur. Enfin, la Chambre civile a admis que les prestations de l'ingénieur en rapport avec la piscine n'étaient pas comprises dans le contrat du 1er octobre 2001 et que les honoraires réclamés dans la facture du 15 octobre 2002 n'avaient pas été englobés dans la facture du 20 mai 2003, de sorte que la demanderesse était débitrice du montant de 6'994 fr., correspondant au devis séparé qui lui avait été présenté. C. X._ interjette un recours en matière civile. Elle conclut, principalement, au déboutement de Y._ de toutes ses conclusions et, subsidiairement, au renvoi de l'affaire à l'autorité cantonale. Y._ propose le rejet du recours. Pour sa part, la cour cantonale se réfère aux considérants de sa décision.