/* Blog Styles
------------------------------------------------------------------------------- */
/* Add more spacing to headlines in blog posts */
.dynamic-entry-content :is(h2, h3, h4, h5):not(:first-child) {
   margin-top: 2em;
   margin-bottom: 0.3em;
   text-wrap: pretty;
}

.dynamic-entry-content > h1:first-child,
.dynamic-entry-content > h2:first-child,
.dynamic-entry-content > h3:first-child,
.dynamic-entry-content > h4:first-child,
.dynamic-entry-content > h5:first-child {
    margin-top: 0;
}

/* Lists */
ul.wp-block-list{
    margin-left: 0.5em;
}

ol.wp-block-list{
    margin-left: 1.1em;
}

ul.wp-block-list li{
    display: list-item;
    list-style-type: "\2022";
    padding-inline-start: 1ch;
}

ul.wp-block-list li ul li{
    list-style-type: "\25E6";
}

ol.wp-block-list li{
    display: list-item;
    padding-inline-start: 0.5ch;
}

.wp-block-list li::marker{
    color: var(--color-secondary);
}

.wp-block-list li ol,
.wp-block-list li ul{
    /*margin-top: 1em;*/
}

/* Blockquotes */
blockquote.wp-block-quote{
    position: relative;
    margin-left: 0;
    margin-right: 0;
    text-align: center;
    max-width: unset;
    padding: 0 !important;
    margin-bottom: 2em;
    margin-top: 2em;
    text-align: left;
    font-style: normal;
    border: 0 !important;
    font-size: 100%;
}

blockquote.wp-block-quote p{
    max-width: 100%;
    margin: 0 auto;
    padding: 0;
    text-align: left;
    color: inherit;
    position: relative;
    text-wrap: pretty;
    font-size: var(--h3)!important;
    line-height: 1.3;
}

blockquote.wp-block-quote p:before {
    content: '“';
    position: absolute;
    top: 0;
    left: 0;
    transform: translateX(-0.6em);
    font-family: serif;
}

blockquote.wp-block-quote p:after {
    content: '”';
    position: static;
    display: inline-block;
    padding-left: 0.1em;
    font-family: serif;
}

blockquote.wp-block-quote cite {
    display: block;
    max-width: 100%;
    margin: 0.5em 0 0 0;
    font-style: normal; 
    color: inherit; 
    text-align: left; 
    font-weight: 700;
}

blockquote.wp-block-quote cite:before{
    content: '— ';
}


/* Table */
.wp-block-table{
    margin-bottom: 1.5em;
    margin-top: 1.5em;
    width: auto;
    max-width: 100%;
    overflow-x: auto;
    display: block;
}

table {
    border-collapse: collapse;
    margin: 1.5em 0 1.5em 0;
    padding: 0;
    border: 0;
    border: 1px solid var(--divider, #000);
    font-weight: 400;
    width: 100%;
    min-width: max-content;
    word-break: break-word;
    overflow-wrap: break-word;
}

td, th{ border: 0; }

th, td {
    padding: 12px 15px;
    text-align: left;
    border-bottom: 1px solid var(--divider);
}

th {
    background-color: var(--surface-20);
    font-weight: bold;
}

tr:hover {
    background-color: var(--surface-10);
}


/* Wide + Full layouts disabled on this site
.wp-block-table.alignwide{
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    text-align: center;
    max-width: unset;
    padding: 0 1em;
    margin-bottom: 2.5em;
    margin-top: 2.5em;
}

.wp-block-table.alignwide table{
    width: var(--container-small);
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
} 
*/

/* Dropcap */
.has-drop-cap:not(:focus):first-letter {
    float: left;
    font-size: 4.4em;
    font-style: normal;
    font-weight: 100;
    line-height: 1em;
    margin: .03em .1em 0 0;
    text-transform: uppercase;
    color: var(--color-primary);
}

.has-small-font-size{ font-size: 80%; }
.has-medium-font-size{ font-size: 100%; }
.has-large-font-size{ font-size: 120%; letter-spacing: -0.03em; line-height: 1.4;  }
.has-larger-font-size{ font-size: 140%; letter-spacing: -0.03em; line-height: 1.3; }
.has-x-large-font-size{ font-size: 160%; letter-spacing: -0.04em; line-height: 1.2; }

.has-background{
    padding: 1.5em;
    border-radius: 0.5em;
}

/* Image */
.wp-block-image{
    margin-bottom: 1.5em;
    margin-top: 1.5em;
}

.wp-block-image img{
    border-radius: 0.5em;
}

.wp-block-image .aligncenter{
    padding: 0;
}

.wp-block-image .aligncenter img{
    width: 100%;
    height: auto;
}

.wp-block-image .alignleft, 
.wp-block-image .alignright, 
.wp-block-image .aligncenter{
    display: table;
}


.wp-block-image .alignleft>figcaption, 
.wp-block-image .alignright>figcaption, 
.wp-block-image .aligncenter>figcaption {
    caption-side: bottom;
    display: table-caption;
}

.wp-block-image .alignright { float: right; margin: .4em 0 1em 2em; }
.wp-block-image .alignleft { float: left; margin: .4em 2em 1em 0; }

/* Caption */
html .wp-block-image figcaption{
    color: var(--color-grey-500);
    font-size: 70%;
    margin-top: 0.5em;
    text-align: left;
}

/* Gutenberg Button */
.wp-block-buttons{
    display: flex;
    flex-wrap: wrap;
    gap: 0.5em;
}

a.wp-block-button__link,
html :where(.editor-styles-wrapper) .wp-block-button .wp-block-button__link{
    align-items: center;
    background-color: var(--color-primary);
    color: var(--color-black);
    border: none;
    border-radius: var(--button-radius);
    display: inline-flex;
    font-size: 100%;
    justify-content: center;
    line-height: 1.4;
    transition: transform 0.2s ease 0s;
    will-change: transform;
    column-gap: .25em;
    display: inline-flex;
    font-weight: 640;
    justify-content: center;
    letter-spacing: -.01em;
    padding: .5em 1em !important;
    row-gap: .25em;
    transition: all 0.3s ease 0s;
}


a.wp-block-button__link:is(:hover,:focus):not(.has-background,has-text-color) {
    background-color: var(--color-primary-alt);
    color: var(--color-black);
}

/* Embed */
.dynamic-entry-content embed, .dynamic-entry-content iframe, .dynamic-entry-content object{
    border-radius: 0.5em;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    margin: 1em auto;
    display: block;
}

/* Gallery */
:root {
   --gallery-gap: 1em;
}

/* Base Gallery Layout */
.wp-block-gallery.has-nested-images {
   display: flex;
   flex-wrap: wrap;
   gap: var(--gallery-gap, 1em)!important;
   margin: 2em 0;
   padding: 0;
}

/* Each Image Container */
.wp-block-gallery.has-nested-images figure.wp-block-image {
   display: flex;
   margin: 0;
   position: relative;
   flex-grow: 1;
}

/* Image Styling */
.wp-block-gallery.has-nested-images figure.wp-block-image img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}

