/* WordPress Core Block Styles for Headless Frontend */

/* Columns Block */
.wp-block-columns {
    display: flex;
    flex-wrap: nowrap;
    flex-direction: row;
    gap: 2em;
    margin-bottom: 1.75em;
    box-sizing: border-box;
}

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

/* Equal width columns */
.wp-block-columns > .wp-block-column {
    flex-basis: 100%;
}

.wp-block-columns > .wp-block-column:not(:only-child) {
    flex-basis: calc(50% - 1em);
}

/* Specific column widths */
.wp-block-column[style*="flex-basis"] {
    flex-grow: 0;
}

/* Two columns */
.wp-block-columns.has-2-columns > .wp-block-column {
    flex-basis: calc(50% - 1em);
}

/* Three columns */
.wp-block-columns.has-3-columns > .wp-block-column {
    flex-basis: calc(33.33333% - 1.33333em);
}

/* Four columns */
.wp-block-columns.has-4-columns > .wp-block-column {
    flex-basis: calc(25% - 1.5em);
}

/* Five columns */
.wp-block-columns.has-5-columns > .wp-block-column {
    flex-basis: calc(20% - 1.6em);
}

/* Six columns */
.wp-block-columns.has-6-columns > .wp-block-column {
    flex-basis: calc(16.66667% - 1.66667em);
}

/* Mobile responsiveness */
@media (max-width: 781px) {
    .wp-block-columns:not(.is-not-stacked-on-mobile) {
        flex-direction: column;
    }
    
    .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
        flex-basis: 100% !important;
    }
}

/* Tablet responsiveness */
@media (min-width: 782px) and (max-width: 1024px) {
    .wp-block-columns {
        gap: 1.5em;
    }
}

/* Group Block */
.wp-block-group {
    box-sizing: border-box;
}

.wp-block-group__inner-container {
    margin-left: auto;
    margin-right: auto;
}

/* Separator */
.wp-block-separator {
    border: none;
    border-top: 2px solid currentColor;
    margin: 2em auto;
    max-width: 100px;
}

.wp-block-separator.is-style-wide {
    max-width: 100%;
}

.wp-block-separator.is-style-dots {
    border: none;
    text-align: center;
    max-width: none;
    line-height: 1;
    height: auto;
}

.wp-block-separator.is-style-dots::before {
    content: '···';
    font-size: 20px;
    letter-spacing: 2em;
    padding-left: 2em;
    font-family: serif;
}

/* Spacer */
.wp-block-spacer {
    clear: both;
}

/* Button */
.wp-block-button {
    margin-bottom: 1.5em;
}

.wp-block-button__link {
    background-color: #32373c;
    border: none;
    border-radius: 28px;
    box-shadow: none;
    color: #fff;
    cursor: pointer;
    display: inline-block;
    font-size: 18px;
    padding: 12px 24px;
    text-align: center;
    text-decoration: none;
    overflow-wrap: break-word;
}

.wp-block-button__link:hover {
    opacity: 0.85;
}

/* Quote */
.wp-block-quote {
    border-left: 4px solid;
    margin: 0 0 1.75em;
    padding-left: 1em;
}

.wp-block-quote cite {
    color: #6c7781;
    font-size: 13px;
    margin-top: 1em;
    position: relative;
    font-style: normal;
}

/* Pullquote */
.wp-block-pullquote {
    border-top: 4px solid;
    border-bottom: 4px solid;
    margin: 0 0 1.75em;
    padding: 3em 0;
    text-align: center;
}

.wp-block-pullquote blockquote {
    margin: 0;
    border: none;
    padding: 0;
}

/* Table */
.wp-block-table {
    overflow-x: auto;
}

.wp-block-table table {
    width: 100%;
    border-collapse: collapse;
}

.wp-block-table td,
.wp-block-table th {
    padding: 0.5em;
    border: 1px solid;
}

/* Media & Text */
.wp-block-media-text {
    display: grid;
    grid-template-rows: auto;
    align-items: center;
    grid-template-areas: "media-text-media media-text-content";
    grid-template-columns: 50% 1fr;
    margin-bottom: 1.75em;
}

.wp-block-media-text__media {
    grid-area: media-text-media;
    margin: 0;
}

.wp-block-media-text__content {
    grid-area: media-text-content;
    padding: 0 8%;
}

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

@media (max-width: 600px) {
    .wp-block-media-text {
        grid-template-columns: 100% !important;
        grid-template-areas:
            "media-text-media"
            "media-text-content";
    }
    
    .wp-block-media-text.has-media-on-the-right {
        grid-template-areas:
            "media-text-media"
            "media-text-content";
    }
    
    .wp-block-media-text__content {
        padding: 1em 0 0;
    }
}

/* Cover Block */
.wp-block-cover {
    position: relative;
    min-height: 430px;
    padding: 1em;
    display: flex;
    align-items: center;
    justify-content: center;
    background-size: cover;
    background-position: center;
}

.wp-block-cover__inner-container {
    width: 100%;
    z-index: 1;
    color: #fff;
}

/* Gallery */
.wp-block-gallery {
    display: flex;
    flex-wrap: wrap;
    list-style-type: none;
    padding: 0;
    margin: 0;
}

.wp-block-gallery .blocks-gallery-item {
    margin: 0 1em 1em 0;
    display: flex;
    flex-grow: 1;
    flex-direction: column;
    justify-content: center;
    position: relative;
}

/* Embed */
.wp-block-embed {
    margin-bottom: 1.75em;
}

.wp-block-embed iframe {
    max-width: 100%;
}

/* Image alignment */
.alignleft {
    float: left;
    margin-right: 1em;
    margin-bottom: 1em;
}

.alignright {
    float: right;
    margin-left: 1em;
    margin-bottom: 1em;
}

.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.alignwide,
.alignfull {
    max-width: none;
    width: 100%;
}

/* Clear floats */
.wp-block-group::after,
.entry-content::after {
    content: "";
    display: table;
    clear: both;
}
