
* {
    box-sizing: border-box;
}

:root {
    --ease: ease-out;
    --speed: 0.25s;
    --speed-fast: 0.125s;
    --speed-slow: 0.5s;
    --tracking-wide: 0.025em;
    --tracking-widest: 0.1em;
    --tracking-tight: -0.025em;
    --tracking-tighter: -0.05em;
    --scrollbar-base: var(--wp--preset--color--brand);
    --scrollbar-track: var(--wp--preset--color--base);
}

html {
    scrollbar-color: var(--scrollbar-base) var(--scrollbar-track);
    scrollbar-width: thin;
    scroll-behavior: smooth;
}

::selection {
    background-color: var(--wp--preset--color--brand-dark);
    color: var(--wp--preset--color--base);
}

[id] {
    scroll-margin-top: var(--header-height);
}

mark {
    background-color: transparent;
}

p,
li,
h1,
h2,
h3,
h4,
h5,
h6 {
    text-wrap: pretty;
}

/* Sticky Position */

.wp-block-post-content .is-position-sticky {
    top: var(--header-height);
}

/* Header */

#header-fixed #header,
#header-sticky #header {
    background-color: transparent;
    transition: all 0.5s ease-out;
    transition-property: background-color, backdrop-filter, border-color, color;
}

.js-has-scrolled #header-fixed #header,
.js-has-scrolled #header-sticky #header {
    background-color: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(0.75rem);
    border-bottom-color: #e4e4e7 !important;
}

#header-fixed,
#header-sticky {
    z-index: 11;
}

/* Fixed Header */

#header-fixed #header {
    position: fixed;
    top: var(--wp-admin--admin-bar--height, 0);
    width: 100%;
}

/* Light Header */

#header-fixed.header--light #header {
    color: inherit;
}

body:not(.js-has-scrolled) #header-fixed.header--light #header {
    color: var(--wp--preset--color--base);
}

/* Header Logo */

.custom-logo,
.custom-logo--overlay {
    transform: translateX(-0.675em);
}

/* White fixed header logo */

#header-fixed .wp-block-site-logo,
#header-fixed .wp-block-site-logo > a {
    position: relative;
}

#header-fixed .wp-block-site-logo .custom-logo--overlay {
    filter: brightness(100);
    inset: 0;
    pointer-events: none;
    position: absolute;
}

#header-fixed .wp-block-site-logo:has(.custom-logo--overlay) .custom-logo {
    opacity: 0;
    transition: opacity var(--speed-slow) var(--ease);
}

.js-has-scrolled #header-fixed .wp-block-site-logo .custom-logo {
    opacity: 1;
}

/* Menu Items */

.wp-block-menu {
    --menu-gap: 1em;
}

.wp-block-menu .menu-item > a {
    text-decoration-color: transparent;
    text-decoration-thickness: 0.1em;
    text-underline-offset: 0.125em;
    transition: text-decoration-color var(--speed) var(--ease);
}

.wp-block-menu .current-menu-item > a {
    text-decoration-color: var(--wp--preset--color--brand);
}

.wp-block-menu .menu-item > a:hover {
    text-decoration-color: currentColor;
}

.menu-item-description {
    text-wrap: pretty;
}

.menu-item.has-brand-link-color > a {
    color: var(--wp--preset--color--brand);
}

/* Header Menu Icons */

.menu-item-icon {
    align-self: center;
    align-self: normal;
    display: flex;
    height: auto;
    margin: 0;
    width: 1em;
}

.menu-item-icon > svg {
    height: inherit;
    width: inherit;
}

.wp-block-menu .menu-item > a:has(> .menu-item-icon) {
    align-items: center;
    display: flex;
    gap: 0.5em;
}

.wp-block-menu .sub-menu .menu-item > a > .menu-item-icon {
    width: 2em;
}

/* Header Phone */

#phone-call {
    font-weight: 600;
    white-space: nowrap;
}

#phone-call a {
    text-decoration: none;
    transition: color var(--speed) var(--ease);
}

#phone-call a:hover {
    color: var(--wp--preset--color--brand);
}

/* Mobile Header */

.wp-block-menu--overlay {
    color: inherit;
}

.wp-block-menu-dialog {
    background-color: var(--wp--preset--color--base);
    padding: 0;
    scrollbar-color: var(--scrollbar-base) var(--scrollbar-track);
    scrollbar-width: thin;
}

