html {
    scroll-behavior: smooth;
}

*[id] {
    scroll-margin-top: var(--header-height, 5rem);
}

p,
li,
h1,
h2,
h3,
h4,
h5,
h6 {
    text-wrap: balance;
    text-wrap: pretty;
}

p:empty,
li:empty,
h1:empty,
h2:empty,
h3:empty,
h4:empty,
h5:empty,
h6:empty {
    display: none;
}

.position-relative {
    position: relative;
}

.entry-content {
    margin-bottom: 0 !important;
    margin-top: 0 !important;
}

/* Block Helpers */

.block-style--bold-weight-500 strong {
    font-weight: 500;
}

/* Post terms block */

.wp-block-post-terms > a {
    text-decoration: none;
}

.wp-block-button:not(.is-style-link) > .wp-block-button__link {
    transition: all 0.3s ease;

    &:hover {
        transform: scale(1.07);
    }
}

.wp-block-button.is-style-outline > .wp-block-button__link,
.wp-block-button.is-style-blur > .wp-block-button__link {
    &:hover {
        background-color: var(--wp--preset--color--gold);
        color: var(--wp--preset--color--contrast) !important;
    }
}

.wp-block-button.is-style-outline > .wp-block-button__link.has-primary-border-color:hover {
    background-color: var(--wp--preset--color--primary);
}

/* Menu block */

.wp-block-menu .menu {
    --menu-gap: 1em;
}

.wp-block-menu .menu-item > a {
    text-decoration-color: transparent;
    text-underline-offset: 0.25em;
    transition: text-decoration-color 0.25s ease-out;
}

.wp-block-menu .menu-item > a:hover,
.wp-block-menu .menu-item > a:focus {
    text-decoration-color: currentcolor;
}

.wp-block-menu .menu--header {
    font-weight: 500;
}

.wp-block-menu .menu--footer {
    --submenu-gap: 0.75em;

    align-items: flex-start;
    justify-content: space-between;
}

.wp-block-menu .menu--footer > .menu-item {
    border-inline-start: 1px solid var(--wp--preset--color--tertiary);
    padding-inline-start: 1.5rem;
}

.wp-block-menu .menu--footer > .menu-item > a:first-of-type {
    font-family: var(--wp--preset--font-family--heading);
    font-weight: 300;
    text-transform: uppercase;
}

.wp-block-menu .menu--footer .sub-menu {
    padding-inline-start: 0;
}

.wp-block-menu .menu--footer .sub-menu .menu-item > a {
    font-size: var(--wp--preset--font-size--small);
}

/* Navigation block */

header.wp-block-template-part {
    left: 0;
    position: sticky;
    right: 0;
    top: calc(0px + var(--wp-admin--admin-bar--height, 0px));
    width: 100%;
    z-index: 15;

    & > .wp-block-group {
        transition: background-color 0.3s ease;
    }
}

header.wp-block-template-part .top-bar {
    max-height: 200px;
    opacity: 1;
    overflow: visible;
    transition: all 0.3s ease;
    transition-property: padding, max-height, opacity;
}

body.is-sticky header.wp-block-template-part .top-bar {
    margin: 0;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    padding-bottom: 0 !important;
    padding-top: 0 !important;
}

body.is-sticky header.wp-block-template-part .bottom-bar {
    margin-top: 0;
}

body.is-sticky header.wp-block-template-part .header-row {
    align-items: center;
}

.is-position-sticky.position-menu-offset {
    top: calc(var(--header-height, 80px) + var(--wp-admin--admin-bar--position-offset, 0px));
}

.wp-site-blocks > .is-position-sticky:first-child {
    z-index: 20;
}

.transparent-sticky-menu header.wp-block-template-part {
    position: fixed;
}

.transparent-sticky-menu .wp-site-blocks > .is-position-sticky:first-child {
    transition: background-color 0.3s ease;
}

.transparent-sticky-menu:not(.is-sticky) .wp-site-blocks > .is-position-sticky:first-child {
    background-color: transparent !important;
}

body:not(.transparent-sticky-menu) header.wp-block-template-part .top-bar {
    background-color: var(--wp--preset--color--tertiary-grey);
}

body:not(.menu-open) header.wp-block-template-part .is-style-section-dark .wp-block-button.is-style-outline .wp-block-button__link,
body:not(.menu-open) header.wp-block-template-part .is-style-section-dark .wp-block-button.is-style-blur .wp-block-button__link {
    color: var(--wp--preset--color--base) !important;

    &:hover {
        color: var(--wp--preset--color--contrast) !important;
    }
}

body:not(.menu-open) .transparent-sticky-menu.sticky-menu-color--light:not(.is-sticky) header.wp-block-template-part {
    & .wp-block-navigation {
        color: var(--wp--preset--color--base);
    }

    & .wp-block-button.is-style-outline .wp-block-button__link,
    & .wp-block-button.is-style-blur .wp-block-button__link {
        border-color: var(--wp--preset--color--base) !important;
        color: var(--wp--preset--color--base) !important;
    }

    & .wp-block-site-logo,
    & .wp-block-image.header-logo {
        filter: brightness(0) invert(1);
    }

    & .wp-block-acf-animated-logo-svg .tac-logo-text {
        fill: var(--wp--preset--color--base);
    }
}

