Index: /trunk/src/wp-content/themes/twentynineteen/sass/blocks/_blocks.scss
===================================================================
--- /trunk/src/wp-content/themes/twentynineteen/sass/blocks/_blocks.scss	(revision 45604)
+++ /trunk/src/wp-content/themes/twentynineteen/sass/blocks/_blocks.scss	(revision 45605)
@@ -1,6 +1,12 @@
 /* !Block styles */
 
+
+// Default block margin and alignment rules.
+// These are replicated inside of the Group block
+// so that child blocks in there appear the same way.
 .entry .entry-content > *,
-.entry .entry-summary > * {
+.entry .entry-summary > *,
+.entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *,
+.entry .entry-content > .wp-block-group > .wp-block-group__inner-container > * {
 	margin: 32px 0;
 	max-width: 100%;
@@ -10,12 +16,4 @@
 	@include media(tablet) {
 		margin: 32px 0;
-	}
-
-	> *:first-child {
-		margin-top: 0;
-	}
-
-	> *:last-child {
-		margin-bottom: 0;
 	}
 
@@ -89,4 +87,16 @@
 			margin-right: 0;
 		}
+	}
+}
+
+.entry .entry-content > *,
+.entry .entry-summary > * {
+
+	> *:first-child {
+		margin-top: 0;
+	}
+
+	> *:last-child {
+		margin-bottom: 0;
 	}
 }
@@ -511,4 +521,12 @@
 		img {
 			display: block;
+		}
+
+		// If an image does not have a left/center/right alignment, 
+		// it's a direct child of .wp-block-img.  If it has no other 
+		// alignment added, we want to make sure the image does not 
+		// extend beyond the width of the text column.
+		&:not(.alignwide):not(.alignfull) > img {
+			@include postContentMaxWidth();
 		}
 
@@ -753,4 +771,16 @@
 		}
 
+		// Ensure images do not expand beyond the column.
+		.wp-block-image > img:not(.alignwide):not(.alignfull) {
+
+			@include media(tablet) {
+				max-width: 100%;
+			}
+
+			@include media(desktop) {
+				max-width: 100%;
+			}
+		}
+
 		@include media(tablet) {
 			flex-wrap: nowrap;
@@ -760,4 +790,74 @@
 			}
 		}
