diff --git a/main/blocks.py b/main/blocks.py index 13d0aecff9e52d83b01e40b1aa373df08fd34b2b..10d1ef81ae6a3e4b5d274bb60136e974e96fb538 100644 --- a/main/blocks.py +++ b/main/blocks.py @@ -51,7 +51,6 @@ class CardLinkBlock(CardLinkBlockMixin): ) class Meta: - template = "main/blocks/card_link_block.html" icon = "link" label = "Karta s odkazem" @@ -68,16 +67,6 @@ class CTAMixin(StructBlock): class ProgramGroupBlockMixin(StructBlock): title = CharBlock(label="Titulek části programu") - slug = CharBlock( - label="Slug části programu", - required=False, - help_text="Není třeba vyplňovat, bude automaticky vyplněno", - ) - perex = RichTextBlock( - label="Perex části programu", - required=False, - features=PROGRAM_RICH_TEXT_FEATURES, - ) # point_list = ListBlock(ProgramBlock(), label="Jednotlivé články programu") class Meta: @@ -133,6 +122,13 @@ class NewsBlock(StructBlock): label = "Novinky" +class EuroparlNewsBlock(StructBlock): + class Meta: + template = "main/includes/organisms/articles/europarl_articles_section.html" + icon = "doc-full-inverse" + label = "Novinky z Eurovoleb" + + class PeopleGroupBlock(StructBlock): title = CharBlock(label="Titulek") slug = CharBlock( @@ -261,7 +257,7 @@ class PersonContactBlock(StructBlock): label = "Osoba s volitelnou pozicí" -class PersonContactBoxBlock(CTAMixin, StructBlock): +class PersonContactBoxBlock(StructBlock): title = CharBlock(label="Titulek") image = ImageChooserBlock(label="Ikona") subtitle = CharBlock(label="Podtitulek") @@ -287,7 +283,7 @@ class OtherLinksBlock(StructBlock): class Meta: icon = "link" - label = "Ostatní odkazy" + label = "Odkazy" template = "main/blocks/article_quote_block.html" @@ -311,18 +307,32 @@ class ArticleQuoteBlock(StructBlock): class Meta: icon = "user" label = "Blok citace" - template = "main/blocks/article_quote_block.html" + template = "main/includes/legacy/article_quote_block.html" -class ArticleImageBlock(StructBlock): +class ArticleImageMixin(StructBlock): image = ImageChooserBlock(label="Obrázek") - href = URLBlock(label="Odkaz k textu") - text = CharBlock(label="Text") + image_source = CharBlock( + label="Zdroj obrázku", + help_text="Např. 'europoslankyně Markéta Gregorová'", + required=False + ) + + text = RichTextBlock(label="Text") + + +class ArticleLeftImageBlock(ArticleImageMixin): + class Meta: + icon = "image" + label = "Text s obrázkem vlevo" + template = "main/includes/molecules/articles/article_richtext_content_with_left_image.html" + +class ArticleRightImageBlock(ArticleImageMixin): class Meta: icon = "image" - label = "Obrázek s textem a odkazem" - template = "main/blocks/article_image_block.html" + label = "Text s obrázkem vpravo" + template = "main/includes/molecules/articles/article_richtext_content_with_right_image.html" class ArticleDownloadBlock(StructBlock): @@ -331,7 +341,7 @@ class ArticleDownloadBlock(StructBlock): class Meta: icon = "user" label = "Blok stáhnutelného dokumentu" - template = "main/blocks/article_download_block.html" + template = "main/includes/molecules/blocks/article_download_block.html" class TwoTextColumnBlock(StructBlock): diff --git a/main/migrations/0067_alter_mainhomepage_menu_and_more.py b/main/migrations/0067_alter_mainhomepage_menu_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..e7256296f9871e3e697138eedf956c1e3944d87d --- /dev/null +++ b/main/migrations/0067_alter_mainhomepage_menu_and_more.py @@ -0,0 +1,30 @@ +# Generated by Django 4.1.10 on 2023-12-12 11:35 + +from django.db import migrations +import wagtail.blocks +import wagtail.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0066_alter_mainhomepage_menu'), + ] + + operations = [ + migrations.AlterField( + model_name='mainhomepage', + name='menu', + field=wagtail.fields.StreamField([('menu_item', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text='Pokud není odkazovaná stránka na Majáku, použij možnost zadání samotné adresy níže.', label='Titulek', required=True)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))]))], blank=True, use_json_field=True, verbose_name='Položky'), + ), + migrations.AlterField( + model_name='mainhomepage', + name='social_links', + field=wagtail.fields.StreamField([('social_links', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Název')), ('link', wagtail.blocks.URLBlock(label='Odkaz')), ('icon', wagtail.blocks.CharBlock(help_text='Seznam ikon - https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons <br/>Název ikony zadejte bez tečky na začátku', label='Ikona'))]))], blank=True, use_json_field=True, verbose_name='Odkazy na sociální sítě'), + ), + migrations.AlterField( + model_name='mainpersonpage', + name='social_links', + field=wagtail.fields.StreamField([('social_links', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Název')), ('link', wagtail.blocks.URLBlock(label='Odkaz')), ('icon', wagtail.blocks.CharBlock(help_text='Seznam ikon - https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons <br/>Název ikony zadejte bez tečky na začátku', label='Ikona'))]))], blank=True, use_json_field=True, verbose_name='Odkazy na sociální sítě'), + ), + ] diff --git a/main/migrations/0068_alter_mainhomepage_footer_other_links.py b/main/migrations/0068_alter_mainhomepage_footer_other_links.py new file mode 100644 index 0000000000000000000000000000000000000000..9ec35fbdc5640456bde6df2d045f611d696febba --- /dev/null +++ b/main/migrations/0068_alter_mainhomepage_footer_other_links.py @@ -0,0 +1,21 @@ +# Generated by Django 4.1.10 on 2023-12-12 19:02 + +from django.db import migrations +import main.blocks +import wagtail.blocks +import wagtail.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0067_alter_mainhomepage_menu_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='mainhomepage', + name='footer_other_links', + field=wagtail.fields.StreamField([('other_links', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek')), ('list', wagtail.blocks.ListBlock(main.blocks.LinkBlock, label='Seznam odkazů s titulkem'))]))], blank=True, use_json_field=True, verbose_name='Odkazy v zápatí webu'), + ), + ] diff --git a/main/migrations/0069_remove_mainarticlepage_article_type.py b/main/migrations/0069_remove_mainarticlepage_article_type.py new file mode 100644 index 0000000000000000000000000000000000000000..93721beb01d58cfce0d37a7f1b7647aca410f65e --- /dev/null +++ b/main/migrations/0069_remove_mainarticlepage_article_type.py @@ -0,0 +1,17 @@ +# Generated by Django 4.1.10 on 2023-12-12 20:23 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0068_alter_mainhomepage_footer_other_links'), + ] + + operations = [ + migrations.RemoveField( + model_name='mainarticlepage', + name='article_type', + ), + ] diff --git a/main/migrations/0070_remove_mainarticlespage_perex.py b/main/migrations/0070_remove_mainarticlespage_perex.py new file mode 100644 index 0000000000000000000000000000000000000000..3b321d696c412de58681df77c969e9b4599af99d --- /dev/null +++ b/main/migrations/0070_remove_mainarticlespage_perex.py @@ -0,0 +1,17 @@ +# Generated by Django 4.1.10 on 2023-12-12 20:25 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0069_remove_mainarticlepage_article_type'), + ] + + operations = [ + migrations.RemoveField( + model_name='mainarticlespage', + name='perex', + ), + ] diff --git a/main/migrations/0071_remove_mainpeoplepage_perex_and_more.py b/main/migrations/0071_remove_mainpeoplepage_perex_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..e07b81ca56c607d54757a0d00d9f1aefa2601869 --- /dev/null +++ b/main/migrations/0071_remove_mainpeoplepage_perex_and_more.py @@ -0,0 +1,30 @@ +# Generated by Django 4.1.10 on 2023-12-12 22:44 + +from django.db import migrations +import wagtail.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0070_remove_mainarticlespage_perex'), + ] + + operations = [ + migrations.RemoveField( + model_name='mainpeoplepage', + name='perex', + ), + migrations.AddField( + model_name='mainpeoplepage', + name='perex_col_1', + field=wagtail.fields.RichTextField(default='', verbose_name='Perex - první sloupec'), + preserve_default=False, + ), + migrations.AddField( + model_name='mainpeoplepage', + name='perex_col_2', + field=wagtail.fields.RichTextField(default='', verbose_name='Perex - druhý sloupec'), + preserve_default=False, + ), + ] diff --git a/main/migrations/0072_alter_mainarticlepage_content.py b/main/migrations/0072_alter_mainarticlepage_content.py new file mode 100644 index 0000000000000000000000000000000000000000..b085375118fbc500c91ed55d5c7007c7aaae09e8 --- /dev/null +++ b/main/migrations/0072_alter_mainarticlepage_content.py @@ -0,0 +1,22 @@ +# Generated by Django 4.1.10 on 2023-12-13 20:05 + +from django.db import migrations +import wagtail.blocks +import wagtail.documents.blocks +import wagtail.fields +import wagtail.images.blocks + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0071_remove_mainpeoplepage_perex_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='mainarticlepage', + name='content', + field=wagtail.fields.StreamField([('text', wagtail.blocks.RichTextBlock(template='main/includes/atoms/text/prose_richtext.html')), ('quote', wagtail.blocks.StructBlock([('quote', wagtail.blocks.CharBlock(label='Citace')), ('autor_name', wagtail.blocks.CharBlock(label='Jméno autora'))])), ('download', wagtail.blocks.StructBlock([('file', wagtail.documents.blocks.DocumentChooserBlock(label='Stáhnutelný soubor'))])), ('image_left', wagtail.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek')), ('image_source', wagtail.blocks.CharBlock(help_text="Např. 'europoslankyně Markéta Gregorová'", label='Zdroj obrázku')), ('href', wagtail.blocks.URLBlock(label='Odkaz k textu')), ('text', wagtail.blocks.RichTextBlock(label='Text'))])), ('image_right', wagtail.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek')), ('image_source', wagtail.blocks.CharBlock(help_text="Např. 'europoslankyně Markéta Gregorová'", label='Zdroj obrázku')), ('href', wagtail.blocks.URLBlock(label='Odkaz k textu')), ('text', wagtail.blocks.RichTextBlock(label='Text'))]))], blank=True, use_json_field=True, verbose_name='Článek'), + ), + ] diff --git a/main/migrations/0073_alter_mainarticlepage_content_and_more.py b/main/migrations/0073_alter_mainarticlepage_content_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..1770f800e38b0c03e7d822b8c9f3f37e8729c4e8 --- /dev/null +++ b/main/migrations/0073_alter_mainarticlepage_content_and_more.py @@ -0,0 +1,31 @@ +# Generated by Django 4.1.10 on 2023-12-13 22:27 + +from django.db import migrations, models +import wagtail.blocks +import wagtail.documents.blocks +import wagtail.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0072_alter_mainarticlepage_content'), + ] + + operations = [ + migrations.AlterField( + model_name='mainarticlepage', + name='content', + field=wagtail.fields.StreamField([('text', wagtail.blocks.RichTextBlock(template='main/includes/atoms/text/prose_richtext.html')), ('quote', wagtail.blocks.StructBlock([('quote', wagtail.blocks.CharBlock(label='Citace')), ('autor_name', wagtail.blocks.CharBlock(label='Jméno autora'))])), ('download', wagtail.blocks.StructBlock([('file', wagtail.documents.blocks.DocumentChooserBlock(label='Stáhnutelný soubor'))]))], blank=True, use_json_field=True, verbose_name='Článek'), + ), + migrations.AlterField( + model_name='mainpeoplepage', + name='perex_col_1', + field=models.TextField(verbose_name='Perex - první sloupec'), + ), + migrations.AlterField( + model_name='mainpeoplepage', + name='perex_col_2', + field=models.TextField(verbose_name='Perex - druhý sloupec'), + ), + ] diff --git a/main/migrations/0074_mainpersonpage_primary_group.py b/main/migrations/0074_mainpersonpage_primary_group.py new file mode 100644 index 0000000000000000000000000000000000000000..8d360854fb351caeef9b33814cd0353aca654e35 --- /dev/null +++ b/main/migrations/0074_mainpersonpage_primary_group.py @@ -0,0 +1,18 @@ +# Generated by Django 4.1.10 on 2023-12-14 16:42 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0073_alter_mainarticlepage_content_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='mainpersonpage', + name='primary_group', + field=models.CharField(blank=True, help_text="např. 'Europarlament' nebo 'Sněmovna'", max_length=32, null=True, verbose_name='Kategorie'), + ), + ] diff --git a/main/migrations/0075_rename_people_mainpersonpage_related_people.py b/main/migrations/0075_rename_people_mainpersonpage_related_people.py new file mode 100644 index 0000000000000000000000000000000000000000..e57642f32c4541328c1a40e1eae56c57e01924a1 --- /dev/null +++ b/main/migrations/0075_rename_people_mainpersonpage_related_people.py @@ -0,0 +1,18 @@ +# Generated by Django 4.1.10 on 2023-12-14 17:55 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0074_mainpersonpage_primary_group'), + ] + + operations = [ + migrations.RenameField( + model_name='mainpersonpage', + old_name='people', + new_name='related_people', + ), + ] diff --git a/main/migrations/0076_remove_mainarticlepage_is_black.py b/main/migrations/0076_remove_mainarticlepage_is_black.py new file mode 100644 index 0000000000000000000000000000000000000000..0603085e7f12de797468d9808a13029198c7f499 --- /dev/null +++ b/main/migrations/0076_remove_mainarticlepage_is_black.py @@ -0,0 +1,17 @@ +# Generated by Django 4.1.10 on 2023-12-14 17:59 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0075_rename_people_mainpersonpage_related_people'), + ] + + operations = [ + migrations.RemoveField( + model_name='mainarticlepage', + name='is_black', + ), + ] diff --git a/main/migrations/0077_alter_mainarticlepage_image.py b/main/migrations/0077_alter_mainarticlepage_image.py new file mode 100644 index 0000000000000000000000000000000000000000..a9111c1b5d2a333db98671b2790bdc0de5304a00 --- /dev/null +++ b/main/migrations/0077_alter_mainarticlepage_image.py @@ -0,0 +1,20 @@ +# Generated by Django 4.1.10 on 2023-12-14 18:08 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('wagtailimages', '0025_alter_image_file_alter_rendition_file'), + ('main', '0076_remove_mainarticlepage_is_black'), + ] + + operations = [ + migrations.AlterField( + model_name='mainarticlepage', + name='image', + field=models.ForeignKey(blank=True, help_text='Ukazuje se v kartách, které na článek odkazují. Např. na hlavní stránce a stránkách osob.', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='wagtailimages.image', verbose_name='Obrázek'), + ), + ] diff --git a/main/migrations/0078_alter_mainarticlepage_image.py b/main/migrations/0078_alter_mainarticlepage_image.py new file mode 100644 index 0000000000000000000000000000000000000000..e98b616d02e303bde26cab6c4c2c69505631727b --- /dev/null +++ b/main/migrations/0078_alter_mainarticlepage_image.py @@ -0,0 +1,20 @@ +# Generated by Django 4.1.10 on 2023-12-14 18:16 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('wagtailimages', '0025_alter_image_file_alter_rendition_file'), + ('main', '0077_alter_mainarticlepage_image'), + ] + + operations = [ + migrations.AlterField( + model_name='mainarticlepage', + name='image', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='wagtailimages.image', verbose_name='obrázek'), + ), + ] diff --git a/main/migrations/0079_remove_mainpersonpage_related_people_and_more.py b/main/migrations/0079_remove_mainpersonpage_related_people_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..c9133781840dc903a84e97bf60f11e99837fd495 --- /dev/null +++ b/main/migrations/0079_remove_mainpersonpage_related_people_and_more.py @@ -0,0 +1,22 @@ +# Generated by Django 4.1.10 on 2023-12-14 19:36 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0078_alter_mainarticlepage_image'), + ] + + operations = [ + migrations.RemoveField( + model_name='mainpersonpage', + name='related_people', + ), + migrations.AddField( + model_name='mainpersonpage', + name='related_people', + field=models.ManyToManyField(to='main.mainpersonpage', verbose_name='Další lidé'), + ), + ] diff --git a/main/migrations/0080_remove_mainpersonpage_related_people_and_more.py b/main/migrations/0080_remove_mainpersonpage_related_people_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..c2e1caa68cbc87a684ca4fa8ba04e750dcf42db5 --- /dev/null +++ b/main/migrations/0080_remove_mainpersonpage_related_people_and_more.py @@ -0,0 +1,24 @@ +# Generated by Django 4.1.10 on 2023-12-14 20:25 + +from django.db import migrations +import wagtail.blocks +import wagtail.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0079_remove_mainpersonpage_related_people_and_more'), + ] + + operations = [ + migrations.RemoveField( + model_name='mainpersonpage', + name='related_people', + ), + migrations.AddField( + model_name='mainpersonpage', + name='related_people', + field=wagtail.fields.StreamField([('person', wagtail.blocks.PageChooserBlock(label='Detail osoby', page_type=['main.MainPersonPage']))], blank=True, use_json_field=True, verbose_name='Další lidé'), + ), + ] diff --git a/main/migrations/0081_remove_mainarticlepage_region_and_more.py b/main/migrations/0081_remove_mainarticlepage_region_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..22708bd0eaa2ee6a7d258821aaa16d6788c5e0e9 --- /dev/null +++ b/main/migrations/0081_remove_mainarticlepage_region_and_more.py @@ -0,0 +1,26 @@ +# Generated by Django 4.1.10 on 2023-12-14 20:54 + +from django.db import migrations +import main.blocks +import wagtail.blocks +import wagtail.fields +import wagtail.images.blocks + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0080_remove_mainpersonpage_related_people_and_more'), + ] + + operations = [ + migrations.RemoveField( + model_name='mainarticlepage', + name='region', + ), + migrations.AlterField( + model_name='mainhomepage', + name='content', + field=wagtail.fields.StreamField([('carousel', wagtail.blocks.StructBlock([('line_1', wagtail.blocks.TextBlock(label='První řádek')), ('line_2', wagtail.blocks.TextBlock(label='Druhý řádek'))])), ('news', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text='Nejnovější články se načtou automaticky', label='Titulek')), ('description', wagtail.blocks.TextBlock(label='Popis'))])), ('europarl_news', wagtail.blocks.StructBlock([])), ('people', wagtail.blocks.StructBlock([('title_line_1', wagtail.blocks.CharBlock(label='První řádek titulku')), ('title_line_2', wagtail.blocks.CharBlock(label='Druhý řádek titulku')), ('description', wagtail.blocks.TextBlock(label='Popis')), ('list', wagtail.blocks.ListBlock(main.blocks.BoxBlock, label='Boxíky'))])), ('regions', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text='Články pro regiony se načtou automaticky', label='Titulek'))])), ('boxes', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Nadpis')), ('list', wagtail.blocks.ListBlock(main.blocks.BoxBlock, label='Boxíky')), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek pozadí', required=False))]))], blank=True, use_json_field=True, verbose_name='Hlavní obsah'), + ), + ] diff --git a/main/migrations/0082_mainhomepage_europarl_section_tag_and_more.py b/main/migrations/0082_mainhomepage_europarl_section_tag_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..7545494b07374d1c3bc6e105be0b42b001cd3c51 --- /dev/null +++ b/main/migrations/0082_mainhomepage_europarl_section_tag_and_more.py @@ -0,0 +1,38 @@ +# Generated by Django 4.1.10 on 2023-12-14 21:51 + +from django.db import migrations, models +import django.db.models.deletion +import modelcluster.contrib.taggit +import modelcluster.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('taggit', '0005_auto_20220424_2025'), + ('main', '0081_remove_mainarticlepage_region_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='mainhomepage', + name='europarl_section_tag', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='taggit.tag', verbose_name='Tag pro rozdělení - Eurovolby'), + ), + migrations.CreateModel( + name='MainArticleSectionTag', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('content_object', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='section_tagged_items', to='main.mainarticlepage')), + ('tag', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_items', to='taggit.tag')), + ], + options={ + 'abstract': False, + }, + ), + migrations.AddField( + model_name='mainarticlepage', + name='section_tags', + field=modelcluster.contrib.taggit.ClusterTaggableManager(blank=True, help_text='Používá se například pro oddělení článků do sekce pro eurovolby. Pokud chceš, aby se články zobrazovaly pouze na hlavní stránce, nepřidávej žádné tagy.', through='main.MainArticleSectionTag', to='taggit.Tag', verbose_name='Tagy pro rozdělení do sekcí'), + ), + ] diff --git a/main/migrations/0083_remove_mainprogrampage_perex_and_more.py b/main/migrations/0083_remove_mainprogrampage_perex_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..ca25e4af28fc6e0bbfebc3d93d582131abe66181 --- /dev/null +++ b/main/migrations/0083_remove_mainprogrampage_perex_and_more.py @@ -0,0 +1,25 @@ +# Generated by Django 4.1.10 on 2023-12-15 12:24 + +from django.db import migrations +import wagtail.blocks +import wagtail.fields +import wagtail.images.blocks + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0082_mainhomepage_europarl_section_tag_and_more'), + ] + + operations = [ + migrations.RemoveField( + model_name='mainprogrampage', + name='perex', + ), + migrations.AlterField( + model_name='maincontactpage', + name='contact_boxes', + field=wagtail.fields.StreamField([('item', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek')), ('image', wagtail.images.blocks.ImageChooserBlock(label='Ikona')), ('subtitle', wagtail.blocks.CharBlock(label='Podtitulek'))]))], blank=True, use_json_field=True, verbose_name='Kontaktní boxy'), + ), + ] diff --git a/main/migrations/0084_alter_mainprogrampage_program.py b/main/migrations/0084_alter_mainprogrampage_program.py new file mode 100644 index 0000000000000000000000000000000000000000..f89e96f17bca59aa2477067d77aafe476e5a42c4 --- /dev/null +++ b/main/migrations/0084_alter_mainprogrampage_program.py @@ -0,0 +1,21 @@ +# Generated by Django 4.1.10 on 2023-12-15 13:54 + +from django.db import migrations +import wagtail.blocks +import wagtail.fields +import wagtail.images.blocks + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0083_remove_mainprogrampage_perex_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='mainprogrampage', + name='program', + field=wagtail.fields.StreamField([('program_group', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek části programu')), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('url', wagtail.blocks.URLBlock(label='Odkaz pokrývající celou tuto část', required=False)), ('icon', wagtail.images.blocks.ImageChooserBlock(label='Ikona', required=False)), ('title', wagtail.blocks.CharBlock(label='Titulek článku programu')), ('text', wagtail.blocks.RichTextBlock(features=['h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Obsah'))]), label='Jednotlivé články programu'))])), ('program_group_crossroad', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek části programu')), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek')), ('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('text', wagtail.blocks.RichTextBlock(label='Krátký text pod nadpisem', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', page_type=['main.MainArticlesPage', 'main.MainArticlePage', 'main.MainProgramPage', 'main.MainPeoplePage', 'main.MainPersonPage', 'main.MainSimplePage', 'main.MainContactPage', 'main.MainCrossroadPage'], required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))]), label='Karty programu'))])), ('program_group_popout', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek části programu')), ('categories', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Název')), ('icon', wagtail.images.blocks.ImageChooserBlock(label='Ikona', required=False)), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek vyskakovacího bloku')), ('content', wagtail.blocks.RichTextBlock(features=['h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Obsah'))]), label='Jednotlivé bloky programu'))]), label='Kategorie programu'))]))], blank=True, use_json_field=True, verbose_name='Program'), + ), + ] diff --git a/main/migrations/0085_mainarticlesectiontagged_sectiontag_and_more.py b/main/migrations/0085_mainarticlesectiontagged_sectiontag_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..e72bb82137dc0d12baec5bd3af996de2eb4439d9 --- /dev/null +++ b/main/migrations/0085_mainarticlesectiontagged_sectiontag_and_more.py @@ -0,0 +1,53 @@ +# Generated by Django 4.1.10 on 2023-12-15 15:37 + +from django.db import migrations, models +import django.db.models.deletion +import modelcluster.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0084_alter_mainprogrampage_program'), + ] + + operations = [ + migrations.CreateModel( + name='MainArticleSectionTagged', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='SectionTag', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100, unique=True, verbose_name='name')), + ('slug', models.SlugField(allow_unicode=True, max_length=100, unique=True, verbose_name='slug')), + ], + options={ + 'verbose_name': 'Tag pro rozdělení do sekcí', + 'verbose_name_plural': 'Tagy pro rozdělení do sekcí', + }, + ), + migrations.RemoveField( + model_name='mainarticlepage', + name='section_tags', + ), + migrations.DeleteModel( + name='MainArticleSectionTag', + ), + migrations.AddField( + model_name='mainarticlesectiontagged', + name='content_object', + field=modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='section_tagged_items', to='main.mainarticlepage'), + ), + migrations.AddField( + model_name='mainarticlesectiontagged', + name='tag', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_items', to='main.sectiontag'), + ), + ] diff --git a/main/migrations/0086_mainarticlepage_section_tags.py b/main/migrations/0086_mainarticlepage_section_tags.py new file mode 100644 index 0000000000000000000000000000000000000000..6ef93631a0f801598b3e053f1ecdfcb101f33665 --- /dev/null +++ b/main/migrations/0086_mainarticlepage_section_tags.py @@ -0,0 +1,19 @@ +# Generated by Django 4.1.10 on 2023-12-15 15:38 + +from django.db import migrations +import modelcluster.contrib.taggit + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0085_mainarticlesectiontagged_sectiontag_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='mainarticlepage', + name='section_tags', + field=modelcluster.contrib.taggit.ClusterTaggableManager(blank=True, help_text='Používá se například pro oddělení článků do sekce pro eurovolby. Pokud chceš, aby se články zobrazovaly pouze na hlavní stránce, nepřidávej žádné tagy.', through='main.MainArticleSectionTagged', to='main.SectionTag', verbose_name='Tagy pro rozdělení do sekcí'), + ), + ] diff --git a/main/migrations/0087_mainhomepage_main_section_tag.py b/main/migrations/0087_mainhomepage_main_section_tag.py new file mode 100644 index 0000000000000000000000000000000000000000..ddd23c338a7ca5667810fc07a013b9dce862a582 --- /dev/null +++ b/main/migrations/0087_mainhomepage_main_section_tag.py @@ -0,0 +1,19 @@ +# Generated by Django 4.1.10 on 2023-12-15 15:48 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0086_mainarticlepage_section_tags'), + ] + + operations = [ + migrations.AddField( + model_name='mainhomepage', + name='main_section_tag', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='main.sectiontag', verbose_name='Tag pro rozdělení - Hlavní stránka'), + ), + ] diff --git a/main/migrations/0088_alter_mainhomepage_europarl_section_tag.py b/main/migrations/0088_alter_mainhomepage_europarl_section_tag.py new file mode 100644 index 0000000000000000000000000000000000000000..766c58c43314cd8f675d1f7eaec2e6aed75c8725 --- /dev/null +++ b/main/migrations/0088_alter_mainhomepage_europarl_section_tag.py @@ -0,0 +1,19 @@ +# Generated by Django 4.1.10 on 2023-12-15 16:19 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0087_mainhomepage_main_section_tag'), + ] + + operations = [ + migrations.AlterField( + model_name='mainhomepage', + name='europarl_section_tag', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='main.sectiontag', verbose_name='Tag pro rozdělení - Eurovolby'), + ), + ] diff --git a/main/models.py b/main/models.py index 2ebfc09487125db0e2df33a4e91bd4d8fd95f24a..9b7d42997cf28d0916b9697140929f9fa8c45b13 100644 --- a/main/models.py +++ b/main/models.py @@ -10,7 +10,7 @@ from django.shortcuts import render from django.utils import timezone from modelcluster.contrib.taggit import ClusterTaggableManager from modelcluster.fields import ParentalKey -from taggit.models import TaggedItemBase +from taggit.models import TaggedItemBase, TagBase from wagtail.admin.panels import ( FieldPanel, HelpPanel, @@ -19,7 +19,7 @@ from wagtail.admin.panels import ( PageChooserPanel, TabbedInterface, ) -from wagtail.blocks import RichTextBlock +from wagtail.blocks import RichTextBlock, PageChooserBlock from wagtail.contrib.routable_page.models import RoutablePageMixin, route from wagtail.fields import RichTextField, StreamField from wagtail.models import Page @@ -27,7 +27,6 @@ from wagtail.search import index from wagtailmetadata.models import MetadataPageMixin from calendar_utils.models import CalendarMixin -from elections2021.constants import REGION_CHOICES # pozor, import ze sousedního modulu from shared.forms import SubscribeForm from shared.models import ( # MenuMixin, ArticleMixin, @@ -47,11 +46,6 @@ from .forms import JekyllImportForm from .menu import MenuMixin -class ARTICLE_TYPES(models.IntegerChoices): - WORK_TIMELINE = 1, "Článek na timeline Piráti pracují" - PRESS_RELEASE = 2, "Tisková zpráva" - - class MainHomePage( MenuMixin, RoutablePageMixin, @@ -93,6 +87,7 @@ class MainHomePage( [ ("carousel", blocks.HomePageCarouseSlideBlock()), ("news", blocks.NewsBlock()), + ("europarl_news", blocks.EuroparlNewsBlock()), ("people", blocks.PeopleOverviewBlock()), ("regions", blocks.RegionsBlock()), ("boxes", blocks.BoxesBlock()), @@ -107,7 +102,7 @@ class MainHomePage( [ ("other_links", blocks.OtherLinksBlock()), ], - verbose_name="Bloky dalších odkazů v zápatí webu", + verbose_name="Odkazy v zápatí webu", blank=True, use_json_field=True, ) @@ -129,6 +124,24 @@ class MainHomePage( null=True, ) + main_section_tag = models.ForeignKey( + "main.SectionTag", + verbose_name="Tag pro rozdělení - Hlavní stránka", + on_delete=models.PROTECT, + related_name="+", + blank=True, + null=True, + ) + + europarl_section_tag = models.ForeignKey( + "main.SectionTag", + verbose_name="Tag pro rozdělení - Eurovolby", + on_delete=models.PROTECT, + related_name="+", + blank=True, + null=True, + ) + matomo_id = models.IntegerField( "Matomo ID pro sledování návštěvnosti", blank=True, null=True ) @@ -158,6 +171,13 @@ class MainHomePage( FieldPanel("donation_page_text"), FieldPanel("social_links"), FieldPanel("matomo_id"), + MultiFieldPanel( + [ + FieldPanel("europarl_section_tag"), + FieldPanel("main_section_tag"), + ], + heading="Tagy" + ), ] ### EDIT HANDLERS @@ -202,17 +222,19 @@ class MainHomePage( def get_context(self, request, *args, **kwargs): context = super().get_context(request, args, kwargs) - context["regions"] = REGION_CHOICES - context["article_data_list"] = ( - MainArticlePage.objects.filter(region__isnull=False) + MainArticlePage.objects + .filter( + models.Q(section_tags__isnull=True) + | models.Q(section_tags=self.main_section_tag) + ) .live() .order_by("-date")[:3] ) articles_for_article_section = self.materialize_shared_articles_query( self.append_all_shared_articles_query( - MainArticlePage.objects.filter(article_type=ARTICLE_TYPES.PRESS_RELEASE) + MainArticlePage.objects.all() )[:8] ) context["article_main"] = ( @@ -234,11 +256,13 @@ class MainHomePage( region=request.GET.get("region", None) )[:3] context = {"article_data_list": sorted_article_qs[:3]} + data = { "html": render( request, "main/includes/small_article_preview.html", context ).content.decode("utf-8") } + return JsonResponse(data=data, safe=False) def serve(self, request, *args, **kwargs): @@ -261,6 +285,14 @@ class MainHomePage( def articles_page(self): return self._first_subpage_of_type(MainArticlesPage) + @property + def people_page(self): + return self._first_subpage_of_type(MainPeoplePage) + + @property + def contact_page(self): + return self._first_subpage_of_type(MainContactPage) + @property def root_page(self): return self @@ -322,7 +354,6 @@ class MainArticlesPage( ArticlesPageMixin, Page, ): - perex = models.TextField() last_import_log = models.TextField( "Výstup z posledního importu", null=True, blank=True ) @@ -355,7 +386,6 @@ class MainArticlesPage( ### PANELS content_panels = Page.content_panels + [ - FieldPanel("perex"), FieldPanel("shared_tags"), ] promote_panels = make_promote_panels() @@ -379,7 +409,7 @@ class MainArticlesPage( def get_article_data_list(self, months_back: int = 1): target_date_list = ( - MainArticlePage.objects.filter(article_type=ARTICLE_TYPES.WORK_TIMELINE) + MainArticlePage.objects .order_by("-date") .live() .values_list("date", flat=True) @@ -394,7 +424,6 @@ class MainArticlesPage( sorted_article_qs = ( MainArticlePage.objects.filter( date__gt=first_day_of_target_month, - article_type=ARTICLE_TYPES.WORK_TIMELINE, ) .live() .order_by("-date") @@ -404,16 +433,12 @@ class MainArticlesPage( current_month_data = self.get_empty_month_data(timezone.now().date()) - article_counter = 1 for article in sorted_article_qs: if article.date.month != current_month_data["month_number"]: article_data_list.append(current_month_data) # append completed month current_month_data = self.get_empty_month_data(article.date) - article_counter = 1 - current_column = "left_column" if article_counter % 2 else "right_column" - current_month_data[current_column].append(article) - article_counter += 1 + current_month_data["articles"].append(article) article_data_list.append(current_month_data) # last iteration @@ -425,12 +450,10 @@ class MainArticlesPage( if get_articles: article_timeline_list = self.get_article_data_list(1) ctx["article_timeline_list"] = article_timeline_list - ctx["show_next_timeline_articles"] = MainArticlePage.objects.filter( - article_type=ARTICLE_TYPES.WORK_TIMELINE - ).live().count() > len(article_timeline_list) + ctx["show_next_timeline_articles"] = MainArticlePage.objects.live().count() > len(article_timeline_list) article_list = self.append_all_shared_articles_query( - MainArticlePage.objects.filter(article_type=ARTICLE_TYPES.PRESS_RELEASE) + MainArticlePage.objects.all() ).order_by("-union_date", "union_title")[ :11 ] # dám LIMIT +1, abych věděl, jestli má cenu show_next @@ -439,43 +462,39 @@ class MainArticlesPage( ) ctx["show_next_article"] = len(article_list) > 10 + tags = [] + + for article in MainArticlePage.objects.all()[:50]: + for tag in article.tags.names(): + if tag in tags: + continue + + tags.append(tag) + + ctx["tags"] = tags + return ctx def get_timeline_articles_response(self, request): - article_list = self.get_article_data_list(int(request.GET.get("months", None))) - context = {"article_data_list": article_list} + try: + months = int(request.GET.get("months", None)) + except ValueError: + months = 1 + + article_list = self.get_article_data_list(months) + context = {"article_timeline_list": article_list} data = { "html": render( - request, "main/blocks/articles_timeline_block.html", context + request, "main/includes/organisms/articles/articles_timeline_list.html", context ).content.decode("utf-8"), "last_article": article_list[-1] - == MainArticlePage.objects.filter(article_type=ARTICLE_TYPES.WORK_TIMELINE) + == MainArticlePage.objects.all() .order_by("-date") .live() .last(), } return JsonResponse(data=data, safe=False) - def get_articles_response(self, request): - article_page = self.get_page_with_shared_articles( - self.append_all_shared_articles_query( - MainArticlePage.objects.filter( - article_type=ARTICLE_TYPES.PRESS_RELEASE - ), - ).order_by("-union_date", "union_title"), - 10, - request.GET.get("page", 1), - ) - context = {"article_data_list": article_page.object_list} - html_content = render( - request, "main/includes/person_article_preview.html", context - ).content - data = { - "html": html_content.decode("utf-8"), - "has_next": article_page.has_next(), - } - return JsonResponse(data=data, safe=False) - def get_all_articles_search_response(self, request): article_page = self.search_articles( request.GET["q"], @@ -542,8 +561,7 @@ class MainArticlesPage( return { "month_number": date_obj.month, "month_text": MONTH_NAMES[date_obj.month - 1], - "left_column": [], - "right_column": [], + "articles": [] } @@ -555,21 +573,35 @@ class MainArticleTag(TaggedItemBase): ) +class SectionTag(TagBase): + class Meta: + verbose_name = "Tag pro rozdělení do sekcí" + verbose_name_plural = "Tagy pro rozdělení do sekcí" + + +class MainArticleSectionTagged(TaggedItemBase): + tag = models.ForeignKey( + SectionTag, + on_delete=models.CASCADE, + related_name="%(app_label)s_%(class)s_items", + ) + + content_object = ParentalKey( + "main.MainArticlePage", + on_delete=models.CASCADE, + related_name="section_tagged_items", + ) + + class MainArticlePage( ArticleMixin, ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page ): ### FIELDS - article_type = models.PositiveSmallIntegerField( - "Typ článku", choices=ARTICLE_TYPES.choices, default=ARTICLE_TYPES.PRESS_RELEASE - ) - is_black = models.BooleanField("Má tmavé pozadí?", default=False) - content = StreamField( [ - ("text", RichTextBlock(template="main/blocks/rich_text_block.html")), + ("text", RichTextBlock(template="main/includes/atoms/text/prose_richtext.html")), ("quote", blocks.ArticleQuoteBlock()), ("download", blocks.ArticleDownloadBlock()), - ("image", blocks.ArticleImageBlock()), ], verbose_name="Článek", blank=True, @@ -583,21 +615,25 @@ class MainArticlePage( blank=True, verbose_name="Stránka autora (osoby)", ) - region = models.CharField( - choices=REGION_CHOICES, - null=True, - blank=True, - max_length=3, - verbose_name="Kraj", - help_text="Kraj, ke kterému se článek vztahuje", + tags = ClusterTaggableManager( + through=MainArticleTag, + related_name="tagged_articles", + blank=True ) - tags = ClusterTaggableManager(through=MainArticleTag, blank=True) shared_tags = ClusterTaggableManager( verbose_name="Tagy pro sdílení mezi weby", through=SharedTaggedMainArticle, blank=True, ) + section_tags = ClusterTaggableManager( + through=MainArticleSectionTagged, + verbose_name="Tagy pro rozdělení do sekcí", + help_text="Používá se například pro oddělení článků do sekce pro eurovolby. Pokud chceš, aby se články zobrazovaly pouze na hlavní stránce, nepřidávej žádné tagy.", + related_name="sectioned_articles", + blank=True, + ) + search_fields = ArticleMixin.search_fields + [ index.SearchField("author_page"), index.FilterField("slug"), @@ -606,11 +642,9 @@ class MainArticlePage( ### PANELS content_panels = ArticleMixin.content_panels + [ - FieldPanel("article_type"), FieldPanel("author_page"), - FieldPanel("is_black"), - FieldPanel("region"), FieldPanel("tags"), + FieldPanel("section_tags"), FieldPanel("shared_tags"), ] @@ -643,7 +677,6 @@ class MainArticlePage( class MainProgramPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page): ### FIELDS - perex = RichTextField() program = StreamField( [ ("program_group", blocks.ProgramGroupBlock()), @@ -657,7 +690,7 @@ class MainProgramPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin ### PANELS - content_panels = Page.content_panels + [FieldPanel("perex"), FieldPanel("program")] + content_panels = Page.content_panels + [FieldPanel("program")] promote_panels = make_promote_panels() @@ -677,7 +710,13 @@ class MainProgramPage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin class MainPeoplePage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page): ### FIELDS - perex = RichTextField() + perex_col_1 = models.TextField( + verbose_name="Perex - první sloupec", + ) + perex_col_2 = models.TextField( + verbose_name="Perex - druhý sloupec", + ) + people = StreamField( [ ("people_group", blocks.PeopleGroupBlock(label="Seznam osob")), @@ -690,7 +729,11 @@ class MainPeoplePage(ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, ### PANELS - content_panels = Page.content_panels + [FieldPanel("perex"), FieldPanel("people")] + content_panels = Page.content_panels + [ + FieldPanel("perex_col_1"), + FieldPanel("perex_col_2"), + FieldPanel("people"), + ] promote_panels = make_promote_panels() @@ -745,6 +788,9 @@ class MainPersonPage( position = models.CharField( "Pozice/povolání", max_length=200, blank=True, null=True ) + primary_group = models.CharField( + "Kategorie", help_text="např. 'Europarlament' nebo 'Sněmovna'", max_length=32, blank=True, null=True + ) perex = models.TextField() text = RichTextField() @@ -757,8 +803,10 @@ class MainPersonPage( use_json_field=True, ) - people = StreamField( - [("people_group", blocks.PeopleGroupBlock(label="Seznam osob"))], + related_people = StreamField( + [ + ("person", PageChooserBlock(page_type="main.MainPersonPage", label="Detail osoby")) + ], verbose_name="Další lidé", blank=True, use_json_field=True, @@ -787,7 +835,7 @@ class MainPersonPage( FieldPanel("phone"), FieldPanel("calendar_url"), FieldPanel("social_links"), - FieldPanel("people"), + FieldPanel("related_people"), ] def get_context(self, request) -> dict: @@ -795,7 +843,7 @@ class MainPersonPage( context["article_page_list"] = MainArticlePage.objects.filter( author_page=self.id - ) + ).order_by("-date").live()[:3] return context diff --git a/main/services.py b/main/services.py index a02b58785475781337bb9df06a44891ac8157873..2fb8f60e5ce3fba9b213ad6861adff2147e9868e 100644 --- a/main/services.py +++ b/main/services.py @@ -4,7 +4,7 @@ from typing import TYPE_CHECKING import requests -from main.models import ARTICLE_TYPES, MainArticlePage, MainArticlesPage +from main.models import MainArticlePage, MainArticlesPage from shared.utils import create_image_from_url if TYPE_CHECKING: @@ -18,9 +18,7 @@ class TimelineArticleDownloadService: @staticmethod def get_existing_articles_slugs() -> list[str]: - return MainArticlePage.objects.filter( - article_type=ARTICLE_TYPES.WORK_TIMELINE - ).values_list("slug", flat=True) + return MainArticlePage.objects.values_list("slug", flat=True) def get_articles_response(self): response = requests.get(self.api_url) @@ -46,7 +44,6 @@ class TimelineArticleDownloadService: img_obj = None article_to_save = MainArticlePage( - article_type=ARTICLE_TYPES.WORK_TIMELINE, title=article["title"], slug=article["slug"], perex=article["description"].replace(" ", " "), diff --git a/main/static/main/main.css b/main/static/main/main.css index f96f0119a17ea0944e3d5006f49a8a5209b6fde6..b814cd2912b9cd9ad3faea60584e1d17fc50fd5c 100644 --- a/main/static/main/main.css +++ b/main/static/main/main.css @@ -1 +1 @@ -@import"https://gfonts.pirati.cz/css2?family=Bebas+Neue&family=Roboto+Condensed:wght@300;400;700&family=Roboto:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400&display=swap";@font-face{font-family:pirati-ui;src:url(/static/main/pirati-ui.eot?bna028);src:url(/static/main/pirati-ui.eot?bna028#iefix) format("embedded-opentype"),url(/static/main/pirati-ui.ttf?bna028) format("truetype"),url(/static/main/pirati-ui.woff?bna028) format("woff"),url(/static/main/pirati-ui.svg?bna028#pirati-ui) format("svg");font-weight:400;font-style:normal;font-display:block}[class^=ico--],[class*=" ico--"]{font-family:pirati-ui!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ico--twitter:before{content:"\e977"}.ico--mastodon:before{content:"\e973"}.ico--helios:before{content:"\e96e"}.ico--redmine:before{content:"\e96f"}.ico--zulip:before{content:"\e970"}.ico--forum:before{content:"\e971"}.ico--pirati:before{content:"\e90d"}.ico--jitsi:before{content:"\e90f"}.ico--open-source:before{content:"\e90e"}.ico--donation-full:before{content:"\e96c"}.ico--donation-outline:before{content:"\e96d"}.ico--strategy:before{content:"\e932"}.ico--pig:before{content:"\e928"}.ico--thermometer:before{content:"\e90a"}.ico--menu:before{content:"\e933"}.ico--chevron-right:before{content:"\e923"}.ico--chevron-left:before{content:"\e924"}.ico--chevron-down:before{content:"\e925"}.ico--chevron-up:before{content:"\e926"}.ico--link-horizontal:before{content:"\e910"}.ico--beer:before{content:"\e909"}.ico--food:before{content:"\e968"}.ico--dots-three-vertical:before{content:"\e940"}.ico--dots-three-horizontal:before{content:"\e941"}.ico--log-out:before{content:"\e942"}.ico--envelope:before{content:"\e908"}.ico--pin:before{content:"\e943"}.ico--at:before{content:"\e905"}.ico--glass:before{content:"\e967"}.ico--checkmark:before{content:"\e965"}.ico--info:before{content:"\e901"}.ico--question:before{content:"\e904"}.ico--warning:before{content:"\e93f"}.ico--code:before{content:"\e94a"}.ico--checkbox-unchecked:before{content:"\e94e"}.ico--star-full:before{content:"\e94f"}.ico--star-empty:before{content:"\e950"}.ico--bookmark:before{content:"\e951"}.ico--cog:before{content:"\e952"}.ico--key:before{content:"\e953"}.ico--zoom-in:before{content:"\e954"}.ico--zoom-out:before{content:"\e955"}.ico--shrink:before{content:"\e956"}.ico--printer:before{content:"\e957"}.ico--file-openoffice:before{content:"\e958"}.ico--user:before{content:"\e959"}.ico--file-excel:before{content:"\e95a"}.ico--file-word:before{content:"\e95b"}.ico--file-pdf:before{content:"\e95c"}.ico--file-picture:before{content:"\e95d"}.ico--file-blank:before{content:"\e95e"}.ico--folder-upload:before{content:"\e95f"}.ico--upload:before{content:"\e960"}.ico--cloud-upload:before{content:"\e961"}.ico--folder-download:before{content:"\e962"}.ico--download:before{content:"\e963"}.ico--cloud-download:before{content:"\e964"}.ico--alarm:before{content:"\e900"}.ico--calculator:before{content:"\e911"}.ico--facebook-full:before{content:"\e913"}.ico--feed:before{content:"\e927"}.ico--library:before{content:"\e929"}.ico--office:before{content:"\e92a"}.ico--attachment:before{content:"\e92b"}.ico--enlarge:before{content:"\e92c"}.ico--eye-off:before{content:"\e92e"}.ico--eye:before{content:"\e92f"}.ico--share:before{content:"\e931"}.ico--search:before{content:"\e939"}.ico--pencil:before{content:"\e93c"}.ico--lock-open:before{content:"\e947"}.ico--lock:before{content:"\e948"}.ico--equalizer:before{content:"\e949"}.ico--switch:before{content:"\e94b"}.ico--loop:before{content:"\e94c"}.ico--refresh:before{content:"\e94d"}.ico--bullhorn:before{content:"\e944"}.ico--bin:before{content:"\e945"}.ico--cross:before{content:"\e937"}.ico--checkbox-checked:before{content:"\e938"}.ico--globe:before{content:"\e93a"}.ico--wikipedia:before{content:"\e93b"}.ico--youtube:before{content:"\e936"}.ico--users:before{content:"\e934"}.ico--book:before{content:"\e935"}.ico--bubbles:before{content:"\e930"}.ico--map:before{content:"\e914"}.ico--compass:before{content:"\e915"}.ico--folder-open:before{content:"\e916"}.ico--folder:before{content:"\e917"}.ico--drawer:before{content:"\e918"}.ico--stop:before{content:"\e919"}.ico--github:before{content:"\e91a"}.ico--clock:before{content:"\e91b"}.ico--calendar:before{content:"\e91c"}.ico--flickr:before{content:"\e91d"}.ico--instagram:before{content:"\e91e"}.ico--newspaper:before{content:"\e920"}.ico--cart:before{content:"\e921"}.ico--home:before{content:"\e922"}.ico--link:before{content:"\e912"}.ico--power:before{content:"\e90c"}.ico--rocket:before{content:"\e946"}.ico--location:before{content:"\e906"}.ico--phone:before{content:"\e907"}.ico--linkedin:before{content:"\e903"}.ico--facebook:before{content:"\e902"}.ico--envelop:before{content:"\e972"}.ico--file-text2:before{content:"\e974"}.ico--price-tag:before{content:"\e975"}.ico--price-tags:before{content:"\e976"}.ico--stats-dots:before{content:"\e99b"}.ico--bed:before{content:"\e969"}.ico--train:before{content:"\e96a"}.ico--bus:before{content:"\e96b"}.ico--wheelchair:before{content:"\e966"}.ico--thumbs-down:before{content:"\e93d"}.ico--thumbs-up:before{content:"\e93e"}.ico--anchor:before{content:"\e92d"}.ico--paw:before{content:"\e90b"}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~="lead"]):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:inherit}.prose :where(thead th strong):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:inherit}.prose :where(ol):not(:where([class~="not-prose"],[class~="not-prose"] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol[type="A"]):not(:where([class~="not-prose"],[class~="not-prose"] *)){list-style-type:upper-alpha}.prose :where(ol[type="a"]):not(:where([class~="not-prose"],[class~="not-prose"] *)){list-style-type:lower-alpha}.prose :where(ol[type="A" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)){list-style-type:upper-alpha}.prose :where(ol[type="a" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)){list-style-type:lower-alpha}.prose :where(ol[type="I"]):not(:where([class~="not-prose"],[class~="not-prose"] *)){list-style-type:upper-roman}.prose :where(ol[type="i"]):not(:where([class~="not-prose"],[class~="not-prose"] *)){list-style-type:lower-roman}.prose :where(ol[type="I" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)){list-style-type:upper-roman}.prose :where(ol[type="i" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~="not-prose"],[class~="not-prose"] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~="not-prose"],[class~="not-prose"] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-left-width:.25rem;border-left-color:var(--tw-prose-quote-borders);quotes:"\201c""\201d""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.prose :where(blockquote p:first-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *)):after{content:close-quote}.prose :where(h1):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~="not-prose"],[class~="not-prose"] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%),0 3px 0 rgb(var(--tw-prose-kbd-shadows) / 10%);font-size:.875em;border-radius:.3125rem;padding:.1875em .375em}.prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)):before{content:"`"}.prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)):after{content:"`"}.prose :where(a code):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:inherit}.prose :where(h1 code):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:inherit}.prose :where(h2 code):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:inherit}.prose :where(blockquote code):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:inherit}.prose :where(thead th code):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:inherit}.prose :where(pre):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding:.8571429em 1.1428571em}.prose :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *)):before{content:none}.prose :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *)):after{content:none}.prose :where(table):not(:where([class~="not-prose"],[class~="not-prose"] *)){width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~="not-prose"],[class~="not-prose"] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.prose :where(tbody tr):not(:where([class~="not-prose"],[class~="not-prose"] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~="not-prose"],[class~="not-prose"] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~="not-prose"],[class~="not-prose"] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)){vertical-align:top}.prose :where(figure > *):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: 17 24 39;--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: 255 255 255;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(picture > img):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:0;margin-bottom:0}.prose :where(video):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:2em;margin-bottom:2em}.prose :where(li):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *)){padding-left:.375em}.prose :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *)){padding-left:.375em}.prose :where(.prose > ul > li p):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose > ul > li > *:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:1.25em}.prose :where(.prose > ul > li > *:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-bottom:1.25em}.prose :where(.prose > ol > li > *:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:1.25em}.prose :where(.prose > ol > li > *:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:.5em;padding-left:1.625em}.prose :where(hr + *):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:0}.prose :where(h2 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:0}.prose :where(h3 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:0}.prose :where(h4 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)){padding-left:0}.prose :where(thead th:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)){padding-right:0}.prose :where(tbody td,tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)){padding:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)){padding-left:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)){padding-right:0}.prose :where(figure):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose > :first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:0}.prose :where(.prose > :last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-bottom:0}.btn{display:inline-block;text-align:center;font-weight:400;max-width:20rem;text-decoration:none}.btn[disabled]{opacity:.7;cursor:not-allowed}.btn:hover{text-decoration:none}.btn__body{display:flex;height:100%;align-items:center;justify-content:center;padding:.25em 2em}.btn__body-wrap{min-width:10rem;min-height:2.75rem}.btn__body,.btn__icon,.btn__inline-icon{transition-property:color,background-color,border-color;transition-duration:.2s;color:#fff}.btn__body,.btn__icon{background-color:#000}.btn--icon .btn__body-wrap{display:flex}.btn--condensed .btn__body{padding:.75em 1em}@keyframes btn-loading-spinner{to{transform:rotate(360deg)}}.btn--black .btn__body,.btn--black .btn__icon{background-color:#000;color:#fff}.btn--black.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--black.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#000;color:#fff}.btn--black.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#262626}.btn--black.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--black.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-black:hover .btn__body,.btn--to-black.btn--activated .btn__body{background-color:#000!important;color:#fff!important}.btn--hoveractive.btn--to-black:hover .btn__icon,.btn--to-black.btn--activated .btn__icon{border-color:#343434!important;background-color:#000!important}.btn--hoveractive.btn--to-black:hover .btn__inline-icon,.btn--to-black.btn--activated .btn__inline-icon{color:#fff!important}.btn--grey-700 .btn__body,.btn--grey-700 .btn__icon{background-color:#202020;color:#fff}.btn--grey-700.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--grey-700.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#343434;color:#fff}.btn--grey-700.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#262626}.btn--grey-700.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--grey-700.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-grey-700:hover .btn__body,.btn--to-grey-700.btn--activated .btn__body{background-color:#202020!important;color:#fff!important}.btn--hoveractive.btn--to-grey-700:hover .btn__icon,.btn--to-grey-700.btn--activated .btn__icon{border-color:#303132!important;background-color:#202020!important}.btn--hoveractive.btn--to-grey-700:hover .btn__inline-icon,.btn--to-grey-700.btn--activated .btn__inline-icon{color:#fff!important}.btn--grey-500 .btn__body,.btn--grey-500 .btn__icon{background-color:#303132;color:#fff}.btn--grey-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--grey-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#4c4c4c;color:#fff}.btn--grey-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#343434}.btn--grey-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--grey-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-grey-500:hover .btn__body,.btn--to-grey-500.btn--activated .btn__body{background-color:#303132!important;color:#fff!important}.btn--hoveractive.btn--to-grey-500:hover .btn__icon,.btn--to-grey-500.btn--activated .btn__icon{border-color:#4c4c4c!important;background-color:#303132!important}.btn--hoveractive.btn--to-grey-500:hover .btn__inline-icon,.btn--to-grey-500.btn--activated .btn__inline-icon{color:#fff!important}.btn--grey-125 .btn__body,.btn--grey-125 .btn__icon{background-color:#f0f0f0;color:#000}.btn--grey-125.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--grey-125.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:silver;color:#fff}.btn--grey-125.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#a8a8a8}.btn--grey-125.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--grey-125.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-grey-125:hover .btn__body,.btn--to-grey-125.btn--activated .btn__body{background-color:#f0f0f0!important;color:#000!important}.btn--hoveractive.btn--to-grey-125:hover .btn__icon,.btn--to-grey-125.btn--activated .btn__icon{border-color:#d8d8d8!important;background-color:#f0f0f0!important}.btn--hoveractive.btn--to-grey-125:hover .btn__inline-icon,.btn--to-grey-125.btn--activated .btn__inline-icon{color:#000!important}.btn--grey-175 .btn__body,.btn--grey-175 .btn__icon{background-color:#d0d0d0;color:#000}.btn--grey-175.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--grey-175.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#a6a6a6;color:#fff}.btn--grey-175.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#929292}.btn--grey-175.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--grey-175.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-grey-175:hover .btn__body,.btn--to-grey-175.btn--activated .btn__body{background-color:#d0d0d0!important;color:#000!important}.btn--hoveractive.btn--to-grey-175:hover .btn__icon,.btn--to-grey-175.btn--activated .btn__icon{border-color:#bbb!important;background-color:#d0d0d0!important}.btn--hoveractive.btn--to-grey-175:hover .btn__inline-icon,.btn--to-grey-175.btn--activated .btn__inline-icon{color:#000!important}.btn--white .btn__body,.btn--white .btn__icon{background-color:#fff;color:#000}.btn--white.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--white.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#ccc;color:#fff}.btn--white.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#b3b3b3}.btn--white.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--white.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-white:hover .btn__body,.btn--to-white.btn--activated .btn__body{background-color:#fff!important;color:#000!important}.btn--hoveractive.btn--to-white:hover .btn__icon,.btn--to-white.btn--activated .btn__icon{border-color:#f3f3f3!important;background-color:#fff!important}.btn--hoveractive.btn--to-white:hover .btn__inline-icon,.btn--to-white.btn--activated .btn__inline-icon{color:#000!important}.btn--blue-300 .btn__body,.btn--blue-300 .btn__icon{background-color:#027da8;color:#fff}.btn--blue-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--blue-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#026486;color:#fff}.btn--blue-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#015876}.btn--blue-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--blue-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-blue-300:hover .btn__body,.btn--to-blue-300.btn--activated .btn__body{background-color:#027da8!important;color:#fff!important}.btn--hoveractive.btn--to-blue-300:hover .btn__icon,.btn--to-blue-300.btn--activated .btn__icon{border-color:#027197!important;background-color:#027da8!important}.btn--hoveractive.btn--to-blue-300:hover .btn__inline-icon,.btn--to-blue-300.btn--activated .btn__inline-icon{color:#fff!important}.btn--cyan-200 .btn__body,.btn--cyan-200 .btn__icon{background-color:#57b3bd;color:#fff}.btn--cyan-200.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--cyan-200.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#3e959f;color:#fff}.btn--cyan-200.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#37838b}.btn--cyan-200.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--cyan-200.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-cyan-200:hover .btn__body,.btn--to-cyan-200.btn--activated .btn__body{background-color:#57b3bd!important;color:#fff!important}.btn--hoveractive.btn--to-cyan-200:hover .btn__icon,.btn--to-cyan-200.btn--activated .btn__icon{border-color:#46a8b2!important;background-color:#57b3bd!important}.btn--hoveractive.btn--to-cyan-200:hover .btn__inline-icon,.btn--to-cyan-200.btn--activated .btn__inline-icon{color:#fff!important}.btn--green-300 .btn__body,.btn--green-300 .btn__icon{background-color:#76cc9f;color:#fff}.btn--green-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--green-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#47bb7e;color:#fff}.btn--green-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#3da46e}.btn--green-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--green-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-green-300:hover .btn__body,.btn--to-green-300.btn--activated .btn__body{background-color:#76cc9f!important;color:#fff!important}.btn--hoveractive.btn--to-green-300:hover .btn__icon,.btn--to-green-300.btn--activated .btn__icon{border-color:#5fc38f!important;background-color:#76cc9f!important}.btn--hoveractive.btn--to-green-300:hover .btn__inline-icon,.btn--to-green-300.btn--activated .btn__inline-icon{color:#fff!important}.btn--green-400 .btn__body,.btn--green-400 .btn__icon{background-color:#4ca971;color:#fff}.btn--green-400.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--green-400.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#3d875a;color:#fff}.btn--green-400.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#35764f}.btn--green-400.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--green-400.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-green-400:hover .btn__body,.btn--to-green-400.btn--activated .btn__body{background-color:#4ca971!important;color:#fff!important}.btn--hoveractive.btn--to-green-400:hover .btn__icon,.btn--to-green-400.btn--activated .btn__icon{border-color:#449866!important;background-color:#4ca971!important}.btn--hoveractive.btn--to-green-400:hover .btn__inline-icon,.btn--to-green-400.btn--activated .btn__inline-icon{color:#fff!important}.btn--green-500 .btn__body,.btn--green-500 .btn__icon{background-color:#4fc49f;color:#000}.btn--green-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--green-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#37a582;color:#fff}.btn--green-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#309072}.btn--green-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--green-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-green-500:hover .btn__body,.btn--to-green-500.btn--activated .btn__body{background-color:#4fc49f!important;color:#000!important}.btn--hoveractive.btn--to-green-500:hover .btn__icon,.btn--to-green-500.btn--activated .btn__icon{border-color:#3eb992!important;background-color:#4fc49f!important}.btn--hoveractive.btn--to-green-500:hover .btn__inline-icon,.btn--to-green-500.btn--activated .btn__inline-icon{color:#000!important}.btn--yellow-500 .btn__body,.btn--yellow-500 .btn__icon{background-color:#f9ce05;color:#000}.btn--yellow-500 .btn__icon{border-color:#e0b905;background-color:#f9ce05}.btn--yellow-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--yellow-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#c7a504;color:#fff}.btn--yellow-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#ae9004}.btn--yellow-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--yellow-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-yellow-500:hover .btn__body,.btn--to-yellow-500.btn--activated .btn__body{background-color:#f9ce05!important;color:#000!important}.btn--hoveractive.btn--to-yellow-500:hover .btn__icon,.btn--to-yellow-500.btn--activated .btn__icon{border-color:#e0b905!important;background-color:#f9ce05!important}.btn--hoveractive.btn--to-yellow-500:hover .btn__inline-icon,.btn--to-yellow-500.btn--activated .btn__inline-icon{color:#000!important}.btn--yellow-600 .btn__body,.btn--yellow-600 .btn__icon{background-color:#d7b103;color:#000}.btn--yellow-600.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--yellow-600.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#ac8e02;color:#fff}.btn--yellow-600.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#977c02}.btn--yellow-600.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--yellow-600.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-yellow-600:hover .btn__body,.btn--to-yellow-600.btn--activated .btn__body{background-color:#d7b103!important;color:#000!important}.btn--hoveractive.btn--to-yellow-600:hover .btn__icon,.btn--to-yellow-600.btn--activated .btn__icon{border-color:#c29f03!important;background-color:#d7b103!important}.btn--hoveractive.btn--to-yellow-600:hover .btn__inline-icon,.btn--to-yellow-600.btn--activated .btn__inline-icon{color:#000!important}.btn--orange-300 .btn__body,.btn--orange-300 .btn__icon{background-color:#ed9654;color:#fff}.btn--orange-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--orange-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#e7721a;color:#fff}.btn--orange-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#cb6415}.btn--orange-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--orange-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-orange-300:hover .btn__body,.btn--to-orange-300.btn--activated .btn__body{background-color:#ed9654!important;color:#fff!important}.btn--hoveractive.btn--to-orange-300:hover .btn__icon,.btn--to-orange-300.btn--activated .btn__icon{border-color:#ea8437!important;background-color:#ed9654!important}.btn--hoveractive.btn--to-orange-300:hover .btn__inline-icon,.btn--to-orange-300.btn--activated .btn__inline-icon{color:#fff!important}.btn--violet-400 .btn__body,.btn--violet-400 .btn__icon{background-color:#840048;color:#fff}.btn--violet-400.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--violet-400.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#6a003a;color:#fff}.btn--violet-400.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#5c0032}.btn--violet-400.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--violet-400.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-violet-400:hover .btn__body,.btn--to-violet-400.btn--activated .btn__body{background-color:#840048!important;color:#fff!important}.btn--hoveractive.btn--to-violet-400:hover .btn__icon,.btn--to-violet-400.btn--activated .btn__icon{border-color:#770041!important;background-color:#840048!important}.btn--hoveractive.btn--to-violet-400:hover .btn__inline-icon,.btn--to-violet-400.btn--activated .btn__inline-icon{color:#fff!important}.btn--violet-500 .btn__body,.btn--violet-500 .btn__icon{background-color:#670047;color:#000}.btn--violet-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--violet-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#520039;color:#fff}.btn--violet-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#480032}.btn--violet-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--violet-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-violet-500:hover .btn__body,.btn--to-violet-500.btn--activated .btn__body{background-color:#670047!important;color:#000!important}.btn--hoveractive.btn--to-violet-500:hover .btn__icon,.btn--to-violet-500.btn--activated .btn__icon{border-color:#5d0040!important;background-color:#670047!important}.btn--hoveractive.btn--to-violet-500:hover .btn__inline-icon,.btn--to-violet-500.btn--activated .btn__inline-icon{color:#000!important}.btn--violet-700 .btn__body,.btn--violet-700 .btn__icon{background-color:#7d347d;color:#000}.btn--violet-700.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--violet-700.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#642a64;color:#fff}.btn--violet-700.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#582458}.btn--violet-700.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--violet-700.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-violet-700:hover .btn__body,.btn--to-violet-700.btn--activated .btn__body{background-color:#7d347d!important;color:#000!important}.btn--hoveractive.btn--to-violet-700:hover .btn__icon,.btn--to-violet-700.btn--activated .btn__icon{border-color:#712f71!important;background-color:#7d347d!important}.btn--hoveractive.btn--to-violet-700:hover .btn__inline-icon,.btn--to-violet-700.btn--activated .btn__inline-icon{color:#000!important}.btn--red-600 .btn__body,.btn--red-600 .btn__icon{background-color:#d60d53;color:#fff}.btn--red-600.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--red-600.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#ab0a42;color:#fff}.btn--red-600.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#96093a}.btn--red-600.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--red-600.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-red-600:hover .btn__body,.btn--to-red-600.btn--activated .btn__body{background-color:#d60d53!important;color:#fff!important}.btn--hoveractive.btn--to-red-600:hover .btn__icon,.btn--to-red-600.btn--activated .btn__icon{border-color:#c10c4b!important;background-color:#d60d53!important}.btn--hoveractive.btn--to-red-600:hover .btn__inline-icon,.btn--to-red-600.btn--activated .btn__inline-icon{color:#fff!important}.btn--brands-facebook .btn__body,.btn--brands-facebook .btn__icon{background-color:#067ceb;color:#fff}.btn--brands-facebook.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--brands-facebook.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#0563bc;color:#fff}.btn--brands-facebook.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#0457a5}.btn--brands-facebook.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--brands-facebook.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-brands-facebook:hover .btn__body,.btn--to-brands-facebook.btn--activated .btn__body{background-color:#067ceb!important;color:#fff!important}.btn--hoveractive.btn--to-brands-facebook:hover .btn__icon,.btn--to-brands-facebook.btn--activated .btn__icon{border-color:#0570d4!important;background-color:#067ceb!important}.btn--hoveractive.btn--to-brands-facebook:hover .btn__inline-icon,.btn--to-brands-facebook.btn--activated .btn__inline-icon{color:#fff!important}.container--default{max-width:1200px}.container--narrow{margin:auto;width:882px}.container--medium{padding-left:1.25rem;padding-right:1.25rem;margin:auto;max-width:1350px}.container--wide{padding-left:1.25rem;padding-right:1.25rem;margin:auto;max-width:1400px}.header-max-width{max-width:1340px!important}.container{margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem;max-width:1150px}.grid-container{margin-left:1.25rem;margin-right:1.25rem;display:grid;grid-template-columns:1fr;grid-template-areas:"left-side" "content" "right-side";gap:1rem;max-width:1150px}.grid-container.article-section,.grid-container.person-grid-container{max-width:1400px}.grid-container.person-twitter-section{grid-template-columns:minmax(0,1200px)}@media (min-width: 1200px){.grid-container.person-twitter-section{grid-template-columns:minmax(0,240px) minmax(0,1fr) minmax(0,102px)}}.grid-container.no-max{max-width:none}.grid-content{grid-area:content}.grid-full{grid-column:left-side / right-side;grid-row:left-side / right-side}.grid-left-side{grid-area:left-side}.grid-left-side-with-content{grid-column:left-side / content;grid-row:left-side / content}.grid-right-side{grid-area:right-side}.grid-content-with-right-side{grid-column:content / right-side;grid-row:content / right-side}.footer-section{height:450px}.person-box-medium{max-width:485px;width:100%}.person-box-big{max-width:575px;width:100%}@media (min-width: 1200px){.footer-section{height:981px}}.text-input-addon{display:flex;align-items:center;border-width:1px;--tw-border-opacity: 1;border-color:rgb(173 173 173 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(240 240 240 / var(--tw-bg-opacity));padding:.75rem 1rem;font-size:1.125rem;font-weight:400;--tw-text-opacity: 1;color:rgb(76 76 76 / var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.text-input{border-bottom-width:2px;--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity));padding:.75rem 1rem;font-size:1.125rem;outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;min-width:0px}.text-input:hover:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity))}.text-input:active:not([disabled]):not([readonly]),.text-input:focus:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(2 125 168 / var(--tw-border-opacity))}.text-input::-moz-placeholder{font-weight:400;--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input::placeholder{font-weight:400;--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input[readonly],.text-input[disabled]{cursor:not-allowed;--tw-bg-opacity: 1;background-color:rgb(240 240 240 / var(--tw-bg-opacity))}.text-input[readonly]::-moz-placeholder,.text-input[disabled]::-moz-placeholder{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input[readonly]::placeholder,.text-input[disabled]::placeholder{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input-addon--l{border-right-width:0px}.text-input-addon--r{border-left-width:0px}.text-input:hover:not([disabled]):not([readonly])~.text-input-addon{--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity))}.text-input:focus:not([disabled]):not([readonly])~.text-input-addon,.text-input:active:not([disabled]):not([readonly])~.text-input-addon{--tw-border-opacity: 1;border-color:rgb(2 125 168 / var(--tw-border-opacity))}.text-input[readonly]~.text-input-addon,.text-input[disabled]~.text-input-addon{--tw-bg-opacity: 1;background-color:rgb(240 240 240 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input--has-addon-l.text-input{border-left-width:0px}.text-input--has-addon-r.text-input{border-right-width:0px}.select{position:relative;display:flex;width:100%;align-items:center;padding-top:.5rem;padding-bottom:.5rem}@media (min-width: 1200px){.select{padding-top:1rem;padding-bottom:1rem}}.select:after{position:absolute;right:0;padding-right:.75rem;font-size:1.3rem;font-weight:700;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;font-family:pirati-ui;content:"\e925"}.select__control{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0;border-width:1px;--tw-border-opacity: 1;border-color:rgb(173 173 173 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity));padding:.75rem 2rem .75rem 1rem;font-size:1.125rem;outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}@media (min-width: 1200px){.select__control{padding-top:1.25rem;padding-bottom:1.25rem}}.select__control{min-width:0px}.select__control:hover:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity))}.select__control:active:not([disabled]):not([readonly]),.select__control:focus:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(2 125 168 / var(--tw-border-opacity))}.select__control::-moz-placeholder{font-weight:400;--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.select__control::placeholder{font-weight:400;--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.select__control[readonly],.select__control[disabled]{cursor:not-allowed;--tw-bg-opacity: 1;background-color:rgb(240 240 240 / var(--tw-bg-opacity))}.select__control[readonly]::-moz-placeholder,.select__control[disabled]::-moz-placeholder{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.select__control[readonly]::placeholder,.select__control[disabled]::placeholder{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.checkbox{position:relative;display:flex}.checkbox input{margin-right:.5rem;height:1.25rem;width:1.25rem;flex-shrink:0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-width:1px;--tw-border-opacity: 1;border-color:rgb(173 173 173 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.checkbox input:hover:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity))}.checkbox input:active,.checkbox input:focus{--tw-border-opacity: 1;border-color:rgb(2 125 168 / var(--tw-border-opacity))}.checkbox input:checked{border-color:transparent;--tw-bg-opacity: 1;background-color:rgb(2 125 168 / var(--tw-bg-opacity))}.checkbox input[disabled]{cursor:not-allowed}.checkbox label{max-width:32rem;line-height:1.25}.checkbox:after{pointer-events:none;position:absolute;display:inline;content:"";height:5px;width:12px;top:6px;left:4px;border-left:2px solid #ffffff;border-bottom:2px solid #ffffff;transform:rotate(-45deg)}.radio{position:relative}.radio input{margin-right:.5rem;height:1.25rem;width:1.25rem;flex-shrink:0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:9999px;border-width:1px;--tw-border-opacity: 1;border-color:rgb(173 173 173 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(173 173 173 / var(--tw-bg-opacity));outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.radio input:hover:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity))}.radio input:active,.radio input:focus{--tw-border-opacity: 1;border-color:rgb(2 125 168 / var(--tw-border-opacity))}.radio input:checked{border-color:transparent;--tw-bg-opacity: 1;background-color:rgb(2 125 168 / var(--tw-bg-opacity))}.radio input[disabled]{cursor:not-allowed}.radio label{display:flex;align-items:center;line-height:1.25}.radio:after{pointer-events:none;position:absolute;display:inline;height:.5rem;width:.5rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));content:"";border-radius:50%;top:.375rem;left:.375rem}.form-field--error .text-input,.form-field--error .select__control,.form-field--error .text-input~.text-input-addon{--tw-border-opacity: 1;border-color:rgb(214 13 83 / var(--tw-border-opacity))}.h-default{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-weight:500;line-height:1.25}.h-alt{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-weight:400;line-height:.96}.h-allcaps{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-weight:400;text-transform:uppercase;line-height:1.25}.head-xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1rem;font-weight:500;text-transform:uppercase;line-height:1}@media (min-width: 992px){.head-xl{font-size:1.3rem}}.head-2xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.6rem;font-weight:500;text-transform:uppercase;line-height:1;letter-spacing:-.01em}.head-3xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem;text-transform:uppercase;line-height:1}.head-4xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-4xl{font-size:2.45rem;line-height:1}}@media (min-width: 1200px){.head-4xl{font-size:2.45rem}}.head-6xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:2.45rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-6xl{font-size:3rem;line-height:1}}@media (min-width: 1200px){.head-6xl{font-size:4rem}}.head-7xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:2.45rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-7xl{font-size:3rem;line-height:1}}@media (min-width: 1200px){.head-7xl{font-size:5.3rem}}.head-8xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:3rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-8xl{font-size:5.3rem;line-height:1}}@media (min-width: 1200px){.head-8xl{font-size:6.25rem}}.head-9xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:3rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-9xl{font-size:6.25rem;line-height:1}}@media (min-width: 1200px){.head-9xl{font-size:6.25rem}}.head-14xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:5.3rem;font-weight:500;text-transform:uppercase;line-height:4.75rem}@media (min-width: 1200px){.head-14xl{font-size:10.6rem;line-height:9.8rem}}.head-14xl.head-short{font-size:6.25rem;line-height:9.8rem}@media (min-width: 1200px){.head-14xl.head-short{font-size:10.6rem}}.head-14xl.head-compact{line-height:4rem}@media (min-width: 1200px){.head-14xl.head-compact{line-height:8.9rem}}.prose :where(.head-6xl):not(:where([class~="not-prose"],[class~="not-prose"] *)),.prose :where(.head-7xl):not(:where([class~="not-prose"],[class~="not-prose"] *)),.prose :where(.head-8xl):not(:where([class~="not-prose"],[class~="not-prose"] *)),.prose :where(.head-9xl):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-bottom:.25em}p{font-size:.875rem;line-height:1.5rem}@media (min-width: 992px){p{font-size:1rem}}.vertical-time-line{border-left:1px solid green}.program-perex .content-block p{font-size:1.3rem;line-height:1.75rem}.content-block h2{margin-bottom:1.25rem;font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem;font-weight:500;text-transform:uppercase;line-height:1.75rem}@media (min-width: 992px){.content-block h2{line-height:2.5rem}}@media (min-width: 1200px){.content-block h2{font-size:2.45rem}}.content-block h3{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:500;text-transform:uppercase;line-height:1rem}@media (min-width: 1200px){.content-block h3{font-size:1.875rem;line-height:2rem}}.content-block h4{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-weight:500;text-transform:uppercase;line-height:2rem}@media (min-width: 1200px){.content-block h4{font-size:1.6rem}}.content-block h4{letter-spacing:-.01em}.content-block a{--tw-text-opacity: 1;color:rgb(2 125 168 / var(--tw-text-opacity));text-decoration-line:underline}:root{--fc-button-bg-color: #000;--fc-button-border-color: #000;--fc-button-hover-bg-color: #fec900;--fc-button-hover-border-color: #fec900;--fc-button-active-bg-color: #fec900;--fc-button-active-border-color: #fec900;--fc-event-bg-color: #fec900;--fc-event-border-color: #fec900;--fc-event-text-color: #000;--fc-border-color: #000;--fc-today-bg-color: #000;--fc-event-dot-color: #000}.fc{font-family:Roboto Condensed,Helvetica,Arial,sans-serif}.fc-col-header{width:100%!important}.fc .fc-col-header-cell-cushion:not([href]):hover,.fc .fc-daygrid-day-number:not([href]):hover{text-decoration-line:none}.fc .fc-col-header-cell{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));padding:.75rem;font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.3rem;text-transform:capitalize;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.fc .fc-button{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));padding:.5rem 1.25rem;text-align:center;font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:600;text-transform:uppercase;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.fc .fc-button:hover{text-decoration-line:none}.fc .fc-button:hover:not(:disabled),.fc .fc-button:active:not(:disabled){--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.fc .fc-event{cursor:pointer;border-radius:0;border-style:none;padding:.375rem;font-size:1rem;background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);color:var(--fc-event-text-color)}.fc-header-toolbar{align-items:flex-start!important}@media (min-width: 1200px){.fc-header-toolbar{align-items:center!important}}.fc .fc-toolbar-title,.fc .fc-today-button{text-transform:capitalize}.fc-toolbar-chunk{display:flex;flex-wrap:wrap-reverse;justify-content:flex-end;gap:.5rem}.fc .fc-daygrid-day-number{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}@media (min-width: 1200px){.fc .fc-daygrid-day-number{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem}}.fc-daygrid-body,.fc-scrollgrid-sync-table{width:100%!important}@media (min-width: 1200px){.fc-daygrid-body,.fc-scrollgrid-sync-table{width:unset}}.fc .fc-day-today .fc-daygrid-day-number{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-dot-color)}.article-box.dark-theme{background-color:#4c4c4c;color:#fff}.quote-icon{font-size:7rem;height:1rem}@media (min-width: 1200px){.quote-icon{font-size:15rem}}.header-carousel{display:block;margin:0 auto;position:relative}.header-carousel .header-carousel--text-wrapper{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:3rem;text-transform:uppercase}@media (min-width: 992px){.header-carousel .header-carousel--text-wrapper{font-size:5.3rem}}.header-carousel .header-carousel--text-wrapper{position:absolute;bottom:45%;height:85%;width:100vw}@media (min-width: 1200px){.header-carousel .header-carousel--text-wrapper{bottom:42%}}.header-carousel img{inset:0;position:absolute;height:100%;width:100vw;-o-object-fit:cover;object-fit:cover}@media (min-width: 1200px){.header-carousel img{height:458px}}@media (min-width: 768px){.header-carousel img{height:100%}}@keyframes right_to_left{0%{margin-left:20%}to{margin-left:10%}}.btn{display:inline-flex;align-items:center;justify-content:center;font-family:Bebas Neue,Helvetica,Arial,sans-serif;line-height:2.25rem}.switch{margin-left:auto;margin-right:auto;padding-top:1.25rem;padding-bottom:1.25rem}.switch__item{margin-bottom:.5rem;cursor:pointer;--tw-bg-opacity: 1;background-color:rgb(249 206 5 / var(--tw-bg-opacity));padding:.5rem 1.25rem;text-align:center;font-weight:400;--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.switch__item:not(:last-child){margin-right:.5rem}.switch__item:hover{--tw-bg-opacity: 1;background-color:rgb(215 177 3 / var(--tw-bg-opacity));text-decoration-line:none}.switch__item.switch__item--active,.switch__item.switch__item--active:hover{--tw-bg-opacity: 1;background-color:rgb(236 236 236 / var(--tw-bg-opacity))}.horizontal-scrolling{display:block;margin-left:-15px;margin-right:-15px;max-width:calc(100vw - 50px);overflow-x:scroll;overflow-y:hidden;text-align:center;white-space:nowrap}@media (min-width: 1200px){.horizontal-scrolling{max-width:calc(100% + 30px)}}.horizontal-scrolling.draggable{cursor:grab}.horizontal-scrolling.draggable.active,.horizontal-scrolling.draggable.active a{cursor:grabbing}.no-scrollbars{-ms-overflow-style:-ms-autohiding-scrollbar;scrollbar-width:none}.no-scrollbars::-webkit-scrollbar{display:none}.background-hover-zoom{background-position:center;background-size:100%;transition:background-size .3s ease-in}.background-hover-zoom:hover{background-size:110%}.popout__toggle-wrapper{display:flex;cursor:pointer;align-items:center;justify-content:space-between;padding-left:1.25rem;padding-right:1.25rem;font-size:1.125rem;transition-duration:.15s}.popout__toggle-wrapper:hover{--tw-bg-opacity: 1;background-color:rgb(236 236 236 / var(--tw-bg-opacity))}.popout__toggle-wrapper.popout__toggle-wrapper--active{--tw-bg-opacity: 1;background-color:rgb(249 206 5 / var(--tw-bg-opacity))}.popout__toggle-name{padding-top:1rem;padding-bottom:1rem}.popout__content-wrapper{display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.25rem}.popout__toggle-arrow{font-size:2.45rem}.article-timeline-grid{display:grid;gap:.5rem;margin-top:-20px;grid-template-areas:"left-article" "right-article"}@media (min-width: 1200px){.article-timeline-grid{grid-template-columns:minmax(0,570px) 1px minmax(0,570px);grid-template-areas:"left-article timeline right-article"}}.article-timeline-grid__left-article{grid-area:left-article}.article-timeline-grid__right-article{grid-area:right-article}.article-timeline-grid__timeline{grid-area:timeline}.article-timeline-grid__timeline:before{content:"";background:linear-gradient(180deg,rgba(2,0,36,0) 0%,rgba(255,255,255,1) 100%);position:absolute;bottom:-1px;height:20px;z-index:10;width:2px;left:-1px}.article-timeline-grid__timeline .article-timeline--month{transform:translate(-50%);top:-1rem;z-index:100}.footer-collapsible__toggle{display:flex;cursor:pointer;align-items:center}@media (min-width: 768px){.footer-collapsible__toggle:after{display:none;cursor:auto}}.footer-collapsible__toggle:after{content:"\e925";font-family:pirati-ui;margin-left:auto;font-size:3rem;font-weight:300;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.footer-collapsible__toggle.footer-collapsible__toggle--open:after{transform:rotate(-180deg)}.navbar{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.navbar .navbar__logo--white{display:inline}.navbar .navbar__logo--black{display:none}.navbar .navbar__border-button{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}@media (min-width: 1366px){.navbar .navbar__border-button{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}}.navbar .navbar__menu-item--selected{text-decoration-line:underline}.navbar .navbar__menu-item--selected:hover{text-decoration-line:none}.navbar.navbar--transparent{background-color:transparent}@media (min-width: 1366px){.navbar.navbar--transparent{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}}.navbar.navbar--transparent .navbar__logo--white{display:none}.navbar.navbar--transparent .navbar__logo--black{display:inline}.navbar.navbar--transparent .navbar__border-button{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.navbar.navbar--transparent .bar1,.navbar.navbar--transparent .bar2,.navbar.navbar--transparent .bar3{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}@media (min-width: 1366px){.navbar.navbar--transparent.navbar--on-dark-bg{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}}.navbar.navbar--transparent.navbar--on-dark-bg .navbar__logo--white{display:inline}.navbar.navbar--transparent.navbar--on-dark-bg .navbar__logo--black{display:none}.navbar.navbar--transparent.navbar--on-dark-bg .navbar__border-button{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.navbar.navbar--transparent.navbar--on-dark-bg .bar1,.navbar.navbar--transparent.navbar--on-dark-bg .bar2,.navbar.navbar--transparent.navbar--on-dark-bg .bar3{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bar1,.bar2,.bar3{background-color:#fff;display:block;height:2px;margin:6px 0;transition:.4s;width:35px}.navbar__mobile-menu__toggle:checked+label .bar1{transform:rotate(-45deg) translate(-3px,4px);--tw-bg-opacity: 1 !important;background-color:rgb(0 0 0 / var(--tw-bg-opacity))!important}.navbar__mobile-menu__toggle:checked+label .bar2{opacity:0}.navbar__mobile-menu__toggle:checked+label .bar3{transform:rotate(45deg) translate(-8px,-8px);--tw-bg-opacity: 1 !important;background-color:rgb(0 0 0 / var(--tw-bg-opacity))!important}.navbar__mobile-menu{pointer-events:none;visibility:hidden;z-index:0;opacity:0;transition:visibility .1s,opacity .1s linear}.navbar__mobile-menu__toggle:checked~.navbar__mobile-menu{pointer-events:auto;visibility:visible;z-index:20;opacity:1}@media (min-width: 1366px){.navbar__mobile-menu__toggle:checked~.navbar__mobile-menu{pointer-events:none;visibility:hidden;z-index:0;opacity:0}}.newsletter-section{background-size:cover;background-repeat:no-repeat;background-position:-400px}@media (min-width: 768px){.newsletter-section{background-position:left top}}.region-map__list{-moz-columns:2;columns:2}.region-map__region{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.5s;transition:all .3s ease-out;stroke:#fff;stroke-width:4px;stroke-linejoin:round}.region-map__region:after{content:"";width:10px;position:absolute;height:10px;background:#fec900;z-index:10}.region-map__region--current{fill:#fec900}.static{position:static}.absolute{position:absolute}.relative{position:relative}.left-0{left:0}.top-0{top:0}.z-20{z-index:20}.z-30{z-index:30}.float-right{float:right}.float-left{float:left}.m-10{margin:2.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-10{margin-top:2.5rem;margin-bottom:2.5rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.\!ml-0{margin-left:0!important}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-20{margin-bottom:5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-4{margin-left:1rem}.ml-\[unset\]{margin-left:unset}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mr-6{margin-right:1.5rem}.mr-\[unset\]{margin-right:unset}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-36{height:9rem}.h-80{height:20rem}.h-\[700px\]{height:700px}.h-full{height:100%}.min-h-0{min-height:0px}.min-h-\[600px\]{min-height:600px}.w-10\/12{width:83.333333%}.w-12{width:3rem}.w-24{width:6rem}.w-36{width:9rem}.w-5\/6{width:83.333333%}.w-56{width:14rem}.w-80{width:20rem}.w-\[150px\]{width:150px}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[7rem\]{min-width:7rem}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-\[350px\]{max-width:350px}.max-w-\[550px\]{max-width:550px}.max-w-\[650px\]{max-width:650px}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-screen-lg{max-width:992px}.max-w-xl{max-width:36rem}.grow{flex-grow:1}.-scale-x-100{--tw-scale-x: -1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.content-stretch{align-content:stretch}.items-start{align-items:flex-start}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-12{gap:3rem}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-7{gap:1.75rem}.gap-8{gap:2rem}.gap-y-4{row-gap:1rem}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.text-ellipsis{text-overflow:ellipsis}.rounded-full{border-radius:9999px}.border-4{border-width:4px}.border-none{border-style:none}.border-yellow-500{--tw-border-opacity: 1;border-color:rgb(249 206 5 / var(--tw-border-opacity))}.\!bg-grey-100{--tw-bg-opacity: 1 !important;background-color:rgb(243 243 243 / var(--tw-bg-opacity))!important}.\!bg-grey-180{--tw-bg-opacity: 1 !important;background-color:rgb(238 238 238 / var(--tw-bg-opacity))!important}.bg-\[\#00000088\]{background-color:#0008}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-blue-300{--tw-bg-opacity: 1;background-color:rgb(2 125 168 / var(--tw-bg-opacity))}.bg-green-400{--tw-bg-opacity: 1;background-color:rgb(76 169 113 / var(--tw-bg-opacity))}.bg-grey-100{--tw-bg-opacity: 1;background-color:rgb(243 243 243 / var(--tw-bg-opacity))}.bg-grey-150{--tw-bg-opacity: 1;background-color:rgb(236 236 236 / var(--tw-bg-opacity))}.bg-grey-180{--tw-bg-opacity: 1;background-color:rgb(238 238 238 / var(--tw-bg-opacity))}.bg-grey-200{--tw-bg-opacity: 1;background-color:rgb(173 173 173 / var(--tw-bg-opacity))}.bg-pirati-yellow{--tw-bg-opacity: 1;background-color:rgb(254 201 0 / var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(214 13 83 / var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-yellow-300{--tw-bg-opacity: 1;background-color:rgb(255 234 90 / var(--tw-bg-opacity))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(249 206 5 / var(--tw-bg-opacity))}.bg-cover{background-size:cover}.bg-center{background-position:center}.bg-no-repeat{background-repeat:no-repeat}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-2{padding:.5rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-52{padding-top:13rem;padding-bottom:13rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-12{padding-bottom:3rem}.pb-16{padding-bottom:4rem}.pb-24{padding-bottom:6rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-7{padding-left:1.75rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-12{padding-top:3rem}.pt-16{padding-top:4rem}.pt-24{padding-top:6rem}.pt-28{padding-top:7rem}.pt-32{padding-top:8rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.text-left{text-align:left}.text-center{text-align:center}.text-justify{text-align:justify}.font-alt{font-family:Bebas Neue,Helvetica,Arial,sans-serif}.font-condensed{font-family:Roboto Condensed,Helvetica,Arial,sans-serif}.text-2xl{font-size:1.6rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.45rem}.text-5xl{font-size:3rem}.text-6xl{font-size:4rem}.text-7xl{font-size:5.3rem}.text-8xl{font-size:6.25rem}.text-9xl{font-size:7.5rem}.text-\[3\.5rem\]{font-size:3.5rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-sm{font-size:.875rem}.text-xl{font-size:1.3rem}.text-xs{font-size:.75rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-3{line-height:.75rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-8{line-height:2rem}.leading-\[1\.8rem\]{line-height:1.8rem}.leading-\[10\.5rem\]{line-height:10.5rem}.tracking-tight{letter-spacing:-.025em}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-grey-185{--tw-text-opacity: 1;color:rgb(189 189 189 / var(--tw-text-opacity))}.text-grey-200{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-grey-250{--tw-text-opacity: 1;color:rgb(136 136 136 / var(--tw-text-opacity))}.text-grey-300{--tw-text-opacity: 1;color:rgb(76 76 76 / var(--tw-text-opacity))}.text-grey-350{--tw-text-opacity: 1;color:rgb(79 79 79 / var(--tw-text-opacity))}.text-grey-600{--tw-text-opacity: 1;color:rgb(38 38 38 / var(--tw-text-opacity))}.text-pirati-yellow{--tw-text-opacity: 1;color:rgb(254 201 0 / var(--tw-text-opacity))}.text-turquoise-500{--tw-text-opacity: 1;color:rgb(37 165 185 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.decoration-1{text-decoration-thickness:1px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.bg-blend-darken{background-blend-mode:darken}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-lg{--tw-drop-shadow: drop-shadow(0 10px 8px rgb(0 0 0 / .04)) drop-shadow(0 4px 3px rgb(0 0 0 / .1));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.duration-200{transition-duration:.2s}.btn.btn--fullwidth,.btn.btn--fullwidth .btn__body-wrap{width:100%;max-width:100%}.btn.btn--fullwidth .btn__body{flex:1}.btn.btn--autowidth{width:auto}@media (min-width: 1200px){.grid-container{grid-template-columns:240px 1fr 102px;grid-template-areas:"left-side content right-side";margin-left:10vw}}@media (min-width: 2060px){.grid-container{margin-left:20vw}}@media (min-width: 1200px){.grid-container.person-grid-container{grid-template-columns:240px 1fr 339px}}.head-alt-xl,.content-block .head-alt-xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:5.3rem;font-weight:400;line-height:.96}.head-alt-lg,.content-block .head-alt-lg{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:4rem;font-weight:400;line-height:.96}.head-alt-md,.content-block .head-alt-md{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:2.45rem;font-weight:400;line-height:.96}.head-alt-base,.content-block .head-alt-base{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem;font-weight:400;line-height:.96}.head-alt-sm,.content-block .head-alt-sm{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.6rem;font-weight:400;line-height:.96}.head-alt-xs,.content-block .head-alt-xs{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.3rem;font-weight:400;line-height:.96}.head-alt-2xs,.content-block .head-alt-2xs{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:400;line-height:.96}.head-base,.content-block .head-base{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1.875rem;font-weight:500;line-height:1.25}.head-sm,.content-block .head-sm{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1.6rem;font-weight:500;line-height:1.25}.head-xs,.content-block .head-xs{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1.3rem;font-weight:500;line-height:1.25}.head-2xs,.content-block .head-2xs{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:500;line-height:1.25}.head-heavy-base,.content-block .head-heavy-base{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1.875rem;font-weight:700;line-height:1.25}.head-heavy-sm,.content-block .head-heavy-sm{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1.6rem;font-weight:700;line-height:1.25}.head-heavy-xs,.content-block .head-heavy-xs{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1.3rem;font-weight:700;line-height:1.25}.head-heavy-2xs,.content-block .head-heavy-2xs{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:700;line-height:1.25}.head-allcaps-2xs,.content-block .head-allcaps-2xs{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:400;text-transform:uppercase;line-height:1.25}.head-allcaps-3xs,.content-block .head-allcaps-3xs{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1rem;font-weight:400;text-transform:uppercase;line-height:1.25}.head-allcaps-4xs,.content-block .head-allcaps-4xs{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:.875rem;font-weight:400;text-transform:uppercase;line-height:1.25}.head-allcaps-heavy-2xs,.content-block .head-allcaps-heavy-2xs{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:700;text-transform:uppercase;line-height:1.25}.head-allcaps-heavy-3xs,.content-block .head-allcaps-heavy-3xs{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1rem;font-weight:700;text-transform:uppercase;line-height:1.25}.head-allcaps-heavy-4xs,.content-block .head-allcaps-heavy-4xs{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:.875rem;font-weight:700;text-transform:uppercase;line-height:1.25}@media (min-width: 1200px){.switch__item{padding:.5rem 1.25rem}}.slick-track[data-v-e4caeaf8]{position:relative;top:0;left:0;display:block;transform:translateZ(0)}.slick-track.slick-center[data-v-e4caeaf8]{margin-left:auto;margin-right:auto}.slick-track[data-v-e4caeaf8]:after,.slick-track[data-v-e4caeaf8]:before{display:table;content:""}.slick-track[data-v-e4caeaf8]:after{clear:both}.slick-loading .slick-track[data-v-e4caeaf8]{visibility:hidden}.slick-slide[data-v-e4caeaf8]{display:none;float:left;height:100%;min-height:1px}[dir=rtl] .slick-slide[data-v-e4caeaf8]{float:right}.slick-slide img[data-v-e4caeaf8]{display:block}.slick-slide.slick-loading img[data-v-e4caeaf8]{display:none}.slick-slide.dragging img[data-v-e4caeaf8]{pointer-events:none}.slick-initialized .slick-slide[data-v-e4caeaf8]{display:block}.slick-loading .slick-slide[data-v-e4caeaf8]{visibility:hidden}.slick-vertical .slick-slide[data-v-e4caeaf8]{display:block;height:auto;border:1px solid transparent}.slick-arrow.slick-hidden[data-v-21137603]{display:none}.slick-slider[data-v-3d1a4f76]{position:relative;display:block;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.slick-list[data-v-3d1a4f76]{position:relative;display:block;overflow:hidden;margin:0;padding:0;transform:translateZ(0)}.slick-list[data-v-3d1a4f76]:focus{outline:none}.slick-list.dragging[data-v-3d1a4f76]{cursor:pointer;cursor:hand}::-moz-selection{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity));background:#f9ce05}::selection{background:#f9ce05}:root{font-size:16px}body{font-family:Roboto,Helvetica,Arial,sans-serif;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:1rem}a:hover{text-decoration-line:underline}a.icon-link:hover{text-decoration-line:none}a.icon-link:hover span{text-decoration-line:underline}[v-cloak]{display:none}.copyleft{transform:scaleX(-1)!important}.inline-block-nogap{font-size:0}.iframe-container{position:relative;padding-bottom:56.25%;height:0}.iframe-container iframe{position:absolute;top:0;left:0;height:100%;width:100%}.hover\:bg-yellow-600:hover{--tw-bg-opacity: 1;background-color:rgb(215 177 3 / var(--tw-bg-opacity))}.hover\:no-underline:hover{text-decoration-line:none}.group:hover .group-hover\:-translate-x-2{--tw-translate-x: -.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:border-yellow-600{--tw-border-opacity: 1;border-color:rgb(215 177 3 / var(--tw-border-opacity))}.group:hover .group-hover\:opacity-100{opacity:1}@media (min-width: 576px){.sm\:w-5\/12{width:41.666667%}.sm\:w-6\/12{width:50%}.sm\:text-4xl{font-size:2.45rem}}@media (min-width: 768px){.md\:mb-6{margin-bottom:1.5rem}.md\:mt-20{margin-top:5rem}.md\:flex{display:flex}.md\:grid{display:grid}.md\:w-96{width:24rem}.md\:shrink-0{flex-shrink:0}.md\:auto-rows-auto{grid-auto-rows:auto}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:flex-col{flex-direction:column}.md\:items-end{align-items:flex-end}.md\:justify-end{justify-content:flex-end}.md\:justify-between{justify-content:space-between}.md\:gap-8{gap:2rem}.md\:gap-x-14{-moz-column-gap:3.5rem;column-gap:3.5rem}.md\:gap-y-5{row-gap:1.25rem}.md\:pr-0{padding-right:0}.md\:text-2xl{font-size:1.6rem}.md\:text-4xl{font-size:2.45rem}.md\:text-base{font-size:1rem}}@media (min-width: 992px){.lg\:float-right{float:right}.lg\:float-left{float:left}.lg\:mx-8{margin-left:2rem;margin-right:2rem}.lg\:my-4{margin-top:1rem;margin-bottom:1rem}.lg\:mb-12{margin-bottom:3rem}.lg\:w-2\/5{width:40%}.lg\:w-5\/12{width:41.666667%}.lg\:w-7\/12{width:58.333333%}.lg\:w-\[unset\]{width:unset}.lg\:max-w-screen-lg{max-width:992px}.lg\:grow-0{flex-grow:0}.lg\:basis-1\/3{flex-basis:33.333333%}.lg\:basis-2\/3{flex-basis:66.666667%}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-nowrap{flex-wrap:nowrap}.lg\:gap-2{gap:.5rem}.lg\:text-base{font-size:1rem}}@media (min-width: 1200px){.xl\:my-10{margin-top:2.5rem;margin-bottom:2.5rem}.xl\:mb-0{margin-bottom:0}.xl\:mb-12{margin-bottom:3rem}.xl\:mb-20{margin-bottom:5rem}.xl\:mb-24{margin-bottom:6rem}.xl\:mb-32{margin-bottom:8rem}.xl\:mb-6{margin-bottom:1.5rem}.xl\:mb-8{margin-bottom:2rem}.xl\:mr-12{margin-right:3rem}.xl\:mr-16{margin-right:4rem}.xl\:mr-2{margin-right:.5rem}.xl\:mt-\[-0\.7rem\]{margin-top:-.7rem}.xl\:mt-\[-1rem\]{margin-top:-1rem}.xl\:block{display:block}.xl\:inline{display:inline}.xl\:flex{display:flex}.xl\:hidden{display:none}.xl\:h-14{height:3.5rem}.xl\:h-screen{height:100vh}.xl\:w-14{width:3.5rem}.xl\:w-60{width:15rem}.xl\:w-auto{width:auto}.xl\:shrink-0{flex-shrink:0}.xl\:grow-0{flex-grow:0}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:flex-row{flex-direction:row}.xl\:items-end{align-items:flex-end}.xl\:items-center{align-items:center}.xl\:justify-start{justify-content:flex-start}.xl\:gap-0{gap:0px}.xl\:gap-4{gap:1rem}.xl\:gap-6{gap:1.5rem}.xl\:gap-8{gap:2rem}.xl\:gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.xl\:justify-self-end{justify-self:end}.xl\:px-0{padding-left:0;padding-right:0}.xl\:px-5{padding-left:1.25rem;padding-right:1.25rem}.xl\:py-0{padding-top:0;padding-bottom:0}.xl\:py-24{padding-top:6rem;padding-bottom:6rem}.xl\:py-4{padding-top:1rem;padding-bottom:1rem}.xl\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.xl\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.xl\:pb-16{padding-bottom:4rem}.xl\:pb-24{padding-bottom:6rem}.xl\:pl-32{padding-left:8rem}.xl\:pl-8{padding-left:2rem}.xl\:pr-0{padding-right:0}.xl\:pr-20{padding-right:5rem}.xl\:pr-3{padding-right:.75rem}.xl\:pr-4{padding-right:1rem}.xl\:pt-32{padding-top:8rem}.xl\:pt-48{padding-top:12rem}.xl\:pt-8{padding-top:2rem}.xl\:text-14xl{font-size:10.6rem}.xl\:text-3xl{font-size:1.875rem}.xl\:text-4xl{font-size:2.45rem}.xl\:text-7xl{font-size:5.3rem}.xl\:text-9xl{font-size:7.5rem}.xl\:text-lg{font-size:1.125rem}.xl\:text-xl{font-size:1.3rem}.xl\:leading-\[10\.5rem\]{line-height:10.5rem}}@media (min-width: 1366px){.\32xl\:flex{display:flex}.\32xl\:hidden{display:none}.\32xl\:items-start{align-items:flex-start}.\32xl\:bg-transparent{background-color:transparent}}@media (min-width: 2060px){.\33xl\:text-lg{font-size:1.125rem}}.\[\&_p\]\:\!text-lg p{font-size:1.125rem!important}.\[\&_p\]\:text-lg p{font-size:1.125rem}.\[\&_p\]\:leading-7 p{line-height:1.75rem}.\[\&_p\]\:text-black p{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1} +@import"https://gfonts.pirati.cz/css2?family=Bebas+Neue&family=Roboto+Condensed:wght@300;400;700&family=Roboto:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400&display=swap";@font-face{font-family:pirati-ui;src:url(/static/main/pirati-ui.eot?bna028);src:url(/static/main/pirati-ui.eot?bna028#iefix) format("embedded-opentype"),url(/static/main/pirati-ui.ttf?bna028) format("truetype"),url(/static/main/pirati-ui.woff?bna028) format("woff"),url(/static/main/pirati-ui.svg?bna028#pirati-ui) format("svg");font-weight:400;font-style:normal;font-display:block}[class^=ico--],[class*=" ico--"]{font-family:pirati-ui!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ico--twitter:before{content:"\e977"}.ico--mastodon:before{content:"\e973"}.ico--helios:before{content:"\e96e"}.ico--redmine:before{content:"\e96f"}.ico--zulip:before{content:"\e970"}.ico--forum:before{content:"\e971"}.ico--pirati:before{content:"\e90d"}.ico--jitsi:before{content:"\e90f"}.ico--open-source:before{content:"\e90e"}.ico--donation-full:before{content:"\e96c"}.ico--donation-outline:before{content:"\e96d"}.ico--strategy:before{content:"\e932"}.ico--pig:before{content:"\e928"}.ico--thermometer:before{content:"\e90a"}.ico--menu:before{content:"\e933"}.ico--chevron-right:before{content:"\e923"}.ico--chevron-left:before{content:"\e924"}.ico--chevron-down:before{content:"\e925"}.ico--chevron-up:before{content:"\e926"}.ico--link-horizontal:before{content:"\e910"}.ico--beer:before{content:"\e909"}.ico--food:before{content:"\e968"}.ico--dots-three-vertical:before{content:"\e940"}.ico--dots-three-horizontal:before{content:"\e941"}.ico--log-out:before{content:"\e942"}.ico--envelope:before{content:"\e908"}.ico--pin:before{content:"\e943"}.ico--at:before{content:"\e905"}.ico--glass:before{content:"\e967"}.ico--checkmark:before{content:"\e965"}.ico--info:before{content:"\e901"}.ico--question:before{content:"\e904"}.ico--warning:before{content:"\e93f"}.ico--code:before{content:"\e94a"}.ico--checkbox-unchecked:before{content:"\e94e"}.ico--star-full:before{content:"\e94f"}.ico--star-empty:before{content:"\e950"}.ico--bookmark:before{content:"\e951"}.ico--cog:before{content:"\e952"}.ico--key:before{content:"\e953"}.ico--zoom-in:before{content:"\e954"}.ico--zoom-out:before{content:"\e955"}.ico--shrink:before{content:"\e956"}.ico--printer:before{content:"\e957"}.ico--file-openoffice:before{content:"\e958"}.ico--user:before{content:"\e959"}.ico--file-excel:before{content:"\e95a"}.ico--file-word:before{content:"\e95b"}.ico--file-pdf:before{content:"\e95c"}.ico--file-picture:before{content:"\e95d"}.ico--file-blank:before{content:"\e95e"}.ico--folder-upload:before{content:"\e95f"}.ico--upload:before{content:"\e960"}.ico--cloud-upload:before{content:"\e961"}.ico--folder-download:before{content:"\e962"}.ico--download:before{content:"\e963"}.ico--cloud-download:before{content:"\e964"}.ico--alarm:before{content:"\e900"}.ico--calculator:before{content:"\e911"}.ico--facebook-full:before{content:"\e913"}.ico--feed:before{content:"\e927"}.ico--library:before{content:"\e929"}.ico--office:before{content:"\e92a"}.ico--attachment:before{content:"\e92b"}.ico--enlarge:before{content:"\e92c"}.ico--eye-off:before{content:"\e92e"}.ico--eye:before{content:"\e92f"}.ico--share:before{content:"\e931"}.ico--search:before{content:"\e939"}.ico--pencil:before{content:"\e93c"}.ico--lock-open:before{content:"\e947"}.ico--lock:before{content:"\e948"}.ico--equalizer:before{content:"\e949"}.ico--switch:before{content:"\e94b"}.ico--loop:before{content:"\e94c"}.ico--refresh:before{content:"\e94d"}.ico--bullhorn:before{content:"\e944"}.ico--bin:before{content:"\e945"}.ico--cross:before{content:"\e937"}.ico--checkbox-checked:before{content:"\e938"}.ico--globe:before{content:"\e93a"}.ico--wikipedia:before{content:"\e93b"}.ico--youtube:before{content:"\e936"}.ico--users:before{content:"\e934"}.ico--book:before{content:"\e935"}.ico--bubbles:before{content:"\e930"}.ico--map:before{content:"\e914"}.ico--compass:before{content:"\e915"}.ico--folder-open:before{content:"\e916"}.ico--folder:before{content:"\e917"}.ico--drawer:before{content:"\e918"}.ico--stop:before{content:"\e919"}.ico--github:before{content:"\e91a"}.ico--clock:before{content:"\e91b"}.ico--calendar:before{content:"\e91c"}.ico--flickr:before{content:"\e91d"}.ico--instagram:before{content:"\e91e"}.ico--newspaper:before{content:"\e920"}.ico--cart:before{content:"\e921"}.ico--home:before{content:"\e922"}.ico--link:before{content:"\e912"}.ico--power:before{content:"\e90c"}.ico--rocket:before{content:"\e946"}.ico--location:before{content:"\e906"}.ico--phone:before{content:"\e907"}.ico--linkedin:before{content:"\e903"}.ico--facebook:before{content:"\e902"}.ico--envelop:before{content:"\e972"}.ico--file-text2:before{content:"\e974"}.ico--price-tag:before{content:"\e975"}.ico--price-tags:before{content:"\e976"}.ico--stats-dots:before{content:"\e99b"}.ico--bed:before{content:"\e969"}.ico--train:before{content:"\e96a"}.ico--bus:before{content:"\e96b"}.ico--wheelchair:before{content:"\e966"}.ico--thumbs-down:before{content:"\e93d"}.ico--thumbs-up:before{content:"\e93e"}.ico--anchor:before{content:"\e92d"}.ico--paw:before{content:"\e90b"}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~="lead"]):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:inherit}.prose :where(thead th strong):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:inherit}.prose :where(ol):not(:where([class~="not-prose"],[class~="not-prose"] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol[type="A"]):not(:where([class~="not-prose"],[class~="not-prose"] *)){list-style-type:upper-alpha}.prose :where(ol[type="a"]):not(:where([class~="not-prose"],[class~="not-prose"] *)){list-style-type:lower-alpha}.prose :where(ol[type="A" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)){list-style-type:upper-alpha}.prose :where(ol[type="a" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)){list-style-type:lower-alpha}.prose :where(ol[type="I"]):not(:where([class~="not-prose"],[class~="not-prose"] *)){list-style-type:upper-roman}.prose :where(ol[type="i"]):not(:where([class~="not-prose"],[class~="not-prose"] *)){list-style-type:lower-roman}.prose :where(ol[type="I" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)){list-style-type:upper-roman}.prose :where(ol[type="i" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~="not-prose"],[class~="not-prose"] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~="not-prose"],[class~="not-prose"] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-left-width:.25rem;border-left-color:var(--tw-prose-quote-borders);quotes:"\201c""\201d""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.prose :where(blockquote p:first-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *)):after{content:close-quote}.prose :where(h1):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~="not-prose"],[class~="not-prose"] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%),0 3px 0 rgb(var(--tw-prose-kbd-shadows) / 10%);font-size:.875em;border-radius:.3125rem;padding:.1875em .375em}.prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)):before{content:"`"}.prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)):after{content:"`"}.prose :where(a code):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:inherit}.prose :where(h1 code):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:inherit}.prose :where(h2 code):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:inherit}.prose :where(blockquote code):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:inherit}.prose :where(thead th code):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:inherit}.prose :where(pre):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding:.8571429em 1.1428571em}.prose :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *)):before{content:none}.prose :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *)):after{content:none}.prose :where(table):not(:where([class~="not-prose"],[class~="not-prose"] *)){width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~="not-prose"],[class~="not-prose"] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.prose :where(tbody tr):not(:where([class~="not-prose"],[class~="not-prose"] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~="not-prose"],[class~="not-prose"] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~="not-prose"],[class~="not-prose"] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)){vertical-align:top}.prose :where(figure > *):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~="not-prose"],[class~="not-prose"] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: 17 24 39;--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: 255 255 255;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(picture > img):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:0;margin-bottom:0}.prose :where(video):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:2em;margin-bottom:2em}.prose :where(li):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *)){padding-left:.375em}.prose :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *)){padding-left:.375em}.prose :where(.prose > ul > li p):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose > ul > li > *:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:1.25em}.prose :where(.prose > ul > li > *:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-bottom:1.25em}.prose :where(.prose > ol > li > *:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:1.25em}.prose :where(.prose > ol > li > *:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:.5em;padding-left:1.625em}.prose :where(hr + *):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:0}.prose :where(h2 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:0}.prose :where(h3 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:0}.prose :where(h4 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)){padding-left:0}.prose :where(thead th:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)){padding-right:0}.prose :where(tbody td,tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)){padding:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)){padding-left:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)){padding-right:0}.prose :where(figure):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose > :first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-top:0}.prose :where(.prose > :last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-bottom:0}.btn{display:inline-block;text-align:center;font-weight:400;max-width:20rem;text-decoration:none}.btn[disabled]{opacity:.7;cursor:not-allowed}.btn:hover{text-decoration:none}.btn__body{display:flex;height:100%;align-items:center;justify-content:center;padding:.25em 2em}.btn__body-wrap{min-width:10rem;min-height:2.75rem}.btn__body,.btn__icon,.btn__inline-icon{transition-property:color,background-color,border-color;transition-duration:.2s;color:#fff}.btn__body,.btn__icon{background-color:#000}.btn--icon .btn__body-wrap{display:flex}.btn--condensed .btn__body{padding:.75em 1em}@keyframes btn-loading-spinner{to{transform:rotate(360deg)}}.btn--black .btn__body,.btn--black .btn__icon{background-color:#000;color:#fff}.btn--black.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--black.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#000;color:#fff}.btn--black.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#262626}.btn--black.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--black.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-black:hover .btn__body,.btn--to-black.btn--activated .btn__body{background-color:#000!important;color:#fff!important}.btn--hoveractive.btn--to-black:hover .btn__icon,.btn--to-black.btn--activated .btn__icon{border-color:#343434!important;background-color:#000!important}.btn--hoveractive.btn--to-black:hover .btn__inline-icon,.btn--to-black.btn--activated .btn__inline-icon{color:#fff!important}.btn--grey-700 .btn__body,.btn--grey-700 .btn__icon{background-color:#202020;color:#fff}.btn--grey-700.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--grey-700.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#343434;color:#fff}.btn--grey-700.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#262626}.btn--grey-700.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--grey-700.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-grey-700:hover .btn__body,.btn--to-grey-700.btn--activated .btn__body{background-color:#202020!important;color:#fff!important}.btn--hoveractive.btn--to-grey-700:hover .btn__icon,.btn--to-grey-700.btn--activated .btn__icon{border-color:#303132!important;background-color:#202020!important}.btn--hoveractive.btn--to-grey-700:hover .btn__inline-icon,.btn--to-grey-700.btn--activated .btn__inline-icon{color:#fff!important}.btn--grey-500 .btn__body,.btn--grey-500 .btn__icon{background-color:#303132;color:#fff}.btn--grey-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--grey-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#4c4c4c;color:#fff}.btn--grey-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#343434}.btn--grey-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--grey-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-grey-500:hover .btn__body,.btn--to-grey-500.btn--activated .btn__body{background-color:#303132!important;color:#fff!important}.btn--hoveractive.btn--to-grey-500:hover .btn__icon,.btn--to-grey-500.btn--activated .btn__icon{border-color:#4c4c4c!important;background-color:#303132!important}.btn--hoveractive.btn--to-grey-500:hover .btn__inline-icon,.btn--to-grey-500.btn--activated .btn__inline-icon{color:#fff!important}.btn--grey-125 .btn__body,.btn--grey-125 .btn__icon{background-color:#f0f0f0;color:#000}.btn--grey-125.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--grey-125.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:silver;color:#fff}.btn--grey-125.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#a8a8a8}.btn--grey-125.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--grey-125.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-grey-125:hover .btn__body,.btn--to-grey-125.btn--activated .btn__body{background-color:#f0f0f0!important;color:#000!important}.btn--hoveractive.btn--to-grey-125:hover .btn__icon,.btn--to-grey-125.btn--activated .btn__icon{border-color:#d8d8d8!important;background-color:#f0f0f0!important}.btn--hoveractive.btn--to-grey-125:hover .btn__inline-icon,.btn--to-grey-125.btn--activated .btn__inline-icon{color:#000!important}.btn--grey-175 .btn__body,.btn--grey-175 .btn__icon{background-color:#d0d0d0;color:#000}.btn--grey-175.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--grey-175.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#a6a6a6;color:#fff}.btn--grey-175.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#929292}.btn--grey-175.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--grey-175.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-grey-175:hover .btn__body,.btn--to-grey-175.btn--activated .btn__body{background-color:#d0d0d0!important;color:#000!important}.btn--hoveractive.btn--to-grey-175:hover .btn__icon,.btn--to-grey-175.btn--activated .btn__icon{border-color:#bbb!important;background-color:#d0d0d0!important}.btn--hoveractive.btn--to-grey-175:hover .btn__inline-icon,.btn--to-grey-175.btn--activated .btn__inline-icon{color:#000!important}.btn--white .btn__body,.btn--white .btn__icon{background-color:#fff;color:#000}.btn--white.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--white.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#ccc;color:#fff}.btn--white.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#b3b3b3}.btn--white.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--white.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-white:hover .btn__body,.btn--to-white.btn--activated .btn__body{background-color:#fff!important;color:#000!important}.btn--hoveractive.btn--to-white:hover .btn__icon,.btn--to-white.btn--activated .btn__icon{border-color:#f3f3f3!important;background-color:#fff!important}.btn--hoveractive.btn--to-white:hover .btn__inline-icon,.btn--to-white.btn--activated .btn__inline-icon{color:#000!important}.btn--blue-300 .btn__body,.btn--blue-300 .btn__icon{background-color:#027da8;color:#fff}.btn--blue-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--blue-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#026486;color:#fff}.btn--blue-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#015876}.btn--blue-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--blue-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-blue-300:hover .btn__body,.btn--to-blue-300.btn--activated .btn__body{background-color:#027da8!important;color:#fff!important}.btn--hoveractive.btn--to-blue-300:hover .btn__icon,.btn--to-blue-300.btn--activated .btn__icon{border-color:#027197!important;background-color:#027da8!important}.btn--hoveractive.btn--to-blue-300:hover .btn__inline-icon,.btn--to-blue-300.btn--activated .btn__inline-icon{color:#fff!important}.btn--cyan-200 .btn__body,.btn--cyan-200 .btn__icon{background-color:#57b3bd;color:#fff}.btn--cyan-200.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--cyan-200.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#3e959f;color:#fff}.btn--cyan-200.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#37838b}.btn--cyan-200.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--cyan-200.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-cyan-200:hover .btn__body,.btn--to-cyan-200.btn--activated .btn__body{background-color:#57b3bd!important;color:#fff!important}.btn--hoveractive.btn--to-cyan-200:hover .btn__icon,.btn--to-cyan-200.btn--activated .btn__icon{border-color:#46a8b2!important;background-color:#57b3bd!important}.btn--hoveractive.btn--to-cyan-200:hover .btn__inline-icon,.btn--to-cyan-200.btn--activated .btn__inline-icon{color:#fff!important}.btn--green-300 .btn__body,.btn--green-300 .btn__icon{background-color:#76cc9f;color:#fff}.btn--green-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--green-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#47bb7e;color:#fff}.btn--green-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#3da46e}.btn--green-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--green-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-green-300:hover .btn__body,.btn--to-green-300.btn--activated .btn__body{background-color:#76cc9f!important;color:#fff!important}.btn--hoveractive.btn--to-green-300:hover .btn__icon,.btn--to-green-300.btn--activated .btn__icon{border-color:#5fc38f!important;background-color:#76cc9f!important}.btn--hoveractive.btn--to-green-300:hover .btn__inline-icon,.btn--to-green-300.btn--activated .btn__inline-icon{color:#fff!important}.btn--green-400 .btn__body,.btn--green-400 .btn__icon{background-color:#4ca971;color:#fff}.btn--green-400.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--green-400.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#3d875a;color:#fff}.btn--green-400.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#35764f}.btn--green-400.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--green-400.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-green-400:hover .btn__body,.btn--to-green-400.btn--activated .btn__body{background-color:#4ca971!important;color:#fff!important}.btn--hoveractive.btn--to-green-400:hover .btn__icon,.btn--to-green-400.btn--activated .btn__icon{border-color:#449866!important;background-color:#4ca971!important}.btn--hoveractive.btn--to-green-400:hover .btn__inline-icon,.btn--to-green-400.btn--activated .btn__inline-icon{color:#fff!important}.btn--green-500 .btn__body,.btn--green-500 .btn__icon{background-color:#4fc49f;color:#000}.btn--green-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--green-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#37a582;color:#fff}.btn--green-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#309072}.btn--green-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--green-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-green-500:hover .btn__body,.btn--to-green-500.btn--activated .btn__body{background-color:#4fc49f!important;color:#000!important}.btn--hoveractive.btn--to-green-500:hover .btn__icon,.btn--to-green-500.btn--activated .btn__icon{border-color:#3eb992!important;background-color:#4fc49f!important}.btn--hoveractive.btn--to-green-500:hover .btn__inline-icon,.btn--to-green-500.btn--activated .btn__inline-icon{color:#000!important}.btn--yellow-500 .btn__body,.btn--yellow-500 .btn__icon{background-color:#f9ce05;color:#000}.btn--yellow-500 .btn__icon{border-color:#e0b905;background-color:#f9ce05}.btn--yellow-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--yellow-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#c7a504;color:#fff}.btn--yellow-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#ae9004}.btn--yellow-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--yellow-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-yellow-500:hover .btn__body,.btn--to-yellow-500.btn--activated .btn__body{background-color:#f9ce05!important;color:#000!important}.btn--hoveractive.btn--to-yellow-500:hover .btn__icon,.btn--to-yellow-500.btn--activated .btn__icon{border-color:#e0b905!important;background-color:#f9ce05!important}.btn--hoveractive.btn--to-yellow-500:hover .btn__inline-icon,.btn--to-yellow-500.btn--activated .btn__inline-icon{color:#000!important}.btn--yellow-600 .btn__body,.btn--yellow-600 .btn__icon{background-color:#d7b103;color:#000}.btn--yellow-600.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--yellow-600.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#ac8e02;color:#fff}.btn--yellow-600.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#977c02}.btn--yellow-600.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--yellow-600.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-yellow-600:hover .btn__body,.btn--to-yellow-600.btn--activated .btn__body{background-color:#d7b103!important;color:#000!important}.btn--hoveractive.btn--to-yellow-600:hover .btn__icon,.btn--to-yellow-600.btn--activated .btn__icon{border-color:#c29f03!important;background-color:#d7b103!important}.btn--hoveractive.btn--to-yellow-600:hover .btn__inline-icon,.btn--to-yellow-600.btn--activated .btn__inline-icon{color:#000!important}.btn--orange-300 .btn__body,.btn--orange-300 .btn__icon{background-color:#ed9654;color:#fff}.btn--orange-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--orange-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#e7721a;color:#fff}.btn--orange-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#cb6415}.btn--orange-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--orange-300.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-orange-300:hover .btn__body,.btn--to-orange-300.btn--activated .btn__body{background-color:#ed9654!important;color:#fff!important}.btn--hoveractive.btn--to-orange-300:hover .btn__icon,.btn--to-orange-300.btn--activated .btn__icon{border-color:#ea8437!important;background-color:#ed9654!important}.btn--hoveractive.btn--to-orange-300:hover .btn__inline-icon,.btn--to-orange-300.btn--activated .btn__inline-icon{color:#fff!important}.btn--violet-400 .btn__body,.btn--violet-400 .btn__icon{background-color:#840048;color:#fff}.btn--violet-400.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--violet-400.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#6a003a;color:#fff}.btn--violet-400.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#5c0032}.btn--violet-400.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--violet-400.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-violet-400:hover .btn__body,.btn--to-violet-400.btn--activated .btn__body{background-color:#840048!important;color:#fff!important}.btn--hoveractive.btn--to-violet-400:hover .btn__icon,.btn--to-violet-400.btn--activated .btn__icon{border-color:#770041!important;background-color:#840048!important}.btn--hoveractive.btn--to-violet-400:hover .btn__inline-icon,.btn--to-violet-400.btn--activated .btn__inline-icon{color:#fff!important}.btn--violet-500 .btn__body,.btn--violet-500 .btn__icon{background-color:#670047;color:#000}.btn--violet-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--violet-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#520039;color:#fff}.btn--violet-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#480032}.btn--violet-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--violet-500.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-violet-500:hover .btn__body,.btn--to-violet-500.btn--activated .btn__body{background-color:#670047!important;color:#000!important}.btn--hoveractive.btn--to-violet-500:hover .btn__icon,.btn--to-violet-500.btn--activated .btn__icon{border-color:#5d0040!important;background-color:#670047!important}.btn--hoveractive.btn--to-violet-500:hover .btn__inline-icon,.btn--to-violet-500.btn--activated .btn__inline-icon{color:#000!important}.btn--violet-700 .btn__body,.btn--violet-700 .btn__icon{background-color:#7d347d;color:#000}.btn--violet-700.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--violet-700.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#642a64;color:#fff}.btn--violet-700.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#582458}.btn--violet-700.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--violet-700.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-violet-700:hover .btn__body,.btn--to-violet-700.btn--activated .btn__body{background-color:#7d347d!important;color:#000!important}.btn--hoveractive.btn--to-violet-700:hover .btn__icon,.btn--to-violet-700.btn--activated .btn__icon{border-color:#712f71!important;background-color:#7d347d!important}.btn--hoveractive.btn--to-violet-700:hover .btn__inline-icon,.btn--to-violet-700.btn--activated .btn__inline-icon{color:#000!important}.btn--red-600 .btn__body,.btn--red-600 .btn__icon{background-color:#d60d53;color:#fff}.btn--red-600.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--red-600.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#ab0a42;color:#fff}.btn--red-600.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#96093a}.btn--red-600.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--red-600.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-red-600:hover .btn__body,.btn--to-red-600.btn--activated .btn__body{background-color:#d60d53!important;color:#fff!important}.btn--hoveractive.btn--to-red-600:hover .btn__icon,.btn--to-red-600.btn--activated .btn__icon{border-color:#c10c4b!important;background-color:#d60d53!important}.btn--hoveractive.btn--to-red-600:hover .btn__inline-icon,.btn--to-red-600.btn--activated .btn__inline-icon{color:#fff!important}.btn--brands-facebook .btn__body,.btn--brands-facebook .btn__icon{background-color:#067ceb;color:#fff}.btn--brands-facebook.btn--hoveractive:not([class^="btn--to-"]):hover .btn__body,.btn--brands-facebook.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{background-color:#0563bc;color:#fff}.btn--brands-facebook.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon{border-color:#0457a5}.btn--brands-facebook.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon svg,.btn--brands-facebook.btn--hoveractive:not([class^="btn--to-"]):hover .btn__icon i{color:#fff;fill:#fff}.btn--hoveractive.btn--to-brands-facebook:hover .btn__body,.btn--to-brands-facebook.btn--activated .btn__body{background-color:#067ceb!important;color:#fff!important}.btn--hoveractive.btn--to-brands-facebook:hover .btn__icon,.btn--to-brands-facebook.btn--activated .btn__icon{border-color:#0570d4!important;background-color:#067ceb!important}.btn--hoveractive.btn--to-brands-facebook:hover .btn__inline-icon,.btn--to-brands-facebook.btn--activated .btn__inline-icon{color:#fff!important}.container--default{max-width:1200px}.container--narrow{margin:auto;width:882px}.container--medium{padding-left:1.25rem;padding-right:1.25rem;margin:auto;max-width:1350px}.container--wide{padding-left:1.25rem;padding-right:1.25rem;margin:auto;max-width:1400px}.header-max-width{max-width:1340px!important}.container{margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem;max-width:1150px}.grid-container{margin-left:1.25rem;margin-right:1.25rem;display:grid;grid-template-columns:1fr;grid-template-areas:"left-side" "content" "right-side";gap:1rem;max-width:1150px}.grid-container.article-section,.grid-container.person-grid-container{max-width:1400px}.grid-container.person-twitter-section{grid-template-columns:minmax(0,1200px)}@media (min-width: 1200px){.grid-container.person-twitter-section{grid-template-columns:minmax(0,240px) minmax(0,1fr) minmax(0,102px)}}.grid-container.no-max{max-width:none}.grid-content{grid-area:content}.grid-full{grid-column:left-side / right-side;grid-row:left-side / right-side}.grid-left-side{grid-area:left-side}.grid-left-side-with-content{grid-column:left-side / content;grid-row:left-side / content}.grid-right-side{grid-area:right-side}.grid-content-with-right-side{grid-column:content / right-side;grid-row:content / right-side}.footer-section{height:450px}.person-box-medium{max-width:485px;width:100%}.person-box-big{max-width:575px;width:100%}@media (min-width: 1200px){.footer-section{height:981px}}.text-input-addon{display:flex;align-items:center;border-width:1px;--tw-border-opacity: 1;border-color:rgb(173 173 173 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(240 240 240 / var(--tw-bg-opacity));padding:.75rem 1rem;font-size:1.125rem;font-weight:400;--tw-text-opacity: 1;color:rgb(76 76 76 / var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.text-input{border-bottom-width:2px;--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity));padding:.75rem 1rem;font-size:1.125rem;outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;min-width:0px}.text-input:hover:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity))}.text-input:active:not([disabled]):not([readonly]),.text-input:focus:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(2 125 168 / var(--tw-border-opacity))}.text-input::-moz-placeholder{font-weight:400;--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input::placeholder{font-weight:400;--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input[readonly],.text-input[disabled]{cursor:not-allowed;--tw-bg-opacity: 1;background-color:rgb(240 240 240 / var(--tw-bg-opacity))}.text-input[readonly]::-moz-placeholder,.text-input[disabled]::-moz-placeholder{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input[readonly]::placeholder,.text-input[disabled]::placeholder{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input-addon--l{border-right-width:0px}.text-input-addon--r{border-left-width:0px}.text-input:hover:not([disabled]):not([readonly])~.text-input-addon{--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity))}.text-input:focus:not([disabled]):not([readonly])~.text-input-addon,.text-input:active:not([disabled]):not([readonly])~.text-input-addon{--tw-border-opacity: 1;border-color:rgb(2 125 168 / var(--tw-border-opacity))}.text-input[readonly]~.text-input-addon,.text-input[disabled]~.text-input-addon{--tw-bg-opacity: 1;background-color:rgb(240 240 240 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-input--has-addon-l.text-input{border-left-width:0px}.text-input--has-addon-r.text-input{border-right-width:0px}.select{position:relative;display:flex;width:100%;align-items:center;padding-top:.5rem;padding-bottom:.5rem}@media (min-width: 1200px){.select{padding-top:1rem;padding-bottom:1rem}}.select:after{position:absolute;right:0;padding-right:.75rem;font-size:1.3rem;font-weight:700;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;font-family:pirati-ui;content:"\e925"}.select__control{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0;border-width:1px;--tw-border-opacity: 1;border-color:rgb(173 173 173 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity));padding:.75rem 2rem .75rem 1rem;font-size:1.125rem;outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}@media (min-width: 1200px){.select__control{padding-top:1.25rem;padding-bottom:1.25rem}}.select__control{min-width:0px}.select__control:hover:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity))}.select__control:active:not([disabled]):not([readonly]),.select__control:focus:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(2 125 168 / var(--tw-border-opacity))}.select__control::-moz-placeholder{font-weight:400;--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.select__control::placeholder{font-weight:400;--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.select__control[readonly],.select__control[disabled]{cursor:not-allowed;--tw-bg-opacity: 1;background-color:rgb(240 240 240 / var(--tw-bg-opacity))}.select__control[readonly]::-moz-placeholder,.select__control[disabled]::-moz-placeholder{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.select__control[readonly]::placeholder,.select__control[disabled]::placeholder{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.checkbox{position:relative;display:flex}.checkbox input{margin-right:.5rem;height:1.25rem;width:1.25rem;flex-shrink:0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-width:1px;--tw-border-opacity: 1;border-color:rgb(173 173 173 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.checkbox input:hover:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity))}.checkbox input:active,.checkbox input:focus{--tw-border-opacity: 1;border-color:rgb(2 125 168 / var(--tw-border-opacity))}.checkbox input:checked{border-color:transparent;--tw-bg-opacity: 1;background-color:rgb(2 125 168 / var(--tw-bg-opacity))}.checkbox input[disabled]{cursor:not-allowed}.checkbox label{max-width:32rem;line-height:1.25}.checkbox:after{pointer-events:none;position:absolute;display:inline;content:"";height:5px;width:12px;top:6px;left:4px;border-left:2px solid #ffffff;border-bottom:2px solid #ffffff;transform:rotate(-45deg)}.radio{position:relative}.radio input{margin-right:.5rem;height:1.25rem;width:1.25rem;flex-shrink:0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:9999px;border-width:1px;--tw-border-opacity: 1;border-color:rgb(173 173 173 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(173 173 173 / var(--tw-bg-opacity));outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.radio input:hover:not([disabled]):not([readonly]){--tw-border-opacity: 1;border-color:rgb(76 76 76 / var(--tw-border-opacity))}.radio input:active,.radio input:focus{--tw-border-opacity: 1;border-color:rgb(2 125 168 / var(--tw-border-opacity))}.radio input:checked{border-color:transparent;--tw-bg-opacity: 1;background-color:rgb(2 125 168 / var(--tw-bg-opacity))}.radio input[disabled]{cursor:not-allowed}.radio label{display:flex;align-items:center;line-height:1.25}.radio:after{pointer-events:none;position:absolute;display:inline;height:.5rem;width:.5rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));content:"";border-radius:50%;top:.375rem;left:.375rem}.form-field--error .text-input,.form-field--error .select__control,.form-field--error .text-input~.text-input-addon{--tw-border-opacity: 1;border-color:rgb(214 13 83 / var(--tw-border-opacity))}.h-default{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-weight:500;line-height:1.25}.h-alt{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-weight:400;line-height:.96}.h-allcaps{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-weight:400;text-transform:uppercase;line-height:1.25}.head-xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1rem;font-weight:500;text-transform:uppercase;line-height:1}@media (min-width: 992px){.head-xl{font-size:1.3rem}}.head-2xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.6rem;font-weight:500;text-transform:uppercase;line-height:1;letter-spacing:-.01em}.head-3xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem;text-transform:uppercase;line-height:1}.head-4xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-4xl{font-size:2.45rem;line-height:1}}@media (min-width: 1200px){.head-4xl{font-size:2.45rem}}.head-6xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:2.45rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-6xl{font-size:3rem;line-height:1}}@media (min-width: 1200px){.head-6xl{font-size:4rem}}.head-7xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:2.45rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-7xl{font-size:3rem;line-height:1}}@media (min-width: 1200px){.head-7xl{font-size:5.3rem}}.head-8xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:3rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-8xl{font-size:5.3rem;line-height:1}}@media (min-width: 1200px){.head-8xl{font-size:6.25rem}}.head-9xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:3rem;font-weight:500;text-transform:uppercase}@media (min-width: 768px){.head-9xl{font-size:6.25rem;line-height:1}}@media (min-width: 1200px){.head-9xl{font-size:6.25rem}}.head-14xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:5.3rem;font-weight:500;text-transform:uppercase;line-height:4.75rem}@media (min-width: 1200px){.head-14xl{font-size:10.6rem;line-height:9.8rem}}.head-14xl.head-short{font-size:6.25rem;line-height:9.8rem}@media (min-width: 1200px){.head-14xl.head-short{font-size:10.6rem}}.head-14xl.head-compact{line-height:4rem}@media (min-width: 1200px){.head-14xl.head-compact{line-height:8.9rem}}.prose :where(.head-6xl):not(:where([class~="not-prose"],[class~="not-prose"] *)),.prose :where(.head-7xl):not(:where([class~="not-prose"],[class~="not-prose"] *)),.prose :where(.head-8xl):not(:where([class~="not-prose"],[class~="not-prose"] *)),.prose :where(.head-9xl):not(:where([class~="not-prose"],[class~="not-prose"] *)){margin-bottom:.25em}p{font-size:.875rem;line-height:1.5rem}@media (min-width: 992px){p{font-size:1rem}}.vertical-time-line{border-left:1px solid green}.program-perex .content-block p{font-size:1.3rem;line-height:1.75rem}.content-block h2{margin-bottom:1.25rem;font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem;font-weight:500;text-transform:uppercase;line-height:1.75rem}@media (min-width: 992px){.content-block h2{line-height:2.5rem}}@media (min-width: 1200px){.content-block h2{font-size:2.45rem}}.content-block h3{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:500;text-transform:uppercase;line-height:1rem}@media (min-width: 1200px){.content-block h3{font-size:1.875rem;line-height:2rem}}.content-block h4{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-weight:500;text-transform:uppercase;line-height:2rem}@media (min-width: 1200px){.content-block h4{font-size:1.6rem}}.content-block h4{letter-spacing:-.01em}.content-block a{--tw-text-opacity: 1;color:rgb(2 125 168 / var(--tw-text-opacity));text-decoration-line:underline}:root{--fc-button-bg-color: #000;--fc-button-border-color: #000;--fc-button-hover-bg-color: #fec900;--fc-button-hover-border-color: #fec900;--fc-button-active-bg-color: #fec900;--fc-button-active-border-color: #fec900;--fc-event-bg-color: #fec900;--fc-event-border-color: #fec900;--fc-event-text-color: #000;--fc-border-color: #000;--fc-today-bg-color: #000;--fc-event-dot-color: #000}.fc{font-family:Roboto Condensed,Helvetica,Arial,sans-serif}.fc-col-header{width:100%!important}.fc .fc-col-header-cell-cushion:not([href]):hover,.fc .fc-daygrid-day-number:not([href]):hover{text-decoration-line:none}.fc .fc-col-header-cell{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));padding:.75rem;font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.3rem;text-transform:capitalize;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.fc .fc-button{border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));padding:.5rem 1.25rem;text-align:center;font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:600;text-transform:uppercase;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.fc .fc-button:hover{text-decoration-line:none}.fc .fc-button:hover:not(:disabled),.fc .fc-button:active:not(:disabled){--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.fc .fc-event{cursor:pointer;border-radius:0;border-style:none;padding:.375rem;font-size:1rem;background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);color:var(--fc-event-text-color)}.fc-header-toolbar{align-items:flex-start!important}@media (min-width: 1200px){.fc-header-toolbar{align-items:center!important}}.fc .fc-toolbar-title,.fc .fc-today-button{text-transform:capitalize}.fc-toolbar-chunk{display:flex;flex-wrap:wrap-reverse;justify-content:flex-end;gap:.5rem}.fc .fc-daygrid-day-number{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}@media (min-width: 1200px){.fc .fc-daygrid-day-number{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem}}.fc-daygrid-body,.fc-scrollgrid-sync-table{width:100%!important}@media (min-width: 1200px){.fc-daygrid-body,.fc-scrollgrid-sync-table{width:unset}}.fc .fc-day-today .fc-daygrid-day-number{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-dot-color)}.article-box.dark-theme{background-color:#4c4c4c;color:#fff}.quote-icon{font-size:7rem;height:1rem}@media (min-width: 1200px){.quote-icon{font-size:15rem}}.header-carousel{display:block;margin:0 auto;position:relative}.header-carousel .header-carousel--text-wrapper{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:3rem;text-transform:uppercase}@media (min-width: 992px){.header-carousel .header-carousel--text-wrapper{font-size:5.3rem}}.header-carousel .header-carousel--text-wrapper{position:absolute;bottom:45%;height:85%;width:100vw}@media (min-width: 1200px){.header-carousel .header-carousel--text-wrapper{bottom:42%}}.header-carousel img{inset:0;position:absolute;height:100%;width:100vw;-o-object-fit:cover;object-fit:cover}@media (min-width: 1200px){.header-carousel img{height:458px}}@media (min-width: 768px){.header-carousel img{height:100%}}@keyframes right_to_left{0%{margin-left:20%}to{margin-left:10%}}.btn{display:inline-flex;align-items:center;justify-content:center;font-family:Bebas Neue,Helvetica,Arial,sans-serif;line-height:2.25rem}.switch{margin-left:auto;margin-right:auto;padding-top:1.25rem;padding-bottom:1.25rem}.switch__item{margin-bottom:.5rem;cursor:pointer;--tw-bg-opacity: 1;background-color:rgb(249 206 5 / var(--tw-bg-opacity));padding:.5rem 1.25rem;text-align:center;font-weight:400;--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.switch__item:not(:last-child){margin-right:.5rem}.switch__item:hover{--tw-bg-opacity: 1;background-color:rgb(215 177 3 / var(--tw-bg-opacity));text-decoration-line:none}.switch__item.switch__item--active,.switch__item.switch__item--active:hover{--tw-bg-opacity: 1;background-color:rgb(236 236 236 / var(--tw-bg-opacity))}.horizontal-scrolling{display:block;margin-left:-15px;margin-right:-15px;max-width:calc(100vw - 50px);overflow-x:scroll;overflow-y:hidden;text-align:center;white-space:nowrap}@media (min-width: 1200px){.horizontal-scrolling{max-width:calc(100% + 30px)}}.horizontal-scrolling.draggable{cursor:grab}.horizontal-scrolling.draggable.active,.horizontal-scrolling.draggable.active a{cursor:grabbing}.no-scrollbars{-ms-overflow-style:-ms-autohiding-scrollbar;scrollbar-width:none}.no-scrollbars::-webkit-scrollbar{display:none}.background-hover-zoom{background-position:center;background-size:100%;transition:background-size .3s ease-in}.background-hover-zoom:hover{background-size:110%}.popout__toggle-wrapper{display:flex;cursor:pointer;align-items:center;justify-content:space-between;padding-left:1.25rem;padding-right:1.25rem;font-size:1.125rem;transition-duration:.15s}.popout__toggle-wrapper:hover{--tw-bg-opacity: 1;background-color:rgb(236 236 236 / var(--tw-bg-opacity))}.popout__toggle-wrapper.popout__toggle-wrapper--active{--tw-bg-opacity: 1;background-color:rgb(249 206 5 / var(--tw-bg-opacity))}.popout__toggle-name{padding-top:1rem;padding-bottom:1rem}.popout__content-wrapper{display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.25rem}.popout__toggle-arrow{font-size:2.45rem}.article-timeline-grid{display:grid;gap:.5rem;margin-top:-20px;grid-template-areas:"left-article" "right-article"}@media (min-width: 1200px){.article-timeline-grid{grid-template-columns:minmax(0,570px) 1px minmax(0,570px);grid-template-areas:"left-article timeline right-article"}}.article-timeline-grid__left-article{grid-area:left-article}.article-timeline-grid__right-article{grid-area:right-article}.article-timeline-grid__timeline{grid-area:timeline}.article-timeline-grid__timeline:before{content:"";background:linear-gradient(180deg,rgba(2,0,36,0) 0%,rgba(255,255,255,1) 100%);position:absolute;bottom:-1px;height:20px;z-index:10;width:2px;left:-1px}.article-timeline-grid__timeline .article-timeline--month{transform:translate(-50%);top:-1rem;z-index:100}.footer-collapsible__toggle{display:flex;cursor:pointer;align-items:center}@media (min-width: 768px){.footer-collapsible__toggle:after{display:none;cursor:auto}}.footer-collapsible__toggle:after{content:"\e925";font-family:pirati-ui;margin-left:auto;font-size:3rem;font-weight:300;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.footer-collapsible__toggle.footer-collapsible__toggle--open:after{transform:rotate(-180deg)}.navbar{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.navbar .navbar__logo--white{display:inline}.navbar .navbar__logo--black{display:none}.navbar .navbar__border-button{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}@media (min-width: 1366px){.navbar .navbar__border-button{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}}.navbar .navbar__menu-item--selected{text-decoration-line:underline}.navbar .navbar__menu-item--selected:hover{text-decoration-line:none}.navbar.navbar--transparent{background-color:transparent}@media (min-width: 1366px){.navbar.navbar--transparent{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}}.navbar.navbar--transparent .navbar__logo--white{display:none}.navbar.navbar--transparent .navbar__logo--black{display:inline}.navbar.navbar--transparent .navbar__border-button{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.navbar.navbar--transparent .bar1,.navbar.navbar--transparent .bar2,.navbar.navbar--transparent .bar3{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}@media (min-width: 1366px){.navbar.navbar--transparent.navbar--on-dark-bg{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}}.navbar.navbar--transparent.navbar--on-dark-bg .navbar__logo--white{display:inline}.navbar.navbar--transparent.navbar--on-dark-bg .navbar__logo--black{display:none}.navbar.navbar--transparent.navbar--on-dark-bg .navbar__border-button{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.navbar.navbar--transparent.navbar--on-dark-bg .bar1,.navbar.navbar--transparent.navbar--on-dark-bg .bar2,.navbar.navbar--transparent.navbar--on-dark-bg .bar3{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bar1,.bar2,.bar3{background-color:#fff;display:block;height:2px;margin:6px 0;transition:.4s;width:35px}.navbar__mobile-menu__toggle:checked+label .bar1{transform:rotate(-45deg) translate(-3px,4px);--tw-bg-opacity: 1 !important;background-color:rgb(0 0 0 / var(--tw-bg-opacity))!important}.navbar__mobile-menu__toggle:checked+label .bar2{opacity:0}.navbar__mobile-menu__toggle:checked+label .bar3{transform:rotate(45deg) translate(-8px,-8px);--tw-bg-opacity: 1 !important;background-color:rgb(0 0 0 / var(--tw-bg-opacity))!important}.navbar__mobile-menu{pointer-events:none;visibility:hidden;z-index:0;opacity:0;transition:visibility .1s,opacity .1s linear}.navbar__mobile-menu__toggle:checked~.navbar__mobile-menu{pointer-events:auto;visibility:visible;z-index:20;opacity:1}@media (min-width: 1366px){.navbar__mobile-menu__toggle:checked~.navbar__mobile-menu{pointer-events:none;visibility:hidden;z-index:0;opacity:0}}.newsletter-section{background-size:cover;background-repeat:no-repeat;background-position:-400px}@media (min-width: 768px){.newsletter-section{background-position:left top}}.region-map__list{-moz-columns:2;columns:2}.region-map__region{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.5s;transition:all .3s ease-out;stroke:#fff;stroke-width:4px;stroke-linejoin:round}.region-map__region:after{content:"";width:10px;position:absolute;height:10px;background:#fec900;z-index:10}.region-map__region--current{fill:#fec900}.static{position:static}.absolute{position:absolute}.relative{position:relative}.left-0{left:0}.top-0{top:0}.z-20{z-index:20}.z-30{z-index:30}.float-right{float:right}.float-left{float:left}.m-10{margin:2.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-10{margin-top:2.5rem;margin-bottom:2.5rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.\!ml-0{margin-left:0!important}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-20{margin-bottom:5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-4{margin-left:1rem}.ml-\[unset\]{margin-left:unset}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mr-6{margin-right:1.5rem}.mr-\[unset\]{margin-right:unset}.mt-0{margin-top:0}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-36{height:9rem}.h-80{height:20rem}.h-\[700px\]{height:700px}.h-full{height:100%}.min-h-0{min-height:0px}.min-h-\[600px\]{min-height:600px}.w-10\/12{width:83.333333%}.w-12{width:3rem}.w-24{width:6rem}.w-36{width:9rem}.w-5\/6{width:83.333333%}.w-56{width:14rem}.w-80{width:20rem}.w-\[150px\]{width:150px}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[7rem\]{min-width:7rem}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-\[350px\]{max-width:350px}.max-w-\[550px\]{max-width:550px}.max-w-\[650px\]{max-width:650px}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-screen-lg{max-width:992px}.max-w-xl{max-width:36rem}.grow{flex-grow:1}.-scale-x-100{--tw-scale-x: -1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.content-stretch{align-content:stretch}.items-start{align-items:flex-start}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-12{gap:3rem}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-7{gap:1.75rem}.gap-8{gap:2rem}.gap-y-4{row-gap:1rem}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.text-ellipsis{text-overflow:ellipsis}.whitespace-pre-line{white-space:pre-line}.rounded-full{border-radius:9999px}.border-4{border-width:4px}.border-none{border-style:none}.border-yellow-500{--tw-border-opacity: 1;border-color:rgb(249 206 5 / var(--tw-border-opacity))}.\!bg-grey-100{--tw-bg-opacity: 1 !important;background-color:rgb(243 243 243 / var(--tw-bg-opacity))!important}.\!bg-grey-180{--tw-bg-opacity: 1 !important;background-color:rgb(238 238 238 / var(--tw-bg-opacity))!important}.bg-\[\#00000088\]{background-color:#0008}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-blue-300{--tw-bg-opacity: 1;background-color:rgb(2 125 168 / var(--tw-bg-opacity))}.bg-green-400{--tw-bg-opacity: 1;background-color:rgb(76 169 113 / var(--tw-bg-opacity))}.bg-grey-100{--tw-bg-opacity: 1;background-color:rgb(243 243 243 / var(--tw-bg-opacity))}.bg-grey-150{--tw-bg-opacity: 1;background-color:rgb(236 236 236 / var(--tw-bg-opacity))}.bg-grey-180{--tw-bg-opacity: 1;background-color:rgb(238 238 238 / var(--tw-bg-opacity))}.bg-grey-200{--tw-bg-opacity: 1;background-color:rgb(173 173 173 / var(--tw-bg-opacity))}.bg-pirati-yellow{--tw-bg-opacity: 1;background-color:rgb(254 201 0 / var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(214 13 83 / var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-yellow-300{--tw-bg-opacity: 1;background-color:rgb(255 234 90 / var(--tw-bg-opacity))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(249 206 5 / var(--tw-bg-opacity))}.bg-cover{background-size:cover}.bg-center{background-position:center}.bg-no-repeat{background-repeat:no-repeat}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-2{padding:.5rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-52{padding-top:13rem;padding-bottom:13rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-12{padding-bottom:3rem}.pb-16{padding-bottom:4rem}.pb-24{padding-bottom:6rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-7{padding-left:1.75rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-12{padding-top:3rem}.pt-16{padding-top:4rem}.pt-24{padding-top:6rem}.pt-28{padding-top:7rem}.pt-32{padding-top:8rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.text-left{text-align:left}.text-center{text-align:center}.text-justify{text-align:justify}.font-alt{font-family:Bebas Neue,Helvetica,Arial,sans-serif}.font-condensed{font-family:Roboto Condensed,Helvetica,Arial,sans-serif}.text-2xl{font-size:1.6rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.45rem}.text-5xl{font-size:3rem}.text-6xl{font-size:4rem}.text-7xl{font-size:5.3rem}.text-8xl{font-size:6.25rem}.text-9xl{font-size:7.5rem}.text-\[3\.5rem\]{font-size:3.5rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-sm{font-size:.875rem}.text-xl{font-size:1.3rem}.text-xs{font-size:.75rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-3{line-height:.75rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-8{line-height:2rem}.leading-\[1\.8rem\]{line-height:1.8rem}.leading-\[10\.5rem\]{line-height:10.5rem}.tracking-tight{letter-spacing:-.025em}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-grey-185{--tw-text-opacity: 1;color:rgb(189 189 189 / var(--tw-text-opacity))}.text-grey-200{--tw-text-opacity: 1;color:rgb(173 173 173 / var(--tw-text-opacity))}.text-grey-250{--tw-text-opacity: 1;color:rgb(136 136 136 / var(--tw-text-opacity))}.text-grey-300{--tw-text-opacity: 1;color:rgb(76 76 76 / var(--tw-text-opacity))}.text-grey-350{--tw-text-opacity: 1;color:rgb(79 79 79 / var(--tw-text-opacity))}.text-grey-600{--tw-text-opacity: 1;color:rgb(38 38 38 / var(--tw-text-opacity))}.text-pirati-yellow{--tw-text-opacity: 1;color:rgb(254 201 0 / var(--tw-text-opacity))}.text-turquoise-500{--tw-text-opacity: 1;color:rgb(37 165 185 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.decoration-1{text-decoration-thickness:1px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.bg-blend-darken{background-blend-mode:darken}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-lg{--tw-drop-shadow: drop-shadow(0 10px 8px rgb(0 0 0 / .04)) drop-shadow(0 4px 3px rgb(0 0 0 / .1));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.duration-200{transition-duration:.2s}.btn.btn--fullwidth,.btn.btn--fullwidth .btn__body-wrap{width:100%;max-width:100%}.btn.btn--fullwidth .btn__body{flex:1}.btn.btn--autowidth{width:auto}@media (min-width: 1200px){.grid-container{grid-template-columns:240px 1fr 102px;grid-template-areas:"left-side content right-side";margin-left:10vw}}@media (min-width: 2060px){.grid-container{margin-left:20vw}}@media (min-width: 1200px){.grid-container.person-grid-container{grid-template-columns:240px 1fr 339px}}.head-alt-xl,.content-block .head-alt-xl{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:5.3rem;font-weight:400;line-height:.96}.head-alt-lg,.content-block .head-alt-lg{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:4rem;font-weight:400;line-height:.96}.head-alt-md,.content-block .head-alt-md{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:2.45rem;font-weight:400;line-height:.96}.head-alt-base,.content-block .head-alt-base{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.875rem;font-weight:400;line-height:.96}.head-alt-sm,.content-block .head-alt-sm{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.6rem;font-weight:400;line-height:.96}.head-alt-xs,.content-block .head-alt-xs{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.3rem;font-weight:400;line-height:.96}.head-alt-2xs,.content-block .head-alt-2xs{font-family:Bebas Neue,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:400;line-height:.96}.head-base,.content-block .head-base{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1.875rem;font-weight:500;line-height:1.25}.head-sm,.content-block .head-sm{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1.6rem;font-weight:500;line-height:1.25}.head-xs,.content-block .head-xs{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1.3rem;font-weight:500;line-height:1.25}.head-2xs,.content-block .head-2xs{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:500;line-height:1.25}.head-heavy-base,.content-block .head-heavy-base{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1.875rem;font-weight:700;line-height:1.25}.head-heavy-sm,.content-block .head-heavy-sm{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1.6rem;font-weight:700;line-height:1.25}.head-heavy-xs,.content-block .head-heavy-xs{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1.3rem;font-weight:700;line-height:1.25}.head-heavy-2xs,.content-block .head-heavy-2xs{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:700;line-height:1.25}.head-allcaps-2xs,.content-block .head-allcaps-2xs{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:400;text-transform:uppercase;line-height:1.25}.head-allcaps-3xs,.content-block .head-allcaps-3xs{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1rem;font-weight:400;text-transform:uppercase;line-height:1.25}.head-allcaps-4xs,.content-block .head-allcaps-4xs{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:.875rem;font-weight:400;text-transform:uppercase;line-height:1.25}.head-allcaps-heavy-2xs,.content-block .head-allcaps-heavy-2xs{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1.125rem;font-weight:700;text-transform:uppercase;line-height:1.25}.head-allcaps-heavy-3xs,.content-block .head-allcaps-heavy-3xs{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:1rem;font-weight:700;text-transform:uppercase;line-height:1.25}.head-allcaps-heavy-4xs,.content-block .head-allcaps-heavy-4xs{font-family:Roboto Condensed,Helvetica,Arial,sans-serif;font-size:.875rem;font-weight:700;text-transform:uppercase;line-height:1.25}@media (min-width: 1200px){.switch__item{padding:.5rem 1.25rem}}.slick-track[data-v-e4caeaf8]{position:relative;top:0;left:0;display:block;transform:translateZ(0)}.slick-track.slick-center[data-v-e4caeaf8]{margin-left:auto;margin-right:auto}.slick-track[data-v-e4caeaf8]:after,.slick-track[data-v-e4caeaf8]:before{display:table;content:""}.slick-track[data-v-e4caeaf8]:after{clear:both}.slick-loading .slick-track[data-v-e4caeaf8]{visibility:hidden}.slick-slide[data-v-e4caeaf8]{display:none;float:left;height:100%;min-height:1px}[dir=rtl] .slick-slide[data-v-e4caeaf8]{float:right}.slick-slide img[data-v-e4caeaf8]{display:block}.slick-slide.slick-loading img[data-v-e4caeaf8]{display:none}.slick-slide.dragging img[data-v-e4caeaf8]{pointer-events:none}.slick-initialized .slick-slide[data-v-e4caeaf8]{display:block}.slick-loading .slick-slide[data-v-e4caeaf8]{visibility:hidden}.slick-vertical .slick-slide[data-v-e4caeaf8]{display:block;height:auto;border:1px solid transparent}.slick-arrow.slick-hidden[data-v-21137603]{display:none}.slick-slider[data-v-3d1a4f76]{position:relative;display:block;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.slick-list[data-v-3d1a4f76]{position:relative;display:block;overflow:hidden;margin:0;padding:0;transform:translateZ(0)}.slick-list[data-v-3d1a4f76]:focus{outline:none}.slick-list.dragging[data-v-3d1a4f76]{cursor:pointer;cursor:hand}::-moz-selection{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity));background:#f9ce05}::selection{background:#f9ce05}:root{font-size:16px}body{font-family:Roboto,Helvetica,Arial,sans-serif;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:1rem}a:hover{text-decoration-line:underline}a.icon-link:hover{text-decoration-line:none}a.icon-link:hover span{text-decoration-line:underline}[v-cloak]{display:none}.copyleft{transform:scaleX(-1)!important}.inline-block-nogap{font-size:0}.iframe-container{position:relative;padding-bottom:56.25%;height:0}.iframe-container iframe{position:absolute;top:0;left:0;height:100%;width:100%}.hover\:bg-yellow-600:hover{--tw-bg-opacity: 1;background-color:rgb(215 177 3 / var(--tw-bg-opacity))}.hover\:no-underline:hover{text-decoration-line:none}.group:hover .group-hover\:-translate-x-2{--tw-translate-x: -.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:border-yellow-600{--tw-border-opacity: 1;border-color:rgb(215 177 3 / var(--tw-border-opacity))}.group:hover .group-hover\:opacity-100{opacity:1}@media (min-width: 576px){.sm\:w-5\/12{width:41.666667%}.sm\:w-6\/12{width:50%}.sm\:text-4xl{font-size:2.45rem}}@media (min-width: 768px){.md\:mb-6{margin-bottom:1.5rem}.md\:mt-20{margin-top:5rem}.md\:flex{display:flex}.md\:grid{display:grid}.md\:w-96{width:24rem}.md\:shrink-0{flex-shrink:0}.md\:auto-rows-auto{grid-auto-rows:auto}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:flex-col{flex-direction:column}.md\:items-end{align-items:flex-end}.md\:justify-end{justify-content:flex-end}.md\:justify-between{justify-content:space-between}.md\:gap-8{gap:2rem}.md\:gap-x-14{-moz-column-gap:3.5rem;column-gap:3.5rem}.md\:gap-y-5{row-gap:1.25rem}.md\:pr-0{padding-right:0}.md\:text-2xl{font-size:1.6rem}.md\:text-4xl{font-size:2.45rem}.md\:text-base{font-size:1rem}}@media (min-width: 992px){.lg\:float-right{float:right}.lg\:float-left{float:left}.lg\:mx-8{margin-left:2rem;margin-right:2rem}.lg\:my-4{margin-top:1rem;margin-bottom:1rem}.lg\:mb-12{margin-bottom:3rem}.lg\:w-2\/5{width:40%}.lg\:w-5\/12{width:41.666667%}.lg\:w-7\/12{width:58.333333%}.lg\:w-\[unset\]{width:unset}.lg\:max-w-screen-lg{max-width:992px}.lg\:grow-0{flex-grow:0}.lg\:basis-1\/3{flex-basis:33.333333%}.lg\:basis-2\/3{flex-basis:66.666667%}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-nowrap{flex-wrap:nowrap}.lg\:gap-2{gap:.5rem}.lg\:text-base{font-size:1rem}}@media (min-width: 1200px){.xl\:my-10{margin-top:2.5rem;margin-bottom:2.5rem}.xl\:mb-0{margin-bottom:0}.xl\:mb-12{margin-bottom:3rem}.xl\:mb-20{margin-bottom:5rem}.xl\:mb-24{margin-bottom:6rem}.xl\:mb-32{margin-bottom:8rem}.xl\:mb-6{margin-bottom:1.5rem}.xl\:mb-8{margin-bottom:2rem}.xl\:mr-12{margin-right:3rem}.xl\:mr-16{margin-right:4rem}.xl\:mr-2{margin-right:.5rem}.xl\:mt-\[-0\.7rem\]{margin-top:-.7rem}.xl\:mt-\[-1rem\]{margin-top:-1rem}.xl\:block{display:block}.xl\:inline{display:inline}.xl\:flex{display:flex}.xl\:hidden{display:none}.xl\:h-14{height:3.5rem}.xl\:h-screen{height:100vh}.xl\:w-14{width:3.5rem}.xl\:w-60{width:15rem}.xl\:w-auto{width:auto}.xl\:shrink-0{flex-shrink:0}.xl\:grow-0{flex-grow:0}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:flex-row{flex-direction:row}.xl\:items-end{align-items:flex-end}.xl\:items-center{align-items:center}.xl\:justify-start{justify-content:flex-start}.xl\:gap-0{gap:0px}.xl\:gap-4{gap:1rem}.xl\:gap-6{gap:1.5rem}.xl\:gap-8{gap:2rem}.xl\:gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.xl\:justify-self-end{justify-self:end}.xl\:px-0{padding-left:0;padding-right:0}.xl\:px-5{padding-left:1.25rem;padding-right:1.25rem}.xl\:py-0{padding-top:0;padding-bottom:0}.xl\:py-24{padding-top:6rem;padding-bottom:6rem}.xl\:py-4{padding-top:1rem;padding-bottom:1rem}.xl\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.xl\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.xl\:pb-16{padding-bottom:4rem}.xl\:pb-24{padding-bottom:6rem}.xl\:pl-32{padding-left:8rem}.xl\:pl-8{padding-left:2rem}.xl\:pr-0{padding-right:0}.xl\:pr-20{padding-right:5rem}.xl\:pr-3{padding-right:.75rem}.xl\:pr-4{padding-right:1rem}.xl\:pt-32{padding-top:8rem}.xl\:pt-48{padding-top:12rem}.xl\:pt-8{padding-top:2rem}.xl\:text-14xl{font-size:10.6rem}.xl\:text-3xl{font-size:1.875rem}.xl\:text-4xl{font-size:2.45rem}.xl\:text-7xl{font-size:5.3rem}.xl\:text-9xl{font-size:7.5rem}.xl\:text-lg{font-size:1.125rem}.xl\:text-xl{font-size:1.3rem}.xl\:leading-\[10\.5rem\]{line-height:10.5rem}}@media (min-width: 1366px){.\32xl\:flex{display:flex}.\32xl\:hidden{display:none}.\32xl\:items-start{align-items:flex-start}.\32xl\:bg-transparent{background-color:transparent}}@media (min-width: 2060px){.\33xl\:text-lg{font-size:1.125rem}}.\[\&_p\]\:\!text-lg p{font-size:1.125rem!important}.\[\&_p\]\:text-lg p{font-size:1.125rem}.\[\&_p\]\:leading-7 p{line-height:1.75rem}.\[\&_p\]\:text-black p{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1} diff --git a/main/templates/main/includes/atoms/articles/side_image.html b/main/templates/main/includes/atoms/articles/side_image.html index acf02c80a2c48b10fbdc31b1cb32bfd61c0c3967..8d53375c7882ffb8afbbde708527a8570604d1cd 100644 --- a/main/templates/main/includes/atoms/articles/side_image.html +++ b/main/templates/main/includes/atoms/articles/side_image.html @@ -1,3 +1,5 @@ +{% load wagtailimages_tags %} + <div class=" {{ classes }} @@ -7,9 +9,11 @@ lg:mx-8 lg:my-4 lg:w-2/5 " > + {% image image original as side_image %} + <img class="my-0" - src="{{ image_url }}" + src="{{ side_image.url }}" > {% if image_source %} diff --git a/main/templates/main/includes/atoms/buttons/round_button.html b/main/templates/main/includes/atoms/buttons/round_button.html index c5132bab5e0f93d1da2847f70a519868cec77b0b..591d79898e230eb489f9b68b3fffffb3e954ba53 100644 --- a/main/templates/main/includes/atoms/buttons/round_button.html +++ b/main/templates/main/includes/atoms/buttons/round_button.html @@ -1,5 +1,5 @@ <a - href="{{ url }}" + href="{% if url %}{{ url }}{% else %}{% endif %}" class=" flex items-center group rounded-full font-condensed uppercase font-semibold tracking-tight hover:no-underline diff --git a/main/templates/main/includes/atoms/buttons/round_button_small.html b/main/templates/main/includes/atoms/buttons/round_button_small.html index b1bf5e8cffe2b86a75d89ab852a7f0eccb010dfb..f0439aecc41cb3e2f10e620c5a1aad1a435a8ea6 100644 --- a/main/templates/main/includes/atoms/buttons/round_button_small.html +++ b/main/templates/main/includes/atoms/buttons/round_button_small.html @@ -1,3 +1,3 @@ -{% extends 'patterns/atoms/buttons/round_button.html' %} +{% extends 'main/includes/atoms/buttons/round_button.html' %} {% block size_classes %}text-sm pl-7 pr-2 py-2{% endblock %} diff --git a/main/templates/main/includes/atoms/calendar/calendar.html b/main/templates/main/includes/atoms/calendar/calendar.html index 9ecdbe5d59dd1a1e640d286ff94093ea5d4a742c..49b0a39552f7a4cbdf82385460c7c2b928adf4bf 100644 --- a/main/templates/main/includes/atoms/calendar/calendar.html +++ b/main/templates/main/includes/atoms/calendar/calendar.html @@ -1,3 +1,3 @@ <div class="__js-root"> - <ui-full-calendar events='{{ calendar_data }}'></ui-full-calendar> + <ui-full-calendar events='{{ calendar_data|safe }}'></ui-full-calendar> </div> diff --git a/main/templates/main/includes/atoms/header/navigation.html b/main/templates/main/includes/atoms/header/navigation.html index 006d8fc19278e115f9307f762f26b3614ba100b1..0166f447b6ddb6ba144ff4af57a1dc7da7a72e7f 100644 --- a/main/templates/main/includes/atoms/header/navigation.html +++ b/main/templates/main/includes/atoms/header/navigation.html @@ -1,7 +1,11 @@ <div class="flex gap-3 text-grey-185 {{ classes }}"> - <a href="#" class="underline"> - {{ first_text }} - </a> + {% if first_link %} + <a href="{{ first_link }}" class="underline"> + {{ first_text }} + </a> + {% else %} + <span>{{ first_text }}</span> + {% endif %} ⎯⎯ diff --git a/main/templates/main/includes/atoms/text/prose_richtext.html b/main/templates/main/includes/atoms/text/prose_richtext.html new file mode 100644 index 0000000000000000000000000000000000000000..0ec6ac31209eda214dc6c25d2f509b50a7e7b40f --- /dev/null +++ b/main/templates/main/includes/atoms/text/prose_richtext.html @@ -0,0 +1,3 @@ +<div class="prose [&_p]:leading-7 [&_p]:text-black [&_p]:text-lg" style="max-width:100ch"> + {{ self }} +</div> diff --git a/main/templates/main/includes/legacy/article_quote_block.html b/main/templates/main/includes/legacy/article_quote_block.html new file mode 100644 index 0000000000000000000000000000000000000000..6be3a3f08bca86ae44721c5106a29c10234a01c0 --- /dev/null +++ b/main/templates/main/includes/legacy/article_quote_block.html @@ -0,0 +1,6 @@ +<div class="prose"> + <p> + „{{ self.quote }}“<br> + ─ {{ self.autor_name }} + </p> +</div> diff --git a/main/templates/main/includes/molecules/articles/article_richtext_content_with_image.html b/main/templates/main/includes/molecules/articles/article_richtext_content_with_image.html deleted file mode 100644 index ed5bdd7a21bd04d47b96bf1b8bf832c5f5908e3b..0000000000000000000000000000000000000000 --- a/main/templates/main/includes/molecules/articles/article_richtext_content_with_image.html +++ /dev/null @@ -1,30 +0,0 @@ -<div> - <div - class=" - {{ classes }} - - font-condensed text-justify - - [&_p]:leading-7 [&_p]:text-black [&_p]:text-lg - " - > - {% include "main/includes/atoms/articles/side_image.html" with classes="lg:float-right" image_url=image_url image_source=image_source %} - - <p> - {{ text_1 }} - </p> - <p> - {{ text_2 }} - </p> - - <p> - {{ text_1 }} - </p> - - {% include "main/includes/atoms/articles/side_image.html" with classes="lg:float-left" image_url=image_url image_source=image_source %} - - <p> - {{ text_2 }} - </p> - </div> -</div> diff --git a/main/templates/main/includes/molecules/articles/article_timeline_preview.html b/main/templates/main/includes/molecules/articles/article_timeline_preview.html index faba273b134e0b19efccb096d964cde574e117a7..311f7a35f6a13e5b4f3bf63cff8a7c45b66b19b8 100644 --- a/main/templates/main/includes/molecules/articles/article_timeline_preview.html +++ b/main/templates/main/includes/molecules/articles/article_timeline_preview.html @@ -1,3 +1,5 @@ +{% load wagtailimages_tags %} + <div class=" flex flex-col mb-8 bg-grey-180 drop-shadow @@ -5,32 +7,35 @@ {{ classes }} " > - <a href="#"> + <a href="{{ article.url }}"> + {% image article.image width-512 as image %} + <img - src="../../../../static/images/person-table.png" alt="" + src="{{ image.url }}" + alt="" class="w-full" > </a> <div class="flex flex-col px-8 pb-6 pt-5"> <div class="text-grey-350 font-condensed mb-2"> - {{ date }} + {{ article.date }} </div> - <a href="#" class="mb-2 underline-offset-4"> - <h2 class="head-3xl">{{ title }}</h2> + <a href="{{ article.url }}" class="mb-2 underline-offset-4"> + <h2 class="head-3xl">{{ article.title }}</h2> </a> <div class="mb-6"> - {% include 'main/includes/molecules/tags/inline_tags.html' %} + {% include 'main/includes/molecules/tags/inline_tags.html' with tags=article.get_tags %} </div> <p class="mb-8"> - {{ text }} + {{ article.perex }} </p> <div class="flex justify-end"> - {% include 'main/includes/atoms/buttons/round_button.html' with button_text='Zjisti více' %} + {% include 'main/includes/atoms/buttons/round_button.html' with url=article.url button_text='Číst dále' %} </div> </div> </div> diff --git a/main/templates/main/includes/molecules/blocks/download_block.html b/main/templates/main/includes/molecules/blocks/download_block.html index ab158fe455015da12a052f6e8e4916c39fc2a9f6..1a3a3c46f9989045e7fd0bd3ea9445d356c1d5ef 100644 --- a/main/templates/main/includes/molecules/blocks/download_block.html +++ b/main/templates/main/includes/molecules/blocks/download_block.html @@ -16,11 +16,11 @@ <div> <span class="font-bold mr-1">Soubor:</span> - <span class="overflow-hidden text-ellipsis">{{ filename }}</span> + <span class="overflow-hidden text-ellipsis">{{ self.file }}</span> </div> </div> <div class="flex flex-col justify-center items-start"> - {% include 'main/includes/atoms/buttons/round_button.html' with button_text='Stáhnout' %} + {% include 'main/includes/atoms/buttons/round_button.html' with url=self.file.url button_text='Stáhnout' %} </div> </div> diff --git a/main/templates/main/includes/molecules/blocks/icon_title_text_block.html b/main/templates/main/includes/molecules/blocks/icon_title_text_block.html index 91672b4b533a2a7018ae873b3642295e778418c9..05dc27ed66550f7023f802474491bc492fc32c32 100644 --- a/main/templates/main/includes/molecules/blocks/icon_title_text_block.html +++ b/main/templates/main/includes/molecules/blocks/icon_title_text_block.html @@ -1,3 +1,5 @@ +{% load wagtailcore_tags %} + {% if url %} <a href="{{ url }}" @@ -7,21 +9,20 @@ class="hover:no-underline mb-12 flex gap-3 max-w-4xl" > - {% if icon %} - <i class="{{ icon }} mr-6 text-6xl xl:justify-self-end"></i> - {% endif %} + {% if icon %} + <img + src="{{ icon.url }}" + class="inline-block mr-6 xl:justify-self-end" + > + {% endif %} - <div class="flex flex-col"> - <h3 class="font-alt mb-4 text-4xl"> - {{ title }} - </h3> - <p class="leading-6"> - {{ text }} - </p> - </div> + <div class="flex flex-col"> + <h3 class="font-alt mb-4 text-4xl"> + {{ title }} + </h3> + <p class="leading-6"> + {{ text|richtext }} + </p> + </div> -{% if url %} - </a> -{% else %} - </div> -{% endif %} +</{% if url %}a{% else %}div{% endif %}> diff --git a/main/templates/main/includes/molecules/boxes/card_box.html b/main/templates/main/includes/molecules/boxes/card_box.html index d0ac165fa14eaa8c3bdcf676d0f018e1a0c75d2a..42ba845174ea0cec04a361e6939a5d3e432040ff 100644 --- a/main/templates/main/includes/molecules/boxes/card_box.html +++ b/main/templates/main/includes/molecules/boxes/card_box.html @@ -1,6 +1,6 @@ <article class="min-w-96 flex flex-col min-h-[600px] {{ classes }}"> - <a href="#"> - <img src="{{ image }}" alt="{{ header }}" draggable="false" class="w-full h-80 object-cover"> + <a href="{{ url }}"> + <img src="{{ image.url }}" alt="{{ header }}" draggable="false" class="w-full h-80 object-cover"> </a> <div class="p-6 bg-white text-black {{ description_classes }} h-full flex flex-col justify-between"> <div class="mb-6"> @@ -12,7 +12,7 @@ <div class="flex flex-col mt-3 gap-3 justify-between mt-auto"> <h2 class="font-alt text-4xl"> - <a href="#" class="underline-offset-4"> + <a href="{{ url }}" class="underline-offset-4"> {{ header }} </a> </h2> @@ -24,7 +24,7 @@ </div> <div class="flex justify-center"> - {% include 'main/includes/atoms/buttons/round_button.html' with button_text="Zjisti více" %} + {% include 'main/includes/atoms/buttons/round_button.html' with url=url button_text="Zjisti více" classes=None %} </div> </div> </article> diff --git a/main/templates/main/includes/molecules/contact/contact_person_large_box.html b/main/templates/main/includes/molecules/contact/contact_person_large_box.html index 0ca8e64296fc609f7c635092ea49cc496230f08e..457027762a7baeb09829e1c295409fb536970d04 100644 --- a/main/templates/main/includes/molecules/contact/contact_person_large_box.html +++ b/main/templates/main/includes/molecules/contact/contact_person_large_box.html @@ -1,3 +1,7 @@ +{% load static %} + +{% firstof url "#" as real_url %} + <div class=" flex flex-col grow bg-grey-180 @@ -7,11 +11,11 @@ {{ classes }} "> <div class="xl:shrink-0"> - <a href="#"> + <a href="{{ real_url }}"> <img class="h-full w-full xl:w-60 object-cover" - src="../../../../static/images/person-table.png" - alt=" {{ name }}" + src="{% if image %}{{ image.url }}{% else %}{% static 'shared/img/unknown_pirate_160x160.jpg' %}{% endif %}" + alt="{{ name }}" > </a> </div> @@ -25,28 +29,36 @@ <div class="flex flex-col"> <a class="hover:no-underline block font-bold mb-1 text-xl xl:text-3xl" - href="#" + href="{{ real_url }}" ><h4>{{ name }}</h4></a> - <span class="leading-6 mb-4 xl:mb-6"> - {{ function }} - </span> + {% if function %} + <span class="leading-6 mb-4 xl:mb-6"> + {{ function }} + </span> + {% endif %} </div> <div class="flex flex-col"> - <a - class="font-bold mb-2" - href="tel:{{ telephone }}" - >{{ telephone }}</a> + {% if telephone %} + <a + class="font-bold mb-2" + href="tel:{{ telephone }}" + >{{ telephone }}</a> + {% endif %} - <a - class="font-bold" - href="mailto:{{ mail }}" - >{{ mail }}</a> + {% if mail %} + <a + class="font-bold" + href="mailto:{{ mail }}" + >{{ mail }}</a> + {% endif %} - <div class="flex mt-5"> - {% include 'main/includes/atoms/buttons/round_button_small.html' with button_text='Zjisti více' %} - </div> + {% if url %} + <div class="flex mt-5"> + {% include 'main/includes/atoms/buttons/round_button_small.html' with url=url button_text='Detail osoby' %} + </div> + {% endif %} </div> </div> </div> diff --git a/main/templates/main/includes/molecules/popouts/popout_point.html b/main/templates/main/includes/molecules/popouts/popout_point.html index 292b217867425c924388b89366e84ecc387af640..a36de61c097fce8250c4e7bc026cda1a21d4f4cc 100644 --- a/main/templates/main/includes/molecules/popouts/popout_point.html +++ b/main/templates/main/includes/molecules/popouts/popout_point.html @@ -1,3 +1,5 @@ +{% load wagtailcore_tags %} + <div class="__js-root"> <ui-popout> <template slot="toggler"> @@ -5,7 +7,7 @@ </template> <ui-popout-content> <div class="prose max-w-screen-lg"> - {% include "main/includes/atoms/text/paragraph.html" with text=text %} + {{ content|richtext }} </div> </ui-popout-content> </ui-popout> diff --git a/main/templates/main/includes/organisms/articles/articles_section.html b/main/templates/main/includes/organisms/articles/articles_section.html index bfe0797d95467d19611e3943549c37865fec9140..7b4135271dd3b870cbf7cf866cb3f04d81582c29 100644 --- a/main/templates/main/includes/organisms/articles/articles_section.html +++ b/main/templates/main/includes/organisms/articles/articles_section.html @@ -18,11 +18,11 @@ </div> <div class="grid grid-cols-1 xl:grid-cols-3 gap-8"> - {% comment %} - {% include 'main/includes/molecules/boxes/card_box.html' %} - {% include 'main/includes/molecules/boxes/card_box.html' %} - {% include 'main/includes/molecules/boxes/card_box.html' %} - {% endcomment %} + {% for article in article_data_list %} + {% image article.image fill-500x500 as article_image %} + + {% include 'main/includes/molecules/boxes/card_box.html' with url=article.url image=article_image date=article.date header=article.title content=article.perex %} + {% endfor %} </div> <div diff --git a/main/templates/main/includes/organisms/articles/articles_timeline_list.html b/main/templates/main/includes/organisms/articles/articles_timeline_list.html new file mode 100644 index 0000000000000000000000000000000000000000..3f526884f4f4aec592392006521489d5d9440053 --- /dev/null +++ b/main/templates/main/includes/organisms/articles/articles_timeline_list.html @@ -0,0 +1,12 @@ +{% for timeline_item in article_timeline_list %} + <div class="text-center"> + <h2 class="head-9xl">{{ timeline_item.month_text }}</h2> + </div> + <div + class="grid grid-cols-1 md:grid-cols-2 gap-12" + > + {% for article in timeline_item.articles %} + {% include 'main/includes/molecules/articles/article_timeline_preview.html' %} + {% endfor %} + </div> +{% endfor %} diff --git a/main/templates/main/includes/organisms/articles/main_articles_timeline.html b/main/templates/main/includes/organisms/articles/main_articles_timeline.html index 0cdf57c47fe09aef9a577d963d6690c51e4cc935..4789df6c3651e55813cc1b978012fa49c1355094 100644 --- a/main/templates/main/includes/organisms/articles/main_articles_timeline.html +++ b/main/templates/main/includes/organisms/articles/main_articles_timeline.html @@ -1,19 +1,34 @@ <div class="flex justify-center"> <div class="container--wide w-full"> - <div class="flex flex-col gap-8 mb-16"> - <div class="text-center"> - <h2 class="head-9xl">{{ month_1 }}</h2> - </div> - <div class="grid grid-cols-1 md:grid-cols-2 gap-12"> - {% include 'main/includes/molecules/articles/article_timeline_preview.html' %} - {% include 'main/includes/molecules/articles/article_timeline_preview.html' %} - {% include 'main/includes/molecules/articles/article_timeline_preview.html' %} - {% include 'main/includes/molecules/articles/article_timeline_preview.html' %} - </div> + <div class="flex flex-col gap-8 mb-8" id="searchArticleResultWrapper"> + {% include 'main/includes/organisms/articles/articles_timeline_list.html' with article_timeline_list=article_timeline_list %} + </div> - <div class="flex justify-center"> + <div class="flex justify-center mb-16"> + <div + onclick="showMoreTimelineArticles(event, this)" + data-url="{{ page_url }}?months=" + data-months="2" + > {% include 'main/includes/atoms/buttons/round_button.html' with button_text='Další články' %} </div> </div> </div> </div> + +<script type="text/javascript"> + async function showMoreTimelineArticles(event, btn) { + event.preventDefault() + + const showMoreTimelineResultsWrapper = document.getElementById('showMoreTimelineResultsWrapper') + const url = btn.getAttribute('data-url') + btn.getAttribute('data-months') + + const response = await fetch(url, { + method: "GET", + headers: {"X-Requested-With": "XMLHttpRequest"}, + }) + const data = await response.json() + showMoreTimelineResultsWrapper.innerHTML = data.html + btn.setAttribute('data-months', parseInt(btn.getAttribute('data-months')) + 1) + } +</script> diff --git a/main/templates/main/includes/organisms/header/article_header.html b/main/templates/main/includes/organisms/header/article_header.html index 0e00705aa03352523ad4092ac0f828fc967d0bf6..0765f1d6e7d3ac222fe8f4bbf905a618072a96b5 100644 --- a/main/templates/main/includes/organisms/header/article_header.html +++ b/main/templates/main/includes/organisms/header/article_header.html @@ -1,7 +1,7 @@ -{% extends 'patterns/organisms/header/simple_header_with_tags_and_navigation.html' %} +{% extends 'main/includes/organisms/header/simple_header_with_tags_and_navigation.html' %} {% block before_heading %} - {% include 'main/includes/atoms/header/navigation.html' with classes='mb-6' first_text=first_nav_text second_text=second_nav_text second_link=second_link %} + {% include 'main/includes/atoms/header/navigation.html' with classes='mb-6' first_text=first_nav_text first_link=first_nav_link second_text=second_nav_text second_link=None %} {% endblock %} {% block heading_classes %}head-8xl{% endblock %} diff --git a/main/templates/main/includes/organisms/header/articles_header.html b/main/templates/main/includes/organisms/header/articles_header.html index 3027bfa990d61ddd23e6f5b563cec792f9cc88c8..6cfbf748a89d15a4e366e7411dd37be5ea3ea472 100644 --- a/main/templates/main/includes/organisms/header/articles_header.html +++ b/main/templates/main/includes/organisms/header/articles_header.html @@ -1,4 +1,4 @@ -{% extends 'patterns/organisms/header/simple_header_with_tags.html' %} +{% extends 'main/includes/organisms/header/simple_header_with_tags.html' %} {% block after_heading %} {% include 'main/includes/molecules/tags/tags.html' with classes='mb-4' %} diff --git a/main/templates/main/includes/organisms/header/people_header.html b/main/templates/main/includes/organisms/header/people_header.html index d56cdd4e81d15a0cde4075fc69fe294a3ed65c06..1a34d856430bed7cac2ad1e09dc56c995c639931 100644 --- a/main/templates/main/includes/organisms/header/people_header.html +++ b/main/templates/main/includes/organisms/header/people_header.html @@ -1,33 +1,30 @@ -{% extends 'patterns/organisms/header/simple_header_with_ui_switch.html' %} +{% extends 'main/includes/organisms/header/simple_header_with_ui_switch.html' %} {% block classes %}xl:pt-32 xl:pb-16{% endblock %} {% block description %} <div class=" - grid gap-4 py-4 font-bold pr-4 grid-cols-1 [&_p]:!text-lg + grid gap-4 py-4 font-bold pr-4 grid-cols-1 whitespace-pre-line [&_p]:!text-lg md:grid-cols-2 md:pr-0 " > <p> - {{ description_column_1|safe }} + {{ description_column_1 }} </p> <p> - {{ description_column_2|safe }} + {{ description_column_2 }} </p> </div> {% endblock %} {% block switch %} - <a @click="toggleView('candidates')" class="switch__item" - :class="{'switch__item--active': isCurrentView('candidates')}">{{ choice_1 }}</a> - <a @click="toggleView('program')" class="switch__item" - :class="{'switch__item--active': isCurrentView('program')}">{{ choice_2 }}</a> - <a @click="toggleView('other1')" class="switch__item" - :class="{'switch__item--active': isCurrentView('other1')}">{{ choice_3 }}</a> - <a @click="toggleView('other2')" class="switch__item" - :class="{'switch__item--active': isCurrentView('other2')}">{{ choice_4 }}</a> - <a @click="toggleView('teams')" class="switch__item" - :class="{'switch__item--active': isCurrentView('teams')}">{{ choice_5 }}</a> + {% for people_group in people %} + <a @click="toggleView('{{ people_group.value.slug }}-{{ forloop.counter }}')" class="switch__item" + :class="{'switch__item--active': isCurrentView('{{ people_group.value.slug }}-{{ forloop.counter }}')}" + > + {{ people_group.value.title }} + </a> + {% endfor %} {% endblock %} diff --git a/main/templates/main/includes/organisms/header/photo_header.html b/main/templates/main/includes/organisms/header/photo_header.html index ec595a98d5b4afa3d797a501129917dbf9b38272..6538a418f0e88ed2bee1cf8bcedcc6b45031e173 100644 --- a/main/templates/main/includes/organisms/header/photo_header.html +++ b/main/templates/main/includes/organisms/header/photo_header.html @@ -1,10 +1,16 @@ +{% load wagtailimages_tags %} + +{% image main_image original as background_image %} + <header class="bg-[#00000088] flex items-center py-52 mb-4 xl:mb-20 w-full bg-no-repeat bg-cover bg-center bg-blend-darken" - style="background-image: url('../../../../static/images/background-images/bg-bartos.jpg')" + style="background-image:url('{{ background_image.url }}')" > <div class="container--wide w-full"> <h1 class="text-white flex flex-col"> - {% include 'main/includes/atoms/header/navigation.html' with classes='mb-10' first_text='Lidé' second_text='Sněmovna' %} + {% firstof second_nav_text 'Osoby' as actual_second_nav_text %} + + {% include 'main/includes/atoms/header/navigation.html' with classes='mb-10' first_text=first_nav_text second_text=actual_second_nav_text first_link=first_nav_link %} <span class="text-xl sm:text-4xl font-alt leading-3">{{ degree_before }}</span> diff --git a/main/templates/main/includes/organisms/header/simple_header.html b/main/templates/main/includes/organisms/header/simple_header.html index b679d8ea1ada3e1128cf23dda252a3a0b3c5d20e..08b7b77cce0160a87fec39cc7cbac0128d0f523f 100644 --- a/main/templates/main/includes/organisms/header/simple_header.html +++ b/main/templates/main/includes/organisms/header/simple_header.html @@ -28,7 +28,7 @@ {% endblock %} " > - {{ title|safe }} + {{ title }} </h1> {% endblock %} diff --git a/main/templates/main/includes/organisms/header/simple_header_with_tags.html b/main/templates/main/includes/organisms/header/simple_header_with_tags.html index 2edd55dd35fc1f022b135b4df9cb88cc3e5a4997..63f4c26c07a99f4ea1ac6feb2749a29509749036 100644 --- a/main/templates/main/includes/organisms/header/simple_header_with_tags.html +++ b/main/templates/main/includes/organisms/header/simple_header_with_tags.html @@ -1,4 +1,4 @@ -{% extends 'patterns/organisms/header/simple_header.html' %} +{% extends 'main/includes/organisms/header/simple_header.html' %} {% block after_heading %} {% include 'main/includes/molecules/tags/tags.html' with classes='mb-4' %} diff --git a/main/templates/main/includes/organisms/header/simple_header_with_tags_and_navigation.html b/main/templates/main/includes/organisms/header/simple_header_with_tags_and_navigation.html index 09230694154d46a3fd35c24348bae4aa4ec597ae..6a544de694c645c2f2961a61a066467dc3a6b415 100644 --- a/main/templates/main/includes/organisms/header/simple_header_with_tags_and_navigation.html +++ b/main/templates/main/includes/organisms/header/simple_header_with_tags_and_navigation.html @@ -1,4 +1,4 @@ -{% extends 'patterns/organisms/header/simple_header.html' %} +{% extends 'main/includes/organisms/header/simple_header.html' %} {% block before_heading %} {% include 'main/includes/atoms/header/navigation.html' with classes='mb-6' %} diff --git a/main/templates/main/includes/organisms/header/simple_header_with_ui_switch.html b/main/templates/main/includes/organisms/header/simple_header_with_ui_switch.html index c15445f5f318cb79ca0c56e8991a434e844b3ea0..0971c3cb1b4e7303be245c114d48435cf4f11d7c 100644 --- a/main/templates/main/includes/organisms/header/simple_header_with_ui_switch.html +++ b/main/templates/main/includes/organisms/header/simple_header_with_ui_switch.html @@ -1,4 +1,4 @@ -{% extends 'patterns/organisms/header/simple_header.html' %} +{% extends 'main/includes/organisms/header/simple_header.html' %} {% block after_description %} <div @@ -15,7 +15,7 @@ @click="toggleView('view{{ forloop.counter }}')" class="switch__item" :class="{'switch__item--active': isCurrentView('view{{ forloop.counter }}')}" - >{{ switch.name }}</a> + >{{ switch.value.title }}</a> {% endfor %} {% endblock %} </div> diff --git a/main/templates/main/includes/organisms/layout/footer.html b/main/templates/main/includes/organisms/layout/footer.html index c166d6835e0ecdda1943efeeb51b75112eac46ca..2ac6bc904b2ae89d34ffd309d2a9522df48d79e2 100644 --- a/main/templates/main/includes/organisms/layout/footer.html +++ b/main/templates/main/includes/organisms/layout/footer.html @@ -7,9 +7,9 @@ " > <section class="text-white md:flex md:flex-col md:justify-between gap-8"> - {% for item in collapsible_items %} + {% for other_link in page.root_page.footer_other_links %} <div class="py-4 xl:py-0"> - <ui-footer-collapsible label="{{ item.label }}"> + <ui-footer-collapsible label="{{ other_link.value.title }}"> <ul class=" text-white py-8 max-w-max text-xl flex flex-col gap-3 @@ -17,9 +17,9 @@ md:text-base md:grid md:grid-cols-2 md:auto-rows-auto md:gap-y-5 md:gap-x-14 " > - {% for item in item.menu_items %} + {% for link_list in other_link.value.list %} <li> - <a href="#">{{ item }}</a> + <a href="{{ link_list.link }}">{{ link_list.text }}</a> </li> {% endfor %} </ul> diff --git a/main/templates/main/includes/organisms/layout/navbar.html b/main/templates/main/includes/organisms/layout/navbar.html index bec5d7664ddb02a344aaba63aa984886137501e3..4c00151adab2c269d389cb513919599848a2a549 100644 --- a/main/templates/main/includes/organisms/layout/navbar.html +++ b/main/templates/main/includes/organisms/layout/navbar.html @@ -15,7 +15,7 @@ <div class="flex items-center 2xl:items-start"> <!-- BEGIN Logo--> - <a href="#" class="z-20"> + <a href="{{ page.root_page.url }}" class="z-20"> <img class="navbar__logo--white w-[150px] lg:w-[unset]" src="{% static 'main/images/logo-full-white.svg' %}" alt=""> <img class="navbar__logo--black w-[150px] lg:w-[unset]" src="{% static 'main/images/logo-full-black.svg' %}" alt=""> </a> diff --git a/main/templates/main/includes/organisms/popouts/popout_list.html b/main/templates/main/includes/organisms/popouts/popout_list.html index acccdb72ca9166ca3a189ac42d36e9e7ef437212..722a79d41a0610a3cbe221e44085081764c98699 100644 --- a/main/templates/main/includes/organisms/popouts/popout_list.html +++ b/main/templates/main/includes/organisms/popouts/popout_list.html @@ -1,12 +1,22 @@ +{% load wagtailimages_tags %} + <ul class="flex flex-col gap-6"> {% for category in categories %} <li class="grow"> <div class="flex gap-3 mb-3 items-center bg-grey-150 p-5"> - <i class="text-2xl {{ category.icon }}"></i> + {% image category.icon max-75x75 as icon %} + + <img + src="{{ icon.url }}" + width="20" + height="20" + > + <h2 class="font-alt text-2xl">{{ category.name }}</h2> </div> - {% for point in category.points %} - {% include 'main/includes/molecules/popouts/popout_point.html' with name=point.name %} + + {% for point in category.point_list %} + {% include 'main/includes/molecules/popouts/popout_point.html' with name=point.title content=point.content %} {% endfor %} </li> {% endfor %} diff --git a/main/templates/main/main_article_page.html b/main/templates/main/main_article_page.html index af02f1d6c5c4689a3c1766ed84d79c9084910a30..b8593def273ec88a2d1e164ecee401b700f0598c 100644 --- a/main/templates/main/main_article_page.html +++ b/main/templates/main/main_article_page.html @@ -1,75 +1,32 @@ {% extends "main/base.html" %} -{% load static wagtailcore_tags wagtailimages_tags wagtailroutablepage_tags %} +{% load wagtailcore_tags %} {% block content %} - {% image page.image max-1920x800 as main_img %} - {% with before_title=page.date image_url=main_img.url %} - {% include 'main/includes/layout/photo_page_header.html' %} - {% endwith %} - {# {% routablepageurl page.root_page.articles_page "tags" as articles_tag_page_url %}#} - <main role="main" class="mb-10 xl:mb-32"> - <div class="grid-container mb-2 lg:mb-12 relative"> - {% if page.author_page.title or page.author %} - <div class="grid-left-side h-full bg-grey-150 left-tab"> - <div class="p-6 flex flex-wrap flex-row items-center justify-between xl:items-start xl:flex-col"> - <span class="3xl:text-xl"> - <div class="font-bold">AUTOR ČLÁNKU:</div> - <span class="font-light">{% firstof page.author.upper page.author_page.title.upper %}</span> - </span> - <div class="flex flex-row static bottom-0 xl:absolute sm:bottom-5"> - {% for social in page.author_page.social_links %} - <a href="{{ social.value.link }}" class="flex hover:no-underline"> - <i class="{{ social.value.icon }} mx-1"></i> - </a> - {% endfor %} - </div> - </div> - </div> - {% endif %} - <div class="grid-content leading-6"> - <p class="font-condensed text-xl leading-7 mb-5"> - {{ page.perex }} - </p> - </div> - {% if page.author_page.title or page.author %} - <div class="hidden grid-right-side h-full bg-grey-150 right-tab xl:block"></div> - {% endif %} - </div> - {% for block in page.content %} - {% include_block block %} - {% endfor %} +{% include 'main/includes/organisms/layout/navbar.html' with selected_item=page.root_page.articles_page.title %} +{% include 'main/includes/organisms/header/article_header.html' with title=page.title description=page.perex tags=page.tags.names first_nav_text=page.root_page.articles_page.title first_nav_link=page.root_page.articles_page.url second_nav_text=page.date %} + +<main role="main" class="mb-10 xl:mb-32"> + <div class="container--wide flex flex-col"> {% if page.shared_from %} - <div class="grid-container mb-5"> - <div class="grid-content"> - <div class="prose max-w-none 3xl:text-lg"> - <div class="content-block"> - <p> - <em>Tento článek byl sdílen z jiného webu. Originál si můžete přečíst <a href="{{ page.get_original_url }}">zde</a>.</em> - </p> - </div> - </div> - </div> - </div> + <p> + <em> + Tento článek byl sdílen z jiného webu. + Originál si můžete přečíst <a href="{{ page.get_original_url }}">zde</a>. + </em> + </p> {% endif %} - </main> - {% include 'main/includes/newsletter_section.html' %} + {% for block in page.content %} + {% include_block block %} + {% endfor %} + + <div class="flex justify-start"> + {% include 'main/includes/atoms/buttons/round_button.html' with url=page.root_page.articles_page.url button_text='Zpět na aktuality' %} + </div> + </div> +</main> - {# {% if related_articles|length %}#} - {# <section class="mt-16 md:mt-24">#} - {# <h1 class="head-alt-base md:head-alt-md pb-4">#} - {# Další podobné články#} - {# </h1>#} - {##} - {# <div class="article-card-list grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 lg:gap-8">#} - {# {% for article in related_articles %}#} - {# {% include "shared/article_preview.html" %}#} - {# {% endfor %}#} - {# </div>#} - {##} - {# {% include "shared/more_articles_snippet.html" %}#} - {# </section>#} - {# {% endif %}#} +{% include 'main/includes/organisms/main_section/newsletter_section.html' %} {% endblock %} diff --git a/main/templates/main/main_articles_page.html b/main/templates/main/main_articles_page.html index c26727f49e8b429b7b94dbb61292bee33de04d3f..0d5c1baa261f1ccacf27f093bf504ee514644c78 100644 --- a/main/templates/main/main_articles_page.html +++ b/main/templates/main/main_articles_page.html @@ -1,156 +1,17 @@ {% extends "main/base.html" %} -{% load wagtailcore_tags wagtailimages_tags shared_filters %} +{% load wagtailcore_tags %} {% block content %} - {% include 'main/includes/layout/simple_page_header.html' %} - <main role="main"> - <div class="grid-container mb-2 xl:mb-12"> - <div class="grid-content leading-6"> - <p class="font-condensed text-xl leading-7 mb-5"> - {{ page.perex }} - </p> - <p class="font-condensed text-xl leading-7 mb-5"> - Projděte si archiv tiskových zpráv a souhrn našich nejvýraznějších aktivit. - </p> - </div> - </div> - <div class="__js-root"> - <ui-view-provider :initial="{timeline: true, articles: false}" :sync-location="true" - v-slot="{ isCurrentView, toggleView }"> - <div class="grid-container article-section mb-8"> - <div class="grid-full"> - <div class="flex flex-col items-center"> - <div class="switch"> - <a @click="toggleView('timeline')" class="switch__item" - :class="{'switch__item--active': isCurrentView('timeline')}">Aktuality</a> - <a @click="toggleView('articles')" class="switch__item" - :class="{'switch__item--active': isCurrentView('articles')}">Tiskové zprávy</a> - </div> - <div class="xl:mt-3"> - <form - class="flex flex-row" - method="get" - action="{{ page.search_url }}" - > - <input - class="bg-grey-150 w-56 h-10 px-4 text-lg xl:h-14 xl:px-5" - type="text" - id="q" - name="q" - placeholder="Hledat články..." - aria-label="Vyhledávací box" - > - <button - class="btn btn--yellow-500 btn--to-yellow-600 btn--hoveractive" - aria-label="Vyhledat" - type="submit" - > - <div class="btn__body-wrap h-10 w-12 min-h-0 min-w-0 xl:h-14 xl:w-14"> - <div class="btn__body p-0"> - <i class="ico--search"></i> - </div> - </div> - </button> - </form> - </div> - </div> - </div> - </div> - <template v-if="isCurrentView('timeline')"> - <div class="mt-20"> - <div class="grid-container article-section"> - <div class="grid-full mb-8"> - <div id="showMoreTimelineResultsWrapper"> - {% include 'main/blocks/articles_timeline_block.html' with article_data_list=article_timeline_list %} - </div> - <div class="flex justify-center"> - <a - onclick="showMoreTimelineArticles(event, this)" - href="#" - data-url="{{ page_url }}?months=" - data-months="2" - class="btn btn--black btn--to-yellow-500 btn--hoveractive uppercase" - > - <span class="btn__body-wrap"> - <span class="btn__body text-lg lg:text-base"> - Zobrazit další - </span> - </span> - </a> - </div> - </div> - </div> - </div> - </template> - <template v-if="isCurrentView('articles')"> - <section class="mb-3 xl:mb-14"> - <div class="grid-container justify-start"> - <div class="grid-content-with-right-side"> - <div class="leading-6"> - <h2 class="head-4xl mb-5 xl:hidden"> - Články - </h2> - </div> - </div> - </div> - <div id="searchArticleResultWrapper"> - {% include 'main/includes/person_article_preview.html' with article_data_list=article_article_list %} - </div> - <div class="grid-container justify-start"> - <div class="flex justify-center"> - <a - onclick="showMoreArticles(event, this)" - href="#" - data-url="{{ page_url }}?page=" - data-page="2" - class="btn btn--black btn--to-yellow-500 btn--hoveractive uppercase" - > - <span class="btn__body-wrap"> - <span class="btn__body text-lg lg:text-base"> - Zobrazit další - </span> - </span> - </a> - </div> - </div> - </section> - </template> - </ui-view-provider> - {% include "main/includes/newsletter_section.html" %} - </div> - </main> +{% include 'main/includes/organisms/layout/navbar.html' with selected_item=page.title %} +{% include 'main/includes/organisms/header/articles_header.html' with title=page.title tags=tags %} - <script type="text/javascript"> - async function showMoreTimelineArticles(event, btn) { - event.preventDefault() +<main role="main"> + <div class="mt-10 md:mt-20"> + {% include 'main/includes/organisms/articles/main_articles_timeline.html' with article_timeline_list=article_timeline_list %} + </div> +</main> - const showMoreTimelineResultsWrapper = document.getElementById('showMoreTimelineResultsWrapper') - const url = btn.getAttribute('data-url') + btn.getAttribute('data-months') +{% include 'main/includes/organisms/main_section/newsletter_section.html' %} - const response = await fetch(url, { - method: "GET", - headers: {"X-Requested-With": "XMLHttpRequest"}, - }) - const data = await response.json() - showMoreTimelineResultsWrapper.innerHTML = data.html - btn.setAttribute('data-months', parseInt(btn.getAttribute('data-months')) + 1) - } - - async function showMoreArticles(event, btn) { - event.preventDefault() - - let searchArticleResultWrapper = document.getElementById('searchArticleResultWrapper') - let url = btn.getAttribute('data-url') + btn.getAttribute('data-page') - - const response = await fetch(url, { - method: "GET", - headers: {"X-Requested-With": "XMLHttpRequest"}, - }) - const data = await response.json() - searchArticleResultWrapper.innerHTML += data.html; - if (!data.has_next) { btn.style.display = 'none'; } - btn.setAttribute('data-page', parseInt(btn.getAttribute('data-page')) + 1) - } - </script> -{% endblock content %} +{% endblock %} diff --git a/main/templates/main/main_contact_page.html b/main/templates/main/main_contact_page.html index d7ef6841aa53aac76d7df33dc193123072379dc5..24e61655abac38b6f2bdbe38149f02524aff4d87 100644 --- a/main/templates/main/main_contact_page.html +++ b/main/templates/main/main_contact_page.html @@ -1,32 +1,31 @@ {% extends "main/base.html" %} -{% load static wagtailcore_tags wagtailimages_tags shared_filters %} +{% load wagtailcore_tags wagtailimages_tags shared_filters %} {% block content %} - {% include 'main/includes/layout/simple_page_header.html' %} + {% include 'main/includes/organisms/layout/navbar.html' with selected_item=page.title %} + {% include 'main/includes/organisms/header/simple_header.html' with title=page.title %} <main role="main"> - <section class="grid-container no-max mb-4 xl:mb-20"> - <div class="grid-content-with-right-side flex flex-wrap"> - {% if page.text %} - <div class="w-full max-w-xl mb-10 xl:mb-20"> - - <h2 class="head-4xl mb-5"> - Kontakty pro veřejnost - </h2> - <div class="flex flex-wrap justify-between"> - {% for text_block in page.text %} - <div class="prose leading-5 w-5/6 sm:w-5/12"> - {{ text_block.value.text_column_1|richtext }} - </div> - <div class="prose leading-5 w-5/6 sm:w-5/12"> - {{ text_block.value.text_column_2|richtext }} - </div> - {% endfor %} - </div> + <section class="container--wide mb-4 xl:mb-20"> + <div class="flex flex-col flex-wrap mb-10 xl:mb-20"> + <div class="w-full max-w-xl mb-10 xl:mb-20"> + <h2 class="head-6xl mb-5"> + {{ page.title }} + </h2> + <div class="flex flex-wrap justify-between"> + {% for text_block in page.text %} + <div class="leading-5 w-5/6 sm:w-6/12"> + {{ text_block.value.text_column_1|richtext }} + </div> + <div class="leading-5 w-5/6 sm:w-6/12"> + {{ text_block.value.text_column_2|richtext }} + </div> + {% endfor %} </div> - {% endif %} + </div> + <div class="w-full max-w-2xl"> - <h2 class="head-4xl mb-5"> + <h2 class="head-6xl mb-5"> Regionální kontakty </h2> @@ -35,79 +34,40 @@ </div> </div> </div> - </section> - <div class="grid-container"> - {% if page.contact_boxes %} - <section class="grid-content-with-right-side mb-4 xl:mb-20"> - <h2 class="head-4xl mb-5"> - Další kontakty - </h2> - <div class="flex flex-wrap gap-4 justify-center md:justify-start"> - {% for contact_block in page.contact_boxes %} - <div class="contact-box"> - <div> - {% image contact_block.value.image fill-128x128 as contact_box_image %} - <img src="{{ contact_box_image.url }}" alt="{{ contact_block.title }}" - class="h-16 mx-auto w-16 mb-3"> - <h3 class="font-alt mb-3 text-xl"> - {{ contact_block.value.title }} - </h3> - <p class="mb-4"> - {{ contact_block.value.subtitle }} - </p> - </div> - {% include 'main/includes/href_button.html' with btn_link=contact_block.value.button_link btn_text=contact_block.value.button_text extra_classes="shrink-0" %} - </div> - {% endfor %} - </div> - </section> - {% endif %} - </div> - <div class="grid-container no-max"> + {% if page.contact_people %} - <section class="grid-content mb-4 xl:mb-20"> - <h2 class="head-4xl mb-5"> - Kontakty pro média - </h2> - <div class="flex flex-wrap gap-4 xl:gap-16"> - {% for contact_person_box in page.contact_people %} - <div class="flex w-full max-w-md"> - <div class="mt-2 sm:mt-0 mr-4 sm:mr-7"> - {% if contact_person_box.value.person.profile_image %} - {% image contact_person_box.value.person.profile_image fill-320x320 as profile_image %} - <img class="rounded-full shadow-sm w-20 sm:w-40" src="{{ profile_image.url }}" - alt="{{ contact_person_box.value.person.title }}"> - {% else %} - <img - class="rounded-full shadow-sm w-20 sm:w-40" - src="{% static "shared/img/unknown_pirate_160x160.jpg" %}" - alt="{{ contact_person_box.value.person.title }}" - /> - {% endif %} - </div> - <div class="flex flex-col py-4"> - <h6 class="font-bold mb-2 text-xl xl:text-2xl sm:text-3xl"> - {{ contact_person_box.value.person.title }} - </h6> - <span class="mb-4 sm:mb-6 text-grey-300"> - {% if contact_person_box.value.person.position %} - {{ contact_person_box.value.person.position }} - {% else %} - {{ contact_person_box.value.position }} - {% endif %} - </span> - {% if contact_person_box.value.person %} - <span class="mb-1">{{ contact_person_box.value.person.phone|default_if_none:'' }}</span> - <span - class="text-turquoise-500">{{ contact_person_box.value.person.email|default_if_none:'' }}</span> - {% endif %} - </div> - </div> - {% endfor %} - </div> - </section> + <h2 class="head-6xl mb-5 xl:mb-8"> + Kontakty pro média + </h2> + + <div class="grid grid-cols-1 xl:grid-cols-2 gap-4 mb-16"> + {% for contact_person in page.contact_people %} + {% if contact_person.value.person.profile_image %} + {% image contact_person.value.person.profile_image fill-256x256 as contact_box_image %} + {% endif %} + + {% firstof contact_person.value.position conact_person.value.person.position as contact_position %} + + {% include 'main/includes/molecules/contact/contact_person_large_box.html' with image=contact_box_image name=contact_person.value.person.title function=contact_position telephone=contact_person.value.person.phone mail=contact_person.value.person.email url=contact_person.value.person.url %} + {% endfor %} + </div> {% endif %} - </div> + + {% if page.contact_boxes %} + <h2 class="head-6xl mb-5 xl:mb-8"> + Další kontakty + </h2> + + <div class="grid grid-cols-1 xl:grid-cols-2 gap-4"> + {% for contact_block in page.contact_boxes %} + {% image contact_block.value.image fill-256x256 as contact_box_image %} + + {% include 'main/includes/molecules/contact/contact_person_large_box.html' with image=contact_box_image name=contact_block.value.title function=contact_block.value.subtitle %} + {% endfor %} + </div> + {% endif %} + </section> </main> - {% include 'main/includes/newsletter_section.html' %} -{% endblock content %} + + {% include 'main/includes/organisms/main_section/newsletter_section.html' %} +{% endblock %} diff --git a/main/templates/main/main_people_page.html b/main/templates/main/main_people_page.html index 01ae7b43d9c3a787279d50b5a02e9349aecc5cb5..13f68f07f6ce02ffa9e367fab42e441c5dc5f27f 100644 --- a/main/templates/main/main_people_page.html +++ b/main/templates/main/main_people_page.html @@ -2,62 +2,65 @@ {% load wagtailcore_tags wagtailimages_tags shared_filters %} {% block content %} +{% include 'main/includes/organisms/layout/navbar.html' with selected_item='Kdo jsme' %} -{% include 'main/includes/layout/simple_page_header.html' %} +<div class="__js-root"> + <ui-view-provider + :initial="{ {% for people_group in page.people %}'{{ people_group.value.slug }}-{{ forloop.counter }}': {% if forloop.counter0 %}false{% else %}true{% endif %},{% endfor %} }" + :sync-location="true" + v-slot="{ isCurrentView, toggleView }" + > + {% include 'main/includes/organisms/header/people_header.html' with people=page.people title=page.title description_column_1=page.perex_col_1 description_column_2=page.perex_col_2 %} -<main role="main" class="mb-4 xl:mb-20"> - <div class="grid-container"> - <div class="grid-content"> - <div class="prose max-w-none font-condensed text-xl text-black leading-7 mb-12 program-perex"> - {{ page.perex|richtext }} - </div> - </div> - </div> - <div class="container--medium"> - <div class="__js-root"> - <ui-view-provider - :initial="{ {% for people_group in page.people %}'{{ people_group.value.slug }}-{{ forloop.counter }}': {% if forloop.counter0 %}false{% else %}true{% endif %},{% endfor %} }" - :sync-location="true" - v-slot="{ isCurrentView, toggleView }" - > - <div class="flex justify-center mb-12"> - <ui-horizontal-scrollable> - <div class="switch"> - {% for people_group in page.people %} - <a @click="toggleView('{{ people_group.value.slug }}-{{ forloop.counter }}')" class="switch__item" - :class="{'switch__item--active': isCurrentView('{{ people_group.value.slug }}-{{ forloop.counter }}')}" - > - {{ people_group.value.title }} - </a> - {% endfor %} - </div> - </ui-horizontal-scrollable> - </div> - <div class="flex flex-wrap gap-4"> - {% for block in page.people %} - <template v-if="isCurrentView('{{ block.value.slug }}-{{ forloop.counter }}')"> + <main role="main" class="mb-20"> + <div class="container--wide"> + <div + class=" + flex flex-wrap justify-center gap-4 + xl:justify-start + " + > + <div class="grid grid-cols-1 gap-4 md:grid-cols-2 w-full"> + {% for block in page.people %} {% if block.block_type == "people_group" %} - {% for person_page in block.value.person_list %} - {% include 'main/includes/person_contact_big.html' %} - {% endfor %} + <template v-if="isCurrentView('{{ block.value.slug }}-{{ forloop.counter }}')"> + {% for person_page in block.value.person_list %} + {% image person_page.profile_image fill-480x480 as profile_image %} + + {% include 'main/includes/molecules/contact/contact_person_large_box.html' with image=profile_image name=person_page.title function=person_page.position telephone=person_page.phone mail=person_page.email url=person_page.url %} + {% endfor %} + </template> {% endif %} - </template> + {% endfor %} + </div> + + {% for block in page.people %} + {% if block.block_type == "team_group" %} + <template v-if="isCurrentView('{{ block.value.slug }}-{{ forloop.counter }}')"> + {% for team in block.value.team_list %} + + {% if team.value.headline %} + <h2 class="head-6xl mt-5 mb-5">{{ team.value.headline }}</h2> + {% endif %} + + <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 content-stretch gap-8"> + {% for card in team.value.card_items %} + {% image card.value.image max-512 as card_image %} + {% firstof card.value.page.url card.value.link as card_url %} + + {% include 'main/includes/molecules/boxes/card_box.html' with image=card_image header=card.value.title content=card.value.txt url=card_url %} + {% endfor %} + </div> + {% endfor %} + </template> + {% endif %} {% endfor %} </div> - {% for block in page.people %} - <template v-if="isCurrentView('{{ block.value.slug }}-{{ forloop.counter }}')"> - <div class="grid-left-side-with-content"> - {% if block.block_type == "team_group" %} - {% for card_block in block.value.team_list %} - {% include_block card_block %} - {% endfor %} - {% endif %} - </div> - </template> - {% endfor %} - </ui-view-provider> - </div> - </div> -</main> - {% include 'main/includes/newsletter_section.html' %} + </div> + </main> + </ui-view-provider> +</div> + +{% include 'main/includes/organisms/main_section/newsletter_section.html' %} + {% endblock content %} diff --git a/main/templates/main/main_person_page.html b/main/templates/main/main_person_page.html index 224f6d97a6338c008519cc92dea2da245179f10e..02e9d610e4e5917155c08d1e32efb933d6986665 100644 --- a/main/templates/main/main_person_page.html +++ b/main/templates/main/main_person_page.html @@ -1,155 +1,138 @@ {% extends "main/base.html" %} -{% load static wagtailcore_tags wagtailimages_tags shared_filters %} +{% load wagtailcore_tags wagtailimages_tags shared_filters %} {% block content %} + {% include 'main/includes/organisms/layout/navbar.html' with selected_item='Kdo jsme' is_transparent=True is_on_dark_background=True %} + {% include 'main/includes/organisms/header/photo_header.html' with first_nav_text=page.root_page.people_page.title first_nav_link=page.root_page.people_page.url second_nav_text=page.primary_group degree_before=page.before_name name=page.title degree_after=page.after_name function=page.position main_image=page.main_image %} + <main role="main"> - {% image page.main_image max-1920x800 as main_img %} - {% with before_title=page.before_name after_title=page.after_name subtitle=page.position image_url=main_img.url %} - {% include 'main/includes/layout/person_photo_page_header.html' %} - {% endwith %} - <div> - <section class="grid-container person-grid-container"> - <div class="grid-content leading-6"> - <article class="mb-4 xl:mb-24 xl:mr-2"> - <p class="font-condensed text-xl leading-7 mb-5"> - {{ page.perex }} - </p> - <div class="prose max-w-none mb-5"> + <div class="container--wide w-full"> + <section class="grid-container person-grid-container !ml-0"> + <div class="grid-left-side-with-content leading-6"> + <article + class=" + mb-4 + xl:mb-24 xl:mr-2 xl:pr-20 + " + > + <div class="prose [&_p]:leading-7 [&_p]:text-black [&_p]:text-lg" style="max-width:100ch"> + <p class="mb-4"> + {{ page.perex }} + </p> + {{ page.text|richtext }} </div> </article> </div> <div class="grid-right-side mb-8 xl:mb-0"> - {% if page.email or page.phone %} - <div class="bg-grey-100 flex flex-col justify-center mb-1 px-7 py-4 xl:py-9"> - {% if page.email %} - <div class="flex mb-2"> - <i class="ico--envelope mr-2"></i> - <a href="mailto:{{ page.email }}" class="text-turquoise-500 underline"> - {{ page.email }} - </a> - </div> - {% endif %} - {% if page.phone %} - <div class="flex"> - <i class="ico--phone mr-2"></i> - <a href="tel:{{ page.phone }}"> - {{ page.phone }} - </a> - </div> - {% endif %} - </div> - {% endif %} - {% if page.social_links %} - <div class="bg-grey-100 flex flex-col justify-center px-7 py-4 xl:py-9"> - {% for social_block in page.social_links %} - <div class="flex mb-2"> - <i class="{{ social_block.value.icon }} mr-2"></i> - <a href="{{ social_block.value.link }}"> - {{ social_block.value.text }} + <div> + <h3 + class=" + hidden font-alt text-[3.5rem] mb-3 + xl:block + " + >Kontakty</h3> + </div> + + <div class="flex flex-col gap-2 text-lg"> + {% if page.phone %} + <a href="tel:{{ page.phone }}" class="font-bold underline"> + {{ page.phone }} + </a> + {% endif %} + + {% if page.email %} + <a href="{{ page.email }}" class="font-bold underline"> + {{ page.email }} + </a> + {% endif %} + + <div class="flex flex-col pt-4 gap-3"> + {% for social_link in page.social_links %} + <div class="flex items-center gap-2"> + <i class="{{ social_link.value.icon }}"></i> + <a href="{{ social_link.value.link }}" class="underline"> + {{ social_link.value.text }} </a> </div> {% endfor %} </div> - {% endif %} + </div> </div> </section> </div> {% if page.calendar %} - <section class="grid-container no-max mr-0 mb-4 xl:mb-20"> - <div class="grid-content-with-right-side"> - <h2 class="head-4xl text-left"> - Kalendář - </h2> - <div class="xl:max-w-[1145px] __js-root"> - <ui-full-calendar events='{{ page.get_fullcalendar_data|safe }}'></ui-full-calendar> + <section class="mb-4 xl:mb-20 container--wide w-full"> + <div class="grid-container person-grid-container !ml-0"> + <div class="grid-left-side-with-content"> + <h2 class="text-[3.5rem] font-alt text-left"> + Kalendář + </h2> + </div> + </div> + + <div class="grid-container person-grid-container !ml-0"> + <div class="grid-left-side-with-content"> + <div> + {% include 'main/includes/atoms/calendar/calendar.html' with calendar_data=page.get_fullcalendar_data %} + </div> </div> </div> </section> {% endif %} {% if article_page_list %} - <section class="mb-4 xl:mb-20"> - <div class="grid-container justify-start"> - <div class="grid-content"> - <div class="leading-6"> - <h2 class="head-4xl"> - Články - </h2> - </div> + <section class="mb-4 xl:mb-20 container--wide w-full"> + <div class="grid-container person-grid-container mb-3 !ml-0"> + <div class="grid-left-side-with-content"> + <h2 class="font-alt text-[3.5rem]"> + Články + </h2> </div> </div> - {% for article_preview in article_page_list %} - <div class="grid-container"> - {% if article_preview.image %} - <div class="grid-left-side mb-4"> - {% image article_preview.image fill-250x250 as article_image %} - <img - class="hidden w-60 md:block" - src="{{ article_image.url }}" - alt="Náhledový obrázek článku" - > - </div> - {% endif %} + <div class="grid-container person-grid-container !ml-0"> + <div class="grid-left-side-with-content !ml-0"> + <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 content-stretch gap-8"> + {% for related_article in article_page_list %} - <div class="grid-content-with-right-side flex flex-col justify-between items-start mb-9"> - <div class="flex font-bold mb-4 text-xs text-white uppercase"> - <span class="bg-green-500 mr-1 px-2 py-2">{{ article_preview.date }}</span> - {% for tag in article_preview.get_tags %} - <span class="bg-violet-600 mr-1 px-2 py-2">{{ tag }}</span> - {% endfor %} - </div> - <h4 class="head-3xl mb-4"> - {{ article_preview.title }} - </h4> - <p class="mb-6"> - {{ article_preview.perex }} - </p> - {% include 'main/includes/href_button.html' with btn_link=article_preview.url btn_text="Číst dále" %} + {% image related_article.image fill-500x500 as article_image %} + + {% include 'main/includes/molecules/boxes/card_box.html' with url=related_article.url image=article_image header=related_article.title description_classes='!bg-grey-180' date=related_article.date %} + {% endfor %} </div> </div> - {% endfor %} + </div> </section> {% endif %} - {% for people_group in page.people %} - <section class="grid-container person-grid-container mb-4 xl:mb-20 justify-start"> - <div class="grid-content-with-right-side"> - <h2 class="head-4xl text-left"> - {{ people_group.value.title }} - </h2> - <div class="flex flex-wrap"> - {% for person in people_group.value.person_list %} - <div class="flex person-box-medium mb-4 xl:mb-12"> - <div class="shrink-0 mr-4"> - {% image person.profile_image fill-250x250 as profile_image %} - <img - class="rounded-full shadow-sm w-20 mb-2 xl:w-44" - src="{{ profile_image.url }}" - alt="{{ person.title }}" - > - </div> - <div class="flex flex-col justify-between py-4"> - <div class="flex flex-col"> - <h4 class="head-3xl"> - {{ person.title }} - </h4> - <span class="text-sm xl:text-base leading-6 mb-6">{{ person.position|default_if_none:"" }}</span> - </div> - <div> - {% include 'main/includes/href_button.html' with btn_link=person.url btn_text="Detail" %} - </div> - </div> - </div> - {% endfor %} + {% if page.related_people %} + <section class="mb-4 xl:mb-20 container--wide w-full"> + <div class="grid-container person-grid-container mb-4 !ml-0"> + <div class="grid-left-side-with-content"> + <h2 class="text-[3.5rem] font-alt text-left"> + Další lidé + </h2> </div> </div> - </section> - {% endfor %} - {% include 'main/includes/newsletter_section.html' %} + <div class="grid-container person-grid-container !ml-0"> + <div class="grid-left-side-with-content"> + <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 content-stretch gap-8"> + {% for person in page.related_people %} + {% with person.value as person %} + {% image person.profile_image fill-500x500 as profile_image %} + + {% include 'main/includes/molecules/boxes/card_box.html' with image=profile_image url=person.url header=person.title content=person.position description_classes='!bg-grey-180' %} + {% endwith %} + {% endfor %} + </div> + </div> + </div> + </section> + {% endif %} + {% include 'main/includes/organisms/main_section/newsletter_section.html' %} </main> {% endblock content %} diff --git a/main/templates/main/main_program_page.html b/main/templates/main/main_program_page.html index 04701efdecaa22eafa15523eba0018b665bef6f4..16e523cd235d27b8418c1b4acc9fc4a9e24c2b70 100644 --- a/main/templates/main/main_program_page.html +++ b/main/templates/main/main_program_page.html @@ -2,123 +2,59 @@ {% load wagtailcore_tags wagtailimages_tags shared_filters %} {% block content %} - {% include 'main/includes/layout/simple_page_header.html' %} + {% include 'main/includes/organisms/layout/navbar.html' with selected_item=page.title %} - <main role="main" class="mb-4 xl:mb-20"> - <div class="grid-container"> - <div class="grid-content"> - <div class="prose max-w-none font-condensed text-xl text-black leading-7 mb-12 program-perex"> - {{ page.perex|richtext }} - </div> - </div> - </div> - <div class=""> - <div class="__js-root"> - <ui-view-provider - :initial="{ {% for program_group in page.program %}'{{ program_group.value.slug }}-{{ forloop.counter }}':{% if forloop.counter0 %}false{% else %}true{% endif %},{% endfor %} }" - :sync-location="true" - v-slot="{ isCurrentView, toggleView }" - > - <div class="mb-12 container--medium flex justify-start"> - <ui-horizontal-scrollable> - <div class="switch"> - {% for program_group in page.program %} - <a @click="toggleView('{{ program_group.value.slug }}-{{ forloop.counter }}')" class="switch__item" - :class="{'switch__item--active': isCurrentView('{{ program_group.value.slug }}-{{ forloop.counter }}')}"> - {{ program_group.value.title }} - </a> - {% endfor %} - </div> - </ui-horizontal-scrollable> - </div> + <div class="__js-root"> + <ui-view-provider + :initial="{view1: true, {% for program_group in page.program %}view{{ forloop.counter }}: {% if forloop.first %}true{% else %}false{% endif %}{% if not forloop.last %},{% endif %}{% endfor %}}" + :sync-location="true" + v-slot="{ isCurrentView, toggleView }" + > + {% include 'main/includes/organisms/header/simple_header_with_ui_switch.html' with title='Program' ui_switch_iterable=page.program %} - {% for program_group in page.program %} - <template v-if="isCurrentView('{{ program_group.value.slug }}-{{ forloop.counter }}')"> - {% if program_group.value.perex %} - <div class="grid-container mb-12"> - <div class="prose grid-left-side-with-content"> - {{ program_group.value.perex|richtext }} + <main role="main" class="mb-4 xl:mb-20"> + <div class="container--wide flex flex-col"> + {% for program in page.program %} + <template v-if="isCurrentView('view{{ forloop.counter }}')"> + {% if program.block_type == "program_group" %} + <div class="mx-auto"> + {% if program.value.perex %} + <div class="mb-12"> + <div class="prose"> + {{ program.value.perex|richtext }} + </div> </div> - </div> - {% endif %} + {% endif %} - {% if program_group.block_type == "program_group" %} - {% for item in program_group.value.point_list %} - {% if item.url %} - <a href="{{ item.url }}" class="hover:no-underline grid-container mb-12"> - {% else %} - <div class="grid-container mb-12"> + {% for point in program.value.point_list %} + {% if point.icon %} + {% image point.icon max-150x150 as point_icon %} {% endif %} - {% if item.icon %} - {% image item.icon max-150x150 as icon %} - <img src="{{ icon.url }}" alt="{{ item.title }}" class="grid-left-side mr-6 text-6xl xl:justify-self-end"> - {% endif %} - <div class="{% if item.icon %}grid-content{% else %}grid-left-side-with-content{% endif %} flex flex-col"> - <h3 class="font-alt mb-4 text-4xl"> - {{ item.title }} - </h3> - <div class="prose leading-6"> - {{ item.text|richtext }} - </div> - </div> - {% if item.url %} - </a> - {% else %} - </div> - {% endif %} + {% include 'main/includes/molecules/blocks/icon_title_text_block.html' with icon=point_icon url=point.url title=point.title text=point.text %} {% endfor %} - {% elif program_group.block_type == "program_group_crossroad" %} - <div class="grid-container mb-12"> - <div class="grid-left-side-with-content"> - <ul class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"> - {% for item in program_group.value.point_list %} - <li> - {% include_block item %} - </li> - {% endfor %} - </ul> - </div> - </div> - {% elif program_group.block_type == "program_group_popout" %} - <div class="grid-container mb-12"> - <div class="grid-left-side-with-content"> - <ul class="flex flex-col gap-6"> - {% for category in program_group.value.categories %} - <li class="grow"> - <div class="flex gap-3 mb-3 items-center bg-grey-150 p-5"> - {% image category.icon max-75x75 as icon %} - <img - src="{{ icon.url }}" - width="20" - height="20" - alt=""{% comment %} (decorative image, https://stackoverflow.com/a/52557065) {% endcomment %} - > - <h2 class="font-alt text-2xl">{{ category.name }}</h2> - </div> - {% for point in category.point_list %} - <ui-popout> - <template slot="toggler"> - {{ point.title }} - </template> - <ui-popout-content> - <div class="prose max-w-screen-lg"> - <p>{{ point.content }}</p> - </div> - </ui-popout-content> - </ui-popout> - {% endfor %} - </li> - {% endfor %} - </ul> - </div> + </div> + {% elif program.block_type == 'program_group_popout' %} + <div class="mb-12"> + {% include 'main/includes/organisms/popouts/popout_list.html' with categories=program.value.categories %} + </div> + {% elif program.block_type == 'program_group_crossroad' %} + <div class="mb-12"> + <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 content-stretch gap-8"> + {% for point in program.value.point_list %} + {% image point.image fill-512x512 as point_image %} + + {% include 'main/includes/molecules/boxes/card_box.html' with url=point.page.url image=point_image header=point.title content=point.text date=point.page.date description_classes="!bg-grey-180" classes="drop-shadow" %} + {% endfor %} </div> - {% endif %} - </template> - {% endfor %} - </ui-view-provider> - </div> - </div> - </main> - {% include 'main/includes/newsletter_section.html' %} + </div> + {% endif %} + </template> + {% endfor %} + </div> + </main> + </ui-view-provider> + </div> + + {% include 'main/includes/organisms/main_section/newsletter_section.html' %} {% endblock %} diff --git a/shared/image_formats.py b/shared/image_formats.py index fc1a1a8f2cd44c76ecc6f2d9d2e9d6dd70025c4e..6bc6e155170fb5f484056a27ee67babae2327f6e 100644 --- a/shared/image_formats.py +++ b/shared/image_formats.py @@ -13,7 +13,7 @@ register_image_format( Format( "tailwind_left_400", "šablona: Vlevo (max 400px)", - "float-left mr-4 mb-6 max-w-[400px] sm:max-w-full object-contain", + "float-left mr-4 mb-6 max-w-[400px] mt-0 sm:max-w-full object-contain", "max-400x400", ) ) @@ -22,7 +22,7 @@ register_image_format( Format( "tailwind_left_200", "šablona: Vlevo (max 200px)", - "float-left mr-4 mb-6 object-contain", + "float-left mr-4 mb-6 mt-0 object-contain", "max-200x200", ) ) @@ -31,7 +31,7 @@ register_image_format( Format( "tailwind_right_400", "šablona: Vpravo (max 400px)", - "float-right ml-4 mb-6 max-w-[400px] sm:max-w-full object-contain", + "float-right ml-4 mb-6 max-w-[400px] mt-0 sm:max-w-full object-contain", "max-400x400", ) ) @@ -40,7 +40,7 @@ register_image_format( Format( "tailwind_right_200", "šablona: Vpravo (max 200px)", - "float-right ml-4 mb-6 object-contain", + "float-right ml-4 mb-6 mt-0 object-contain", "max-200x200", ) ) diff --git a/shared/models.py b/shared/models.py index 6ae64de6aa0991da18d240485f379671bd6a6ef8..df80cba348bad1d0155f6faebb7a83a9190a1105 100644 --- a/shared/models.py +++ b/shared/models.py @@ -495,7 +495,6 @@ class ArticlesMixin: key_fields_default_values = { "union_thumb_image_id": F("search_image_id"), - "union_article_type": Value(2, models.PositiveSmallIntegerField()), } create_complementary_field = lambda key: (