.wp-block-menu-dialog-content {
    padding-block-start: var(--wp--preset--spacing--30);
}

.wp-block-menu-close {
    top: var(--wp--preset--spacing--50);
    z-index: 1;
}

body:has(.wp-block-menu-dialog[open]) {
    overflow: hidden;
}

/* Footer Menu */

.wp-block-menu[data-location="footer"] .menu-item > a,
.wp-block-menu[data-location="footer-2"] .menu-item > a,
.wp-block-menu[data-location="footer-3"] .menu-item > a,
.wp-block-menu[data-location="footer-strip"] .menu-item > a {
    transition: color var(--speed) var(--ease);
    transition-property: color, text-decoration-color;
}

.wp-block-menu[data-location="footer"] .menu-item > a:focus,
.wp-block-menu[data-location="footer-2"] .menu-item > a:focus,
.wp-block-menu[data-location="footer-3"] .menu-item > a:focus,
.wp-block-menu[data-location="footer-strip"] .menu-item > a:focus,
.wp-block-menu[data-location="footer"] .menu-item > a:hover,
.wp-block-menu[data-location="footer-2"] .menu-item > a:hover,
.wp-block-menu[data-location="footer-3"] .menu-item > a:hover,
.wp-block-menu[data-location="footer-strip"] .menu-item > a:hover {
    color: var(--wp--preset--color--base);
    text-decoration-color: transparent;
}

.wp-block-menu[data-location="footer"] .menu-item > a:active,
.wp-block-menu[data-location="footer-2"] .menu-item > a:active,
.wp-block-menu[data-location="footer-3"] .menu-item > a:active,
.wp-block-menu[data-location="footer-strip"] .menu-item > a:active {
    color: var(--wp--preset--color--brand-lightest);
    text-decoration-color: currentColor;
    transition-property: color, text-decoration-color;
    transition-duration: 20ms;
}

/* Footer certification */

#iso-certification {
    border: 1px solid currentColor;
    border-color: var(--wp--preset--color--grey);
    border-style: outset;
    border-radius: var(--wp--preset--border-radius--small);
    line-height: 1.25;
    padding: var(--wp--preset--spacing--20);
}

/* Sticky Groups */

:has(#header-sticky.is-position-sticky) .entry-content .wp-block-group.is-position-sticky {
    top: var(--header-offset);
}

/* Buttons */

.wp-element-button {
    word-break: keep-all;
}

.wp-element-button {
    outline-offset: 2px;
}

.wp-element-button:focus {
    outline: 2px solid var(--wp--preset--color--brand);
}

.is-style-outline > .wp-element-button:focus {
    outline-color: currentColor;
}

.is-style-phone > .wp-element-button:focus {
    outline-color: var(--wp--preset--color--base);
}

.is-style-link > .wp-element-button {
    text-underline-offset: 0.125em;
    text-decoration-color: transparent;
    transition: text-decoration-color var(--speed) var(--ease);
}

.is-style-link > .wp-element-button:hover {
    text-decoration-color: currentColor;
}

.is-style-link > .wp-element-button:active {
    text-decoration-color: var(--wp--preset--color--contrast);
}

@media screen and (max-width: 600px) {
    .wp-block-buttons.is-style-fill-mobile {
        align-items: stretch;
        flex-direction: column;
    }
}

/* Button icons */

.wp-block-button__icon {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.5em;
    white-space: nowrap;
}

.wp-block-button-icon {
    display: flex;
    min-width: 1em;
}

.wp-element-button--has-icon {
    display: inline-flex;
    align-items: center;
    gap: 0.5em;
}

.wp-element-button--has-icon > .wp-block-button__icon {
    min-width: 1em;
}

.is-style-link > .wp-element-button--has-icon > .wp-block-button__icon {
    transition: transform var(--speed) var(--ease);
}

.is-style-link > .wp-element-button--has-icon:hover > .wp-block-button__icon {
    transform: translateX(0.125em);
}

.is-style-link > .wp-element-button--has-icon:active > .wp-block-button__icon {
    transform: translateX(0.25em);
    transition-duration: 20ms;
}

/* Phone button */

.wp-block-button__phone .wp-block-button-icon {
    order: -1;
}

