/* Global */

.wp-block-pullquote:has(> blockquote > p:empty):not(:has(> blockquote > cite)),
.wp-block-buttons:empty,
.wp-block-social-links:empty,
h1:empty,
h2:empty,
h3:empty,
h4:empty,
h5:empty,
h6:empty,
li:empty,
blockquote:empty,
p:empty {
    display: none;
}

mark {
    background-color: transparent;
}

a:where(:not(.wp-element-button)) {
    transition: color 0.25s ease-out;
}

/* Buttons */

.wp-block-button .wp-block-button__link {
    transition: all 0.3s ease-out;
    transition-property: background-color, color, border-color;
}

.wp-block-button .wp-block-button__link:focus {
    outline-offset: 2px;
}

.wp-block-button .wp-block-button__link:hover {
    background-color: var(--wp--preset--color--neutral) !important;
    color: var(--wp--preset--color--base) !important;
    border-color: var(--wp--preset--color--neutral);
}

.wp-block-button .wp-block-button__link:active,
.wp-block-button .wp-block-button__link.has-background:active {
    border-color: var(--wp--preset--color--neutral-dark) !important;
    background-color: var(--wp--preset--color--neutral-dark) !important;
    color: var(--wp--preset--color--base) !important;
}

.has-contrast-background-color .wp-block-button:not(.is-style-outline) .wp-block-button__link {
    background-color: var(--wp--preset--color--base);
    color: var(--wp--preset--color--contrast)
}

.has-contrast-background-color .wp-block-button.is-style-outline .wp-block-button__link {
    color: var(--wp--preset--color--base);
}

/* Accordions */

.wp-block-accordion-item {
    transition: all 0.25s ease-out;
    transition-property: background-color, grid-template-rows;
    display: grid;
    grid-template-rows: max-content 0fr;
}

.wp-block-accordion-item.is-open {
    grid-template-rows: max-content 1fr;
}

.wp-block-accordion-panel {
    overflow: hidden;
    transition: all 0.25s ease-out;
    transition-property: padding;
}

.wp-block-accordion-panel[aria-hidden=true],
.wp-block-accordion-panel[inert] {
    display: block;
    padding: 0;
}

.wp-block-accordion-heading__toggle:hover .wp-block-accordion-heading__toggle-title {
    text-decoration: none;
}

.wp-block-accordion-item:hover,
.wp-block-accordion-item:has(.wp-block-accordion-heading__toggle:focus) {
    background-color: rgba(0,0,0,0.03);
}

.wp-block-accordion-item:has(.wp-block-accordion-heading__toggle:active) {
    background-color: rgba(0,0,0,0.06);
}

.has-contrast-background-color .wp-block-accordion-item:hover,
.has-contrast-background-color .wp-block-accordion-item:has(.wp-block-accordion-heading__toggle:focus) {
    background-color: rgba(255,255,255,0.1);
}

.has-contrast-background-color .wp-block-accordion-item:has(.wp-block-accordion-heading__toggle:active) {
    background-color: rgba(255,255,255,0.2);
}

/* Media-Text Block */

.wp-block-media-text:not(.has-media-on-the-right) .wp-block-media-text__content {
    padding-right: 0;
}

.wp-block-media-text.has-media-on-the-right .wp-block-media-text__content {
    padding-left: 0;
}

@media screen and (max-width: 600px) {
    .wp-block-media-text .wp-block-media-text__content {
        padding-left: 0;
        padding-right: 0;
        padding-top: var(--wp--preset--spacing--40);
    }
}

.wp-block-media-text .wp-block-media-text__content > * {
    margin-block-start: var(--wp--preset--spacing--40);
    margin-block-end: 0;
}

.wp-block-media-text .wp-block-media-text__content > :first-child {
    margin-block-start: 0;
}

.wp-block-media-text .wp-block-media-text__content > :last-child {
    margin-block-end: 0;
}

/* Featured image block */

.wp-block-post-featured-image {
    max-width: 100%;
}

/* Details block */

.wp-block-details {
    width: 100%;
}

.wp-block-details > summary {
    align-items: center;
    display: flex;
    font-size: 1em;
    list-style: none;
    gap: 0.5em;
    padding: 0.5rem 0;
}

.wp-block-details > summary::after {
    content: '';
    display: block;
    flex-shrink: 0;
    width: 0.75em;
    height: 0.75em;
    background-color: currentColor;
    mask-image: url(../icons/chevron.svg);
    mask-repeat: no-repeat;
    mask-size: contain;
    mask-position: center;
    transform: rotate(0deg);
    transition: transform 0.3s ease;
}

.wp-block-details[open] > summary::after {
    transform: rotate(180deg);
}

.wp-block-details > summary::-webkit-details-marker,
.wp-block-details > summary::marker {
    display: none !important;
}

.wp-block-details[open] > *:not(summary) {
    animation: 0.3s ease-out details-open 1 forwards;
    margin-bottom: var(--wp--preset--spacing--40);
}

@keyframes details-open {
    0% {
        opacity: 0;
        transform: translateY(-10px);
    }

    100% {
        opacity: 1;
        transform: translateX(0);
    }
}