diff --git a/curriculum/challenges/_meta/basic-css-cafe-menu/meta.json b/curriculum/challenges/_meta/basic-css-cafe-menu/meta.json
index 52dd938f71..e2e4965cf9 100644
--- a/curriculum/challenges/_meta/basic-css-cafe-menu/meta.json
+++ b/curriculum/challenges/_meta/basic-css-cafe-menu/meta.json
@@ -223,163 +223,159 @@
"Part 53"
],
[
- "5f3ef6e0086dc80481f8cb03",
+ "5f3ef6e0eaa7da26e3d34d78",
"Part 54"
],
[
- "5f3ef6e0eaa7da26e3d34d78",
+ "5f3ef6e050279c7a4a7101d3",
"Part 55"
],
[
- "5f3ef6e050279c7a4a7101d3",
+ "5f3ef6e04559b939080db057",
"Part 56"
],
[
- "5f3ef6e04559b939080db057",
+ "5f3ef6e03d719d5ac4738993",
"Part 57"
],
[
- "5f3ef6e03d719d5ac4738993",
+ "5f3ef6e05473f91f948724ab",
"Part 58"
],
[
- "5f3ef6e05473f91f948724ab",
+ "5f3ef6e056bdde6ae6892ba2",
"Part 59"
],
[
- "5f3ef6e056bdde6ae6892ba2",
+ "5f3ef6e0e9629bad967cd71e",
"Part 60"
],
[
- "5f3ef6e0e9629bad967cd71e",
+ "5f3ef6e06d34faac0447fc44",
"Part 61"
],
[
- "5f3ef6e06d34faac0447fc44",
+ "5f3ef6e087d56ed3ffdc36be",
"Part 62"
],
[
- "5f3ef6e087d56ed3ffdc36be",
+ "5f3ef6e0f8c230bdd2349716",
"Part 63"
],
[
- "5f3ef6e0f8c230bdd2349716",
+ "5f3ef6e07276f782bb46b93d",
"Part 64"
],
[
- "5f3ef6e07276f782bb46b93d",
+ "5f3ef6e0a81099d9a697b550",
"Part 65"
],
[
- "5f3ef6e0a81099d9a697b550",
+ "5f3ef6e0b431cc215bb16f55",
"Part 66"
],
[
- "5f3ef6e0b431cc215bb16f55",
+ "5f3ef6e01f288a026d709587",
"Part 67"
],
[
- "5f3ef6e01f288a026d709587",
+ "5f3f26fa39591db45e5cd7a0",
"Part 68"
],
[
- "5f3f26fa39591db45e5cd7a0",
+ "5f459225127805351a6ad057",
"Part 69"
],
[
- "5f459225127805351a6ad057",
+ "5f459a7ceb8b5c446656d88b",
"Part 70"
],
[
- "5f459a7ceb8b5c446656d88b",
+ "5f459cf202c2a3472fae6a9f",
"Part 71"
],
[
- "5f459cf202c2a3472fae6a9f",
+ "5f459fd48bdc98491ca6d1a3",
"Part 72"
],
[
- "5f459fd48bdc98491ca6d1a3",
+ "5f45a05977e2fa49d9119437",
"Part 73"
],
[
- "5f45a05977e2fa49d9119437",
+ "5f45a276c093334f0f6e9df4",
"Part 74"
],
[
- "5f45a276c093334f0f6e9df4",
+ "5f45a5a7c49a8251f0bdb527",
"Part 75"
],
[
- "5f45a5a7c49a8251f0bdb527",
+ "5f46fc57528aa1c4b5ea7c2e",
"Part 76"
],
[
- "5f46fc57528aa1c4b5ea7c2e",
+ "5f4701b942c824109626c3d8",
"Part 77"
],
[
- "5f4701b942c824109626c3d8",
+ "5f46ede1ff8fec5ba656b44c",
"Part 78"
],
[
- "5f46ede1ff8fec5ba656b44c",
+ "5f45a66d4a2b0453301e5a26",
"Part 79"
],
[
- "5f45a66d4a2b0453301e5a26",
+ "5f45b0731d39e15d54df4dfc",
"Part 80"
],
[
- "5f45b0731d39e15d54df4dfc",
+ "5f45b25e7ec2405f166b9de1",
"Part 81"
],
[
- "5f45b25e7ec2405f166b9de1",
+ "5f45b3c93c027860d9298dbd",
"Part 82"
],
[
- "5f45b3c93c027860d9298dbd",
+ "5f45b45d099f3e621fbbb256",
"Part 83"
],
[
- "5f45b45d099f3e621fbbb256",
+ "5f45b4c81cea7763550e40df",
"Part 84"
],
[
- "5f45b4c81cea7763550e40df",
+ "5f45b715301bbf667badc04a",
"Part 85"
],
[
- "5f45b715301bbf667badc04a",
+ "5f46e270702a8456a664f0df",
"Part 86"
],
[
- "5f46e270702a8456a664f0df",
+ "5f46e36e745ead58487aabf2",
"Part 87"
],
[
- "5f46e36e745ead58487aabf2",
+ "5f46e7a4750dd05b5a673920",
"Part 88"
],
[
- "5f46e7a4750dd05b5a673920",
+ "5f46e8284aae155c83015dee",
"Part 89"
],
[
- "5f46e8284aae155c83015dee",
+ "5f475bb508746c16c9431d42",
"Part 90"
],
[
- "5f475bb508746c16c9431d42",
+ "5f475e1c7f71a61d913836c6",
"Part 91"
],
- [
- "5f475e1c7f71a61d913836c6",
- "Part 92"
- ],
[
"5f47fe7e31980053a8d4403b",
- "Part 93"
+ "Part 92"
]
]}
diff --git a/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-001.md b/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-001.md
index d5ed25087c..cf1bfa7b34 100644
--- a/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-001.md
+++ b/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-001.md
@@ -7,16 +7,28 @@ dashedName: part-1
# --description--
-As you learned in the last few steps of the Cat Photo App, there is a basic structure need to start building your web page.
+As you learned in the last few steps of the Cat Photo App, there is a basic structure needed to start building your web page.
-Add the `` and an `html` element.
+Add the `` tag, and an `html` element.
# --hints--
-Test 1
+You should have the `DOCTYPE` declaration.
```js
+assert(code.match(//i));
+```
+You should have an opening `` tag.
+
+```js
+assert(code.match(//i));
+```
+
+You should have a closing `` tag. Remember that closing tags have a `/` following the opening `<` bracket.
+
+```js
+assert(code.match(/<\/html>/i));
```
# --seed--
@@ -27,5 +39,5 @@ Test 1
--fcc-editable-region--
--fcc-editable-region--
-```
+```
diff --git a/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-002.md b/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-002.md
index f6189d4ec1..1b96ad27c5 100644
--- a/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-002.md
+++ b/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-002.md
@@ -11,10 +11,40 @@ Add a `head` element within the `html` element, so you can add a `title` element
# --hints--
-Test 1
+You should have an opening `
` tag.
```js
+assert(code.match(//i));
+```
+You should have a closing `` tag.
+
+```js
+assert(code.match(//i));
+```
+
+You should have an opening `` tag.
+
+```js
+assert(code.match(//i));
+```
+
+You should have a closing `` tag.
+
+```js
+assert(code.match(/<\/title>/i));
+```
+
+Your `` element should be nested in your `` element.
+
+```js
+assert(code.match(/\s*.*<\/title>\s*<\/head>/i));
+```
+
+Your `` element should have the text `Camper Cafe Menu`. You may need to check your spelling.
+
+```js
+assert(code.match(/camper\scafe\smenu<\/title>/i));
```
# --seed--
@@ -29,4 +59,3 @@ Test 1
--fcc-editable-region--
```
-
diff --git a/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-003.md b/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-003.md
index e7a35142f5..9c15fc8ea3 100644
--- a/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-003.md
+++ b/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-003.md
@@ -9,14 +9,26 @@ dashedName: part-3
The `title` is one of several elements that provide extra information not visible on the web page, but could be useful for search engines or how the page gets displayed.
-Inside the `head` element, nest a `meta` element with an attribute named `charset` set to the value `utf-8` to tell the browser how to encode characters for the page. Note tha `meta` elements are self-closing.
+Inside the `head` element, nest a `meta` element with an attribute named `charset` set to the value `utf-8` to tell the browser how to encode characters for the page. Note that `meta` elements are self-closing.
# --hints--
-Test 1
+You should have a `meta` tag.
```js
+assert(code.match(//i));
+```
+Your `meta` tag should have a `charset` attribute.
+
+```js
+assert(code.match(/
```
-
diff --git a/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-004.md b/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-004.md
index 3d6e4b3e5c..a292209bd8 100644
--- a/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-004.md
+++ b/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-004.md
@@ -11,10 +11,29 @@ To prepare to create some actual content, add a `body` element below the `head`
# --hints--
-Test 1
+You should have an opening `` tag.
```js
+assert(code.match(//i));
+```
+You should have a closing `` tag.
+
+```js
+assert(code.match(/<\/body>/i));
+```
+
+You should not change your `head` element. Make sure you did not delete your closing tag.
+
+```js
+assert(code.match(//i));
+assert(code.match(/<\/head>/i));
+```
+
+Your `body` element should come after your `head` element.
+
+```js
+assert(code.match(/<\/head>[.\n\s]*/im));
```
# --seed--
diff --git a/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-005.md b/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-005.md
index 901da74f3c..0267635ef0 100644
--- a/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-005.md
+++ b/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-005.md
@@ -7,14 +7,38 @@ dashedName: part-5
# --description--
-The name of the cafe is `Camper Cafe`. Add an `h1` element with the name of the cafe in capitalized letters to make it stand out.
+The name of the cafe is `CAMPER CAFE`. Add an `h1` element within your `body` element. Give it the name of the cafe in capitalized letters to make it stand out.
# --hints--
-Test 1
+You should have an opening `` tag.
```js
+assert(code.match(//i));
+```
+You should have a closing `
` tag.
+
+```js
+assert(code.match(/<\/h1>/i));
+```
+
+You should not change your existing `body` element.
+
+```js
+assert($('body').length === 1);
+```
+
+Your `h1` element should be nested in your `body` element.
+
+```js
+assert($('h1')[0].parentElement.tagName === "BODY");
+```
+
+Your `h1` element should have the text `CAMPER CAFE`.
+
+```js
+assert(code.match(/CAMPER CAFE<\/h1>/));
```
# --seed--
@@ -34,4 +58,3 @@ Test 1
--fcc-editable-region--
```
-
diff --git a/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-006.md b/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-006.md
index 80ca8f7387..2f5945b1fc 100644
--- a/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-006.md
+++ b/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-006.md
@@ -11,10 +11,34 @@ To let visitors know the cafe was founded in 2020, add a `p` element below the `
# --hints--
-Test 1
+You should have an opening `
` tag.
```js
+assert(code.match(/
/i));
+```
+You should have a closing `
` tag.
+
+```js
+assert(code.match(/<\/p>/i));
+```
+
+You should not change your existing `h1` element. Make sure you did not delete the closing tag.
+
+```js
+assert($('h1').length === 1);
+```
+
+Your `p` element should be below your `h1` element.
+
+```js
+assert($('p')[0].previousElementSibling.tagName === 'H1');
+```
+
+Your `p` element should have the text `Est. 2020`.
+
+```js
+assert(code.match(/Est. 2020<\/p>/i));
```
# --seed--
diff --git a/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-007.md b/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-007.md
index 30daff0dcb..e38f371ed1 100644
--- a/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-007.md
+++ b/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-007.md
@@ -11,10 +11,30 @@ Since the `p` element added in the previous step provides supplemental informati
# --hints--
-Test 1
+You should have an opening `` tag.
```js
+assert(code.match(//i));
+```
+You should have a closing `` tag.
+
+```js
+assert(code.match(/<\/header>/i));
+```
+
+Your `h1` element should be nested in your `header` element.
+
+```js
+const header = document.querySelectorAll('header')[0];
+assert(header.children[0].tagName === 'H1');
+```
+
+Your `p` element should be nested in your `header` element.
+
+```js
+const header = document.querySelectorAll('header')[0];
+assert(header.children[1].tagName === "P");
```
# --seed--
diff --git a/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-008.md b/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-008.md
index add3bf4fa2..357ce84cec 100644
--- a/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-008.md
+++ b/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-008.md
@@ -7,14 +7,33 @@ dashedName: part-8
# --description--
-It's time to add some menu content. Add a `main` element below the existing `header` element. It will eventually contain pricing information about coffees and desserts offered by the cafe.
+It's time to add some menu content. Add a `main` element below the existing `header` element. It will eventually contain pricing information about coffee and desserts offered by the cafe.
# --hints--
-Test 1
+Your code should have an opening `` tag.
```js
+assert(code.match(//i));
+```
+Your code should have a closing `` tag.
+
+```js
+assert(code.match(/<\/main>/i));
+```
+
+You should not change your `header` element. Make sure you don't accidentally delete your closing tag.
+
+```js
+assert($('header').length === 1);
+```
+
+Your `main` tag should come after your `header` tag.
+
+```js
+const main = document.querySelectorAll('main')[0];
+assert(main.previousElementSibling.tagName === 'HEADER');
```
# --seed--
@@ -38,4 +57,3 @@ Test 1
```
-
diff --git a/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-009.md b/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-009.md
index 7eb5da85fc..4eb0ee6325 100644
--- a/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-009.md
+++ b/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-009.md
@@ -11,10 +11,29 @@ There will be two sections on the menu, one for coffees and one for desserts. Ad
# --hints--
-Test 1
+You should have an opening `` tag.
```js
+assert(code.match(//i));
+```
+You should have a closing `` tag.
+
+```js
+assert(code.match(/<\/section\s*>/i));
+```
+
+You should not change your existing `main` element. Make sure you didn't delete the closing tag.
+
+```js
+assert($('main').length === 1);
+```
+
+Your `section` element should be within your `main` element.
+
+```js
+const main = document.querySelectorAll('main')?.[0];
+assert(main.children[0].tagName === 'SECTION');
```
# --seed--
@@ -40,4 +59,3 @@ Test 1
```
-
diff --git a/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-010.md b/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-010.md
index d07bbbede0..a5725d7428 100644
--- a/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-010.md
+++ b/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-010.md
@@ -7,14 +7,40 @@ dashedName: part-10
# --description--
-Create an `h2` element in the `section` element and give it the text `Coffees`.
+Create an `h2` element in the `section` element and give it the text `Coffee`.
# --hints--
-Test 1
+You should have an opening `` tag.
```js
+assert(code.match(//i));
+```
+You should have a closing `
` tag.
+
+```js
+assert(code.match(/<\/h2\s*>/i));
+```
+
+You should not change your existing `section` element. Make sure you did not delete the closing tag.
+
+```js
+assert($('section').length === 1);
+```
+
+Your `h2` element should be within your `section` element.
+
+```js
+const h2 = document.querySelector('h2');
+assert(h2.parentElement.tagName === 'SECTION');
+```
+
+Your `h2` element should have the text `Coffee`.
+
+```js
+const h2 = document.querySelector('h2');
+assert(h2.innerText === 'Coffee');
```
# --seed--
@@ -42,4 +68,3 @@ Test 1
```
-
diff --git a/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-011.md b/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-011.md
index b549bd127a..88e2bd4721 100644
--- a/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-011.md
+++ b/curriculum/challenges/english/01-responsive-web-design/basic-css-cafe-menu/part-011.md
@@ -11,10 +11,22 @@ Up until now, you have been limited regarding the presentation and appearance of
# --hints--
-Test 1
+Your code should have an opening `` tag.
+
+```js
+assert(code.match(/<\/style\s*>/));
+```
+
+Your `style` element should be nested in your `head` element.
+
+```js
+assert(code.match(/[\w\W\s]*