/* Blur button */

.wp-block-button.is-style-blur {
    backdrop-filter: blur(0.5em);
}

.wp-block-button.is-style-blur > .wp-block-button__link {
    transition: background-color var(--speed) var(--ease);
}

.wp-block-button.is-style-blur > .wp-block-button__link:hover {
    background-color: #ffffff33;
}

.wp-block-button.is-style-blur > .wp-block-button__link:focus {
    outline-color: currentColor;
}

.wp-block-button.is-style-blur > .wp-block-button__link:active {
    background-color: #00000033;
    transition-duration: 20ms;
}

/* Navigation button */

.wp-block-button.is-style-navigation > .wp-block-button__link {
    transition: all var(--speed) var(--ease);
    transition-property: background-color, color;
}

.wp-block-button.is-style-navigation > .wp-block-button__link:hover {
    background-color: var(--wp--preset--color--light);
    color: var(--wp--preset--color--brand);
}

/* Gravity Forms */

.gform_wrapper.gform-theme {
    --gf-ctrl-btn-radius: var(--wp--custom--button-curve, 9999px);
    --gf-ctrl-btn-shadow: none;
    --gf-ctrl-shadow: none;
    --gf-ctrl-btn-bg-color-hover-secondary: var(--wp--preset--color--brand-light);
    --gf-ctrl-btn-color-hover-secondary: var(--wp--preset--color--base);
    --gf-ctrl-btn-bg-color-hover-primary: var(--wp--preset--color--brand-dark);
    --gf-ctrl-btn-color-hover-primary: var(--wp--preset--color--base);
    --gf-ctrl-font-size: var(--wp--preset--font-size--small);
    --gf-ctrl-checkbox-check-radius: var(--wp--preset--border-radius--small);
    --gf-field-img-choice-shadow: none;
    --gf-form-gap-x: var(--wp--preset--spacing--50);
    --gf-form-gap-y: var(--wp--preset--spacing--50);
}

.gform_wrapper.gform-theme .gform_previous_button {
    --gf-ctrl-btn-border-color-secondary: var(--wp--preset--color--line);
}

.gform_wrapper.gform-theme .ginput_container_fileupload {
    --gf-ctrl-btn-bg-color-hover-ctrl: var(--wp--preset--color--brand-dark);
    --gf-ctrl-file-btn-color: var(--wp--preset--color--base);
    --gf-ctrl-file-btn-bg-color: var(--wp--preset--color--brand);
    --gf-ctrl-file-btn-color-hover: var(--wp--preset--color--base);
    --gf-ctrl-file-btn-bg-color-hover: var(--wp--preset--color--brand-dark);
}

.gform-theme--framework .gf_progressbar {
    --gf-field-pg-prog-bar-bg-color-blue: var(--wp--preset--color--brand);
}

.ginput_container_image_choice > .gfield_radio {
    --gf-field-img-choice-size: calc(100% / 3 - var(--gf-field-img-choice-gap));
}

.ui-widget.ui-datepicker {
    --gf-ctrl-date-picker-bg-color: var(--wp--preset--color--base);
}

.gform_wrapper input::placeholder,
.gform_wrapper textarea::placeholder {
    color: var(--wp--preset--color--grey);
    font-weight: 300;
    letter-spacing: 0.025em;
}

/* Empty blocks */

.wp-block-heading:empty,
.wp-block-paragraph:empty {
    display: none;
}

/* Accordion block */

.wp-block-accordion-heading__toggle {
    padding-block: 1.25em;
}

.wp-block-accordion-heading__toggle:focus .wp-block-accordion-heading__toggle-title,
.wp-block-accordion-heading__toggle:hover .wp-block-accordion-heading__toggle-title {
    color: var(--wp--preset--color--brand);
}

.wp-block-accordion-heading__toggle-title {
    transition: color var(--speed-fast) var(--ease);
}

.wp-block-accordion-heading > .wp-block-accordion-heading__toggle > .wp-block-accordion-heading__toggle-title {
    text-decoration-color: transparent;
}

.wp-block-accordion-heading__toggle-icon {
    border: 1px solid var(--wp--preset--color--grey);
    border-right-width: 0;
    border-top-width: 0;
    color: transparent;
    height: var(--wp--preset--spacing--30);
    width: var(--wp--preset--spacing--30);
}