/* Column Layouts with row filling */
@media (min-width: 769px) {
   /* 2 columns */
   .wp-block-gallery.has-nested-images.columns-2 figure.wp-block-image {
       flex-basis: calc(50% - (var(--gallery-gap) / 2));
       flex-grow: 1;
   }
   
   /* 3 columns */
   .wp-block-gallery.has-nested-images.columns-3 figure.wp-block-image, .wp-block-gallery.has-nested-images.columns-default figure.wp-block-image {
       flex-basis: calc(33.33% - (var(--gallery-gap) * 2 / 3));
       flex-grow: 1;
   }
   
   /* 4 columns */
   .wp-block-gallery.has-nested-images.columns-4 figure.wp-block-image {
       flex-basis: calc(25% - (var(--gallery-gap) * 3 / 4));
       flex-grow: 1;
   }

   /* 5 columns */
   .wp-block-gallery.has-nested-images.columns-5 figure.wp-block-image {
       flex-basis: calc(20% - (var(--gallery-gap) * 4 / 5));
       flex-grow: 1;
   }

   /* 6 columns */
   .wp-block-gallery.has-nested-images.columns-6 figure.wp-block-image {
       flex-basis: calc(16.66% - (var(--gallery-gap) * 5 / 6));
       flex-grow: 1;
   }

   /* Last row behavior */
   .wp-block-gallery.has-nested-images.columns-4 figure.wp-block-image:nth-last-child(-n+2):first-child,
   .wp-block-gallery.has-nested-images.columns-4 figure.wp-block-image:nth-last-child(-n+2):first-child ~ figure.wp-block-image {
       flex-basis: calc(50% - (var(--gallery-gap) / 2));
   }

   .wp-block-gallery.has-nested-images.columns-3 figure.wp-block-image:nth-last-child(1):first-child,
   .wp-block-gallery.has-nested-images.columns-3 figure.wp-block-image:nth-last-child(1):first-child ~ figure.wp-block-image {
       flex-basis: calc(33.33% - (var(--gallery-gap) * 2 / 3));
   }
}

/* Caption Styling */
.wp-block-gallery.has-nested-images figure{
    border-radius: 0.5em;
    overflow: clip;
}

.wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
   background: linear-gradient(0deg, rgba(6, 6, 8, 0.1), transparent);
   bottom: 0;
   color: #fff;
   font-size: 12px;
   left: 0;
   margin: 0;
   padding: 2em 1em 1em 1em;
   position: absolute;
   right: 0;
   text-align: center;
   border-radius: 0 0 0.5em 0.5em;
}

@media (max-width: 768px) {
    .wp-block-gallery.has-nested-images {
       gap: var(--gallery-gap, 0.5em)!important;
    }
   .wp-block-gallery.has-nested-images figure.wp-block-image {
       flex-basis: 100%;
       margin-bottom: 0;
   }
}

