diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68e97fe79367ad7b5dd6c9cd.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68e97fe79367ad7b5dd6c9cd.md
index 283cd812598..fb0f801dc32 100644
--- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68e97fe79367ad7b5dd6c9cd.md
+++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68e97fe79367ad7b5dd6c9cd.md
@@ -1,16 +1,13 @@
---
id: 68e97fe79367ad7b5dd6c9cd
-title: Step 1
+title: Step 4
challengeType: 0
-dashedName: step-1
-demoType: onLoad
+dashedName: step-4
---
# --description--
-In this workshop, you will build a bookstore page by creating book cards that display information about different books. You'll practice organizing content using `div` elements, classes, and IDs.
-
-Start by adding an `h1` element with the text `XYZ Bookstore`.
+In this step add an `h1` element with the text `XYZ Bookstore`.
# --hints--
@@ -26,12 +23,28 @@ Your `h1` element's text should be `XYZ Bookstore`. Double check for spelling or
assert.equal(document.querySelector('h1')?.innerText.trim(), 'XYZ Bookstore');
```
+Your `h1` element should be inside the `body` element.
+
+```js
+assert.match(code, /
[\s\S]*[\s\S]*<\/h1>[\s\S]*<\/body>/i);
+```
+
# --seed--
## --seed-contents--
```html
+
+
+
+
+
+ XYZ Bookstore Page
+
--fcc-editable-region--
+
+
--fcc-editable-region--
+
```
diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ebdbacdd3fa474132cc975.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ebdbacdd3fa474132cc975.md
index d92134793e8..7e085c41a21 100644
--- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ebdbacdd3fa474132cc975.md
+++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ebdbacdd3fa474132cc975.md
@@ -1,8 +1,8 @@
---
id: 68ebdbacdd3fa474132cc975
-title: Step 2
+title: Step 5
challengeType: 0
-dashedName: step-2
+dashedName: step-5
---
# --description--
@@ -34,8 +34,20 @@ assert.exists(document.querySelector('h1 + p'));
## --seed-contents--
```html
---fcc-editable-region--
-XYZ Bookstore
+
+
+
+
+
+ XYZ Bookstore Page
+
---fcc-editable-region--
+
+ XYZ Bookstore
+ --fcc-editable-region--
+
+ --fcc-editable-region--
+
+
+
```
diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec6cd5b7e8f5a8f7319e32.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec6cd5b7e8f5a8f7319e32.md
index 3d612d9fe2d..78800c03391 100644
--- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec6cd5b7e8f5a8f7319e32.md
+++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec6cd5b7e8f5a8f7319e32.md
@@ -1,8 +1,8 @@
---
id: 68ec6cd5b7e8f5a8f7319e32
-title: Step 3
+title: Step 6
challengeType: 0
-dashedName: step-3
+dashedName: step-6
---
# --description--
@@ -30,9 +30,21 @@ assert.exists(document.querySelector('p + div'));
## --seed-contents--
```html
+
+
+
+
+
+ XYZ Bookstore Page
+
+
+
+ XYZ Bookstore
+ Browse our collection of amazing books!
--fcc-editable-region--
-XYZ Bookstore
-Browse our collection of amazing books!
--fcc-editable-region--
+
+
+
```
diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec6d9a315221aa31e54816.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec6d9a315221aa31e54816.md
index 8f8ce217a2a..0ee1e8bc5a3 100644
--- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec6d9a315221aa31e54816.md
+++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec6d9a315221aa31e54816.md
@@ -1,8 +1,8 @@
---
id: 68ec6d9a315221aa31e54816
-title: Step 4
+title: Step 7
challengeType: 0
-dashedName: step-4
+dashedName: step-7
---
# --description--
@@ -36,11 +36,23 @@ assert.equal(document.querySelector('div')?.className, 'card-container');
## --seed-contents--
```html
+
+
+
+
+
+ XYZ Bookstore Page
+
+
+
+ XYZ Bookstore
+ Browse our collection of amazing books!
+--fcc-editable-region--
+
+
+
--fcc-editable-region--
-XYZ Bookstore
-Browse our collection of amazing books!
-
-
-
---fcc-editable-region--
+
+
+
```
diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec6e8d0caee3afaaf142ef.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec6e8d0caee3afaaf142ef.md
index d55ea3624f2..6222fd5b1ab 100644
--- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec6e8d0caee3afaaf142ef.md
+++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec6e8d0caee3afaaf142ef.md
@@ -1,8 +1,8 @@
---
id: 68ec6e8d0caee3afaaf142ef
-title: Step 5
+title: Step 8
challengeType: 0
-dashedName: step-5
+dashedName: step-8
---
# --description--
@@ -36,11 +36,23 @@ assert.exists(document.querySelector('.card-container div.card'));
## --seed-contents--
```html
---fcc-editable-region--
-XYZ Bookstore
-Browse our collection of amazing books!
-
+
+
+
+
+
+
XYZ Bookstore Page
+
-
+
+ XYZ Bookstore
+ Browse our collection of amazing books!
+ --fcc-editable-region--
+
+
+
--fcc-editable-region--
+
+
+
```
diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec9332a9b5b2b32487bd00.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec9332a9b5b2b32487bd00.md
index cc92d0d7fd3..8a8e2dd99c2 100644
--- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec9332a9b5b2b32487bd00.md
+++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec9332a9b5b2b32487bd00.md
@@ -1,8 +1,8 @@
---
id: 68ec9332a9b5b2b32487bd00
-title: Step 6
+title: Step 9
challengeType: 0
-dashedName: step-6
+dashedName: step-9
---
# --description--
@@ -38,13 +38,25 @@ assert.equal(document.querySelector('.card')?.id, 'sally-adventure-book');
## --seed-contents--
```html
-XYZ Bookstore
-Browse our collection of amazing books!
-
- --fcc-editable-region--
-
+
+
+
+
+
+
XYZ Bookstore Page
+
-
+
+
XYZ Bookstore
+
Browse our collection of amazing books!
+
--fcc-editable-region--
-
+
+
+
+ --fcc-editable-region--
+
+
+
+
```
diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec98b38d83a3c28dd30efe.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec98b38d83a3c28dd30efe.md
index e170859d159..a6386c300f5 100644
--- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec98b38d83a3c28dd30efe.md
+++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec98b38d83a3c28dd30efe.md
@@ -1,8 +1,8 @@
---
id: 68ec98b38d83a3c28dd30efe
-title: Step 7
+title: Step 10
challengeType: 0
-dashedName: step-7
+dashedName: step-10
---
# --description--
@@ -28,13 +28,25 @@ assert.equal(document.querySelector('.card h2')?.innerText.trim(), "Sally's SciF
## --seed-contents--
```html
-XYZ Bookstore
-Browse our collection of amazing books!
-
- --fcc-editable-region--
-
+
+
+
+
+
+
XYZ Bookstore Page
+
-
+
+
XYZ Bookstore
+
Browse our collection of amazing books!
+
--fcc-editable-region--
-
+
+
+
+ --fcc-editable-region--
+
+
+
+
```
diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec99e478211dc578699944.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec99e478211dc578699944.md
index 4de4d047a17..90e6ada55b1 100644
--- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec99e478211dc578699944.md
+++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec99e478211dc578699944.md
@@ -1,8 +1,8 @@
---
id: 68ec99e478211dc578699944
-title: Step 8
+title: Step 11
challengeType: 0
-dashedName: step-8
+dashedName: step-11
---
# --description--
@@ -38,14 +38,25 @@ assert.exists(document.querySelector('.card h2 + p'));
## --seed-contents--
```html
-XYZ Bookstore
-Browse our collection of amazing books!
-
- --fcc-editable-region--
-
-
Sally's SciFi Adventure
+
+
+
+
+ XYZ Bookstore Page
+
-
+
+
XYZ Bookstore
+
Browse our collection of amazing books!
+
--fcc-editable-region--
-
+
+
Sally's SciFi Adventure
+
+
+ --fcc-editable-region--
+
+
+
+
```
diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca11e99e3c5c894ca9d69.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca11e99e3c5c894ca9d69.md
index c1e854ecade..4b53eaa7554 100644
--- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca11e99e3c5c894ca9d69.md
+++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca11e99e3c5c894ca9d69.md
@@ -1,8 +1,8 @@
---
id: 68eca11e99e3c5c894ca9d69
-title: Step 9
+title: Step 12
challengeType: 0
-dashedName: step-9
+dashedName: step-12
---
# --description--
@@ -42,15 +42,26 @@ assert.equal(document.querySelector('.card button')?.innerText.trim(), 'Buy Now'
## --seed-contents--
```html
-XYZ Bookstore
-Browse our collection of amazing books!
-
- --fcc-editable-region--
-
-
Sally's SciFi Adventure
-
This is an epic story of Sally and her dog Rex as they navigate through other worlds.
+
+
+
+
+
XYZ Bookstore Page
+
-
+
+
XYZ Bookstore
+
Browse our collection of amazing books!
+
--fcc-editable-region--
-
+
+
Sally's SciFi Adventure
+
This is an epic story of Sally and her dog Rex as they navigate through other worlds.
+
+
+ --fcc-editable-region--
+
+
+
+
```
diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca2a795b333ca5fee30a8.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca2a795b333ca5fee30a8.md
index edec803d0b3..93a44b25c27 100644
--- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca2a795b333ca5fee30a8.md
+++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca2a795b333ca5fee30a8.md
@@ -1,8 +1,8 @@
---
id: 68eca2a795b333ca5fee30a8
-title: Step 10
+title: Step 13
challengeType: 0
-dashedName: step-10
+dashedName: step-13
---
# --description--
@@ -34,16 +34,27 @@ assert.exists(document.querySelector('.card + .card'));
## --seed-contents--
```html
-XYZ Bookstore
-Browse our collection of amazing books!
-
+
+
+
+
+
XYZ Bookstore Page
+
+
+
+
XYZ Bookstore
+
Browse our collection of amazing books!
+
--fcc-editable-region--
-
-
Sally's SciFi Adventure
-
This is an epic story of Sally and her dog Rex as they navigate through other worlds.
-
Buy Now
-
+
+
Sally's SciFi Adventure
+
This is an epic story of Sally and her dog Rex as they navigate through other worlds.
+
Buy Now
+
--fcc-editable-region--
-
+
+
+
+
```
diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca3cfeebef2cd8cc5f814.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca3cfeebef2cd8cc5f814.md
index 3554ea7b1eb..bb3e4c0ef12 100644
--- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca3cfeebef2cd8cc5f814.md
+++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca3cfeebef2cd8cc5f814.md
@@ -1,8 +1,8 @@
---
id: 68eca3cfeebef2cd8cc5f814
-title: Step 11
+title: Step 14
challengeType: 0
-dashedName: step-11
+dashedName: step-14
---
# --description--
@@ -30,18 +30,29 @@ assert.equal(cards[1]?.id, 'dave-cooking-book');
## --seed-contents--
```html
-XYZ Bookstore
-Browse our collection of amazing books!
-
-
-
Sally's SciFi Adventure
-
This is an epic story of Sally and her dog Rex as they navigate through other worlds.
-
Buy Now
-
- --fcc-editable-region--
-
+
+
+
+
+
XYZ Bookstore Page
+
-
+
+
XYZ Bookstore
+
Browse our collection of amazing books!
+
+
+
Sally's SciFi Adventure
+
This is an epic story of Sally and her dog Rex as they navigate through other worlds.
+
Buy Now
+
--fcc-editable-region--
-
+
+
+
+ --fcc-editable-region--
+
+
+
+
```
diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca4c4b0f952cf09fabe09.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca4c4b0f952cf09fabe09.md
index 78c707e6e37..11b3cbb88a2 100644
--- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca4c4b0f952cf09fabe09.md
+++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca4c4b0f952cf09fabe09.md
@@ -1,8 +1,8 @@
---
id: 68eca4c4b0f952cf09fabe09
-title: Step 12
+title: Step 15
challengeType: 0
-dashedName: step-12
+dashedName: step-15
---
# --description--
@@ -30,18 +30,29 @@ assert.equal(cards[1]?.querySelector('h2')?.innerText.trim(), "Dave's Cooking Ad
## --seed-contents--
```html
-XYZ Bookstore
-Browse our collection of amazing books!
-
-
-
Sally's SciFi Adventure
-
This is an epic story of Sally and her dog Rex as they navigate through other worlds.
-
Buy Now
-
- --fcc-editable-region--
-
+
+
+
+
+
XYZ Bookstore Page
+
-
+
+
XYZ Bookstore
+
Browse our collection of amazing books!
+
+
+
Sally's SciFi Adventure
+
This is an epic story of Sally and her dog Rex as they navigate through other worlds.
+
Buy Now
+
--fcc-editable-region--
-
+
+
+
+ --fcc-editable-region--
+
+
+
+
```
diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca5412b5dd9d06b3d6404.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca5412b5dd9d06b3d6404.md
index 48ca123d3e2..b93c5d4a6c2 100644
--- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca5412b5dd9d06b3d6404.md
+++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca5412b5dd9d06b3d6404.md
@@ -1,8 +1,8 @@
---
id: 68eca5412b5dd9d06b3d6404
-title: Step 13
+title: Step 16
challengeType: 0
-dashedName: step-13
+dashedName: step-16
---
# --description--
@@ -41,19 +41,30 @@ assert.exists(cards[1]?.querySelector('h2 + p'));
## --seed-contents--
```html
-XYZ Bookstore
-Browse our collection of amazing books!
-
-
-
Sally's SciFi Adventure
-
This is an epic story of Sally and her dog Rex as they navigate through other worlds.
-
Buy Now
-
- --fcc-editable-region--
-
-
Dave's Cooking Adventure
+
+
+
+
+ XYZ Bookstore Page
+
-
+
+
XYZ Bookstore
+
Browse our collection of amazing books!
+
+
+
Sally's SciFi Adventure
+
This is an epic story of Sally and her dog Rex as they navigate through other worlds.
+
Buy Now
+
--fcc-editable-region--
-
+
+
Dave's Cooking Adventure
+
+
+ --fcc-editable-region--
+
+
+
+
```
diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca5c0065c82d256d29ca3.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca5c0065c82d256d29ca3.md
index 104210ba9f0..e5526bd1701 100644
--- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca5c0065c82d256d29ca3.md
+++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca5c0065c82d256d29ca3.md
@@ -1,8 +1,8 @@
---
id: 68eca5c0065c82d256d29ca3
-title: Step 14
+title: Step 17
challengeType: 0
-dashedName: step-14
+dashedName: step-17
---
# --description--
@@ -46,19 +46,31 @@ assert.equal(cards[1]?.querySelector('button')?.innerText.trim(), 'Buy Now');
## --seed-contents--
```html
-XYZ Bookstore
-Browse our collection of amazing books!
-
-
-
Sally's SciFi Adventure
-
This is an epic story of Sally and her dog Rex as they navigate through other worlds.
-
Buy Now
-
+
+
+
+
+
XYZ Bookstore Page
+
+
+
+
XYZ Bookstore
+
Browse our collection of amazing books!
+
+
+
Sally's SciFi Adventure
+
This is an epic story of Sally and her dog Rex as they navigate through other worlds.
+
Buy Now
+
--fcc-editable-region--
-
-
Dave's Cooking Adventure
-
This is the story of Dave as he learns to cook everything from pancakes to pasta, one recipe at a time.
-
+
+
Dave's Cooking Adventure
+
This is the story of Dave as he learns to cook everything from pancakes to pasta, one recipe at a time.
+
+
--fcc-editable-region--
-
+
+
+
+
```
diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca6364c5616d393389a30.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca6364c5616d393389a30.md
index ae8e53e17c2..a2a5ce332d2 100644
--- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca6364c5616d393389a30.md
+++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca6364c5616d393389a30.md
@@ -1,8 +1,8 @@
---
id: 68eca6364c5616d393389a30
-title: Step 15
+title: Step 18
challengeType: 0
-dashedName: step-15
+dashedName: step-18
---
# --description--
@@ -47,21 +47,32 @@ assert.exists(document.querySelector('p + .btn-container'));
## --seed-contents--
```html
+
+
+
+
+ XYZ Bookstore Page
+
+
+
--fcc-editable-region--
-XYZ Bookstore
-Browse our collection of amazing books!
-
-
-
Sally's SciFi Adventure
-
This is an epic story of Sally and her dog Rex as they navigate through other worlds.
-
Buy Now
+
XYZ Bookstore
+
Browse our collection of amazing books!
+
+
+
Sally's SciFi Adventure
+
This is an epic story of Sally and her dog Rex as they navigate through other worlds.
+
Buy Now
+
+
+
Dave's Cooking Adventure
+
This is the story of Dave as he learns to cook everything from pancakes to pasta, one recipe at a time.
+
Buy Now
+
-
-
Dave's Cooking Adventure
-
This is the story of Dave as he learns to cook everything from pancakes to pasta, one recipe at a time.
-
Buy Now
-
-
--fcc-editable-region--
+
+
+
```
diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca6e5a6759ed4ea0034dc.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca6e5a6759ed4ea0034dc.md
index 1e969911670..45a67e23916 100644
--- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca6e5a6759ed4ea0034dc.md
+++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca6e5a6759ed4ea0034dc.md
@@ -1,8 +1,8 @@
---
id: 68eca6e5a6759ed4ea0034dc
-title: Step 16
+title: Step 19
challengeType: 0
-dashedName: step-16
+dashedName: step-19
---
# --description--
@@ -79,35 +79,54 @@ assert.equal(buttons[1]?.innerText.trim(), 'Checkout');
## --seed-contents--
```html
-
XYZ Bookstore
-
Browse our collection of amazing books!
-
-
-
Sally's SciFi Adventure
-
This is an epic story of Sally and her dog Rex as they navigate through other worlds.
-
Buy Now
-
-
-
Dave's Cooking Adventure
-
This is the story of Dave as he learns to cook everything from pancakes to pasta, one recipe at a time.
-
Buy Now
-
-
---fcc-editable-region--
-
Review your selections and continue to checkout.
-
+
+
+
+
+
XYZ Bookstore Page
+
-
+
+
XYZ Bookstore
+
Browse our collection of amazing books!
+
+
+
Sally's SciFi Adventure
+
This is an epic story of Sally and her dog Rex as they navigate through other worlds.
+
Buy Now
+
+
+
Dave's Cooking Adventure
+
This is the story of Dave as he learns to cook everything from pancakes to pasta, one recipe at a time.
+
Buy Now
+
+
--fcc-editable-region--
+
Review your selections and continue to checkout.
+
+
+
+--fcc-editable-region--
+
+
+
```
# --solutions--
```html
-
XYZ Bookstore
-
Browse our collection of amazing books!
+
+
+
+
+
XYZ Bookstore Page
+
-
+
+
XYZ Bookstore
+
Browse our collection of amazing books!
+
+
Sally's SciFi Adventure
@@ -125,12 +144,15 @@ assert.equal(buttons[1]?.innerText.trim(), 'Checkout');
Buy Now
-
+
-
Review your selections and continue to checkout.
+
Review your selections and continue to checkout.
-
+
+
+
```
diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/69134b6cb43aa5f254950a10.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/69134b6cb43aa5f254950a10.md
new file mode 100644
index 00000000000..8a97b923259
--- /dev/null
+++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/69134b6cb43aa5f254950a10.md
@@ -0,0 +1,51 @@
+---
+id: 69134b6cb43aa5f254950a10
+title: Step 1
+challengeType: 0
+dashedName: step-1
+demoType: onLoad
+---
+
+# --description--
+
+In this workshop, you will build a bookstore page by creating book cards that display information about different books. You'll practice organizing content using `div` elements, classes, and IDs.
+
+Start your bookstore page by creating the HTML boilerplate.
+
+Add the `` declaration and `html` and `head` elements.
+
+# --hints--
+
+Your code should include a `` declaration.
+
+```js
+assert.match(code, //i);
+```
+
+Your code should include both opening and closing `` tags.
+
+```js
+assert.match(code,/[\s\S]*<\/html>/i);
+```
+
+Your code should include both opening and closing `` tags.
+
+```js
+assert.match(code,/[\s\S]*<\/head>/i);
+```
+
+Your `head` element should be nested inside `html` element.
+
+```js
+assert.match(code, /<\/html>\s*$/);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+--fcc-editable-region--
+
+--fcc-editable-region--
+```
diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/69134d14150d51f8066a3246.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/69134d14150d51f8066a3246.md
new file mode 100644
index 00000000000..418493d845a
--- /dev/null
+++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/69134d14150d51f8066a3246.md
@@ -0,0 +1,64 @@
+---
+id: 69134d14150d51f8066a3246
+title: Step 3
+challengeType: 0
+dashedName: step-3
+---
+
+# --description--
+
+Now, improve the structure of your HTML document to ensure your page is encoded correctly and looks good on all screen sizes.
+
+Add a language attribute to the `html` element and set it to `en`.Then,inside the `head` element add:
+
+- a `
` tag
+- a `
` tag
+
+Now add the `body` element below the head section. This is where all of your visible page content will go.
+
+# --hints--
+
+Your `html` element should have a `lang` attribute set to `"en"`.
+
+```js
+assert.match(code, /]*\blang=["']en["'][^>]*>/i);
+```
+
+Your code should include a `
` element.
+
+```js
+assert.exists(document.querySelector('head > meta[charset="utf-8"]'));
+```
+
+Your code should include a viewport `meta` element.
+
+```js
+assert.exists(document.querySelector('head > meta[name="viewport"][content="width=device-width, initial-scale=1.0"]'));
+```
+
+Your code should include opening and closing `` tags.
+
+```js
+assert.match(code,/[\s\S]*<\/body>/i);
+```
+
+Your `body` element should be below `head` element.
+
+```js
+assert.match(code, /<\/head>[\s\S]*[\s\S]*<\/body>[\s\S]*<\/html>/i);
+```
+
+# --seed--
+## --seed-contents--
+
+```html
+
+--fcc-editable-region--
+
+
+
XYZ Bookstore Page
+
+
+
+--fcc-editable-region--
+```
diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/691f85085787a8c4ca589fbb.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/691f85085787a8c4ca589fbb.md
new file mode 100644
index 00000000000..20232ac2477
--- /dev/null
+++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/691f85085787a8c4ca589fbb.md
@@ -0,0 +1,47 @@
+---
+id: 691f85085787a8c4ca589fbb
+title: Step 2
+challengeType: 0
+dashedName: step-2
+---
+
+# --description--
+
+Add the `title` element inside the `head` element.
+
+Set the page title to `XYZ Bookstore Page`.
+
+# --hints--
+
+Your code should include both opening and closing `
` tags.
+
+```js
+assert.match(code,/[\s\S]*<\/title>/i);
+```
+
+Your title should be `XYZ Bookstore Page`.
+
+```js
+assert.equal(document.querySelector('title')?.innerText.trim(),'XYZ Bookstore Page');
+```
+
+Your `title` element should be nested within `head` element.
+
+```js
+assert.match(code, /[\s\S]*[\s\S]*<\/title>[\s\S]*<\/head>/i);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+ --fcc-editable-region--
+
+
+
+
+
+ --fcc-editable-region--
+
+```
diff --git a/curriculum/structure/blocks/workshop-bookstore-page.json b/curriculum/structure/blocks/workshop-bookstore-page.json
index 0badcbd989c..47d6d01ceaa 100644
--- a/curriculum/structure/blocks/workshop-bookstore-page.json
+++ b/curriculum/structure/blocks/workshop-bookstore-page.json
@@ -5,22 +5,25 @@
"helpCategory": "HTML-CSS",
"blockLayout": "challenge-grid",
"challengeOrder": [
- { "id": "68e97fe79367ad7b5dd6c9cd", "title": "Step 1" },
- { "id": "68ebdbacdd3fa474132cc975", "title": "Step 2" },
- { "id": "68ec6cd5b7e8f5a8f7319e32", "title": "Step 3" },
- { "id": "68ec6d9a315221aa31e54816", "title": "Step 4" },
- { "id": "68ec6e8d0caee3afaaf142ef", "title": "Step 5" },
- { "id": "68ec9332a9b5b2b32487bd00", "title": "Step 6" },
- { "id": "68ec98b38d83a3c28dd30efe", "title": "Step 7" },
- { "id": "68ec99e478211dc578699944", "title": "Step 8" },
- { "id": "68eca11e99e3c5c894ca9d69", "title": "Step 9" },
- { "id": "68eca2a795b333ca5fee30a8", "title": "Step 10" },
- { "id": "68eca3cfeebef2cd8cc5f814", "title": "Step 11" },
- { "id": "68eca4c4b0f952cf09fabe09", "title": "Step 12" },
- { "id": "68eca5412b5dd9d06b3d6404", "title": "Step 13" },
- { "id": "68eca5c0065c82d256d29ca3", "title": "Step 14" },
- { "id": "68eca6364c5616d393389a30", "title": "Step 15" },
- { "id": "68eca6e5a6759ed4ea0034dc", "title": "Step 16" }
+ { "id": "69134b6cb43aa5f254950a10", "title": "Step 1" },
+ { "id": "691f85085787a8c4ca589fbb", "title": "Step 2" },
+ { "id": "69134d14150d51f8066a3246", "title": "Step 3" },
+ { "id": "68e97fe79367ad7b5dd6c9cd", "title": "Step 4" },
+ { "id": "68ebdbacdd3fa474132cc975", "title": "Step 5" },
+ { "id": "68ec6cd5b7e8f5a8f7319e32", "title": "Step 6" },
+ { "id": "68ec6d9a315221aa31e54816", "title": "Step 7" },
+ { "id": "68ec6e8d0caee3afaaf142ef", "title": "Step 8" },
+ { "id": "68ec9332a9b5b2b32487bd00", "title": "Step 9" },
+ { "id": "68ec98b38d83a3c28dd30efe", "title": "Step 10" },
+ { "id": "68ec99e478211dc578699944", "title": "Step 11" },
+ { "id": "68eca11e99e3c5c894ca9d69", "title": "Step 12" },
+ { "id": "68eca2a795b333ca5fee30a8", "title": "Step 13" },
+ { "id": "68eca3cfeebef2cd8cc5f814", "title": "Step 14" },
+ { "id": "68eca4c4b0f952cf09fabe09", "title": "Step 15" },
+ { "id": "68eca5412b5dd9d06b3d6404", "title": "Step 16" },
+ { "id": "68eca5c0065c82d256d29ca3", "title": "Step 17" },
+ { "id": "68eca6364c5616d393389a30", "title": "Step 18" },
+ { "id": "68eca6e5a6759ed4ea0034dc", "title": "Step 19" }
],
"blockLabel": "workshop",
"usesMultifileEditor": true,