body:not(.menu-open) .transparent-sticky-menu.sticky-menu-color--dark:not(.is-sticky) header.wp-block-template-part {
    & .wp-block-navigation {
        color: var(--wp--preset--color--contrast);
    }

    & .wp-block-button.is-style-outline .wp-block-button__link,
    & .wp-block-button.is-style-blur .wp-block-button__link {
        border-color: var(--wp--preset--color--contrast) !important;
        color: var(--wp--preset--color--contrast) !important;
    }

    & .wp-block-acf-animated-logo-svg .tac-logo-text {
        fill: var(--wp--preset--color--contrast);
    }
}

@media screen and (min-width: 992px) {
    header.wp-block-template-part .header-row {
        align-items: flex-start;
    }
}

@media screen and (min-width: 601px) {
    .transparent-sticky-menu:not(.is-sticky) header.wp-block-template-part > .wp-block-group {
        background-color: transparent !important;
    }
}

@media screen and (max-width: 600px) {
    .transparent-sticky-menu:not(.is-sticky, .menu-open) header.wp-block-template-part > .wp-block-group {
        background-color: transparent !important;
    }
}

/* Details block */

.wp-block-details > summary {
    align-items: center;
    display: flex;
    font-size: 1.25rem;
    justify-content: space-between;
    list-style: none;
    padding: 1.5rem var(--wp--preset--spacing--40);
}

.wp-block-details > summary::after {
    background-color: currentcolor;
    content: '';
    display: block;
    height: 1.5em;
    margin-left: 1rem;
    mask-image: url("data:image/svg+xml,%3Csvg width='32' height='32' viewBox='0 0 32 32' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M22.8353 22.3641L22.364 22.8354C22.1036 23.0958 21.6815 23.0959 21.4212 22.8355L16 17.4143L10.5788 22.8355C10.3185 23.0958 9.89639 23.0958 9.63603 22.8354L9.16468 22.3641C8.90432 22.1037 8.90432 21.6816 9.1646 21.4213L14.5858 16.0001L9.16463 10.579C8.90428 10.3186 8.9043 9.89648 9.16465 9.63613L9.63601 9.16477C9.89637 8.90441 10.3185 8.9044 10.5788 9.16475L16 14.5859L21.4212 9.16474C21.6815 8.90439 22.1036 8.90441 22.364 9.16476L22.8353 9.63612C23.0957 9.89648 23.0957 10.3186 22.8354 10.5789L17.4142 16.0001L22.8354 21.4213C23.0957 21.6816 23.0957 22.1037 22.8353 22.3641Z' fill='%23000000'/%3E%3C/svg%3E%0A");
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
    transform: rotate(45deg);
    transition: transform 0.3s ease;
    width: 1.5em;
}

.wp-block-details[open] > summary::after {
    transform: rotate(90deg);
}

.wp-block-details > summary::-webkit-details-marker,
.wp-block-details > summary::marker {
    display: none !important;
}

.wp-block-details > *:not(summary) {
    margin-left: var(--wp--preset--spacing--50);
    margin-right: var(--wp--preset--spacing--50);
}

.wp-block-details[open] > *:not(summary) {
    animation: 0.3s ease details-open 1 forwards;
}

.wp-block-details.is-style-details-readmore > summary {
    font-size: 1em;
    justify-content: flex-start;
    padding: 0 0 var(--wp--preset--spacing--30) 0;
}

.wp-block-details.is-style-details-readmore > summary::after {
    background-color: #ffcd29;
    height: 1em;
    mask-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.63556 5.29279C1.82309 5.10532 2.0774 5 2.34256 5C2.60772 5 2.86203 5.10532 3.04956 5.29279L7.99956 10.2428L12.9496 5.29279C13.1382 5.11063 13.3908 5.00983 13.653 5.01211C13.9152 5.01439 14.166 5.11956 14.3514 5.30497C14.5368 5.49038 14.642 5.74119 14.6442 6.00339C14.6465 6.26558 14.5457 6.51818 14.3636 6.70679L8.70656 12.3638C8.51903 12.5513 8.26472 12.6566 7.99956 12.6566C7.7344 12.6566 7.48009 12.5513 7.29256 12.3638L1.63556 6.70679C1.44809 6.51926 1.34277 6.26495 1.34277 5.99979C1.34277 5.73462 1.44809 5.48031 1.63556 5.29279Z' fill='%23000000'/%3E%3C/svg%3E%0A");
    transform: rotate(0deg);
    width: 1em;
}

.wp-block-details.is-style-details-readmore[open] > summary::after {
    transform: rotate(180deg);
}

.wp-block-details.is-style-details-readmore > *:not(summary) {
    margin-left: 0;
    margin-right: 0;
}