.wp-block-accordion-item .wp-block-accordion-heading__toggle-icon {
    margin-inline: var(--wp--preset--spacing--20, 0.25em);
    transform: rotate(-45deg);
    transition-duration: 0.125s;
}

.wp-block-accordion-item.is-open > .wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon {
    transform: rotate(135deg);
}

.wp-block-accordion-item .wp-block-accordion-panel {
    display: block;
    height: 0;
    overflow-y: hidden;
    opacity: 0;
}

.wp-block-accordion-item.is-open .wp-block-accordion-panel {
    height: calc-size(auto, size);
    opacity: 1;
    padding-block-end: var(--wp--preset--spacing--40);
}

.wp-block-accordion-panel {
    transition: all var(--speed) var(--ease);
    transition-property: height, opacity, padding;
}

/* Featured Image block */

.wp-block-post-featured-image > a,
.wp-block-post-featured-image > .wp-post-image {
    aspect-ratio: inherit;
    max-width: 100%;
}

.wp-block-post-featured-image:has(> a) {
    overflow: hidden;
}

.wp-block-post-featured-image > a > .wp-post-image {
    transition: transform var(--speed) var(--ease);
}

.wp-block-post-featured-image > a:focus > .wp-post-image,
.wp-block-post-featured-image > a:hover > .wp-post-image {
    transform: scale(1.05);
}

.wp-block-post-featured-image > a:active > .wp-post-image {
    transform: scale(1);
    transition-duration: var(--speed-fast);
}

/* Image block */

.wp-block-image {
    display: flex;
    flex-direction: column;
}

.wp-block-image > img {
    flex-basis: inherit;
    width: inherit;
}

.wp-block-image.is-style-floating {
    border-radius: var(--wp--preset--border-radius--medium);
    box-shadow: var(--wp--preset--shadow--medium);
    overflow: hidden;
}

.wp-block-image.is-style-floating > img {
    border-radius: inherit !important;
    transition: transform var(--speed-slow) var(--ease);
}

.wp-block-image.is-style-floating:hover > img {
    transform: scale(1.075);
}

/* Media & Text block */

.wp-block-media-text > .wp-block-media-text__media > img {
    border-radius: inherit;
}

.wp-block-media-text > .wp-block-media-text__media {
    border-radius: inherit;
}

.wp-block-media-text > .wp-block-media-text__content {
    padding-inline: var(--wp--preset--spacing--60);
}

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

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

@media screen and (max-width: 599px) {
    .wp-block-media-text:not(.has-background) > .wp-block-media-text__content {
        padding-inline: 0;
    }

    .wp-block-media-text.has-background > .wp-block-media-text__content {
        padding-inline: var(--wp--preset--spacing--40);
    }
}

.wp-block-media-text.is-style-floating > .wp-block-media-text__media {
    box-shadow: var(--wp--preset--shadow--medium);
    overflow: hidden;
}

.wp-block-media-text.is-style-floating > .wp-block-media-text__media > img {
    transition: transform var(--speed-slow) var(--ease);
}

.wp-block-media-text.is-style-floating > .wp-block-media-text__media:hover > img {
    transform: scale(1.075);
}

/* Post Excerpt block */

.wp-block-post-excerpt__more-link {
    transition: color var(--speed) var(--ease);
}

.wp-block-post-excerpt.is-style-featured-link > .wp-block-post-excerpt__more-text > .wp-block-post-excerpt__more-link {
    align-items: center;
    display: flex;
    gap: 0.25em;
    line-height: 1;
}

.wp-block-post-excerpt.is-style-featured-link > .wp-block-post-excerpt__more-text > .wp-block-post-excerpt__more-link > .wp-block-post-excerpt__more-link-icon {
    transition: transform var(--speed) var(--ease);
    width: 1em;
}

.wp-block-post-excerpt.is-style-featured-link > .wp-block-post-excerpt__more-text > .wp-block-post-excerpt__more-link:hover > .wp-block-post-excerpt__more-link-icon {
    transform: translateX(0.25em);
}

/* Post Link block */

.wp-block-post-link {
    transition: all var(--speed) var(--ease);
    transition-property: background-color;
}

