Sachverhalt: Sachverhalt: A. Die 1964 geborene E._ ersuchte Anfang Juli 2001 die Invalidenversicherung um eine Rente. Nach Abklärungen lehnte die IV-Stelle des Kantons St. Gallen mit Verfügung vom 4. März 2003 und Einspracheentscheid vom 7. Mai 2003 das Leistungsbegehren ab. Der nach der gemischten Methode ermittelte Invaliditätsgrad betrug 15 %. A. Die 1964 geborene E._ ersuchte Anfang Juli 2001 die Invalidenversicherung um eine Rente. Nach Abklärungen lehnte die IV-Stelle des Kantons St. Gallen mit Verfügung vom 4. März 2003 und Einspracheentscheid vom 7. Mai 2003 das Leistungsbegehren ab. Der nach der gemischten Methode ermittelte Invaliditätsgrad betrug 15 %. B. In Gutheissung der Beschwerde der E._ hob das Versicherungsgericht des Kantons St. Gallen den Einspracheentscheid vom 7. Mai 2003 mit der Feststellung auf, es bestehe Anspruch auf eine Viertelsrente und im Härtefall auf eine halbe Invalidenrente ab dem von der IV-Stelle noch zu bestimmenden Leistungsbeginn (Entscheid vom 12. Februar 2004). B. In Gutheissung der Beschwerde der E._ hob das Versicherungsgericht des Kantons St. Gallen den Einspracheentscheid vom 7. Mai 2003 mit der Feststellung auf, es bestehe Anspruch auf eine Viertelsrente und im Härtefall auf eine halbe Invalidenrente ab dem von der IV-Stelle noch zu bestimmenden Leistungsbeginn (Entscheid vom 12. Februar 2004). C. Die IV-Stelle führt Verwaltungsgerichtsbeschwerde mit dem Rechtsbegehren, der kantonale Gerichtsentscheid sei aufzuheben. Das kantonale Gericht und E._ beantragen die Abweisung, das Bundesamt für Sozialversicherung die Gutheissung der Verwaltungsgerichtsbeschwerde. Das kantonale Gericht und E._ beantragen die Abweisung, das Bundesamt für Sozialversicherung die Gutheissung der Verwaltungsgerichtsbeschwerde. D. Am 13. Dezember 2005 hat das Eidgenössische Versicherungsgericht eine parteiöffentliche Verhandlung durchgeführt. 