/* Alignment Options */
.wp-block-gallery.has-nested-images.alignleft,
.wp-block-gallery.has-nested-images.alignright {
   max-width: 420px;
   width: 100%;
}

.wp-block-gallery.has-nested-images.aligncenter {
   justify-content: center;
}

/* Audio */
.wp-block-audio{
    margin: 2em 0;
}

.wp-block-audio audio{
    width: 100%;
    display: block;
}

/* Element Caption */
.wp-element-caption{
    color: var(--grey-500);
    font-size: 12px;
    letter-spacing: -0.01em;
    margin-top: 1em;
    text-align: left;
}

/* Media Text */
.wp-block-media-text {
    --media-gap: 2em;
   display: grid;
   grid-template-columns: 50% 1fr;
   direction: ltr;
   gap: 0;
   margin: 2em 0;
}

.wp-block-media-text.has-media-on-the-right {
   grid-template-columns: 1fr 50%;
}

.wp-block-media-text__content {
   padding-left: var(--media-gap);
   padding-right: 0;
}

.has-media-on-the-right .wp-block-media-text__content {
   padding-right: var(--media-gap);
   padding-left: 0;
}

[class*="is-vertically-aligned"] > * {
   align-self: var(--v-align, center);
}

.is-vertically-aligned-top > * { --v-align: start; }
.is-vertically-aligned-bottom > * { --v-align: end; }

.wp-block-media-text__media img,
.wp-block-media-text__media video {
   width: 100%;
   height: auto;
}

.is-image-fill-element > .wp-block-media-text__media {
   height: 100%;
   min-height: 250px;
   position: relative;
    border-radius: 0.5em;
    overflow: clip;
}

.is-image-fill-element > .wp-block-media-text__media img {
   position: absolute;
   height: 100%;
   width: 100%;
   object-fit: cover;
}

@media (max-width: 768px) {
    .wp-block-media-text {
    --media-gap: 1em;
    }
   .wp-block-media-text.is-stacked-on-mobile {
       grid-template-columns: 100% !important;
       gap: 2em;
   }

   .wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__content,
   .has-media-on-the-right.is-stacked-on-mobile .wp-block-media-text__content {
       padding: 0;
   }
}

/* Video */
.wp-block-video video{
    border-radius: 0.5em;
    overflow: clip;
}

/* Columns */
.wp-block-columns {
    --column-gap: 2em;
   display: flex;
   gap: var(--column-gap, 2em);
   margin: 0 0 1em 0;
}

.wp-block-column {
   flex-grow: 1;
   min-width: 0;
   word-break: break-word;
}

/* Column variations */
.wp-block-columns.has-2-columns .wp-block-column { flex-basis: calc(50% - var(--column-gap)/2); }
.wp-block-columns.has-3-columns .wp-block-column { flex-basis: calc(33.33% - var(--column-gap)*2/3); }
.wp-block-columns.has-4-columns .wp-block-column { flex-basis: calc(25% - var(--column-gap)*3/4); }
.wp-block-columns.has-5-columns .wp-block-column { flex-basis: calc(20% - var(--column-gap)*4/5); }
.wp-block-columns.has-6-columns .wp-block-column { flex-basis: calc(16.66% - var(--column-gap)*5/6); }

/* Default without column count class */
.wp-block-columns:not([class*="has-"]) .wp-block-column {
   flex-basis: calc(50% - var(--column-gap)/2);
}

@media (max-width: 768px) {
   .wp-block-columns {
       --column-gap: 1em;
       flex-direction: column;
   }
   
   .wp-block-column {
       flex-basis: 100% !important;
       margin-left: 0;
   }
}

blockquote {
    background-color: var(--color-primary-lighter);
    border-left: 0px solid var(--color-primary)!important;
    padding: 0;
    font-size: var(--fontsize-m)!important;
    border-radius: var(--radius);
    padding: var(--space-s)!important;
	padding-left: var(--space-m)!important;
    font-style: normal!important;
    margin: 0 0 1.5em;
    position: relative;
    text-align: left;
	line-height: 1.4;
    letter-spacing: -0.02em;
}
blockquote::before {
    font-size: 220%;
    content: "\201C";
    position: absolute;
    top: 0.2em;
    left: 0.5em;
    font-family: serif;
    color: var(--color-primary);
}
blockquote p:last-of-type::after {
    content: "\201D";
    color: var(--color-primary);
    font-family: serif;
	margin-left: 0.2em;
}

.wp-block-pullquote{
    padding: 0;
    margin: 1.5em 0;
}

.wp-block-pullquote cite {
    color: inherit;
    display: block;
    font-style: normal;
	font-size: var(--fontsize-s)!important;
}

pre {
    background: var(--color-secondary-lighter)!important;
    font-family: inherit;
    font-size: inherit;
    line-height: normal;
    margin-bottom: 1.5em;
    padding: var(--space-s)!important;
    overflow: auto;
    max-width: 100%;
    border-radius: var(--radius)!important;
}