+	}
+
+	//! Group
+	.wp-block-group {
+
+		// When the Group block is standard/wide, we need to prevent full-aligned 
+		// child blocks from expanding out of their container.
+		&:not(.alignfull) > .wp-block-group__inner-container > .alignfull,
+		&:not(.alignfull) > .wp-block-group__inner-container > .wp-block-image > img {
+
+			@include media(tablet) {
+				left: 0;
+				max-width: 100%;
+			}
+		}
+
+		// The full-width Group block's inner container should mimic .entry-content styles.
+		&.alignfull > .wp-block-group__inner-container {
+			max-width: calc(100% - (2 * #{ $size__spacing-unit }));
+			margin: 0 $size__spacing-unit;
+
+			@include media(tablet) {
+				max-width: 80%;
+				margin: 0 10%;
+				padding: 0 60px;
+			}
+		}
+
+		// Group block with a colored background.
+		&.has-background {
+			padding: $size__spacing-unit;
+			margin-top: 0;
+			margin-bottom: 0;
+
+			// Remove the top and bottom margins of inner blocks.
+			.wp-block-group__inner-container {
+
+				> *:first-child {
+					margin-top: 0;
+				}
+
+				> *:last-child {
+					margin-bottom: 0;
+				}
+			}
+
+			// If the Group block is full-width, it does not need this extra padding. 
+			&.alignfull {
+				padding-left: 0;
+				padding-right: 0;
+
+				@include media(tablet) {
+					padding-top: $size__spacing-unit;
+					padding-bottom: $size__spacing-unit;
+				}
+			}
+
+			// Full-aligned child blocks should take up the maximum width available in their container.
+			&:not(.alignfull) > .wp-block-group__inner-container > .alignfull {
+				width: 100%;
+				max-width: 100%;
+				
+				@include media(tablet) {
+					width: calc( 100% + #{$size__spacing-unit * 2} );
+					max-width: calc( 100% + #{$size__spacing-unit * 2} );
+					margin-left: -#{$size__spacing-unit};
+				}
+			}
+		}
+		
 	}
 
Index: /trunk/src/wp-content/themes/twentynineteen/style-editor.css
===================================================================
--- /trunk/src/wp-content/themes/twentynineteen/style-editor.css	(revision 45604)
+++ /trunk/src/wp-content/themes/twentynineteen/style-editor.css	(revision 45605)
@@ -1294,2 +1294,146 @@
   color: #767676;
 }
+
+/** === Group Block === */
+.wp-block[data-type="core/group"] > .editor-block-list__block-edit > div > .wp-block-group > .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block[data-align="full"] {
+  left: 0;
+}
+
+.wp-block[data-type="core/group"] > .editor-block-list__block-edit > div > .wp-block-group.has-background {
+  padding: 22px;
+}
+
+.wp-block[data-type="core/group"] > .editor-block-list__block-edit > div > .wp-block-group.has-background > .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block[data-align="full"] {
+  margin-left: -22px;
+  width: calc(100% + 44px);
+  max-width: calc(100% + 44px);
+}
+
+@media only screen and (min-width: 768px) {
+  .wp-block[data-type="core/group"][data-align="wide"] > .editor-block-list__block-edit > div > .wp-block-group > .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block:not([data-align="wide"]):not([data-align="full"]) {
+    width: calc(8 * (100vw / 12));
+  }
+}
+
+@media only screen and (min-width: 1168px) {
+  .wp-block[data-type="core/group"][data-align="wide"] > .editor-block-list__block-edit > div > .wp-block-group > .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block:not([data-align="wide"]):not([data-align="full"]) {
+    width: calc(6 * (100vw / 12 ));
+  }
+}
+
+@media only screen and (min-width: 768px) {
+  .wp-block[data-type="core/group"][data-align="wide"] > .editor-block-list__block-edit > div > .wp-block-group.has-background > .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block:not([data-align="wide"]):not([data-align="full"]) {
+    width: calc(8 * (100vw / 12) - 44px);
+  }
+}
+
+@media only screen and (min-width: 1168px) {
+  .wp-block[data-type="core/group"][data-align="wide"] > .editor-block-list__block-edit > div > .wp-block-group.has-background > .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block:not([data-align="wide"]):not([data-align="full"]) {
+    width: calc(6 * (100vw / 12 ) - 44px);
+  }
+}
+
+@media only screen and (min-width: 600px) {
+  .wp-block[data-type="core/group"][data-align="full"] {
+    max-width: calc(100% + 89px);
+  }
+}
+
+@media only screen and (min-width: 768px) {
+  .wp-block[data-type="core/group"][data-align="full"] {
+    max-width: calc(125% + 114px);
+  }
+}
+
+@media only screen and (min-width: 600px) {
+  .wp-block[data-type="core/group"][data-align="full"] > .editor-block-list__block-edit > div > .wp-block-group > .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout {
+    padding-left: 46px;
+    padding-right: 46px;
+  }
+}
+
+@media only screen and (min-width: 768px) {
+  .wp-block[data-type="core/group"][data-align="full"] > .editor-block-list__block-edit > div > .wp-block-group > .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout {
+    width: 80%;
+    margin-left: 10%;
+    margin-right: 10%;
+    padding-left: 48px;
+    padding-right: 48px;
+  }
+}
+
+.wp-block[data-type="core/group"][data-align="full"] > .editor-block-list__block-edit > div > .wp-block-group > .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block:not([data-align="full"]) {
+  max-width: calc(100vw - (2 * 1rem));
+}
+
+@media only screen and (min-width: 768px) {
+  .wp-block[data-type="core/group"][data-align="full"] > .editor-block-list__block-edit > div > .wp-block-group > .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block:not([data-align="full"]) {
+    max-width: calc(8 * (100vw / 12));
+  }
+}
+
+@media only screen and (min-width: 1168px) {
+  .wp-block[data-type="core/group"][data-align="full"] > .editor-block-list__block-edit > div > .wp-block-group > .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block:not([data-align="full"]) {
+    max-width: calc(6 * (100vw / 12));
+  }
+}
+
+@media only screen and (min-width: 768px) {
+  .wp-block[data-type="core/group"][data-align="full"] > .editor-block-list__block-edit > div > .wp-block-group > .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block[data-align="right"] {
+    max-width: 125%;
+  }
+}
+
+@media only screen and (min-width: 768px) {
+  .wp-block[data-type="core/group"][data-align="full"] > .editor-block-list__block-edit > div > .wp-block-group > .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block[data-align="wide"] {
+    width: calc(100% + 4px);
+    max-width: calc(100% + 4px);
+  }
+}
+
+.wp-block[data-type="core/group"][data-align="full"] > .editor-block-list__block-edit > div > .wp-block-group > .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block[data-align=full] {
+  max-width: calc(100vw + (2 * 1rem));
+}
+
+@media only screen and (min-width: 600px) {
+  .wp-block[data-type="core/group"][data-align="full"] > .editor-block-list__block-edit > div > .wp-block-group > .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block[data-align=full] {
+    width: calc(100% + 92px);
+    left: -46px;
+  }
+}
+
+@media only screen and (min-width: 768px) {
+  .wp-block[data-type="core/group"][data-align="full"] > .editor-block-list__block-edit > div > .wp-block-group > .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block[data-align=full] {
+    left: calc(-12.5% - 58px);
+    width: calc(125% + 120px);
+    max-width: calc(125% + 119px);
+  }
+}
+
+.wp-block[data-type="core/group"][data-align="full"] > .editor-block-list__block-edit > div > .wp-block-group.has-background {
+  padding: 22px 0;
+}
+
+@media only screen and (min-width: 600px) {
+  .wp-block[data-type="core/group"][data-align="full"] > .editor-block-list__block-edit > div > .wp-block-group.has-background {
+    padding-left: 0;
+    padding-right: 0;
+  }
+}
+
+.wp-block[data-type="core/group"][data-align="full"] > .editor-block-list__block-edit > div > .wp-block-group.has-background > .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block[data-align="full"] {
+  margin-left: 0;
+  width: 100%;
+}
+
+@media only screen and (min-width: 600px) {
+  .wp-block[data-type="core/group"][data-align="full"] > .editor-block-list__block-edit > div > .wp-block-group.has-background > .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block[data-align="full"] {
+    width: calc(100% + 92px);
+  }
+}
+
+@media only screen and (min-width: 768px) {
+  .wp-block[data-type="core/group"][data-align="full"] > .editor-block-list__block-edit > div > .wp-block-group.has-background > .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block[data-align="full"] {
+    width: calc(125% + 120px);
+  }
+}
Index: /trunk/src/wp-content/themes/twentynineteen/style-editor.scss
===================================================================
--- /trunk/src/wp-content/themes/twentynineteen/style-editor.scss	(revision 45604)
+++ /trunk/src/wp-content/themes/twentynineteen/style-editor.scss	(revision 45605)
@@ -740,2 +740,179 @@
 	}
 }
+
+/** === Group Block === */
+
+// This matches the 22px value for 1rem that used on the front end.
+// It must be specified in pixels for the editor, since the root font 
+// size is different here. 
+$group-block-background__padding: $font__size_base;
+
+.wp-block[data-type="core/group"] {
+
+	// Group block base styles
+	> .editor-block-list__block-edit > div > .wp-block-group {
+
+		// Child: Full alignment
+		> .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block[data-align="full"] {
+			left: 0;
+		}
+	}
+
+	// Group block with background color
+	> .editor-block-list__block-edit > div > .wp-block-group.has-background {
+		padding: $group-block-background__padding;
+
+		// Child: Full alignment
+		> .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block[data-align="full"] {
+			margin-left: -$group-block-background__padding;
+			width: calc(100% + #{$group-block-background__padding * 2});
+			max-width: calc(100% + #{$group-block-background__padding * 2});
+		}
+	}
+
+	// Wide and full alignments
+	&[data-align="wide"] {
+
+		// Group block base styles.
+		> .editor-block-list__block-edit > div > .wp-block-group {
+
+			// Child blocks: Default alignments
+			> .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block:not([data-align="wide"]):not([data-align="full"]) {
+				@include media(tablet) {
+					width: calc(8 * (100vw / 12));
+				}
+
+				@include media(desktop) {
+					width: calc(6 * (100vw / 12 ));
+				}
+			}
+		}
+
+		// Group block with background color
+		> .editor-block-list__block-edit > div > .wp-block-group.has-background {
+			
+			// Child blocks: Default alignments
+			> .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block:not([data-align="wide"]):not([data-align="full"]) {
+				@include media(tablet) {
+					width: calc(8 * (100vw / 12) - #{$group-block-background__padding * 2});
+				}
+
+				@include media(desktop) {
+					width: calc(6 * (100vw / 12 ) - #{$group-block-background__padding * 2});
+				}
+			}
+		}
+	}
+
+	// Full alignment
+	&[data-align="full"] {
+
+		// Max-width needs to be a pixel narrower than usual to prevent horizontal scrolling.
+		@include media(mobile) {
+			max-width: calc(100% + 89px);
+		}
+		@include media(tablet) {
+			max-width: calc(125% + 114px);
+		}
+
+		// Group block base styles
+		> .editor-block-list__block-edit > div > .wp-block-group {
+
+			// Margins & padding are added to this container to mimic 
+			// the style + spacing of the .editor-writing-flow global 
+			// container. This way, child items sync up with the placement 
+			// and size of other top-level blocks. 
+			> .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout {
+
+				@include media(mobile) {
+					padding-left: 46px;
+					padding-right: 46px;
+				}
+
+				// 2px of extra padding are added to each side here
+				// To better match up with the spacing of the whole 
+				// document. 
+				@include media(tablet) {
+					width: 80%;
+					margin-left: 10%;
+					margin-right: 10%;
+					padding-left: 48px;
+					padding-right: 48px; 
+				}
+
+				// Child blocks: All alignments except full
+				 > .wp-block:not([data-align="full"]) {
+					max-width: calc(100vw - (2 * 1rem));
+
+					@include media(tablet) {
+						max-width: calc(8 * (100vw / 12));
+					}
+
+					@include media(desktop) {
+						max-width: calc(6 * (100vw / 12));
+					}
+				}
+
+				// Child blocks: Right alignments
+				> .wp-block[data-align="right"] {
+
+					@include media(tablet) {
+						max-width: 125%;
+					}
+				}
+
+				// Child blocks: Wide alignments
+				> .wp-block[data-align="wide"] {
+
+					@include media(tablet) {
+						width: calc(100% + 4px);
+						max-width: calc(100% + 4px);
+					}
+				}
+
+				// Child blocks: Full alignments
+				> .wp-block[data-align=full] {
+					max-width: calc(100vw + (2 * 1rem));
+
+					@include media(mobile) {
+						width: calc(100% + 92px);
+						left: -46px;
+					}
+
+					@include media(tablet) {
+						left: calc(-12.5% - 58px);
+						width: calc(125% + 120px);
+						max-width: calc(125% + 119px);
+					}
+				}
+			}
+		}
+
+		// Group block with background color
+		> .editor-block-list__block-edit > div > .wp-block-group.has-background {
+
+			// When the Group block is full width, we can remove the left/right padding
+			// and let this inherit the 
+			padding: $group-block-background__padding 0;
+
+			@include media(mobile) {
+				padding-left: 0;
+				padding-right: 0;
+			}
+
+			// Child blocks: Full alignment
+			> .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block[data-align="full"] {
+				margin-left: 0;
+				width: 100%;
+
+				@include media(mobile) {
+					width: calc(100% + 92px);
+				}
+
+				@include media(tablet) {
+					width: calc(125% + 120px);
+				}
+			}
+		}
+	}
+}
Index: /trunk/src/wp-content/themes/twentynineteen/style-rtl.css
===================================================================
--- /trunk/src/wp-content/themes/twentynineteen/style-rtl.css	(revision 45604)
+++ /trunk/src/wp-content/themes/twentynineteen/style-rtl.css	(revision 45605)
@@ -5187,5 +5187,7 @@
 /* !Block styles */
 .entry .entry-content > *,
-.entry .entry-summary > * {
+.entry .entry-summary > *,
+.entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *,
+.entry .entry-content > .wp-block-group > .wp-block-group__inner-container > * {
   margin: 32px 0;
   max-width: 100%;
@@ -5194,5 +5196,7 @@
 @media only screen and (min-width: 768px) {
   .entry .entry-content > *,
-  .entry .entry-summary > * {
+  .entry .entry-summary > *,
+  .entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *,
+  .entry .entry-content > .wp-block-group > .wp-block-group__inner-container > * {
     max-width: calc(8 * (100vw / 12) - 28px);
   }
@@ -5201,5 +5205,7 @@
 @media only screen and (min-width: 1168px) {
   .entry .entry-content > *,
-  .entry .entry-summary > * {
+  .entry .entry-summary > *,
+  .entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *,
+  .entry .entry-content > .wp-block-group > .wp-block-group__inner-container > * {
     max-width: calc(6 * (100vw / 12) - 28px);
   }
@@ -5208,21 +5214,15 @@
 @media only screen and (min-width: 768px) {
   .entry .entry-content > *,
-  .entry .entry-summary > * {
+  .entry .entry-summary > *,
+  .entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *,
+  .entry .entry-content > .wp-block-group > .wp-block-group__inner-container > * {
     margin: 32px 0;
   }
 }
 
-.entry .entry-content > * > *:first-child,
-.entry .entry-summary > * > *:first-child {
-  margin-top: 0;
-}
-
-.entry .entry-content > * > *:last-child,
-.entry .entry-summary > * > *:last-child {
-  margin-bottom: 0;
-}
-
 .entry .entry-content > *.alignwide,
-.entry .entry-summary > *.alignwide {
+.entry .entry-summary > *.alignwide,
+.entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *.alignwide,
+.entry .entry-content > .wp-block-group > .wp-block-group__inner-container > *.alignwide {
   margin-right: auto;
   margin-left: auto;
@@ -5232,5 +5232,7 @@
 @media only screen and (min-width: 768px) {
   .entry .entry-content > *.alignwide,
-  .entry .entry-summary > *.alignwide {
+  .entry .entry-summary > *.alignwide,
+  .entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *.alignwide,
+  .entry .entry-content > .wp-block-group > .wp-block-group__inner-container > *.alignwide {
     width: 100%;
     max-width: 100%;
@@ -5239,5 +5241,7 @@
 
 .entry .entry-content > *.alignfull,
-.entry .entry-summary > *.alignfull {
+.entry .entry-summary > *.alignfull,
+.entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *.alignfull,
+.entry .entry-content > .wp-block-group > .wp-block-group__inner-container > *.alignfull {
   position: relative;
   right: -1rem;
@@ -5249,5 +5253,7 @@
 @media only screen and (min-width: 768px) {
   .entry .entry-content > *.alignfull,
-  .entry .entry-summary > *.alignfull {
+  .entry .entry-summary > *.alignfull,
+  .entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *.alignfull,
+  .entry .entry-content > .wp-block-group > .wp-block-group__inner-container > *.alignfull {
     margin-top: calc(2 * 1rem);
     margin-bottom: calc(2 * 1rem);
@@ -5259,5 +5265,7 @@
 
 .entry .entry-content > *.alignleft,
-.entry .entry-summary > *.alignleft {
+.entry .entry-summary > *.alignleft,
+.entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *.alignleft,
+.entry .entry-content > .wp-block-group > .wp-block-group__inner-container > *.alignleft {
   float: left;
   max-width: calc(5 * (100vw / 12));
@@ -5269,5 +5277,7 @@
 @media only screen and (min-width: 768px) {
   .entry .entry-content > *.alignleft,
-  .entry .entry-summary > *.alignleft {
+  .entry .entry-summary > *.alignleft,
+  .entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *.alignleft,
+  .entry .entry-content > .wp-block-group > .wp-block-group__inner-container > *.alignleft {
     max-width: calc(4 * (100vw / 12));
     margin-right: calc(2 * 1rem);
@@ -5276,5 +5286,7 @@
 
 .entry .entry-content > *.alignright,
-.entry .entry-summary > *.alignright {
+.entry .entry-summary > *.alignright,
+.entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *.alignright,
+.entry .entry-content > .wp-block-group > .wp-block-group__inner-container > *.alignright {
   float: right;
   max-width: calc(5 * (100vw / 12));
@@ -5286,5 +5298,7 @@
 @media only screen and (min-width: 768px) {
   .entry .entry-content > *.alignright,
-  .entry .entry-summary > *.alignright {
+  .entry .entry-summary > *.alignright,
+  .entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *.alignright,
+  .entry .entry-content > .wp-block-group > .wp-block-group__inner-container > *.alignright {
     max-width: calc(4 * (100vw / 12));
     margin-left: 0;
@@ -5294,5 +5308,7 @@
 
 .entry .entry-content > *.aligncenter,
-.entry .entry-summary > *.aligncenter {
+.entry .entry-summary > *.aligncenter,
+.entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *.aligncenter,
+.entry .entry-content > .wp-block-group > .wp-block-group__inner-container > *.aligncenter {
   margin-right: auto;
   margin-left: auto;
@@ -5301,5 +5317,7 @@
 @media only screen and (min-width: 768px) {
   .entry .entry-content > *.aligncenter,
-  .entry .entry-summary > *.aligncenter {
+  .entry .entry-summary > *.aligncenter,
+  .entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *.aligncenter,
+  .entry .entry-content > .wp-block-group > .wp-block-group__inner-container > *.aligncenter {
     max-width: calc(8 * (100vw / 12) - 28px);
   }
@@ -5308,5 +5326,7 @@
 @media only screen and (min-width: 1168px) {
   .entry .entry-content > *.aligncenter,
-  .entry .entry-summary > *.aligncenter {
+  .entry .entry-summary > *.aligncenter,
+  .entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *.aligncenter,
+  .entry .entry-content > .wp-block-group > .wp-block-group__inner-container > *.aligncenter {
     max-width: calc(6 * (100vw / 12) - 28px);
   }
@@ -5315,8 +5335,20 @@
 @media only screen and (min-width: 768px) {
   .entry .entry-content > *.aligncenter,
-  .entry .entry-summary > *.aligncenter {
+  .entry .entry-summary > *.aligncenter,
+  .entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *.aligncenter,
+  .entry .entry-content > .wp-block-group > .wp-block-group__inner-container > *.aligncenter {
     margin-right: 0;
     margin-left: 0;
   }
+}
+
+.entry .entry-content > * > *:first-child,
+.entry .entry-summary > * > *:first-child {
+  margin-top: 0;
+}
+
+.entry .entry-content > * > *:last-child,
+.entry .entry-summary > * > *:last-child {
+  margin-bottom: 0;
 }
 
@@ -5737,4 +5769,16 @@
 .entry .entry-content .wp-block-image img {
   display: block;
+}
+
+@media only screen and (min-width: 768px) {
+  .entry .entry-content .wp-block-image:not(.alignwide):not(.alignfull) > img {
+    max-width: calc(8 * (100vw / 12) - 28px);
+  }
+}
+
+@media only screen and (min-width: 1168px) {
+  .entry .entry-content .wp-block-image:not(.alignwide):not(.alignfull) > img {
+    max-width: calc(6 * (100vw / 12) - 28px);
+  }
 }
 
@@ -6039,4 +6083,16 @@
 
 @media only screen and (min-width: 768px) {
+  .entry .entry-content .wp-block-columns .wp-block-image > img:not(.alignwide):not(.alignfull) {
+    max-width: 100%;
+  }
+}
+
+@media only screen and (min-width: 1168px) {
+  .entry .entry-content .wp-block-columns .wp-block-image > img:not(.alignwide):not(.alignfull) {
+    max-width: 100%;
+  }
+}
+
+@media only screen and (min-width: 768px) {
   .entry .entry-content .wp-block-columns {
     flex-wrap: nowrap;
@@ -6044,4 +6100,64 @@
   .entry .entry-content .wp-block-columns .wp-block-column:not(:first-child) {
     margin-right: 32px;
+  }
+}
+
+@media only screen and (min-width: 768px) {
+  .entry .entry-content .wp-block-group:not(.alignfull) > .wp-block-group__inner-container > .alignfull,
+  .entry .entry-content .wp-block-group:not(.alignfull) > .wp-block-group__inner-container > .wp-block-image > img {
+    right: 0;
+    max-width: 100%;
+  }
+}
+
+.entry .entry-content .wp-block-group.alignfull > .wp-block-group__inner-container {
+  max-width: calc(100% - (2 * 1rem));
+  margin: 0 1rem;
+}
+
+@media only screen and (min-width: 768px) {
+  .entry .entry-content .wp-block-group.alignfull > .wp-block-group__inner-container {
+    max-width: 80%;
+    margin: 0 10%;
+    padding: 0 60px;
+  }
+}
+
+.entry .entry-content .wp-block-group.has-background {
+  padding: 1rem;
+  margin-top: 0;
+  margin-bottom: 0;
+}
+
+.entry .entry-content .wp-block-group.has-background .wp-block-group__inner-container > *:first-child {
+  margin-top: 0;
+}
+
+.entry .entry-content .wp-block-group.has-background .wp-block-group__inner-container > *:last-child {
+  margin-bottom: 0;
+}
+
+.entry .entry-content .wp-block-group.has-background.alignfull {
+  padding-right: 0;
+  padding-left: 0;
+}
+
+@media only screen and (min-width: 768px) {
+  .entry .entry-content .wp-block-group.has-background.alignfull {
+    padding-top: 1rem;
+    padding-bottom: 1rem;
+  }
+}
+
+.entry .entry-content .wp-block-group.has-background:not(.alignfull) > .wp-block-group__inner-container > .alignfull {
+  width: 100%;
+  max-width: 100%;
+}
+
+@media only screen and (min-width: 768px) {
+  .entry .entry-content .wp-block-group.has-background:not(.alignfull) > .wp-block-group__inner-container > .alignfull {
+    width: calc( 100% + 2rem);
+    max-width: calc( 100% + 2rem);
+    margin-right: -1rem;
   }
 }
Index: /trunk/src/wp-content/themes/twentynineteen/style.css
===================================================================
--- /trunk/src/wp-content/themes/twentynineteen/style.css	(revision 45604)
+++ /trunk/src/wp-content/themes/twentynineteen/style.css	(revision 45605)
@@ -5193,5 +5193,7 @@
 /* !Block styles */
 .entry .entry-content > *,
-.entry .entry-summary > * {
+.entry .entry-summary > *,
+.entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *,
+.entry .entry-content > .wp-block-group > .wp-block-group__inner-container > * {
   margin: 32px 0;
   max-width: 100%;
@@ -5200,5 +5202,7 @@
 @media only screen and (min-width: 768px) {
   .entry .entry-content > *,
-  .entry .entry-summary > * {
+  .entry .entry-summary > *,
+  .entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *,
+  .entry .entry-content > .wp-block-group > .wp-block-group__inner-container > * {
     max-width: calc(8 * (100vw / 12) - 28px);
   }
@@ -5207,5 +5211,7 @@
 @media only screen and (min-width: 1168px) {
   .entry .entry-content > *,
-  .entry .entry-summary > * {
+  .entry .entry-summary > *,
+  .entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *,
+  .entry .entry-content > .wp-block-group > .wp-block-group__inner-container > * {
     max-width: calc(6 * (100vw / 12) - 28px);
   }
@@ -5214,21 +5220,15 @@
 @media only screen and (min-width: 768px) {
   .entry .entry-content > *,
-  .entry .entry-summary > * {
+  .entry .entry-summary > *,
+  .entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *,
+  .entry .entry-content > .wp-block-group > .wp-block-group__inner-container > * {
     margin: 32px 0;
   }
 }
 
-.entry .entry-content > * > *:first-child,
-.entry .entry-summary > * > *:first-child {
-  margin-top: 0;
-}
-
-.entry .entry-content > * > *:last-child,
-.entry .entry-summary > * > *:last-child {
-  margin-bottom: 0;
-}
-
 .entry .entry-content > *.alignwide,
-.entry .entry-summary > *.alignwide {
+.entry .entry-summary > *.alignwide,
+.entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *.alignwide,
+.entry .entry-content > .wp-block-group > .wp-block-group__inner-container > *.alignwide {
   margin-left: auto;
   margin-right: auto;
@@ -5238,5 +5238,7 @@
 @media only screen and (min-width: 768px) {
   .entry .entry-content > *.alignwide,
-  .entry .entry-summary > *.alignwide {
+  .entry .entry-summary > *.alignwide,
+  .entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *.alignwide,
+  .entry .entry-content > .wp-block-group > .wp-block-group__inner-container > *.alignwide {
     width: 100%;
     max-width: 100%;
@@ -5245,5 +5247,7 @@
 
 .entry .entry-content > *.alignfull,
-.entry .entry-summary > *.alignfull {
+.entry .entry-summary > *.alignfull,
+.entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *.alignfull,
+.entry .entry-content > .wp-block-group > .wp-block-group__inner-container > *.alignfull {
   position: relative;
   left: -1rem;
@@ -5255,5 +5259,7 @@
 @media only screen and (min-width: 768px) {
   .entry .entry-content > *.alignfull,
-  .entry .entry-summary > *.alignfull {
+  .entry .entry-summary > *.alignfull,
+  .entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *.alignfull,
+  .entry .entry-content > .wp-block-group > .wp-block-group__inner-container > *.alignfull {
     margin-top: calc(2 * 1rem);
     margin-bottom: calc(2 * 1rem);
@@ -5265,5 +5271,7 @@
 
 .entry .entry-content > *.alignleft,
-.entry .entry-summary > *.alignleft {
+.entry .entry-summary > *.alignleft,
+.entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *.alignleft,
+.entry .entry-content > .wp-block-group > .wp-block-group__inner-container > *.alignleft {
   /*rtl:ignore*/
   float: left;
@@ -5277,5 +5285,7 @@
 @media only screen and (min-width: 768px) {
   .entry .entry-content > *.alignleft,
-  .entry .entry-summary > *.alignleft {
+  .entry .entry-summary > *.alignleft,
+  .entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *.alignleft,
+  .entry .entry-content > .wp-block-group > .wp-block-group__inner-container > *.alignleft {
     max-width: calc(4 * (100vw / 12));
     /*rtl:ignore*/
@@ -5285,5 +5295,7 @@
 
 .entry .entry-content > *.alignright,
-.entry .entry-summary > *.alignright {
+.entry .entry-summary > *.alignright,
+.entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *.alignright,
+.entry .entry-content > .wp-block-group > .wp-block-group__inner-container > *.alignright {
   /*rtl:ignore*/
   float: right;
@@ -5297,5 +5309,7 @@
 @media only screen and (min-width: 768px) {
   .entry .entry-content > *.alignright,
-  .entry .entry-summary > *.alignright {
+  .entry .entry-summary > *.alignright,
+  .entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *.alignright,
+  .entry .entry-content > .wp-block-group > .wp-block-group__inner-container > *.alignright {
     max-width: calc(4 * (100vw / 12));
     margin-right: 0;
@@ -5306,5 +5320,7 @@
 
 .entry .entry-content > *.aligncenter,
-.entry .entry-summary > *.aligncenter {
+.entry .entry-summary > *.aligncenter,
+.entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *.aligncenter,
+.entry .entry-content > .wp-block-group > .wp-block-group__inner-container > *.aligncenter {
   margin-left: auto;
   margin-right: auto;
@@ -5313,5 +5329,7 @@
 @media only screen and (min-width: 768px) {
   .entry .entry-content > *.aligncenter,
-  .entry .entry-summary > *.aligncenter {
+  .entry .entry-summary > *.aligncenter,
+  .entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *.aligncenter,
+  .entry .entry-content > .wp-block-group > .wp-block-group__inner-container > *.aligncenter {
     max-width: calc(8 * (100vw / 12) - 28px);
   }
@@ -5320,5 +5338,7 @@
 @media only screen and (min-width: 1168px) {
   .entry .entry-content > *.aligncenter,
-  .entry .entry-summary > *.aligncenter {
+  .entry .entry-summary > *.aligncenter,
+  .entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *.aligncenter,
+  .entry .entry-content > .wp-block-group > .wp-block-group__inner-container > *.aligncenter {
     max-width: calc(6 * (100vw / 12) - 28px);
   }
@@ -5327,8 +5347,20 @@
 @media only screen and (min-width: 768px) {
   .entry .entry-content > *.aligncenter,
-  .entry .entry-summary > *.aligncenter {
+  .entry .entry-summary > *.aligncenter,
+  .entry .entry-summary > .wp-block-group > .wp-block-group__inner-container > *.aligncenter,
+  .entry .entry-content > .wp-block-group > .wp-block-group__inner-container > *.aligncenter {
     margin-left: 0;
     margin-right: 0;
   }
+}
+
+.entry .entry-content > * > *:first-child,
+.entry .entry-summary > * > *:first-child {
+  margin-top: 0;
+}
+
+.entry .entry-content > * > *:last-child,
+.entry .entry-summary > * > *:last-child {
+  margin-bottom: 0;
 }
 
@@ -5749,4 +5781,16 @@
 .entry .entry-content .wp-block-image img {
   display: block;
+}
+
+@media only screen and (min-width: 768px) {
+  .entry .entry-content .wp-block-image:not(.alignwide):not(.alignfull) > img {
+    max-width: calc(8 * (100vw / 12) - 28px);
+  }
+}
+
+@media only screen and (min-width: 1168px) {
+  .entry .entry-content .wp-block-image:not(.alignwide):not(.alignfull) > img {
+    max-width: calc(6 * (100vw / 12) - 28px);
+  }
 }
 
@@ -6051,4 +6095,16 @@
 
 @media only screen and (min-width: 768px) {
+  .entry .entry-content .wp-block-columns .wp-block-image > img:not(.alignwide):not(.alignfull) {
+    max-width: 100%;
+  }
+}
+
+@media only screen and (min-width: 1168px) {
+  .entry .entry-content .wp-block-columns .wp-block-image > img:not(.alignwide):not(.alignfull) {
+    max-width: 100%;
+  }
+}
+
+@media only screen and (min-width: 768px) {
   .entry .entry-content .wp-block-columns {
     flex-wrap: nowrap;
@@ -6056,4 +6112,64 @@
   .entry .entry-content .wp-block-columns .wp-block-column:not(:first-child) {
     margin-left: 32px;
+  }
+}
+
+@media only screen and (min-width: 768px) {
+  .entry .entry-content .wp-block-group:not(.alignfull) > .wp-block-group__inner-container > .alignfull,
+  .entry .entry-content .wp-block-group:not(.alignfull) > .wp-block-group__inner-container > .wp-block-image > img {
+    left: 0;
+    max-width: 100%;
+  }
+}
+
+.entry .entry-content .wp-block-group.alignfull > .wp-block-group__inner-container {
+  max-width: calc(100% - (2 * 1rem));
+  margin: 0 1rem;
+}
+
+@media only screen and (min-width: 768px) {
+  .entry .entry-content .wp-block-group.alignfull > .wp-block-group__inner-container {
+    max-width: 80%;
+    margin: 0 10%;
+    padding: 0 60px;
+  }
+}
+
+.entry .entry-content .wp-block-group.has-background {
+  padding: 1rem;
+  margin-top: 0;
+  margin-bottom: 0;
+}
+
+.entry .entry-content .wp-block-group.has-background .wp-block-group__inner-container > *:first-child {
+  margin-top: 0;
+}
+
+.entry .entry-content .wp-block-group.has-background .wp-block-group__inner-container > *:last-child {
+  margin-bottom: 0;
+}
+
+.entry .entry-content .wp-block-group.has-background.alignfull {
+  padding-left: 0;
+  padding-right: 0;
+}
+
+@media only screen and (min-width: 768px) {
+  .entry .entry-content .wp-block-group.has-background.alignfull {
+    padding-top: 1rem;
+    padding-bottom: 1rem;
+  }
+}
+
+.entry .entry-content .wp-block-group.has-background:not(.alignfull) > .wp-block-group__inner-container > .alignfull {
+  width: 100%;
+  max-width: 100%;
+}
+
+@media only screen and (min-width: 768px) {
+  .entry .entry-content .wp-block-group.has-background:not(.alignfull) > .wp-block-group__inner-container > .alignfull {
+    width: calc( 100% + 2rem);
+    max-width: calc( 100% + 2rem);
+    margin-left: -1rem;
   }
 }