.wp-block-details .details-content-inner > *:last-child {
    padding-bottom: var(--wp--preset--spacing--40);
}

/* enhanced details with js animation classes and content wrappers */
details .details-content {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.5s;
}

details.expanded > .details-content {
    grid-template-rows: 1fr;
}

details .details-content-inner {
    overflow-y: hidden;
}

details.details-init > .details-content {
    transition: none !important;
}

/* Read More button from excerpt block */

.wp-block-post-excerpt .wp-block-post-excerpt__more-link,
.wp-block-read-more {
    align-items: center;
    display: inline-flex;
    gap: 0.3rem;
    line-height: 1;
    text-decoration: none;
}

.wp-block-post-excerpt .wp-block-post-excerpt__more-link::after,
.wp-block-read-more::after {
    background-image: url('../icons/chevron-right.svg');
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    content: '';
    display: block;
    height: 1.5em;
    transition: transform 0.3s ease;
    width: 1.5em;
}

.wp-block-post-excerpt .wp-block-post-excerpt__more-link:hover::after,
.wp-block-post-excerpt .wp-block-post-excerpt__more-link:focus::after,
.wp-block-read-more:hover::after,
.wp-block-read-more:focus::after {
    transform: translateX(0.5em);
}

/* Splide styles */
.splide {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
}

.splide__track {
    order: 1;
    width: 100%;
}

.splide .splide__arrows {
    display: flex;
    flex-grow: 1;
    gap: 1rem;
    justify-content: flex-end;
    order: 3;
    padding-top: 1rem;
}

.splide:not(.is-overflow) .splide__arrows {
    display: none;
}

.splide .splide__arrows .splide__arrow {
    align-items: center;
    background-color: transparent;
    border: 1px solid var(--wp--preset--color--tertiary);
    border-radius: 50vw;
    box-sizing: border-box;
    color: var(--wp--preset--color--tertiary);
    display: flex;
    height: 48px;
    justify-content: center;
    opacity: 1;
    padding: 0.875rem;
    position: unset;
    transform: unset;
    transition: all 0.3s ease;
    transition-property: opacity, background-color;
    width: 48px;
}

.splide .splide__arrows .splide__arrow[disabled] {
    opacity: 0.2;
    pointer-events: none;
}

.splide .splide__arrows .splide__arrow:hover {
    background-color: var(--wp--preset--color--tertiary);
    color: var(--wp--preset--color--base);
}

.splide .splide__arrows .splide__arrow svg path {
    fill: currentcolor;
}

.splide .splide__arrows .splide__arrow.splide__arrow--prev svg {
    transform: scale(-1);
}

.splide__pagination {
    gap: 0.5rem;
    order: 2;
    padding: 1rem 0 0 !important;
    position: unset !important;
}

.splide__pagination .splide__pagination__page {
    background-color: var(--wp--preset--color--neutral-2);
    border: none;
    border-radius: 1rem;
    height: 0.65rem;
    padding: 0;
    transform: none;
    transition: all 0.3s ease;
    transition-property: opacity, background-color;
    width: 0.65rem;
}

.splide__pagination .splide__pagination__page.is-active {
    background-color: var(--wp--preset--color--tertiary);
    opacity: 1;
}

/* Remove footer spacing */

.embedsocial-reviews-popup {
    display: none;
}

/* List block */

.wp-block-group.is-style-banner-accent .wp-block-list.is-style-tick,
.wp-block-group.is-style-banner-dark .wp-block-list.is-style-tick {
    list-style-image: url('../icons/tick-white.svg');
}

/* Service page banner */

.single-service .service-banner,
.background-banner {
    left: 0;
    position: absolute;
    width: 100%;
}

.background-banner img {
    aspect-ratio: 16/5 !important;
    object-fit: cover;
    object-position: center;
}

/* media text inner padding overrides */

.wp-block-media-text.has-media-on-the-right .wp-block-media-text__content {
    padding-left: 0;
}

.wp-block-media-text:not(.has-media-on-the-right) .wp-block-media-text__content {
    padding-right: 0;
}

/* package tile pattern */
.package-tile {
    transition: border-color 0.3s ease;
}

.package-tile:hover {
    border-color: var(--wp--preset--color--primary) !important;
}

/* query block template */
.wp-block-query .wp-block-post:hover > .wp-block-group.has-border-color {
    border-color: var(--wp--preset--color--primary) !important;
}

@media screen and (max-width: 600px) {
    .wp-block-media-text .wp-block-media-text__content {
        padding-left: 0;
        padding-right: 0;
        padding-top: 1rem;
    }
}

@keyframes details-open {
    0% {
        opacity: 0;
        transform: translateY(-10px);
    }

    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

.rank-math-breadcrumb .separator {
    color: var(--wp--preset--color--gold);
}

/* Columns default breakpoint */

@media (max-width: 900px) {
    .wp-block-columns {
        flex-direction: column;
    }
}