.wp-block-post-link:has(> .wp-block-read-more:hover),
.wp-block-post-link:has(> .wp-block-post-link__link:hover) {
    background-color: var(--wp--preset--color--light);
}

/* Post Link block with Featured Image block child */

.wp-block-post-link > .wp-block-post-featured-image {
    overflow: hidden;
}

.wp-block-post-link > .wp-block-post-featured-image > .wp-post-image,
.wp-block-post-link > .wp-block-post-featured-image > a > .wp-post-image {
    transition: transform var(--speed) var(--ease);
    transition-property: transform;
}

.wp-block-post-link:has(.wp-block-read-more:hover) > .wp-block-post-featured-image > .wp-post-image,
.wp-block-post-link:has(.wp-block-read-more:hover) > .wp-block-post-featured-image > a > .wp-post-image,
.wp-block-post-link:has(> .wp-block-post-link__link:focus) > .wp-block-post-featured-image > .wp-post-image,
.wp-block-post-link:has(> .wp-block-post-link__link:hover) > .wp-block-post-featured-image > .wp-post-image,
.wp-block-post-link:has(> .wp-block-post-link__link:focus) > .wp-block-post-featured-image > a > .wp-post-image,
.wp-block-post-link:has(> .wp-block-post-link__link:hover) > .wp-block-post-featured-image > a > .wp-post-image {
    transform: scale(1.05);
}

.wp-block-post-link > .wp-block-post-featured-image > a:active > .wp-post-image,
.wp-block-post-link:has(.wp-block-read-more:active) > .wp-block-post-featured-image > .wp-post-image,
.wp-block-post-link:has(.wp-block-read-more:active) > .wp-block-post-featured-image > a > .wp-post-image,
.wp-block-post-link:has(> .wp-block-post-link__link:active) > .wp-block-post-featured-image > .wp-post-image,
.wp-block-post-link:has(> .wp-block-post-link__link:active) > .wp-block-post-featured-image > a > .wp-post-image {
    transform: scale(1);
    transition-duration: var(--speed-fast);
}

/* Read More block - button style */

.wp-block-read-more.is-style-button {
    transition: background-color var(--speed) var(--ease);
    transition-property: background-color, border-color, color;
}

.wp-block-read-more.is-style-button:hover {
    background-color: var(--wp--preset--color--brand);
    border-color: var(--wp--preset--color--brand-dark);
    color: var(--wp--preset--color--base);
}

.wp-block-read-more.is-style-button:active {
    background-color: var(--wp--preset--color--brand-dark);
    transition-duration: 20ms;
}

/* Social Media Link blocks */

.wp-block-social-link-anchor {
    transition: color 0.25s ease-out;
}

.wp-block-social-link-anchor:focus,
.wp-block-social-link-anchor:hover {
    color: var(--wp--preset--color--base) !important;
}

.wp-block-social-link-anchor:active {
    color: var(--wp--preset--color--brand-lightest) !important;
    transition-duration: 50ms;
}

.wp-block-social-link:has(> .wp-block-social-link-anchor:active) {
    transform: scale(0.975);
    transition-duration: 50ms;
}

/* Style: Hover Shadow */

.is-style-hover-shadow {
    transition: all var(--speed) var(--ease);
    transition-property: box-shadow, transform;
}

.is-style-hover-shadow:hover {
    box-shadow: var(--wp--preset--shadow--medium);
    transform: translateY(-0.25em);
}

.is-style-hover-shadow:active {
    box-shadow: none;
    transform: translateY(0);
    transition-duration: var(--speed-fast);
}

/* Utility classes */

.hover-bg--dark {
    transition: background-color var(--speed) var(--ease);
}

.hover-bg--dark:hover {
    background-color: #28282b;
}

.wp-block-paragraph.wp-block-paragraph--tick-icon {
    background-image: url(../icons/tick-circle-brand.svg);
    background-repeat: no-repeat;
    background-size: 1.125em;
    background-position-y: 50%;
    padding-inline-start: 1.5em;
}

.wp-block-group.wp-block-group--hover-shadow {
    background-color: #fafafa80;
    transition: box-shadow var(--speed) var(--ease);
    transition-property: box-shadow, transform;
}

.wp-block-group.wp-block-group--hover-shadow:hover {
    box-shadow: var(--wp--preset--shadow--medium);
    transform: translateY(-0.25em);
}
