diff --git a/wp-content/languages/themes/twentytwenty-sv_SE.mo b/wp-content/languages/themes/twentytwenty-sv_SE.mo
new file mode 100644
index 000000000..f15b5b321
Binary files /dev/null and b/wp-content/languages/themes/twentytwenty-sv_SE.mo differ
diff --git a/wp-content/languages/themes/twentytwenty-sv_SE.po b/wp-content/languages/themes/twentytwenty-sv_SE.po
new file mode 100644
index 000000000..9ea8619fd
--- /dev/null
+++ b/wp-content/languages/themes/twentytwenty-sv_SE.po
@@ -0,0 +1,537 @@
+# Translation of Themes - Twenty Twenty in Swedish
+# This file is distributed under the same license as the Themes - Twenty Twenty package.
+msgid ""
+msgstr ""
+"PO-Revision-Date: 2020-03-31 20:55:08+0000\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: GlotPress/2.4.0-alpha\n"
+"Language: sv_SE\n"
+"Project-Id-Version: Themes - Twenty Twenty\n"
+
+#. Description of the theme
+msgid "Our default theme for 2020 is designed to take full advantage of the flexibility of the block editor. Organizations and businesses have the ability to create dynamic landing pages with endless layouts using the group and column blocks. The centered content column and fine-tuned typography also makes it perfect for traditional blogs. Complete editor styles give you a good idea of what your content will look like, even before you publish. You can give your site a personal touch by changing the background colors and the accent color in the Customizer. The colors of all elements on your site are automatically calculated based on the colors you pick, ensuring a high, accessible color contrast for your visitors."
+msgstr "Vårt standardtema för 2020 är designat att till fullo tillvarata flexibiliteten i blockredigeraren. Organisationer och företag har möjlighet att skapa dynamiska landningssidor med ändlöst många layouter med hjälp av grupp- och kolumnblocken. Med en centrerad innehållskolumn och finjusterad typografi passar temat också perfekt för traditionella bloggar. Det har komplett styling för innehållsredigeraren, vilket innebär att du vet hur ditt innehåll kommer att se ut på din webbplats redan innan du publicerar. Du kan ge din webbplats en personlig känsla genom att ändra bakgrundsfärgerna och accentfärgen i anpassaren. Färgerna på alla element på webbplatsen beräknas automatiskt baserat på de färger du valt, något som garanterar att din webbplats kommer att ha en hög och tillgänglighetsanpassad färgkontrast."
+
+#. Theme Name of the theme
+msgid "Twenty Twenty"
+msgstr "Twenty Twenty"
+
+#: classes/class-twentytwenty-customize.php:246
+msgid "Show author bio"
+msgstr "Visa författarbiografi"
+
+#: template-parts/entry-author-bio.php:29
+msgid "View Archive → "
+msgstr "Visa arkiv → "
+
+#: inc/starter-content.php:38
+msgctxt "Theme starter content"
+msgid "The New UMoMA Opens its Doors"
+msgstr "Nya UMoMA välkomnar allmänheten"
+
+#: inc/template-tags.php:393
+msgctxt "A string that is output before one or more categories"
+msgid "In"
+msgstr "I"
+
+#: inc/starter-content.php:150
+msgid "Join the Club"
+msgstr "Gå med i klubben"
+
+#: inc/starter-content.php:147
+msgid "Members get access to exclusive exhibits and sales. Our memberships cost $99.99 and are billed annually."
+msgstr "Medlemmar får tillgång till exklusiva utställningar och marknader. Medlemskap kostar 99,99 USD och debiteras en gång per år."
+
+#: inc/starter-content.php:144
+msgid "Become a Member and Get Exclusive Offers!"
+msgstr "Bli medlem och få exklusiva erbjudanden!"
+
+#: inc/starter-content.php:136
+msgid "The exhibitions are produced by UMoMA in collaboration with artists and museums around the world and they often attract international attention. UMoMA has received a Special Commendation from the European Museum of the Year, and was among the top candidates for the Swedish Museum of the Year Award as well as for the Council of Europe Museum Prize."
+msgstr "Utställningarna produceras av UMoMA i samarbete med konstnärer och muséer från hela världen och uppmärksammas ofta internationellt. UMoMA har betecknats som ”Årets europeiska museum” och var en av toppkandidaterna till priset ”Årets svenska museum” och även Europarådets museipris."
+
+#: inc/starter-content.php:133
+msgid "With seven floors of striking architecture, UMoMA shows exhibitions of international contemporary art, sometimes along with art historical retrospectives. Existential, political and philosophical issues are intrinsic to our programme. As visitor you are invited to guided tours artist talks, lectures, film screenings and other events with free admission"
+msgstr "I sju våningar effektfull arkitektur visar UMoMA utställningar med internationell modern konst, emellanåt kombinerat med konsthistoriska återblickar. Vårt program genomsyras av existentiella, politiska och filosofiska frågeställningar. Som besökare är du välkommen till visningar, möten med konstnärer, föreläsningar, filmvisningar och andra evenemang med fri entré"
+
+#: inc/starter-content.php:129
+msgid "“Cyborgs, as the philosopher Donna Haraway established, are not reverent. They do not remember the cosmos.”"
+msgstr "”Cyborgar är, enligt filosofen Donna Haraway, inte vördnadsfulla. De minns inte kosmos.”"
+
+#: inc/starter-content.php:113
+msgid "From Signac to Matisse"
+msgstr "Från Signac till Matisse"
+
+#: inc/starter-content.php:98
+msgid "The Life I Deserve"
+msgstr "Livet jag förtjänar"
+
+#: inc/starter-content.php:84 inc/starter-content.php:116
+msgid "October 1 -- December 1"
+msgstr "1 oktober – 1 december"
+
+#: inc/starter-content.php:81
+msgid "Theatre of Operations"
+msgstr "Operationsteatern"
+
+#: inc/starter-content.php:72 inc/starter-content.php:87
+#: inc/starter-content.php:104 inc/starter-content.php:119
+msgid "Read More"
+msgstr "Läs mer"
+
+#: inc/starter-content.php:69 inc/starter-content.php:101
+msgid "August 1 -- December 1"
+msgstr "1 augusti – 1 december"
+
+#: inc/starter-content.php:66
+msgid "Works and Days"
+msgstr "Verk och dagar"
+
+#: inc/starter-content.php:55
+msgid "The premier destination for modern art in Northern Sweden. Open from 10 AM to 6 PM every day during the summer months."
+msgstr "Det viktigaste resmålet för modern konst i Norrland. Öppet kl. 10–18 varje dag under sommaren."
+
+#: inc/starter-content.php:47
+msgid "The New UMoMA Opens its Doors"
+msgstr "Nya UMoMA välkomnar allmänheten"
+
+#: classes/class-twentytwenty-customize.php:395
+msgid "Overlay Opacity"
+msgstr "Överläggets opacitet"
+
+#: classes/class-twentytwenty-customize.php:375
+msgid "The color used for the text in the overlay."
+msgstr "Färgen som används för texten i överlägget."
+
+#: classes/class-twentytwenty-customize.php:374
+msgid "Overlay Text Color"
+msgstr "Överläggets textfärg"
+
+#: classes/class-twentytwenty-customize.php:353
+msgid "The color used for the overlay. Defaults to the accent color."
+msgstr "Färgen som används för överlägget. Som standard är accentfärgen."
+
+#: classes/class-twentytwenty-customize.php:352
+msgid "Overlay Background Color"
+msgstr "Överläggets bakgrundsfärg"
+
+#: classes/class-twentytwenty-customize.php:283
+msgid "Settings for the \"Cover Template\" page template. Add a featured image to use as background."
+msgstr "Inställningar för sidmallen ”Omslagsmall”. Lägg till en utvald bild för att använda den som bakgrund."
+
+#: classes/class-twentytwenty-customize.php:183
+msgid "Apply a custom color for links, buttons, featured images."
+msgstr "Tillämpa en anpassad färg för länkar, knappar och utvalda bilder."
+
+#: classes/class-twentytwenty-customize.php:126
+msgid "Custom"
+msgstr "Anpassad"
+
+#: classes/class-twentytwenty-customize.php:125
+msgid "Default"
+msgstr "Standard"
+
+#: classes/class-twentytwenty-customize.php:123
+msgid "Primary Color"
+msgstr "Primär färg"
+
+#: searchform.php:24 template-parts/modal-search.php:20
+msgid "Search for:"
+msgstr "Sök efter:"
+
+#: index.php:99
+msgid "search again"
+msgstr "sök igen"
+
+#. translators: %s: Number of search results.
+#: index.php:39
+msgid "We found %s result for your search."
+msgid_plural "We found %s results for your search."
+msgstr[0] "Din sökning gav %s resultat."
+msgstr[1] "Din sökning gav %s resultat."
+
+#. translators: %s: HTML character for up arrow.
+#: footer.php:49
+msgid "Up %s"
+msgstr "Upp %s"
+
+#. translators: %s: HTML character for up arrow.
+#: footer.php:43
+msgid "To the top %s"
+msgstr "Till toppen %s"
+
+#. translators: Copyright date format, see https://www.php.net/date
+#: footer.php:25
+msgctxt "copyright date format"
+msgid "Y"
+msgstr "Y"
+
+#: 404.php:24
+msgid "404 not found"
+msgstr "404 – hittades inte"
+
+#. Template Name of the theme
+msgid "Full Width Template"
+msgstr "Fullbreddsmall"
+
+#: template-parts/pagination.php:25
+msgid "Older Posts "
+msgstr "Tidigare inlägg "
+
+#: template-parts/pagination.php:21
+msgid "Newer Posts "
+msgstr "Senare inlägg "
+
+#: template-parts/navigation.php:25
+msgid "Post"
+msgstr "Inlägg"
+
+#: template-parts/modal-search.php:26
+msgid "Close search"
+msgstr "Stäng sökningen"
+
+#: template-parts/modal-menu.php:117
+msgid "Expanded Social links"
+msgstr "Expanderade sociala länkar"
+
+#: template-parts/modal-menu.php:73
+msgid "Mobile"
+msgstr "Mobil"
+
+#: template-parts/modal-menu.php:48
+msgid "Expanded"
+msgstr "Expanderad"
+
+#: template-parts/modal-menu.php:21
+msgid "Close Menu"
+msgstr "Stäng menyn"
+
+#: template-parts/footer-menus-widgets.php:57
+msgid "Social links"
+msgstr "Sociala länkar"
+
+#: template-parts/footer-menus-widgets.php:37
+msgid "Footer"
+msgstr "Sidfot"
+
+#. translators: %s: Author name.
+#: inc/template-tags.php:354 template-parts/entry-author-bio.php:20
+msgid "By %s"
+msgstr "Av %s"
+
+#: template-parts/content-cover.php:138 template-parts/content.php:48
+msgid "Pages:"
+msgstr "Sidor:"
+
+#: template-parts/content-cover.php:138 template-parts/content.php:48
+msgid "Page"
+msgstr "Sida"
+
+#: template-parts/content-cover.php:88
+msgid "Scroll Down"
+msgstr "Rulla ned"
+
+#: searchform.php:27
+msgctxt "submit button"
+msgid "Search"
+msgstr "Sök"
+
+#: searchform.php:25
+msgctxt "placeholder"
+msgid "Search …"
+msgstr "Sök …"
+
+#: index.php:48
+msgid "We could not find any results for your search. You can give it another try through the search form below."
+msgstr "Din sökning gav inga matchande resultat. Du kan prova det igen med hjälp av nedanstående sökformulär."
+
+#: index.php:32
+msgid "Search:"
+msgstr "Sök:"
+
+#. translators: %s: Post title. Only visible to screen readers.
+#: inc/template-tags.php:206
+msgid "Edit %s "
+msgstr "Redigera %s "
+
+#: inc/template-tags.php:445
+msgid "Sticky post"
+msgstr "Klistrat inlägg"
+
+#: inc/template-tags.php:407
+msgid "Tags"
+msgstr "Etiketter"
+
+#: inc/template-tags.php:389 template-parts/entry-header.php:36
+#: template-parts/content-cover.php:70
+msgid "Categories"
+msgstr "Kategorier"
+
+#: inc/template-tags.php:371
+msgid "Post date"
+msgstr "Inläggsdatum"
+
+#: inc/template-tags.php:347
+msgid "Post author"
+msgstr "Inläggsförfattare"
+
+#: inc/starter-content.php:196
+msgid "Social Links Menu"
+msgstr "Meny för sociala länkar"
+
+#: inc/starter-content.php:176 inc/starter-content.php:186 functions.php:494
+msgid "Primary"
+msgstr "Huvudmeny"
+
+#: header.php:88
+msgid "Horizontal"
+msgstr "Horisontell"
+
+#: header.php:76 header.php:137
+msgid "Menu"
+msgstr "Meny"
+
+#: header.php:53 header.php:157
+msgid "Search"
+msgstr "Sök"
+
+#: template-parts/content.php:36
+msgid "Continue reading"
+msgstr "Fortsätt läsa"
+
+#: functions.php:551
+msgctxt "Short name of the larger font size in the block editor."
+msgid "XL"
+msgstr "XL"
+
+#: functions.php:550
+msgctxt "Name of the larger font size in the block editor"
+msgid "Larger"
+msgstr "Större"
+
+#: functions.php:545
+msgctxt "Short name of the large font size in the block editor."
+msgid "L"
+msgstr "L"
+
+#: functions.php:544
+msgctxt "Name of the large font size in the block editor"
+msgid "Large"
+msgstr "Stor"
+
+#: functions.php:539
+msgctxt "Short name of the regular font size in the block editor."
+msgid "M"
+msgstr "M"
+
+#: functions.php:538
+msgctxt "Name of the regular font size in the block editor"
+msgid "Regular"
+msgstr "Normal"
+
+#: functions.php:533
+msgctxt "Short name of the small font size in the block editor."
+msgid "S"
+msgstr "S"
+
+#: functions.php:532
+msgctxt "Name of the small font size in the block editor"
+msgid "Small"
+msgstr "Liten"
+
+#: functions.php:517
+msgid "Background Color"
+msgstr "Bakgrundsfärg"
+
+#: functions.php:504
+msgid "Subtle Background"
+msgstr "Subtil bakgrund"
+
+#: functions.php:499
+msgid "Secondary"
+msgstr "Sekundär"
+
+#: functions.php:489
+msgid "Accent Color"
+msgstr "Accentfärg"
+
+#: functions.php:380
+msgid "Widgets in this area will be displayed in the second column in the footer."
+msgstr "Widgetar i detta område kommer att visas i sidfotens andra kolumn."
+
+#: functions.php:378
+msgid "Footer #2"
+msgstr "Sidfot 2"
+
+#: functions.php:368
+msgid "Widgets in this area will be displayed in the first column in the footer."
+msgstr "Widgetar i detta område kommer att visas i sidfotens första kolumn."
+
+#: functions.php:366
+msgid "Footer #1"
+msgstr "Sidfot 1"
+
+#: functions.php:341
+msgid "Skip to the content"
+msgstr "Hoppa till innehåll"
+
+#: functions.php:262
+msgid "Social Menu"
+msgstr "Social meny"
+
+#: functions.php:261
+msgid "Footer Menu"
+msgstr "Sidfotsmeny"
+
+#: functions.php:260
+msgid "Mobile Menu"
+msgstr "Mobilmeny"
+
+#: functions.php:259
+msgid "Desktop Expanded Menu"
+msgstr "Utökad meny för datorskärm"
+
+#: functions.php:258
+msgid "Desktop Horizontal Menu"
+msgstr "Horisontell meny för datorskärm"
+
+#: footer.php:33
+msgid "Powered by WordPress"
+msgstr "Drivs med WordPress"
+
+#: comments.php:127
+msgid "Comments are closed."
+msgstr "Stängt för kommentering."
+
+#: comments.php:88
+msgid "Comments"
+msgstr "Kommentarer"
+
+#: comments.php:75
+msgid "Older Comments"
+msgstr "Tidigare kommentarer"
+
+#: comments.php:74
+msgid "Newer Comments"
+msgstr "Senare kommentarer"
+
+#. translators: 1: Number of comments, 2: Post title.
+#: comments.php:41
+msgctxt "comments title"
+msgid "%1$s reply on “%2$s”"
+msgid_plural "%1$s replies on “%2$s”"
+msgstr[0] "%1$s svar på ”%2$s”"
+msgstr[1] "%1$s svar på ”%2$s”"
+
+#. translators: %s: Post title.
+#: comments.php:37
+msgctxt "comments title"
+msgid "One reply on “%s”"
+msgstr "Ett svar på ”%s”"
+
+#: comments.php:34
+msgid "Leave a comment"
+msgstr "Lämna en kommentar"
+
+#: classes/class-twentytwenty-walker-page.php:107 inc/template-tags.php:555
+msgid "Show sub menu"
+msgstr "Visa undermeny"
+
+#. translators: %d: ID of a post.
+#: classes/class-twentytwenty-walker-page.php:70
+msgid "#%d (no title)"
+msgstr "#%d (utan rubrik)"
+
+#: classes/class-twentytwenty-walker-comment.php:127
+msgid "By Post Author"
+msgstr "Av inläggets författare"
+
+#: classes/class-twentytwenty-walker-comment.php:92
+msgid "Your comment is awaiting moderation."
+msgstr "Din kommentar inväntar granskning."
+
+#: classes/class-twentytwenty-walker-comment.php:77
+msgid "Edit"
+msgstr "Redigera"
+
+#. translators: 1: Comment date, 2: Comment time.
+#: classes/class-twentytwenty-walker-comment.php:69
+msgid "%1$s at %2$s"
+msgstr "%1$s \\k\\l. %2$s"
+
+#: classes/class-twentytwenty-walker-comment.php:56
+msgid "says:"
+msgstr "säger:"
+
+#: classes/class-twentytwenty-customize.php:396
+msgid "Make sure that the contrast is high enough so that the text is readable."
+msgstr "Se till att kontrasten är tillräckligt hög för att texten ska kunna läsas."
+
+#: classes/class-twentytwenty-customize.php:306
+msgid "Creates a parallax effect when the visitor scrolls."
+msgstr "Skapar en parallax-effekt när besökaren rullar sidan."
+
+#: classes/class-twentytwenty-customize.php:305
+msgid "Fixed Background Image"
+msgstr "Fast bakgrundsbild"
+
+#. Template Name of the theme
+#: classes/class-twentytwenty-customize.php:281
+msgid "Cover Template"
+msgstr "Omslagsmall"
+
+#: classes/class-twentytwenty-customize.php:270
+msgid "Summary"
+msgstr "Sammanfattning"
+
+#: classes/class-twentytwenty-customize.php:269
+msgid "Full text"
+msgstr "Hela texten"
+
+#: classes/class-twentytwenty-customize.php:267
+msgid "On archive pages, posts show:"
+msgstr "På arkivsidor visar inläggen:"
+
+#: classes/class-twentytwenty-customize.php:225
+msgid "Show search in header"
+msgstr "Visa sökfunktion i sidhuvudet"
+
+#: classes/class-twentytwenty-customize.php:202
+msgid "Theme Options"
+msgstr "Temainställningar"
+
+#: classes/class-twentytwenty-customize.php:101
+msgid "Header & Footer Background Color"
+msgstr "Bakgrundsfärg för sidhuvud och sidfot"
+
+#: classes/class-twentytwenty-customize.php:82
+msgid "Scales the logo to half its uploaded size, making it sharp on high-res screens."
+msgstr "Minska loggan till hälften av dess uppladdade storlek, så det blir skarp på skärmar med hög upplösning."
+
+#: classes/class-twentytwenty-customize.php:81
+msgid "Retina logo"
+msgstr "Retina-logga"
+
+#: 404.php:19
+msgid "The page you were looking for could not be found. It might have been removed, renamed, or did not exist in the first place."
+msgstr "Sidan du försökte hämta kunde inte hittas. Den kan ha tagits bort, bytt namn eller kanske aldrig har funnits."
+
+#: 404.php:17
+msgid "Page Not Found"
+msgstr "Sidan hittades inte"
+
+#. Author URI of the theme
+#: footer.php:32
+msgid "https://wordpress.org/"
+msgstr "https://wordpress.org/"
+
+#. Author of the theme
+msgid "the WordPress team"
+msgstr "WordPress-teamet"
+
+#. Theme URI of the theme
+msgid "https://wordpress.org/themes/twentytwenty/"
+msgstr "https://wordpress.org/themes/twentytwenty/"
\ No newline at end of file
diff --git a/wp-content/themes/twentytwenty/.stylelintrc.json b/wp-content/themes/twentytwenty/.stylelintrc.json
new file mode 100644
index 000000000..f88810795
--- /dev/null
+++ b/wp-content/themes/twentytwenty/.stylelintrc.json
@@ -0,0 +1,12 @@
+{
+ "extends": [
+ "stylelint-config-wordpress"
+ ],
+ "plugins": ["stylelint-a11y"],
+ "rules": {
+ "font-family-no-missing-generic-family-keyword": null,
+ "no-descending-specificity": null,
+ "a11y/no-outline-none": true,
+ "a11y/selector-pseudo-class-focus": true
+ }
+}
diff --git a/wp-content/themes/twentytwenty/404.php b/wp-content/themes/twentytwenty/404.php
new file mode 100644
index 000000000..9327d0bbf
--- /dev/null
+++ b/wp-content/themes/twentytwenty/404.php
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+ __( '404 not found', 'twentytwenty' ),
+ )
+ );
+ ?>
+
+
+
+
+
+
+
+ * {
+ font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
+ font-size: 18px;
+}
+
+@supports ( font-variation-settings: normal ) {
+
+ .editor-styles-wrapper > * {
+ font-family: "Inter var", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
+ }
+
+}
+
+.block-editor-default-block-appender textarea.block-editor-default-block-appender__content {
+ color: inherit;
+ font-family: inherit;
+ font-size: inherit;
+}
+
+.block-editor-block-list__empty-block-inserter .block-editor-inserter__toggle:not(:hover):not(:focus),
+.block-editor-default-block-appender .block-editor-inserter .block-editor-inserter__toggle:not(:hover):not(:focus) {
+ color: inherit;
+}
+
+
+/* Fonts ------------------------------------- */
+
+/*
+ * Chrome renders extra-wide characters for the Hoefler Text font.
+ * This results in a jumping cursor when typing in both the Classic and block
+ * editors. The following font-face override fixes the issue by manually
+ * inserting a custom font that includes just a Hoefler Text space replacement
+ * for that character instead.
+ */
+@font-face {
+ font-family: NonBreakingSpaceOverride;
+ src: url(data:application/font-woff2;charset=utf-8;base64,d09GMgABAAAAAAMoAA0AAAAACDQAAALTAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0ZGVE0cGh4GYACCahEICjx3CywAATYCJANUBCAFhiEHgWwbXQfILgpsY+rQRRARwyAs6uL7pxzYhxEE+32b3aeHmifR6tklkS9hiZA0ewkqGRJE+H7/+6378ASViK/PGeavqJyOzsceKi1s3BCiQsiOdn1r/RBgIJYEgCUhbm/8/8/h4saPssnTNkkiWUBrTRtjmQSajw3Ui3pZ3LYDPD+XG2C3JA/yKAS8/rU5eNfuGqRf4eNNgV4YAlIIgxglEkWe6FYpq10+wi3g+/nUgvgPFczNrz/RsTgVm/zfbPuHZlsuQECxuyqBcQwKFBjFgKO8AqP4bAN9tFJtnM9xPcbNjeXS/x1wY/xU52f5W/X1+9cnH4YwKIaoRRAkUkj/YlAAeF/624foiIDBgBmgQBeGAyhBljUPZUm/l2dTvmpqcBDUOHdbPZWd8JsBAsGr4w8/EDn82/bUPx4eh0YNrQTBuHO2FjQEAGBwK0DeI37DpQVqdERS4gZBhpeUhWCfLFz7J99aEBgsJCHvUGAdAPp4IADDCAPCEFMGpMZ9AQpTfQtQGhLbGVBZFV8BaqNyP68oTZgHNj3M8kBPfXTTC9t90UuzYhy9ciH0grVlOcqyCytisvbsERsEYztiznR0WCrmTksJwbSNK6fd1Rvr25I9oLvctUoEbNOmXJbqgYgPXEHJ82IUsrCnpkxh23F1rfZ2zcRnJYoXtauB3VTFkFXQg3uoZYD5qE0kdjDtoDoF1h2bulGmev5HbYhbrjtohQSRI4aNOkffIcT+d3v6atpaYh3JvPoQsztCcqvaBkppDSPcQ3bw3KaCBo1f5CJWTZEgW3LjLofYg51MaVezrx8xZitYbQ9KYeoRaqQdVLwSEfrKXLK1otCWOKNdR/YwYAfon5Yk8O2MJfSD10dPGA5PIJJQMkah0ugMJiv6x4Dm7LEa8xnrRGGGLAg4sAlbsA07sAt76DOsXKO3hIjtIlpnnFrt1qW4kh6NhS83P/6HB/fl1SMAAA==) format("woff2"), url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAUQAA0AAAAACDQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAE9AAAABwAAAAchf5yU0dERUYAAATYAAAAHAAAAB4AJwAbT1MvMgAAAaAAAABJAAAAYJAcgU5jbWFwAAACIAAAAF4AAAFqUUxBZ2dhc3AAAATQAAAACAAAAAgAAAAQZ2x5ZgAAApAAAAAyAAAAPL0n8y9oZWFkAAABMAAAADAAAAA2Fi93Z2hoZWEAAAFgAAAAHQAAACQOSgWaaG10eAAAAewAAAAzAAAAVC7TAQBsb2NhAAACgAAAABAAAAAsAOQBAm1heHAAAAGAAAAAHQAAACAAWQALbmFtZQAAAsQAAAF6AAADIYvD/Adwb3N0AAAEQAAAAI4AAADsapk2o3jaY2BkYGAA4ov5mwzj+W2+MnCzXwCKMNzgCBSB0LfbQDQ7AxuI4mBgAlEAFKQIRHjaY2BkYGD3+NvCwMDBAALsDAyMDKhAFAA3+wH3AAAAeNpjYGRgYBBl4GBgYgABEMnIABJzAPMZAAVmAGUAAAB42mNgZlJhnMDAysDCKsKygYGBYRqEZtrDYMT4D8gHSmEHjgUFOQwODAqqf9g9/rYwMLB7MNUAhRlBcsxBrMlASoGBEQAj8QtyAAAAeNrjYGBkAAGmWQwMjO8gmBnIZ2NA0ExAzNjAAFYJVn0ASBsD6VAIDZb7AtELAgANIgb9AHjaY2BgYGaAYBkGRgYQSAHyGMF8FgYPIM3HwMHAxMDGoMCwQIFLQV8hXvXP//9AcRCfAcb///h/ygPW+w/vb7olBjUHCTCyMcAFGZmABBO6AogThgZgIUsXAEDcEzcAAHjaY2BgECMCyoEgACZaAed42mNgYmRgYGBnYGNgYAZSDJqMgorCgoqCjECRXwwNrCAKSP5mAAFGBiRgyAAAi/YFBQAAeNqtkc1OwkAUhU/5M25cEhcsZick0AwlBJq6MWwgJkAgYV/KAA2lJeUn+hY+gktXvpKv4dLTMqKycGHsTZNv7px7z50ZAFd4hYHjdw1Ls4EiHjVncIFnzVnc4F1zDkWjrzmPW+NNcwGlzIRKI3fJlUyrEjZQxb3mDH2fNGfRx4vmHKqG0JzHg6E0F9DOlFBGBxUI1GEzLNT4S0aLuTtsGAEUuYcQHkyg3KmIum1bNUvKlrjbbAIleqHHnS4iSudpQcySMYtdFiXlAxzSbAwfMxK6kZoHKhbjjespMTioOPZnzI+4ucCeTVyKMVKLfeAS6vSWaTinuZwzyy/Dc7vaed+6KaV0kukdPUk6yOcctZPvvxxqksq2lEW8RvHjMEO2FCl/zy6p3NEm0R9OFSafJdldc4QVeyaaObMBO0/5cCaa6d9Ggyubxire+lEojscdjoWUR1xGOy8KD8mG2ZLO2l2paDc3A39qmU2z2W5YNv5+u79e6QfGJY/hAAB42m3NywrCMBQE0DupWp/1AYI7/6DEaLQu66Mrd35BKUWKJSlFv1+rue4cGM7shgR981qSon+ZNwUJ8iDgoYU2OvDRRQ99DDDECAHGmGCKmf80hZSx/Kik/LliFbtmN6xmt+yOjdg9GztV4tROnRwX/Bsaaw51nt4Lc7tWaZYHp/MlzKx51LZs5htNri+2AAAAAQAB//8AD3jaY2BkYGDgAWIxIGZiYARCESBmAfMYAAR6AEMAAAABAAAAANXtRbgAAAAA2AhRFAAAAADYCNuG) format("woff");
+}
+
+/* ----------------------------------------------
+Inter variable font. Usage:
+
+@supports (font-variation-settings: normal) {
+ html { font-family: "Inter var", sans-serif; }
+}
+---------------------------------------------- */
+
+@font-face {
+ font-family: "Inter var";
+ font-weight: 100 900; /* stylelint-disable-line font-weight-notation */
+ font-style: normal;
+ src: url(../fonts/inter/Inter-upright-var.woff2) format("woff2");
+}
+
+@font-face {
+ font-family: "Inter var";
+ font-weight: 100 900; /* stylelint-disable-line font-weight-notation */
+ font-style: italic;
+ src: url(../fonts/inter/Inter-italic-var.woff2) format("woff2");
+}
+
+/* Structure --------------------------------- */
+
+.wp-block {
+ max-width: 610px;
+}
+
+.wp-block[data-align="wide"] .wp-block[data-align="wide"],
+.wp-block[data-align="full"] .wp-block[data-align="wide"] {
+ max-width: 1200px;
+}
+
+.wp-block .wp-block[data-type="core/group"]:not([data-align="full"]):not([data-align="wide"]):not([data-align="left"]):not([data-align="right"]),
+.wp-block .wp-block[data-type="core/cover"]:not([data-align="full"]):not([data-align="wide"]):not([data-align="left"]):not([data-align="right"]) {
+ margin-right: auto;
+ margin-left: auto;
+ max-width: 610px;
+}
+
+.wp-block .wp-block[data-align="full"] {
+ margin-right: 0;
+ margin-left: 0;
+}
+
+*[data-align="right"] .wp-block-edit,
+*[data-align="left"] .wp-block-edit {
+ max-width: 50%;
+}
+
+.wp-block[data-align="wide"] {
+ max-width: 1200px;
+}
+
+.wp-block[data-align="full"] {
+ max-width: none;
+}
+
+.editor-styles-wrapper .editor-rich-text__tinymce,
+.editor-styles-wrapper .editor-rich-text__tinymce.mce-content-body {
+ line-height: 1.5;
+}
+
+
+/* Font Families ------------------------------ */
+
+.editor-styles-wrapper p,
+.editor-styles-wrapper ol,
+.editor-styles-wrapper ul,
+.editor-styles-wrapper dl,
+.editor-styles-wrapper dt {
+ font-family: NonBreakingSpaceOverride, "Hoefler Text", Garamond, "Times New Roman", serif;
+ letter-spacing: normal;
+}
+
+.editor-post-title__block .editor-post-title__input,
+.editor-styles-wrapper .wp-block h1,
+.editor-styles-wrapper .wp-block h2,
+.editor-styles-wrapper .wp-block h3,
+.editor-styles-wrapper .wp-block h4,
+.editor-styles-wrapper .wp-block h5,
+.editor-styles-wrapper .wp-block h6,
+.editor-styles-wrapper .has-drop-cap:not(:focus)::first-letter,
+.editor-styles-wrapper cite,
+.editor-styles-wrapper figcaption,
+.editor-styles-wrapper .wp-caption-text {
+ font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
+}
+
+@supports ( font-variation-settings: normal ) {
+
+ .editor-post-title__block .editor-post-title__input,
+ .editor-styles-wrapper .wp-block h1,
+ .editor-styles-wrapper .wp-block h2,
+ .editor-styles-wrapper .wp-block h3,
+ .editor-styles-wrapper .wp-block h4,
+ .editor-styles-wrapper .wp-block h5,
+ .editor-styles-wrapper .wp-block h6,
+ .editor-styles-wrapper .has-drop-cap:not(:focus)::first-letter,
+ .editor-styles-wrapper cite,
+ .editor-styles-wrapper figcaption,
+ .editor-styles-wrapper .wp-caption-text {
+ font-family: "Inter var", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
+ }
+
+}
+
+
+/* Colors ------------------------------------ */
+
+/* CUSTOM COLORS */
+
+:root .has-accent-color {
+ color: #cd2653;
+}
+
+:root .has-accent-background-color {
+ background-color: #cd2653;
+ color: #fff;
+}
+
+:root .has-primary-color {
+ color: #000;
+}
+
+:root .has-primary-background-color {
+ background-color: #000;
+ color: #f5efe0;
+}
+
+:root .has-secondary-color {
+ color: #6d6d6d;
+}
+
+:root .has-secondary-background-color {
+ background-color: #6d6d6d;
+ color: #fff;
+}
+
+:root .has-subtle-background-color {
+ color: #dcd7ca;
+}
+
+:root .has-subtle-background-background-color {
+ background-color: #dcd7ca;
+ color: #000;
+}
+
+:root .has-background-color {
+ color: #f5efe0;
+}
+
+:root .has-background-background-color {
+ background-color: #f5efe0;
+ color: #000;
+}
+
+/* GENERAL COLORS */
+
+.has-black-background-color {
+ background-color: #000;
+ color: #fff;
+}
+
+.has-white-background-color {
+ background-color: #fff;
+ color: #000;
+}
+
+.has-black-color {
+ color: #000;
+}
+
+.has-white-color {
+ color: #fff;
+}
+
+
+/* Typography -------------------------------- */
+
+.editor-styles-wrapper .editor-block-list__layout a {
+ color: #cd2653;
+ text-decoration: underline;
+}
+
+.editor-styles-wrapper a:focus,
+.editor-styles-wrapper a:hover {
+ text-decoration: none;
+}
+
+.editor-post-title__block .editor-post-title__input,
+.editor-styles-wrapper .wp-block h1,
+.editor-styles-wrapper .wp-block h2,
+.editor-styles-wrapper .wp-block h3,
+.editor-styles-wrapper .wp-block h4,
+.editor-styles-wrapper .wp-block h5,
+.editor-styles-wrapper .wp-block h6 {
+ font-feature-settings: "lnum";
+ font-variant-numeric: lining-nums;
+ font-weight: 700;
+ letter-spacing: -0.0415625em;
+ line-height: 1.25;
+ margin: 40px 0 25px;
+}
+
+.editor-post-title__block .editor-post-title__input,
+.editor-styles-wrapper .wp-block h1 {
+ font-size: 36px;
+ font-weight: 800;
+ line-height: 1.138888889;
+}
+
+.editor-styles-wrapper .wp-block h2 {
+ font-size: 32px;
+}
+
+.editor-styles-wrapper .wp-block h3 {
+ font-size: 28px;
+}
+
+.editor-styles-wrapper .wp-block h4 {
+ font-size: 24px;
+}
+
+.editor-styles-wrapper .wp-block h5 {
+ font-size: 21px;
+}
+
+.editor-styles-wrapper .wp-block h6 {
+ font-size: 16px;
+ letter-spacing: 0.03125em;
+ text-transform: uppercase;
+}
+
+.editor-styles-wrapper li,
+.editor-styles-wrapper p,
+.editor-styles-wrapper p.wp-block-paragraph {
+ line-height: 1.4;
+}
+
+/* POST TITLE */
+
+.wp-block.editor-post-title__block {
+ max-width: 1000px;
+}
+
+.editor-styles-wrapper .editor-post-title__block .editor-post-title__input {
+ margin: 0;
+ text-align: center;
+}
+
+/* DROP CAP */
+
+.editor-styles-wrapper .has-drop-cap:not(:focus)::first-letter {
+ color: #cd2653;
+ font-size: 5.1em;
+ font-weight: 800;
+ margin: 0.05em 0 0 0.1em;
+}
+
+
+/* Monospace --------------------------------- */
+
+.editor-styles-wrapper code,
+.editor-styles-wrapper kbd,
+.editor-styles-wrapper pre,
+.editor-styles-wrapper samp {
+ font-family: monospace;
+}
+
+.editor-styles-wrapper kbd,
+.editor-styles-wrapper pre,
+.editor-styles-wrapper samp {
+ border-radius: 0;
+ font-size: 0.75em;
+ padding: 4px 6px;
+}
+
+.editor-styles-wrapper pre {
+ border-color: #dcd7ca;
+ border-radius: 0;
+ line-height: 1.5;
+ padding: 1em;
+}
+
+
+/* Custom Text Sizes ------------------------- */
+
+.editor-styles-wrapper p.has-large-font-size.editor-rich-text__tinymce,
+.editor-styles-wrapper p.has-large-font-size.editor-rich-text__tinymce.mce-content-body,
+.editor-styles-wrapper p.has-larger-font-size.editor-rich-text__tinymce,
+.editor-styles-wrapper p.has-larger-font-size.editor-rich-text__tinymce.mce-content-body {
+ line-height: 1.4;
+}
+
+.editor-styles-wrapper p.has-small-font-size {
+ font-size: 0.842em;
+}
+
+.editor-styles-wrapper p.has-normal-font-size,
+.editor-styles-wrapper p.has-regular-font-size {
+ font-size: 1em;
+}
+
+.editor-styles-wrapper p.has-medium-font-size {
+ font-size: 1.1em;
+}
+
+.editor-styles-wrapper p.has-large-font-size {
+ font-size: 1.25em;
+}
+
+.editor-styles-wrapper p.has-larger-font-size {
+ font-size: 1.5em;
+}
+
+
+/* Post Media -------------------------------- */
+
+.editor-styles-wrapper figure {
+ margin: 0;
+}
+
+.editor-styles-wrapper .alignleft,
+.editor-styles-wrapper .alignright {
+ margin-bottom: 1.2em;
+ max-width: 260px;
+}
+
+.editor-styles-wrapper .wp-caption .alignleft,
+.editor-styles-wrapper .wp-caption .alignright {
+ margin-bottom: 0;
+}
+
+.editor-styles-wrapper .alignleft {
+ margin-left: 1em;
+}
+
+.editor-styles-wrapper .alignright {
+ margin-right: 1em;
+}
+
+.editor-styles-wrapper figcaption {
+ color: #6d6d6d;
+ font-size: 15px;
+ font-weight: 500;
+ line-height: 1.2;
+ margin-top: 5px;
+ text-align: inherit;
+}
+
+
+/* Forms ------------------------------------- */
+
+.editor-styles-wrapper fieldset {
+ border: 2px solid #dcd7ca;
+ padding: 20px;
+}
+
+.editor-styles-wrapper legend {
+ font-size: 0.85em;
+ font-weight: 700;
+ padding: 0 10px;
+}
+
+.editor-styles-wrapper label {
+ font-size: 15px;
+ font-weight: 600;
+}
+
+
+/* Block: Base Margins ---------------------- */
+
+/* Block: Shared Widget Styles -------------- */
+
+.editor-styles-wrapper ul.wp-block-archives,
+.editor-styles-wrapper ul.wp-block-categories,
+.editor-styles-wrapper ul.wp-block-latest-posts,
+.editor-styles-wrapper ul.wp-block-categories__list {
+ font-family: inherit;
+ list-style: none;
+ margin: 40px 0;
+ padding-right: 0;
+}
+
+.editor-styles-wrapper ul.wp-block-categories__list ul {
+ margin: 0;
+}
+
+.editor-styles-wrapper ul.wp-block-archives li,
+.editor-styles-wrapper ul.wp-block-categories li,
+.editor-styles-wrapper ul.wp-block-latest-posts li,
+.editor-styles-wrapper ul.wp-block-categories__list li {
+ color: #6d6d6d;
+ line-height: 1.476;
+ margin: 5px 0 0 0;
+}
+
+.editor-styles-wrapper ul.wp-block-archives li li,
+.editor-styles-wrapper ul.wp-block-categories li li,
+.editor-styles-wrapper ul.wp-block-categories__list li li,
+.editor-styles-wrapper ul.wp-block-latest-posts li li {
+ margin-right: 20px;
+}
+
+.editor-styles-wrapper .wp-block-archives li > a,
+.editor-styles-wrapper .wp-block-categories li > a,
+.editor-styles-wrapper .wp-block-latest-posts li > a {
+ font-weight: 700;
+ text-decoration: none;
+}
+
+.editor-styles-wrapper .wp-block-archives li > a:focus,
+.editor-styles-wrapper .wp-block-archives li > a:hover,
+.editor-styles-wrapper .wp-block-categories li > a:focus,
+.editor-styles-wrapper .wp-block-categories li > a:hover,
+.editor-styles-wrapper .wp-block-latest-posts li > a:focus,
+.editor-styles-wrapper .wp-block-latest-posts li > a:hover {
+ font-weight: 700;
+ text-decoration: none;
+}
+
+.editor-styles-wrapper .wp-block-archives.aligncenter,
+.editor-styles-wrapper .wp-block-categories.aligncenter {
+ text-align: center;
+}
+
+.editor-styles-wrapper .wp-block-latest-comments time,
+.editor-styles-wrapper .wp-block-latest-posts time {
+ color: #6d6d6d;
+ font-size: 0.7em;
+ font-weight: 600;
+ letter-spacing: normal;
+ line-height: 1.476;
+ margin-top: 0.15em;
+}
+
+
+/* Block: Table ------------------------------ */
+
+.editor-styles-wrapper .wp-block-table {
+ border-collapse: collapse;
+ border-spacing: 0;
+ empty-cells: show;
+ font-size: 18px;
+ margin-bottom: 1.1em;
+ width: 100%;
+}
+
+.editor-styles-wrapper .wp-block-table,
+.editor-styles-wrapper .wp-block-table * {
+ border-color: #dcd7ca;
+}
+
+.editor-styles-wrapper .wp-block-table tr {
+ border: none;
+}
+
+.editor-styles-wrapper .wp-block-table caption {
+ background: #dcd7ca;
+ text-align: center;
+}
+
+.editor-styles-wrapper .wp-block-table th,
+.editor-styles-wrapper .wp-block-table td {
+ line-height: 1.4;
+ margin: 0;
+ overflow: visible;
+ padding: 0;
+}
+
+.editor-styles-wrapper .wp-block-table .wp-block-table__cell-content {
+ padding: 0.5em;
+}
+
+.editor-styles-wrapper .wp-block-table thead {
+ vertical-align: bottom;
+ white-space: nowrap;
+ text-align: inherit;
+}
+
+.editor-styles-wrapper .wp-block-table th {
+ font-weight: 700;
+ text-align: inherit; /* Prevents the header from being centered by default*/
+}
+
+.editor-styles-wrapper .wp-block-table th.has-text-align-center {
+ text-align: center;
+}
+
+.editor-styles-wrapper .wp-block-table th.has-text-align-right {
+ text-align: left;
+}
+
+.editor-styles-wrapper .wp-block-table th.has-text-align-left {
+ text-align: right;
+}
+
+/* STYLE: STRIPES */
+
+.editor-styles-wrapper .wp-block-table.is-style-stripes {
+ border: 1px solid #dcd7ca;
+}
+
+.editor-styles-wrapper .wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
+ background: #dcd7ca;
+}
+
+
+/* Block: Separator -------------------------- */
+
+hr.wp-block-separator {
+ border-top: 1px solid #6d6d6d;
+ color: #6d6d6d;
+ margin: 30px 0;
+}
+
+hr.wp-block-separator:not(.is-style-wide):not(.is-style-dots) {
+ max-width: 100%;
+}
+
+hr.wp-block-separator:not(.is-style-dots) {
+ background: linear-gradient(to right, currentColor calc(50% - 16px), transparent calc(50% - 16px), transparent calc(50% + 16px), currentColor calc(50% + 16px));
+ background-color: transparent !important;
+ border: none;
+ height: 1px;
+ overflow: visible;
+ position: relative;
+}
+
+.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots) {
+ height: 1px;
+}
+
+hr.wp-block-separator:not(.is-style-dots)::before,
+hr.wp-block-separator:not(.is-style-dots)::after {
+ background: currentColor;
+ content: "";
+ display: block;
+ height: 16px;
+ position: absolute;
+ top: calc(50% - 8px);
+ transform: rotate(-22.5deg);
+ width: 1px;
+}
+
+hr.wp-block-separator::before {
+ right: calc(50% - 5px);
+}
+
+hr.wp-block-separator::after {
+ left: calc(50% - 5px);
+}
+
+/* STYLE: DOTS */
+
+hr.wp-block-separator.is-style-dots::before {
+ font-size: 32px;
+ font-weight: 700;
+ letter-spacing: 1em;
+ padding-right: 1em;
+}
+
+
+/* Block: Quote ------------------------------ */
+
+.editor-styles-wrapper blockquote {
+ margin: 0;
+}
+
+.editor-styles-wrapper .wp-block-quote {
+ border-color: #cd2653;
+ border-style: solid;
+ border-width: 0 2px 0 0;
+ margin: 20px 0;
+ padding: 5px 20px 5px 0;
+}
+
+.editor-styles-wrapper .wp-block-quote.has-text-align-center,
+.editor-styles-wrapper .wp-block-quote[style*="text-align:center"],
+.editor-styles-wrapper .wp-block-quote[style*="text-align: center"] {
+ border-width: 0;
+ padding: 5px 0;
+}
+
+.editor-styles-wrapper .wp-block-quote.has-text-align-right,
+.editor-styles-wrapper .wp-block-quote[style*="text-align:right"],
+.editor-styles-wrapper .wp-block-quote[style*="text-align: right"] {
+ border-width: 0 0 0 2px;
+ padding: 5px 0 5px 20px;
+}
+
+.editor-styles-wrapper cite,
+.editor-styles-wrapper .wp-block-quote__citation,
+.editor-styles-wrapper .wp-block-quote cite,
+.editor-styles-wrapper .wp-block-quote footer {
+ color: #6d6d6d;
+ font-size: 14px;
+ font-weight: 600;
+ line-height: 1.25;
+}
+
+.editor-styles-wrapper .wp-block-quote p {
+ color: inherit;
+ font-weight: 400;
+ margin: 0 0 20px 0;
+}
+
+.editor-styles-wrapper .wp-block-quote.is-style-large {
+ border: none;
+ padding: 0;
+}
+
+.editor-styles-wrapper .wp-block-quote.is-style-large p {
+ font-family: inherit;
+ font-size: 24px;
+ font-style: normal;
+ font-weight: 700;
+ letter-spacing: -0.035714286em;
+ line-height: 1.285714286;
+}
+
+.editor-styles-wrapper .wp-block-quote.is-style-large .wp-block-quote__citation,
+.editor-styles-wrapper .wp-block-quote.is-style-large cite,
+.editor-styles-wrapper .wp-block-quote.is-style-large footer {
+ font-size: 16px;
+}
+
+
+/* Block: Code, Verse and Preformatted ------- */
+
+.editor-styles-wrapper .wp-block-code {
+ color: inherit;
+}
+
+.editor-styles-wrapper .wp-block-code,
+.editor-styles-wrapper .wp-block-preformatted pre,
+.editor-styles-wrapper .wp-block-verse pre {
+ border: 1px solid #dcd7ca;
+ border-radius: 0;
+ padding: 30px;
+}
+
+.editor-styles-wrapper .wp-block-freeform.block-library-rich-text__tinymce pre,
+.editor-styles-wrapper .wp-block-preformatted pre,
+.editor-styles-wrapper .wp-block-code .block-editor-plain-text,
+.editor-styles-wrapper .wp-block-verse pre {
+ background: transparent;
+ color: inherit;
+ font-family: monospace;
+ font-size: 14px;
+}
+
+/* Block: Cover ------------------------------ */
+
+.editor-styles-wrapper .wp-block-cover-image .wp-block-cover__inner-container,
+.editor-styles-wrapper .wp-block-cover .wp-block-cover__inner-container {
+ margin: 0 auto;
+ width: calc(100% - 40px);
+}
+
+.editor-styles-wrapper .wp-block[data-type="core/cover"][data-align="right"],
+.editor-styles-wrapper .wp-block[data-type="core/cover"][data-align="left"] {
+ height: auto;
+ max-height: none;
+}
+
+.editor-styles-wrapper .wp-block[data-type="core/cover"][data-align="left"] .wp-block-cover {
+ text-align: right;
+}
+
+.editor-styles-wrapper .wp-block[data-type="core/cover"][data-align="right"] .wp-block-cover {
+ text-align: left;
+}
+
+.editor-styles-wrapper .wp-block[data-type="core/cover"][data-align="right"] .block-editor-block-list__block-edit,
+.editor-styles-wrapper .wp-block[data-type="core/cover"][data-align="left"] .block-editor-block-list__block-edit {
+ float: none;
+ margin-right: 0;
+ margin-left: 0;
+ max-width: 100%;
+}
+
+.wp-block-cover-image .wp-block-cover-image-text,
+.wp-block-cover-image .wp-block-cover-text,
+.wp-block-cover-image h2,
+.wp-block-cover .wp-block-cover-image-text,
+.wp-block-cover .wp-block-cover-text,
+.wp-block-cover h2 {
+ max-width: 100%;
+}
+
+.editor-styles-wrapper .wp-block-cover a {
+ color: inherit;
+}
+
+/* Block: Shared Media Styles ---------------- */
+
+.wp-block[data-type*="core-embed"][data-align="full"] figcaption,
+.wp-block[data-type="core/image"][data-align="full"] figcaption,
+.wp-block[data-type="core/gallery"][data-align="full"] .blocks-gallery-caption {
+ padding: 0 14px;
+}
+
+/* Block: Paragraph -------------------------- */
+
+/* Block: Pullquote -------------------------- */
+
+.editor-styles-wrapper .wp-block-pullquote {
+ border: none;
+ color: inherit;
+ padding: 0;
+ position: relative;
+ text-align: center;
+}
+
+.editor-styles-wrapper .wp-block-pullquote::before {
+ background: #fff;
+ border-radius: 50%;
+ color: #cd2653;
+ content: "”";
+ display: block;
+ font-size: 62px;
+ font-weight: 500;
+ line-height: 1.2;
+ margin: 0 auto 15px auto;
+ text-align: center;
+ height: 44px;
+ width: 44px;
+}
+
+.editor-styles-wrapper .wp-block .wp-block-pullquote p {
+ font-family: inherit;
+ font-size: 28px;
+ font-weight: 700;
+ line-height: 1.178571429;
+ letter-spacing: -0.041785714em;
+ margin-bottom: 20px;
+}
+
+.editor-styles-wrapper .wp-block .wp-block-pullquote p:last-child {
+ margin-bottom: 0;
+}
+
+.editor-styles-wrapper .wp-block .wp-block-pullquote p,
+.editor-styles-wrapper .wp-block-pullquote.is-style-solid-color blockquote > .block-editor-rich-text p,
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .editor-rich-text p,
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] .editor-rich-text p {
+ font-size: 28px;
+}
+
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"],
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] {
+ height: auto;
+ max-height: none;
+}
+
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] .wp-block-pullquote,
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] .wp-block-pullquote.is-style-solid-color blockquote {
+ text-align: right;
+}
+
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .wp-block-pullquote,
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .wp-block-pullquote.is-style-solid-color blockquote {
+ text-align: left;
+}
+
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .block-editor-block-list__block-edit,
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] .block-editor-block-list__block-edit {
+ float: none;
+ margin-right: 0;
+ margin-left: 0;
+ max-width: 100%;
+}
+
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .block-editor-block-list__block-edit .wp-block-pullquote::before {
+ margin-left: 0;
+}
+
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] .block-editor-block-list__block-edit .wp-block-pullquote::before {
+ margin-right: 0;
+}
+
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .is-style-solid-color::before {
+ left: 20px;
+ transform: translateY(-50%);
+}
+
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] .is-style-solid-color::before {
+ right: 20px;
+ transform: translateY(-50%);
+}
+
+.editor-styles-wrapper .wp-block-pullquote__citation,
+.editor-styles-wrapper .wp-block-pullquote cite,
+.editor-styles-wrapper .wp-block-pullquote footer {
+ color: #6d6d6d;
+ font-size: 16px;
+ font-weight: 500;
+ margin-top: 12px;
+ text-transform: none;
+}
+
+/* STYLE: SOLID COLOR */
+
+.editor-styles-wrapper .wp-block-pullquote.is-style-solid-color {
+ padding: 30px 20px;
+ position: relative;
+}
+
+.editor-styles-wrapper .wp-block-pullquote.is-style-solid-color::before {
+ position: absolute;
+ top: 0;
+ right: 50%;
+ transform: translateY(-50%) translateX(50%);
+}
+
+.editor-styles-wrapper .wp-block-pullquote.is-style-solid-color blockquote {
+ max-width: 100%;
+ text-align: center;
+}
+
+.editor-styles-wrapper .wp-block-pullquote.is-style-solid-color .wp-block-pullquote__citation,
+.editor-styles-wrapper .wp-block-pullquote.is-style-solid-color .wp-block-pullquote cite,
+.editor-styles-wrapper .wp-block-pullquote.is-style-solid-color .wp-block-pullquote footer {
+ color: inherit;
+}
+
+
+/* Block: Verse ------------------------------ */
+
+.editor-styles-wrapper .wp-block-verse pre,
+.editor-styles-wrapper pre.wp-block-verse {
+ font-size: 0.75em;
+}
+
+
+/* Block: Button ----------------------------- */
+
+.editor-styles-wrapper .wp-block-button__link,
+.editor-styles-wrapper .wp-block-file__button {
+ background: #cd2653;
+ border-radius: 0;
+ color: #fff;
+ font-size: 15px;
+ font-weight: 600;
+ letter-spacing: 0.0333em;
+ line-height: 1.25;
+ padding: 1.1em 1.44em;
+ text-transform: uppercase;
+}
+
+.editor-styles-wrapper .wp-block-button .wp-block-button__link.mce-content-body {
+ line-height: 1.1;
+}
+
+/* BUTTON STYLE: OUTLINE */
+
+.editor-styles-wrapper .is-style-outline .wp-block-button__link {
+ background: none;
+ border-color: currentColor;
+ color: #cd2653;
+ padding: calc(1.1em - 2px) calc(1.44em - 2px);
+}
+
+/* BUTTON STYLE: SQUARED */
+
+.editor-styles-wrapper .is-style-squared .wp-block-button__link {
+ border-radius: 0;
+}
+
+
+/* Block: Latest Comments -------------------- */
+
+.editor-styles-wrapper .wp-block-latest-comments {
+ font-family: inherit;
+ margin-right: 0;
+}
+
+.editor-styles-wrapper .wp-block-latest-comments li.wp-block-latest-comments__comment {
+ font-size: inherit;
+ margin-bottom: 20px;
+}
+
+.editor-styles-wrapper .wp-block-latest-comments li.wp-block-latest-comments__comment:last-child {
+ margin-bottom: 0;
+}
+
+.editor-styles-wrapper .wp-block-latest-comments__comment-meta,
+.editor-styles-wrapper .wp-block-latest-comments__comment-excerpt {
+ margin-right: 0 !important;
+}
+
+.editor-styles-wrapper .wp-block-latest-comments__comment-meta {
+ font-weight: 700;
+}
+
+.editor-styles-wrapper .wp-block-latest-comments__comment-meta a {
+ text-decoration: none;
+}
+
+.editor-styles-wrapper .wp-block-latest-comments__comment-meta a:focus,
+.editor-styles-wrapper .wp-block-latest-comments__comment-meta a:hover {
+ text-decoration: none;
+}
+
+/* HAS AVATAR */
+
+.editor-styles-wrapper .wp-block-latest-comments.has-avatars .wp-block-latest-comments__comment {
+ display: flex;
+}
+
+.editor-styles-wrapper .wp-block-latest-comments.has-avatars img.avatar {
+ flex-shrink: 0;
+ margin: 5px 0 0 15px;
+}
+
+/* HAS EXCERPT */
+
+.editor-styles-wrapper .wp-block-latest-comments__comment-excerpt {
+ margin: 0;
+}
+
+.editor-styles-wrapper .wp-block-latest-comments__comment-excerpt p {
+ font-family: inherit;
+ font-size: 0.7em;
+ margin: 10px 0 0;
+}
+
+
+/* Block: Latest Posts ----------------------- */
+
+.editor-styles-wrapper ul.wp-block-latest-posts:not(.is-grid) li {
+ margin-top: 15px;
+}
+
+/* STYLE: GRID */
+
+.editor-styles-wrapper .wp-block-latest-posts.is-grid li {
+ border-color: #dcd7ca;
+}
+
+.editor-styles-wrapper ul.wp-block-latest-posts.is-grid li {
+ border-style: solid;
+ border-width: 2px 0 0;
+ line-height: 1.25;
+ margin: 20px 0 16px 16px;
+ padding-top: 12px;
+}
+
+.editor-styles-wrapper .wp-block-latest-posts__post-excerpt {
+ font-size: 0.95em;
+ line-height: 1.4;
+ margin-top: 15px;
+}
+
+/* Block: Shortcode -------------------------- */
+
+.editor-styles-wrapper .wp-block-shortcode textarea {
+ color: #191e23;
+}
+
+/* Block: Embed ------------------------------ */
+
+.editor-styles-wrapper .wp-block-embed {
+ margin-bottom: 30px;
+ margin-top: 30px;
+}
+
+.editor-styles-wrapper .wp-block[data-type*="core-embed"][data-align="center"] * {
+ margin-right: auto;
+ margin-left: auto;
+}
+
+/* Block: File ------------------------------- */
+
+.editor-styles-wrapper .wp-block-file {
+ background: none;
+ padding: 0;
+}
+
+.editor-styles-wrapper .wp-block-file__content-wrapper {
+ align-items: center;
+ display: flex;
+ justify-content: space-between;
+}
+
+.editor-styles-wrapper .wp-block-file .wp-block-file__textlink {
+ color: #cd2653;
+ font-weight: 700;
+ text-decoration: none;
+}
+
+.editor-styles-wrapper .wp-block-file .wp-block-file__textlink:focus,
+.editor-styles-wrapper .wp-block-file .wp-block-file__textlink:hover {
+ text-decoration: underline;
+}
+
+.editor-styles-wrapper .wp-block-file .wp-block-file__button {
+ font-size: 14px;
+ padding: 1em 1.25em;
+}
+
+/* Block: Image ------------------------------ */
+
+.editor-styles-wrapper .wp-block-image {
+ margin-bottom: 30px;
+ margin-top: 30px;
+}
+
+.editor-styles-wrapper .wp-block-image.is-resized {
+ margin-right: auto;
+ margin-left: auto;
+}
+
+/* Block: Group ------------------------------ */
+
+.editor-styles-wrapper .wp-block-group.has-background {
+ padding: 20px;
+}
+
+.wp-block-group .wp-block[data-type="core/heading"]:first-child * {
+ margin-top: 0;
+}
+
+.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"],
+.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-right: 0;
+ width: 100%;
+}
+
+/* Block: Paragraph -------------------------- */
+
+
+/* X. Media Queries
+/* ------------------------------------------- */
+
+
+@media ( min-width: 480px ) {
+
+
+ /* STRUCTURE */
+
+ .editor-styles-wrapper .wp-block[data-align="right"] {
+ margin-left: 0;
+ }
+
+ .editor-styles-wrapper .wp-block[data-align="left"] {
+ margin: 0;
+ }
+
+ /* BLOCK: COVER */
+
+ .wp-block[data-type="core/cover"][data-align="left"] [data-block],
+ .wp-block[data-type="core/cover"][data-align="right"] [data-block] {
+ margin-top: 0;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/cover"][data-align="right"] .block-editor-block-list__block-edit {
+ float: left;
+ margin-right: 20px;
+ max-width: 260px;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/cover"][data-align="left"] .block-editor-block-list__block-edit {
+ float: right;
+ margin-left: 20px;
+ max-width: 260px;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/cover"][data-align="right"] .wp-block-pullquote::before {
+ margin-left: 0;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/cover"][data-align="left"] .wp-block-pullquote::before {
+ margin-right: 0;
+ }
+
+ /* BLOCK: PULL QUOTE */
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"],
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] {
+ height: 0;
+ max-width: 260px;
+ }
+
+ .wp-block[data-type="core/pullquote"][data-align="left"] [data-block],
+ .wp-block[data-type="core/pullquote"][data-align="right"] [data-block] {
+ margin-top: 0;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .block-editor-block-list__block-edit {
+ float: left;
+ margin-right: 20px;
+ max-width: 260px;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] .block-editor-block-list__block-edit {
+ float: right;
+ margin-left: 20px;
+ max-width: 260px;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .wp-block-pullquote::before {
+ margin-left: 0;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] .wp-block-pullquote::before {
+ margin-right: 0;
+ }
+
+
+}
+
+@media ( min-width: 600px ) {
+
+
+ /* BLOCK: SHARED MEDIA STYLES */
+
+ .wp-block[data-type*="core-embed"][data-align="full"] figcaption,
+ .wp-block[data-type="core/image"][data-align="full"] figcaption,
+ .wp-block[data-type="core/gallery"][data-align="full"] .blocks-gallery-caption {
+ padding: 0 45px;
+ }
+
+ /* BLOCK: COLUMNS */
+
+ .editor-styles-wrapper .wp-block[data-type="core/column"] h1,
+ .editor-styles-wrapper .wp-block[data-type="core/column"] h2,
+ .editor-styles-wrapper .wp-block[data-type="core/column"] h3,
+ .editor-styles-wrapper .wp-block[data-type="core/column"] h4,
+ .editor-styles-wrapper .wp-block[data-type="core/column"] h5,
+ .editor-styles-wrapper .wp-block[data-type="core/column"] h6 {
+ margin: 35px 0 20px 0;
+ }
+
+ /* BLOCK: PULLQUOTE */
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .block-editor-block-list__block-edit {
+ margin-left: -30px;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] .block-editor-block-list__block-edit {
+ margin-right: -30px;
+ }
+
+
+}
+
+@media ( min-width: 700px ) {
+
+ /* STRUCTURE */
+
+ .editor-styles-wrapper > * {
+ font-size: 21px;
+ }
+
+ /* TYPOGRAPHY */
+
+ .editor-post-title__block .editor-post-title__input,
+ .editor-styles-wrapper .wp-block h1 {
+ font-size: 64px;
+ }
+
+ .editor-styles-wrapper .wp-block h2 {
+ font-size: 48px;
+ }
+
+ .editor-styles-wrapper .wp-block h3 {
+ font-size: 40px;
+ }
+
+ .editor-styles-wrapper .wp-block h4 {
+ font-size: 32px;
+ }
+
+ .editor-styles-wrapper .wp-block h5 {
+ font-size: 24px;
+ }
+
+ .editor-styles-wrapper li,
+ .editor-styles-wrapper p,
+ .editor-styles-wrapper p.wp-block-paragraph {
+ line-height: 1.476;
+ }
+
+ /* FORMS */
+
+ .editor-styles-wrapper fieldset {
+ padding: 30px;
+ }
+
+ .editor-styles-wrapper legend {
+ padding: 0 15px;
+ }
+
+ /* BLOCK: BASE MARGINS */
+
+ /* BLOCK: BUTTON */
+
+ .editor-styles-wrapper .wp-block-button__link,
+ .editor-styles-wrapper .wp-block-file__button {
+ font-size: 17px;
+ }
+
+ /* BLOCK: CODE */
+
+ .editor-styles-wrapper .wp-block-preformatted pre,
+ .editor-styles-wrapper .wp-block-code .block-editor-plain-text,
+ .editor-styles-wrapper .wp-block-verse pre {
+ font-size: 16px;
+ }
+
+ /* BLOCK: COLUMNS */
+
+ .wp-block-column {
+ font-size: 16px;
+ }
+
+ /* BLOCK: COVER */
+
+ .editor-styles-wrapper .wp-block-cover-image .wp-block-cover__inner-container,
+ .editor-styles-wrapper .wp-block-cover .wp-block-cover__inner-container {
+ width: calc(100% - 80px);
+ }
+
+ /* BLOCK: GROUP */
+
+ .editor-styles-wrapper .wp-block:not([data-align="wide"]):not([data-align="full"]) div:not([class*="__inner-container"]) .wp-block-group.has-background,
+ .editor-styles-wrapper .wp-block div[class*="__inner-container"] .wp-block[data-align="wide"] .wp-block-group.has-background,
+ .editor-styles-wrapper .wp-block div[class*="__inner-container"] .wp-block[data-align="full"] .wp-block-group.has-background {
+ padding: 40px;
+ }
+
+ .editor-styles-wrapper .wp-block[data-align="wide"] .wp-block-group.has-background,
+ .editor-styles-wrapper .wp-block[data-align="full"] .wp-block-group.has-background {
+ padding: 80px;
+ }
+
+ /* BLOCK: LATEST POSTS */
+
+ /* BLOCK: PULLQUOTE */
+
+ .editor-styles-wrapper .wp-block .wp-block-pullquote p,
+ .editor-styles-wrapper .wp-block-pullquote.is-style-solid-color blockquote > .block-editor-rich-text p,
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .editor-rich-text p,
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] .editor-rich-text p {
+ font-size: 32px;
+ }
+
+ .editor-styles-wrapper .wp-block-pullquote__citation,
+ .editor-styles-wrapper .wp-block-pullquote cite,
+ .editor-styles-wrapper .wp-block-pullquote footer {
+ margin-top: 20px;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="wide"] .wp-block-pullquote::before,
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="full"] .wp-block-pullquote::before {
+ font-size: 113px;
+ height: 80px;
+ margin-bottom: 20px;
+ width: 80px;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="wide"] .wp-block-pullquote.is-style-solid-color,
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="full"] .wp-block-pullquote.is-style-solid-color {
+ padding: 60px 40px 40px;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="full"] .wp-block-pullquote:not(.is-style-solid-color) {
+ padding-right: 10px;
+ padding-left: 10px;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="wide"] blockquote p,
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="full"] blockquote p {
+ font-size: 48px;
+ line-height: 1.203125;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] p,
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] p {
+ font-size: 32px;
+ line-height: 1.1875;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] .is-style-solid-color p,
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .is-style-solid-color p {
+ font-size: 26px;
+ }
+
+ /* BLOCK: TABLE */
+
+ .editor-styles-wrapper table.wp-block-table {
+ font-size: 18px;
+ }
+
+ /* BLOCK: SEPARATOR */
+
+ hr.wp-block-separator {
+ margin-bottom: 60px;
+ margin-top: 60px;
+ }
+
+}
+
+
+@media ( min-width: 1000px ) {
+
+
+ /* BLOCK: COLUMNS */
+
+ .wp-block-column {
+ font-size: 18px;
+ }
+
+ /* BLOCK: SEPARATOR */
+
+ hr.wp-block-separator {
+ margin-bottom: 80px;
+ margin-top: 80px;
+ }
+
+ hr.wp-block-separator.is-style-wide {
+ margin-right: -70px;
+ margin-left: -70px;
+ }
+
+
+}
+
+
+@media ( min-width: 1220px ) {
+
+
+ /* TYPOGRAPHY */
+
+ .editor-post-title__block .editor-post-title__input,
+ .editor-styles-wrapper .wp-block h1 {
+ font-size: 84px;
+ }
+
+ .editor-styles-wrapper .wp-block h6 {
+ font-size: 18px;
+ }
+
+ /* BLOCK: PULLQUOTE */
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="wide"] .wp-block-pullquote.is-style-solid-color,
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="full"] .wp-block-pullquote.is-style-solid-color {
+ padding: 90px 40px 80px;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="wide"] blockquote p,
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="full"] blockquote p {
+ font-size: 64px;
+ }
+
+ /* BLOCK: SEPARATOR */
+
+ hr.wp-block-separator.is-style-wide {
+ margin-right: -150px;
+ margin-left: -150px;
+ }
+
+}
+
+
+@media ( min-width: 1360px ) {
+
+
+ /* STRUCTURE */
+
+ .editor-styles-wrapper .wp-block[data-align="left"],
+ .editor-styles-wrapper .wp-block[data-align="right"] {
+ margin: 0 auto;
+ max-width: 1220px;
+ }
+
+
+ /* BLOCK: PULLQUOTE */
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] .is-style-solid-color::before,
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .is-style-solid-color::before {
+ top: 0;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"],
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] {
+ margin: 0 auto;
+ max-width: 1220px;
+ }
+
+ /* BLOCK: SEPARATOR */
+
+ hr.wp-block-separator.is-style-wide {
+ margin-right: -200px;
+ margin-left: -200px;
+ }
+
+
+}
diff --git a/wp-content/themes/twentytwenty/assets/css/editor-style-block.css b/wp-content/themes/twentytwenty/assets/css/editor-style-block.css
new file mode 100644
index 000000000..c7756b0b8
--- /dev/null
+++ b/wp-content/themes/twentytwenty/assets/css/editor-style-block.css
@@ -0,0 +1,1454 @@
+/* ------------------------------------------- */
+
+/* Twenty Twenty Editor Styles — Block Editor
+/* ------------------------------------------- */
+
+.editor-styles-wrapper {
+ background: #f5efe0;
+ color: #000;
+ letter-spacing: -0.015em;
+ -moz-font-smoothing: antialiased;
+ -webkit-font-smoothing: antialiased;
+}
+
+.editor-styles-wrapper > * {
+ font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
+ font-size: 18px;
+}
+
+@supports ( font-variation-settings: normal ) {
+
+ .editor-styles-wrapper > * {
+ font-family: "Inter var", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
+ }
+
+}
+
+.block-editor-default-block-appender textarea.block-editor-default-block-appender__content {
+ color: inherit;
+ font-family: inherit;
+ font-size: inherit;
+}
+
+.block-editor-block-list__empty-block-inserter .block-editor-inserter__toggle:not(:hover):not(:focus),
+.block-editor-default-block-appender .block-editor-inserter .block-editor-inserter__toggle:not(:hover):not(:focus) {
+ color: inherit;
+}
+
+
+/* Fonts ------------------------------------- */
+
+/*
+ * Chrome renders extra-wide characters for the Hoefler Text font.
+ * This results in a jumping cursor when typing in both the Classic and block
+ * editors. The following font-face override fixes the issue by manually
+ * inserting a custom font that includes just a Hoefler Text space replacement
+ * for that character instead.
+ */
+@font-face {
+ font-family: NonBreakingSpaceOverride;
+ src: url(data:application/font-woff2;charset=utf-8;base64,d09GMgABAAAAAAMoAA0AAAAACDQAAALTAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0ZGVE0cGh4GYACCahEICjx3CywAATYCJANUBCAFhiEHgWwbXQfILgpsY+rQRRARwyAs6uL7pxzYhxEE+32b3aeHmifR6tklkS9hiZA0ewkqGRJE+H7/+6378ASViK/PGeavqJyOzsceKi1s3BCiQsiOdn1r/RBgIJYEgCUhbm/8/8/h4saPssnTNkkiWUBrTRtjmQSajw3Ui3pZ3LYDPD+XG2C3JA/yKAS8/rU5eNfuGqRf4eNNgV4YAlIIgxglEkWe6FYpq10+wi3g+/nUgvgPFczNrz/RsTgVm/zfbPuHZlsuQECxuyqBcQwKFBjFgKO8AqP4bAN9tFJtnM9xPcbNjeXS/x1wY/xU52f5W/X1+9cnH4YwKIaoRRAkUkj/YlAAeF/624foiIDBgBmgQBeGAyhBljUPZUm/l2dTvmpqcBDUOHdbPZWd8JsBAsGr4w8/EDn82/bUPx4eh0YNrQTBuHO2FjQEAGBwK0DeI37DpQVqdERS4gZBhpeUhWCfLFz7J99aEBgsJCHvUGAdAPp4IADDCAPCEFMGpMZ9AQpTfQtQGhLbGVBZFV8BaqNyP68oTZgHNj3M8kBPfXTTC9t90UuzYhy9ciH0grVlOcqyCytisvbsERsEYztiznR0WCrmTksJwbSNK6fd1Rvr25I9oLvctUoEbNOmXJbqgYgPXEHJ82IUsrCnpkxh23F1rfZ2zcRnJYoXtauB3VTFkFXQg3uoZYD5qE0kdjDtoDoF1h2bulGmev5HbYhbrjtohQSRI4aNOkffIcT+d3v6atpaYh3JvPoQsztCcqvaBkppDSPcQ3bw3KaCBo1f5CJWTZEgW3LjLofYg51MaVezrx8xZitYbQ9KYeoRaqQdVLwSEfrKXLK1otCWOKNdR/YwYAfon5Yk8O2MJfSD10dPGA5PIJJQMkah0ugMJiv6x4Dm7LEa8xnrRGGGLAg4sAlbsA07sAt76DOsXKO3hIjtIlpnnFrt1qW4kh6NhS83P/6HB/fl1SMAAA==) format("woff2"), url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAUQAA0AAAAACDQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAE9AAAABwAAAAchf5yU0dERUYAAATYAAAAHAAAAB4AJwAbT1MvMgAAAaAAAABJAAAAYJAcgU5jbWFwAAACIAAAAF4AAAFqUUxBZ2dhc3AAAATQAAAACAAAAAgAAAAQZ2x5ZgAAApAAAAAyAAAAPL0n8y9oZWFkAAABMAAAADAAAAA2Fi93Z2hoZWEAAAFgAAAAHQAAACQOSgWaaG10eAAAAewAAAAzAAAAVC7TAQBsb2NhAAACgAAAABAAAAAsAOQBAm1heHAAAAGAAAAAHQAAACAAWQALbmFtZQAAAsQAAAF6AAADIYvD/Adwb3N0AAAEQAAAAI4AAADsapk2o3jaY2BkYGAA4ov5mwzj+W2+MnCzXwCKMNzgCBSB0LfbQDQ7AxuI4mBgAlEAFKQIRHjaY2BkYGD3+NvCwMDBAALsDAyMDKhAFAA3+wH3AAAAeNpjYGRgYBBl4GBgYgABEMnIABJzAPMZAAVmAGUAAAB42mNgZlJhnMDAysDCKsKygYGBYRqEZtrDYMT4D8gHSmEHjgUFOQwODAqqf9g9/rYwMLB7MNUAhRlBcsxBrMlASoGBEQAj8QtyAAAAeNrjYGBkAAGmWQwMjO8gmBnIZ2NA0ExAzNjAAFYJVn0ASBsD6VAIDZb7AtELAgANIgb9AHjaY2BgYGaAYBkGRgYQSAHyGMF8FgYPIM3HwMHAxMDGoMCwQIFLQV8hXvXP//9AcRCfAcb///h/ygPW+w/vb7olBjUHCTCyMcAFGZmABBO6AogThgZgIUsXAEDcEzcAAHjaY2BgECMCyoEgACZaAed42mNgYmRgYGBnYGNgYAZSDJqMgorCgoqCjECRXwwNrCAKSP5mAAFGBiRgyAAAi/YFBQAAeNqtkc1OwkAUhU/5M25cEhcsZick0AwlBJq6MWwgJkAgYV/KAA2lJeUn+hY+gktXvpKv4dLTMqKycGHsTZNv7px7z50ZAFd4hYHjdw1Ls4EiHjVncIFnzVnc4F1zDkWjrzmPW+NNcwGlzIRKI3fJlUyrEjZQxb3mDH2fNGfRx4vmHKqG0JzHg6E0F9DOlFBGBxUI1GEzLNT4S0aLuTtsGAEUuYcQHkyg3KmIum1bNUvKlrjbbAIleqHHnS4iSudpQcySMYtdFiXlAxzSbAwfMxK6kZoHKhbjjespMTioOPZnzI+4ucCeTVyKMVKLfeAS6vSWaTinuZwzyy/Dc7vaed+6KaV0kukdPUk6yOcctZPvvxxqksq2lEW8RvHjMEO2FCl/zy6p3NEm0R9OFSafJdldc4QVeyaaObMBO0/5cCaa6d9Ggyubxire+lEojscdjoWUR1xGOy8KD8mG2ZLO2l2paDc3A39qmU2z2W5YNv5+u79e6QfGJY/hAAB42m3NywrCMBQE0DupWp/1AYI7/6DEaLQu66Mrd35BKUWKJSlFv1+rue4cGM7shgR981qSon+ZNwUJ8iDgoYU2OvDRRQ99DDDECAHGmGCKmf80hZSx/Kik/LliFbtmN6xmt+yOjdg9GztV4tROnRwX/Bsaaw51nt4Lc7tWaZYHp/MlzKx51LZs5htNri+2AAAAAQAB//8AD3jaY2BkYGDgAWIxIGZiYARCESBmAfMYAAR6AEMAAAABAAAAANXtRbgAAAAA2AhRFAAAAADYCNuG) format("woff");
+}
+
+/* ----------------------------------------------
+Inter variable font. Usage:
+
+@supports (font-variation-settings: normal) {
+ html { font-family: "Inter var", sans-serif; }
+}
+---------------------------------------------- */
+
+@font-face {
+ font-family: "Inter var";
+ font-weight: 100 900; /* stylelint-disable-line font-weight-notation */
+ font-style: normal;
+ src: url(../fonts/inter/Inter-upright-var.woff2) format("woff2");
+}
+
+@font-face {
+ font-family: "Inter var";
+ font-weight: 100 900; /* stylelint-disable-line font-weight-notation */
+ font-style: italic;
+ src: url(../fonts/inter/Inter-italic-var.woff2) format("woff2");
+}
+
+/* Structure --------------------------------- */
+
+.wp-block {
+ max-width: 610px;
+}
+
+.wp-block[data-align="wide"] .wp-block[data-align="wide"],
+.wp-block[data-align="full"] .wp-block[data-align="wide"] {
+ max-width: 1200px;
+}
+
+.wp-block .wp-block[data-type="core/group"]:not([data-align="full"]):not([data-align="wide"]):not([data-align="left"]):not([data-align="right"]),
+.wp-block .wp-block[data-type="core/cover"]:not([data-align="full"]):not([data-align="wide"]):not([data-align="left"]):not([data-align="right"]) {
+ margin-left: auto;
+ margin-right: auto;
+ max-width: 610px;
+}
+
+.wp-block .wp-block[data-align="full"] {
+ margin-left: 0;
+ margin-right: 0;
+}
+
+*[data-align="right"] .wp-block-edit,
+*[data-align="left"] .wp-block-edit {
+ max-width: 50%;
+}
+
+.wp-block[data-align="wide"] {
+ max-width: 1200px;
+}
+
+.wp-block[data-align="full"] {
+ max-width: none;
+}
+
+.editor-styles-wrapper .editor-rich-text__tinymce,
+.editor-styles-wrapper .editor-rich-text__tinymce.mce-content-body {
+ line-height: 1.5;
+}
+
+
+/* Font Families ------------------------------ */
+
+.editor-styles-wrapper p,
+.editor-styles-wrapper ol,
+.editor-styles-wrapper ul,
+.editor-styles-wrapper dl,
+.editor-styles-wrapper dt {
+ font-family: NonBreakingSpaceOverride, "Hoefler Text", Garamond, "Times New Roman", serif;
+ letter-spacing: normal;
+}
+
+.editor-post-title__block .editor-post-title__input,
+.editor-styles-wrapper .wp-block h1,
+.editor-styles-wrapper .wp-block h2,
+.editor-styles-wrapper .wp-block h3,
+.editor-styles-wrapper .wp-block h4,
+.editor-styles-wrapper .wp-block h5,
+.editor-styles-wrapper .wp-block h6,
+.editor-styles-wrapper .has-drop-cap:not(:focus)::first-letter,
+.editor-styles-wrapper cite,
+.editor-styles-wrapper figcaption,
+.editor-styles-wrapper .wp-caption-text {
+ font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
+}
+
+@supports ( font-variation-settings: normal ) {
+
+ .editor-post-title__block .editor-post-title__input,
+ .editor-styles-wrapper .wp-block h1,
+ .editor-styles-wrapper .wp-block h2,
+ .editor-styles-wrapper .wp-block h3,
+ .editor-styles-wrapper .wp-block h4,
+ .editor-styles-wrapper .wp-block h5,
+ .editor-styles-wrapper .wp-block h6,
+ .editor-styles-wrapper .has-drop-cap:not(:focus)::first-letter,
+ .editor-styles-wrapper cite,
+ .editor-styles-wrapper figcaption,
+ .editor-styles-wrapper .wp-caption-text {
+ font-family: "Inter var", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
+ }
+
+}
+
+
+/* Colors ------------------------------------ */
+
+/* CUSTOM COLORS */
+
+:root .has-accent-color {
+ color: #cd2653;
+}
+
+:root .has-accent-background-color {
+ background-color: #cd2653;
+ color: #fff;
+}
+
+:root .has-primary-color {
+ color: #000;
+}
+
+:root .has-primary-background-color {
+ background-color: #000;
+ color: #f5efe0;
+}
+
+:root .has-secondary-color {
+ color: #6d6d6d;
+}
+
+:root .has-secondary-background-color {
+ background-color: #6d6d6d;
+ color: #fff;
+}
+
+:root .has-subtle-background-color {
+ color: #dcd7ca;
+}
+
+:root .has-subtle-background-background-color {
+ background-color: #dcd7ca;
+ color: #000;
+}
+
+:root .has-background-color {
+ color: #f5efe0;
+}
+
+:root .has-background-background-color {
+ background-color: #f5efe0;
+ color: #000;
+}
+
+/* GENERAL COLORS */
+
+.has-black-background-color {
+ background-color: #000;
+ color: #fff;
+}
+
+.has-white-background-color {
+ background-color: #fff;
+ color: #000;
+}
+
+.has-black-color {
+ color: #000;
+}
+
+.has-white-color {
+ color: #fff;
+}
+
+
+/* Typography -------------------------------- */
+
+.editor-styles-wrapper .editor-block-list__layout a {
+ color: #cd2653;
+ text-decoration: underline;
+}
+
+.editor-styles-wrapper a:focus,
+.editor-styles-wrapper a:hover {
+ text-decoration: none;
+}
+
+.editor-post-title__block .editor-post-title__input,
+.editor-styles-wrapper .wp-block h1,
+.editor-styles-wrapper .wp-block h2,
+.editor-styles-wrapper .wp-block h3,
+.editor-styles-wrapper .wp-block h4,
+.editor-styles-wrapper .wp-block h5,
+.editor-styles-wrapper .wp-block h6 {
+ font-feature-settings: "lnum";
+ font-variant-numeric: lining-nums;
+ font-weight: 700;
+ letter-spacing: -0.0415625em;
+ line-height: 1.25;
+ margin: 40px 0 25px;
+}
+
+.editor-post-title__block .editor-post-title__input,
+.editor-styles-wrapper .wp-block h1 {
+ font-size: 36px;
+ font-weight: 800;
+ line-height: 1.138888889;
+}
+
+.editor-styles-wrapper .wp-block h2 {
+ font-size: 32px;
+}
+
+.editor-styles-wrapper .wp-block h3 {
+ font-size: 28px;
+}
+
+.editor-styles-wrapper .wp-block h4 {
+ font-size: 24px;
+}
+
+.editor-styles-wrapper .wp-block h5 {
+ font-size: 21px;
+}
+
+.editor-styles-wrapper .wp-block h6 {
+ font-size: 16px;
+ letter-spacing: 0.03125em;
+ text-transform: uppercase;
+}
+
+.editor-styles-wrapper li,
+.editor-styles-wrapper p,
+.editor-styles-wrapper p.wp-block-paragraph {
+ line-height: 1.4;
+}
+
+/* POST TITLE */
+
+.wp-block.editor-post-title__block {
+ max-width: 1000px;
+}
+
+.editor-styles-wrapper .editor-post-title__block .editor-post-title__input {
+ margin: 0;
+ text-align: center;
+}
+
+/* DROP CAP */
+
+.editor-styles-wrapper .has-drop-cap:not(:focus)::first-letter {
+ color: #cd2653;
+ font-size: 5.1em;
+ font-weight: 800;
+ margin: 0.05em 0.1em 0 0;
+}
+
+
+/* Monospace --------------------------------- */
+
+.editor-styles-wrapper code,
+.editor-styles-wrapper kbd,
+.editor-styles-wrapper pre,
+.editor-styles-wrapper samp {
+ font-family: monospace;
+}
+
+.editor-styles-wrapper kbd,
+.editor-styles-wrapper pre,
+.editor-styles-wrapper samp {
+ border-radius: 0;
+ font-size: 0.75em;
+ padding: 4px 6px;
+}
+
+.editor-styles-wrapper pre {
+ border-color: #dcd7ca;
+ border-radius: 0;
+ line-height: 1.5;
+ padding: 1em;
+}
+
+
+/* Custom Text Sizes ------------------------- */
+
+.editor-styles-wrapper p.has-large-font-size.editor-rich-text__tinymce,
+.editor-styles-wrapper p.has-large-font-size.editor-rich-text__tinymce.mce-content-body,
+.editor-styles-wrapper p.has-larger-font-size.editor-rich-text__tinymce,
+.editor-styles-wrapper p.has-larger-font-size.editor-rich-text__tinymce.mce-content-body {
+ line-height: 1.4;
+}
+
+.editor-styles-wrapper p.has-small-font-size {
+ font-size: 0.842em;
+}
+
+.editor-styles-wrapper p.has-normal-font-size,
+.editor-styles-wrapper p.has-regular-font-size {
+ font-size: 1em;
+}
+
+.editor-styles-wrapper p.has-medium-font-size {
+ font-size: 1.1em;
+}
+
+.editor-styles-wrapper p.has-large-font-size {
+ font-size: 1.25em;
+}
+
+.editor-styles-wrapper p.has-larger-font-size {
+ font-size: 1.5em;
+}
+
+
+/* Post Media -------------------------------- */
+
+.editor-styles-wrapper figure {
+ margin: 0;
+}
+
+.editor-styles-wrapper .alignleft,
+.editor-styles-wrapper .alignright {
+ margin-bottom: 1.2em;
+ max-width: 260px;
+}
+
+.editor-styles-wrapper .wp-caption .alignleft,
+.editor-styles-wrapper .wp-caption .alignright {
+ margin-bottom: 0;
+}
+
+.editor-styles-wrapper .alignleft {
+ margin-right: 1em;
+}
+
+.editor-styles-wrapper .alignright {
+ margin-left: 1em;
+}
+
+.editor-styles-wrapper figcaption {
+ color: #6d6d6d;
+ font-size: 15px;
+ font-weight: 500;
+ line-height: 1.2;
+ margin-top: 5px;
+ text-align: inherit;
+}
+
+
+/* Forms ------------------------------------- */
+
+.editor-styles-wrapper fieldset {
+ border: 2px solid #dcd7ca;
+ padding: 20px;
+}
+
+.editor-styles-wrapper legend {
+ font-size: 0.85em;
+ font-weight: 700;
+ padding: 0 10px;
+}
+
+.editor-styles-wrapper label {
+ font-size: 15px;
+ font-weight: 600;
+}
+
+
+/* Block: Base Margins ---------------------- */
+
+/* Block: Shared Widget Styles -------------- */
+
+.editor-styles-wrapper ul.wp-block-archives,
+.editor-styles-wrapper ul.wp-block-categories,
+.editor-styles-wrapper ul.wp-block-latest-posts,
+.editor-styles-wrapper ul.wp-block-categories__list {
+ font-family: inherit;
+ list-style: none;
+ margin: 40px 0;
+ padding-left: 0;
+}
+
+.editor-styles-wrapper ul.wp-block-categories__list ul {
+ margin: 0;
+}
+
+.editor-styles-wrapper ul.wp-block-archives li,
+.editor-styles-wrapper ul.wp-block-categories li,
+.editor-styles-wrapper ul.wp-block-latest-posts li,
+.editor-styles-wrapper ul.wp-block-categories__list li {
+ color: #6d6d6d;
+ line-height: 1.476;
+ margin: 5px 0 0 0;
+}
+
+.editor-styles-wrapper ul.wp-block-archives li li,
+.editor-styles-wrapper ul.wp-block-categories li li,
+.editor-styles-wrapper ul.wp-block-categories__list li li,
+.editor-styles-wrapper ul.wp-block-latest-posts li li {
+ margin-left: 20px;
+}
+
+.editor-styles-wrapper .wp-block-archives li > a,
+.editor-styles-wrapper .wp-block-categories li > a,
+.editor-styles-wrapper .wp-block-latest-posts li > a {
+ font-weight: 700;
+ text-decoration: none;
+}
+
+.editor-styles-wrapper .wp-block-archives li > a:focus,
+.editor-styles-wrapper .wp-block-archives li > a:hover,
+.editor-styles-wrapper .wp-block-categories li > a:focus,
+.editor-styles-wrapper .wp-block-categories li > a:hover,
+.editor-styles-wrapper .wp-block-latest-posts li > a:focus,
+.editor-styles-wrapper .wp-block-latest-posts li > a:hover {
+ font-weight: 700;
+ text-decoration: none;
+}
+
+.editor-styles-wrapper .wp-block-archives.aligncenter,
+.editor-styles-wrapper .wp-block-categories.aligncenter {
+ text-align: center;
+}
+
+.editor-styles-wrapper .wp-block-latest-comments time,
+.editor-styles-wrapper .wp-block-latest-posts time {
+ color: #6d6d6d;
+ font-size: 0.7em;
+ font-weight: 600;
+ letter-spacing: normal;
+ line-height: 1.476;
+ margin-top: 0.15em;
+}
+
+
+/* Block: Table ------------------------------ */
+
+.editor-styles-wrapper .wp-block-table {
+ border-collapse: collapse;
+ border-spacing: 0;
+ empty-cells: show;
+ font-size: 18px;
+ margin-bottom: 1.1em;
+ width: 100%;
+}
+
+.editor-styles-wrapper .wp-block-table,
+.editor-styles-wrapper .wp-block-table * {
+ border-color: #dcd7ca;
+}
+
+.editor-styles-wrapper .wp-block-table tr {
+ border: none;
+}
+
+.editor-styles-wrapper .wp-block-table caption {
+ background: #dcd7ca;
+ text-align: center;
+}
+
+.editor-styles-wrapper .wp-block-table th,
+.editor-styles-wrapper .wp-block-table td {
+ line-height: 1.4;
+ margin: 0;
+ overflow: visible;
+ padding: 0;
+}
+
+.editor-styles-wrapper .wp-block-table .wp-block-table__cell-content {
+ padding: 0.5em;
+}
+
+.editor-styles-wrapper .wp-block-table thead {
+ vertical-align: bottom;
+ white-space: nowrap;
+ text-align: inherit;
+}
+
+.editor-styles-wrapper .wp-block-table th {
+ font-weight: 700;
+ text-align: inherit; /* Prevents the header from being centered by default*/
+}
+
+.editor-styles-wrapper .wp-block-table th.has-text-align-center {
+ text-align: center;
+}
+
+.editor-styles-wrapper .wp-block-table th.has-text-align-right {
+ text-align: right;
+}
+
+.editor-styles-wrapper .wp-block-table th.has-text-align-left {
+ text-align: left;
+}
+
+/* STYLE: STRIPES */
+
+.editor-styles-wrapper .wp-block-table.is-style-stripes {
+ border: 1px solid #dcd7ca;
+}
+
+.editor-styles-wrapper .wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
+ background: #dcd7ca;
+}
+
+
+/* Block: Separator -------------------------- */
+
+hr.wp-block-separator {
+ border-top: 1px solid #6d6d6d;
+ color: #6d6d6d;
+ margin: 30px 0;
+}
+
+hr.wp-block-separator:not(.is-style-wide):not(.is-style-dots) {
+ max-width: 100%;
+}
+
+hr.wp-block-separator:not(.is-style-dots) {
+ background: linear-gradient(to left, currentColor calc(50% - 16px), transparent calc(50% - 16px), transparent calc(50% + 16px), currentColor calc(50% + 16px));
+ background-color: transparent !important;
+ border: none;
+ height: 1px;
+ overflow: visible;
+ position: relative;
+}
+
+.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots) {
+ height: 1px;
+}
+
+hr.wp-block-separator:not(.is-style-dots)::before,
+hr.wp-block-separator:not(.is-style-dots)::after {
+ background: currentColor;
+ content: "";
+ display: block;
+ height: 16px;
+ position: absolute;
+ top: calc(50% - 8px);
+ transform: rotate(22.5deg);
+ width: 1px;
+}
+
+hr.wp-block-separator::before {
+ left: calc(50% - 5px);
+}
+
+hr.wp-block-separator::after {
+ right: calc(50% - 5px);
+}
+
+/* STYLE: DOTS */
+
+hr.wp-block-separator.is-style-dots::before {
+ font-size: 32px;
+ font-weight: 700;
+ letter-spacing: 1em;
+ padding-left: 1em;
+}
+
+
+/* Block: Quote ------------------------------ */
+
+.editor-styles-wrapper blockquote {
+ margin: 0;
+}
+
+.editor-styles-wrapper .wp-block-quote {
+ border-color: #cd2653;
+ border-style: solid;
+ border-width: 0 0 0 2px;
+ margin: 20px 0;
+ padding: 5px 0 5px 20px;
+}
+
+.editor-styles-wrapper .wp-block-quote.has-text-align-center,
+.editor-styles-wrapper .wp-block-quote[style*="text-align:center"],
+.editor-styles-wrapper .wp-block-quote[style*="text-align: center"] {
+ border-width: 0;
+ padding: 5px 0;
+}
+
+.editor-styles-wrapper .wp-block-quote.has-text-align-right,
+.editor-styles-wrapper .wp-block-quote[style*="text-align:right"],
+.editor-styles-wrapper .wp-block-quote[style*="text-align: right"] {
+ border-width: 0 2px 0 0;
+ padding: 5px 20px 5px 0;
+}
+
+.editor-styles-wrapper cite,
+.editor-styles-wrapper .wp-block-quote__citation,
+.editor-styles-wrapper .wp-block-quote cite,
+.editor-styles-wrapper .wp-block-quote footer {
+ color: #6d6d6d;
+ font-size: 14px;
+ font-weight: 600;
+ line-height: 1.25;
+}
+
+.editor-styles-wrapper .wp-block-quote p {
+ color: inherit;
+ font-weight: 400;
+ margin: 0 0 20px 0;
+}
+
+.editor-styles-wrapper .wp-block-quote.is-style-large {
+ border: none;
+ padding: 0;
+}
+
+.editor-styles-wrapper .wp-block-quote.is-style-large p {
+ font-family: inherit;
+ font-size: 24px;
+ font-style: normal;
+ font-weight: 700;
+ letter-spacing: -0.035714286em;
+ line-height: 1.285714286;
+}
+
+.editor-styles-wrapper .wp-block-quote.is-style-large .wp-block-quote__citation,
+.editor-styles-wrapper .wp-block-quote.is-style-large cite,
+.editor-styles-wrapper .wp-block-quote.is-style-large footer {
+ font-size: 16px;
+}
+
+
+/* Block: Code, Verse and Preformatted ------- */
+
+.editor-styles-wrapper .wp-block-code {
+ color: inherit;
+}
+
+.editor-styles-wrapper .wp-block-code,
+.editor-styles-wrapper .wp-block-preformatted pre,
+.editor-styles-wrapper .wp-block-verse pre {
+ border: 1px solid #dcd7ca;
+ border-radius: 0;
+ padding: 30px;
+}
+
+.editor-styles-wrapper .wp-block-freeform.block-library-rich-text__tinymce pre,
+.editor-styles-wrapper .wp-block-preformatted pre,
+.editor-styles-wrapper .wp-block-code .block-editor-plain-text,
+.editor-styles-wrapper .wp-block-verse pre {
+ background: transparent;
+ color: inherit;
+ font-family: monospace;
+ font-size: 14px;
+}
+
+/* Block: Cover ------------------------------ */
+
+.editor-styles-wrapper .wp-block-cover-image .wp-block-cover__inner-container,
+.editor-styles-wrapper .wp-block-cover .wp-block-cover__inner-container {
+ margin: 0 auto;
+ width: calc(100% - 40px);
+}
+
+.editor-styles-wrapper .wp-block[data-type="core/cover"][data-align="right"],
+.editor-styles-wrapper .wp-block[data-type="core/cover"][data-align="left"] {
+ height: auto;
+ max-height: none;
+}
+
+.editor-styles-wrapper .wp-block[data-type="core/cover"][data-align="left"] .wp-block-cover {
+ text-align: left;
+}
+
+.editor-styles-wrapper .wp-block[data-type="core/cover"][data-align="right"] .wp-block-cover {
+ text-align: right;
+}
+
+.editor-styles-wrapper .wp-block[data-type="core/cover"][data-align="right"] .block-editor-block-list__block-edit,
+.editor-styles-wrapper .wp-block[data-type="core/cover"][data-align="left"] .block-editor-block-list__block-edit {
+ float: none;
+ margin-left: 0;
+ margin-right: 0;
+ max-width: 100%;
+}
+
+.wp-block-cover-image .wp-block-cover-image-text,
+.wp-block-cover-image .wp-block-cover-text,
+.wp-block-cover-image h2,
+.wp-block-cover .wp-block-cover-image-text,
+.wp-block-cover .wp-block-cover-text,
+.wp-block-cover h2 {
+ max-width: 100%;
+}
+
+.editor-styles-wrapper .wp-block-cover a {
+ color: inherit;
+}
+
+/* Block: Shared Media Styles ---------------- */
+
+.wp-block[data-type*="core-embed"][data-align="full"] figcaption,
+.wp-block[data-type="core/image"][data-align="full"] figcaption,
+.wp-block[data-type="core/gallery"][data-align="full"] .blocks-gallery-caption {
+ padding: 0 14px;
+}
+
+/* Block: Paragraph -------------------------- */
+
+/* Block: Pullquote -------------------------- */
+
+.editor-styles-wrapper .wp-block-pullquote {
+ border: none;
+ color: inherit;
+ padding: 0;
+ position: relative;
+ text-align: center;
+}
+
+.editor-styles-wrapper .wp-block-pullquote::before {
+ background: #fff;
+ border-radius: 50%;
+ color: #cd2653;
+ content: "”";
+ display: block;
+ font-size: 62px;
+ font-weight: 500;
+ line-height: 1.2;
+ margin: 0 auto 15px auto;
+ text-align: center;
+ height: 44px;
+ width: 44px;
+}
+
+.editor-styles-wrapper .wp-block .wp-block-pullquote p {
+ font-family: inherit;
+ font-size: 28px;
+ font-weight: 700;
+ line-height: 1.178571429;
+ letter-spacing: -0.041785714em;
+ margin-bottom: 20px;
+}
+
+.editor-styles-wrapper .wp-block .wp-block-pullquote p:last-child {
+ margin-bottom: 0;
+}
+
+.editor-styles-wrapper .wp-block .wp-block-pullquote p,
+.editor-styles-wrapper .wp-block-pullquote.is-style-solid-color blockquote > .block-editor-rich-text p,
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .editor-rich-text p,
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] .editor-rich-text p {
+ font-size: 28px;
+}
+
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"],
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] {
+ height: auto;
+ max-height: none;
+}
+
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] .wp-block-pullquote,
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] .wp-block-pullquote.is-style-solid-color blockquote {
+ text-align: left;
+}
+
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .wp-block-pullquote,
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .wp-block-pullquote.is-style-solid-color blockquote {
+ text-align: right;
+}
+
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .block-editor-block-list__block-edit,
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] .block-editor-block-list__block-edit {
+ float: none;
+ margin-left: 0;
+ margin-right: 0;
+ max-width: 100%;
+}
+
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .block-editor-block-list__block-edit .wp-block-pullquote::before {
+ margin-right: 0;
+}
+
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] .block-editor-block-list__block-edit .wp-block-pullquote::before {
+ margin-left: 0;
+}
+
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .is-style-solid-color::before {
+ right: 20px;
+ transform: translateY(-50%);
+}
+
+.editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] .is-style-solid-color::before {
+ left: 20px;
+ transform: translateY(-50%);
+}
+
+.editor-styles-wrapper .wp-block-pullquote__citation,
+.editor-styles-wrapper .wp-block-pullquote cite,
+.editor-styles-wrapper .wp-block-pullquote footer {
+ color: #6d6d6d;
+ font-size: 16px;
+ font-weight: 500;
+ margin-top: 12px;
+ text-transform: none;
+}
+
+/* STYLE: SOLID COLOR */
+
+.editor-styles-wrapper .wp-block-pullquote.is-style-solid-color {
+ padding: 30px 20px;
+ position: relative;
+}
+
+.editor-styles-wrapper .wp-block-pullquote.is-style-solid-color::before {
+ position: absolute;
+ top: 0;
+ left: 50%;
+ transform: translateY(-50%) translateX(-50%);
+}
+
+.editor-styles-wrapper .wp-block-pullquote.is-style-solid-color blockquote {
+ max-width: 100%;
+ text-align: center;
+}
+
+.editor-styles-wrapper .wp-block-pullquote.is-style-solid-color .wp-block-pullquote__citation,
+.editor-styles-wrapper .wp-block-pullquote.is-style-solid-color .wp-block-pullquote cite,
+.editor-styles-wrapper .wp-block-pullquote.is-style-solid-color .wp-block-pullquote footer {
+ color: inherit;
+}
+
+
+/* Block: Verse ------------------------------ */
+
+.editor-styles-wrapper .wp-block-verse pre,
+.editor-styles-wrapper pre.wp-block-verse {
+ font-size: 0.75em;
+}
+
+
+/* Block: Button ----------------------------- */
+
+.editor-styles-wrapper .wp-block-button__link,
+.editor-styles-wrapper .wp-block-file__button {
+ background: #cd2653;
+ border-radius: 0;
+ color: #fff;
+ font-size: 15px;
+ font-weight: 600;
+ letter-spacing: 0.0333em;
+ line-height: 1.25;
+ padding: 1.1em 1.44em;
+ text-transform: uppercase;
+}
+
+.editor-styles-wrapper .wp-block-button .wp-block-button__link.mce-content-body {
+ line-height: 1.1;
+}
+
+/* BUTTON STYLE: OUTLINE */
+
+.editor-styles-wrapper .is-style-outline .wp-block-button__link {
+ background: none;
+ border-color: currentColor;
+ color: #cd2653;
+ padding: calc(1.1em - 2px) calc(1.44em - 2px);
+}
+
+/* BUTTON STYLE: SQUARED */
+
+.editor-styles-wrapper .is-style-squared .wp-block-button__link {
+ border-radius: 0;
+}
+
+
+/* Block: Latest Comments -------------------- */
+
+.editor-styles-wrapper .wp-block-latest-comments {
+ font-family: inherit;
+ margin-left: 0;
+}
+
+.editor-styles-wrapper .wp-block-latest-comments li.wp-block-latest-comments__comment {
+ font-size: inherit;
+ margin-bottom: 20px;
+}
+
+.editor-styles-wrapper .wp-block-latest-comments li.wp-block-latest-comments__comment:last-child {
+ margin-bottom: 0;
+}
+
+.editor-styles-wrapper .wp-block-latest-comments__comment-meta,
+.editor-styles-wrapper .wp-block-latest-comments__comment-excerpt {
+ margin-left: 0 !important;
+}
+
+.editor-styles-wrapper .wp-block-latest-comments__comment-meta {
+ font-weight: 700;
+}
+
+.editor-styles-wrapper .wp-block-latest-comments__comment-meta a {
+ text-decoration: none;
+}
+
+.editor-styles-wrapper .wp-block-latest-comments__comment-meta a:focus,
+.editor-styles-wrapper .wp-block-latest-comments__comment-meta a:hover {
+ text-decoration: none;
+}
+
+/* HAS AVATAR */
+
+.editor-styles-wrapper .wp-block-latest-comments.has-avatars .wp-block-latest-comments__comment {
+ display: flex;
+}
+
+.editor-styles-wrapper .wp-block-latest-comments.has-avatars img.avatar {
+ flex-shrink: 0;
+ margin: 5px 15px 0 0;
+}
+
+/* HAS EXCERPT */
+
+.editor-styles-wrapper .wp-block-latest-comments__comment-excerpt {
+ margin: 0;
+}
+
+.editor-styles-wrapper .wp-block-latest-comments__comment-excerpt p {
+ font-family: inherit;
+ font-size: 0.7em;
+ margin: 10px 0 0;
+}
+
+
+/* Block: Latest Posts ----------------------- */
+
+.editor-styles-wrapper ul.wp-block-latest-posts:not(.is-grid) li {
+ margin-top: 15px;
+}
+
+/* STYLE: GRID */
+
+.editor-styles-wrapper .wp-block-latest-posts.is-grid li {
+ border-color: #dcd7ca;
+}
+
+.editor-styles-wrapper ul.wp-block-latest-posts.is-grid li {
+ border-style: solid;
+ border-width: 2px 0 0;
+ line-height: 1.25;
+ margin: 20px 16px 16px 0;
+ padding-top: 12px;
+}
+
+.editor-styles-wrapper .wp-block-latest-posts__post-excerpt {
+ font-size: 0.95em;
+ line-height: 1.4;
+ margin-top: 15px;
+}
+
+/* Block: Shortcode -------------------------- */
+
+.editor-styles-wrapper .wp-block-shortcode textarea {
+ color: #191e23;
+}
+
+/* Block: Embed ------------------------------ */
+
+.editor-styles-wrapper .wp-block-embed {
+ margin-bottom: 30px;
+ margin-top: 30px;
+}
+
+.editor-styles-wrapper .wp-block[data-type*="core-embed"][data-align="center"] * {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+/* Block: File ------------------------------- */
+
+.editor-styles-wrapper .wp-block-file {
+ background: none;
+ padding: 0;
+}
+
+.editor-styles-wrapper .wp-block-file__content-wrapper {
+ align-items: center;
+ display: flex;
+ justify-content: space-between;
+}
+
+.editor-styles-wrapper .wp-block-file .wp-block-file__textlink {
+ color: #cd2653;
+ font-weight: 700;
+ text-decoration: none;
+}
+
+.editor-styles-wrapper .wp-block-file .wp-block-file__textlink:focus,
+.editor-styles-wrapper .wp-block-file .wp-block-file__textlink:hover {
+ text-decoration: underline;
+}
+
+.editor-styles-wrapper .wp-block-file .wp-block-file__button {
+ font-size: 14px;
+ padding: 1em 1.25em;
+}
+
+/* Block: Image ------------------------------ */
+
+.editor-styles-wrapper .wp-block-image {
+ margin-bottom: 30px;
+ margin-top: 30px;
+}
+
+.editor-styles-wrapper .wp-block-image.is-resized {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+/* Block: Group ------------------------------ */
+
+.editor-styles-wrapper .wp-block-group.has-background {
+ padding: 20px;
+}
+
+.wp-block-group .wp-block[data-type="core/heading"]:first-child * {
+ margin-top: 0;
+}
+
+.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"],
+.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%;
+}
+
+/* Block: Paragraph -------------------------- */
+
+
+/* X. Media Queries
+/* ------------------------------------------- */
+
+
+@media ( min-width: 480px ) {
+
+
+ /* STRUCTURE */
+
+ .editor-styles-wrapper .wp-block[data-align="right"] {
+ margin-right: 0;
+ }
+
+ .editor-styles-wrapper .wp-block[data-align="left"] {
+ margin: 0;
+ }
+
+ /* BLOCK: COVER */
+
+ .wp-block[data-type="core/cover"][data-align="left"] [data-block],
+ .wp-block[data-type="core/cover"][data-align="right"] [data-block] {
+ margin-top: 0;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/cover"][data-align="right"] .block-editor-block-list__block-edit {
+ float: right;
+ margin-left: 20px;
+ max-width: 260px;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/cover"][data-align="left"] .block-editor-block-list__block-edit {
+ float: left;
+ margin-right: 20px;
+ max-width: 260px;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/cover"][data-align="right"] .wp-block-pullquote::before {
+ margin-right: 0;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/cover"][data-align="left"] .wp-block-pullquote::before {
+ margin-left: 0;
+ }
+
+ /* BLOCK: PULL QUOTE */
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"],
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] {
+ height: 0;
+ max-width: 260px;
+ }
+
+ .wp-block[data-type="core/pullquote"][data-align="left"] [data-block],
+ .wp-block[data-type="core/pullquote"][data-align="right"] [data-block] {
+ margin-top: 0;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .block-editor-block-list__block-edit {
+ float: right;
+ margin-left: 20px;
+ max-width: 260px;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] .block-editor-block-list__block-edit {
+ float: left;
+ margin-right: 20px;
+ max-width: 260px;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .wp-block-pullquote::before {
+ margin-right: 0;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] .wp-block-pullquote::before {
+ margin-left: 0;
+ }
+
+
+}
+
+@media ( min-width: 600px ) {
+
+
+ /* BLOCK: SHARED MEDIA STYLES */
+
+ .wp-block[data-type*="core-embed"][data-align="full"] figcaption,
+ .wp-block[data-type="core/image"][data-align="full"] figcaption,
+ .wp-block[data-type="core/gallery"][data-align="full"] .blocks-gallery-caption {
+ padding: 0 45px;
+ }
+
+ /* BLOCK: COLUMNS */
+
+ .editor-styles-wrapper .wp-block[data-type="core/column"] h1,
+ .editor-styles-wrapper .wp-block[data-type="core/column"] h2,
+ .editor-styles-wrapper .wp-block[data-type="core/column"] h3,
+ .editor-styles-wrapper .wp-block[data-type="core/column"] h4,
+ .editor-styles-wrapper .wp-block[data-type="core/column"] h5,
+ .editor-styles-wrapper .wp-block[data-type="core/column"] h6 {
+ margin: 35px 0 20px 0;
+ }
+
+ /* BLOCK: PULLQUOTE */
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .block-editor-block-list__block-edit {
+ margin-right: -30px;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] .block-editor-block-list__block-edit {
+ margin-left: -30px;
+ }
+
+
+}
+
+@media ( min-width: 700px ) {
+
+ /* STRUCTURE */
+
+ .editor-styles-wrapper > * {
+ font-size: 21px;
+ }
+
+ /* TYPOGRAPHY */
+
+ .editor-post-title__block .editor-post-title__input,
+ .editor-styles-wrapper .wp-block h1 {
+ font-size: 64px;
+ }
+
+ .editor-styles-wrapper .wp-block h2 {
+ font-size: 48px;
+ }
+
+ .editor-styles-wrapper .wp-block h3 {
+ font-size: 40px;
+ }
+
+ .editor-styles-wrapper .wp-block h4 {
+ font-size: 32px;
+ }
+
+ .editor-styles-wrapper .wp-block h5 {
+ font-size: 24px;
+ }
+
+ .editor-styles-wrapper li,
+ .editor-styles-wrapper p,
+ .editor-styles-wrapper p.wp-block-paragraph {
+ line-height: 1.476;
+ }
+
+ /* FORMS */
+
+ .editor-styles-wrapper fieldset {
+ padding: 30px;
+ }
+
+ .editor-styles-wrapper legend {
+ padding: 0 15px;
+ }
+
+ /* BLOCK: BASE MARGINS */
+
+ /* BLOCK: BUTTON */
+
+ .editor-styles-wrapper .wp-block-button__link,
+ .editor-styles-wrapper .wp-block-file__button {
+ font-size: 17px;
+ }
+
+ /* BLOCK: CODE */
+
+ .editor-styles-wrapper .wp-block-preformatted pre,
+ .editor-styles-wrapper .wp-block-code .block-editor-plain-text,
+ .editor-styles-wrapper .wp-block-verse pre {
+ font-size: 16px;
+ }
+
+ /* BLOCK: COLUMNS */
+
+ .wp-block-column {
+ font-size: 16px;
+ }
+
+ /* BLOCK: COVER */
+
+ .editor-styles-wrapper .wp-block-cover-image .wp-block-cover__inner-container,
+ .editor-styles-wrapper .wp-block-cover .wp-block-cover__inner-container {
+ width: calc(100% - 80px);
+ }
+
+ /* BLOCK: GROUP */
+
+ .editor-styles-wrapper .wp-block:not([data-align="wide"]):not([data-align="full"]) div:not([class*="__inner-container"]) .wp-block-group.has-background,
+ .editor-styles-wrapper .wp-block div[class*="__inner-container"] .wp-block[data-align="wide"] .wp-block-group.has-background,
+ .editor-styles-wrapper .wp-block div[class*="__inner-container"] .wp-block[data-align="full"] .wp-block-group.has-background {
+ padding: 40px;
+ }
+
+ .editor-styles-wrapper .wp-block[data-align="wide"] .wp-block-group.has-background,
+ .editor-styles-wrapper .wp-block[data-align="full"] .wp-block-group.has-background {
+ padding: 80px;
+ }
+
+ /* BLOCK: LATEST POSTS */
+
+ /* BLOCK: PULLQUOTE */
+
+ .editor-styles-wrapper .wp-block .wp-block-pullquote p,
+ .editor-styles-wrapper .wp-block-pullquote.is-style-solid-color blockquote > .block-editor-rich-text p,
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .editor-rich-text p,
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] .editor-rich-text p {
+ font-size: 32px;
+ }
+
+ .editor-styles-wrapper .wp-block-pullquote__citation,
+ .editor-styles-wrapper .wp-block-pullquote cite,
+ .editor-styles-wrapper .wp-block-pullquote footer {
+ margin-top: 20px;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="wide"] .wp-block-pullquote::before,
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="full"] .wp-block-pullquote::before {
+ font-size: 113px;
+ height: 80px;
+ margin-bottom: 20px;
+ width: 80px;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="wide"] .wp-block-pullquote.is-style-solid-color,
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="full"] .wp-block-pullquote.is-style-solid-color {
+ padding: 60px 40px 40px;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="full"] .wp-block-pullquote:not(.is-style-solid-color) {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="wide"] blockquote p,
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="full"] blockquote p {
+ font-size: 48px;
+ line-height: 1.203125;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] p,
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] p {
+ font-size: 32px;
+ line-height: 1.1875;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] .is-style-solid-color p,
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .is-style-solid-color p {
+ font-size: 26px;
+ }
+
+ /* BLOCK: TABLE */
+
+ .editor-styles-wrapper table.wp-block-table {
+ font-size: 18px;
+ }
+
+ /* BLOCK: SEPARATOR */
+
+ hr.wp-block-separator {
+ margin-bottom: 60px;
+ margin-top: 60px;
+ }
+
+}
+
+
+@media ( min-width: 1000px ) {
+
+
+ /* BLOCK: COLUMNS */
+
+ .wp-block-column {
+ font-size: 18px;
+ }
+
+ /* BLOCK: SEPARATOR */
+
+ hr.wp-block-separator {
+ margin-bottom: 80px;
+ margin-top: 80px;
+ }
+
+ hr.wp-block-separator.is-style-wide {
+ margin-left: -70px;
+ margin-right: -70px;
+ }
+
+
+}
+
+
+@media ( min-width: 1220px ) {
+
+
+ /* TYPOGRAPHY */
+
+ .editor-post-title__block .editor-post-title__input,
+ .editor-styles-wrapper .wp-block h1 {
+ font-size: 84px;
+ }
+
+ .editor-styles-wrapper .wp-block h6 {
+ font-size: 18px;
+ }
+
+ /* BLOCK: PULLQUOTE */
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="wide"] .wp-block-pullquote.is-style-solid-color,
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="full"] .wp-block-pullquote.is-style-solid-color {
+ padding: 90px 40px 80px;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="wide"] blockquote p,
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="full"] blockquote p {
+ font-size: 64px;
+ }
+
+ /* BLOCK: SEPARATOR */
+
+ hr.wp-block-separator.is-style-wide {
+ margin-left: -150px;
+ margin-right: -150px;
+ }
+
+}
+
+
+@media ( min-width: 1360px ) {
+
+
+ /* STRUCTURE */
+
+ .editor-styles-wrapper .wp-block[data-align="left"],
+ .editor-styles-wrapper .wp-block[data-align="right"] {
+ margin: 0 auto;
+ max-width: 1220px;
+ }
+
+
+ /* BLOCK: PULLQUOTE */
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"] .is-style-solid-color::before,
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .is-style-solid-color::before {
+ top: 0;
+ }
+
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="left"],
+ .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] {
+ margin: 0 auto;
+ max-width: 1220px;
+ }
+
+ /* BLOCK: SEPARATOR */
+
+ hr.wp-block-separator.is-style-wide {
+ margin-left: -200px;
+ margin-right: -200px;
+ }
+
+
+}
diff --git a/wp-content/themes/twentytwenty/assets/css/editor-style-classic-rtl.css b/wp-content/themes/twentytwenty/assets/css/editor-style-classic-rtl.css
new file mode 100644
index 000000000..796aadba6
--- /dev/null
+++ b/wp-content/themes/twentytwenty/assets/css/editor-style-classic-rtl.css
@@ -0,0 +1,600 @@
+/* -------------------------------------------------------------------------- */
+
+/* Twenty Twenty Editor Styles — Classic Editor
+/* -------------------------------------------------------------------------- */
+
+
+/* Fonts ------------------------------------- */
+
+/*
+ * Chrome renders extra-wide characters for the Hoefler Text font.
+ * This results in a jumping cursor when typing in both the classic editor and
+ * block editor. The following font-face override fixes the issue by manually
+ * inserting a custom font that includes just a Hoefler Text space replacement
+ * for that character instead.
+ */
+@font-face {
+ font-family: NonBreakingSpaceOverride;
+ src: url(data:application/font-woff2;charset=utf-8;base64,d09GMgABAAAAAAMoAA0AAAAACDQAAALTAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0ZGVE0cGh4GYACCahEICjx3CywAATYCJANUBCAFhiEHgWwbXQfILgpsY+rQRRARwyAs6uL7pxzYhxEE+32b3aeHmifR6tklkS9hiZA0ewkqGRJE+H7/+6378ASViK/PGeavqJyOzsceKi1s3BCiQsiOdn1r/RBgIJYEgCUhbm/8/8/h4saPssnTNkkiWUBrTRtjmQSajw3Ui3pZ3LYDPD+XG2C3JA/yKAS8/rU5eNfuGqRf4eNNgV4YAlIIgxglEkWe6FYpq10+wi3g+/nUgvgPFczNrz/RsTgVm/zfbPuHZlsuQECxuyqBcQwKFBjFgKO8AqP4bAN9tFJtnM9xPcbNjeXS/x1wY/xU52f5W/X1+9cnH4YwKIaoRRAkUkj/YlAAeF/624foiIDBgBmgQBeGAyhBljUPZUm/l2dTvmpqcBDUOHdbPZWd8JsBAsGr4w8/EDn82/bUPx4eh0YNrQTBuHO2FjQEAGBwK0DeI37DpQVqdERS4gZBhpeUhWCfLFz7J99aEBgsJCHvUGAdAPp4IADDCAPCEFMGpMZ9AQpTfQtQGhLbGVBZFV8BaqNyP68oTZgHNj3M8kBPfXTTC9t90UuzYhy9ciH0grVlOcqyCytisvbsERsEYztiznR0WCrmTksJwbSNK6fd1Rvr25I9oLvctUoEbNOmXJbqgYgPXEHJ82IUsrCnpkxh23F1rfZ2zcRnJYoXtauB3VTFkFXQg3uoZYD5qE0kdjDtoDoF1h2bulGmev5HbYhbrjtohQSRI4aNOkffIcT+d3v6atpaYh3JvPoQsztCcqvaBkppDSPcQ3bw3KaCBo1f5CJWTZEgW3LjLofYg51MaVezrx8xZitYbQ9KYeoRaqQdVLwSEfrKXLK1otCWOKNdR/YwYAfon5Yk8O2MJfSD10dPGA5PIJJQMkah0ugMJiv6x4Dm7LEa8xnrRGGGLAg4sAlbsA07sAt76DOsXKO3hIjtIlpnnFrt1qW4kh6NhS83P/6HB/fl1SMAAA==) format("woff2"), url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAUQAA0AAAAACDQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAE9AAAABwAAAAchf5yU0dERUYAAATYAAAAHAAAAB4AJwAbT1MvMgAAAaAAAABJAAAAYJAcgU5jbWFwAAACIAAAAF4AAAFqUUxBZ2dhc3AAAATQAAAACAAAAAgAAAAQZ2x5ZgAAApAAAAAyAAAAPL0n8y9oZWFkAAABMAAAADAAAAA2Fi93Z2hoZWEAAAFgAAAAHQAAACQOSgWaaG10eAAAAewAAAAzAAAAVC7TAQBsb2NhAAACgAAAABAAAAAsAOQBAm1heHAAAAGAAAAAHQAAACAAWQALbmFtZQAAAsQAAAF6AAADIYvD/Adwb3N0AAAEQAAAAI4AAADsapk2o3jaY2BkYGAA4ov5mwzj+W2+MnCzXwCKMNzgCBSB0LfbQDQ7AxuI4mBgAlEAFKQIRHjaY2BkYGD3+NvCwMDBAALsDAyMDKhAFAA3+wH3AAAAeNpjYGRgYBBl4GBgYgABEMnIABJzAPMZAAVmAGUAAAB42mNgZlJhnMDAysDCKsKygYGBYRqEZtrDYMT4D8gHSmEHjgUFOQwODAqqf9g9/rYwMLB7MNUAhRlBcsxBrMlASoGBEQAj8QtyAAAAeNrjYGBkAAGmWQwMjO8gmBnIZ2NA0ExAzNjAAFYJVn0ASBsD6VAIDZb7AtELAgANIgb9AHjaY2BgYGaAYBkGRgYQSAHyGMF8FgYPIM3HwMHAxMDGoMCwQIFLQV8hXvXP//9AcRCfAcb///h/ygPW+w/vb7olBjUHCTCyMcAFGZmABBO6AogThgZgIUsXAEDcEzcAAHjaY2BgECMCyoEgACZaAed42mNgYmRgYGBnYGNgYAZSDJqMgorCgoqCjECRXwwNrCAKSP5mAAFGBiRgyAAAi/YFBQAAeNqtkc1OwkAUhU/5M25cEhcsZick0AwlBJq6MWwgJkAgYV/KAA2lJeUn+hY+gktXvpKv4dLTMqKycGHsTZNv7px7z50ZAFd4hYHjdw1Ls4EiHjVncIFnzVnc4F1zDkWjrzmPW+NNcwGlzIRKI3fJlUyrEjZQxb3mDH2fNGfRx4vmHKqG0JzHg6E0F9DOlFBGBxUI1GEzLNT4S0aLuTtsGAEUuYcQHkyg3KmIum1bNUvKlrjbbAIleqHHnS4iSudpQcySMYtdFiXlAxzSbAwfMxK6kZoHKhbjjespMTioOPZnzI+4ucCeTVyKMVKLfeAS6vSWaTinuZwzyy/Dc7vaed+6KaV0kukdPUk6yOcctZPvvxxqksq2lEW8RvHjMEO2FCl/zy6p3NEm0R9OFSafJdldc4QVeyaaObMBO0/5cCaa6d9Ggyubxire+lEojscdjoWUR1xGOy8KD8mG2ZLO2l2paDc3A39qmU2z2W5YNv5+u79e6QfGJY/hAAB42m3NywrCMBQE0DupWp/1AYI7/6DEaLQu66Mrd35BKUWKJSlFv1+rue4cGM7shgR981qSon+ZNwUJ8iDgoYU2OvDRRQ99DDDECAHGmGCKmf80hZSx/Kik/LliFbtmN6xmt+yOjdg9GztV4tROnRwX/Bsaaw51nt4Lc7tWaZYHp/MlzKx51LZs5htNri+2AAAAAQAB//8AD3jaY2BkYGDgAWIxIGZiYARCESBmAfMYAAR6AEMAAAABAAAAANXtRbgAAAAA2AhRFAAAAADYCNuG) format("woff");
+}
+
+/* ----------------------------------------------
+Inter variable font. Usage:
+
+@supports (font-variation-settings: normal) {
+ html { font-family: "Inter var", sans-serif; }
+}
+---------------------------------------------- */
+
+@font-face {
+ font-family: "Inter var";
+ font-weight: 100 900; /* stylelint-disable-line font-weight-notation */
+ font-style: normal;
+ src: url(../fonts/inter/Inter-upright-var.woff2) format("woff2");
+}
+
+@font-face {
+ font-family: "Inter var";
+ font-weight: 100 900; /* stylelint-disable-line font-weight-notation */
+ font-style: italic;
+ src: url(../fonts/inter/Inter-italic-var.woff2) format("woff2");
+}
+
+/* Structure --------------------------------- */
+
+body#tinymce.wp-editor.content { /* stylelint-disable-line no-duplicate-selectors */
+ font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
+}
+
+@supports ( font-variation-settings: normal ) {
+
+ body#tinymce.wp-editor.content { /* stylelint-disable-line no-duplicate-selectors */
+ font-family: "Inter var", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
+ }
+
+}
+
+body#tinymce.wp-editor.content { /* stylelint-disable-line no-duplicate-selectors */
+ background: #f5efe0;
+ color: #000;
+ font-size: 21px;
+ letter-spacing: -0.015em;
+ margin: 0 auto;
+ max-width: calc(100% - 40px);
+ width: 580px;
+}
+
+body#tinymce.wp-editor.content * {
+ box-sizing: border-box;
+ -webkit-font-smoothing: antialiased;
+}
+
+body#tinymce.wp-editor.content p,
+body#tinymce.wp-editor.content ol,
+body#tinymce.wp-editor.content ul,
+body#tinymce.wp-editor.content dl,
+body#tinymce.wp-editor.content dt {
+ font-family: NonBreakingSpaceOverride, "Hoefler Text", Garamond, "Times New Roman", serif;
+ letter-spacing: normal;
+}
+
+body#tinymce.wp-editor.content p,
+body#tinymce.wp-editor.content ul,
+body#tinymce.wp-editor.content ol,
+body#tinymce.wp-editor.content blockquote {
+ line-height: 1.5;
+ margin-bottom: 1.5em;
+}
+
+body#tinymce.wp-editor.content code,
+body#tinymce.wp-editor.content kbd,
+body#tinymce.wp-editor.content samp {
+ background: rgba(0, 0, 0, 0.075);
+}
+
+body#tinymce.wp-editor.content code,
+body#tinymce.wp-editor.content kbd,
+body#tinymce.wp-editor.content pre,
+body#tinymce.wp-editor.content samp {
+ font-family: monospace;
+ color: inherit;
+ font-size: 15px;
+}
+
+body#tinymce.wp-editor.content pre {
+ border: 1px solid #dcd7ca;
+ line-height: 1.5;
+ margin: 40px 0;
+ overflow: auto;
+ padding: 30px;
+ text-align: right;
+}
+
+body#tinymce.wp-editor.content a,
+body#tinymce.wp-editor.content a:focus,
+body#tinymce.wp-editor.content a:hover {
+ color: #cd2653;
+ text-decoration: underline;
+}
+
+body#tinymce.wp-editor.content img {
+ height: auto;
+ max-width: 100%;
+}
+
+body#tinymce.wp-editor.content img[data-wp-more] {
+ height: 16px;
+}
+
+body#tinymce.wp-editor.content hr {
+ border: none;
+ border-top: 1px solid #dcd7ca;
+ margin: 2em auto;
+ width: 100%;
+}
+
+body#tinymce.wp-editor.content hr:not(.is-style-dots) {
+ background: linear-gradient(to right, currentColor calc(50% - 16px), transparent calc(50% - 16px), transparent calc(50% + 16px), currentColor calc(50% + 16px));
+ border: none;
+ color: #6d6d6d;
+ height: 1px;
+ margin: 80px 0;
+ overflow: visible;
+ position: relative;
+}
+
+body#tinymce.wp-editor.content hr:not(.is-style-dots)::before,
+body#tinymce.wp-editor.content hr:not(.is-style-dots)::after {
+ background: currentColor;
+ content: "";
+ display: block;
+ height: 16px;
+ position: absolute;
+ top: calc(50% - 8px);
+ transform: rotate(-22.5deg);
+ width: 1px;
+}
+
+body#tinymce.wp-editor.content hr::before {
+ right: calc(50% - 5px);
+}
+
+body#tinymce.wp-editor.content hr::after {
+ left: calc(50% - 5px);
+}
+
+body#tinymce.wp-editor.content dt {
+ font-weight: 600;
+}
+
+body#tinymce.wp-editor.content dd {
+ line-height: 1.5;
+}
+
+body#tinymce.wp-editor.content dd + dt {
+ margin-top: 1.5rem;
+}
+
+
+/* Font Families ----------------------------- */
+
+body#tinymce.wp-editor.content figcaption,
+body#tinymce.wp-editor.content .wp-caption-text,
+body#tinymce.wp-editor.content .wp-caption-dd,
+body#tinymce.wp-editor.content cite,
+body#tinymce.wp-editor.content table {
+ font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
+ line-height: 1;
+}
+
+@supports ( font-variation-settings: normal ) {
+
+ body#tinymce.wp-editor.content figcaption,
+ body#tinymce.wp-editor.content .wp-caption-text,
+ body#tinymce.wp-editor.content .wp-caption-dd,
+ body#tinymce.wp-editor.content cite,
+ body#tinymce.wp-editor.content table {
+ font-family: "Inter var", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
+ }
+}
+
+
+/* Titles ------------------------------------ */
+
+body#tinymce.wp-editor.content h1,
+body#tinymce.wp-editor.content h2,
+body#tinymce.wp-editor.content h3,
+body#tinymce.wp-editor.content h4,
+body#tinymce.wp-editor.content h5,
+body#tinymce.wp-editor.content h6 {
+ font-feature-settings: "lnum";
+ font-variant-numeric: lining-nums;
+ font-weight: 700;
+ letter-spacing: -0.0415625em;
+ line-height: 1.25;
+ margin: 40px 0 25px;
+}
+
+body#tinymce.wp-editor.content h1 {
+ font-size: 84px;
+ font-weight: 800;
+ line-height: 1.138888889;
+}
+
+body#tinymce.wp-editor.content h2 {
+ font-size: 48px;
+}
+
+body#tinymce.wp-editor.content h3 {
+ font-size: 40px;
+}
+
+body#tinymce.wp-editor.content h4 {
+ font-size: 32px;
+}
+
+body#tinymce.wp-editor.content h5 {
+ font-size: 24px;
+}
+
+body#tinymce.wp-editor.content h6 {
+ font-size: 18px;
+ letter-spacing: 0.03125em;
+ text-transform: uppercase;
+}
+
+/* Blockquote -------------------------------- */
+
+body#tinymce.wp-editor.content blockquote {
+ border: none;
+ border-right: 2px solid #cd2653;
+ margin: 0 0 1.6em 0;
+ padding: 0.25em 1em 0.25em 0;
+}
+
+body#tinymce.wp-editor.content blockquote p {
+ font-style: normal;
+ font-weight: 400;
+ margin: 0;
+}
+
+body#tinymce.wp-editor.content cite {
+ color: #6d6d6d;
+ font-size: 16px;
+ font-weight: 500;
+ font-style: normal;
+}
+
+body#tinymce.wp-editor.content blockquote cite {
+ display: block;
+ margin-top: 20px;
+}
+
+
+/* Lists ------------------------------------- */
+
+body#tinymce.wp-editor.content ul {
+ margin-right: 1.5em;
+ padding-right: 0;
+ list-style: disc;
+}
+
+body#tinymce.wp-editor.content ol {
+ margin-right: 1.5em;
+ padding-right: 0;
+ list-style: square;
+}
+
+body#tinymce.wp-editor.content ul ul {
+ list-style: circle;
+}
+
+body#tinymce.wp-editor.content ul ul ul {
+ list-style: square;
+}
+
+body#tinymce.wp-editor.content ol ol {
+ list-style: lower-alpha;
+}
+
+body#tinymce.wp-editor.content ol ol ol {
+ list-style: lower-roman;
+}
+
+body#tinymce.wp-editor.content ul ul,
+body#tinymce.wp-editor.content ul ol,
+body#tinymce.wp-editor.content ol ul,
+body#tinymce.wp-editor.content ol ol {
+ margin-bottom: 0;
+}
+
+body#tinymce.wp-editor.content li {
+ line-height: 1.5;
+ margin-bottom: 0.5em;
+}
+
+body#tinymce.wp-editor.content ol > li:last-child,
+body#tinymce.wp-editor.content ul > li:last-child {
+ margin-bottom: 0;
+}
+
+body#tinymce.wp-editor.content ol > li:first-child,
+body#tinymce.wp-editor.content ul > li:first-child {
+ margin-top: 0.5em;
+}
+
+
+/* Post Media -------------------------------- */
+
+body#tinymce.wp-editor.content figure,
+body#tinymce.wp-editor.content video {
+ display: block;
+ margin: 0;
+}
+
+body#tinymce.wp-editor.content .wp-caption {
+ margin-bottom: 1.5em;
+}
+
+body#tinymce.wp-editor.content img.alignleft,
+body#tinymce.wp-editor.content .alignleft img,
+body#tinymce.wp-editor.content img.aligncenter,
+body#tinymce.wp-editor.content .aligncenter img,
+body#tinymce.wp-editor.content img.alignright,
+body#tinymce.wp-editor.content .alignright img,
+body#tinymce.wp-editor.content img.alignnone,
+body#tinymce.wp-editor.content .alignnone img {
+ display: block;
+}
+
+body#tinymce.wp-editor.content .aligncenter,
+body#tinymce.wp-editor.content .alignnone,
+body#tinymce.wp-editor.content .alignwide,
+body#tinymce.wp-editor.content .alignfull {
+ margin: 50px auto;
+}
+
+body#tinymce.wp-editor.content .alignleft,
+body#tinymce.wp-editor.content .alignright {
+ margin-bottom: 25px;
+ max-width: 50%;
+}
+
+body#tinymce.wp-editor.content .wp-caption img {
+ display: block;
+}
+
+body#tinymce.wp-editor.content .wp-caption .alignleft,
+body#tinymce.wp-editor.content .wp-caption .alignright {
+ margin-bottom: 0;
+}
+
+body#tinymce.wp-editor.content .alignleft {
+ float: left;
+ margin-left: 25px;
+ max-width: 260px;
+}
+
+body#tinymce.wp-editor.content .alignright {
+ float: right;
+ margin-right: 25px;
+ max-width: 260px;
+}
+
+body#tinymce.wp-editor.content .wpview[data-wpview-type="gallery"] + .wpview[data-wpview-type="gallery"] {
+ margin-top: -34px;
+}
+
+body#tinymce.wp-editor.content figcaption,
+body#tinymce.wp-editor.content .wp-caption-text,
+body#tinymce.wp-editor.content .wp-caption-dd,
+body#tinymce.wp-editor.content .gallery-caption {
+ color: #6d6d6d;
+ display: block;
+ font-size: 15px;
+ font-weight: 500;
+ line-height: 1.2;
+ margin: 18px 0 0;
+}
+
+body#tinymce.wp-editor.content figcaption a,
+body#tinymce.wp-editor.content .wp-caption-text a,
+body#tinymce.wp-editor.content .wp-caption-dd a,
+body#tinymce.wp-editor.content .gallery-caption a {
+ color: inherit;
+}
+
+
+/* Tables ------------------------------------ */
+
+body#tinymce.wp-editor.content table {
+ border-collapse: collapse;
+ border-spacing: 0;
+ empty-cells: show;
+ font-size: 18px;
+ width: 100%;
+}
+
+body#tinymce.wp-editor.content th,
+body#tinymce.wp-editor.content td {
+ line-height: 1.2;
+ margin: 0;
+ overflow: visible;
+ padding: 0.5em;
+}
+
+body#tinymce.wp-editor.content caption {
+ text-align: center;
+ padding: 0.5em;
+}
+
+body#tinymce.wp-editor.content thead {
+ vertical-align: bottom;
+ white-space: nowrap;
+}
+
+body#tinymce.wp-editor.content th {
+ text-align: right;
+}
+
+
+/* Forms ------------------------------------- */
+
+body#tinymce.wp-editor.content fieldset {
+ border: 2px solid #dcd7ca;
+ padding: 30px;
+}
+
+body#tinymce.wp-editor.content fieldset legend {
+ font-size: 0.85em;
+ font-weight: 700;
+ padding: 0 15px;
+}
+
+body#tinymce.wp-editor.content label {
+ display: block;
+ font-size: 15px;
+ font-weight: 600;
+ margin: 0 0 5px 0;
+}
+
+body#tinymce.wp-editor.content input,
+body#tinymce.wp-editor.content textarea {
+ border-color: #dcd7ca;
+ color: inherit;
+ font-family: inherit;
+ font-size: inherit;
+}
+
+body#tinymce.wp-editor.content input[type="text"],
+body#tinymce.wp-editor.content input[type="password"],
+body#tinymce.wp-editor.content input[type="email"],
+body#tinymce.wp-editor.content input[type="url"],
+body#tinymce.wp-editor.content input[type="date"],
+body#tinymce.wp-editor.content input[type="month"],
+body#tinymce.wp-editor.content input[type="time"],
+body#tinymce.wp-editor.content input[type="datetime"],
+body#tinymce.wp-editor.content input[type="datetime-local"],
+body#tinymce.wp-editor.content input[type="week"],
+body#tinymce.wp-editor.content input[type="number"],
+body#tinymce.wp-editor.content input[type="search"],
+body#tinymce.wp-editor.content input[type="tel"],
+body#tinymce.wp-editor.content input[type="color"],
+body#tinymce.wp-editor.content textarea {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ background: transparent;
+ border-radius: 3px;
+ border-style: solid;
+ border-width: 0.1rem;
+ box-shadow: none;
+ display: block;
+ font-size: inherit;
+ font-weight: 400;
+ margin: 0;
+ max-width: 100%;
+ padding: 13.5px 18px;
+ width: 100%;
+ word-break: normal;
+}
+
+body#tinymce.wp-editor.content textarea {
+ height: 200px;
+ line-height: 1.5;
+ width: 100%;
+}
+
+body#tinymce.wp-editor.content button,
+body#tinymce.wp-editor.content .faux-button,
+body#tinymce.wp-editor.content .wp-block-button__link,
+body#tinymce.wp-editor.content .wp-block-file__button,
+body#tinymce.wp-editor.content input[type="button"],
+body#tinymce.wp-editor.content input[type="reset"],
+body#tinymce.wp-editor.content input[type="submit"] {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ background: #cd2653;
+ border: none;
+ border-radius: 0;
+ color: #fff;
+ cursor: pointer;
+ display: inline-block;
+ font-size: 17px;
+ font-weight: 600;
+ letter-spacing: 0.0333em;
+ line-height: 1.25;
+ margin: 0;
+ padding: 1.1em 1.44em;
+ text-align: center;
+ text-decoration: none;
+ text-transform: uppercase;
+}
+
+body#tinymce.wp-editor.content button:focus,
+body#tinymce.wp-editor.content button:hover,
+body#tinymce.wp-editor.content .faux-button:hover,
+body#tinymce.wp-editor.content .faux-button:focus,
+body#tinymce.wp-editor.content .wp-block-button__link:focus,
+body#tinymce.wp-editor.content .wp-block-button__link:hover,
+body#tinymce.wp-editor.content .wp-block-file__button:focus,
+body#tinymce.wp-editor.content .wp-block-file__button:hover,
+body#tinymce.wp-editor.content input[type="button"]:focus,
+body#tinymce.wp-editor.content input[type="button"]:hover,
+body#tinymce.wp-editor.content input[type="reset"]:focus,
+body#tinymce.wp-editor.content input[type="reset"]:hover,
+body#tinymce.wp-editor.content input[type="submit"]:focus,
+body#tinymce.wp-editor.content input[type="submit"]:hover {
+ color: #fff;
+ text-decoration: underline;
+}
+
+.wp-block-button:not(.alignleft):not(.alignright) {
+ margin-bottom: 30px;
+ margin-top: 30px;
+}
+
+/* BUTTON ALIGN: CENTER */
+
+.wp-block-button.aligncenter {
+ text-align: center;
+}
+
+/* BUTTON STYLE: OUTLINE */
+
+body#tinymce.wp-editor.content .is-style-outline .wp-block-button__link,
+body#tinymce.wp-editor.content .is-style-outline .wp-block-button__link:focus,
+body#tinymce.wp-editor.content .is-style-outline .wp-block-button__link:hover {
+ color: #cd2653;
+}
+
+body#tinymce.wp-editor.content .is-style-outline .wp-block-button__link {
+ background: none;
+ border: 2px solid currentColor;
+ padding: calc(1.1em - 2px) calc(1.44em - 2px);
+}
+
+/* BUTTON STYLE: SQUARED */
+
+body#tinymce.wp-editor.content .is-style-squared .wp-block-button__link {
+ border-radius: 0;
+}
+
+
+/* Blocks ------------------------------------ */
+
+/* BLOCK: HELPER CLASSES */
+
+body#tinymce.wp-editor.content .has-background {
+ padding: 20px;
+}
+
+/* BLOCK: GALLERY */
+
+body#tinymce.wp-editor.content ul.wp-block-gallery {
+ list-style: none;
+ margin-right: 0;
+}
+
+body#tinymce.wp-editor.content ul.wp-block-gallery li {
+ margin-right: 0;
+}
diff --git a/wp-content/themes/twentytwenty/assets/css/editor-style-classic.css b/wp-content/themes/twentytwenty/assets/css/editor-style-classic.css
new file mode 100644
index 000000000..90dd9bc56
--- /dev/null
+++ b/wp-content/themes/twentytwenty/assets/css/editor-style-classic.css
@@ -0,0 +1,604 @@
+/* -------------------------------------------------------------------------- */
+
+/* Twenty Twenty Editor Styles — Classic Editor
+/* -------------------------------------------------------------------------- */
+
+
+/* Fonts ------------------------------------- */
+
+/*
+ * Chrome renders extra-wide characters for the Hoefler Text font.
+ * This results in a jumping cursor when typing in both the classic editor and
+ * block editor. The following font-face override fixes the issue by manually
+ * inserting a custom font that includes just a Hoefler Text space replacement
+ * for that character instead.
+ */
+@font-face {
+ font-family: NonBreakingSpaceOverride;
+ src: url(data:application/font-woff2;charset=utf-8;base64,d09GMgABAAAAAAMoAA0AAAAACDQAAALTAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0ZGVE0cGh4GYACCahEICjx3CywAATYCJANUBCAFhiEHgWwbXQfILgpsY+rQRRARwyAs6uL7pxzYhxEE+32b3aeHmifR6tklkS9hiZA0ewkqGRJE+H7/+6378ASViK/PGeavqJyOzsceKi1s3BCiQsiOdn1r/RBgIJYEgCUhbm/8/8/h4saPssnTNkkiWUBrTRtjmQSajw3Ui3pZ3LYDPD+XG2C3JA/yKAS8/rU5eNfuGqRf4eNNgV4YAlIIgxglEkWe6FYpq10+wi3g+/nUgvgPFczNrz/RsTgVm/zfbPuHZlsuQECxuyqBcQwKFBjFgKO8AqP4bAN9tFJtnM9xPcbNjeXS/x1wY/xU52f5W/X1+9cnH4YwKIaoRRAkUkj/YlAAeF/624foiIDBgBmgQBeGAyhBljUPZUm/l2dTvmpqcBDUOHdbPZWd8JsBAsGr4w8/EDn82/bUPx4eh0YNrQTBuHO2FjQEAGBwK0DeI37DpQVqdERS4gZBhpeUhWCfLFz7J99aEBgsJCHvUGAdAPp4IADDCAPCEFMGpMZ9AQpTfQtQGhLbGVBZFV8BaqNyP68oTZgHNj3M8kBPfXTTC9t90UuzYhy9ciH0grVlOcqyCytisvbsERsEYztiznR0WCrmTksJwbSNK6fd1Rvr25I9oLvctUoEbNOmXJbqgYgPXEHJ82IUsrCnpkxh23F1rfZ2zcRnJYoXtauB3VTFkFXQg3uoZYD5qE0kdjDtoDoF1h2bulGmev5HbYhbrjtohQSRI4aNOkffIcT+d3v6atpaYh3JvPoQsztCcqvaBkppDSPcQ3bw3KaCBo1f5CJWTZEgW3LjLofYg51MaVezrx8xZitYbQ9KYeoRaqQdVLwSEfrKXLK1otCWOKNdR/YwYAfon5Yk8O2MJfSD10dPGA5PIJJQMkah0ugMJiv6x4Dm7LEa8xnrRGGGLAg4sAlbsA07sAt76DOsXKO3hIjtIlpnnFrt1qW4kh6NhS83P/6HB/fl1SMAAA==) format("woff2"), url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAUQAA0AAAAACDQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAE9AAAABwAAAAchf5yU0dERUYAAATYAAAAHAAAAB4AJwAbT1MvMgAAAaAAAABJAAAAYJAcgU5jbWFwAAACIAAAAF4AAAFqUUxBZ2dhc3AAAATQAAAACAAAAAgAAAAQZ2x5ZgAAApAAAAAyAAAAPL0n8y9oZWFkAAABMAAAADAAAAA2Fi93Z2hoZWEAAAFgAAAAHQAAACQOSgWaaG10eAAAAewAAAAzAAAAVC7TAQBsb2NhAAACgAAAABAAAAAsAOQBAm1heHAAAAGAAAAAHQAAACAAWQALbmFtZQAAAsQAAAF6AAADIYvD/Adwb3N0AAAEQAAAAI4AAADsapk2o3jaY2BkYGAA4ov5mwzj+W2+MnCzXwCKMNzgCBSB0LfbQDQ7AxuI4mBgAlEAFKQIRHjaY2BkYGD3+NvCwMDBAALsDAyMDKhAFAA3+wH3AAAAeNpjYGRgYBBl4GBgYgABEMnIABJzAPMZAAVmAGUAAAB42mNgZlJhnMDAysDCKsKygYGBYRqEZtrDYMT4D8gHSmEHjgUFOQwODAqqf9g9/rYwMLB7MNUAhRlBcsxBrMlASoGBEQAj8QtyAAAAeNrjYGBkAAGmWQwMjO8gmBnIZ2NA0ExAzNjAAFYJVn0ASBsD6VAIDZb7AtELAgANIgb9AHjaY2BgYGaAYBkGRgYQSAHyGMF8FgYPIM3HwMHAxMDGoMCwQIFLQV8hXvXP//9AcRCfAcb///h/ygPW+w/vb7olBjUHCTCyMcAFGZmABBO6AogThgZgIUsXAEDcEzcAAHjaY2BgECMCyoEgACZaAed42mNgYmRgYGBnYGNgYAZSDJqMgorCgoqCjECRXwwNrCAKSP5mAAFGBiRgyAAAi/YFBQAAeNqtkc1OwkAUhU/5M25cEhcsZick0AwlBJq6MWwgJkAgYV/KAA2lJeUn+hY+gktXvpKv4dLTMqKycGHsTZNv7px7z50ZAFd4hYHjdw1Ls4EiHjVncIFnzVnc4F1zDkWjrzmPW+NNcwGlzIRKI3fJlUyrEjZQxb3mDH2fNGfRx4vmHKqG0JzHg6E0F9DOlFBGBxUI1GEzLNT4S0aLuTtsGAEUuYcQHkyg3KmIum1bNUvKlrjbbAIleqHHnS4iSudpQcySMYtdFiXlAxzSbAwfMxK6kZoHKhbjjespMTioOPZnzI+4ucCeTVyKMVKLfeAS6vSWaTinuZwzyy/Dc7vaed+6KaV0kukdPUk6yOcctZPvvxxqksq2lEW8RvHjMEO2FCl/zy6p3NEm0R9OFSafJdldc4QVeyaaObMBO0/5cCaa6d9Ggyubxire+lEojscdjoWUR1xGOy8KD8mG2ZLO2l2paDc3A39qmU2z2W5YNv5+u79e6QfGJY/hAAB42m3NywrCMBQE0DupWp/1AYI7/6DEaLQu66Mrd35BKUWKJSlFv1+rue4cGM7shgR981qSon+ZNwUJ8iDgoYU2OvDRRQ99DDDECAHGmGCKmf80hZSx/Kik/LliFbtmN6xmt+yOjdg9GztV4tROnRwX/Bsaaw51nt4Lc7tWaZYHp/MlzKx51LZs5htNri+2AAAAAQAB//8AD3jaY2BkYGDgAWIxIGZiYARCESBmAfMYAAR6AEMAAAABAAAAANXtRbgAAAAA2AhRFAAAAADYCNuG) format("woff");
+}
+
+/* ----------------------------------------------
+Inter variable font. Usage:
+
+@supports (font-variation-settings: normal) {
+ html { font-family: "Inter var", sans-serif; }
+}
+---------------------------------------------- */
+
+@font-face {
+ font-family: "Inter var";
+ font-weight: 100 900; /* stylelint-disable-line font-weight-notation */
+ font-style: normal;
+ src: url(../fonts/inter/Inter-upright-var.woff2) format("woff2");
+}
+
+@font-face {
+ font-family: "Inter var";
+ font-weight: 100 900; /* stylelint-disable-line font-weight-notation */
+ font-style: italic;
+ src: url(../fonts/inter/Inter-italic-var.woff2) format("woff2");
+}
+
+/* Structure --------------------------------- */
+
+body#tinymce.wp-editor.content { /* stylelint-disable-line no-duplicate-selectors */
+ font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
+}
+
+@supports ( font-variation-settings: normal ) {
+
+ body#tinymce.wp-editor.content { /* stylelint-disable-line no-duplicate-selectors */
+ font-family: "Inter var", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
+ }
+
+}
+
+body#tinymce.wp-editor.content { /* stylelint-disable-line no-duplicate-selectors */
+ background: #f5efe0;
+ color: #000;
+ font-size: 21px;
+ letter-spacing: -0.015em;
+ margin: 0 auto;
+ max-width: calc(100% - 40px);
+ width: 580px;
+}
+
+body#tinymce.wp-editor.content * {
+ box-sizing: border-box;
+ -webkit-font-smoothing: antialiased;
+}
+
+body#tinymce.wp-editor.content p,
+body#tinymce.wp-editor.content ol,
+body#tinymce.wp-editor.content ul,
+body#tinymce.wp-editor.content dl,
+body#tinymce.wp-editor.content dt {
+ font-family: NonBreakingSpaceOverride, "Hoefler Text", Garamond, "Times New Roman", serif;
+ letter-spacing: normal;
+}
+
+body#tinymce.wp-editor.content p,
+body#tinymce.wp-editor.content ul,
+body#tinymce.wp-editor.content ol,
+body#tinymce.wp-editor.content blockquote {
+ line-height: 1.5;
+ margin-bottom: 1.5em;
+}
+
+body#tinymce.wp-editor.content code,
+body#tinymce.wp-editor.content kbd,
+body#tinymce.wp-editor.content samp {
+ background: rgba(0, 0, 0, 0.075);
+}
+
+body#tinymce.wp-editor.content code,
+body#tinymce.wp-editor.content kbd,
+body#tinymce.wp-editor.content pre,
+body#tinymce.wp-editor.content samp {
+ font-family: monospace;
+ color: inherit;
+ font-size: 15px;
+}
+
+body#tinymce.wp-editor.content pre {
+ border: 1px solid #dcd7ca;
+ line-height: 1.5;
+ margin: 40px 0;
+ overflow: auto;
+ padding: 30px;
+ text-align: left;
+}
+
+body#tinymce.wp-editor.content a,
+body#tinymce.wp-editor.content a:focus,
+body#tinymce.wp-editor.content a:hover {
+ color: #cd2653;
+ text-decoration: underline;
+}
+
+body#tinymce.wp-editor.content img {
+ height: auto;
+ max-width: 100%;
+}
+
+body#tinymce.wp-editor.content img[data-wp-more] {
+ height: 16px;
+}
+
+body#tinymce.wp-editor.content hr {
+ border: none;
+ border-top: 1px solid #dcd7ca;
+ margin: 2em auto;
+ width: 100%;
+}
+
+body#tinymce.wp-editor.content hr:not(.is-style-dots) {
+ background: linear-gradient(to left, currentColor calc(50% - 16px), transparent calc(50% - 16px), transparent calc(50% + 16px), currentColor calc(50% + 16px));
+ border: none;
+ color: #6d6d6d;
+ height: 1px;
+ margin: 80px 0;
+ overflow: visible;
+ position: relative;
+}
+
+body#tinymce.wp-editor.content hr:not(.is-style-dots)::before,
+body#tinymce.wp-editor.content hr:not(.is-style-dots)::after {
+ background: currentColor;
+ content: "";
+ display: block;
+ height: 16px;
+ position: absolute;
+ top: calc(50% - 8px);
+ transform: rotate(22.5deg);
+ width: 1px;
+}
+
+body#tinymce.wp-editor.content hr::before {
+ left: calc(50% - 5px);
+}
+
+body#tinymce.wp-editor.content hr::after {
+ right: calc(50% - 5px);
+}
+
+body#tinymce.wp-editor.content dt {
+ font-weight: 600;
+}
+
+body#tinymce.wp-editor.content dd {
+ line-height: 1.5;
+}
+
+body#tinymce.wp-editor.content dd + dt {
+ margin-top: 1.5rem;
+}
+
+
+/* Font Families ----------------------------- */
+
+body#tinymce.wp-editor.content figcaption,
+body#tinymce.wp-editor.content .wp-caption-text,
+body#tinymce.wp-editor.content .wp-caption-dd,
+body#tinymce.wp-editor.content cite,
+body#tinymce.wp-editor.content table {
+ font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
+ line-height: 1;
+}
+
+@supports ( font-variation-settings: normal ) {
+
+ body#tinymce.wp-editor.content figcaption,
+ body#tinymce.wp-editor.content .wp-caption-text,
+ body#tinymce.wp-editor.content .wp-caption-dd,
+ body#tinymce.wp-editor.content cite,
+ body#tinymce.wp-editor.content table {
+ font-family: "Inter var", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
+ }
+}
+
+
+/* Titles ------------------------------------ */
+
+body#tinymce.wp-editor.content h1,
+body#tinymce.wp-editor.content h2,
+body#tinymce.wp-editor.content h3,
+body#tinymce.wp-editor.content h4,
+body#tinymce.wp-editor.content h5,
+body#tinymce.wp-editor.content h6 {
+ font-feature-settings: "lnum";
+ font-variant-numeric: lining-nums;
+ font-weight: 700;
+ letter-spacing: -0.0415625em;
+ line-height: 1.25;
+ margin: 40px 0 25px;
+}
+
+body#tinymce.wp-editor.content h1 {
+ font-size: 84px;
+ font-weight: 800;
+ line-height: 1.138888889;
+}
+
+body#tinymce.wp-editor.content h2 {
+ font-size: 48px;
+}
+
+body#tinymce.wp-editor.content h3 {
+ font-size: 40px;
+}
+
+body#tinymce.wp-editor.content h4 {
+ font-size: 32px;
+}
+
+body#tinymce.wp-editor.content h5 {
+ font-size: 24px;
+}
+
+body#tinymce.wp-editor.content h6 {
+ font-size: 18px;
+ letter-spacing: 0.03125em;
+ text-transform: uppercase;
+}
+
+/* Blockquote -------------------------------- */
+
+body#tinymce.wp-editor.content blockquote {
+ border: none;
+ border-left: 2px solid #cd2653;
+ margin: 0 0 1.6em 0;
+ padding: 0.25em 0 0.25em 1em;
+}
+
+body#tinymce.wp-editor.content blockquote p {
+ font-style: normal;
+ font-weight: 400;
+ margin: 0;
+}
+
+body#tinymce.wp-editor.content cite {
+ color: #6d6d6d;
+ font-size: 16px;
+ font-weight: 500;
+ font-style: normal;
+}
+
+body#tinymce.wp-editor.content blockquote cite {
+ display: block;
+ margin-top: 20px;
+}
+
+
+/* Lists ------------------------------------- */
+
+body#tinymce.wp-editor.content ul {
+ margin-left: 1.5em;
+ padding-left: 0;
+ list-style: disc;
+}
+
+body#tinymce.wp-editor.content ol {
+ margin-left: 1.5em;
+ padding-left: 0;
+ list-style: square;
+}
+
+body#tinymce.wp-editor.content ul ul {
+ list-style: circle;
+}
+
+body#tinymce.wp-editor.content ul ul ul {
+ list-style: square;
+}
+
+body#tinymce.wp-editor.content ol ol {
+ list-style: lower-alpha;
+}
+
+body#tinymce.wp-editor.content ol ol ol {
+ list-style: lower-roman;
+}
+
+body#tinymce.wp-editor.content ul ul,
+body#tinymce.wp-editor.content ul ol,
+body#tinymce.wp-editor.content ol ul,
+body#tinymce.wp-editor.content ol ol {
+ margin-bottom: 0;
+}
+
+body#tinymce.wp-editor.content li {
+ line-height: 1.5;
+ margin-bottom: 0.5em;
+}
+
+body#tinymce.wp-editor.content ol > li:last-child,
+body#tinymce.wp-editor.content ul > li:last-child {
+ margin-bottom: 0;
+}
+
+body#tinymce.wp-editor.content ol > li:first-child,
+body#tinymce.wp-editor.content ul > li:first-child {
+ margin-top: 0.5em;
+}
+
+
+/* Post Media -------------------------------- */
+
+body#tinymce.wp-editor.content figure,
+body#tinymce.wp-editor.content video {
+ display: block;
+ margin: 0;
+}
+
+body#tinymce.wp-editor.content .wp-caption {
+ margin-bottom: 1.5em;
+}
+
+body#tinymce.wp-editor.content img.alignleft,
+body#tinymce.wp-editor.content .alignleft img,
+body#tinymce.wp-editor.content img.aligncenter,
+body#tinymce.wp-editor.content .aligncenter img,
+body#tinymce.wp-editor.content img.alignright,
+body#tinymce.wp-editor.content .alignright img,
+body#tinymce.wp-editor.content img.alignnone,
+body#tinymce.wp-editor.content .alignnone img {
+ display: block;
+}
+
+body#tinymce.wp-editor.content .aligncenter,
+body#tinymce.wp-editor.content .alignnone,
+body#tinymce.wp-editor.content .alignwide,
+body#tinymce.wp-editor.content .alignfull {
+ margin: 50px auto;
+}
+
+body#tinymce.wp-editor.content .alignleft,
+body#tinymce.wp-editor.content .alignright {
+ margin-bottom: 25px;
+ max-width: 50%;
+}
+
+body#tinymce.wp-editor.content .wp-caption img {
+ display: block;
+}
+
+body#tinymce.wp-editor.content .wp-caption .alignleft,
+body#tinymce.wp-editor.content .wp-caption .alignright {
+ margin-bottom: 0;
+}
+
+body#tinymce.wp-editor.content .alignleft {
+
+ /*rtl:ignore*/
+ float: left;
+ margin-right: 25px;
+ max-width: 260px;
+}
+
+body#tinymce.wp-editor.content .alignright {
+
+ /*rtl:ignore*/
+ float: right;
+ margin-left: 25px;
+ max-width: 260px;
+}
+
+body#tinymce.wp-editor.content .wpview[data-wpview-type="gallery"] + .wpview[data-wpview-type="gallery"] {
+ margin-top: -34px;
+}
+
+body#tinymce.wp-editor.content figcaption,
+body#tinymce.wp-editor.content .wp-caption-text,
+body#tinymce.wp-editor.content .wp-caption-dd,
+body#tinymce.wp-editor.content .gallery-caption {
+ color: #6d6d6d;
+ display: block;
+ font-size: 15px;
+ font-weight: 500;
+ line-height: 1.2;
+ margin: 18px 0 0;
+}
+
+body#tinymce.wp-editor.content figcaption a,
+body#tinymce.wp-editor.content .wp-caption-text a,
+body#tinymce.wp-editor.content .wp-caption-dd a,
+body#tinymce.wp-editor.content .gallery-caption a {
+ color: inherit;
+}
+
+
+/* Tables ------------------------------------ */
+
+body#tinymce.wp-editor.content table {
+ border-collapse: collapse;
+ border-spacing: 0;
+ empty-cells: show;
+ font-size: 18px;
+ width: 100%;
+}
+
+body#tinymce.wp-editor.content th,
+body#tinymce.wp-editor.content td {
+ line-height: 1.2;
+ margin: 0;
+ overflow: visible;
+ padding: 0.5em;
+}
+
+body#tinymce.wp-editor.content caption {
+ text-align: center;
+ padding: 0.5em;
+}
+
+body#tinymce.wp-editor.content thead {
+ vertical-align: bottom;
+ white-space: nowrap;
+}
+
+body#tinymce.wp-editor.content th {
+ text-align: left;
+}
+
+
+/* Forms ------------------------------------- */
+
+body#tinymce.wp-editor.content fieldset {
+ border: 2px solid #dcd7ca;
+ padding: 30px;
+}
+
+body#tinymce.wp-editor.content fieldset legend {
+ font-size: 0.85em;
+ font-weight: 700;
+ padding: 0 15px;
+}
+
+body#tinymce.wp-editor.content label {
+ display: block;
+ font-size: 15px;
+ font-weight: 600;
+ margin: 0 0 5px 0;
+}
+
+body#tinymce.wp-editor.content input,
+body#tinymce.wp-editor.content textarea {
+ border-color: #dcd7ca;
+ color: inherit;
+ font-family: inherit;
+ font-size: inherit;
+}
+
+body#tinymce.wp-editor.content input[type="text"],
+body#tinymce.wp-editor.content input[type="password"],
+body#tinymce.wp-editor.content input[type="email"],
+body#tinymce.wp-editor.content input[type="url"],
+body#tinymce.wp-editor.content input[type="date"],
+body#tinymce.wp-editor.content input[type="month"],
+body#tinymce.wp-editor.content input[type="time"],
+body#tinymce.wp-editor.content input[type="datetime"],
+body#tinymce.wp-editor.content input[type="datetime-local"],
+body#tinymce.wp-editor.content input[type="week"],
+body#tinymce.wp-editor.content input[type="number"],
+body#tinymce.wp-editor.content input[type="search"],
+body#tinymce.wp-editor.content input[type="tel"],
+body#tinymce.wp-editor.content input[type="color"],
+body#tinymce.wp-editor.content textarea {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ background: transparent;
+ border-radius: 3px;
+ border-style: solid;
+ border-width: 0.1rem;
+ box-shadow: none;
+ display: block;
+ font-size: inherit;
+ font-weight: 400;
+ margin: 0;
+ max-width: 100%;
+ padding: 13.5px 18px;
+ width: 100%;
+ word-break: normal;
+}
+
+body#tinymce.wp-editor.content textarea {
+ height: 200px;
+ line-height: 1.5;
+ width: 100%;
+}
+
+body#tinymce.wp-editor.content button,
+body#tinymce.wp-editor.content .faux-button,
+body#tinymce.wp-editor.content .wp-block-button__link,
+body#tinymce.wp-editor.content .wp-block-file__button,
+body#tinymce.wp-editor.content input[type="button"],
+body#tinymce.wp-editor.content input[type="reset"],
+body#tinymce.wp-editor.content input[type="submit"] {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ background: #cd2653;
+ border: none;
+ border-radius: 0;
+ color: #fff;
+ cursor: pointer;
+ display: inline-block;
+ font-size: 17px;
+ font-weight: 600;
+ letter-spacing: 0.0333em;
+ line-height: 1.25;
+ margin: 0;
+ padding: 1.1em 1.44em;
+ text-align: center;
+ text-decoration: none;
+ text-transform: uppercase;
+}
+
+body#tinymce.wp-editor.content button:focus,
+body#tinymce.wp-editor.content button:hover,
+body#tinymce.wp-editor.content .faux-button:hover,
+body#tinymce.wp-editor.content .faux-button:focus,
+body#tinymce.wp-editor.content .wp-block-button__link:focus,
+body#tinymce.wp-editor.content .wp-block-button__link:hover,
+body#tinymce.wp-editor.content .wp-block-file__button:focus,
+body#tinymce.wp-editor.content .wp-block-file__button:hover,
+body#tinymce.wp-editor.content input[type="button"]:focus,
+body#tinymce.wp-editor.content input[type="button"]:hover,
+body#tinymce.wp-editor.content input[type="reset"]:focus,
+body#tinymce.wp-editor.content input[type="reset"]:hover,
+body#tinymce.wp-editor.content input[type="submit"]:focus,
+body#tinymce.wp-editor.content input[type="submit"]:hover {
+ color: #fff;
+ text-decoration: underline;
+}
+
+.wp-block-button:not(.alignleft):not(.alignright) {
+ margin-bottom: 30px;
+ margin-top: 30px;
+}
+
+/* BUTTON ALIGN: CENTER */
+
+.wp-block-button.aligncenter {
+ text-align: center;
+}
+
+/* BUTTON STYLE: OUTLINE */
+
+body#tinymce.wp-editor.content .is-style-outline .wp-block-button__link,
+body#tinymce.wp-editor.content .is-style-outline .wp-block-button__link:focus,
+body#tinymce.wp-editor.content .is-style-outline .wp-block-button__link:hover {
+ color: #cd2653;
+}
+
+body#tinymce.wp-editor.content .is-style-outline .wp-block-button__link {
+ background: none;
+ border: 2px solid currentColor;
+ padding: calc(1.1em - 2px) calc(1.44em - 2px);
+}
+
+/* BUTTON STYLE: SQUARED */
+
+body#tinymce.wp-editor.content .is-style-squared .wp-block-button__link {
+ border-radius: 0;
+}
+
+
+/* Blocks ------------------------------------ */
+
+/* BLOCK: HELPER CLASSES */
+
+body#tinymce.wp-editor.content .has-background {
+ padding: 20px;
+}
+
+/* BLOCK: GALLERY */
+
+body#tinymce.wp-editor.content ul.wp-block-gallery {
+ list-style: none;
+ margin-left: 0;
+}
+
+body#tinymce.wp-editor.content ul.wp-block-gallery li {
+ margin-left: 0;
+}
diff --git a/wp-content/themes/twentytwenty/assets/fonts/inter/Inter-italic-var.woff2 b/wp-content/themes/twentytwenty/assets/fonts/inter/Inter-italic-var.woff2
new file mode 100644
index 000000000..2300488bd
Binary files /dev/null and b/wp-content/themes/twentytwenty/assets/fonts/inter/Inter-italic-var.woff2 differ
diff --git a/wp-content/themes/twentytwenty/assets/fonts/inter/Inter-upright-var.woff2 b/wp-content/themes/twentytwenty/assets/fonts/inter/Inter-upright-var.woff2
new file mode 100644
index 000000000..37d990070
Binary files /dev/null and b/wp-content/themes/twentytwenty/assets/fonts/inter/Inter-upright-var.woff2 differ
diff --git a/wp-content/themes/twentytwenty/assets/images/2020-landscape-1.png b/wp-content/themes/twentytwenty/assets/images/2020-landscape-1.png
new file mode 100644
index 000000000..ab55b91be
Binary files /dev/null and b/wp-content/themes/twentytwenty/assets/images/2020-landscape-1.png differ
diff --git a/wp-content/themes/twentytwenty/assets/images/2020-landscape-2.png b/wp-content/themes/twentytwenty/assets/images/2020-landscape-2.png
new file mode 100644
index 000000000..844d377ea
Binary files /dev/null and b/wp-content/themes/twentytwenty/assets/images/2020-landscape-2.png differ
diff --git a/wp-content/themes/twentytwenty/assets/images/2020-square-1.png b/wp-content/themes/twentytwenty/assets/images/2020-square-1.png
new file mode 100644
index 000000000..3acd76be5
Binary files /dev/null and b/wp-content/themes/twentytwenty/assets/images/2020-square-1.png differ
diff --git a/wp-content/themes/twentytwenty/assets/images/2020-square-2.png b/wp-content/themes/twentytwenty/assets/images/2020-square-2.png
new file mode 100644
index 000000000..e1ab8f801
Binary files /dev/null and b/wp-content/themes/twentytwenty/assets/images/2020-square-2.png differ
diff --git a/wp-content/themes/twentytwenty/assets/images/2020-three-quarters-1.png b/wp-content/themes/twentytwenty/assets/images/2020-three-quarters-1.png
new file mode 100644
index 000000000..d02d9176f
Binary files /dev/null and b/wp-content/themes/twentytwenty/assets/images/2020-three-quarters-1.png differ
diff --git a/wp-content/themes/twentytwenty/assets/images/2020-three-quarters-2.png b/wp-content/themes/twentytwenty/assets/images/2020-three-quarters-2.png
new file mode 100644
index 000000000..6b1dd1abe
Binary files /dev/null and b/wp-content/themes/twentytwenty/assets/images/2020-three-quarters-2.png differ
diff --git a/wp-content/themes/twentytwenty/assets/images/2020-three-quarters-3.png b/wp-content/themes/twentytwenty/assets/images/2020-three-quarters-3.png
new file mode 100644
index 000000000..3675b556f
Binary files /dev/null and b/wp-content/themes/twentytwenty/assets/images/2020-three-quarters-3.png differ
diff --git a/wp-content/themes/twentytwenty/assets/images/2020-three-quarters-4.png b/wp-content/themes/twentytwenty/assets/images/2020-three-quarters-4.png
new file mode 100644
index 000000000..aa7c7f0d7
Binary files /dev/null and b/wp-content/themes/twentytwenty/assets/images/2020-three-quarters-4.png differ
diff --git a/wp-content/themes/twentytwenty/assets/js/color-calculations.js b/wp-content/themes/twentytwenty/assets/js/color-calculations.js
new file mode 100644
index 000000000..2587a4815
--- /dev/null
+++ b/wp-content/themes/twentytwenty/assets/js/color-calculations.js
@@ -0,0 +1,156 @@
+/* global Color */
+/* eslint no-unused-vars: off */
+/**
+ * Color Calculations.
+ *
+ * @since Twenty Twenty 1.0
+ *
+ * @param {string} backgroundColor - The background color.
+ * @param {number} accentHue - The hue for our accent color.
+ *
+ * @return {Object} - this
+ */
+function _twentyTwentyColor( backgroundColor, accentHue ) {
+ // Set the object properties.
+ this.backgroundColor = backgroundColor;
+ this.accentHue = accentHue;
+ this.bgColorObj = new Color( backgroundColor );
+ this.textColorObj = this.bgColorObj.getMaxContrastColor();
+ this.textColor = this.textColorObj.toCSS();
+ this.isDark = 0.5 > this.bgColorObj.toLuminosity();
+ this.isLight = ! this.isDark;
+
+ // Return the object.
+ return this;
+}
+
+/**
+ * Builds an array of Color objects based on the accent hue.
+ * For improved performance we only build half the array
+ * depending on dark/light background-color.
+ *
+ * @since Twenty Twenty 1.0
+ *
+ * @return {Object} - this
+ */
+_twentyTwentyColor.prototype.setAccentColorsArray = function() {
+ var self = this,
+ minSaturation = 65,
+ maxSaturation = 100,
+ minLightness = 30,
+ maxLightness = 80,
+ stepSaturation = 2,
+ stepLightness = 2,
+ pushColor = function() {
+ var colorObj = new Color( {
+ h: self.accentHue,
+ s: s,
+ l: l
+ } ),
+ item,
+ /**
+ * Get a score for this color in contrast to its background color and surrounding text.
+ *
+ * @since Twenty Twenty 1.0
+ *
+ * @param {number} contrastBackground - WCAG contrast with the background color.
+ * @param {number} contrastSurroundingText - WCAG contrast with surrounding text.
+ * @return {number} - 0 is best, higher numbers have bigger difference with the desired scores.
+ */
+ getScore = function( contrastBackground, contrastSurroundingText ) {
+ var diffBackground = ( 7 >= contrastBackground ) ? 0 : 7 - contrastBackground,
+ diffSurroundingText = ( 3 >= contrastSurroundingText ) ? 0 : 3 - contrastSurroundingText;
+
+ return diffBackground + diffSurroundingText;
+ };
+
+ item = {
+ color: colorObj,
+ contrastBackground: colorObj.getDistanceLuminosityFrom( self.bgColorObj ),
+ contrastText: colorObj.getDistanceLuminosityFrom( self.textColorObj )
+ };
+
+ // Check a minimum of 4.5:1 contrast with the background and 3:1 with surrounding text.
+ if ( 4.5 > item.contrastBackground || 3 > item.contrastText ) {
+ return;
+ }
+
+ // Get a score for this color by multiplying the 2 contrasts.
+ // We'll use that to sort the array.
+ item.score = getScore( item.contrastBackground, item.contrastText );
+
+ self.accentColorsArray.push( item );
+ },
+ s, l, aaa;
+
+ this.accentColorsArray = [];
+
+ // We're using `for` loops here because they perform marginally better than other loops.
+ for ( s = minSaturation; s <= maxSaturation; s += stepSaturation ) {
+ for ( l = minLightness; l <= maxLightness; l += stepLightness ) {
+ pushColor( s, l );
+ }
+ }
+
+ // Check if we have colors that are AAA compliant.
+ aaa = this.accentColorsArray.filter( function( color ) {
+ return 7 <= color.contrastBackground;
+ } );
+
+ // If we have AAA-compliant colors, always prefer them.
+ if ( aaa.length ) {
+ this.accentColorsArray = aaa;
+ }
+
+ // Sort colors by contrast.
+ this.accentColorsArray.sort( function( a, b ) {
+ return a.score - b.score;
+ } );
+ return this;
+};
+
+/**
+ * Get accessible text-color.
+ *
+ * @since Twenty Twenty 1.0
+ *
+ * @return {Color} - Returns a Color object.
+ */
+_twentyTwentyColor.prototype.getTextColor = function() {
+ return this.textColor;
+};
+
+/**
+ * Get accessible color for the defined accent-hue and background-color.
+ *
+ * @since Twenty Twenty 1.0
+ *
+ * @return {Color} - Returns a Color object.
+ */
+_twentyTwentyColor.prototype.getAccentColor = function() {
+ var fallback;
+
+ // If we have colors returns the 1st one - it has the highest score.
+ if ( this.accentColorsArray[0] ) {
+ return this.accentColorsArray[0].color;
+ }
+
+ // Fallback.
+ fallback = new Color( 'hsl(' + this.accentHue + ',75%,50%)' );
+ return fallback.getReadableContrastingColor( this.bgColorObj, 4.5 );
+};
+
+/**
+ * Return a new instance of the _twentyTwentyColor object.
+ *
+ * @since Twenty Twenty 1.0
+ *
+ * @param {string} backgroundColor - The background color.
+ * @param {number} accentHue - The hue for our accent color.
+ * @return {Object} - this
+ */
+function twentyTwentyColor( backgroundColor, accentHue ) {// jshint ignore:line
+ var color = new _twentyTwentyColor( backgroundColor, accentHue );
+ color.setAccentColorsArray();
+ return color;
+}
diff --git a/wp-content/themes/twentytwenty/assets/js/customize-controls.js b/wp-content/themes/twentytwenty/assets/js/customize-controls.js
new file mode 100644
index 000000000..26136e21e
--- /dev/null
+++ b/wp-content/themes/twentytwenty/assets/js/customize-controls.js
@@ -0,0 +1,90 @@
+/* global twentyTwentyBgColors, twentyTwentyColor, jQuery, wp, _ */
+/**
+ * Customizer enhancements for a better user experience.
+ *
+ * Contains extra logic for our Customizer controls & settings.
+ *
+ * @since Twenty Twenty 1.0
+ */
+
+( function() {
+ // Wait until the customizer has finished loading.
+ wp.customize.bind( 'ready', function() {
+ // Add a listener for accent-color changes.
+ wp.customize( 'accent_hue', function( value ) {
+ value.bind( function( to ) {
+ // Update the value for our accessible colors for all areas.
+ Object.keys( twentyTwentyBgColors ).forEach( function( context ) {
+ var backgroundColorValue;
+ if ( twentyTwentyBgColors[ context ].color ) {
+ backgroundColorValue = twentyTwentyBgColors[ context ].color;
+ } else {
+ backgroundColorValue = wp.customize( twentyTwentyBgColors[ context ].setting ).get();
+ }
+ twentyTwentySetAccessibleColorsValue( context, backgroundColorValue, to );
+ } );
+ } );
+ } );
+
+ // Add a listener for background-color changes.
+ Object.keys( twentyTwentyBgColors ).forEach( function( context ) {
+ wp.customize( twentyTwentyBgColors[ context ].setting, function( value ) {
+ value.bind( function( to ) {
+ // Update the value for our accessible colors for this area.
+ twentyTwentySetAccessibleColorsValue( context, to, wp.customize( 'accent_hue' ).get(), to );
+ } );
+ } );
+ } );
+ } );
+
+ /**
+ * Updates the value of the "accent_accessible_colors" setting.
+ *
+ * @since Twenty Twenty 1.0
+ *
+ * @param {string} context The area for which we want to get colors. Can be for example "content", "header" etc.
+ * @param {string} backgroundColor The background color (HEX value).
+ * @param {number} accentHue Numeric representation of the selected hue (0 - 359).
+ *
+ * @return {void}
+ */
+ function twentyTwentySetAccessibleColorsValue( context, backgroundColor, accentHue ) {
+ var value, colors;
+
+ // Get the current value for our accessible colors, and make sure it's an object.
+ value = wp.customize( 'accent_accessible_colors' ).get();
+ value = ( _.isObject( value ) && ! _.isArray( value ) ) ? value : {};
+
+ // Get accessible colors for the defined background-color and hue.
+ colors = twentyTwentyColor( backgroundColor, accentHue );
+
+ // Sanity check.
+ if ( colors.getAccentColor() && 'function' === typeof colors.getAccentColor().toCSS ) {
+ // Update the value for this context.
+ value[ context ] = {
+ text: colors.getTextColor(),
+ accent: colors.getAccentColor().toCSS(),
+ background: backgroundColor
+ };
+
+ // Get borders color.
+ value[ context ].borders = colors.bgColorObj
+ .clone()
+ .getReadableContrastingColor( colors.bgColorObj, 1.36 )
+ .toCSS();
+
+ // Get secondary color.
+ value[ context ].secondary = colors.bgColorObj
+ .clone()
+ .getReadableContrastingColor( colors.bgColorObj )
+ .s( colors.bgColorObj.s() / 2 )
+ .toCSS();
+ }
+
+ // Change the value.
+ wp.customize( 'accent_accessible_colors' ).set( value );
+
+ // Small hack to save the option.
+ wp.customize( 'accent_accessible_colors' )._dirty = true;
+ }
+}( jQuery ) );
diff --git a/wp-content/themes/twentytwenty/assets/js/customize-preview.js b/wp-content/themes/twentytwenty/assets/js/customize-preview.js
new file mode 100644
index 000000000..6bb361c74
--- /dev/null
+++ b/wp-content/themes/twentytwenty/assets/js/customize-preview.js
@@ -0,0 +1,186 @@
+/* global twentyTwentyBgColors, twentyTwentyPreviewEls, jQuery, _, wp */
+/**
+ * Customizer enhancements for a better user experience.
+ *
+ * Contains handlers to make Theme Customizer preview reload changes asynchronously.
+ *
+ * @since Twenty Twenty 1.0
+ */
+
+( function( $, api, _ ) {
+ /**
+ * Return a value for our partial refresh.
+ *
+ * @param {Object} partial Current partial.
+ *
+ * @return {jQuery.Promise} Resolved promise.
+ */
+ function returnDeferred( partial ) {
+ var deferred = new $.Deferred();
+
+ deferred.resolveWith( partial, _.map( partial.placements(), function() {
+ return '';
+ } ) );
+
+ return deferred.promise();
+ }
+
+ // Selective refresh for "Fixed Background Image".
+ api.selectiveRefresh.partialConstructor.cover_fixed = api.selectiveRefresh.Partial.extend( {
+
+ /**
+ * Override the refresh method.
+ *
+ * @return {jQuery.Promise} Resolved promise.
+ */
+ refresh: function() {
+ var partial, cover, params;
+
+ partial = this;
+ params = partial.params;
+ cover = $( params.selector );
+
+ if ( cover.length && cover.hasClass( 'bg-image' ) ) {
+ cover.toggleClass( 'bg-attachment-fixed' );
+ }
+
+ return returnDeferred( partial );
+ }
+
+ } );
+
+ // Selective refresh for "Image Overlay Opacity".
+ api.selectiveRefresh.partialConstructor.cover_opacity = api.selectiveRefresh.Partial.extend( {
+
+ /**
+ * Input attributes.
+ *
+ * @type {Object}
+ */
+ attrs: {},
+
+ /**
+ * Override the refresh method.
+ *
+ * @return {jQuery.Promise} Resolved promise.
+ */
+ refresh: function() {
+ var partial, ranges, attrs, setting, params, cover, className, classNames;
+
+ partial = this;
+ attrs = partial.attrs;
+ ranges = _.range( attrs.min, attrs.max + attrs.step, attrs.step );
+ params = partial.params;
+ setting = api( params.primarySetting );
+ cover = $( params.selector );
+
+ if ( cover.length ) {
+ classNames = _.map( ranges, function( val ) {
+ return 'opacity-' + val;
+ } );
+
+ className = classNames[ ranges.indexOf( parseInt( setting.get(), 10 ) ) ];
+
+ cover.removeClass( classNames.join( ' ' ) );
+ cover.addClass( className );
+ }
+
+ return returnDeferred( partial );
+ }
+
+ } );
+
+ // Add listener for the "header_footer_background_color" control.
+ api( 'header_footer_background_color', function( value ) {
+ value.bind( function( to ) {
+ // Add background color to header and footer wrappers.
+ $( 'body:not(.overlay-header)#site-header, #site-footer' ).css( 'background-color', to );
+
+ // Change body classes if this is the same background-color as the content background.
+ if ( to.toLowerCase() === api( 'background_color' ).get().toLowerCase() ) {
+ $( 'body' ).addClass( 'reduced-spacing' );
+ } else {
+ $( 'body' ).removeClass( 'reduced-spacing' );
+ }
+ } );
+ } );
+
+ // Add listener for the "background_color" control.
+ api( 'background_color', function( value ) {
+ value.bind( function( to ) {
+ // Change body classes if this is the same background-color as the header/footer background.
+ if ( to.toLowerCase() === api( 'header_footer_background_color' ).get().toLowerCase() ) {
+ $( 'body' ).addClass( 'reduced-spacing' );
+ } else {
+ $( 'body' ).removeClass( 'reduced-spacing' );
+ }
+ } );
+ } );
+
+ // Add listener for the accent color.
+ api( 'accent_hue', function( value ) {
+ value.bind( function() {
+ // Generate the styles.
+ // Add a small delay to be sure the accessible colors were generated.
+ setTimeout( function() {
+ Object.keys( twentyTwentyBgColors ).forEach( function( context ) {
+ twentyTwentyGenerateColorA11yPreviewStyles( context );
+ } );
+ }, 50 );
+ } );
+ } );
+
+ // Add listeners for background-color settings.
+ Object.keys( twentyTwentyBgColors ).forEach( function( context ) {
+ wp.customize( twentyTwentyBgColors[ context ].setting, function( value ) {
+ value.bind( function() {
+ // Generate the styles.
+ // Add a small delay to be sure the accessible colors were generated.
+ setTimeout( function() {
+ twentyTwentyGenerateColorA11yPreviewStyles( context );
+ }, 50 );
+ } );
+ } );
+ } );
+
+ /**
+ * Add styles to elements in the preview pane.
+ *
+ * @since Twenty Twenty 1.0
+ *
+ * @param {string} context The area for which we want to generate styles. Can be for example "content", "header" etc.
+ *
+ * @return {void}
+ */
+ function twentyTwentyGenerateColorA11yPreviewStyles( context ) {
+ // Get the accessible colors option.
+ var a11yColors = window.parent.wp.customize( 'accent_accessible_colors' ).get(),
+ stylesheedID = 'twentytwenty-customizer-styles-' + context,
+ stylesheet = $( '#' + stylesheedID ),
+ styles = '';
+ // If the stylesheet doesn't exist, create it and append it to
.
+ if ( ! stylesheet.length ) {
+ $( '#twentytwenty-style-inline-css' ).after( '' );
+ stylesheet = $( '#' + stylesheedID );
+ }
+ if ( ! _.isUndefined( a11yColors[ context ] ) ) {
+ // Check if we have elements defined.
+ if ( twentyTwentyPreviewEls[ context ] ) {
+ _.each( twentyTwentyPreviewEls[ context ], function( items, setting ) {
+ _.each( items, function( elements, property ) {
+ if ( ! _.isUndefined( a11yColors[ context ][ setting ] ) ) {
+ styles += elements.join( ',' ) + '{' + property + ':' + a11yColors[ context ][ setting ] + ';}';
+ }
+ } );
+ } );
+ }
+ }
+ // Add styles.
+ stylesheet.html( styles );
+ }
+ // Generate styles on load. Handles page-changes on the preview pane.
+ $( document ).ready( function() {
+ twentyTwentyGenerateColorA11yPreviewStyles( 'content' );
+ twentyTwentyGenerateColorA11yPreviewStyles( 'header-footer' );
+ } );
+}( jQuery, wp.customize, _ ) );
diff --git a/wp-content/themes/twentytwenty/assets/js/customize.js b/wp-content/themes/twentytwenty/assets/js/customize.js
new file mode 100644
index 000000000..2a38ace1d
--- /dev/null
+++ b/wp-content/themes/twentytwenty/assets/js/customize.js
@@ -0,0 +1,27 @@
+/* global wp, jQuery */
+
+( function( $, api ) {
+ $( document ).ready( function() {
+ // Make it possible to reset the color based on a radio input's value.
+ // `active` can be either `custom` or `default`.
+ api.control( 'accent_hue_active' ).setting.bind( function( active ) {
+ var control = api.control( 'accent_hue' ); // Get the accent hue control.
+
+ if ( 'custom' === active ) {
+ // Activate the hue color picker control and focus it.
+ control.activate( {
+ completeCallback: function() {
+ control.focus();
+ }
+ } );
+ } else {
+ // If the `custom` option isn't selected, deactivate the hue color picker and set a default.
+ control.deactivate( {
+ completeCallback: function() {
+ control.setting.set( control.params.defaultValue );
+ }
+ } );
+ }
+ } );
+ } );
+}( jQuery, wp.customize ) );
diff --git a/wp-content/themes/twentytwenty/assets/js/editor-script-block.js b/wp-content/themes/twentytwenty/assets/js/editor-script-block.js
new file mode 100644
index 000000000..3ff08d537
--- /dev/null
+++ b/wp-content/themes/twentytwenty/assets/js/editor-script-block.js
@@ -0,0 +1,9 @@
+/**
+ * Remove squared button style
+ *
+ * @since Twenty Twenty 1.0
+ */
+/* global wp */
+wp.domReady( function() {
+ wp.blocks.unregisterBlockStyle( 'core/button', 'squared' );
+} );
diff --git a/wp-content/themes/twentytwenty/assets/js/index.js b/wp-content/themes/twentytwenty/assets/js/index.js
new file mode 100644
index 000000000..b6919261e
--- /dev/null
+++ b/wp-content/themes/twentytwenty/assets/js/index.js
@@ -0,0 +1,806 @@
+/* -----------------------------------------------------------------------------------------------
+ Namespace
+--------------------------------------------------------------------------------------------------- */
+
+var twentytwenty = twentytwenty || {};
+
+// Set a default value for scrolled.
+twentytwenty.scrolled = 0;
+
+// polyfill closest
+// https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill
+if ( ! Element.prototype.closest ) {
+ Element.prototype.closest = function( s ) {
+ var el = this;
+
+ do {
+ if ( el.matches( s ) ) {
+ return el;
+ }
+
+ el = el.parentElement || el.parentNode;
+ } while ( el !== null && el.nodeType === 1 );
+
+ return null;
+ };
+}
+
+// polyfill forEach
+// https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach#Polyfill
+if ( window.NodeList && ! NodeList.prototype.forEach ) {
+ NodeList.prototype.forEach = function( callback, thisArg ) {
+ var i;
+ var len = this.length;
+
+ thisArg = thisArg || window;
+
+ for ( i = 0; i < len; i++ ) {
+ callback.call( thisArg, this[ i ], i, this );
+ }
+ };
+}
+
+// event "polyfill"
+twentytwenty.createEvent = function( eventName ) {
+ var event;
+ if ( typeof window.Event === 'function' ) {
+ event = new Event( eventName );
+ } else {
+ event = document.createEvent( 'Event' );
+ event.initEvent( eventName, true, false );
+ }
+ return event;
+};
+
+// matches "polyfill"
+// https://developer.mozilla.org/es/docs/Web/API/Element/matches
+if ( ! Element.prototype.matches ) {
+ Element.prototype.matches =
+ Element.prototype.matchesSelector ||
+ Element.prototype.mozMatchesSelector ||
+ Element.prototype.msMatchesSelector ||
+ Element.prototype.oMatchesSelector ||
+ Element.prototype.webkitMatchesSelector ||
+ function( s ) {
+ var matches = ( this.document || this.ownerDocument ).querySelectorAll( s ),
+ i = matches.length;
+ while ( --i >= 0 && matches.item( i ) !== this ) {}
+ return i > -1;
+ };
+}
+
+// Add a class to the body for when touch is enabled for browsers that don't support media queries
+// for interaction media features. Adapted from .
+twentytwenty.touchEnabled = {
+
+ init: function() {
+ var matchMedia = function() {
+ // Include the 'heartz' as a way to have a non matching MQ to help terminate the join. See .
+ var prefixes = [ '-webkit-', '-moz-', '-o-', '-ms-' ];
+ var query = [ '(', prefixes.join( 'touch-enabled),(' ), 'heartz', ')' ].join( '' );
+ return window.matchMedia && window.matchMedia( query ).matches;
+ };
+
+ if ( ( 'ontouchstart' in window ) || ( window.DocumentTouch && document instanceof window.DocumentTouch ) || matchMedia() ) {
+ document.body.classList.add( 'touch-enabled' );
+ }
+ }
+}; // twentytwenty.touchEnabled
+
+/* -----------------------------------------------------------------------------------------------
+ Cover Modals
+--------------------------------------------------------------------------------------------------- */
+
+twentytwenty.coverModals = {
+
+ init: function() {
+ if ( document.querySelector( '.cover-modal' ) ) {
+ // Handle cover modals when they're toggled.
+ this.onToggle();
+
+ // When toggled, untoggle if visitor clicks on the wrapping element of the modal.
+ this.outsideUntoggle();
+
+ // Close on escape key press.
+ this.closeOnEscape();
+
+ // Hide and show modals before and after their animations have played out.
+ this.hideAndShowModals();
+ }
+ },
+
+ // Handle cover modals when they're toggled.
+ onToggle: function() {
+ document.querySelectorAll( '.cover-modal' ).forEach( function( element ) {
+ element.addEventListener( 'toggled', function( event ) {
+ var modal = event.target,
+ body = document.body;
+
+ if ( modal.classList.contains( 'active' ) ) {
+ body.classList.add( 'showing-modal' );
+ } else {
+ body.classList.remove( 'showing-modal' );
+ body.classList.add( 'hiding-modal' );
+
+ // Remove the hiding class after a delay, when animations have been run.
+ setTimeout( function() {
+ body.classList.remove( 'hiding-modal' );
+ }, 500 );
+ }
+ } );
+ } );
+ },
+
+ // Close modal on outside click.
+ outsideUntoggle: function() {
+ document.addEventListener( 'click', function( event ) {
+ var target = event.target;
+ var modal = document.querySelector( '.cover-modal.active' );
+
+ if ( target === modal ) {
+ this.untoggleModal( target );
+ }
+ }.bind( this ) );
+ },
+
+ // Close modal on escape key press.
+ closeOnEscape: function() {
+ document.addEventListener( 'keydown', function( event ) {
+ if ( event.keyCode === 27 ) {
+ event.preventDefault();
+ document.querySelectorAll( '.cover-modal.active' ).forEach( function( element ) {
+ this.untoggleModal( element );
+ }.bind( this ) );
+ }
+ }.bind( this ) );
+ },
+
+ // Hide and show modals before and after their animations have played out.
+ hideAndShowModals: function() {
+ var _doc = document,
+ _win = window,
+ modals = _doc.querySelectorAll( '.cover-modal' ),
+ htmlStyle = _doc.documentElement.style,
+ adminBar = _doc.querySelector( '#wpadminbar' );
+
+ function getAdminBarHeight( negativeValue ) {
+ var height,
+ currentScroll = _win.pageYOffset;
+
+ if ( adminBar ) {
+ height = currentScroll + adminBar.getBoundingClientRect().height;
+
+ return negativeValue ? -height : height;
+ }
+
+ return currentScroll === 0 ? 0 : -currentScroll;
+ }
+
+ function htmlStyles() {
+ var overflow = _win.innerHeight > _doc.documentElement.getBoundingClientRect().height;
+
+ return {
+ 'overflow-y': overflow ? 'hidden' : 'scroll',
+ position: 'fixed',
+ width: '100%',
+ top: getAdminBarHeight( true ) + 'px',
+ left: 0
+ };
+ }
+
+ // Show the modal.
+ modals.forEach( function( modal ) {
+ modal.addEventListener( 'toggle-target-before-inactive', function( event ) {
+ var styles = htmlStyles(),
+ offsetY = _win.pageYOffset,
+ paddingTop = ( Math.abs( getAdminBarHeight() ) - offsetY ) + 'px',
+ mQuery = _win.matchMedia( '(max-width: 600px)' );
+
+ if ( event.target !== modal ) {
+ return;
+ }
+
+ Object.keys( styles ).forEach( function( styleKey ) {
+ htmlStyle.setProperty( styleKey, styles[ styleKey ] );
+ } );
+
+ _win.twentytwenty.scrolled = parseInt( styles.top, 10 );
+
+ if ( adminBar ) {
+ _doc.body.style.setProperty( 'padding-top', paddingTop );
+
+ if ( mQuery.matches ) {
+ if ( offsetY >= getAdminBarHeight() ) {
+ modal.style.setProperty( 'top', 0 );
+ } else {
+ modal.style.setProperty( 'top', ( getAdminBarHeight() - offsetY ) + 'px' );
+ }
+ }
+ }
+
+ modal.classList.add( 'show-modal' );
+ } );
+
+ // Hide the modal after a delay, so animations have time to play out.
+ modal.addEventListener( 'toggle-target-after-inactive', function( event ) {
+ if ( event.target !== modal ) {
+ return;
+ }
+
+ setTimeout( function() {
+ var clickedEl = twentytwenty.toggles.clickedEl;
+
+ modal.classList.remove( 'show-modal' );
+
+ Object.keys( htmlStyles() ).forEach( function( styleKey ) {
+ htmlStyle.removeProperty( styleKey );
+ } );
+
+ if ( adminBar ) {
+ _doc.body.style.removeProperty( 'padding-top' );
+ modal.style.removeProperty( 'top' );
+ }
+
+ if ( clickedEl !== false ) {
+ clickedEl.focus();
+ clickedEl = false;
+ }
+
+ _win.scrollTo( 0, Math.abs( _win.twentytwenty.scrolled + getAdminBarHeight() ) );
+
+ _win.twentytwenty.scrolled = 0;
+ }, 500 );
+ } );
+ } );
+ },
+
+ // Untoggle a modal.
+ untoggleModal: function( modal ) {
+ var modalTargetClass,
+ modalToggle = false;
+
+ // If the modal has specified the string (ID or class) used by toggles to target it, untoggle the toggles with that target string.
+ // The modal-target-string must match the string toggles use to target the modal.
+ if ( modal.dataset.modalTargetString ) {
+ modalTargetClass = modal.dataset.modalTargetString;
+
+ modalToggle = document.querySelector( '*[data-toggle-target="' + modalTargetClass + '"]' );
+ }
+
+ // If a modal toggle exists, trigger it so all of the toggle options are included.
+ if ( modalToggle ) {
+ modalToggle.click();
+
+ // If one doesn't exist, just hide the modal.
+ } else {
+ modal.classList.remove( 'active' );
+ }
+ }
+
+}; // twentytwenty.coverModals
+
+/* -----------------------------------------------------------------------------------------------
+ Intrinsic Ratio Embeds
+--------------------------------------------------------------------------------------------------- */
+
+twentytwenty.intrinsicRatioVideos = {
+
+ init: function() {
+ this.makeFit();
+
+ window.addEventListener( 'resize', function() {
+ this.makeFit();
+ }.bind( this ) );
+ },
+
+ makeFit: function() {
+ document.querySelectorAll( 'iframe, object, video' ).forEach( function( video ) {
+ var ratio, iTargetWidth,
+ container = video.parentNode;
+
+ // Skip videos we want to ignore.
+ if ( video.classList.contains( 'intrinsic-ignore' ) || video.parentNode.classList.contains( 'intrinsic-ignore' ) ) {
+ return true;
+ }
+
+ if ( ! video.dataset.origwidth ) {
+ // Get the video element proportions.
+ video.setAttribute( 'data-origwidth', video.width );
+ video.setAttribute( 'data-origheight', video.height );
+ }
+
+ iTargetWidth = container.offsetWidth;
+
+ // Get ratio from proportions.
+ ratio = iTargetWidth / video.dataset.origwidth;
+
+ // Scale based on ratio, thus retaining proportions.
+ video.style.width = iTargetWidth + 'px';
+ video.style.height = ( video.dataset.origheight * ratio ) + 'px';
+ } );
+ }
+
+}; // twentytwenty.instrinsicRatioVideos
+
+/* -----------------------------------------------------------------------------------------------
+ Modal Menu
+--------------------------------------------------------------------------------------------------- */
+twentytwenty.modalMenu = {
+
+ init: function() {
+ // If the current menu item is in a sub level, expand all the levels higher up on load.
+ this.expandLevel();
+ this.keepFocusInModal();
+ },
+
+ expandLevel: function() {
+ var modalMenus = document.querySelectorAll( '.modal-menu' );
+
+ modalMenus.forEach( function( modalMenu ) {
+ var activeMenuItem = modalMenu.querySelector( '.current-menu-item' );
+
+ if ( activeMenuItem ) {
+ twentytwentyFindParents( activeMenuItem, 'li' ).forEach( function( element ) {
+ var subMenuToggle = element.querySelector( '.sub-menu-toggle' );
+ if ( subMenuToggle ) {
+ twentytwenty.toggles.performToggle( subMenuToggle, true );
+ }
+ } );
+ }
+ } );
+ },
+
+ keepFocusInModal: function() {
+ var _doc = document;
+
+ _doc.addEventListener( 'keydown', function( event ) {
+ var toggleTarget, modal, selectors, elements, menuType, bottomMenu, activeEl, lastEl, firstEl, tabKey, shiftKey,
+ clickedEl = twentytwenty.toggles.clickedEl;
+
+ if ( clickedEl && _doc.body.classList.contains( 'showing-modal' ) ) {
+ toggleTarget = clickedEl.dataset.toggleTarget;
+ selectors = 'input, a, button';
+ modal = _doc.querySelector( toggleTarget );
+
+ elements = modal.querySelectorAll( selectors );
+ elements = Array.prototype.slice.call( elements );
+
+ if ( '.menu-modal' === toggleTarget ) {
+ menuType = window.matchMedia( '(min-width: 1000px)' ).matches;
+ menuType = menuType ? '.expanded-menu' : '.mobile-menu';
+
+ elements = elements.filter( function( element ) {
+ return null !== element.closest( menuType ) && null !== element.offsetParent;
+ } );
+
+ elements.unshift( _doc.querySelector( '.close-nav-toggle' ) );
+
+ bottomMenu = _doc.querySelector( '.menu-bottom > nav' );
+
+ if ( bottomMenu ) {
+ bottomMenu.querySelectorAll( selectors ).forEach( function( element ) {
+ elements.push( element );
+ } );
+ }
+ }
+
+ lastEl = elements[ elements.length - 1 ];
+ firstEl = elements[0];
+ activeEl = _doc.activeElement;
+ tabKey = event.keyCode === 9;
+ shiftKey = event.shiftKey;
+
+ if ( ! shiftKey && tabKey && lastEl === activeEl ) {
+ event.preventDefault();
+ firstEl.focus();
+ }
+
+ if ( shiftKey && tabKey && firstEl === activeEl ) {
+ event.preventDefault();
+ lastEl.focus();
+ }
+ }
+ } );
+ }
+}; // twentytwenty.modalMenu
+
+/* -----------------------------------------------------------------------------------------------
+ Primary Menu
+--------------------------------------------------------------------------------------------------- */
+
+twentytwenty.primaryMenu = {
+
+ init: function() {
+ this.focusMenuWithChildren();
+ },
+
+ // The focusMenuWithChildren() function implements Keyboard Navigation in the Primary Menu
+ // by adding the '.focus' class to all 'li.menu-item-has-children' when the focus is on the 'a' element.
+ focusMenuWithChildren: function() {
+ // Get all the link elements within the primary menu.
+ var links, i, len,
+ menu = document.querySelector( '.primary-menu-wrapper' );
+
+ if ( ! menu ) {
+ return false;
+ }
+
+ links = menu.getElementsByTagName( 'a' );
+
+ // Each time a menu link is focused or blurred, toggle focus.
+ for ( i = 0, len = links.length; i < len; i++ ) {
+ links[i].addEventListener( 'focus', toggleFocus, true );
+ links[i].addEventListener( 'blur', toggleFocus, true );
+ }
+
+ //Sets or removes the .focus class on an element.
+ function toggleFocus() {
+ var self = this;
+
+ // Move up through the ancestors of the current link until we hit .primary-menu.
+ while ( -1 === self.className.indexOf( 'primary-menu' ) ) {
+ // On li elements toggle the class .focus.
+ if ( 'li' === self.tagName.toLowerCase() ) {
+ if ( -1 !== self.className.indexOf( 'focus' ) ) {
+ self.className = self.className.replace( ' focus', '' );
+ } else {
+ self.className += ' focus';
+ }
+ }
+ self = self.parentElement;
+ }
+ }
+ }
+}; // twentytwenty.primaryMenu
+
+/* -----------------------------------------------------------------------------------------------
+ Toggles
+--------------------------------------------------------------------------------------------------- */
+
+twentytwenty.toggles = {
+
+ clickedEl: false,
+
+ init: function() {
+ // Do the toggle.
+ this.toggle();
+
+ // Check for toggle/untoggle on resize.
+ this.resizeCheck();
+
+ // Check for untoggle on escape key press.
+ this.untoggleOnEscapeKeyPress();
+ },
+
+ performToggle: function( element, instantly ) {
+ var target, timeOutTime, classToToggle,
+ self = this,
+ _doc = document,
+ // Get our targets.
+ toggle = element,
+ targetString = toggle.dataset.toggleTarget,
+ activeClass = 'active';
+
+ // Elements to focus after modals are closed.
+ if ( ! _doc.querySelectorAll( '.show-modal' ).length ) {
+ self.clickedEl = _doc.activeElement;
+ }
+
+ if ( targetString === 'next' ) {
+ target = toggle.nextSibling;
+ } else {
+ target = _doc.querySelector( targetString );
+ }
+
+ // Trigger events on the toggle targets before they are toggled.
+ if ( target.classList.contains( activeClass ) ) {
+ target.dispatchEvent( twentytwenty.createEvent( 'toggle-target-before-active' ) );
+ } else {
+ target.dispatchEvent( twentytwenty.createEvent( 'toggle-target-before-inactive' ) );
+ }
+
+ // Get the class to toggle, if specified.
+ classToToggle = toggle.dataset.classToToggle ? toggle.dataset.classToToggle : activeClass;
+
+ // For cover modals, set a short timeout duration so the class animations have time to play out.
+ timeOutTime = 0;
+
+ if ( target.classList.contains( 'cover-modal' ) ) {
+ timeOutTime = 10;
+ }
+
+ setTimeout( function() {
+ var focusElement,
+ subMenued = target.classList.contains( 'sub-menu' ),
+ newTarget = subMenued ? toggle.closest( '.menu-item' ).querySelector( '.sub-menu' ) : target,
+ duration = toggle.dataset.toggleDuration;
+
+ // Toggle the target of the clicked toggle.
+ if ( toggle.dataset.toggleType === 'slidetoggle' && ! instantly && duration !== '0' ) {
+ twentytwentyMenuToggle( newTarget, duration );
+ } else {
+ newTarget.classList.toggle( classToToggle );
+ }
+
+ // If the toggle target is 'next', only give the clicked toggle the active class.
+ if ( targetString === 'next' ) {
+ toggle.classList.toggle( activeClass );
+ } else if ( target.classList.contains( 'sub-menu' ) ) {
+ toggle.classList.toggle( activeClass );
+ } else {
+ // If not, toggle all toggles with this toggle target.
+ _doc.querySelector( '*[data-toggle-target="' + targetString + '"]' ).classList.toggle( activeClass );
+ }
+
+ // Toggle aria-expanded on the toggle.
+ twentytwentyToggleAttribute( toggle, 'aria-expanded', 'true', 'false' );
+
+ if ( self.clickedEl && -1 !== toggle.getAttribute( 'class' ).indexOf( 'close-' ) ) {
+ twentytwentyToggleAttribute( self.clickedEl, 'aria-expanded', 'true', 'false' );
+ }
+
+ // Toggle body class.
+ if ( toggle.dataset.toggleBodyClass ) {
+ _doc.body.classList.toggle( toggle.dataset.toggleBodyClass );
+ }
+
+ // Check whether to set focus.
+ if ( toggle.dataset.setFocus ) {
+ focusElement = _doc.querySelector( toggle.dataset.setFocus );
+
+ if ( focusElement ) {
+ if ( target.classList.contains( activeClass ) ) {
+ focusElement.focus();
+ } else {
+ focusElement.blur();
+ }
+ }
+ }
+
+ // Trigger the toggled event on the toggle target.
+ target.dispatchEvent( twentytwenty.createEvent( 'toggled' ) );
+
+ // Trigger events on the toggle targets after they are toggled.
+ if ( target.classList.contains( activeClass ) ) {
+ target.dispatchEvent( twentytwenty.createEvent( 'toggle-target-after-active' ) );
+ } else {
+ target.dispatchEvent( twentytwenty.createEvent( 'toggle-target-after-inactive' ) );
+ }
+ }, timeOutTime );
+ },
+
+ // Do the toggle.
+ toggle: function() {
+ var self = this;
+
+ document.querySelectorAll( '*[data-toggle-target]' ).forEach( function( element ) {
+ element.addEventListener( 'click', function( event ) {
+ event.preventDefault();
+ self.performToggle( element );
+ } );
+ } );
+ },
+
+ // Check for toggle/untoggle on screen resize.
+ resizeCheck: function() {
+ if ( document.querySelectorAll( '*[data-untoggle-above], *[data-untoggle-below], *[data-toggle-above], *[data-toggle-below]' ).length ) {
+ window.addEventListener( 'resize', function() {
+ var winWidth = window.innerWidth,
+ toggles = document.querySelectorAll( '.toggle' );
+
+ toggles.forEach( function( toggle ) {
+ var unToggleAbove = toggle.dataset.untoggleAbove,
+ unToggleBelow = toggle.dataset.untoggleBelow,
+ toggleAbove = toggle.dataset.toggleAbove,
+ toggleBelow = toggle.dataset.toggleBelow;
+
+ // If no width comparison is set, continue.
+ if ( ! unToggleAbove && ! unToggleBelow && ! toggleAbove && ! toggleBelow ) {
+ return;
+ }
+
+ // If the toggle width comparison is true, toggle the toggle.
+ if (
+ ( ( ( unToggleAbove && winWidth > unToggleAbove ) ||
+ ( unToggleBelow && winWidth < unToggleBelow ) ) &&
+ toggle.classList.contains( 'active' ) ) ||
+ ( ( ( toggleAbove && winWidth > toggleAbove ) ||
+ ( toggleBelow && winWidth < toggleBelow ) ) &&
+ ! toggle.classList.contains( 'active' ) )
+ ) {
+ toggle.click();
+ }
+ } );
+ } );
+ }
+ },
+
+ // Close toggle on escape key press.
+ untoggleOnEscapeKeyPress: function() {
+ document.addEventListener( 'keyup', function( event ) {
+ if ( event.key === 'Escape' ) {
+ document.querySelectorAll( '*[data-untoggle-on-escape].active' ).forEach( function( element ) {
+ if ( element.classList.contains( 'active' ) ) {
+ element.click();
+ }
+ } );
+ }
+ } );
+ }
+
+}; // twentytwenty.toggles
+
+/**
+ * Is the DOM ready?
+ *
+ * This implementation is coming from https://gomakethings.com/a-native-javascript-equivalent-of-jquerys-ready-method/
+ *
+ * @param {Function} fn Callback function to run.
+ */
+function twentytwentyDomReady( fn ) {
+ if ( typeof fn !== 'function' ) {
+ return;
+ }
+
+ if ( document.readyState === 'interactive' || document.readyState === 'complete' ) {
+ return fn();
+ }
+
+ document.addEventListener( 'DOMContentLoaded', fn, false );
+}
+
+twentytwentyDomReady( function() {
+ twentytwenty.toggles.init(); // Handle toggles.
+ twentytwenty.coverModals.init(); // Handle cover modals.
+ twentytwenty.intrinsicRatioVideos.init(); // Retain aspect ratio of videos on window resize.
+ twentytwenty.modalMenu.init(); // Modal Menu.
+ twentytwenty.primaryMenu.init(); // Primary Menu.
+ twentytwenty.touchEnabled.init(); // Add class to body if device is touch-enabled.
+} );
+
+/* -----------------------------------------------------------------------------------------------
+ Helper functions
+--------------------------------------------------------------------------------------------------- */
+
+/* Toggle an attribute ----------------------- */
+
+function twentytwentyToggleAttribute( element, attribute, trueVal, falseVal ) {
+ if ( trueVal === undefined ) {
+ trueVal = true;
+ }
+ if ( falseVal === undefined ) {
+ falseVal = false;
+ }
+ if ( element.getAttribute( attribute ) !== trueVal ) {
+ element.setAttribute( attribute, trueVal );
+ } else {
+ element.setAttribute( attribute, falseVal );
+ }
+}
+
+/**
+ * Toggle a menu item on or off.
+ *
+ * @param {HTMLElement} target
+ * @param {number} duration
+ */
+function twentytwentyMenuToggle( target, duration ) {
+ var initialParentHeight, finalParentHeight, menu, menuItems, transitionListener,
+ initialPositions = [],
+ finalPositions = [];
+
+ if ( ! target ) {
+ return;
+ }
+
+ menu = target.closest( '.menu-wrapper' );
+
+ // Step 1: look at the initial positions of every menu item.
+ menuItems = menu.querySelectorAll( '.menu-item' );
+
+ menuItems.forEach( function( menuItem, index ) {
+ initialPositions[ index ] = { x: menuItem.offsetLeft, y: menuItem.offsetTop };
+ } );
+ initialParentHeight = target.parentElement.offsetHeight;
+
+ target.classList.add( 'toggling-target' );
+
+ // Step 2: toggle target menu item and look at the final positions of every menu item.
+ target.classList.toggle( 'active' );
+
+ menuItems.forEach( function( menuItem, index ) {
+ finalPositions[ index ] = { x: menuItem.offsetLeft, y: menuItem.offsetTop };
+ } );
+ finalParentHeight = target.parentElement.offsetHeight;
+
+ // Step 3: close target menu item again.
+ // The whole process happens without giving the browser a chance to render, so it's invisible.
+ target.classList.toggle( 'active' );
+
+ /*
+ * Step 4: prepare animation.
+ * Position all the items with absolute offsets, at the same starting position.
+ * Shouldn't result in any visual changes if done right.
+ */
+ menu.classList.add( 'is-toggling' );
+ target.classList.toggle( 'active' );
+ menuItems.forEach( function( menuItem, index ) {
+ var initialPosition = initialPositions[ index ];
+ if ( initialPosition.y === 0 && menuItem.parentElement === target ) {
+ initialPosition.y = initialParentHeight;
+ }
+ menuItem.style.transform = 'translate(' + initialPosition.x + 'px, ' + initialPosition.y + 'px)';
+ } );
+
+ /*
+ * The double rAF is unfortunately needed, since we're toggling CSS classes, and
+ * the only way to ensure layout completion here across browsers is to wait twice.
+ * This just delays the start of the animation by 2 frames and is thus not an issue.
+ */
+ requestAnimationFrame( function() {
+ requestAnimationFrame( function() {
+ /*
+ * Step 5: start animation by moving everything to final position.
+ * All the layout work has already happened, while we were preparing for the animation.
+ * The animation now runs entirely in CSS, using cheap CSS properties (opacity and transform)
+ * that don't trigger the layout or paint stages.
+ */
+ menu.classList.add( 'is-animating' );
+ menuItems.forEach( function( menuItem, index ) {
+ var finalPosition = finalPositions[ index ];
+ if ( finalPosition.y === 0 && menuItem.parentElement === target ) {
+ finalPosition.y = finalParentHeight;
+ }
+ if ( duration !== undefined ) {
+ menuItem.style.transitionDuration = duration + 'ms';
+ }
+ menuItem.style.transform = 'translate(' + finalPosition.x + 'px, ' + finalPosition.y + 'px)';
+ } );
+ if ( duration !== undefined ) {
+ target.style.transitionDuration = duration + 'ms';
+ }
+ } );
+
+ // Step 6: finish toggling.
+ // Remove all transient classes when the animation ends.
+ transitionListener = function() {
+ menu.classList.remove( 'is-animating' );
+ menu.classList.remove( 'is-toggling' );
+ target.classList.remove( 'toggling-target' );
+ menuItems.forEach( function( menuItem ) {
+ menuItem.style.transform = '';
+ menuItem.style.transitionDuration = '';
+ } );
+ target.style.transitionDuration = '';
+ target.removeEventListener( 'transitionend', transitionListener );
+ };
+
+ target.addEventListener( 'transitionend', transitionListener );
+ } );
+}
+
+/**
+ * Traverses the DOM up to find elements matching the query.
+ *
+ * @param {HTMLElement} target
+ * @param {string} query
+ * @return {NodeList} parents matching query
+ */
+function twentytwentyFindParents( target, query ) {
+ var parents = [];
+
+ // Recursively go up the DOM adding matches to the parents array.
+ function traverse( item ) {
+ var parent = item.parentNode;
+ if ( parent instanceof HTMLElement ) {
+ if ( parent.matches( query ) ) {
+ parents.push( parent );
+ }
+ traverse( parent );
+ }
+ }
+
+ traverse( target );
+
+ return parents;
+}
diff --git a/wp-content/themes/twentytwenty/assets/js/skip-link-focus-fix.js b/wp-content/themes/twentytwenty/assets/js/skip-link-focus-fix.js
new file mode 100644
index 000000000..181b79799
--- /dev/null
+++ b/wp-content/themes/twentytwenty/assets/js/skip-link-focus-fix.js
@@ -0,0 +1,33 @@
+/**
+ * File skip-link-focus-fix.js.
+ *
+ * Helps with accessibility for keyboard only users.
+ *
+ * This is the source file for what is minified in the twentytwenty_skip_link_focus_fix() PHP function.
+ *
+ * Learn more: https://git.io/vWdr2
+ */
+( function() {
+ var isIe = /(trident|msie)/i.test( navigator.userAgent );
+
+ if ( isIe && document.getElementById && window.addEventListener ) {
+ window.addEventListener( 'hashchange', function() {
+ var id = location.hash.substring( 1 ),
+ element;
+
+ if ( ! ( /^[A-z0-9_-]+$/.test( id ) ) ) {
+ return;
+ }
+
+ element = document.getElementById( id );
+
+ if ( element ) {
+ if ( ! ( /^(?:a|select|input|button|textarea)$/i.test( element.tagName ) ) ) {
+ element.tabIndex = -1;
+ }
+
+ element.focus();
+ }
+ }, false );
+ }
+}() );
diff --git a/wp-content/themes/twentytwenty/classes/class-twentytwenty-customize.php b/wp-content/themes/twentytwenty/classes/class-twentytwenty-customize.php
new file mode 100644
index 000000000..c96531366
--- /dev/null
+++ b/wp-content/themes/twentytwenty/classes/class-twentytwenty-customize.php
@@ -0,0 +1,526 @@
+get_setting( 'blogname' )->transport = 'postMessage';
+ $wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage';
+
+ $wp_customize->selective_refresh->add_partial(
+ 'blogname',
+ array(
+ 'selector' => '.site-title a',
+ 'render_callback' => 'twentytwenty_customize_partial_blogname',
+ )
+ );
+
+ $wp_customize->selective_refresh->add_partial(
+ 'blogdescription',
+ array(
+ 'selector' => '.site-description',
+ 'render_callback' => 'twentytwenty_customize_partial_blogdescription',
+ )
+ );
+
+ $wp_customize->selective_refresh->add_partial(
+ 'custom_logo',
+ array(
+ 'selector' => '.header-titles [class*=site-]:not(.site-description)',
+ 'render_callback' => 'twentytwenty_customize_partial_site_logo',
+ )
+ );
+
+ $wp_customize->selective_refresh->add_partial(
+ 'retina_logo',
+ array(
+ 'selector' => '.header-titles [class*=site-]:not(.site-description)',
+ 'render_callback' => 'twentytwenty_customize_partial_site_logo',
+ )
+ );
+
+ /**
+ * Site Identity
+ */
+
+ /* 2X Header Logo ---------------- */
+ $wp_customize->add_setting(
+ 'retina_logo',
+ array(
+ 'capability' => 'edit_theme_options',
+ 'sanitize_callback' => array( __CLASS__, 'sanitize_checkbox' ),
+ 'transport' => 'postMessage',
+ )
+ );
+
+ $wp_customize->add_control(
+ 'retina_logo',
+ array(
+ 'type' => 'checkbox',
+ 'section' => 'title_tagline',
+ 'priority' => 10,
+ 'label' => __( 'Retina logo', 'twentytwenty' ),
+ 'description' => __( 'Scales the logo to half its uploaded size, making it sharp on high-res screens.', 'twentytwenty' ),
+ )
+ );
+
+ // Header & Footer Background Color.
+ $wp_customize->add_setting(
+ 'header_footer_background_color',
+ array(
+ 'default' => '#ffffff',
+ 'sanitize_callback' => 'sanitize_hex_color',
+ 'transport' => 'postMessage',
+ )
+ );
+
+ $wp_customize->add_control(
+ new WP_Customize_Color_Control(
+ $wp_customize,
+ 'header_footer_background_color',
+ array(
+ 'label' => __( 'Header & Footer Background Color', 'twentytwenty' ),
+ 'section' => 'colors',
+ )
+ )
+ );
+
+ // Enable picking an accent color.
+ $wp_customize->add_setting(
+ 'accent_hue_active',
+ array(
+ 'capability' => 'edit_theme_options',
+ 'sanitize_callback' => array( __CLASS__, 'sanitize_select' ),
+ 'transport' => 'postMessage',
+ 'default' => 'default',
+ )
+ );
+
+ $wp_customize->add_control(
+ 'accent_hue_active',
+ array(
+ 'type' => 'radio',
+ 'section' => 'colors',
+ 'label' => __( 'Primary Color', 'twentytwenty' ),
+ 'choices' => array(
+ 'default' => __( 'Default', 'twentytwenty' ),
+ 'custom' => __( 'Custom', 'twentytwenty' ),
+ ),
+ )
+ );
+
+ /**
+ * Implementation for the accent color.
+ * This is different to all other color options because of the accessibility enhancements.
+ * The control is a hue-only colorpicker, and there is a separate setting that holds values
+ * for other colors calculated based on the selected hue and various background-colors on the page.
+ *
+ * @since Twenty Twenty 1.0
+ */
+
+ // Add the setting for the hue colorpicker.
+ $wp_customize->add_setting(
+ 'accent_hue',
+ array(
+ 'default' => 344,
+ 'type' => 'theme_mod',
+ 'sanitize_callback' => 'absint',
+ 'transport' => 'postMessage',
+ )
+ );
+
+ // Add setting to hold colors derived from the accent hue.
+ $wp_customize->add_setting(
+ 'accent_accessible_colors',
+ array(
+ 'default' => array(
+ 'content' => array(
+ 'text' => '#000000',
+ 'accent' => '#cd2653',
+ 'secondary' => '#6d6d6d',
+ 'borders' => '#dcd7ca',
+ ),
+ 'header-footer' => array(
+ 'text' => '#000000',
+ 'accent' => '#cd2653',
+ 'secondary' => '#6d6d6d',
+ 'borders' => '#dcd7ca',
+ ),
+ ),
+ 'type' => 'theme_mod',
+ 'transport' => 'postMessage',
+ 'sanitize_callback' => array( __CLASS__, 'sanitize_accent_accessible_colors' ),
+ )
+ );
+
+ // Add the hue-only colorpicker for the accent color.
+ $wp_customize->add_control(
+ new WP_Customize_Color_Control(
+ $wp_customize,
+ 'accent_hue',
+ array(
+ 'section' => 'colors',
+ 'settings' => 'accent_hue',
+ 'description' => __( 'Apply a custom color for links, buttons, featured images.', 'twentytwenty' ),
+ 'mode' => 'hue',
+ 'active_callback' => function() use ( $wp_customize ) {
+ return ( 'custom' === $wp_customize->get_setting( 'accent_hue_active' )->value() );
+ },
+ )
+ )
+ );
+
+ // Update background color with postMessage, so inline CSS output is updated as well.
+ $wp_customize->get_setting( 'background_color' )->transport = 'postMessage';
+
+ /**
+ * Theme Options
+ */
+
+ $wp_customize->add_section(
+ 'options',
+ array(
+ 'title' => __( 'Theme Options', 'twentytwenty' ),
+ 'priority' => 40,
+ 'capability' => 'edit_theme_options',
+ )
+ );
+
+ /* Enable Header Search ----------------------------------------------- */
+
+ $wp_customize->add_setting(
+ 'enable_header_search',
+ array(
+ 'capability' => 'edit_theme_options',
+ 'default' => true,
+ 'sanitize_callback' => array( __CLASS__, 'sanitize_checkbox' ),
+ )
+ );
+
+ $wp_customize->add_control(
+ 'enable_header_search',
+ array(
+ 'type' => 'checkbox',
+ 'section' => 'options',
+ 'priority' => 10,
+ 'label' => __( 'Show search in header', 'twentytwenty' ),
+ )
+ );
+
+ /* Show author bio ---------------------------------------------------- */
+
+ $wp_customize->add_setting(
+ 'show_author_bio',
+ array(
+ 'capability' => 'edit_theme_options',
+ 'default' => true,
+ 'sanitize_callback' => array( __CLASS__, 'sanitize_checkbox' ),
+ )
+ );
+
+ $wp_customize->add_control(
+ 'show_author_bio',
+ array(
+ 'type' => 'checkbox',
+ 'section' => 'options',
+ 'priority' => 10,
+ 'label' => __( 'Show author bio', 'twentytwenty' ),
+ )
+ );
+
+ /* Display full content or excerpts on the blog and archives --------- */
+
+ $wp_customize->add_setting(
+ 'blog_content',
+ array(
+ 'capability' => 'edit_theme_options',
+ 'default' => 'full',
+ 'sanitize_callback' => array( __CLASS__, 'sanitize_select' ),
+ )
+ );
+
+ $wp_customize->add_control(
+ 'blog_content',
+ array(
+ 'type' => 'radio',
+ 'section' => 'options',
+ 'priority' => 10,
+ 'label' => __( 'On archive pages, posts show:', 'twentytwenty' ),
+ 'choices' => array(
+ 'full' => __( 'Full text', 'twentytwenty' ),
+ 'summary' => __( 'Summary', 'twentytwenty' ),
+ ),
+ )
+ );
+
+ /**
+ * Template: Cover Template.
+ */
+ $wp_customize->add_section(
+ 'cover_template_options',
+ array(
+ 'title' => __( 'Cover Template', 'twentytwenty' ),
+ 'capability' => 'edit_theme_options',
+ 'description' => __( 'Settings for the "Cover Template" page template. Add a featured image to use as background.', 'twentytwenty' ),
+ 'priority' => 42,
+ )
+ );
+
+ /* Overlay Fixed Background ------ */
+
+ $wp_customize->add_setting(
+ 'cover_template_fixed_background',
+ array(
+ 'capability' => 'edit_theme_options',
+ 'default' => true,
+ 'sanitize_callback' => array( __CLASS__, 'sanitize_checkbox' ),
+ 'transport' => 'postMessage',
+ )
+ );
+
+ $wp_customize->add_control(
+ 'cover_template_fixed_background',
+ array(
+ 'type' => 'checkbox',
+ 'section' => 'cover_template_options',
+ 'label' => __( 'Fixed Background Image', 'twentytwenty' ),
+ 'description' => __( 'Creates a parallax effect when the visitor scrolls.', 'twentytwenty' ),
+ )
+ );
+
+ $wp_customize->selective_refresh->add_partial(
+ 'cover_template_fixed_background',
+ array(
+ 'selector' => '.cover-header',
+ 'type' => 'cover_fixed',
+ )
+ );
+
+ /* Separator --------------------- */
+
+ $wp_customize->add_setting(
+ 'cover_template_separator_1',
+ array(
+ 'sanitize_callback' => 'wp_filter_nohtml_kses',
+ )
+ );
+
+ $wp_customize->add_control(
+ new TwentyTwenty_Separator_Control(
+ $wp_customize,
+ 'cover_template_separator_1',
+ array(
+ 'section' => 'cover_template_options',
+ )
+ )
+ );
+
+ /* Overlay Background Color ------ */
+
+ $wp_customize->add_setting(
+ 'cover_template_overlay_background_color',
+ array(
+ 'default' => twentytwenty_get_color_for_area( 'content', 'accent' ),
+ 'sanitize_callback' => 'sanitize_hex_color',
+ )
+ );
+
+ $wp_customize->add_control(
+ new WP_Customize_Color_Control(
+ $wp_customize,
+ 'cover_template_overlay_background_color',
+ array(
+ 'label' => __( 'Overlay Background Color', 'twentytwenty' ),
+ 'description' => __( 'The color used for the overlay. Defaults to the accent color.', 'twentytwenty' ),
+ 'section' => 'cover_template_options',
+ )
+ )
+ );
+
+ /* Overlay Text Color ------------ */
+
+ $wp_customize->add_setting(
+ 'cover_template_overlay_text_color',
+ array(
+ 'default' => '#ffffff',
+ 'sanitize_callback' => 'sanitize_hex_color',
+ )
+ );
+
+ $wp_customize->add_control(
+ new WP_Customize_Color_Control(
+ $wp_customize,
+ 'cover_template_overlay_text_color',
+ array(
+ 'label' => __( 'Overlay Text Color', 'twentytwenty' ),
+ 'description' => __( 'The color used for the text in the overlay.', 'twentytwenty' ),
+ 'section' => 'cover_template_options',
+ )
+ )
+ );
+
+ /* Overlay Color Opacity --------- */
+
+ $wp_customize->add_setting(
+ 'cover_template_overlay_opacity',
+ array(
+ 'default' => 80,
+ 'sanitize_callback' => 'absint',
+ 'transport' => 'postMessage',
+ )
+ );
+
+ $wp_customize->add_control(
+ 'cover_template_overlay_opacity',
+ array(
+ 'label' => __( 'Overlay Opacity', 'twentytwenty' ),
+ 'description' => __( 'Make sure that the contrast is high enough so that the text is readable.', 'twentytwenty' ),
+ 'section' => 'cover_template_options',
+ 'type' => 'range',
+ 'input_attrs' => twentytwenty_customize_opacity_range(),
+ )
+ );
+
+ $wp_customize->selective_refresh->add_partial(
+ 'cover_template_overlay_opacity',
+ array(
+ 'selector' => '.cover-color-overlay',
+ 'type' => 'cover_opacity',
+ )
+ );
+ }
+
+ /**
+ * Sanitization callback for the "accent_accessible_colors" setting.
+ *
+ * @static
+ * @access public
+ * @since Twenty Twenty 1.0
+ * @param array $value The value we want to sanitize.
+ * @return array Returns sanitized value. Each item in the array gets sanitized separately.
+ */
+ public static function sanitize_accent_accessible_colors( $value ) {
+
+ // Make sure the value is an array. Do not typecast, use empty array as fallback.
+ $value = is_array( $value ) ? $value : array();
+
+ // Loop values.
+ foreach ( $value as $area => $values ) {
+ foreach ( $values as $context => $color_val ) {
+ $value[ $area ][ $context ] = sanitize_hex_color( $color_val );
+ }
+ }
+
+ return $value;
+ }
+
+ /**
+ * Sanitize select.
+ *
+ * @param string $input The input from the setting.
+ * @param object $setting The selected setting.
+ *
+ * @return string $input|$setting->default The input from the setting or the default setting.
+ */
+ public static function sanitize_select( $input, $setting ) {
+ $input = sanitize_key( $input );
+ $choices = $setting->manager->get_control( $setting->id )->choices;
+ return ( array_key_exists( $input, $choices ) ? $input : $setting->default );
+ }
+
+ /**
+ * Sanitize boolean for checkbox.
+ *
+ * @param bool $checked Whether or not a box is checked.
+ *
+ * @return bool
+ */
+ public static function sanitize_checkbox( $checked ) {
+ return ( ( isset( $checked ) && true === $checked ) ? true : false );
+ }
+
+ }
+
+ // Setup the Theme Customizer settings and controls.
+ add_action( 'customize_register', array( 'TwentyTwenty_Customize', 'register' ) );
+
+}
+
+/**
+ * PARTIAL REFRESH FUNCTIONS
+ * */
+if ( ! function_exists( 'twentytwenty_customize_partial_blogname' ) ) {
+ /**
+ * Render the site title for the selective refresh partial.
+ */
+ function twentytwenty_customize_partial_blogname() {
+ bloginfo( 'name' );
+ }
+}
+
+if ( ! function_exists( 'twentytwenty_customize_partial_blogdescription' ) ) {
+ /**
+ * Render the site description for the selective refresh partial.
+ */
+ function twentytwenty_customize_partial_blogdescription() {
+ bloginfo( 'description' );
+ }
+}
+
+if ( ! function_exists( 'twentytwenty_customize_partial_site_logo' ) ) {
+ /**
+ * Render the site logo for the selective refresh partial.
+ *
+ * Doing it this way so we don't have issues with `render_callback`'s arguments.
+ */
+ function twentytwenty_customize_partial_site_logo() {
+ twentytwenty_site_logo();
+ }
+}
+
+
+/**
+ * Input attributes for cover overlay opacity option.
+ *
+ * @return array Array containing attribute names and their values.
+ */
+function twentytwenty_customize_opacity_range() {
+ /**
+ * Filter the input attributes for opacity
+ *
+ * @param array $attrs {
+ * The attributes
+ *
+ * @type int $min Minimum value
+ * @type int $max Maximum value
+ * @type int $step Interval between numbers
+ * }
+ */
+ return apply_filters(
+ 'twentytwenty_customize_opacity_range',
+ array(
+ 'min' => 0,
+ 'max' => 90,
+ 'step' => 5,
+ )
+ );
+}
diff --git a/wp-content/themes/twentytwenty/classes/class-twentytwenty-non-latin-languages.php b/wp-content/themes/twentytwenty/classes/class-twentytwenty-non-latin-languages.php
new file mode 100644
index 000000000..48b58c534
--- /dev/null
+++ b/wp-content/themes/twentytwenty/classes/class-twentytwenty-non-latin-languages.php
@@ -0,0 +1,122 @@
+ array( 'Tahoma', 'Arial', 'sans-serif' ),
+ 'ary' => array( 'Tahoma', 'Arial', 'sans-serif' ),
+ 'azb' => array( 'Tahoma', 'Arial', 'sans-serif' ),
+ 'ckb' => array( 'Tahoma', 'Arial', 'sans-serif' ),
+ 'fa-IR' => array( 'Tahoma', 'Arial', 'sans-serif' ),
+ 'haz' => array( 'Tahoma', 'Arial', 'sans-serif' ),
+ 'ps' => array( 'Tahoma', 'Arial', 'sans-serif' ),
+
+ // Chinese Simplified (China) - Noto Sans SC.
+ 'zh-CN' => array( '\'PingFang SC\'', '\'Helvetica Neue\'', '\'Microsoft YaHei New\'', '\'STHeiti Light\'', 'sans-serif' ),
+
+ // Chinese Traditional (Taiwan) - Noto Sans TC.
+ 'zh-TW' => array( '\'PingFang TC\'', '\'Helvetica Neue\'', '\'Microsoft YaHei New\'', '\'STHeiti Light\'', 'sans-serif' ),
+
+ // Chinese (Hong Kong) - Noto Sans HK.
+ 'zh-HK' => array( '\'PingFang HK\'', '\'Helvetica Neue\'', '\'Microsoft YaHei New\'', '\'STHeiti Light\'', 'sans-serif' ),
+
+ // Cyrillic.
+ 'bel' => array( '\'Helvetica Neue\'', 'Helvetica', '\'Segoe UI\'', 'Arial', 'sans-serif' ),
+ 'bg-BG' => array( '\'Helvetica Neue\'', 'Helvetica', '\'Segoe UI\'', 'Arial', 'sans-serif' ),
+ 'kk' => array( '\'Helvetica Neue\'', 'Helvetica', '\'Segoe UI\'', 'Arial', 'sans-serif' ),
+ 'mk-MK' => array( '\'Helvetica Neue\'', 'Helvetica', '\'Segoe UI\'', 'Arial', 'sans-serif' ),
+ 'mn' => array( '\'Helvetica Neue\'', 'Helvetica', '\'Segoe UI\'', 'Arial', 'sans-serif' ),
+ 'ru-RU' => array( '\'Helvetica Neue\'', 'Helvetica', '\'Segoe UI\'', 'Arial', 'sans-serif' ),
+ 'sah' => array( '\'Helvetica Neue\'', 'Helvetica', '\'Segoe UI\'', 'Arial', 'sans-serif' ),
+ 'sr-RS' => array( '\'Helvetica Neue\'', 'Helvetica', '\'Segoe UI\'', 'Arial', 'sans-serif' ),
+ 'tt-RU' => array( '\'Helvetica Neue\'', 'Helvetica', '\'Segoe UI\'', 'Arial', 'sans-serif' ),
+ 'uk' => array( '\'Helvetica Neue\'', 'Helvetica', '\'Segoe UI\'', 'Arial', 'sans-serif' ),
+
+ // Devanagari.
+ 'bn-BD' => array( 'Arial', 'sans-serif' ),
+ 'hi-IN' => array( 'Arial', 'sans-serif' ),
+ 'mr' => array( 'Arial', 'sans-serif' ),
+ 'ne-NP' => array( 'Arial', 'sans-serif' ),
+
+ // Greek.
+ 'el' => array( '\'Helvetica Neue\', Helvetica, Arial, sans-serif' ),
+
+ // Gujarati.
+ 'gu' => array( 'Arial', 'sans-serif' ),
+
+ // Hebrew.
+ 'he-IL' => array( '\'Arial Hebrew\'', 'Arial', 'sans-serif' ),
+
+ // Japanese.
+ 'ja' => array( 'sans-serif' ),
+
+ // Korean.
+ 'ko-KR' => array( '\'Apple SD Gothic Neo\'', '\'Malgun Gothic\'', '\'Nanum Gothic\'', 'Dotum', 'sans-serif' ),
+
+ // Thai.
+ 'th' => array( '\'Sukhumvit Set\'', '\'Helvetica Neue\'', 'Helvetica', 'Arial', 'sans-serif' ),
+
+ // Vietnamese.
+ 'vi' => array( '\'Libre Franklin\'', 'sans-serif' ),
+
+ )
+ );
+
+ // Return if the selected language has no fallback fonts.
+ if ( empty( $font_family[ $locale ] ) ) {
+ return;
+ }
+
+ // Define elements to apply fallback fonts to.
+ $elements = apply_filters(
+ 'twentytwenty_get_localized_font_family_elements',
+ array(
+ 'front-end' => array( 'body', 'input', 'textarea', 'button', '.button', '.faux-button', '.wp-block-button__link', '.wp-block-file__button', '.has-drop-cap:not(:focus)::first-letter', '.has-drop-cap:not(:focus)::first-letter', '.entry-content .wp-block-archives', '.entry-content .wp-block-categories', '.entry-content .wp-block-cover-image', '.entry-content .wp-block-latest-comments', '.entry-content .wp-block-latest-posts', '.entry-content .wp-block-pullquote', '.entry-content .wp-block-quote.is-large', '.entry-content .wp-block-quote.is-style-large', '.entry-content .wp-block-archives *', '.entry-content .wp-block-categories *', '.entry-content .wp-block-latest-posts *', '.entry-content .wp-block-latest-comments *', '.entry-content p', '.entry-content ol', '.entry-content ul', '.entry-content dl', '.entry-content dt', '.entry-content cite', '.entry-content figcaption', '.entry-content .wp-caption-text', '.comment-content p', '.comment-content ol', '.comment-content ul', '.comment-content dl', '.comment-content dt', '.comment-content cite', '.comment-content figcaption', '.comment-content .wp-caption-text', '.widget_text p', '.widget_text ol', '.widget_text ul', '.widget_text dl', '.widget_text dt', '.widget-content .rssSummary', '.widget-content cite', '.widget-content figcaption', '.widget-content .wp-caption-text' ),
+ 'block-editor' => array( '.editor-styles-wrapper > *', '.editor-styles-wrapper p', '.editor-styles-wrapper ol', '.editor-styles-wrapper ul', '.editor-styles-wrapper dl', '.editor-styles-wrapper dt', '.editor-post-title__block .editor-post-title__input', '.editor-styles-wrapper .wp-block h1', '.editor-styles-wrapper .wp-block h2', '.editor-styles-wrapper .wp-block h3', '.editor-styles-wrapper .wp-block h4', '.editor-styles-wrapper .wp-block h5', '.editor-styles-wrapper .wp-block h6', '.editor-styles-wrapper .has-drop-cap:not(:focus)::first-letter', '.editor-styles-wrapper cite', '.editor-styles-wrapper figcaption', '.editor-styles-wrapper .wp-caption-text' ),
+ 'classic-editor' => array( 'body#tinymce.wp-editor', 'body#tinymce.wp-editor p', 'body#tinymce.wp-editor ol', 'body#tinymce.wp-editor ul', 'body#tinymce.wp-editor dl', 'body#tinymce.wp-editor dt', 'body#tinymce.wp-editor figcaption', 'body#tinymce.wp-editor .wp-caption-text', 'body#tinymce.wp-editor .wp-caption-dd', 'body#tinymce.wp-editor cite', 'body#tinymce.wp-editor table' ),
+ )
+ );
+
+ // Return if the specified type doesn't exist.
+ if ( empty( $elements[ $type ] ) ) {
+ return;
+ }
+
+ // Return the specified styles.
+ return twentytwenty_generate_css( implode( ',', $elements[ $type ] ), 'font-family', implode( ',', $font_family[ $locale ] ), null, null, false );
+
+ }
+ }
+}
diff --git a/wp-content/themes/twentytwenty/classes/class-twentytwenty-script-loader.php b/wp-content/themes/twentytwenty/classes/class-twentytwenty-script-loader.php
new file mode 100644
index 000000000..8a583548c
--- /dev/null
+++ b/wp-content/themes/twentytwenty/classes/class-twentytwenty-script-loader.php
@@ -0,0 +1,47 @@
+get_data( $handle, $attr ) ) {
+ continue;
+ }
+ // Prevent adding attribute when already added in #12009.
+ if ( ! preg_match( ":\s$attr(=|>|\s):", $tag ) ) {
+ $tag = preg_replace( ':(?=>):', " $attr", $tag, 1 );
+ }
+ // Only allow async or defer, not both.
+ break;
+ }
+ return $tag;
+ }
+
+ }
+}
diff --git a/wp-content/themes/twentytwenty/classes/class-twentytwenty-separator-control.php b/wp-content/themes/twentytwenty/classes/class-twentytwenty-separator-control.php
new file mode 100644
index 000000000..8bcdc1391
--- /dev/null
+++ b/wp-content/themes/twentytwenty/classes/class-twentytwenty-separator-control.php
@@ -0,0 +1,26 @@
+';
+ }
+
+ }
+ }
+}
diff --git a/wp-content/themes/twentytwenty/classes/class-twentytwenty-svg-icons.php b/wp-content/themes/twentytwenty/classes/class-twentytwenty-svg-icons.php
new file mode 100644
index 000000000..450089579
--- /dev/null
+++ b/wp-content/themes/twentytwenty/classes/class-twentytwenty-svg-icons.php
@@ -0,0 +1,262 @@
+\s*', '><', $svg ); // Remove whitespace between SVG tags.
+ return $svg;
+ }
+ return null;
+ }
+
+ /**
+ * GET SOCIAL LINK SVG
+ * Detects the social network from a URL and returns the SVG code for its icon.
+ *
+ * @param string $uri The URL to retrieve SVG for.
+ */
+ public static function get_social_link_svg( $uri ) {
+ static $regex_map; // Only compute regex map once, for performance.
+ if ( ! isset( $regex_map ) ) {
+ $regex_map = array();
+ $map = &self::$social_icons_map; // Use reference instead of copy, to save memory.
+ foreach ( array_keys( self::$social_icons ) as $icon ) {
+ $domains = array_key_exists( $icon, $map ) ? $map[ $icon ] : array( sprintf( '%s.com', $icon ) );
+ $domains = array_map( 'trim', $domains ); // Remove leading/trailing spaces, to prevent regex from failing to match.
+ $domains = array_map( 'preg_quote', $domains );
+ $regex_map[ $icon ] = sprintf( '/(%s)/i', implode( '|', $domains ) );
+ }
+ }
+ foreach ( $regex_map as $icon => $regex ) {
+ if ( preg_match( $regex, $uri ) ) {
+ return twentytwenty_get_theme_svg( $icon, 'social' );
+ }
+ }
+ return null;
+ }
+
+ /**
+ * ICON STORAGE
+ * Store the code for all SVGs in an array.
+ *
+ * @var array
+ */
+ public static $ui_icons = array(
+ 'arrow-down' => '
+
+ ',
+ 'arrow-down-circled' => '
+
+ ',
+ 'bookmark' => '
+
+ ',
+ 'calendar' => '
+
+ ',
+ 'chevron-down' => '
+
+ ',
+ 'comment' => '
+
+ ',
+ 'cross' => '
+
+ ',
+ 'ellipsis' => '
+
+ ',
+ 'edit' => '
+
+ ',
+ 'folder' => '
+
+ ',
+ 'link' => '
+
+ ',
+ 'search' => '
+
+ ',
+ 'tag' => '
+
+ ',
+ 'user' => '
+
+ ',
+ );
+
+ /**
+ * Social Icons – domain mappings.
+ *
+ * By default, each Icon ID is matched against a .com TLD. To override this behavior,
+ * specify all the domains it covers (including the .com TLD too, if applicable).
+ *
+ * @var array
+ */
+ public static $social_icons_map = array(
+ 'amazon' => array(
+ 'amazon.com',
+ 'amazon.cn',
+ 'amazon.in',
+ 'amazon.fr',
+ 'amazon.de',
+ 'amazon.it',
+ 'amazon.nl',
+ 'amazon.es',
+ 'amazon.co',
+ 'amazon.ca',
+ ),
+ 'behance' => array(
+ 'behance.net',
+ ),
+ 'codepen' => array(
+ 'codepen.io',
+ ),
+ 'facebook' => array(
+ 'facebook.com',
+ 'fb.me',
+ ),
+ 'feed' => array(
+ 'feed',
+ ),
+ 'lastfm' => array(
+ 'last.fm',
+ ),
+ 'mail' => array(
+ 'mailto:',
+ ),
+ 'pocket' => array(
+ 'getpocket.com',
+ ),
+ 'twitch' => array(
+ 'twitch.tv',
+ ),
+ 'wordpress' => array(
+ 'wordpress.com',
+ 'wordpress.org',
+ ),
+ );
+
+ /**
+ * Social Icons – svg sources.
+ *
+ * @var array
+ */
+ public static $social_icons = array(
+ '500px' => ' ',
+
+ 'amazon' => ' ',
+
+ 'bandcamp' => ' ',
+
+ 'behance' => ' ',
+
+ 'codepen' => ' ',
+
+ 'deviantart' => ' ',
+
+ 'dribbble' => ' ',
+
+ 'dropbox' => ' ',
+
+ 'etsy' => ' ',
+
+ 'facebook' => ' ',
+
+ 'feed' => ' ',
+
+ 'flickr' => ' ',
+
+ 'foursquare' => ' ',
+
+ 'goodreads' => ' ',
+
+ 'google' => ' ',
+
+ 'github' => ' ',
+
+ 'instagram' => ' ',
+
+ 'lastfm' => ' ',
+
+ 'linkedin' => ' ',
+
+ 'mail' => ' ',
+
+ 'mastodon' => ' ',
+
+ 'medium' => ' ',
+
+ 'meetup' => ' ',
+
+ 'pinterest' => ' ',
+
+ 'pocket' => ' ',
+
+ 'reddit' => ' ',
+
+ 'skype' => ' ',
+
+ 'snapchat' => ' ',
+
+ 'soundcloud' => ' ',
+
+ 'spotify' => ' ',
+
+ 'tumblr' => ' ',
+
+ 'twitch' => ' ',
+
+ 'twitter' => ' ',
+
+ 'vimeo' => ' ',
+
+ 'vk' => ' ',
+
+ 'whatsapp' => '
+ ',
+
+ // phpcs:disable WordPress.WP.CapitalPDangit.Misspelled
+ 'wordpress' => ' ',
+
+ 'yelp' => ' ',
+
+ 'youtube' => ' ',
+
+ );
+
+ }
+}
diff --git a/wp-content/themes/twentytwenty/classes/class-twentytwenty-walker-comment.php b/wp-content/themes/twentytwenty/classes/class-twentytwenty-walker-comment.php
new file mode 100644
index 000000000..6422a8041
--- /dev/null
+++ b/wp-content/themes/twentytwenty/classes/class-twentytwenty-walker-comment.php
@@ -0,0 +1,142 @@
+
+ < id="comment-" has_children ? 'parent' : '', $comment ); ?>>
+
+
+
+
+
+ 'div-comment',
+ 'depth' => $depth,
+ 'max_depth' => $args['max_depth'],
+ 'before' => '',
+ )
+ )
+ );
+
+ $by_post_author = twentytwenty_is_comment_by_post_author( $comment );
+
+ if ( $comment_reply_link || $by_post_author ) {
+ ?>
+
+
+
+
+
+
+
+ ID );
+
+ if ( isset( $args['pages_with_children'][ $page->ID ] ) ) {
+ $css_class[] = 'page_item_has_children';
+ }
+
+ if ( ! empty( $current_page ) ) {
+ $_current_page = get_post( $current_page );
+ if ( $_current_page && in_array( $page->ID, $_current_page->ancestors, true ) ) {
+ $css_class[] = 'current_page_ancestor';
+ }
+ if ( $page->ID === $current_page ) {
+ $css_class[] = 'current_page_item';
+ } elseif ( $_current_page && $page->ID === $_current_page->post_parent ) {
+ $css_class[] = 'current_page_parent';
+ }
+ } elseif ( get_option( 'page_for_posts' ) === $page->ID ) {
+ $css_class[] = 'current_page_parent';
+ }
+
+ /** This filter is documented in wp-includes/class-walker-page.php */
+ $css_classes = implode( ' ', apply_filters( 'page_css_class', $css_class, $page, $depth, $args, $current_page ) );
+ $css_classes = $css_classes ? ' class="' . esc_attr( $css_classes ) . '"' : '';
+
+ if ( '' === $page->post_title ) {
+ /* translators: %d: ID of a post. */
+ $page->post_title = sprintf( __( '#%d (no title)', 'twentytwenty' ), $page->ID );
+ }
+
+ $args['link_before'] = empty( $args['link_before'] ) ? '' : $args['link_before'];
+ $args['link_after'] = empty( $args['link_after'] ) ? '' : $args['link_after'];
+
+ $atts = array();
+ $atts['href'] = get_permalink( $page->ID );
+ $atts['aria-current'] = ( $page->ID === $current_page ) ? 'page' : '';
+
+ /** This filter is documented in wp-includes/class-walker-page.php */
+ $atts = apply_filters( 'page_menu_link_attributes', $atts, $page, $depth, $args, $current_page );
+
+ $attributes = '';
+ foreach ( $atts as $attr => $value ) {
+ if ( ! empty( $value ) ) {
+ $value = ( 'href' === $attr ) ? esc_url( $value ) : esc_attr( $value );
+ $attributes .= ' ' . $attr . '="' . $value . '"';
+ }
+ }
+
+ $args['list_item_before'] = '';
+ $args['list_item_after'] = '';
+
+ // Wrap the link in a div and append a sub menu toggle.
+ if ( isset( $args['show_toggles'] ) && true === $args['show_toggles'] ) {
+ // Wrap the menu item link contents in a div, used for positioning.
+ $args['list_item_before'] = '';
+ $args['list_item_after'] = '';
+
+ // Add a toggle to items with children.
+ if ( isset( $args['pages_with_children'][ $page->ID ] ) ) {
+
+ $toggle_target_string = '.menu-modal .page-item-' . $page->ID . ' > ul';
+ $toggle_duration = twentytwenty_toggle_duration();
+
+ // Add the sub menu toggle.
+ $args['list_item_after'] .= '';
+
+ }
+
+ // Close the wrapper.
+ $args['list_item_after'] .= '
';
+ }
+
+ // Add icons to menu items with children.
+ if ( isset( $args['show_sub_menu_icons'] ) && true === $args['show_sub_menu_icons'] ) {
+ if ( isset( $args['pages_with_children'][ $page->ID ] ) ) {
+ $args['list_item_after'] = ' ';
+ }
+ }
+
+ $output .= $indent . sprintf(
+ '%s%s%s%s %s',
+ $css_classes,
+ $args['list_item_before'],
+ $attributes,
+ $args['link_before'],
+ /** This filter is documented in wp-includes/post-template.php */
+ apply_filters( 'the_title', $page->post_title, $page->ID ),
+ $args['link_after'],
+ $args['list_item_after']
+ );
+
+ if ( ! empty( $args['show_date'] ) ) {
+ if ( 'modified' === $args['show_date'] ) {
+ $time = $page->post_modified;
+ } else {
+ $time = $page->post_date;
+ }
+
+ $date_format = empty( $args['date_format'] ) ? '' : $args['date_format'];
+ $output .= ' ' . mysql2date( $date_format, $time );
+ }
+ }
+ }
+}
diff --git a/wp-content/themes/twentytwenty/comments.php b/wp-content/themes/twentytwenty/comments.php
new file mode 100644
index 000000000..4aab4c70f
--- /dev/null
+++ b/wp-content/themes/twentytwenty/comments.php
@@ -0,0 +1,132 @@
+
+
+
+
+ ';
+ }
+
+ comment_form(
+ array(
+ 'class_form' => 'section-inner thin max-percentage',
+ 'title_reply_before' => '',
+ )
+ );
+
+} elseif ( is_single() ) {
+
+ if ( $comments ) {
+ echo ' ';
+ }
+
+ ?>
+
+
+
+
+
+
+
+
+
+